@frontmcp/ui 0.5.1 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -362
- package/bridge/adapters/base-adapter.d.ts +104 -0
- package/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/bridge/adapters/claude.adapter.d.ts +67 -0
- package/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/bridge/adapters/generic.adapter.d.ts +56 -0
- package/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/bridge/adapters/index.d.ts +26 -0
- package/bridge/adapters/index.d.ts.map +1 -0
- package/bridge/adapters/openai.adapter.d.ts +65 -0
- package/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/bridge/core/adapter-registry.d.ts +122 -0
- package/bridge/core/adapter-registry.d.ts.map +1 -0
- package/bridge/core/bridge-factory.d.ts +199 -0
- package/bridge/core/bridge-factory.d.ts.map +1 -0
- package/bridge/core/index.d.ts +10 -0
- package/bridge/core/index.d.ts.map +1 -0
- package/bridge/index.d.ts +62 -0
- package/bridge/index.d.ts.map +1 -0
- package/bridge/index.js +2540 -0
- package/bridge/runtime/iife-generator.d.ts +62 -0
- package/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/bridge/runtime/index.d.ts +10 -0
- package/bridge/runtime/index.d.ts.map +1 -0
- package/bridge/types.d.ts +386 -0
- package/bridge/types.d.ts.map +1 -0
- package/bundler/bundler.d.ts +208 -0
- package/bundler/bundler.d.ts.map +1 -0
- package/bundler/cache.d.ts +173 -0
- package/bundler/cache.d.ts.map +1 -0
- package/bundler/file-cache/component-builder.d.ts +167 -0
- package/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/bundler/file-cache/index.d.ts +12 -0
- package/bundler/file-cache/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/bundler/file-cache/storage/index.d.ts +11 -0
- package/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/interface.d.ts +152 -0
- package/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/bundler/file-cache/storage/redis.d.ts +139 -0
- package/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/bundler/index.d.ts +43 -0
- package/bundler/index.d.ts.map +1 -0
- package/bundler/index.js +3707 -0
- package/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/bundler/sandbox/executor.d.ts +14 -0
- package/bundler/sandbox/executor.d.ts.map +1 -0
- package/bundler/sandbox/policy.d.ts +62 -0
- package/bundler/sandbox/policy.d.ts.map +1 -0
- package/bundler/types.d.ts +702 -0
- package/bundler/types.d.ts.map +1 -0
- package/components/alert.d.ts +66 -0
- package/components/alert.d.ts.map +1 -0
- package/components/alert.schema.d.ts +98 -0
- package/components/alert.schema.d.ts.map +1 -0
- package/components/avatar.d.ts +77 -0
- package/components/avatar.d.ts.map +1 -0
- package/components/avatar.schema.d.ts +170 -0
- package/components/avatar.schema.d.ts.map +1 -0
- package/components/badge.d.ts +64 -0
- package/components/badge.d.ts.map +1 -0
- package/components/badge.schema.d.ts +91 -0
- package/components/badge.schema.d.ts.map +1 -0
- package/components/button.d.ts +100 -0
- package/components/button.d.ts.map +1 -0
- package/components/button.schema.d.ts +120 -0
- package/components/button.schema.d.ts.map +1 -0
- package/components/card.d.ts +53 -0
- package/components/card.d.ts.map +1 -0
- package/components/card.schema.d.ts +93 -0
- package/components/card.schema.d.ts.map +1 -0
- package/components/form.d.ts +212 -0
- package/components/form.d.ts.map +1 -0
- package/components/form.schema.d.ts +365 -0
- package/components/form.schema.d.ts.map +1 -0
- package/components/index.d.ts +29 -0
- package/components/index.d.ts.map +1 -0
- package/components/index.js +2525 -0
- package/components/list.d.ts +121 -0
- package/components/list.d.ts.map +1 -0
- package/components/list.schema.d.ts +129 -0
- package/components/list.schema.d.ts.map +1 -0
- package/components/modal.d.ts +100 -0
- package/components/modal.d.ts.map +1 -0
- package/components/modal.schema.d.ts +151 -0
- package/components/modal.schema.d.ts.map +1 -0
- package/components/table.d.ts +91 -0
- package/components/table.d.ts.map +1 -0
- package/components/table.schema.d.ts +123 -0
- package/components/table.schema.d.ts.map +1 -0
- package/esm/bridge/adapters/base-adapter.d.ts +104 -0
- package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
- package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
- package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/index.d.ts +26 -0
- package/esm/bridge/adapters/index.d.ts.map +1 -0
- package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
- package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/esm/bridge/core/adapter-registry.d.ts +122 -0
- package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
- package/esm/bridge/core/bridge-factory.d.ts +199 -0
- package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
- package/esm/bridge/core/index.d.ts +10 -0
- package/esm/bridge/core/index.d.ts.map +1 -0
- package/esm/bridge/index.d.ts +62 -0
- package/esm/bridge/index.d.ts.map +1 -0
- package/esm/bridge/index.js +2487 -0
- package/esm/bridge/runtime/iife-generator.d.ts +62 -0
- package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/esm/bridge/runtime/index.d.ts +10 -0
- package/esm/bridge/runtime/index.d.ts.map +1 -0
- package/esm/bridge/types.d.ts +386 -0
- package/esm/bridge/types.d.ts.map +1 -0
- package/esm/bundler/bundler.d.ts +208 -0
- package/esm/bundler/bundler.d.ts.map +1 -0
- package/esm/bundler/cache.d.ts +173 -0
- package/esm/bundler/cache.d.ts.map +1 -0
- package/esm/bundler/file-cache/component-builder.d.ts +167 -0
- package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/esm/bundler/file-cache/index.d.ts +12 -0
- package/esm/bundler/file-cache/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/index.d.ts +11 -0
- package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
- package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
- package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/esm/bundler/index.d.ts +43 -0
- package/esm/bundler/index.d.ts.map +1 -0
- package/esm/bundler/index.js +3640 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/esm/bundler/sandbox/executor.d.ts +14 -0
- package/esm/bundler/sandbox/executor.d.ts.map +1 -0
- package/esm/bundler/sandbox/policy.d.ts +62 -0
- package/esm/bundler/sandbox/policy.d.ts.map +1 -0
- package/esm/bundler/types.d.ts +702 -0
- package/esm/bundler/types.d.ts.map +1 -0
- package/esm/components/alert.d.ts +66 -0
- package/esm/components/alert.d.ts.map +1 -0
- package/esm/components/alert.schema.d.ts +98 -0
- package/esm/components/alert.schema.d.ts.map +1 -0
- package/esm/components/avatar.d.ts +77 -0
- package/esm/components/avatar.d.ts.map +1 -0
- package/esm/components/avatar.schema.d.ts +170 -0
- package/esm/components/avatar.schema.d.ts.map +1 -0
- package/esm/components/badge.d.ts +64 -0
- package/esm/components/badge.d.ts.map +1 -0
- package/esm/components/badge.schema.d.ts +91 -0
- package/esm/components/badge.schema.d.ts.map +1 -0
- package/esm/components/button.d.ts +100 -0
- package/esm/components/button.d.ts.map +1 -0
- package/esm/components/button.schema.d.ts +120 -0
- package/esm/components/button.schema.d.ts.map +1 -0
- package/esm/components/card.d.ts +53 -0
- package/esm/components/card.d.ts.map +1 -0
- package/esm/components/card.schema.d.ts +93 -0
- package/esm/components/card.schema.d.ts.map +1 -0
- package/esm/components/form.d.ts +212 -0
- package/esm/components/form.d.ts.map +1 -0
- package/esm/components/form.schema.d.ts +365 -0
- package/esm/components/form.schema.d.ts.map +1 -0
- package/esm/components/index.d.ts +29 -0
- package/esm/components/index.d.ts.map +1 -0
- package/esm/components/index.js +2396 -0
- package/esm/components/list.d.ts +121 -0
- package/esm/components/list.d.ts.map +1 -0
- package/esm/components/list.schema.d.ts +129 -0
- package/esm/components/list.schema.d.ts.map +1 -0
- package/esm/components/modal.d.ts +100 -0
- package/esm/components/modal.d.ts.map +1 -0
- package/esm/components/modal.schema.d.ts +151 -0
- package/esm/components/modal.schema.d.ts.map +1 -0
- package/esm/components/table.d.ts +91 -0
- package/esm/components/table.d.ts.map +1 -0
- package/esm/components/table.schema.d.ts +123 -0
- package/esm/components/table.schema.d.ts.map +1 -0
- package/esm/index.d.ts +40 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +8326 -0
- package/esm/layouts/base.d.ts +86 -0
- package/esm/layouts/base.d.ts.map +1 -0
- package/esm/layouts/index.d.ts +8 -0
- package/esm/layouts/index.d.ts.map +1 -0
- package/esm/layouts/index.js +409 -0
- package/esm/layouts/presets.d.ts +134 -0
- package/esm/layouts/presets.d.ts.map +1 -0
- package/esm/package.json +72 -0
- package/esm/pages/consent.d.ts +117 -0
- package/esm/pages/consent.d.ts.map +1 -0
- package/esm/pages/error.d.ts +101 -0
- package/esm/pages/error.d.ts.map +1 -0
- package/esm/pages/index.d.ts +9 -0
- package/esm/pages/index.d.ts.map +1 -0
- package/esm/pages/index.js +1036 -0
- package/esm/react/Alert.d.ts +101 -0
- package/esm/react/Alert.d.ts.map +1 -0
- package/esm/react/Badge.d.ts +100 -0
- package/esm/react/Badge.d.ts.map +1 -0
- package/esm/react/Button.d.ts +108 -0
- package/esm/react/Button.d.ts.map +1 -0
- package/esm/react/Card.d.ts +103 -0
- package/esm/react/Card.d.ts.map +1 -0
- package/esm/react/hooks/context.d.ts +179 -0
- package/esm/react/hooks/context.d.ts.map +1 -0
- package/esm/react/hooks/index.d.ts +42 -0
- package/esm/react/hooks/index.d.ts.map +1 -0
- package/esm/react/hooks/tools.d.ts +284 -0
- package/esm/react/hooks/tools.d.ts.map +1 -0
- package/esm/react/index.d.ts +80 -0
- package/esm/react/index.d.ts.map +1 -0
- package/esm/react/index.js +3124 -0
- package/esm/react/types.d.ts +105 -0
- package/esm/react/types.d.ts.map +1 -0
- package/esm/react/utils.d.ts +43 -0
- package/esm/react/utils.d.ts.map +1 -0
- package/esm/render/index.d.ts +8 -0
- package/esm/render/index.d.ts.map +1 -0
- package/esm/render/index.js +45 -0
- package/esm/render/prerender.d.ts +57 -0
- package/esm/render/prerender.d.ts.map +1 -0
- package/esm/renderers/index.d.ts +21 -0
- package/esm/renderers/index.d.ts.map +1 -0
- package/esm/renderers/index.js +381 -0
- package/esm/renderers/react.adapter.d.ts +70 -0
- package/esm/renderers/react.adapter.d.ts.map +1 -0
- package/esm/renderers/react.renderer.d.ts +96 -0
- package/esm/renderers/react.renderer.d.ts.map +1 -0
- package/esm/universal/UniversalApp.d.ts +108 -0
- package/esm/universal/UniversalApp.d.ts.map +1 -0
- package/esm/universal/cached-runtime.d.ts +115 -0
- package/esm/universal/cached-runtime.d.ts.map +1 -0
- package/esm/universal/context.d.ts +122 -0
- package/esm/universal/context.d.ts.map +1 -0
- package/esm/universal/index.d.ts +57 -0
- package/esm/universal/index.d.ts.map +1 -0
- package/esm/universal/index.js +1755 -0
- package/esm/universal/renderers/html.renderer.d.ts +37 -0
- package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/index.d.ts +112 -0
- package/esm/universal/renderers/index.d.ts.map +1 -0
- package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
- package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
- package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/react.renderer.d.ts +46 -0
- package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
- package/esm/universal/runtime-builder.d.ts +33 -0
- package/esm/universal/runtime-builder.d.ts.map +1 -0
- package/esm/universal/store.d.ts +135 -0
- package/esm/universal/store.d.ts.map +1 -0
- package/esm/universal/types.d.ts +199 -0
- package/esm/universal/types.d.ts.map +1 -0
- package/esm/web-components/core/attribute-parser.d.ts +82 -0
- package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
- package/esm/web-components/core/base-element.d.ts +197 -0
- package/esm/web-components/core/base-element.d.ts.map +1 -0
- package/esm/web-components/core/index.d.ts +9 -0
- package/esm/web-components/core/index.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
- package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
- package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-button.d.ts +117 -0
- package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-card.d.ts +53 -0
- package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-input.d.ts +96 -0
- package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-select.d.ts +100 -0
- package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/esm/web-components/elements/index.d.ts +13 -0
- package/esm/web-components/elements/index.d.ts.map +1 -0
- package/esm/web-components/index.d.ts +50 -0
- package/esm/web-components/index.d.ts.map +1 -0
- package/esm/web-components/index.js +1993 -0
- package/esm/web-components/register.d.ts +57 -0
- package/esm/web-components/register.d.ts.map +1 -0
- package/esm/web-components/types.d.ts +122 -0
- package/esm/web-components/types.d.ts.map +1 -0
- package/esm/widgets/index.d.ts +8 -0
- package/esm/widgets/index.d.ts.map +1 -0
- package/esm/widgets/index.js +883 -0
- package/esm/widgets/progress.d.ts +133 -0
- package/esm/widgets/progress.d.ts.map +1 -0
- package/esm/widgets/resource.d.ts +163 -0
- package/esm/widgets/resource.d.ts.map +1 -0
- package/index.d.ts +40 -0
- package/index.d.ts.map +1 -0
- package/index.js +8526 -0
- package/layouts/base.d.ts +86 -0
- package/layouts/base.d.ts.map +1 -0
- package/layouts/index.d.ts +8 -0
- package/layouts/index.d.ts.map +1 -0
- package/layouts/index.js +437 -0
- package/layouts/presets.d.ts +134 -0
- package/layouts/presets.d.ts.map +1 -0
- package/package.json +33 -110
- package/pages/consent.d.ts +117 -0
- package/pages/consent.d.ts.map +1 -0
- package/pages/error.d.ts +101 -0
- package/pages/error.d.ts.map +1 -0
- package/pages/index.d.ts +9 -0
- package/pages/index.d.ts.map +1 -0
- package/pages/index.js +1065 -0
- package/react/Alert.d.ts +101 -0
- package/react/Alert.d.ts.map +1 -0
- package/react/Badge.d.ts +100 -0
- package/react/Badge.d.ts.map +1 -0
- package/react/Button.d.ts +108 -0
- package/react/Button.d.ts.map +1 -0
- package/react/Card.d.ts +103 -0
- package/react/Card.d.ts.map +1 -0
- package/react/hooks/context.d.ts +179 -0
- package/react/hooks/context.d.ts.map +1 -0
- package/react/hooks/index.d.ts +42 -0
- package/react/hooks/index.d.ts.map +1 -0
- package/react/hooks/tools.d.ts +284 -0
- package/react/hooks/tools.d.ts.map +1 -0
- package/react/index.d.ts +80 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +3160 -0
- package/react/types.d.ts +105 -0
- package/react/types.d.ts.map +1 -0
- package/react/utils.d.ts +43 -0
- package/react/utils.d.ts.map +1 -0
- package/render/index.d.ts +8 -0
- package/render/index.d.ts.map +1 -0
- package/render/index.js +77 -0
- package/render/prerender.d.ts +57 -0
- package/render/prerender.d.ts.map +1 -0
- package/renderers/index.d.ts +21 -0
- package/renderers/index.d.ts.map +1 -0
- package/renderers/index.js +416 -0
- package/renderers/react.adapter.d.ts +70 -0
- package/renderers/react.adapter.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +96 -0
- package/renderers/react.renderer.d.ts.map +1 -0
- package/universal/UniversalApp.d.ts +108 -0
- package/universal/UniversalApp.d.ts.map +1 -0
- package/universal/cached-runtime.d.ts +115 -0
- package/universal/cached-runtime.d.ts.map +1 -0
- package/universal/context.d.ts +122 -0
- package/universal/context.d.ts.map +1 -0
- package/universal/index.d.ts +57 -0
- package/universal/index.d.ts.map +1 -0
- package/universal/index.js +1841 -0
- package/universal/renderers/html.renderer.d.ts +37 -0
- package/universal/renderers/html.renderer.d.ts.map +1 -0
- package/universal/renderers/index.d.ts +112 -0
- package/universal/renderers/index.d.ts.map +1 -0
- package/universal/renderers/markdown.renderer.d.ts +33 -0
- package/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/universal/renderers/mdx.renderer.d.ts +38 -0
- package/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/universal/renderers/react.renderer.d.ts +46 -0
- package/universal/renderers/react.renderer.d.ts.map +1 -0
- package/universal/runtime-builder.d.ts +33 -0
- package/universal/runtime-builder.d.ts.map +1 -0
- package/universal/store.d.ts +135 -0
- package/universal/store.d.ts.map +1 -0
- package/universal/types.d.ts +199 -0
- package/universal/types.d.ts.map +1 -0
- package/web-components/core/attribute-parser.d.ts +82 -0
- package/web-components/core/attribute-parser.d.ts.map +1 -0
- package/web-components/core/base-element.d.ts +197 -0
- package/web-components/core/base-element.d.ts.map +1 -0
- package/web-components/core/index.d.ts +9 -0
- package/web-components/core/index.d.ts.map +1 -0
- package/web-components/elements/fmcp-alert.d.ts +46 -0
- package/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/web-components/elements/fmcp-badge.d.ts +47 -0
- package/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/web-components/elements/fmcp-button.d.ts +117 -0
- package/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/web-components/elements/fmcp-card.d.ts +53 -0
- package/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/web-components/elements/fmcp-input.d.ts +96 -0
- package/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/web-components/elements/fmcp-select.d.ts +100 -0
- package/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/web-components/elements/index.d.ts +13 -0
- package/web-components/elements/index.d.ts.map +1 -0
- package/web-components/index.d.ts +50 -0
- package/web-components/index.d.ts.map +1 -0
- package/web-components/index.js +2028 -0
- package/web-components/register.d.ts +57 -0
- package/web-components/register.d.ts.map +1 -0
- package/web-components/types.d.ts +122 -0
- package/web-components/types.d.ts.map +1 -0
- package/widgets/index.d.ts +8 -0
- package/widgets/index.d.ts.map +1 -0
- package/widgets/index.js +910 -0
- package/widgets/progress.d.ts +133 -0
- package/widgets/progress.d.ts.map +1 -0
- package/widgets/resource.d.ts +163 -0
- package/widgets/resource.d.ts.map +1 -0
- package/src/adapters/index.d.ts +0 -10
- package/src/adapters/index.js +0 -18
- package/src/adapters/index.js.map +0 -1
- package/src/adapters/platform-meta.d.ts +0 -165
- package/src/adapters/platform-meta.js +0 -310
- package/src/adapters/platform-meta.js.map +0 -1
- package/src/base-template/bridge.d.ts +0 -89
- package/src/base-template/bridge.js +0 -452
- package/src/base-template/bridge.js.map +0 -1
- package/src/base-template/default-base-template.d.ts +0 -91
- package/src/base-template/default-base-template.js +0 -435
- package/src/base-template/default-base-template.js.map +0 -1
- package/src/base-template/index.d.ts +0 -14
- package/src/base-template/index.js +0 -30
- package/src/base-template/index.js.map +0 -1
- package/src/base-template/polyfills.d.ts +0 -30
- package/src/base-template/polyfills.js +0 -190
- package/src/base-template/polyfills.js.map +0 -1
- package/src/base-template/theme-styles.d.ts +0 -73
- package/src/base-template/theme-styles.js +0 -95
- package/src/base-template/theme-styles.js.map +0 -1
- package/src/bridge/adapters/base-adapter.d.ts +0 -103
- package/src/bridge/adapters/base-adapter.js +0 -314
- package/src/bridge/adapters/base-adapter.js.map +0 -1
- package/src/bridge/adapters/claude.adapter.d.ts +0 -66
- package/src/bridge/adapters/claude.adapter.js +0 -145
- package/src/bridge/adapters/claude.adapter.js.map +0 -1
- package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
- package/src/bridge/adapters/ext-apps.adapter.js +0 -416
- package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
- package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
- package/src/bridge/adapters/gemini.adapter.js +0 -160
- package/src/bridge/adapters/gemini.adapter.js.map +0 -1
- package/src/bridge/adapters/generic.adapter.d.ts +0 -55
- package/src/bridge/adapters/generic.adapter.js +0 -108
- package/src/bridge/adapters/generic.adapter.js.map +0 -1
- package/src/bridge/adapters/index.d.ts +0 -25
- package/src/bridge/adapters/index.js +0 -65
- package/src/bridge/adapters/index.js.map +0 -1
- package/src/bridge/adapters/openai.adapter.d.ts +0 -64
- package/src/bridge/adapters/openai.adapter.js +0 -194
- package/src/bridge/adapters/openai.adapter.js.map +0 -1
- package/src/bridge/core/adapter-registry.d.ts +0 -121
- package/src/bridge/core/adapter-registry.js +0 -271
- package/src/bridge/core/adapter-registry.js.map +0 -1
- package/src/bridge/core/bridge-factory.d.ts +0 -198
- package/src/bridge/core/bridge-factory.js +0 -428
- package/src/bridge/core/bridge-factory.js.map +0 -1
- package/src/bridge/core/index.d.ts +0 -9
- package/src/bridge/core/index.js +0 -22
- package/src/bridge/core/index.js.map +0 -1
- package/src/bridge/index.d.ts +0 -61
- package/src/bridge/index.js +0 -94
- package/src/bridge/index.js.map +0 -1
- package/src/bridge/runtime/iife-generator.d.ts +0 -61
- package/src/bridge/runtime/iife-generator.js +0 -940
- package/src/bridge/runtime/iife-generator.js.map +0 -1
- package/src/bridge/runtime/index.d.ts +0 -8
- package/src/bridge/runtime/index.js +0 -16
- package/src/bridge/runtime/index.js.map +0 -1
- package/src/bridge/types.d.ts +0 -385
- package/src/bridge/types.js +0 -11
- package/src/bridge/types.js.map +0 -1
- package/src/build/cdn-resources.d.ts +0 -140
- package/src/build/cdn-resources.js +0 -314
- package/src/build/cdn-resources.js.map +0 -1
- package/src/build/index.d.ts +0 -294
- package/src/build/index.js +0 -325
- package/src/build/index.js.map +0 -1
- package/src/build/widget-manifest.d.ts +0 -212
- package/src/build/widget-manifest.js +0 -652
- package/src/build/widget-manifest.js.map +0 -1
- package/src/bundler/bundler.d.ts +0 -110
- package/src/bundler/bundler.js +0 -432
- package/src/bundler/bundler.js.map +0 -1
- package/src/bundler/cache.d.ts +0 -172
- package/src/bundler/cache.js +0 -250
- package/src/bundler/cache.js.map +0 -1
- package/src/bundler/index.d.ts +0 -41
- package/src/bundler/index.js +0 -73
- package/src/bundler/index.js.map +0 -1
- package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
- package/src/bundler/sandbox/enclave-adapter.js +0 -339
- package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
- package/src/bundler/sandbox/executor.d.ts +0 -13
- package/src/bundler/sandbox/executor.js +0 -22
- package/src/bundler/sandbox/executor.js.map +0 -1
- package/src/bundler/sandbox/policy.d.ts +0 -61
- package/src/bundler/sandbox/policy.js +0 -238
- package/src/bundler/sandbox/policy.js.map +0 -1
- package/src/bundler/types.d.ts +0 -347
- package/src/bundler/types.js +0 -132
- package/src/bundler/types.js.map +0 -1
- package/src/components/alert.d.ts +0 -71
- package/src/components/alert.js +0 -189
- package/src/components/alert.js.map +0 -1
- package/src/components/alert.schema.d.ts +0 -114
- package/src/components/alert.schema.js +0 -105
- package/src/components/alert.schema.js.map +0 -1
- package/src/components/avatar.d.ts +0 -76
- package/src/components/avatar.js +0 -176
- package/src/components/avatar.js.map +0 -1
- package/src/components/avatar.schema.d.ts +0 -169
- package/src/components/avatar.schema.js +0 -103
- package/src/components/avatar.schema.js.map +0 -1
- package/src/components/badge.d.ts +0 -70
- package/src/components/badge.js +0 -149
- package/src/components/badge.js.map +0 -1
- package/src/components/badge.schema.d.ts +0 -109
- package/src/components/badge.schema.js +0 -96
- package/src/components/badge.schema.js.map +0 -1
- package/src/components/button.d.ts +0 -111
- package/src/components/button.js +0 -336
- package/src/components/button.js.map +0 -1
- package/src/components/button.schema.d.ts +0 -148
- package/src/components/button.schema.js +0 -121
- package/src/components/button.schema.js.map +0 -1
- package/src/components/card.d.ts +0 -60
- package/src/components/card.js +0 -117
- package/src/components/card.js.map +0 -1
- package/src/components/card.schema.d.ts +0 -113
- package/src/components/card.schema.js +0 -98
- package/src/components/card.schema.js.map +0 -1
- package/src/components/form.d.ts +0 -239
- package/src/components/form.js +0 -420
- package/src/components/form.js.map +0 -1
- package/src/components/form.schema.d.ts +0 -441
- package/src/components/form.schema.js +0 -406
- package/src/components/form.schema.js.map +0 -1
- package/src/components/index.d.ts +0 -29
- package/src/components/index.js +0 -98
- package/src/components/index.js.map +0 -1
- package/src/components/list.d.ts +0 -127
- package/src/components/list.js +0 -279
- package/src/components/list.js.map +0 -1
- package/src/components/list.schema.d.ts +0 -134
- package/src/components/list.schema.js +0 -168
- package/src/components/list.schema.js.map +0 -1
- package/src/components/modal.d.ts +0 -111
- package/src/components/modal.js +0 -260
- package/src/components/modal.js.map +0 -1
- package/src/components/modal.schema.d.ts +0 -186
- package/src/components/modal.schema.js +0 -167
- package/src/components/modal.schema.js.map +0 -1
- package/src/components/table.d.ts +0 -105
- package/src/components/table.js +0 -283
- package/src/components/table.js.map +0 -1
- package/src/components/table.schema.d.ts +0 -159
- package/src/components/table.schema.js +0 -173
- package/src/components/table.schema.js.map +0 -1
- package/src/handlebars/helpers.d.ts +0 -348
- package/src/handlebars/helpers.js +0 -605
- package/src/handlebars/helpers.js.map +0 -1
- package/src/handlebars/index.d.ts +0 -193
- package/src/handlebars/index.js +0 -350
- package/src/handlebars/index.js.map +0 -1
- package/src/index.d.ts +0 -50
- package/src/index.js +0 -192
- package/src/index.js.map +0 -1
- package/src/layouts/base.d.ts +0 -88
- package/src/layouts/base.js +0 -227
- package/src/layouts/base.js.map +0 -1
- package/src/layouts/index.d.ts +0 -7
- package/src/layouts/index.js +0 -25
- package/src/layouts/index.js.map +0 -1
- package/src/layouts/presets.d.ts +0 -133
- package/src/layouts/presets.js +0 -277
- package/src/layouts/presets.js.map +0 -1
- package/src/pages/consent.d.ts +0 -116
- package/src/pages/consent.js +0 -218
- package/src/pages/consent.js.map +0 -1
- package/src/pages/error.d.ts +0 -100
- package/src/pages/error.js +0 -263
- package/src/pages/error.js.map +0 -1
- package/src/pages/index.d.ts +0 -8
- package/src/pages/index.js +0 -27
- package/src/pages/index.js.map +0 -1
- package/src/react/Alert.d.ts +0 -101
- package/src/react/Alert.js +0 -51
- package/src/react/Alert.js.map +0 -1
- package/src/react/Badge.d.ts +0 -100
- package/src/react/Badge.js +0 -55
- package/src/react/Badge.js.map +0 -1
- package/src/react/Button.d.ts +0 -108
- package/src/react/Button.js +0 -52
- package/src/react/Button.js.map +0 -1
- package/src/react/Card.d.ts +0 -103
- package/src/react/Card.js +0 -55
- package/src/react/Card.js.map +0 -1
- package/src/react/hooks/context.d.ts +0 -178
- package/src/react/hooks/context.js +0 -287
- package/src/react/hooks/context.js.map +0 -1
- package/src/react/hooks/index.d.ts +0 -41
- package/src/react/hooks/index.js +0 -61
- package/src/react/hooks/index.js.map +0 -1
- package/src/react/hooks/tools.d.ts +0 -283
- package/src/react/hooks/tools.js +0 -465
- package/src/react/hooks/tools.js.map +0 -1
- package/src/react/index.d.ts +0 -80
- package/src/react/index.js +0 -113
- package/src/react/index.js.map +0 -1
- package/src/react/types.d.ts +0 -105
- package/src/react/types.js +0 -12
- package/src/react/types.js.map +0 -1
- package/src/react/utils.d.ts +0 -42
- package/src/react/utils.js +0 -99
- package/src/react/utils.js.map +0 -1
- package/src/registry/index.d.ts +0 -45
- package/src/registry/index.js +0 -67
- package/src/registry/index.js.map +0 -1
- package/src/registry/render-template.d.ts +0 -86
- package/src/registry/render-template.js +0 -239
- package/src/registry/render-template.js.map +0 -1
- package/src/registry/tool-ui.registry.d.ts +0 -260
- package/src/registry/tool-ui.registry.js +0 -438
- package/src/registry/tool-ui.registry.js.map +0 -1
- package/src/registry/uri-utils.d.ts +0 -55
- package/src/registry/uri-utils.js +0 -97
- package/src/registry/uri-utils.js.map +0 -1
- package/src/render/index.d.ts +0 -7
- package/src/render/index.js +0 -14
- package/src/render/index.js.map +0 -1
- package/src/render/prerender.d.ts +0 -56
- package/src/render/prerender.js +0 -98
- package/src/render/prerender.js.map +0 -1
- package/src/renderers/cache.d.ts +0 -144
- package/src/renderers/cache.js +0 -240
- package/src/renderers/cache.js.map +0 -1
- package/src/renderers/html.renderer.d.ts +0 -122
- package/src/renderers/html.renderer.js +0 -204
- package/src/renderers/html.renderer.js.map +0 -1
- package/src/renderers/index.d.ts +0 -35
- package/src/renderers/index.js +0 -70
- package/src/renderers/index.js.map +0 -1
- package/src/renderers/mdx.renderer.d.ts +0 -119
- package/src/renderers/mdx.renderer.js +0 -305
- package/src/renderers/mdx.renderer.js.map +0 -1
- package/src/renderers/react.renderer.d.ts +0 -95
- package/src/renderers/react.renderer.js +0 -260
- package/src/renderers/react.renderer.js.map +0 -1
- package/src/renderers/registry.d.ts +0 -133
- package/src/renderers/registry.js +0 -232
- package/src/renderers/registry.js.map +0 -1
- package/src/renderers/types.d.ts +0 -341
- package/src/renderers/types.js +0 -9
- package/src/renderers/types.js.map +0 -1
- package/src/renderers/utils/detect.d.ts +0 -106
- package/src/renderers/utils/detect.js +0 -267
- package/src/renderers/utils/detect.js.map +0 -1
- package/src/renderers/utils/hash.d.ts +0 -39
- package/src/renderers/utils/hash.js +0 -75
- package/src/renderers/utils/hash.js.map +0 -1
- package/src/renderers/utils/index.d.ts +0 -8
- package/src/renderers/utils/index.js +0 -28
- package/src/renderers/utils/index.js.map +0 -1
- package/src/renderers/utils/transpiler.d.ts +0 -88
- package/src/renderers/utils/transpiler.js +0 -215
- package/src/renderers/utils/transpiler.js.map +0 -1
- package/src/runtime/adapters/html.adapter.d.ts +0 -58
- package/src/runtime/adapters/html.adapter.js +0 -131
- package/src/runtime/adapters/html.adapter.js.map +0 -1
- package/src/runtime/adapters/index.d.ts +0 -25
- package/src/runtime/adapters/index.js +0 -54
- package/src/runtime/adapters/index.js.map +0 -1
- package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
- package/src/runtime/adapters/mdx.adapter.js +0 -241
- package/src/runtime/adapters/mdx.adapter.js.map +0 -1
- package/src/runtime/adapters/react.adapter.d.ts +0 -69
- package/src/runtime/adapters/react.adapter.js +0 -245
- package/src/runtime/adapters/react.adapter.js.map +0 -1
- package/src/runtime/adapters/types.d.ts +0 -94
- package/src/runtime/adapters/types.js +0 -11
- package/src/runtime/adapters/types.js.map +0 -1
- package/src/runtime/csp.d.ts +0 -37
- package/src/runtime/csp.js +0 -140
- package/src/runtime/csp.js.map +0 -1
- package/src/runtime/index.d.ts +0 -16
- package/src/runtime/index.js +0 -72
- package/src/runtime/index.js.map +0 -1
- package/src/runtime/mcp-bridge.d.ts +0 -100
- package/src/runtime/mcp-bridge.js +0 -581
- package/src/runtime/mcp-bridge.js.map +0 -1
- package/src/runtime/renderer-runtime.d.ts +0 -132
- package/src/runtime/renderer-runtime.js +0 -389
- package/src/runtime/renderer-runtime.js.map +0 -1
- package/src/runtime/sanitizer.d.ts +0 -171
- package/src/runtime/sanitizer.js +0 -318
- package/src/runtime/sanitizer.js.map +0 -1
- package/src/runtime/types.d.ts +0 -414
- package/src/runtime/types.js +0 -12
- package/src/runtime/types.js.map +0 -1
- package/src/runtime/wrapper.d.ts +0 -375
- package/src/runtime/wrapper.js +0 -1793
- package/src/runtime/wrapper.js.map +0 -1
- package/src/styles/index.d.ts +0 -7
- package/src/styles/index.js +0 -11
- package/src/styles/index.js.map +0 -1
- package/src/styles/variants.d.ts +0 -50
- package/src/styles/variants.js +0 -175
- package/src/styles/variants.js.map +0 -1
- package/src/theme/cdn.d.ts +0 -194
- package/src/theme/cdn.js +0 -375
- package/src/theme/cdn.js.map +0 -1
- package/src/theme/index.d.ts +0 -17
- package/src/theme/index.js +0 -57
- package/src/theme/index.js.map +0 -1
- package/src/theme/platforms.d.ts +0 -106
- package/src/theme/platforms.js +0 -161
- package/src/theme/platforms.js.map +0 -1
- package/src/theme/presets/github-openai.d.ts +0 -49
- package/src/theme/presets/github-openai.js +0 -189
- package/src/theme/presets/github-openai.js.map +0 -1
- package/src/theme/presets/index.d.ts +0 -10
- package/src/theme/presets/index.js +0 -17
- package/src/theme/presets/index.js.map +0 -1
- package/src/theme/theme.d.ts +0 -395
- package/src/theme/theme.js +0 -332
- package/src/theme/theme.js.map +0 -1
- package/src/tool-template/builder.d.ts +0 -212
- package/src/tool-template/builder.js +0 -397
- package/src/tool-template/builder.js.map +0 -1
- package/src/tool-template/index.d.ts +0 -15
- package/src/tool-template/index.js +0 -38
- package/src/tool-template/index.js.map +0 -1
- package/src/types/index.d.ts +0 -13
- package/src/types/index.js +0 -26
- package/src/types/index.js.map +0 -1
- package/src/types/ui-config.d.ts +0 -357
- package/src/types/ui-config.js +0 -12
- package/src/types/ui-config.js.map +0 -1
- package/src/types/ui-runtime.d.ts +0 -965
- package/src/types/ui-runtime.js +0 -117
- package/src/types/ui-runtime.js.map +0 -1
- package/src/validation/error-box.d.ts +0 -55
- package/src/validation/error-box.js +0 -75
- package/src/validation/error-box.js.map +0 -1
- package/src/validation/index.d.ts +0 -12
- package/src/validation/index.js +0 -21
- package/src/validation/index.js.map +0 -1
- package/src/validation/wrapper.d.ts +0 -96
- package/src/validation/wrapper.js +0 -117
- package/src/validation/wrapper.js.map +0 -1
- package/src/web-components/core/attribute-parser.d.ts +0 -85
- package/src/web-components/core/attribute-parser.js +0 -189
- package/src/web-components/core/attribute-parser.js.map +0 -1
- package/src/web-components/core/base-element.d.ts +0 -197
- package/src/web-components/core/base-element.js +0 -289
- package/src/web-components/core/base-element.js.map +0 -1
- package/src/web-components/core/index.d.ts +0 -8
- package/src/web-components/core/index.js +0 -18
- package/src/web-components/core/index.js.map +0 -1
- package/src/web-components/elements/fmcp-alert.d.ts +0 -45
- package/src/web-components/elements/fmcp-alert.js +0 -93
- package/src/web-components/elements/fmcp-alert.js.map +0 -1
- package/src/web-components/elements/fmcp-badge.d.ts +0 -46
- package/src/web-components/elements/fmcp-badge.js +0 -99
- package/src/web-components/elements/fmcp-badge.js.map +0 -1
- package/src/web-components/elements/fmcp-button.d.ts +0 -124
- package/src/web-components/elements/fmcp-button.js +0 -233
- package/src/web-components/elements/fmcp-button.js.map +0 -1
- package/src/web-components/elements/fmcp-card.d.ts +0 -52
- package/src/web-components/elements/fmcp-card.js +0 -115
- package/src/web-components/elements/fmcp-card.js.map +0 -1
- package/src/web-components/elements/fmcp-input.d.ts +0 -95
- package/src/web-components/elements/fmcp-input.js +0 -248
- package/src/web-components/elements/fmcp-input.js.map +0 -1
- package/src/web-components/elements/fmcp-select.d.ts +0 -99
- package/src/web-components/elements/fmcp-select.js +0 -243
- package/src/web-components/elements/fmcp-select.js.map +0 -1
- package/src/web-components/elements/index.d.ts +0 -12
- package/src/web-components/elements/index.js +0 -34
- package/src/web-components/elements/index.js.map +0 -1
- package/src/web-components/index.d.ts +0 -49
- package/src/web-components/index.js +0 -75
- package/src/web-components/index.js.map +0 -1
- package/src/web-components/register.d.ts +0 -56
- package/src/web-components/register.js +0 -80
- package/src/web-components/register.js.map +0 -1
- package/src/web-components/types.d.ts +0 -121
- package/src/web-components/types.js +0 -25
- package/src/web-components/types.js.map +0 -1
- package/src/widgets/index.d.ts +0 -7
- package/src/widgets/index.js +0 -24
- package/src/widgets/index.js.map +0 -1
- package/src/widgets/progress.d.ts +0 -132
- package/src/widgets/progress.js +0 -303
- package/src/widgets/progress.js.map +0 -1
- package/src/widgets/resource.d.ts +0 -162
- package/src/widgets/resource.js +0 -340
- package/src/widgets/resource.js.map +0 -1
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Handlebars Renderer Module
|
|
3
|
-
*
|
|
4
|
-
* Provides Handlebars template rendering for HTML templates.
|
|
5
|
-
* Enhances plain HTML with {{variable}} syntax support.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { HandlebarsRenderer, createHandlebarsRenderer } from '@frontmcp/ui/handlebars';
|
|
10
|
-
*
|
|
11
|
-
* const renderer = createHandlebarsRenderer();
|
|
12
|
-
*
|
|
13
|
-
* const template = `
|
|
14
|
-
* <div class="card">
|
|
15
|
-
* <h2>{{escapeHtml output.title}}</h2>
|
|
16
|
-
* <p>Created: {{formatDate output.createdAt}}</p>
|
|
17
|
-
* {{#if output.items.length}}
|
|
18
|
-
* <ul>
|
|
19
|
-
* {{#each output.items}}
|
|
20
|
-
* <li>{{this.name}} - {{formatCurrency this.price}}</li>
|
|
21
|
-
* {{/each}}
|
|
22
|
-
* </ul>
|
|
23
|
-
* {{/if}}
|
|
24
|
-
* </div>
|
|
25
|
-
* `;
|
|
26
|
-
*
|
|
27
|
-
* const html = renderer.render(template, {
|
|
28
|
-
* input: { query: 'test' },
|
|
29
|
-
* output: {
|
|
30
|
-
* title: 'Results',
|
|
31
|
-
* createdAt: new Date(),
|
|
32
|
-
* items: [{ name: 'Item 1', price: 9.99 }]
|
|
33
|
-
* }
|
|
34
|
-
* });
|
|
35
|
-
* ```
|
|
36
|
-
*
|
|
37
|
-
* @packageDocumentation
|
|
38
|
-
*/
|
|
39
|
-
import type { TemplateHelpers } from '../types';
|
|
40
|
-
import { type HelperFunction } from './helpers';
|
|
41
|
-
/**
|
|
42
|
-
* Check if Handlebars is available.
|
|
43
|
-
*/
|
|
44
|
-
export declare function isHandlebarsAvailable(): Promise<boolean>;
|
|
45
|
-
/**
|
|
46
|
-
* Options for the Handlebars renderer.
|
|
47
|
-
*/
|
|
48
|
-
export interface HandlebarsRendererOptions {
|
|
49
|
-
/**
|
|
50
|
-
* Additional custom helpers to register.
|
|
51
|
-
*/
|
|
52
|
-
helpers?: Record<string, HelperFunction>;
|
|
53
|
-
/**
|
|
54
|
-
* Partial templates to register.
|
|
55
|
-
*/
|
|
56
|
-
partials?: Record<string, string>;
|
|
57
|
-
/**
|
|
58
|
-
* Strict mode - error on missing variables.
|
|
59
|
-
* @default false
|
|
60
|
-
*/
|
|
61
|
-
strict?: boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Whether to auto-escape output.
|
|
64
|
-
* @default true
|
|
65
|
-
*/
|
|
66
|
-
autoEscape?: boolean;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Render context for templates.
|
|
70
|
-
*/
|
|
71
|
-
export interface RenderContext {
|
|
72
|
-
/**
|
|
73
|
-
* Tool input arguments.
|
|
74
|
-
*/
|
|
75
|
-
input: Record<string, unknown>;
|
|
76
|
-
/**
|
|
77
|
-
* Tool output/result.
|
|
78
|
-
*/
|
|
79
|
-
output: unknown;
|
|
80
|
-
/**
|
|
81
|
-
* Structured content (if schema provided).
|
|
82
|
-
*/
|
|
83
|
-
structuredContent?: unknown;
|
|
84
|
-
/**
|
|
85
|
-
* Template helper functions.
|
|
86
|
-
*/
|
|
87
|
-
helpers?: TemplateHelpers;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Handlebars template renderer.
|
|
91
|
-
*
|
|
92
|
-
* Provides safe, cacheable Handlebars rendering with built-in helpers
|
|
93
|
-
* for formatting, escaping, and logic.
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* ```typescript
|
|
97
|
-
* const renderer = new HandlebarsRenderer();
|
|
98
|
-
*
|
|
99
|
-
* // Simple render
|
|
100
|
-
* const html = await renderer.render('<div>{{output.name}}</div>', { output: { name: 'Test' } });
|
|
101
|
-
*
|
|
102
|
-
* // With custom helpers
|
|
103
|
-
* renderer.registerHelper('shout', (str) => String(str).toUpperCase() + '!');
|
|
104
|
-
* const html2 = await renderer.render('<div>{{shout output.name}}</div>', { output: { name: 'hello' } });
|
|
105
|
-
* ```
|
|
106
|
-
*/
|
|
107
|
-
export declare class HandlebarsRenderer {
|
|
108
|
-
private readonly options;
|
|
109
|
-
private compiledTemplates;
|
|
110
|
-
private initialized;
|
|
111
|
-
private hbs;
|
|
112
|
-
constructor(options?: HandlebarsRendererOptions);
|
|
113
|
-
/**
|
|
114
|
-
* Initialize the renderer with Handlebars.
|
|
115
|
-
*/
|
|
116
|
-
private init;
|
|
117
|
-
/**
|
|
118
|
-
* Render a Handlebars template.
|
|
119
|
-
*
|
|
120
|
-
* @param template - Template string
|
|
121
|
-
* @param context - Render context with input/output
|
|
122
|
-
* @returns Rendered HTML string
|
|
123
|
-
*/
|
|
124
|
-
render(template: string, context: RenderContext): Promise<string>;
|
|
125
|
-
/**
|
|
126
|
-
* Render a template synchronously.
|
|
127
|
-
*
|
|
128
|
-
* Note: Requires Handlebars to be pre-loaded. Use `render()` for async loading.
|
|
129
|
-
*
|
|
130
|
-
* @param template - Template string
|
|
131
|
-
* @param context - Render context
|
|
132
|
-
* @returns Rendered HTML string
|
|
133
|
-
*/
|
|
134
|
-
renderSync(template: string, context: RenderContext): string;
|
|
135
|
-
/**
|
|
136
|
-
* Initialize synchronously (for environments where Handlebars is already loaded).
|
|
137
|
-
*/
|
|
138
|
-
initSync(handlebars: typeof import('handlebars')): void;
|
|
139
|
-
/**
|
|
140
|
-
* Register a custom helper.
|
|
141
|
-
*
|
|
142
|
-
* @param name - Helper name
|
|
143
|
-
* @param fn - Helper function
|
|
144
|
-
*/
|
|
145
|
-
registerHelper(name: string, fn: HelperFunction): void;
|
|
146
|
-
/**
|
|
147
|
-
* Register a partial template.
|
|
148
|
-
*
|
|
149
|
-
* @param name - Partial name
|
|
150
|
-
* @param template - Partial template string
|
|
151
|
-
*/
|
|
152
|
-
registerPartial(name: string, template: string): void;
|
|
153
|
-
/**
|
|
154
|
-
* Clear compiled template cache.
|
|
155
|
-
*/
|
|
156
|
-
clearCache(): void;
|
|
157
|
-
/**
|
|
158
|
-
* Check if a template string contains Handlebars syntax.
|
|
159
|
-
*
|
|
160
|
-
* @param template - Template string to check
|
|
161
|
-
* @returns true if contains {{...}} syntax
|
|
162
|
-
*/
|
|
163
|
-
static containsHandlebars(template: string): boolean;
|
|
164
|
-
/**
|
|
165
|
-
* Check if the renderer is initialized.
|
|
166
|
-
*/
|
|
167
|
-
get isInitialized(): boolean;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Create a new Handlebars renderer.
|
|
171
|
-
*
|
|
172
|
-
* @param options - Renderer options
|
|
173
|
-
* @returns New HandlebarsRenderer instance
|
|
174
|
-
*/
|
|
175
|
-
export declare function createHandlebarsRenderer(options?: HandlebarsRendererOptions): HandlebarsRenderer;
|
|
176
|
-
/**
|
|
177
|
-
* Render a template with default settings.
|
|
178
|
-
*
|
|
179
|
-
* Convenience function for one-off rendering.
|
|
180
|
-
*
|
|
181
|
-
* @param template - Template string
|
|
182
|
-
* @param context - Render context
|
|
183
|
-
* @returns Rendered HTML
|
|
184
|
-
*/
|
|
185
|
-
export declare function renderTemplate(template: string, context: RenderContext): Promise<string>;
|
|
186
|
-
/**
|
|
187
|
-
* Check if a template contains Handlebars syntax.
|
|
188
|
-
*
|
|
189
|
-
* @param template - Template string
|
|
190
|
-
* @returns true if contains {{...}}
|
|
191
|
-
*/
|
|
192
|
-
export declare function containsHandlebars(template: string): boolean;
|
|
193
|
-
export { builtinHelpers, escapeHtml, formatDate, formatCurrency, formatNumber, json, jsonEmbed, eq, ne, gt, gte, lt, lte, and, or, not, first, last, length, includes, join, uppercase, lowercase, capitalize, truncate, defaultValue, uniqueId, classNames, resetUniqueIdCounter, type HelperFunction, } from './helpers';
|
package/src/handlebars/index.js
DELETED
|
@@ -1,350 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Handlebars Renderer Module
|
|
4
|
-
*
|
|
5
|
-
* Provides Handlebars template rendering for HTML templates.
|
|
6
|
-
* Enhances plain HTML with {{variable}} syntax support.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { HandlebarsRenderer, createHandlebarsRenderer } from '@frontmcp/ui/handlebars';
|
|
11
|
-
*
|
|
12
|
-
* const renderer = createHandlebarsRenderer();
|
|
13
|
-
*
|
|
14
|
-
* const template = `
|
|
15
|
-
* <div class="card">
|
|
16
|
-
* <h2>{{escapeHtml output.title}}</h2>
|
|
17
|
-
* <p>Created: {{formatDate output.createdAt}}</p>
|
|
18
|
-
* {{#if output.items.length}}
|
|
19
|
-
* <ul>
|
|
20
|
-
* {{#each output.items}}
|
|
21
|
-
* <li>{{this.name}} - {{formatCurrency this.price}}</li>
|
|
22
|
-
* {{/each}}
|
|
23
|
-
* </ul>
|
|
24
|
-
* {{/if}}
|
|
25
|
-
* </div>
|
|
26
|
-
* `;
|
|
27
|
-
*
|
|
28
|
-
* const html = renderer.render(template, {
|
|
29
|
-
* input: { query: 'test' },
|
|
30
|
-
* output: {
|
|
31
|
-
* title: 'Results',
|
|
32
|
-
* createdAt: new Date(),
|
|
33
|
-
* items: [{ name: 'Item 1', price: 9.99 }]
|
|
34
|
-
* }
|
|
35
|
-
* });
|
|
36
|
-
* ```
|
|
37
|
-
*
|
|
38
|
-
* @packageDocumentation
|
|
39
|
-
*/
|
|
40
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
exports.resetUniqueIdCounter = exports.classNames = exports.uniqueId = exports.defaultValue = exports.truncate = exports.capitalize = exports.lowercase = exports.uppercase = exports.join = exports.includes = exports.length = exports.last = exports.first = exports.not = exports.or = exports.and = exports.lte = exports.lt = exports.gte = exports.gt = exports.ne = exports.eq = exports.jsonEmbed = exports.json = exports.formatNumber = exports.formatCurrency = exports.formatDate = exports.escapeHtml = exports.builtinHelpers = exports.HandlebarsRenderer = void 0;
|
|
42
|
-
exports.isHandlebarsAvailable = isHandlebarsAvailable;
|
|
43
|
-
exports.createHandlebarsRenderer = createHandlebarsRenderer;
|
|
44
|
-
exports.renderTemplate = renderTemplate;
|
|
45
|
-
exports.containsHandlebars = containsHandlebars;
|
|
46
|
-
const helpers_1 = require("./helpers");
|
|
47
|
-
/**
|
|
48
|
-
* Lazy-loaded Handlebars module.
|
|
49
|
-
*/
|
|
50
|
-
let Handlebars = null;
|
|
51
|
-
/**
|
|
52
|
-
* Load Handlebars module.
|
|
53
|
-
*/
|
|
54
|
-
async function loadHandlebars() {
|
|
55
|
-
if (Handlebars !== null) {
|
|
56
|
-
return Handlebars;
|
|
57
|
-
}
|
|
58
|
-
try {
|
|
59
|
-
Handlebars = await import('handlebars');
|
|
60
|
-
return Handlebars;
|
|
61
|
-
}
|
|
62
|
-
catch {
|
|
63
|
-
throw new Error('Handlebars is required for template rendering. Install it: npm install handlebars');
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Check if Handlebars is available.
|
|
68
|
-
*/
|
|
69
|
-
async function isHandlebarsAvailable() {
|
|
70
|
-
try {
|
|
71
|
-
await loadHandlebars();
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Handlebars template renderer.
|
|
80
|
-
*
|
|
81
|
-
* Provides safe, cacheable Handlebars rendering with built-in helpers
|
|
82
|
-
* for formatting, escaping, and logic.
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```typescript
|
|
86
|
-
* const renderer = new HandlebarsRenderer();
|
|
87
|
-
*
|
|
88
|
-
* // Simple render
|
|
89
|
-
* const html = await renderer.render('<div>{{output.name}}</div>', { output: { name: 'Test' } });
|
|
90
|
-
*
|
|
91
|
-
* // With custom helpers
|
|
92
|
-
* renderer.registerHelper('shout', (str) => String(str).toUpperCase() + '!');
|
|
93
|
-
* const html2 = await renderer.render('<div>{{shout output.name}}</div>', { output: { name: 'hello' } });
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
class HandlebarsRenderer {
|
|
97
|
-
options;
|
|
98
|
-
compiledTemplates = new Map();
|
|
99
|
-
initialized = false;
|
|
100
|
-
hbs = null;
|
|
101
|
-
constructor(options = {}) {
|
|
102
|
-
this.options = {
|
|
103
|
-
strict: false,
|
|
104
|
-
autoEscape: true,
|
|
105
|
-
...options,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Initialize the renderer with Handlebars.
|
|
110
|
-
*/
|
|
111
|
-
async init() {
|
|
112
|
-
if (this.initialized)
|
|
113
|
-
return;
|
|
114
|
-
this.hbs = await loadHandlebars();
|
|
115
|
-
// Register built-in helpers
|
|
116
|
-
for (const [name, helper] of Object.entries(helpers_1.builtinHelpers)) {
|
|
117
|
-
this.hbs.registerHelper(name, helper);
|
|
118
|
-
}
|
|
119
|
-
// Register custom helpers
|
|
120
|
-
if (this.options.helpers) {
|
|
121
|
-
for (const [name, helper] of Object.entries(this.options.helpers)) {
|
|
122
|
-
this.hbs.registerHelper(name, helper);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
// Register partials
|
|
126
|
-
if (this.options.partials) {
|
|
127
|
-
for (const [name, template] of Object.entries(this.options.partials)) {
|
|
128
|
-
this.hbs.registerPartial(name, template);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
this.initialized = true;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Render a Handlebars template.
|
|
135
|
-
*
|
|
136
|
-
* @param template - Template string
|
|
137
|
-
* @param context - Render context with input/output
|
|
138
|
-
* @returns Rendered HTML string
|
|
139
|
-
*/
|
|
140
|
-
async render(template, context) {
|
|
141
|
-
await this.init();
|
|
142
|
-
if (!this.hbs) {
|
|
143
|
-
throw new Error('Handlebars not initialized');
|
|
144
|
-
}
|
|
145
|
-
// Get or compile template
|
|
146
|
-
let compiled = this.compiledTemplates.get(template);
|
|
147
|
-
if (!compiled) {
|
|
148
|
-
compiled = this.hbs.compile(template, {
|
|
149
|
-
strict: this.options.strict,
|
|
150
|
-
noEscape: !this.options.autoEscape,
|
|
151
|
-
});
|
|
152
|
-
this.compiledTemplates.set(template, compiled);
|
|
153
|
-
}
|
|
154
|
-
// Build template data
|
|
155
|
-
const data = {
|
|
156
|
-
input: context.input ?? {},
|
|
157
|
-
output: context.output ?? {},
|
|
158
|
-
structuredContent: context.structuredContent,
|
|
159
|
-
// Also expose at root level for convenience
|
|
160
|
-
...context.input,
|
|
161
|
-
...(typeof context.output === 'object' && context.output !== null
|
|
162
|
-
? context.output
|
|
163
|
-
: {}),
|
|
164
|
-
};
|
|
165
|
-
// Render template
|
|
166
|
-
try {
|
|
167
|
-
return compiled(data);
|
|
168
|
-
}
|
|
169
|
-
catch (error) {
|
|
170
|
-
throw new Error(`Template rendering failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Render a template synchronously.
|
|
175
|
-
*
|
|
176
|
-
* Note: Requires Handlebars to be pre-loaded. Use `render()` for async loading.
|
|
177
|
-
*
|
|
178
|
-
* @param template - Template string
|
|
179
|
-
* @param context - Render context
|
|
180
|
-
* @returns Rendered HTML string
|
|
181
|
-
*/
|
|
182
|
-
renderSync(template, context) {
|
|
183
|
-
if (!this.initialized || !this.hbs) {
|
|
184
|
-
throw new Error('HandlebarsRenderer not initialized. Call render() first or use initSync().');
|
|
185
|
-
}
|
|
186
|
-
// Get or compile template
|
|
187
|
-
let compiled = this.compiledTemplates.get(template);
|
|
188
|
-
if (!compiled) {
|
|
189
|
-
compiled = this.hbs.compile(template, {
|
|
190
|
-
strict: this.options.strict,
|
|
191
|
-
noEscape: !this.options.autoEscape,
|
|
192
|
-
});
|
|
193
|
-
this.compiledTemplates.set(template, compiled);
|
|
194
|
-
}
|
|
195
|
-
// Build template data
|
|
196
|
-
const data = {
|
|
197
|
-
input: context.input ?? {},
|
|
198
|
-
output: context.output ?? {},
|
|
199
|
-
structuredContent: context.structuredContent,
|
|
200
|
-
...context.input,
|
|
201
|
-
...(typeof context.output === 'object' && context.output !== null
|
|
202
|
-
? context.output
|
|
203
|
-
: {}),
|
|
204
|
-
};
|
|
205
|
-
return compiled(data);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Initialize synchronously (for environments where Handlebars is already loaded).
|
|
209
|
-
*/
|
|
210
|
-
initSync(handlebars) {
|
|
211
|
-
this.hbs = handlebars;
|
|
212
|
-
// Register built-in helpers
|
|
213
|
-
for (const [name, helper] of Object.entries(helpers_1.builtinHelpers)) {
|
|
214
|
-
this.hbs.registerHelper(name, helper);
|
|
215
|
-
}
|
|
216
|
-
// Register custom helpers
|
|
217
|
-
if (this.options.helpers) {
|
|
218
|
-
for (const [name, helper] of Object.entries(this.options.helpers)) {
|
|
219
|
-
this.hbs.registerHelper(name, helper);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
// Register partials
|
|
223
|
-
if (this.options.partials) {
|
|
224
|
-
for (const [name, template] of Object.entries(this.options.partials)) {
|
|
225
|
-
this.hbs.registerPartial(name, template);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
this.initialized = true;
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Register a custom helper.
|
|
232
|
-
*
|
|
233
|
-
* @param name - Helper name
|
|
234
|
-
* @param fn - Helper function
|
|
235
|
-
*/
|
|
236
|
-
registerHelper(name, fn) {
|
|
237
|
-
if (this.hbs) {
|
|
238
|
-
this.hbs.registerHelper(name, fn);
|
|
239
|
-
}
|
|
240
|
-
// Also store for future use
|
|
241
|
-
if (!this.options.helpers) {
|
|
242
|
-
this.options.helpers = {};
|
|
243
|
-
}
|
|
244
|
-
this.options.helpers[name] = fn;
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Register a partial template.
|
|
248
|
-
*
|
|
249
|
-
* @param name - Partial name
|
|
250
|
-
* @param template - Partial template string
|
|
251
|
-
*/
|
|
252
|
-
registerPartial(name, template) {
|
|
253
|
-
if (this.hbs) {
|
|
254
|
-
this.hbs.registerPartial(name, template);
|
|
255
|
-
}
|
|
256
|
-
// Also store for future use
|
|
257
|
-
if (!this.options.partials) {
|
|
258
|
-
this.options.partials = {};
|
|
259
|
-
}
|
|
260
|
-
this.options.partials[name] = template;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Clear compiled template cache.
|
|
264
|
-
*/
|
|
265
|
-
clearCache() {
|
|
266
|
-
this.compiledTemplates.clear();
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Check if a template string contains Handlebars syntax.
|
|
270
|
-
*
|
|
271
|
-
* @param template - Template string to check
|
|
272
|
-
* @returns true if contains {{...}} syntax
|
|
273
|
-
*/
|
|
274
|
-
static containsHandlebars(template) {
|
|
275
|
-
// Match {{...}} but not {{! comments }}
|
|
276
|
-
return /\{\{(?!!)[\s\S]*?\}\}/.test(template);
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Check if the renderer is initialized.
|
|
280
|
-
*/
|
|
281
|
-
get isInitialized() {
|
|
282
|
-
return this.initialized;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
exports.HandlebarsRenderer = HandlebarsRenderer;
|
|
286
|
-
/**
|
|
287
|
-
* Create a new Handlebars renderer.
|
|
288
|
-
*
|
|
289
|
-
* @param options - Renderer options
|
|
290
|
-
* @returns New HandlebarsRenderer instance
|
|
291
|
-
*/
|
|
292
|
-
function createHandlebarsRenderer(options) {
|
|
293
|
-
return new HandlebarsRenderer(options);
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Render a template with default settings.
|
|
297
|
-
*
|
|
298
|
-
* Convenience function for one-off rendering.
|
|
299
|
-
*
|
|
300
|
-
* @param template - Template string
|
|
301
|
-
* @param context - Render context
|
|
302
|
-
* @returns Rendered HTML
|
|
303
|
-
*/
|
|
304
|
-
async function renderTemplate(template, context) {
|
|
305
|
-
const renderer = createHandlebarsRenderer();
|
|
306
|
-
return renderer.render(template, context);
|
|
307
|
-
}
|
|
308
|
-
/**
|
|
309
|
-
* Check if a template contains Handlebars syntax.
|
|
310
|
-
*
|
|
311
|
-
* @param template - Template string
|
|
312
|
-
* @returns true if contains {{...}}
|
|
313
|
-
*/
|
|
314
|
-
function containsHandlebars(template) {
|
|
315
|
-
return HandlebarsRenderer.containsHandlebars(template);
|
|
316
|
-
}
|
|
317
|
-
// ============================================
|
|
318
|
-
// Re-exports
|
|
319
|
-
// ============================================
|
|
320
|
-
var helpers_2 = require("./helpers");
|
|
321
|
-
Object.defineProperty(exports, "builtinHelpers", { enumerable: true, get: function () { return helpers_2.builtinHelpers; } });
|
|
322
|
-
Object.defineProperty(exports, "escapeHtml", { enumerable: true, get: function () { return helpers_2.escapeHtml; } });
|
|
323
|
-
Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return helpers_2.formatDate; } });
|
|
324
|
-
Object.defineProperty(exports, "formatCurrency", { enumerable: true, get: function () { return helpers_2.formatCurrency; } });
|
|
325
|
-
Object.defineProperty(exports, "formatNumber", { enumerable: true, get: function () { return helpers_2.formatNumber; } });
|
|
326
|
-
Object.defineProperty(exports, "json", { enumerable: true, get: function () { return helpers_2.json; } });
|
|
327
|
-
Object.defineProperty(exports, "jsonEmbed", { enumerable: true, get: function () { return helpers_2.jsonEmbed; } });
|
|
328
|
-
Object.defineProperty(exports, "eq", { enumerable: true, get: function () { return helpers_2.eq; } });
|
|
329
|
-
Object.defineProperty(exports, "ne", { enumerable: true, get: function () { return helpers_2.ne; } });
|
|
330
|
-
Object.defineProperty(exports, "gt", { enumerable: true, get: function () { return helpers_2.gt; } });
|
|
331
|
-
Object.defineProperty(exports, "gte", { enumerable: true, get: function () { return helpers_2.gte; } });
|
|
332
|
-
Object.defineProperty(exports, "lt", { enumerable: true, get: function () { return helpers_2.lt; } });
|
|
333
|
-
Object.defineProperty(exports, "lte", { enumerable: true, get: function () { return helpers_2.lte; } });
|
|
334
|
-
Object.defineProperty(exports, "and", { enumerable: true, get: function () { return helpers_2.and; } });
|
|
335
|
-
Object.defineProperty(exports, "or", { enumerable: true, get: function () { return helpers_2.or; } });
|
|
336
|
-
Object.defineProperty(exports, "not", { enumerable: true, get: function () { return helpers_2.not; } });
|
|
337
|
-
Object.defineProperty(exports, "first", { enumerable: true, get: function () { return helpers_2.first; } });
|
|
338
|
-
Object.defineProperty(exports, "last", { enumerable: true, get: function () { return helpers_2.last; } });
|
|
339
|
-
Object.defineProperty(exports, "length", { enumerable: true, get: function () { return helpers_2.length; } });
|
|
340
|
-
Object.defineProperty(exports, "includes", { enumerable: true, get: function () { return helpers_2.includes; } });
|
|
341
|
-
Object.defineProperty(exports, "join", { enumerable: true, get: function () { return helpers_2.join; } });
|
|
342
|
-
Object.defineProperty(exports, "uppercase", { enumerable: true, get: function () { return helpers_2.uppercase; } });
|
|
343
|
-
Object.defineProperty(exports, "lowercase", { enumerable: true, get: function () { return helpers_2.lowercase; } });
|
|
344
|
-
Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return helpers_2.capitalize; } });
|
|
345
|
-
Object.defineProperty(exports, "truncate", { enumerable: true, get: function () { return helpers_2.truncate; } });
|
|
346
|
-
Object.defineProperty(exports, "defaultValue", { enumerable: true, get: function () { return helpers_2.defaultValue; } });
|
|
347
|
-
Object.defineProperty(exports, "uniqueId", { enumerable: true, get: function () { return helpers_2.uniqueId; } });
|
|
348
|
-
Object.defineProperty(exports, "classNames", { enumerable: true, get: function () { return helpers_2.classNames; } });
|
|
349
|
-
Object.defineProperty(exports, "resetUniqueIdCounter", { enumerable: true, get: function () { return helpers_2.resetUniqueIdCounter; } });
|
|
350
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlebars/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Handlebars Renderer Module\n *\n * Provides Handlebars template rendering for HTML templates.\n * Enhances plain HTML with {{variable}} syntax support.\n *\n * @example\n * ```typescript\n * import { HandlebarsRenderer, createHandlebarsRenderer } from '@frontmcp/ui/handlebars';\n *\n * const renderer = createHandlebarsRenderer();\n *\n * const template = `\n * <div class=\"card\">\n * <h2>{{escapeHtml output.title}}</h2>\n * <p>Created: {{formatDate output.createdAt}}</p>\n * {{#if output.items.length}}\n * <ul>\n * {{#each output.items}}\n * <li>{{this.name}} - {{formatCurrency this.price}}</li>\n * {{/each}}\n * </ul>\n * {{/if}}\n * </div>\n * `;\n *\n * const html = renderer.render(template, {\n * input: { query: 'test' },\n * output: {\n * title: 'Results',\n * createdAt: new Date(),\n * items: [{ name: 'Item 1', price: 9.99 }]\n * }\n * });\n * ```\n *\n * @packageDocumentation\n */\n\nimport type { TemplateContext, TemplateHelpers } from '../types';\nimport { builtinHelpers, type HelperFunction } from './helpers';\n\n/**\n * Lazy-loaded Handlebars module.\n */\nlet Handlebars: typeof import('handlebars') | null = null;\n\n/**\n * Load Handlebars module.\n */\nasync function loadHandlebars(): Promise<typeof import('handlebars')> {\n if (Handlebars !== null) {\n return Handlebars;\n }\n\n try {\n Handlebars = await import('handlebars');\n return Handlebars;\n } catch {\n throw new Error('Handlebars is required for template rendering. Install it: npm install handlebars');\n }\n}\n\n/**\n * Check if Handlebars is available.\n */\nexport async function isHandlebarsAvailable(): Promise<boolean> {\n try {\n await loadHandlebars();\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Options for the Handlebars renderer.\n */\nexport interface HandlebarsRendererOptions {\n /**\n * Additional custom helpers to register.\n */\n helpers?: Record<string, HelperFunction>;\n\n /**\n * Partial templates to register.\n */\n partials?: Record<string, string>;\n\n /**\n * Strict mode - error on missing variables.\n * @default false\n */\n strict?: boolean;\n\n /**\n * Whether to auto-escape output.\n * @default true\n */\n autoEscape?: boolean;\n}\n\n/**\n * Render context for templates.\n */\nexport interface RenderContext {\n /**\n * Tool input arguments.\n */\n input: Record<string, unknown>;\n\n /**\n * Tool output/result.\n */\n output: unknown;\n\n /**\n * Structured content (if schema provided).\n */\n structuredContent?: unknown;\n\n /**\n * Template helper functions.\n */\n helpers?: TemplateHelpers;\n}\n\n/**\n * Handlebars template renderer.\n *\n * Provides safe, cacheable Handlebars rendering with built-in helpers\n * for formatting, escaping, and logic.\n *\n * @example\n * ```typescript\n * const renderer = new HandlebarsRenderer();\n *\n * // Simple render\n * const html = await renderer.render('<div>{{output.name}}</div>', { output: { name: 'Test' } });\n *\n * // With custom helpers\n * renderer.registerHelper('shout', (str) => String(str).toUpperCase() + '!');\n * const html2 = await renderer.render('<div>{{shout output.name}}</div>', { output: { name: 'hello' } });\n * ```\n */\nexport class HandlebarsRenderer {\n private readonly options: HandlebarsRendererOptions;\n private compiledTemplates = new Map<string, HandlebarsTemplateDelegate>();\n private initialized = false;\n private hbs: typeof import('handlebars') | null = null;\n\n constructor(options: HandlebarsRendererOptions = {}) {\n this.options = {\n strict: false,\n autoEscape: true,\n ...options,\n };\n }\n\n /**\n * Initialize the renderer with Handlebars.\n */\n private async init(): Promise<void> {\n if (this.initialized) return;\n\n this.hbs = await loadHandlebars();\n\n // Register built-in helpers\n for (const [name, helper] of Object.entries(builtinHelpers)) {\n this.hbs.registerHelper(name, helper as Handlebars.HelperDelegate);\n }\n\n // Register custom helpers\n if (this.options.helpers) {\n for (const [name, helper] of Object.entries(this.options.helpers)) {\n this.hbs.registerHelper(name, helper as Handlebars.HelperDelegate);\n }\n }\n\n // Register partials\n if (this.options.partials) {\n for (const [name, template] of Object.entries(this.options.partials)) {\n this.hbs.registerPartial(name, template);\n }\n }\n\n this.initialized = true;\n }\n\n /**\n * Render a Handlebars template.\n *\n * @param template - Template string\n * @param context - Render context with input/output\n * @returns Rendered HTML string\n */\n async render(template: string, context: RenderContext): Promise<string> {\n await this.init();\n\n if (!this.hbs) {\n throw new Error('Handlebars not initialized');\n }\n\n // Get or compile template\n let compiled = this.compiledTemplates.get(template);\n if (!compiled) {\n compiled = this.hbs.compile(template, {\n strict: this.options.strict,\n noEscape: !this.options.autoEscape,\n });\n this.compiledTemplates.set(template, compiled);\n }\n\n // Build template data\n const data = {\n input: context.input ?? {},\n output: context.output ?? {},\n structuredContent: context.structuredContent,\n // Also expose at root level for convenience\n ...context.input,\n ...(typeof context.output === 'object' && context.output !== null\n ? (context.output as Record<string, unknown>)\n : {}),\n };\n\n // Render template\n try {\n return compiled(data);\n } catch (error) {\n throw new Error(`Template rendering failed: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n\n /**\n * Render a template synchronously.\n *\n * Note: Requires Handlebars to be pre-loaded. Use `render()` for async loading.\n *\n * @param template - Template string\n * @param context - Render context\n * @returns Rendered HTML string\n */\n renderSync(template: string, context: RenderContext): string {\n if (!this.initialized || !this.hbs) {\n throw new Error('HandlebarsRenderer not initialized. Call render() first or use initSync().');\n }\n\n // Get or compile template\n let compiled = this.compiledTemplates.get(template);\n if (!compiled) {\n compiled = this.hbs.compile(template, {\n strict: this.options.strict,\n noEscape: !this.options.autoEscape,\n });\n this.compiledTemplates.set(template, compiled);\n }\n\n // Build template data\n const data = {\n input: context.input ?? {},\n output: context.output ?? {},\n structuredContent: context.structuredContent,\n ...context.input,\n ...(typeof context.output === 'object' && context.output !== null\n ? (context.output as Record<string, unknown>)\n : {}),\n };\n\n return compiled(data);\n }\n\n /**\n * Initialize synchronously (for environments where Handlebars is already loaded).\n */\n initSync(handlebars: typeof import('handlebars')): void {\n this.hbs = handlebars;\n\n // Register built-in helpers\n for (const [name, helper] of Object.entries(builtinHelpers)) {\n this.hbs.registerHelper(name, helper as Handlebars.HelperDelegate);\n }\n\n // Register custom helpers\n if (this.options.helpers) {\n for (const [name, helper] of Object.entries(this.options.helpers)) {\n this.hbs.registerHelper(name, helper as Handlebars.HelperDelegate);\n }\n }\n\n // Register partials\n if (this.options.partials) {\n for (const [name, template] of Object.entries(this.options.partials)) {\n this.hbs.registerPartial(name, template);\n }\n }\n\n this.initialized = true;\n }\n\n /**\n * Register a custom helper.\n *\n * @param name - Helper name\n * @param fn - Helper function\n */\n registerHelper(name: string, fn: HelperFunction): void {\n if (this.hbs) {\n this.hbs.registerHelper(name, fn as Handlebars.HelperDelegate);\n }\n // Also store for future use\n if (!this.options.helpers) {\n this.options.helpers = {};\n }\n this.options.helpers[name] = fn;\n }\n\n /**\n * Register a partial template.\n *\n * @param name - Partial name\n * @param template - Partial template string\n */\n registerPartial(name: string, template: string): void {\n if (this.hbs) {\n this.hbs.registerPartial(name, template);\n }\n // Also store for future use\n if (!this.options.partials) {\n this.options.partials = {};\n }\n this.options.partials[name] = template;\n }\n\n /**\n * Clear compiled template cache.\n */\n clearCache(): void {\n this.compiledTemplates.clear();\n }\n\n /**\n * Check if a template string contains Handlebars syntax.\n *\n * @param template - Template string to check\n * @returns true if contains {{...}} syntax\n */\n static containsHandlebars(template: string): boolean {\n // Match {{...}} but not {{! comments }}\n return /\\{\\{(?!!)[\\s\\S]*?\\}\\}/.test(template);\n }\n\n /**\n * Check if the renderer is initialized.\n */\n get isInitialized(): boolean {\n return this.initialized;\n }\n}\n\n/**\n * Create a new Handlebars renderer.\n *\n * @param options - Renderer options\n * @returns New HandlebarsRenderer instance\n */\nexport function createHandlebarsRenderer(options?: HandlebarsRendererOptions): HandlebarsRenderer {\n return new HandlebarsRenderer(options);\n}\n\n/**\n * Render a template with default settings.\n *\n * Convenience function for one-off rendering.\n *\n * @param template - Template string\n * @param context - Render context\n * @returns Rendered HTML\n */\nexport async function renderTemplate(template: string, context: RenderContext): Promise<string> {\n const renderer = createHandlebarsRenderer();\n return renderer.render(template, context);\n}\n\n/**\n * Check if a template contains Handlebars syntax.\n *\n * @param template - Template string\n * @returns true if contains {{...}}\n */\nexport function containsHandlebars(template: string): boolean {\n return HandlebarsRenderer.containsHandlebars(template);\n}\n\n// ============================================\n// Re-exports\n// ============================================\n\nexport {\n builtinHelpers,\n escapeHtml,\n formatDate,\n formatCurrency,\n formatNumber,\n json,\n jsonEmbed,\n eq,\n ne,\n gt,\n gte,\n lt,\n lte,\n and,\n or,\n not,\n first,\n last,\n length,\n includes,\n join,\n uppercase,\n lowercase,\n capitalize,\n truncate,\n defaultValue,\n uniqueId,\n classNames,\n resetUniqueIdCounter,\n type HelperFunction,\n} from './helpers';\n\n// Handlebars types\ntype HandlebarsTemplateDelegate = ReturnType<typeof import('handlebars')['compile']>;\n"]}
|
package/src/index.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @frontmcp/ui
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive UI library for FrontMCP applications.
|
|
5
|
-
* Provides theme system, layouts, components, page templates, and widgets
|
|
6
|
-
* for building authentication and authorization UIs across multiple LLM platforms.
|
|
7
|
-
*
|
|
8
|
-
* Key features:
|
|
9
|
-
* - Multi-framework renderer support (HTML, React, MDX)
|
|
10
|
-
* - Platform-aware theming (OpenAI, Claude, etc.)
|
|
11
|
-
* - Runtime JSX/TSX transpilation with SWC
|
|
12
|
-
* - MCP Bridge integration for cross-platform widgets
|
|
13
|
-
* - Standalone types and adapters for external consumers (AgentLink)
|
|
14
|
-
* - Build-time API for pre-compiling UI templates
|
|
15
|
-
*
|
|
16
|
-
* ## Standalone Usage (without @frontmcp/sdk)
|
|
17
|
-
*
|
|
18
|
-
* For external systems like AgentLink that want to use the UI components
|
|
19
|
-
* without the full SDK:
|
|
20
|
-
*
|
|
21
|
-
* ```typescript
|
|
22
|
-
* // Import standalone types
|
|
23
|
-
* import type { UITemplateConfig, TemplateContext } from '@frontmcp/ui/types';
|
|
24
|
-
*
|
|
25
|
-
* // Import platform adapters
|
|
26
|
-
* import { buildUIMeta } from '@frontmcp/ui/adapters';
|
|
27
|
-
*
|
|
28
|
-
* // Import build-time API
|
|
29
|
-
* import { buildToolUI } from '@frontmcp/ui/build';
|
|
30
|
-
*
|
|
31
|
-
* // Import components directly
|
|
32
|
-
* import { card, button, table } from '@frontmcp/ui/components';
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export * from './types';
|
|
36
|
-
export { type AIPlatformType, type UIMetadata, type BuildUIMetaOptions, type BuildToolDiscoveryMetaOptions, buildUIMeta, buildToolDiscoveryMeta, buildOpenAICSP, } from './adapters';
|
|
37
|
-
export { type BuildTargetPlatform, type BuildOptions, type BuildResult, type MultiBuildOptions, type MultiBuildResult, type StaticWidgetOptions, buildToolUI, buildToolUIMulti, buildStaticWidget, } from './build';
|
|
38
|
-
export * from './validation';
|
|
39
|
-
export * from './theme';
|
|
40
|
-
export * from './layouts';
|
|
41
|
-
export * from './components';
|
|
42
|
-
export * from './pages';
|
|
43
|
-
export * from './widgets';
|
|
44
|
-
export { type ProviderType, type DisplayMode, type ThemeMode, type HostContext, type MCPBridge, type MCPBridgeExtended, type WrapToolUIOptions, type OpenAIRuntime, type OpenAIUserAgent, type SafeAreaInsets, MCP_BRIDGE_RUNTIME, getMCPBridgeScript, isMCPBridgeSupported, DEFAULT_CSP_DIRECTIVES, buildCSPDirectives, buildCSPMetaTag, validateCSPDomain, sanitizeCSPDomains, type WrapToolUIFullOptions, wrapToolUI, wrapToolUIMinimal, createTemplateHelpers, getToolUIMimeType, type SanitizerFn, type SanitizeOptions, REDACTION_TOKENS, PII_PATTERNS, sanitizeInput, createSanitizer, detectPII, isEmail, isPhone, isCreditCard, isSSN, isIPv4, detectPIIType, redactPIIFromText, } from './runtime';
|
|
45
|
-
export * from './tool-template';
|
|
46
|
-
export * from './base-template';
|
|
47
|
-
export * from './renderers';
|
|
48
|
-
export { type PlatformAdapter, type AdapterCapabilities, type BridgeConfig, FrontMcpBridge, createBridge, AdapterRegistry, defaultRegistry, registerAdapter, generateBridgeIIFE, generatePlatformBundle, UNIVERSAL_BRIDGE_SCRIPT, BRIDGE_SCRIPT_TAGS, } from './bridge';
|
|
49
|
-
export { registerAllComponents, registerFmcpButton, registerFmcpCard, registerFmcpAlert, registerFmcpBadge, registerFmcpInput, registerFmcpSelect, FmcpButton, FmcpCard, FmcpAlert, FmcpBadge, FmcpInput, FmcpSelect, FmcpElement, } from './web-components';
|
|
50
|
-
export { ToolUIRegistry, type RenderOptions, type UIRenderResult, type CompileStaticWidgetOptions, type HybridComponentPayload, type BuildHybridComponentPayloadOptions, renderToolTemplate, renderToolTemplateAsync, isReactComponent, hasUIConfig, containsMdxSyntax, type RenderTemplateOptions, UI_RESOURCE_SCHEME, isUIResourceUri, isStaticWidgetUri, parseWidgetUri, buildStaticWidgetUri, getUIResourceMimeType, type ParsedWidgetUri, } from './registry';
|