Convert the bundled backend/internal/plugins/calcomblock package into a standalone reactor-mode wasm plugin, dropping every git.dev.alexdunmow.com/block/cms import (forbidden in standalone plugins): - package calcomblock -> package main; add wasip1 main.go with wasmguest.Serve(Registration). go.mod module git.dev.alexdunmow.com/block/calcomblock, block/core v0.18.2, no replace directives. - Settings persistence: replace the pool-backed poolQuerier (direct SQL against the public-schema `settings` table, which a sandboxed plugin role cannot read) with capabilityQuerier over the SDK settings.Settings / settings.Updater capabilities. GetSiteTimezone now resolves via GetSiteSettings host-side. - Vendor the small CMS-internal helpers the plugin used into internal/helpers (GetRealIP, StartCleanupLoop, MaskSecret, GetStringOr, the PluginSettingsQuerier settings helpers, PluginCrypto for tests) and internal/db (minimal Setting / UpsertSettingParams), each with a provenance header. - Inline the captcha widget: vendor blocks.CaptchaWidget as a local CaptchaWidget templ (captcha_widget.templ) and regenerate templ; drop the block/cms/blocks import from booking.templ. - blockConfig (server-authoritative captcha requirement via a page_block_snapshots scan) has no wasm-ABI capability, so it is left nil: honeypot + per-IP rate limit still apply. Documented as a follow-up. - web: @block-ninja/ui workspace:* -> ^0.1.0 registry version; eslint.config.js repointed at ../../../cms/web/eslint.config.js; rebuild web/dist. - Rewrite CLAUDE.md for the standalone wasm reality; add .gitignore. Full test suite preserved and passing; builds to calcomblock-2.0.0.bnp; check-safety passes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
106 lines
2.9 KiB
JavaScript
106 lines
2.9 KiB
JavaScript
import { importShared } from "./__federation_fn_import-hlt2XzeI.js";
|
|
import { X as requireShim } from "./index-Bs--Ol2m.js";
|
|
|
|
/**
|
|
* @license lucide-react v0.468.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
const mergeClasses = (...classes) =>
|
|
classes
|
|
.filter((className, index, array) => {
|
|
return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
|
|
})
|
|
.join(" ")
|
|
.trim();
|
|
|
|
/**
|
|
* @license lucide-react v0.468.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
var defaultAttributes = {
|
|
xmlns: "http://www.w3.org/2000/svg",
|
|
width: 24,
|
|
height: 24,
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
strokeWidth: 2,
|
|
strokeLinecap: "round",
|
|
strokeLinejoin: "round",
|
|
};
|
|
|
|
/**
|
|
* @license lucide-react v0.468.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
const { forwardRef: forwardRef$1, createElement: createElement$1 } = await importShared("react");
|
|
|
|
const Icon = forwardRef$1(({ color = "currentColor", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = "", children, iconNode, ...rest }, ref) => {
|
|
return createElement$1(
|
|
"svg",
|
|
{
|
|
ref,
|
|
...defaultAttributes,
|
|
width: size,
|
|
height: size,
|
|
stroke: color,
|
|
strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,
|
|
className: mergeClasses("lucide", className),
|
|
...rest,
|
|
},
|
|
[...iconNode.map(([tag, attrs]) => createElement$1(tag, attrs)), ...(Array.isArray(children) ? children : [children])],
|
|
);
|
|
});
|
|
|
|
/**
|
|
* @license lucide-react v0.468.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
const { forwardRef, createElement } = await importShared("react");
|
|
|
|
const createLucideIcon = (iconName, iconNode) => {
|
|
const Component = forwardRef(({ className, ...props }, ref) =>
|
|
createElement(Icon, {
|
|
ref,
|
|
iconNode,
|
|
className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),
|
|
...props,
|
|
}),
|
|
);
|
|
Component.displayName = `${iconName}`;
|
|
return Component;
|
|
};
|
|
|
|
/**
|
|
* @license lucide-react v0.468.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
const List = createLucideIcon("List", [
|
|
["path", { d: "M3 12h.01", key: "nlz23k" }],
|
|
["path", { d: "M3 18h.01", key: "1tta3j" }],
|
|
["path", { d: "M3 6h.01", key: "1rqtza" }],
|
|
["path", { d: "M8 12h13", key: "1za7za" }],
|
|
["path", { d: "M8 18h13", key: "1lx6n3" }],
|
|
["path", { d: "M8 6h13", key: "ik3vkj" }],
|
|
]);
|
|
|
|
var shimExports = requireShim();
|
|
|
|
export { List as L, createLucideIcon as c, shimExports as s };
|