@frontmcp/uipack 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/CLAUDE.md +246 -0
- package/LICENSE +201 -0
- package/README.md +150 -0
- package/adapters/index.d.ts +13 -0
- package/adapters/index.d.ts.map +1 -0
- package/adapters/index.js +462 -0
- package/adapters/platform-meta.d.ts +166 -0
- package/adapters/platform-meta.d.ts.map +1 -0
- package/adapters/response-builder.d.ts +108 -0
- package/adapters/response-builder.d.ts.map +1 -0
- package/adapters/serving-mode.d.ts +107 -0
- package/adapters/serving-mode.d.ts.map +1 -0
- package/base-template/bridge.d.ts +90 -0
- package/base-template/bridge.d.ts.map +1 -0
- package/base-template/default-base-template.d.ts +92 -0
- package/base-template/default-base-template.d.ts.map +1 -0
- package/base-template/index.d.ts +15 -0
- package/base-template/index.d.ts.map +1 -0
- package/base-template/index.js +1398 -0
- package/base-template/polyfills.d.ts +31 -0
- package/base-template/polyfills.d.ts.map +1 -0
- package/base-template/theme-styles.d.ts +74 -0
- package/base-template/theme-styles.d.ts.map +1 -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-runtime/index.js +883 -0
- package/build/cdn-resources.d.ts +243 -0
- package/build/cdn-resources.d.ts.map +1 -0
- package/build/index.d.ts +295 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +6861 -0
- package/build/widget-manifest.d.ts +362 -0
- package/build/widget-manifest.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 +35 -0
- package/bundler/index.d.ts.map +1 -0
- package/bundler/index.js +2947 -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/dependency/cdn-registry.d.ts +98 -0
- package/dependency/cdn-registry.d.ts.map +1 -0
- package/dependency/import-map.d.ts +186 -0
- package/dependency/import-map.d.ts.map +1 -0
- package/dependency/import-parser.d.ts +82 -0
- package/dependency/import-parser.d.ts.map +1 -0
- package/dependency/index.d.ts +17 -0
- package/dependency/index.d.ts.map +1 -0
- package/dependency/index.js +3215 -0
- package/dependency/resolver.d.ts +164 -0
- package/dependency/resolver.d.ts.map +1 -0
- package/dependency/schemas.d.ts +486 -0
- package/dependency/schemas.d.ts.map +1 -0
- package/dependency/template-loader.d.ts +204 -0
- package/dependency/template-loader.d.ts.map +1 -0
- package/dependency/template-processor.d.ts +118 -0
- package/dependency/template-processor.d.ts.map +1 -0
- package/dependency/types.d.ts +739 -0
- package/dependency/types.d.ts.map +1 -0
- package/esm/adapters/index.d.ts +13 -0
- package/esm/adapters/index.d.ts.map +1 -0
- package/esm/adapters/index.js +427 -0
- package/esm/adapters/platform-meta.d.ts +166 -0
- package/esm/adapters/platform-meta.d.ts.map +1 -0
- package/esm/adapters/response-builder.d.ts +108 -0
- package/esm/adapters/response-builder.d.ts.map +1 -0
- package/esm/adapters/serving-mode.d.ts +107 -0
- package/esm/adapters/serving-mode.d.ts.map +1 -0
- package/esm/base-template/bridge.d.ts +90 -0
- package/esm/base-template/bridge.d.ts.map +1 -0
- package/esm/base-template/default-base-template.d.ts +92 -0
- package/esm/base-template/default-base-template.d.ts.map +1 -0
- package/esm/base-template/index.d.ts +15 -0
- package/esm/base-template/index.d.ts.map +1 -0
- package/esm/base-template/index.js +1364 -0
- package/esm/base-template/polyfills.d.ts +31 -0
- package/esm/base-template/polyfills.d.ts.map +1 -0
- package/esm/base-template/theme-styles.d.ts +74 -0
- package/esm/base-template/theme-styles.d.ts.map +1 -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-runtime/index.js +853 -0
- package/esm/build/cdn-resources.d.ts +243 -0
- package/esm/build/cdn-resources.d.ts.map +1 -0
- package/esm/build/index.d.ts +295 -0
- package/esm/build/index.d.ts.map +1 -0
- package/esm/build/index.js +6786 -0
- package/esm/build/widget-manifest.d.ts +362 -0
- package/esm/build/widget-manifest.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 +35 -0
- package/esm/bundler/index.d.ts.map +1 -0
- package/esm/bundler/index.js +2882 -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/dependency/cdn-registry.d.ts +98 -0
- package/esm/dependency/cdn-registry.d.ts.map +1 -0
- package/esm/dependency/import-map.d.ts +186 -0
- package/esm/dependency/import-map.d.ts.map +1 -0
- package/esm/dependency/import-parser.d.ts +82 -0
- package/esm/dependency/import-parser.d.ts.map +1 -0
- package/esm/dependency/index.d.ts +17 -0
- package/esm/dependency/index.d.ts.map +1 -0
- package/esm/dependency/index.js +3096 -0
- package/esm/dependency/resolver.d.ts +164 -0
- package/esm/dependency/resolver.d.ts.map +1 -0
- package/esm/dependency/schemas.d.ts +486 -0
- package/esm/dependency/schemas.d.ts.map +1 -0
- package/esm/dependency/template-loader.d.ts +204 -0
- package/esm/dependency/template-loader.d.ts.map +1 -0
- package/esm/dependency/template-processor.d.ts +118 -0
- package/esm/dependency/template-processor.d.ts.map +1 -0
- package/esm/dependency/types.d.ts +739 -0
- package/esm/dependency/types.d.ts.map +1 -0
- package/esm/handlebars/expression-extractor.d.ts +147 -0
- package/esm/handlebars/expression-extractor.d.ts.map +1 -0
- package/esm/handlebars/helpers.d.ts +339 -0
- package/esm/handlebars/helpers.d.ts.map +1 -0
- package/esm/handlebars/index.d.ts +195 -0
- package/esm/handlebars/index.d.ts.map +1 -0
- package/esm/handlebars/index.js +587 -0
- package/esm/index.d.ts +50 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +12434 -0
- package/esm/package.json +68 -0
- package/esm/registry/index.d.ts +46 -0
- package/esm/registry/index.d.ts.map +1 -0
- package/esm/registry/index.js +6237 -0
- package/esm/registry/render-template.d.ts +91 -0
- package/esm/registry/render-template.d.ts.map +1 -0
- package/esm/registry/tool-ui.registry.d.ts +294 -0
- package/esm/registry/tool-ui.registry.d.ts.map +1 -0
- package/esm/registry/uri-utils.d.ts +56 -0
- package/esm/registry/uri-utils.d.ts.map +1 -0
- package/esm/renderers/cache.d.ts +145 -0
- package/esm/renderers/cache.d.ts.map +1 -0
- package/esm/renderers/html.renderer.d.ts +123 -0
- package/esm/renderers/html.renderer.d.ts.map +1 -0
- package/esm/renderers/index.d.ts +36 -0
- package/esm/renderers/index.d.ts.map +1 -0
- package/esm/renderers/index.js +1654 -0
- package/esm/renderers/mdx.renderer.d.ts +120 -0
- package/esm/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/renderers/registry.d.ts +133 -0
- package/esm/renderers/registry.d.ts.map +1 -0
- package/esm/renderers/types.d.ts +342 -0
- package/esm/renderers/types.d.ts.map +1 -0
- package/esm/renderers/utils/detect.d.ts +107 -0
- package/esm/renderers/utils/detect.d.ts.map +1 -0
- package/esm/renderers/utils/hash.d.ts +40 -0
- package/esm/renderers/utils/hash.d.ts.map +1 -0
- package/esm/renderers/utils/index.d.ts +9 -0
- package/esm/renderers/utils/index.d.ts.map +1 -0
- package/esm/renderers/utils/transpiler.d.ts +89 -0
- package/esm/renderers/utils/transpiler.d.ts.map +1 -0
- package/esm/runtime/adapters/html.adapter.d.ts +59 -0
- package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/index.d.ts +26 -0
- package/esm/runtime/adapters/index.d.ts.map +1 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/types.d.ts +95 -0
- package/esm/runtime/adapters/types.d.ts.map +1 -0
- package/esm/runtime/csp.d.ts +48 -0
- package/esm/runtime/csp.d.ts.map +1 -0
- package/esm/runtime/index.d.ts +17 -0
- package/esm/runtime/index.d.ts.map +1 -0
- package/esm/runtime/index.js +4976 -0
- package/esm/runtime/mcp-bridge.d.ts +101 -0
- package/esm/runtime/mcp-bridge.d.ts.map +1 -0
- package/esm/runtime/renderer-runtime.d.ts +133 -0
- package/esm/runtime/renderer-runtime.d.ts.map +1 -0
- package/esm/runtime/sanitizer.d.ts +172 -0
- package/esm/runtime/sanitizer.d.ts.map +1 -0
- package/esm/runtime/types.d.ts +415 -0
- package/esm/runtime/types.d.ts.map +1 -0
- package/esm/runtime/wrapper.d.ts +421 -0
- package/esm/runtime/wrapper.d.ts.map +1 -0
- package/esm/styles/index.d.ts +8 -0
- package/esm/styles/index.d.ts.map +1 -0
- package/esm/styles/index.js +171 -0
- package/esm/styles/variants.d.ts +51 -0
- package/esm/styles/variants.d.ts.map +1 -0
- package/esm/theme/cdn.d.ts +195 -0
- package/esm/theme/cdn.d.ts.map +1 -0
- package/esm/theme/index.d.ts +18 -0
- package/esm/theme/index.d.ts.map +1 -0
- package/esm/theme/index.js +700 -0
- package/esm/theme/platforms.d.ts +107 -0
- package/esm/theme/platforms.d.ts.map +1 -0
- package/esm/theme/presets/github-openai.d.ts +50 -0
- package/esm/theme/presets/github-openai.d.ts.map +1 -0
- package/esm/theme/presets/index.d.ts +11 -0
- package/esm/theme/presets/index.d.ts.map +1 -0
- package/esm/theme/theme.d.ts +396 -0
- package/esm/theme/theme.d.ts.map +1 -0
- package/esm/tool-template/builder.d.ts +213 -0
- package/esm/tool-template/builder.d.ts.map +1 -0
- package/esm/tool-template/index.d.ts +16 -0
- package/esm/tool-template/index.d.ts.map +1 -0
- package/esm/tool-template/index.js +3518 -0
- package/esm/types/index.d.ts +14 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/index.js +75 -0
- package/esm/types/ui-config.d.ts +641 -0
- package/esm/types/ui-config.d.ts.map +1 -0
- package/esm/types/ui-runtime.d.ts +1008 -0
- package/esm/types/ui-runtime.d.ts.map +1 -0
- package/esm/typings/cache/cache-adapter.d.ts +125 -0
- package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
- package/esm/typings/cache/index.d.ts +10 -0
- package/esm/typings/cache/index.d.ts.map +1 -0
- package/esm/typings/cache/memory-cache.d.ts +92 -0
- package/esm/typings/cache/memory-cache.d.ts.map +1 -0
- package/esm/typings/dts-parser.d.ts +90 -0
- package/esm/typings/dts-parser.d.ts.map +1 -0
- package/esm/typings/index.d.ts +48 -0
- package/esm/typings/index.d.ts.map +1 -0
- package/esm/typings/index.js +812 -0
- package/esm/typings/schemas.d.ts +232 -0
- package/esm/typings/schemas.d.ts.map +1 -0
- package/esm/typings/type-fetcher.d.ts +89 -0
- package/esm/typings/type-fetcher.d.ts.map +1 -0
- package/esm/typings/types.d.ts +320 -0
- package/esm/typings/types.d.ts.map +1 -0
- package/esm/utils/escape-html.d.ts +58 -0
- package/esm/utils/escape-html.d.ts.map +1 -0
- package/esm/utils/index.d.ts +10 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +40 -0
- package/esm/utils/safe-stringify.d.ts +30 -0
- package/esm/utils/safe-stringify.d.ts.map +1 -0
- package/esm/validation/error-box.d.ts +56 -0
- package/esm/validation/error-box.d.ts.map +1 -0
- package/esm/validation/index.d.ts +13 -0
- package/esm/validation/index.d.ts.map +1 -0
- package/esm/validation/index.js +542 -0
- package/esm/validation/schema-paths.d.ts +118 -0
- package/esm/validation/schema-paths.d.ts.map +1 -0
- package/esm/validation/template-validator.d.ts +143 -0
- package/esm/validation/template-validator.d.ts.map +1 -0
- package/esm/validation/wrapper.d.ts +97 -0
- package/esm/validation/wrapper.d.ts.map +1 -0
- package/handlebars/expression-extractor.d.ts +147 -0
- package/handlebars/expression-extractor.d.ts.map +1 -0
- package/handlebars/helpers.d.ts +339 -0
- package/handlebars/helpers.d.ts.map +1 -0
- package/handlebars/index.d.ts +195 -0
- package/handlebars/index.d.ts.map +1 -0
- package/handlebars/index.js +666 -0
- package/index.d.ts +50 -0
- package/index.d.ts.map +1 -0
- package/index.js +12683 -0
- package/package.json +66 -0
- package/registry/index.d.ts +46 -0
- package/registry/index.d.ts.map +1 -0
- package/registry/index.js +6280 -0
- package/registry/render-template.d.ts +91 -0
- package/registry/render-template.d.ts.map +1 -0
- package/registry/tool-ui.registry.d.ts +294 -0
- package/registry/tool-ui.registry.d.ts.map +1 -0
- package/registry/uri-utils.d.ts +56 -0
- package/registry/uri-utils.d.ts.map +1 -0
- package/renderers/cache.d.ts +145 -0
- package/renderers/cache.d.ts.map +1 -0
- package/renderers/html.renderer.d.ts +123 -0
- package/renderers/html.renderer.d.ts.map +1 -0
- package/renderers/index.d.ts +36 -0
- package/renderers/index.d.ts.map +1 -0
- package/renderers/index.js +1706 -0
- package/renderers/mdx.renderer.d.ts +120 -0
- package/renderers/mdx.renderer.d.ts.map +1 -0
- package/renderers/registry.d.ts +133 -0
- package/renderers/registry.d.ts.map +1 -0
- package/renderers/types.d.ts +342 -0
- package/renderers/types.d.ts.map +1 -0
- package/renderers/utils/detect.d.ts +107 -0
- package/renderers/utils/detect.d.ts.map +1 -0
- package/renderers/utils/hash.d.ts +40 -0
- package/renderers/utils/hash.d.ts.map +1 -0
- package/renderers/utils/index.d.ts +9 -0
- package/renderers/utils/index.d.ts.map +1 -0
- package/renderers/utils/transpiler.d.ts +89 -0
- package/renderers/utils/transpiler.d.ts.map +1 -0
- package/runtime/adapters/html.adapter.d.ts +59 -0
- package/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/runtime/adapters/index.d.ts +26 -0
- package/runtime/adapters/index.d.ts.map +1 -0
- package/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/runtime/adapters/types.d.ts +95 -0
- package/runtime/adapters/types.d.ts.map +1 -0
- package/runtime/csp.d.ts +48 -0
- package/runtime/csp.d.ts.map +1 -0
- package/runtime/index.d.ts +17 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +5052 -0
- package/runtime/mcp-bridge.d.ts +101 -0
- package/runtime/mcp-bridge.d.ts.map +1 -0
- package/runtime/renderer-runtime.d.ts +133 -0
- package/runtime/renderer-runtime.d.ts.map +1 -0
- package/runtime/sanitizer.d.ts +172 -0
- package/runtime/sanitizer.d.ts.map +1 -0
- package/runtime/types.d.ts +415 -0
- package/runtime/types.d.ts.map +1 -0
- package/runtime/wrapper.d.ts +421 -0
- package/runtime/wrapper.d.ts.map +1 -0
- package/styles/index.d.ts +8 -0
- package/styles/index.d.ts.map +1 -0
- package/styles/index.js +222 -0
- package/styles/variants.d.ts +51 -0
- package/styles/variants.d.ts.map +1 -0
- package/theme/cdn.d.ts +195 -0
- package/theme/cdn.d.ts.map +1 -0
- package/theme/index.d.ts +18 -0
- package/theme/index.d.ts.map +1 -0
- package/theme/index.js +757 -0
- package/theme/platforms.d.ts +107 -0
- package/theme/platforms.d.ts.map +1 -0
- package/theme/presets/github-openai.d.ts +50 -0
- package/theme/presets/github-openai.d.ts.map +1 -0
- package/theme/presets/index.d.ts +11 -0
- package/theme/presets/index.d.ts.map +1 -0
- package/theme/theme.d.ts +396 -0
- package/theme/theme.d.ts.map +1 -0
- package/tool-template/builder.d.ts +213 -0
- package/tool-template/builder.d.ts.map +1 -0
- package/tool-template/index.d.ts +16 -0
- package/tool-template/index.d.ts.map +1 -0
- package/tool-template/index.js +3562 -0
- package/types/index.d.ts +14 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.js +108 -0
- package/types/ui-config.d.ts +641 -0
- package/types/ui-config.d.ts.map +1 -0
- package/types/ui-runtime.d.ts +1008 -0
- package/types/ui-runtime.d.ts.map +1 -0
- package/typings/cache/cache-adapter.d.ts +125 -0
- package/typings/cache/cache-adapter.d.ts.map +1 -0
- package/typings/cache/index.d.ts +10 -0
- package/typings/cache/index.d.ts.map +1 -0
- package/typings/cache/memory-cache.d.ts +92 -0
- package/typings/cache/memory-cache.d.ts.map +1 -0
- package/typings/dts-parser.d.ts +90 -0
- package/typings/dts-parser.d.ts.map +1 -0
- package/typings/index.d.ts +48 -0
- package/typings/index.d.ts.map +1 -0
- package/typings/index.js +868 -0
- package/typings/schemas.d.ts +232 -0
- package/typings/schemas.d.ts.map +1 -0
- package/typings/type-fetcher.d.ts +89 -0
- package/typings/type-fetcher.d.ts.map +1 -0
- package/typings/types.d.ts +320 -0
- package/typings/types.d.ts.map +1 -0
- package/utils/escape-html.d.ts +58 -0
- package/utils/escape-html.d.ts.map +1 -0
- package/utils/index.d.ts +10 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +70 -0
- package/utils/safe-stringify.d.ts +30 -0
- package/utils/safe-stringify.d.ts.map +1 -0
- package/validation/error-box.d.ts +56 -0
- package/validation/error-box.d.ts.map +1 -0
- package/validation/index.d.ts +13 -0
- package/validation/index.d.ts.map +1 -0
- package/validation/index.js +583 -0
- package/validation/schema-paths.d.ts +118 -0
- package/validation/schema-paths.d.ts.map +1 -0
- package/validation/template-validator.d.ts +143 -0
- package/validation/template-validator.d.ts.map +1 -0
- package/validation/wrapper.d.ts +97 -0
- package/validation/wrapper.d.ts.map +1 -0
|
@@ -0,0 +1,739 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency Resolution Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for CDN dependency resolution, import mapping,
|
|
5
|
+
* and file-based component bundling.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { ZodTypeAny } from 'zod';
|
|
10
|
+
/**
|
|
11
|
+
* Supported CDN providers for external library hosting.
|
|
12
|
+
*
|
|
13
|
+
* - `cloudflare`: cdnjs.cloudflare.com (REQUIRED for Claude compatibility)
|
|
14
|
+
* - `jsdelivr`: cdn.jsdelivr.net
|
|
15
|
+
* - `unpkg`: unpkg.com
|
|
16
|
+
* - `esm.sh`: esm.sh (ES modules)
|
|
17
|
+
* - `skypack`: cdn.skypack.dev (deprecated, fallback only)
|
|
18
|
+
* - `custom`: User-defined CDN override (for explicit dependency configuration)
|
|
19
|
+
*/
|
|
20
|
+
export type CDNProvider = 'cloudflare' | 'jsdelivr' | 'unpkg' | 'esm.sh' | 'skypack' | 'custom';
|
|
21
|
+
/**
|
|
22
|
+
* Platform types that affect CDN selection.
|
|
23
|
+
*
|
|
24
|
+
* - `claude`: Only allows cdnjs.cloudflare.com (blocked network)
|
|
25
|
+
* - `openai`: Can use any CDN
|
|
26
|
+
* - `cursor`: Can use any CDN
|
|
27
|
+
* - `gemini`: Can use any CDN
|
|
28
|
+
* - `unknown`: Defaults to cloudflare for maximum compatibility
|
|
29
|
+
*/
|
|
30
|
+
export type CDNPlatformType = 'claude' | 'openai' | 'cursor' | 'gemini' | 'continue' | 'cody' | 'unknown';
|
|
31
|
+
/**
|
|
32
|
+
* Configuration for a single CDN dependency.
|
|
33
|
+
*
|
|
34
|
+
* Specifies how to load an external library from a CDN.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const chartJsDependency: CDNDependency = {
|
|
39
|
+
* url: 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js',
|
|
40
|
+
* integrity: 'sha512-...',
|
|
41
|
+
* global: 'Chart',
|
|
42
|
+
* esm: false,
|
|
43
|
+
* };
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export interface CDNDependency {
|
|
47
|
+
/**
|
|
48
|
+
* CDN URL for the library.
|
|
49
|
+
* MUST be HTTPS.
|
|
50
|
+
*
|
|
51
|
+
* @example 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js'
|
|
52
|
+
*/
|
|
53
|
+
url: string;
|
|
54
|
+
/**
|
|
55
|
+
* Subresource Integrity (SRI) hash for security.
|
|
56
|
+
* Format: `sha256-...`, `sha384-...`, or `sha512-...`
|
|
57
|
+
*
|
|
58
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity
|
|
59
|
+
* @example 'sha384-abc123...'
|
|
60
|
+
*/
|
|
61
|
+
integrity?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Global variable name exposed by the library (for UMD builds).
|
|
64
|
+
* Used to map imports to window globals in the browser.
|
|
65
|
+
*
|
|
66
|
+
* @example 'Chart' for Chart.js, 'React' for React
|
|
67
|
+
*/
|
|
68
|
+
global?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Named exports to expose from the library.
|
|
71
|
+
* If not specified, defaults to the default export or global.
|
|
72
|
+
*
|
|
73
|
+
* @example ['Chart', 'registerables'] for Chart.js
|
|
74
|
+
*/
|
|
75
|
+
exports?: string[];
|
|
76
|
+
/**
|
|
77
|
+
* Whether this is an ES module (ESM) build.
|
|
78
|
+
* ESM builds use `import` statements; UMD uses globals.
|
|
79
|
+
*
|
|
80
|
+
* @default false
|
|
81
|
+
*/
|
|
82
|
+
esm?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Cross-origin attribute for the script tag.
|
|
85
|
+
*
|
|
86
|
+
* @default 'anonymous'
|
|
87
|
+
*/
|
|
88
|
+
crossorigin?: 'anonymous' | 'use-credentials';
|
|
89
|
+
/**
|
|
90
|
+
* Dependencies that must be loaded before this library.
|
|
91
|
+
* Specified as npm package names (e.g., 'react' for react-dom).
|
|
92
|
+
*
|
|
93
|
+
* @example ['react'] for react-dom
|
|
94
|
+
*/
|
|
95
|
+
peerDependencies?: string[];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* CDN configuration per provider for a package.
|
|
99
|
+
* Allows different URLs/configurations for different CDN providers.
|
|
100
|
+
*/
|
|
101
|
+
export type CDNProviderConfig = Partial<Record<CDNProvider, CDNDependency>>;
|
|
102
|
+
/**
|
|
103
|
+
* Target JavaScript version for bundling.
|
|
104
|
+
*/
|
|
105
|
+
export type BundleTarget = 'es2018' | 'es2019' | 'es2020' | 'es2021' | 'es2022' | 'esnext';
|
|
106
|
+
/**
|
|
107
|
+
* Configuration options for bundling file-based components.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* const devOptions: FileBundleOptions = {
|
|
112
|
+
* minify: false,
|
|
113
|
+
* sourceMaps: true,
|
|
114
|
+
* target: 'esnext',
|
|
115
|
+
* };
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export interface FileBundleOptions {
|
|
119
|
+
/**
|
|
120
|
+
* Minify the bundled output.
|
|
121
|
+
*
|
|
122
|
+
* @default true in production, false in development
|
|
123
|
+
*/
|
|
124
|
+
minify?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Generate source maps for debugging.
|
|
127
|
+
*
|
|
128
|
+
* @default false
|
|
129
|
+
*/
|
|
130
|
+
sourceMaps?: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Target JavaScript version.
|
|
133
|
+
*
|
|
134
|
+
* @default 'es2020'
|
|
135
|
+
*/
|
|
136
|
+
target?: BundleTarget;
|
|
137
|
+
/**
|
|
138
|
+
* Enable tree shaking to remove unused code.
|
|
139
|
+
*
|
|
140
|
+
* @default true
|
|
141
|
+
*/
|
|
142
|
+
treeShake?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* JSX factory function.
|
|
145
|
+
*
|
|
146
|
+
* @default 'React.createElement'
|
|
147
|
+
*/
|
|
148
|
+
jsxFactory?: string;
|
|
149
|
+
/**
|
|
150
|
+
* JSX fragment factory.
|
|
151
|
+
*
|
|
152
|
+
* @default 'React.Fragment'
|
|
153
|
+
*/
|
|
154
|
+
jsxFragment?: string;
|
|
155
|
+
/**
|
|
156
|
+
* JSX import source for automatic runtime.
|
|
157
|
+
*
|
|
158
|
+
* @default 'react'
|
|
159
|
+
*/
|
|
160
|
+
jsxImportSource?: string;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Extended UI template configuration with file-based template support.
|
|
164
|
+
*
|
|
165
|
+
* Extends the base UITemplateConfig to support:
|
|
166
|
+
* - File paths as templates (e.g., './chart-widget.tsx')
|
|
167
|
+
* - External library dependencies via CDN
|
|
168
|
+
* - Custom bundle options
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* const uiConfig: FileTemplateConfig = {
|
|
173
|
+
* template: './widgets/chart-widget.tsx',
|
|
174
|
+
* externals: ['chart.js', 'react-chartjs-2'],
|
|
175
|
+
* dependencies: {
|
|
176
|
+
* 'chart.js': {
|
|
177
|
+
* url: 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js',
|
|
178
|
+
* integrity: 'sha512-...',
|
|
179
|
+
* global: 'Chart',
|
|
180
|
+
* },
|
|
181
|
+
* },
|
|
182
|
+
* bundleOptions: {
|
|
183
|
+
* minify: true,
|
|
184
|
+
* target: 'es2020',
|
|
185
|
+
* },
|
|
186
|
+
* };
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export interface FileTemplateConfig {
|
|
190
|
+
/**
|
|
191
|
+
* Packages to load from CDN instead of bundling.
|
|
192
|
+
* These packages will be excluded from the bundle and loaded
|
|
193
|
+
* via import maps at runtime.
|
|
194
|
+
*
|
|
195
|
+
* Package names should match npm package names.
|
|
196
|
+
*
|
|
197
|
+
* @example ['chart.js', 'react-chartjs-2', 'd3']
|
|
198
|
+
*/
|
|
199
|
+
externals?: string[];
|
|
200
|
+
/**
|
|
201
|
+
* Explicit CDN dependency overrides.
|
|
202
|
+
* Use this to specify custom CDN URLs or override the default
|
|
203
|
+
* CDN registry entries for specific packages.
|
|
204
|
+
*
|
|
205
|
+
* Keys are npm package names.
|
|
206
|
+
*/
|
|
207
|
+
dependencies?: Record<string, CDNDependency>;
|
|
208
|
+
/**
|
|
209
|
+
* Bundle options for file-based templates.
|
|
210
|
+
*/
|
|
211
|
+
bundleOptions?: FileBundleOptions;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Browser import map structure.
|
|
215
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap
|
|
216
|
+
*/
|
|
217
|
+
export interface ImportMap {
|
|
218
|
+
/**
|
|
219
|
+
* Module specifier to URL mappings.
|
|
220
|
+
*
|
|
221
|
+
* @example { 'chart.js': 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js' }
|
|
222
|
+
*/
|
|
223
|
+
imports: Record<string, string>;
|
|
224
|
+
/**
|
|
225
|
+
* Scoped mappings for specific paths.
|
|
226
|
+
*/
|
|
227
|
+
scopes?: Record<string, Record<string, string>>;
|
|
228
|
+
/**
|
|
229
|
+
* Integrity hashes for imported modules.
|
|
230
|
+
* Maps URLs to their SRI hashes.
|
|
231
|
+
*/
|
|
232
|
+
integrity?: Record<string, string>;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Entry for a resolved dependency.
|
|
236
|
+
*/
|
|
237
|
+
export interface ResolvedDependency {
|
|
238
|
+
/**
|
|
239
|
+
* NPM package name.
|
|
240
|
+
*/
|
|
241
|
+
packageName: string;
|
|
242
|
+
/**
|
|
243
|
+
* Resolved version string.
|
|
244
|
+
*/
|
|
245
|
+
version: string;
|
|
246
|
+
/**
|
|
247
|
+
* CDN URL for the package.
|
|
248
|
+
*/
|
|
249
|
+
cdnUrl: string;
|
|
250
|
+
/**
|
|
251
|
+
* SRI integrity hash (if available).
|
|
252
|
+
*/
|
|
253
|
+
integrity?: string;
|
|
254
|
+
/**
|
|
255
|
+
* Global variable name (for UMD).
|
|
256
|
+
*/
|
|
257
|
+
global?: string;
|
|
258
|
+
/**
|
|
259
|
+
* Whether this is an ES module.
|
|
260
|
+
*/
|
|
261
|
+
esm: boolean;
|
|
262
|
+
/**
|
|
263
|
+
* CDN provider used.
|
|
264
|
+
*/
|
|
265
|
+
provider: CDNProvider;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Build manifest for a compiled file-based component.
|
|
269
|
+
* Stored in cache for incremental builds.
|
|
270
|
+
*/
|
|
271
|
+
export interface ComponentBuildManifest {
|
|
272
|
+
/**
|
|
273
|
+
* Manifest format version.
|
|
274
|
+
*/
|
|
275
|
+
version: '1.0';
|
|
276
|
+
/**
|
|
277
|
+
* Unique build identifier.
|
|
278
|
+
*/
|
|
279
|
+
buildId: string;
|
|
280
|
+
/**
|
|
281
|
+
* Tool name this component belongs to.
|
|
282
|
+
*/
|
|
283
|
+
toolName: string;
|
|
284
|
+
/**
|
|
285
|
+
* Original entry file path (relative to project root).
|
|
286
|
+
*/
|
|
287
|
+
entryPath: string;
|
|
288
|
+
/**
|
|
289
|
+
* SHA-256 hash of entry file + dependencies + options.
|
|
290
|
+
* Used as cache key for incremental builds.
|
|
291
|
+
*/
|
|
292
|
+
contentHash: string;
|
|
293
|
+
/**
|
|
294
|
+
* Resolved external dependencies.
|
|
295
|
+
*/
|
|
296
|
+
dependencies: ResolvedDependency[];
|
|
297
|
+
/**
|
|
298
|
+
* Build outputs.
|
|
299
|
+
*/
|
|
300
|
+
outputs: {
|
|
301
|
+
/**
|
|
302
|
+
* Bundled JavaScript code.
|
|
303
|
+
*/
|
|
304
|
+
code: string;
|
|
305
|
+
/**
|
|
306
|
+
* Source map (if generated).
|
|
307
|
+
*/
|
|
308
|
+
sourceMap?: string;
|
|
309
|
+
/**
|
|
310
|
+
* Pre-rendered HTML (if SSR was performed).
|
|
311
|
+
*/
|
|
312
|
+
ssrHtml?: string;
|
|
313
|
+
};
|
|
314
|
+
/**
|
|
315
|
+
* Generated import map for this component.
|
|
316
|
+
*/
|
|
317
|
+
importMap: ImportMap;
|
|
318
|
+
/**
|
|
319
|
+
* Build metadata.
|
|
320
|
+
*/
|
|
321
|
+
metadata: {
|
|
322
|
+
/**
|
|
323
|
+
* ISO timestamp of when the build was created.
|
|
324
|
+
*/
|
|
325
|
+
createdAt: string;
|
|
326
|
+
/**
|
|
327
|
+
* Build time in milliseconds.
|
|
328
|
+
*/
|
|
329
|
+
buildTimeMs: number;
|
|
330
|
+
/**
|
|
331
|
+
* Total size of bundled output in bytes.
|
|
332
|
+
*/
|
|
333
|
+
totalSize: number;
|
|
334
|
+
/**
|
|
335
|
+
* esbuild/bundler version used.
|
|
336
|
+
*/
|
|
337
|
+
bundlerVersion?: string;
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Abstract interface for build cache storage.
|
|
342
|
+
* Implementations include filesystem (dev) and Redis (prod).
|
|
343
|
+
*/
|
|
344
|
+
export interface BuildCacheStorage {
|
|
345
|
+
/**
|
|
346
|
+
* Get a cached build manifest by key.
|
|
347
|
+
*
|
|
348
|
+
* @param key - Cache key (typically the content hash)
|
|
349
|
+
* @returns The cached manifest or undefined if not found
|
|
350
|
+
*/
|
|
351
|
+
get(key: string): Promise<ComponentBuildManifest | undefined>;
|
|
352
|
+
/**
|
|
353
|
+
* Store a build manifest in cache.
|
|
354
|
+
*
|
|
355
|
+
* @param key - Cache key
|
|
356
|
+
* @param manifest - Build manifest to store
|
|
357
|
+
* @param ttl - Optional TTL in seconds
|
|
358
|
+
*/
|
|
359
|
+
set(key: string, manifest: ComponentBuildManifest, ttl?: number): Promise<void>;
|
|
360
|
+
/**
|
|
361
|
+
* Check if a key exists in cache.
|
|
362
|
+
*
|
|
363
|
+
* @param key - Cache key to check
|
|
364
|
+
* @returns true if the key exists
|
|
365
|
+
*/
|
|
366
|
+
has(key: string): Promise<boolean>;
|
|
367
|
+
/**
|
|
368
|
+
* Delete a cached entry.
|
|
369
|
+
*
|
|
370
|
+
* @param key - Cache key to delete
|
|
371
|
+
* @returns true if the entry was deleted
|
|
372
|
+
*/
|
|
373
|
+
delete(key: string): Promise<boolean>;
|
|
374
|
+
/**
|
|
375
|
+
* Clear all cached entries.
|
|
376
|
+
*/
|
|
377
|
+
clear(): Promise<void>;
|
|
378
|
+
/**
|
|
379
|
+
* Get cache statistics.
|
|
380
|
+
*/
|
|
381
|
+
getStats(): Promise<CacheStats>;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Cache statistics.
|
|
385
|
+
*/
|
|
386
|
+
export interface CacheStats {
|
|
387
|
+
/**
|
|
388
|
+
* Number of entries in cache.
|
|
389
|
+
*/
|
|
390
|
+
entries: number;
|
|
391
|
+
/**
|
|
392
|
+
* Total size of cached data in bytes.
|
|
393
|
+
*/
|
|
394
|
+
totalSize: number;
|
|
395
|
+
/**
|
|
396
|
+
* Number of cache hits.
|
|
397
|
+
*/
|
|
398
|
+
hits: number;
|
|
399
|
+
/**
|
|
400
|
+
* Number of cache misses.
|
|
401
|
+
*/
|
|
402
|
+
misses: number;
|
|
403
|
+
/**
|
|
404
|
+
* Cache hit rate (0-1).
|
|
405
|
+
*/
|
|
406
|
+
hitRate: number;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Entry in the CDN registry for a known package.
|
|
410
|
+
*/
|
|
411
|
+
export interface CDNRegistryEntry {
|
|
412
|
+
/**
|
|
413
|
+
* NPM package name.
|
|
414
|
+
*/
|
|
415
|
+
packageName: string;
|
|
416
|
+
/**
|
|
417
|
+
* Default/recommended version.
|
|
418
|
+
*/
|
|
419
|
+
defaultVersion: string;
|
|
420
|
+
/**
|
|
421
|
+
* CDN configurations per provider.
|
|
422
|
+
*/
|
|
423
|
+
providers: CDNProviderConfig;
|
|
424
|
+
/**
|
|
425
|
+
* Preferred CDN provider order.
|
|
426
|
+
* First available provider is used.
|
|
427
|
+
*
|
|
428
|
+
* @default ['cloudflare', 'jsdelivr', 'unpkg', 'esm.sh']
|
|
429
|
+
*/
|
|
430
|
+
preferredProviders?: CDNProvider[];
|
|
431
|
+
/**
|
|
432
|
+
* Package metadata.
|
|
433
|
+
*/
|
|
434
|
+
metadata?: {
|
|
435
|
+
/**
|
|
436
|
+
* Human-readable description.
|
|
437
|
+
*/
|
|
438
|
+
description?: string;
|
|
439
|
+
/**
|
|
440
|
+
* Homepage URL.
|
|
441
|
+
*/
|
|
442
|
+
homepage?: string;
|
|
443
|
+
/**
|
|
444
|
+
* License identifier.
|
|
445
|
+
*/
|
|
446
|
+
license?: string;
|
|
447
|
+
};
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* The full CDN registry mapping package names to their CDN configurations.
|
|
451
|
+
*/
|
|
452
|
+
export type CDNRegistry = Record<string, CDNRegistryEntry>;
|
|
453
|
+
/**
|
|
454
|
+
* Options for resolving dependencies.
|
|
455
|
+
*/
|
|
456
|
+
export interface DependencyResolverOptions {
|
|
457
|
+
/**
|
|
458
|
+
* Target platform for CDN selection.
|
|
459
|
+
* Affects which CDN provider is used.
|
|
460
|
+
*
|
|
461
|
+
* @default 'unknown'
|
|
462
|
+
*/
|
|
463
|
+
platform?: CDNPlatformType;
|
|
464
|
+
/**
|
|
465
|
+
* Preferred CDN providers in order of preference.
|
|
466
|
+
* If not specified, uses platform-specific defaults.
|
|
467
|
+
*/
|
|
468
|
+
preferredProviders?: CDNProvider[];
|
|
469
|
+
/**
|
|
470
|
+
* Custom CDN registry to merge with defaults.
|
|
471
|
+
*/
|
|
472
|
+
customRegistry?: CDNRegistry;
|
|
473
|
+
/**
|
|
474
|
+
* Whether to fail on unresolved dependencies.
|
|
475
|
+
* If false, unresolved deps are bundled instead.
|
|
476
|
+
*
|
|
477
|
+
* @default true
|
|
478
|
+
*/
|
|
479
|
+
strictMode?: boolean;
|
|
480
|
+
/**
|
|
481
|
+
* Whether to require SRI integrity hashes.
|
|
482
|
+
*
|
|
483
|
+
* @default false
|
|
484
|
+
*/
|
|
485
|
+
requireIntegrity?: boolean;
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* A parsed import statement from source code.
|
|
489
|
+
*/
|
|
490
|
+
export interface ParsedImport {
|
|
491
|
+
/**
|
|
492
|
+
* Full import statement as it appears in source.
|
|
493
|
+
*
|
|
494
|
+
* @example "import { Chart } from 'chart.js'"
|
|
495
|
+
*/
|
|
496
|
+
statement: string;
|
|
497
|
+
/**
|
|
498
|
+
* Module specifier (package name or path).
|
|
499
|
+
*
|
|
500
|
+
* @example 'chart.js', './utils', '@org/package'
|
|
501
|
+
*/
|
|
502
|
+
specifier: string;
|
|
503
|
+
/**
|
|
504
|
+
* Import type.
|
|
505
|
+
*/
|
|
506
|
+
type: 'named' | 'default' | 'namespace' | 'side-effect' | 'dynamic';
|
|
507
|
+
/**
|
|
508
|
+
* Named imports (for named import type).
|
|
509
|
+
*
|
|
510
|
+
* @example ['Chart', 'registerables']
|
|
511
|
+
*/
|
|
512
|
+
namedImports?: string[];
|
|
513
|
+
/**
|
|
514
|
+
* Default import name (for default import type).
|
|
515
|
+
*
|
|
516
|
+
* @example 'React'
|
|
517
|
+
*/
|
|
518
|
+
defaultImport?: string;
|
|
519
|
+
/**
|
|
520
|
+
* Namespace import name (for namespace import type).
|
|
521
|
+
*
|
|
522
|
+
* @example 'd3' for `import * as d3 from 'd3'`
|
|
523
|
+
*/
|
|
524
|
+
namespaceImport?: string;
|
|
525
|
+
/**
|
|
526
|
+
* Line number in source (1-indexed).
|
|
527
|
+
*/
|
|
528
|
+
line: number;
|
|
529
|
+
/**
|
|
530
|
+
* Column number in source (0-indexed).
|
|
531
|
+
*/
|
|
532
|
+
column: number;
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Result of parsing imports from a source file.
|
|
536
|
+
*/
|
|
537
|
+
export interface ParsedImportResult {
|
|
538
|
+
/**
|
|
539
|
+
* All parsed imports.
|
|
540
|
+
*/
|
|
541
|
+
imports: ParsedImport[];
|
|
542
|
+
/**
|
|
543
|
+
* External package imports (npm packages).
|
|
544
|
+
*/
|
|
545
|
+
externalImports: ParsedImport[];
|
|
546
|
+
/**
|
|
547
|
+
* Relative imports (local files).
|
|
548
|
+
*/
|
|
549
|
+
relativeImports: ParsedImport[];
|
|
550
|
+
/**
|
|
551
|
+
* Unique external package names.
|
|
552
|
+
*/
|
|
553
|
+
externalPackages: string[];
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* Detected template mode for a UI configuration.
|
|
557
|
+
*/
|
|
558
|
+
export type TemplateMode = 'inline-function' | 'inline-string' | 'file-path' | 'url';
|
|
559
|
+
/**
|
|
560
|
+
* Detect the template mode from a template value.
|
|
561
|
+
*
|
|
562
|
+
* @param template - The template value from UITemplateConfig
|
|
563
|
+
* @returns The detected template mode
|
|
564
|
+
*/
|
|
565
|
+
export declare function detectTemplateMode(template: unknown): TemplateMode;
|
|
566
|
+
/**
|
|
567
|
+
* Template format detected from file extension or content.
|
|
568
|
+
*
|
|
569
|
+
* - `react`: .tsx/.jsx files (React components, bundled with esbuild)
|
|
570
|
+
* - `mdx`: .mdx files (Markdown + JSX, Handlebars → MDX Renderer)
|
|
571
|
+
* - `markdown`: .md files (Markdown, Handlebars → marked)
|
|
572
|
+
* - `html`: .html files or inline strings (Handlebars only)
|
|
573
|
+
*/
|
|
574
|
+
export type TemplateFormat = 'react' | 'mdx' | 'markdown' | 'html';
|
|
575
|
+
/**
|
|
576
|
+
* Template source discriminated union.
|
|
577
|
+
* Represents where the template content comes from.
|
|
578
|
+
*/
|
|
579
|
+
export type TemplateSource = {
|
|
580
|
+
type: 'inline';
|
|
581
|
+
content: string;
|
|
582
|
+
} | {
|
|
583
|
+
type: 'file';
|
|
584
|
+
path: string;
|
|
585
|
+
} | {
|
|
586
|
+
type: 'url';
|
|
587
|
+
url: string;
|
|
588
|
+
};
|
|
589
|
+
/**
|
|
590
|
+
* Result of fetching a template from a URL.
|
|
591
|
+
*/
|
|
592
|
+
export interface UrlFetchResult {
|
|
593
|
+
/**
|
|
594
|
+
* Fetched template content.
|
|
595
|
+
*/
|
|
596
|
+
content: string;
|
|
597
|
+
/**
|
|
598
|
+
* ETag header for cache validation.
|
|
599
|
+
*/
|
|
600
|
+
etag?: string;
|
|
601
|
+
/**
|
|
602
|
+
* Content-Type header.
|
|
603
|
+
*/
|
|
604
|
+
contentType?: string;
|
|
605
|
+
/**
|
|
606
|
+
* ISO timestamp when the content was fetched.
|
|
607
|
+
*/
|
|
608
|
+
fetchedAt: string;
|
|
609
|
+
}
|
|
610
|
+
/**
|
|
611
|
+
* A resolved template ready for processing.
|
|
612
|
+
* Contains the raw content and metadata about the source.
|
|
613
|
+
*/
|
|
614
|
+
export interface ResolvedTemplate {
|
|
615
|
+
/**
|
|
616
|
+
* Original template source.
|
|
617
|
+
*/
|
|
618
|
+
source: TemplateSource;
|
|
619
|
+
/**
|
|
620
|
+
* Detected template format.
|
|
621
|
+
*/
|
|
622
|
+
format: TemplateFormat;
|
|
623
|
+
/**
|
|
624
|
+
* Raw template content (fetched/read from source).
|
|
625
|
+
*/
|
|
626
|
+
content: string;
|
|
627
|
+
/**
|
|
628
|
+
* SHA-256 hash of the content for caching.
|
|
629
|
+
*/
|
|
630
|
+
hash: string;
|
|
631
|
+
/**
|
|
632
|
+
* Additional metadata depending on source type.
|
|
633
|
+
*/
|
|
634
|
+
metadata?: {
|
|
635
|
+
/**
|
|
636
|
+
* ISO timestamp when URL content was fetched.
|
|
637
|
+
*/
|
|
638
|
+
fetchedAt?: string;
|
|
639
|
+
/**
|
|
640
|
+
* ETag for URL cache validation.
|
|
641
|
+
*/
|
|
642
|
+
etag?: string;
|
|
643
|
+
/**
|
|
644
|
+
* Content-Type from URL response.
|
|
645
|
+
*/
|
|
646
|
+
contentType?: string;
|
|
647
|
+
/**
|
|
648
|
+
* Original file path (resolved absolute path).
|
|
649
|
+
*/
|
|
650
|
+
resolvedPath?: string;
|
|
651
|
+
};
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* Options for processing a resolved template.
|
|
655
|
+
*/
|
|
656
|
+
export interface TemplateProcessingOptions {
|
|
657
|
+
/**
|
|
658
|
+
* Context data for Handlebars/React rendering.
|
|
659
|
+
*/
|
|
660
|
+
context: {
|
|
661
|
+
/**
|
|
662
|
+
* Tool input arguments.
|
|
663
|
+
*/
|
|
664
|
+
input: unknown;
|
|
665
|
+
/**
|
|
666
|
+
* Tool output/result.
|
|
667
|
+
*/
|
|
668
|
+
output: unknown;
|
|
669
|
+
/**
|
|
670
|
+
* Parsed structured content (optional).
|
|
671
|
+
*/
|
|
672
|
+
structuredContent?: unknown;
|
|
673
|
+
};
|
|
674
|
+
/**
|
|
675
|
+
* Target platform for CDN selection.
|
|
676
|
+
*/
|
|
677
|
+
platform?: CDNPlatformType;
|
|
678
|
+
/**
|
|
679
|
+
* Custom Handlebars helpers.
|
|
680
|
+
*/
|
|
681
|
+
handlebarsHelpers?: Record<string, (...args: unknown[]) => unknown>;
|
|
682
|
+
/**
|
|
683
|
+
* Base path for resolving relative file paths.
|
|
684
|
+
*/
|
|
685
|
+
basePath?: string;
|
|
686
|
+
/**
|
|
687
|
+
* Zod schema for output validation.
|
|
688
|
+
*
|
|
689
|
+
* When provided in development mode (NODE_ENV !== 'production'),
|
|
690
|
+
* the template will be validated against this schema to catch
|
|
691
|
+
* Handlebars expressions referencing non-existent fields.
|
|
692
|
+
*/
|
|
693
|
+
outputSchema?: ZodTypeAny;
|
|
694
|
+
/**
|
|
695
|
+
* Zod schema for input validation.
|
|
696
|
+
*
|
|
697
|
+
* When provided in development mode (NODE_ENV !== 'production'),
|
|
698
|
+
* the template will also validate {{input.*}} expressions.
|
|
699
|
+
*/
|
|
700
|
+
inputSchema?: ZodTypeAny;
|
|
701
|
+
/**
|
|
702
|
+
* Tool name for validation error messages.
|
|
703
|
+
*/
|
|
704
|
+
toolName?: string;
|
|
705
|
+
}
|
|
706
|
+
/**
|
|
707
|
+
* Result of processing a template.
|
|
708
|
+
*/
|
|
709
|
+
export type ProcessedTemplate = {
|
|
710
|
+
/**
|
|
711
|
+
* Rendered HTML output (for html, markdown, mdx formats).
|
|
712
|
+
*/
|
|
713
|
+
html: string;
|
|
714
|
+
/**
|
|
715
|
+
* Template format that was processed.
|
|
716
|
+
*/
|
|
717
|
+
format: 'html' | 'markdown' | 'mdx';
|
|
718
|
+
} | {
|
|
719
|
+
/**
|
|
720
|
+
* Bundled JavaScript code (for react format).
|
|
721
|
+
*/
|
|
722
|
+
code: string;
|
|
723
|
+
/**
|
|
724
|
+
* Template format.
|
|
725
|
+
*/
|
|
726
|
+
format: 'react';
|
|
727
|
+
/**
|
|
728
|
+
* Indicates React templates need bundling.
|
|
729
|
+
*/
|
|
730
|
+
needsBundling: true;
|
|
731
|
+
};
|
|
732
|
+
/**
|
|
733
|
+
* Detect template format from a file path or URL.
|
|
734
|
+
*
|
|
735
|
+
* @param pathOrUrl - File path or URL to detect format from
|
|
736
|
+
* @returns The detected template format
|
|
737
|
+
*/
|
|
738
|
+
export declare function detectFormatFromPath(pathOrUrl: string): TemplateFormat;
|
|
739
|
+
//# sourceMappingURL=types.d.ts.map
|