@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/bundler/bundler.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * In-Memory Bundler\n *\n * Fast, secure bundler for JSX/TSX/MDX sources using esbuild.\n * Provides caching, security validation, and SSR support.\n *\n * @packageDocumentation\n */\n\nimport type {\n BundleOptions,\n BundleResult,\n SSRBundleOptions,\n SSRResult,\n BundlerOptions,\n SecurityPolicy,\n SourceType,\n OutputFormat,\n} from './types';\nimport { DEFAULT_BUNDLE_OPTIONS, DEFAULT_BUNDLER_OPTIONS, DEFAULT_SECURITY_POLICY } from './types';\nimport { BundlerCache, createCacheKey, hashContent } from './cache';\nimport { validateSource, validateSize, mergePolicy, throwOnViolations, SecurityError } from './sandbox/policy';\nimport { executeCode, executeDefault, ExecutionError } from './sandbox/executor';\n\n/**\n * Lazy-loaded esbuild transform function.\n */\nlet esbuildTransform: ((source: string, options: object) => Promise<{ code: string; map?: string }>) | null = null;\n\n/**\n * Load esbuild transform function.\n */\nasync function loadEsbuild(): Promise<typeof esbuildTransform> {\n if (esbuildTransform !== null) {\n return esbuildTransform;\n }\n\n try {\n const esbuild = await import('esbuild');\n esbuildTransform = esbuild.transform;\n return esbuildTransform;\n } catch {\n // Fallback: try @swc/core\n try {\n const swc = await import('@swc/core');\n esbuildTransform = async (source: string, options: object) => {\n const opts = options as { loader?: string; minify?: boolean; sourcemap?: boolean | 'inline' };\n const result = await swc.transform(source, {\n jsc: {\n parser: {\n syntax: 'typescript',\n tsx: opts.loader === 'tsx' || opts.loader === 'jsx',\n },\n transform: {\n react: {\n runtime: 'automatic',\n development: false,\n },\n },\n target: 'es2020',\n minify: opts.minify ? { compress: true, mangle: true } : undefined,\n },\n module: {\n type: 'commonjs',\n },\n sourceMaps: opts.sourcemap ? true : false,\n });\n return { code: result.code, map: result.map };\n };\n return esbuildTransform;\n } catch {\n console.warn(\n '[@frontmcp/ui/bundler] Neither esbuild nor @swc/core available. ' +\n 'Install esbuild for best performance: npm install esbuild',\n );\n return null;\n }\n }\n}\n\n/**\n * In-memory bundler for JSX/TSX/MDX sources.\n *\n * Features:\n * - Fast transformation using esbuild (fallback to SWC)\n * - Content-addressable caching\n * - Security validation (blocked imports, eval, etc.)\n * - SSR support for React components\n *\n * @example\n * ```typescript\n * const bundler = new InMemoryBundler();\n *\n * // Bundle JSX source\n * const result = await bundler.bundle({\n * source: 'const App = () => <div>Hello</div>; export default App;',\n * sourceType: 'jsx',\n * });\n *\n * console.log(result.code); // Bundled JavaScript\n * console.log(result.cached); // Whether from cache\n *\n * // SSR rendering\n * const ssrResult = await bundler.bundleSSR({\n * source: 'export default ({ data }) => <div>{data.message}</div>',\n * sourceType: 'jsx',\n * context: { data: { message: 'Hello' } },\n * });\n *\n * console.log(ssrResult.html); // Rendered HTML\n * ```\n */\nexport class InMemoryBundler {\n private readonly cache: BundlerCache;\n private readonly options: Required<BundlerOptions>;\n private readonly defaultSecurity: SecurityPolicy;\n\n constructor(options: BundlerOptions = {}) {\n this.options = {\n ...DEFAULT_BUNDLER_OPTIONS,\n ...options,\n cache: {\n ...DEFAULT_BUNDLER_OPTIONS.cache,\n ...options.cache,\n },\n };\n\n this.cache = new BundlerCache({\n maxSize: this.options.cache.maxSize,\n ttl: this.options.cache.ttl,\n });\n\n this.defaultSecurity = mergePolicy(options.defaultSecurity);\n }\n\n /**\n * Bundle source code.\n *\n * @param options - Bundle options\n * @returns Bundle result\n */\n async bundle(options: BundleOptions): Promise<BundleResult> {\n const startTime = performance.now();\n\n // Merge options with defaults\n const opts = this.mergeOptions(options);\n\n // Check cache first\n if (!opts.skipCache && !this.options.cache.disabled) {\n const cacheKey = options.cacheKey ?? createCacheKey(options.source, opts);\n const cached = this.cache.get(cacheKey);\n if (cached) {\n return {\n ...cached,\n cached: true,\n metrics: {\n ...cached.metrics,\n cacheTime: performance.now() - startTime,\n },\n };\n }\n }\n\n // Validate security\n const security = mergePolicy(options.security ?? this.defaultSecurity);\n const violations = validateSource(options.source, security);\n throwOnViolations(violations);\n\n // Detect source type\n const sourceType = opts.sourceType === 'auto' ? this.detectSourceType(options.source) : opts.sourceType;\n\n // Transform\n const transformStart = performance.now();\n const transformed = await this.transform(options.source, sourceType, opts);\n const transformTime = performance.now() - transformStart;\n\n // Validate size\n const sizeViolation = validateSize(transformed.code.length, security);\n if (sizeViolation) {\n throwOnViolations([sizeViolation]);\n }\n\n // Build result\n const hash = hashContent(transformed.code);\n const result: BundleResult = {\n code: transformed.code,\n hash,\n cached: false,\n size: transformed.code.length,\n map: transformed.map,\n metrics: {\n transformTime,\n bundleTime: 0, // No separate bundle step for transform-only\n totalTime: performance.now() - startTime,\n },\n sourceType,\n format: opts.format,\n };\n\n // Cache result\n if (!this.options.cache.disabled) {\n const cacheKey = options.cacheKey ?? createCacheKey(options.source, opts);\n this.cache.set(cacheKey, result);\n }\n\n return result;\n }\n\n /**\n * Bundle and execute for SSR.\n *\n * @param options - SSR bundle options\n * @returns SSR result with rendered HTML\n */\n async bundleSSR(options: SSRBundleOptions): Promise<SSRResult> {\n const startTime = performance.now();\n\n // First, bundle the source\n const bundleResult = await this.bundle({\n ...options,\n format: 'cjs', // CommonJS for execution\n });\n\n // Load React for SSR\n let React;\n let ReactDOMServer;\n\n try {\n React = await import('react');\n ReactDOMServer = await import('react-dom/server');\n } catch {\n throw new Error('React and react-dom/server are required for SSR. Install them: npm install react react-dom');\n }\n\n // Execute the bundled code\n const renderStart = performance.now();\n const Component = await executeDefault<React.ComponentType<unknown>>(bundleResult.code, {\n React,\n security: mergePolicy(options.security ?? this.defaultSecurity),\n });\n\n // Render to HTML\n let html: string;\n try {\n const element = React.createElement(Component, options.context ?? {});\n html = ReactDOMServer.renderToString(element);\n } catch (error) {\n throw new ExecutionError(\n `SSR rendering failed: ${error instanceof Error ? error.message : String(error)}`,\n error,\n );\n }\n\n const renderTime = performance.now() - renderStart;\n\n // Build hydration script if requested\n let hydrationScript: string | undefined;\n if (options.includeHydration) {\n hydrationScript = this.buildHydrationScript(bundleResult.code, options.context);\n }\n\n return {\n ...bundleResult,\n html,\n hydrationScript,\n metrics: {\n ...bundleResult.metrics,\n totalTime: performance.now() - startTime,\n },\n ssrMetrics: {\n renderTime,\n },\n };\n }\n\n /**\n * Bundle and execute code, returning the exports.\n *\n * @param options - Bundle options\n * @param context - Execution context\n * @returns Exported value\n */\n async bundleAndExecute<T = unknown>(options: BundleOptions, context?: Record<string, unknown>): Promise<T> {\n // Bundle first\n const result = await this.bundle({\n ...options,\n format: 'cjs', // CommonJS for execution\n });\n\n // Load React if available\n let React;\n try {\n React = await import('react');\n } catch {\n // React not available, that's okay\n }\n\n // Execute\n return executeDefault<T>(result.code, {\n React,\n globals: context,\n security: mergePolicy(options.security ?? this.defaultSecurity),\n });\n }\n\n /**\n * Get cache statistics.\n */\n getCacheStats() {\n return this.cache.getStats();\n }\n\n /**\n * Clear the cache.\n */\n clearCache(): void {\n this.cache.clear();\n }\n\n /**\n * Clean up expired cache entries.\n */\n cleanupCache(): number {\n return this.cache.cleanup();\n }\n\n /**\n * Transform source code using esbuild/SWC.\n */\n private async transform(\n source: string,\n sourceType: SourceType,\n options: Required<Pick<BundleOptions, 'format' | 'minify' | 'sourceMaps' | 'target' | 'jsx'>>,\n ): Promise<{ code: string; map?: string }> {\n const transform = await loadEsbuild();\n\n if (!transform) {\n throw new Error('No bundler available. Install esbuild or @swc/core: npm install esbuild');\n }\n\n // Map source type to loader\n const loader = this.getLoader(sourceType);\n\n // Build esbuild options\n const esbuildOptions: Record<string, unknown> = {\n loader,\n minify: options.minify,\n sourcemap: options.sourceMaps,\n target: options.target,\n format: options.format === 'cjs' ? 'cjs' : options.format === 'esm' ? 'esm' : 'iife',\n jsx: 'automatic',\n jsxImportSource: options.jsx.importSource,\n };\n\n try {\n const result = await transform(source, esbuildOptions);\n return {\n code: result.code,\n map: result.map,\n };\n } catch (error) {\n throw new Error(`Transform failed: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n\n /**\n * Get esbuild loader for source type.\n */\n private getLoader(sourceType: SourceType): string {\n switch (sourceType) {\n case 'jsx':\n return 'jsx';\n case 'tsx':\n return 'tsx';\n case 'mdx':\n return 'tsx'; // MDX compiles to JSX/TSX\n case 'html':\n return 'text';\n default:\n return 'tsx';\n }\n }\n\n /**\n * Detect source type from content.\n */\n private detectSourceType(source: string): SourceType {\n // Check for TypeScript types\n const hasTypeScript =\n /:\\s*(string|number|boolean|any|unknown|void|never|object)\\b/.test(source) ||\n /interface\\s+\\w+/.test(source) ||\n /type\\s+\\w+\\s*=/.test(source) ||\n /<\\w+>/.test(source); // Generic syntax\n\n // Check for JSX\n const hasJSX =\n /<[A-Z][a-zA-Z]*/.test(source) || // Component tags\n /<[a-z]+\\s/.test(source) || // HTML tags with attributes\n /<[a-z]+>/.test(source) || // Self-closing HTML tags\n /<\\/[a-z]+>/.test(source); // Closing tags\n\n // Check for MDX\n const hasMDX =\n /^#\\s+/.test(source) || // Markdown heading\n /^-\\s+/.test(source) || // Markdown list\n /\\*\\*\\w+\\*\\*/.test(source) || // Bold\n /```\\w*\\n/.test(source); // Code block\n\n if (hasMDX && hasJSX) {\n return 'mdx';\n }\n if (hasTypeScript && hasJSX) {\n return 'tsx';\n }\n if (hasJSX) {\n return 'jsx';\n }\n if (hasTypeScript) {\n return 'tsx';\n }\n\n return 'jsx';\n }\n\n /**\n * Merge bundle options with defaults.\n */\n private mergeOptions(\n options: BundleOptions,\n ): Required<\n Pick<\n BundleOptions,\n 'sourceType' | 'format' | 'minify' | 'sourceMaps' | 'externals' | 'jsx' | 'target' | 'globalName' | 'skipCache'\n >\n > {\n return {\n sourceType: options.sourceType ?? DEFAULT_BUNDLE_OPTIONS.sourceType,\n format: options.format ?? DEFAULT_BUNDLE_OPTIONS.format,\n minify: options.minify ?? DEFAULT_BUNDLE_OPTIONS.minify,\n sourceMaps: options.sourceMaps ?? DEFAULT_BUNDLE_OPTIONS.sourceMaps,\n externals: options.externals ?? DEFAULT_BUNDLE_OPTIONS.externals,\n jsx: {\n ...DEFAULT_BUNDLE_OPTIONS.jsx,\n ...options.jsx,\n },\n target: options.target ?? DEFAULT_BUNDLE_OPTIONS.target,\n globalName: options.globalName ?? DEFAULT_BUNDLE_OPTIONS.globalName,\n skipCache: options.skipCache ?? DEFAULT_BUNDLE_OPTIONS.skipCache,\n };\n }\n\n /**\n * Build hydration script for client-side React.\n */\n private buildHydrationScript(bundledCode: string, context?: Record<string, unknown>): string {\n const contextJson = context ? JSON.stringify(context) : '{}';\n\n return `\n(function() {\n var context = ${contextJson};\n var exports = {};\n var module = { exports: exports };\n\n // Execute bundled code\n (function(exports, module) {\n ${bundledCode}\n })(exports, module);\n\n // Get component\n var Component = module.exports.default || module.exports;\n\n // Hydrate\n if (typeof ReactDOM !== 'undefined' && ReactDOM.hydrateRoot) {\n var container = document.getElementById('root') || document.body.firstElementChild;\n if (container) {\n ReactDOM.hydrateRoot(container, React.createElement(Component, context));\n }\n }\n})();\n `.trim();\n }\n}\n\n/**\n * Create a bundler instance with default options.\n *\n * @param options - Bundler configuration\n * @returns New bundler instance\n */\nexport function createBundler(options?: BundlerOptions): InMemoryBundler {\n return new InMemoryBundler(options);\n}\n\n// Re-export errors for convenience\nexport { SecurityError } from './sandbox/policy';\nexport { ExecutionError } from './sandbox/executor';\n"]}
|
package/src/bundler/cache.d.ts
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bundler Cache
|
|
3
|
-
*
|
|
4
|
-
* LRU cache implementation for bundled results.
|
|
5
|
-
* Provides content-addressable caching with TTL expiration.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import type { BundleResult } from './types';
|
|
10
|
-
/**
|
|
11
|
-
* Cache configuration options.
|
|
12
|
-
*/
|
|
13
|
-
export interface CacheOptions {
|
|
14
|
-
/**
|
|
15
|
-
* Maximum number of entries in the cache.
|
|
16
|
-
* @default 100
|
|
17
|
-
*/
|
|
18
|
-
maxSize: number;
|
|
19
|
-
/**
|
|
20
|
-
* Time-to-live for cache entries in milliseconds.
|
|
21
|
-
* @default 300000 (5 minutes)
|
|
22
|
-
*/
|
|
23
|
-
ttl: number;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Cache statistics.
|
|
27
|
-
*/
|
|
28
|
-
export interface CacheStats {
|
|
29
|
-
/**
|
|
30
|
-
* Number of entries in the cache.
|
|
31
|
-
*/
|
|
32
|
-
size: number;
|
|
33
|
-
/**
|
|
34
|
-
* Number of cache hits.
|
|
35
|
-
*/
|
|
36
|
-
hits: number;
|
|
37
|
-
/**
|
|
38
|
-
* Number of cache misses.
|
|
39
|
-
*/
|
|
40
|
-
misses: number;
|
|
41
|
-
/**
|
|
42
|
-
* Hit rate (0-1).
|
|
43
|
-
*/
|
|
44
|
-
hitRate: number;
|
|
45
|
-
/**
|
|
46
|
-
* Number of expired entries removed.
|
|
47
|
-
*/
|
|
48
|
-
evictions: number;
|
|
49
|
-
/**
|
|
50
|
-
* Total memory used by cache (approximate).
|
|
51
|
-
*/
|
|
52
|
-
memoryUsage: number;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* LRU cache for bundled results.
|
|
56
|
-
*
|
|
57
|
-
* Features:
|
|
58
|
-
* - Content-addressable by hash
|
|
59
|
-
* - TTL-based expiration
|
|
60
|
-
* - LRU eviction when at capacity
|
|
61
|
-
* - Statistics tracking
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* ```typescript
|
|
65
|
-
* const cache = new BundlerCache({ maxSize: 100, ttl: 300000 });
|
|
66
|
-
*
|
|
67
|
-
* // Store a result
|
|
68
|
-
* cache.set('abc123', bundleResult);
|
|
69
|
-
*
|
|
70
|
-
* // Retrieve a result
|
|
71
|
-
* const cached = cache.get('abc123');
|
|
72
|
-
* if (cached) {
|
|
73
|
-
* console.log('Cache hit!', cached);
|
|
74
|
-
* }
|
|
75
|
-
*
|
|
76
|
-
* // Get statistics
|
|
77
|
-
* console.log(cache.getStats());
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
export declare class BundlerCache {
|
|
81
|
-
private readonly cache;
|
|
82
|
-
private readonly options;
|
|
83
|
-
private stats;
|
|
84
|
-
constructor(options?: Partial<CacheOptions>);
|
|
85
|
-
/**
|
|
86
|
-
* Get a cached bundle result.
|
|
87
|
-
*
|
|
88
|
-
* @param key - Cache key (typically content hash)
|
|
89
|
-
* @returns Cached result or undefined if not found/expired
|
|
90
|
-
*/
|
|
91
|
-
get(key: string): BundleResult | undefined;
|
|
92
|
-
/**
|
|
93
|
-
* Store a bundle result in the cache.
|
|
94
|
-
*
|
|
95
|
-
* @param key - Cache key (typically content hash)
|
|
96
|
-
* @param result - Bundle result to cache
|
|
97
|
-
*/
|
|
98
|
-
set(key: string, result: BundleResult): void;
|
|
99
|
-
/**
|
|
100
|
-
* Check if a key exists in the cache (and is not expired).
|
|
101
|
-
*
|
|
102
|
-
* @param key - Cache key to check
|
|
103
|
-
* @returns true if key exists and is not expired
|
|
104
|
-
*/
|
|
105
|
-
has(key: string): boolean;
|
|
106
|
-
/**
|
|
107
|
-
* Delete a specific entry from the cache.
|
|
108
|
-
*
|
|
109
|
-
* @param key - Cache key to delete
|
|
110
|
-
* @returns true if the key was found and deleted
|
|
111
|
-
*/
|
|
112
|
-
delete(key: string): boolean;
|
|
113
|
-
/**
|
|
114
|
-
* Clear all entries from the cache.
|
|
115
|
-
*/
|
|
116
|
-
clear(): void;
|
|
117
|
-
/**
|
|
118
|
-
* Get cache statistics.
|
|
119
|
-
*
|
|
120
|
-
* @returns Current cache statistics
|
|
121
|
-
*/
|
|
122
|
-
getStats(): CacheStats;
|
|
123
|
-
/**
|
|
124
|
-
* Remove expired entries from the cache.
|
|
125
|
-
*
|
|
126
|
-
* @returns Number of entries removed
|
|
127
|
-
*/
|
|
128
|
-
cleanup(): number;
|
|
129
|
-
/**
|
|
130
|
-
* Get all cache keys.
|
|
131
|
-
*
|
|
132
|
-
* @returns Array of cache keys
|
|
133
|
-
*/
|
|
134
|
-
keys(): string[];
|
|
135
|
-
/**
|
|
136
|
-
* Get the number of entries in the cache.
|
|
137
|
-
*/
|
|
138
|
-
get size(): number;
|
|
139
|
-
/**
|
|
140
|
-
* Check if an entry is expired.
|
|
141
|
-
*/
|
|
142
|
-
private isExpired;
|
|
143
|
-
/**
|
|
144
|
-
* Evict the oldest (least recently used) entry.
|
|
145
|
-
*/
|
|
146
|
-
private evictOldest;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Create a hash from source content.
|
|
150
|
-
*
|
|
151
|
-
* Uses a simple but fast hashing algorithm suitable for cache keys.
|
|
152
|
-
*
|
|
153
|
-
* @param content - Content to hash
|
|
154
|
-
* @returns Hash string
|
|
155
|
-
*/
|
|
156
|
-
export declare function hashContent(content: string): string;
|
|
157
|
-
/**
|
|
158
|
-
* Create a hash from bundle options.
|
|
159
|
-
*
|
|
160
|
-
* Used to differentiate bundles of the same source with different options.
|
|
161
|
-
*
|
|
162
|
-
* @param source - Source content
|
|
163
|
-
* @param options - Bundle options that affect output
|
|
164
|
-
* @returns Combined hash string
|
|
165
|
-
*/
|
|
166
|
-
export declare function createCacheKey(source: string, options: {
|
|
167
|
-
sourceType?: string;
|
|
168
|
-
format?: string;
|
|
169
|
-
minify?: boolean;
|
|
170
|
-
externals?: string[];
|
|
171
|
-
target?: string;
|
|
172
|
-
}): string;
|
package/src/bundler/cache.js
DELETED
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Bundler Cache
|
|
4
|
-
*
|
|
5
|
-
* LRU cache implementation for bundled results.
|
|
6
|
-
* Provides content-addressable caching with TTL expiration.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.BundlerCache = void 0;
|
|
12
|
-
exports.hashContent = hashContent;
|
|
13
|
-
exports.createCacheKey = createCacheKey;
|
|
14
|
-
/**
|
|
15
|
-
* LRU cache for bundled results.
|
|
16
|
-
*
|
|
17
|
-
* Features:
|
|
18
|
-
* - Content-addressable by hash
|
|
19
|
-
* - TTL-based expiration
|
|
20
|
-
* - LRU eviction when at capacity
|
|
21
|
-
* - Statistics tracking
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* const cache = new BundlerCache({ maxSize: 100, ttl: 300000 });
|
|
26
|
-
*
|
|
27
|
-
* // Store a result
|
|
28
|
-
* cache.set('abc123', bundleResult);
|
|
29
|
-
*
|
|
30
|
-
* // Retrieve a result
|
|
31
|
-
* const cached = cache.get('abc123');
|
|
32
|
-
* if (cached) {
|
|
33
|
-
* console.log('Cache hit!', cached);
|
|
34
|
-
* }
|
|
35
|
-
*
|
|
36
|
-
* // Get statistics
|
|
37
|
-
* console.log(cache.getStats());
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
class BundlerCache {
|
|
41
|
-
cache = new Map();
|
|
42
|
-
options;
|
|
43
|
-
stats = {
|
|
44
|
-
hits: 0,
|
|
45
|
-
misses: 0,
|
|
46
|
-
evictions: 0,
|
|
47
|
-
};
|
|
48
|
-
constructor(options = {}) {
|
|
49
|
-
this.options = {
|
|
50
|
-
maxSize: options.maxSize ?? 100,
|
|
51
|
-
ttl: options.ttl ?? 300000,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Get a cached bundle result.
|
|
56
|
-
*
|
|
57
|
-
* @param key - Cache key (typically content hash)
|
|
58
|
-
* @returns Cached result or undefined if not found/expired
|
|
59
|
-
*/
|
|
60
|
-
get(key) {
|
|
61
|
-
const entry = this.cache.get(key);
|
|
62
|
-
if (!entry) {
|
|
63
|
-
this.stats.misses++;
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
// Check TTL
|
|
67
|
-
if (this.isExpired(entry)) {
|
|
68
|
-
this.cache.delete(key);
|
|
69
|
-
this.stats.misses++;
|
|
70
|
-
this.stats.evictions++;
|
|
71
|
-
return undefined;
|
|
72
|
-
}
|
|
73
|
-
// Update access tracking
|
|
74
|
-
entry.lastAccessedAt = Date.now();
|
|
75
|
-
entry.accessCount++;
|
|
76
|
-
this.stats.hits++;
|
|
77
|
-
// Move to end (most recently used) by re-inserting
|
|
78
|
-
this.cache.delete(key);
|
|
79
|
-
this.cache.set(key, entry);
|
|
80
|
-
return entry.result;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Store a bundle result in the cache.
|
|
84
|
-
*
|
|
85
|
-
* @param key - Cache key (typically content hash)
|
|
86
|
-
* @param result - Bundle result to cache
|
|
87
|
-
*/
|
|
88
|
-
set(key, result) {
|
|
89
|
-
// Enforce capacity limit
|
|
90
|
-
while (this.cache.size >= this.options.maxSize) {
|
|
91
|
-
this.evictOldest();
|
|
92
|
-
}
|
|
93
|
-
const now = Date.now();
|
|
94
|
-
const entry = {
|
|
95
|
-
result,
|
|
96
|
-
createdAt: now,
|
|
97
|
-
lastAccessedAt: now,
|
|
98
|
-
accessCount: 1,
|
|
99
|
-
};
|
|
100
|
-
this.cache.set(key, entry);
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Check if a key exists in the cache (and is not expired).
|
|
104
|
-
*
|
|
105
|
-
* @param key - Cache key to check
|
|
106
|
-
* @returns true if key exists and is not expired
|
|
107
|
-
*/
|
|
108
|
-
has(key) {
|
|
109
|
-
const entry = this.cache.get(key);
|
|
110
|
-
if (!entry)
|
|
111
|
-
return false;
|
|
112
|
-
if (this.isExpired(entry)) {
|
|
113
|
-
this.cache.delete(key);
|
|
114
|
-
this.stats.evictions++;
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Delete a specific entry from the cache.
|
|
121
|
-
*
|
|
122
|
-
* @param key - Cache key to delete
|
|
123
|
-
* @returns true if the key was found and deleted
|
|
124
|
-
*/
|
|
125
|
-
delete(key) {
|
|
126
|
-
return this.cache.delete(key);
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Clear all entries from the cache.
|
|
130
|
-
*/
|
|
131
|
-
clear() {
|
|
132
|
-
this.cache.clear();
|
|
133
|
-
this.stats = {
|
|
134
|
-
hits: 0,
|
|
135
|
-
misses: 0,
|
|
136
|
-
evictions: 0,
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Get cache statistics.
|
|
141
|
-
*
|
|
142
|
-
* @returns Current cache statistics
|
|
143
|
-
*/
|
|
144
|
-
getStats() {
|
|
145
|
-
const total = this.stats.hits + this.stats.misses;
|
|
146
|
-
const hitRate = total > 0 ? this.stats.hits / total : 0;
|
|
147
|
-
let memoryUsage = 0;
|
|
148
|
-
for (const entry of this.cache.values()) {
|
|
149
|
-
memoryUsage += entry.result.size;
|
|
150
|
-
if (entry.result.map) {
|
|
151
|
-
memoryUsage += entry.result.map.length;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
size: this.cache.size,
|
|
156
|
-
hits: this.stats.hits,
|
|
157
|
-
misses: this.stats.misses,
|
|
158
|
-
hitRate,
|
|
159
|
-
evictions: this.stats.evictions,
|
|
160
|
-
memoryUsage,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Remove expired entries from the cache.
|
|
165
|
-
*
|
|
166
|
-
* @returns Number of entries removed
|
|
167
|
-
*/
|
|
168
|
-
cleanup() {
|
|
169
|
-
let removed = 0;
|
|
170
|
-
for (const [key, entry] of this.cache.entries()) {
|
|
171
|
-
if (this.isExpired(entry)) {
|
|
172
|
-
this.cache.delete(key);
|
|
173
|
-
removed++;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
this.stats.evictions += removed;
|
|
177
|
-
return removed;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Get all cache keys.
|
|
181
|
-
*
|
|
182
|
-
* @returns Array of cache keys
|
|
183
|
-
*/
|
|
184
|
-
keys() {
|
|
185
|
-
return Array.from(this.cache.keys());
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Get the number of entries in the cache.
|
|
189
|
-
*/
|
|
190
|
-
get size() {
|
|
191
|
-
return this.cache.size;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Check if an entry is expired.
|
|
195
|
-
*/
|
|
196
|
-
isExpired(entry) {
|
|
197
|
-
return Date.now() - entry.createdAt > this.options.ttl;
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Evict the oldest (least recently used) entry.
|
|
201
|
-
*/
|
|
202
|
-
evictOldest() {
|
|
203
|
-
// Map maintains insertion order, so first key is oldest
|
|
204
|
-
const oldestKey = this.cache.keys().next().value;
|
|
205
|
-
if (oldestKey !== undefined) {
|
|
206
|
-
this.cache.delete(oldestKey);
|
|
207
|
-
this.stats.evictions++;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
exports.BundlerCache = BundlerCache;
|
|
212
|
-
/**
|
|
213
|
-
* Create a hash from source content.
|
|
214
|
-
*
|
|
215
|
-
* Uses a simple but fast hashing algorithm suitable for cache keys.
|
|
216
|
-
*
|
|
217
|
-
* @param content - Content to hash
|
|
218
|
-
* @returns Hash string
|
|
219
|
-
*/
|
|
220
|
-
function hashContent(content) {
|
|
221
|
-
// FNV-1a hash - fast and good distribution
|
|
222
|
-
let hash = 2166136261;
|
|
223
|
-
for (let i = 0; i < content.length; i++) {
|
|
224
|
-
hash ^= content.charCodeAt(i);
|
|
225
|
-
hash = Math.imul(hash, 16777619);
|
|
226
|
-
}
|
|
227
|
-
// Convert to hex string
|
|
228
|
-
return (hash >>> 0).toString(16).padStart(8, '0');
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Create a hash from bundle options.
|
|
232
|
-
*
|
|
233
|
-
* Used to differentiate bundles of the same source with different options.
|
|
234
|
-
*
|
|
235
|
-
* @param source - Source content
|
|
236
|
-
* @param options - Bundle options that affect output
|
|
237
|
-
* @returns Combined hash string
|
|
238
|
-
*/
|
|
239
|
-
function createCacheKey(source, options) {
|
|
240
|
-
const sourceHash = hashContent(source);
|
|
241
|
-
const optionsHash = hashContent(JSON.stringify({
|
|
242
|
-
sourceType: options.sourceType,
|
|
243
|
-
format: options.format,
|
|
244
|
-
minify: options.minify,
|
|
245
|
-
externals: options.externals?.sort(),
|
|
246
|
-
target: options.target,
|
|
247
|
-
}));
|
|
248
|
-
return `${sourceHash}-${optionsHash}`;
|
|
249
|
-
}
|
|
250
|
-
//# sourceMappingURL=cache.js.map
|
package/src/bundler/cache.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/bundler/cache.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Bundler Cache\n *\n * LRU cache implementation for bundled results.\n * Provides content-addressable caching with TTL expiration.\n *\n * @packageDocumentation\n */\n\nimport type { BundleResult, CacheEntry } from './types';\n\n/**\n * Cache configuration options.\n */\nexport interface CacheOptions {\n /**\n * Maximum number of entries in the cache.\n * @default 100\n */\n maxSize: number;\n\n /**\n * Time-to-live for cache entries in milliseconds.\n * @default 300000 (5 minutes)\n */\n ttl: number;\n}\n\n/**\n * Cache statistics.\n */\nexport interface CacheStats {\n /**\n * Number of entries in the cache.\n */\n size: number;\n\n /**\n * Number of cache hits.\n */\n hits: number;\n\n /**\n * Number of cache misses.\n */\n misses: number;\n\n /**\n * Hit rate (0-1).\n */\n hitRate: number;\n\n /**\n * Number of expired entries removed.\n */\n evictions: number;\n\n /**\n * Total memory used by cache (approximate).\n */\n memoryUsage: number;\n}\n\n/**\n * LRU cache for bundled results.\n *\n * Features:\n * - Content-addressable by hash\n * - TTL-based expiration\n * - LRU eviction when at capacity\n * - Statistics tracking\n *\n * @example\n * ```typescript\n * const cache = new BundlerCache({ maxSize: 100, ttl: 300000 });\n *\n * // Store a result\n * cache.set('abc123', bundleResult);\n *\n * // Retrieve a result\n * const cached = cache.get('abc123');\n * if (cached) {\n * console.log('Cache hit!', cached);\n * }\n *\n * // Get statistics\n * console.log(cache.getStats());\n * ```\n */\nexport class BundlerCache {\n private readonly cache = new Map<string, CacheEntry>();\n private readonly options: CacheOptions;\n private stats = {\n hits: 0,\n misses: 0,\n evictions: 0,\n };\n\n constructor(options: Partial<CacheOptions> = {}) {\n this.options = {\n maxSize: options.maxSize ?? 100,\n ttl: options.ttl ?? 300000,\n };\n }\n\n /**\n * Get a cached bundle result.\n *\n * @param key - Cache key (typically content hash)\n * @returns Cached result or undefined if not found/expired\n */\n get(key: string): BundleResult | undefined {\n const entry = this.cache.get(key);\n\n if (!entry) {\n this.stats.misses++;\n return undefined;\n }\n\n // Check TTL\n if (this.isExpired(entry)) {\n this.cache.delete(key);\n this.stats.misses++;\n this.stats.evictions++;\n return undefined;\n }\n\n // Update access tracking\n entry.lastAccessedAt = Date.now();\n entry.accessCount++;\n this.stats.hits++;\n\n // Move to end (most recently used) by re-inserting\n this.cache.delete(key);\n this.cache.set(key, entry);\n\n return entry.result;\n }\n\n /**\n * Store a bundle result in the cache.\n *\n * @param key - Cache key (typically content hash)\n * @param result - Bundle result to cache\n */\n set(key: string, result: BundleResult): void {\n // Enforce capacity limit\n while (this.cache.size >= this.options.maxSize) {\n this.evictOldest();\n }\n\n const now = Date.now();\n const entry: CacheEntry = {\n result,\n createdAt: now,\n lastAccessedAt: now,\n accessCount: 1,\n };\n\n this.cache.set(key, entry);\n }\n\n /**\n * Check if a key exists in the cache (and is not expired).\n *\n * @param key - Cache key to check\n * @returns true if key exists and is not expired\n */\n has(key: string): boolean {\n const entry = this.cache.get(key);\n if (!entry) return false;\n if (this.isExpired(entry)) {\n this.cache.delete(key);\n this.stats.evictions++;\n return false;\n }\n return true;\n }\n\n /**\n * Delete a specific entry from the cache.\n *\n * @param key - Cache key to delete\n * @returns true if the key was found and deleted\n */\n delete(key: string): boolean {\n return this.cache.delete(key);\n }\n\n /**\n * Clear all entries from the cache.\n */\n clear(): void {\n this.cache.clear();\n this.stats = {\n hits: 0,\n misses: 0,\n evictions: 0,\n };\n }\n\n /**\n * Get cache statistics.\n *\n * @returns Current cache statistics\n */\n getStats(): CacheStats {\n const total = this.stats.hits + this.stats.misses;\n const hitRate = total > 0 ? this.stats.hits / total : 0;\n\n let memoryUsage = 0;\n for (const entry of this.cache.values()) {\n memoryUsage += entry.result.size;\n if (entry.result.map) {\n memoryUsage += entry.result.map.length;\n }\n }\n\n return {\n size: this.cache.size,\n hits: this.stats.hits,\n misses: this.stats.misses,\n hitRate,\n evictions: this.stats.evictions,\n memoryUsage,\n };\n }\n\n /**\n * Remove expired entries from the cache.\n *\n * @returns Number of entries removed\n */\n cleanup(): number {\n let removed = 0;\n\n for (const [key, entry] of this.cache.entries()) {\n if (this.isExpired(entry)) {\n this.cache.delete(key);\n removed++;\n }\n }\n\n this.stats.evictions += removed;\n return removed;\n }\n\n /**\n * Get all cache keys.\n *\n * @returns Array of cache keys\n */\n keys(): string[] {\n return Array.from(this.cache.keys());\n }\n\n /**\n * Get the number of entries in the cache.\n */\n get size(): number {\n return this.cache.size;\n }\n\n /**\n * Check if an entry is expired.\n */\n private isExpired(entry: CacheEntry): boolean {\n return Date.now() - entry.createdAt > this.options.ttl;\n }\n\n /**\n * Evict the oldest (least recently used) entry.\n */\n private evictOldest(): void {\n // Map maintains insertion order, so first key is oldest\n const oldestKey = this.cache.keys().next().value;\n if (oldestKey !== undefined) {\n this.cache.delete(oldestKey);\n this.stats.evictions++;\n }\n }\n}\n\n/**\n * Create a hash from source content.\n *\n * Uses a simple but fast hashing algorithm suitable for cache keys.\n *\n * @param content - Content to hash\n * @returns Hash string\n */\nexport function hashContent(content: string): string {\n // FNV-1a hash - fast and good distribution\n let hash = 2166136261;\n for (let i = 0; i < content.length; i++) {\n hash ^= content.charCodeAt(i);\n hash = Math.imul(hash, 16777619);\n }\n\n // Convert to hex string\n return (hash >>> 0).toString(16).padStart(8, '0');\n}\n\n/**\n * Create a hash from bundle options.\n *\n * Used to differentiate bundles of the same source with different options.\n *\n * @param source - Source content\n * @param options - Bundle options that affect output\n * @returns Combined hash string\n */\nexport function createCacheKey(\n source: string,\n options: {\n sourceType?: string;\n format?: string;\n minify?: boolean;\n externals?: string[];\n target?: string;\n },\n): string {\n const sourceHash = hashContent(source);\n const optionsHash = hashContent(\n JSON.stringify({\n sourceType: options.sourceType,\n format: options.format,\n minify: options.minify,\n externals: options.externals?.sort(),\n target: options.target,\n }),\n );\n\n return `${sourceHash}-${optionsHash}`;\n}\n"]}
|
package/src/bundler/index.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-Memory Bundler Module
|
|
3
|
-
*
|
|
4
|
-
* Provides fast, secure bundling for JSX/TSX/MDX sources.
|
|
5
|
-
* Used for building widget templates at both build-time and runtime.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - esbuild-based transformation (fallback to SWC)
|
|
9
|
-
* - Content-addressable caching
|
|
10
|
-
* - Security validation and sandboxing
|
|
11
|
-
* - SSR support for React components
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```typescript
|
|
15
|
-
* import { createBundler } from '@frontmcp/ui/bundler';
|
|
16
|
-
*
|
|
17
|
-
* const bundler = createBundler();
|
|
18
|
-
*
|
|
19
|
-
* // Bundle JSX source
|
|
20
|
-
* const result = await bundler.bundle({
|
|
21
|
-
* source: 'const App = () => <div>Hello</div>; export default App;',
|
|
22
|
-
* sourceType: 'jsx',
|
|
23
|
-
* });
|
|
24
|
-
*
|
|
25
|
-
* // SSR rendering
|
|
26
|
-
* const ssrResult = await bundler.bundleSSR({
|
|
27
|
-
* source: 'export default ({ data }) => <div>{data.message}</div>',
|
|
28
|
-
* context: { data: { message: 'Hello' } },
|
|
29
|
-
* });
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @packageDocumentation
|
|
33
|
-
*/
|
|
34
|
-
export { InMemoryBundler, createBundler, SecurityError, ExecutionError } from './bundler';
|
|
35
|
-
export type { SourceType, OutputFormat, BundleOptions, SSRBundleOptions, BundlerOptions, BundleResult, SSRResult, BundleMetrics, SecurityPolicy, SecurityViolation, CacheEntry, TransformContext, } from './types';
|
|
36
|
-
export { DEFAULT_SECURITY_POLICY, DEFAULT_BUNDLE_OPTIONS, DEFAULT_BUNDLER_OPTIONS, } from './types';
|
|
37
|
-
export { BundlerCache, hashContent, createCacheKey } from './cache';
|
|
38
|
-
export type { CacheOptions, CacheStats } from './cache';
|
|
39
|
-
export { validateSource, validateImports, validateSize, mergePolicy, throwOnViolations } from './sandbox/policy';
|
|
40
|
-
export { executeCode, executeDefault, isExecutionError } from './sandbox/executor';
|
|
41
|
-
export type { ExecutionContext, ExecutionResult } from './sandbox/executor';
|
package/src/bundler/index.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* In-Memory Bundler Module
|
|
4
|
-
*
|
|
5
|
-
* Provides fast, secure bundling for JSX/TSX/MDX sources.
|
|
6
|
-
* Used for building widget templates at both build-time and runtime.
|
|
7
|
-
*
|
|
8
|
-
* Features:
|
|
9
|
-
* - esbuild-based transformation (fallback to SWC)
|
|
10
|
-
* - Content-addressable caching
|
|
11
|
-
* - Security validation and sandboxing
|
|
12
|
-
* - SSR support for React components
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* import { createBundler } from '@frontmcp/ui/bundler';
|
|
17
|
-
*
|
|
18
|
-
* const bundler = createBundler();
|
|
19
|
-
*
|
|
20
|
-
* // Bundle JSX source
|
|
21
|
-
* const result = await bundler.bundle({
|
|
22
|
-
* source: 'const App = () => <div>Hello</div>; export default App;',
|
|
23
|
-
* sourceType: 'jsx',
|
|
24
|
-
* });
|
|
25
|
-
*
|
|
26
|
-
* // SSR rendering
|
|
27
|
-
* const ssrResult = await bundler.bundleSSR({
|
|
28
|
-
* source: 'export default ({ data }) => <div>{data.message}</div>',
|
|
29
|
-
* context: { data: { message: 'Hello' } },
|
|
30
|
-
* });
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* @packageDocumentation
|
|
34
|
-
*/
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.isExecutionError = exports.executeDefault = exports.executeCode = exports.throwOnViolations = exports.mergePolicy = exports.validateSize = exports.validateImports = exports.validateSource = exports.createCacheKey = exports.hashContent = exports.BundlerCache = exports.DEFAULT_BUNDLER_OPTIONS = exports.DEFAULT_BUNDLE_OPTIONS = exports.DEFAULT_SECURITY_POLICY = exports.ExecutionError = exports.SecurityError = exports.createBundler = exports.InMemoryBundler = void 0;
|
|
37
|
-
// ============================================
|
|
38
|
-
// Main Bundler
|
|
39
|
-
// ============================================
|
|
40
|
-
var bundler_1 = require("./bundler");
|
|
41
|
-
Object.defineProperty(exports, "InMemoryBundler", { enumerable: true, get: function () { return bundler_1.InMemoryBundler; } });
|
|
42
|
-
Object.defineProperty(exports, "createBundler", { enumerable: true, get: function () { return bundler_1.createBundler; } });
|
|
43
|
-
Object.defineProperty(exports, "SecurityError", { enumerable: true, get: function () { return bundler_1.SecurityError; } });
|
|
44
|
-
Object.defineProperty(exports, "ExecutionError", { enumerable: true, get: function () { return bundler_1.ExecutionError; } });
|
|
45
|
-
var types_1 = require("./types");
|
|
46
|
-
// Default values
|
|
47
|
-
Object.defineProperty(exports, "DEFAULT_SECURITY_POLICY", { enumerable: true, get: function () { return types_1.DEFAULT_SECURITY_POLICY; } });
|
|
48
|
-
Object.defineProperty(exports, "DEFAULT_BUNDLE_OPTIONS", { enumerable: true, get: function () { return types_1.DEFAULT_BUNDLE_OPTIONS; } });
|
|
49
|
-
Object.defineProperty(exports, "DEFAULT_BUNDLER_OPTIONS", { enumerable: true, get: function () { return types_1.DEFAULT_BUNDLER_OPTIONS; } });
|
|
50
|
-
// ============================================
|
|
51
|
-
// Cache Utilities
|
|
52
|
-
// ============================================
|
|
53
|
-
var cache_1 = require("./cache");
|
|
54
|
-
Object.defineProperty(exports, "BundlerCache", { enumerable: true, get: function () { return cache_1.BundlerCache; } });
|
|
55
|
-
Object.defineProperty(exports, "hashContent", { enumerable: true, get: function () { return cache_1.hashContent; } });
|
|
56
|
-
Object.defineProperty(exports, "createCacheKey", { enumerable: true, get: function () { return cache_1.createCacheKey; } });
|
|
57
|
-
// ============================================
|
|
58
|
-
// Security Utilities
|
|
59
|
-
// ============================================
|
|
60
|
-
var policy_1 = require("./sandbox/policy");
|
|
61
|
-
Object.defineProperty(exports, "validateSource", { enumerable: true, get: function () { return policy_1.validateSource; } });
|
|
62
|
-
Object.defineProperty(exports, "validateImports", { enumerable: true, get: function () { return policy_1.validateImports; } });
|
|
63
|
-
Object.defineProperty(exports, "validateSize", { enumerable: true, get: function () { return policy_1.validateSize; } });
|
|
64
|
-
Object.defineProperty(exports, "mergePolicy", { enumerable: true, get: function () { return policy_1.mergePolicy; } });
|
|
65
|
-
Object.defineProperty(exports, "throwOnViolations", { enumerable: true, get: function () { return policy_1.throwOnViolations; } });
|
|
66
|
-
// ============================================
|
|
67
|
-
// Execution Utilities
|
|
68
|
-
// ============================================
|
|
69
|
-
var executor_1 = require("./sandbox/executor");
|
|
70
|
-
Object.defineProperty(exports, "executeCode", { enumerable: true, get: function () { return executor_1.executeCode; } });
|
|
71
|
-
Object.defineProperty(exports, "executeDefault", { enumerable: true, get: function () { return executor_1.executeDefault; } });
|
|
72
|
-
Object.defineProperty(exports, "isExecutionError", { enumerable: true, get: function () { return executor_1.isExecutionError; } });
|
|
73
|
-
//# sourceMappingURL=index.js.map
|
package/src/bundler/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bundler/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;;;AAEH,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,qCAA0F;AAAjF,0GAAA,eAAe,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,yGAAA,cAAc,OAAA;AA2BtE,iCAKiB;AAJf,iBAAiB;AACjB,gHAAA,uBAAuB,OAAA;AACvB,+GAAA,sBAAsB,OAAA;AACtB,gHAAA,uBAAuB,OAAA;AAGzB,+CAA+C;AAC/C,kBAAkB;AAClB,+CAA+C;AAE/C,iCAAoE;AAA3D,qGAAA,YAAY,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,uGAAA,cAAc,OAAA;AAIlD,+CAA+C;AAC/C,qBAAqB;AACrB,+CAA+C;AAE/C,2CAAiH;AAAxG,wGAAA,cAAc,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAEtF,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C,+CAAmF;AAA1E,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AAAE,4GAAA,gBAAgB,OAAA","sourcesContent":["/**\n * In-Memory Bundler Module\n *\n * Provides fast, secure bundling for JSX/TSX/MDX sources.\n * Used for building widget templates at both build-time and runtime.\n *\n * Features:\n * - esbuild-based transformation (fallback to SWC)\n * - Content-addressable caching\n * - Security validation and sandboxing\n * - SSR support for React components\n *\n * @example\n * ```typescript\n * import { createBundler } from '@frontmcp/ui/bundler';\n *\n * const bundler = createBundler();\n *\n * // Bundle JSX source\n * const result = await bundler.bundle({\n * source: 'const App = () => <div>Hello</div>; export default App;',\n * sourceType: 'jsx',\n * });\n *\n * // SSR rendering\n * const ssrResult = await bundler.bundleSSR({\n * source: 'export default ({ data }) => <div>{data.message}</div>',\n * context: { data: { message: 'Hello' } },\n * });\n * ```\n *\n * @packageDocumentation\n */\n\n// ============================================\n// Main Bundler\n// ============================================\n\nexport { InMemoryBundler, createBundler, SecurityError, ExecutionError } from './bundler';\n\n// ============================================\n// Types\n// ============================================\n\nexport type {\n // Source types\n SourceType,\n OutputFormat,\n // Bundle options\n BundleOptions,\n SSRBundleOptions,\n BundlerOptions,\n // Results\n BundleResult,\n SSRResult,\n BundleMetrics,\n // Security\n SecurityPolicy,\n SecurityViolation,\n // Cache\n CacheEntry,\n // Context\n TransformContext,\n} from './types';\n\nexport {\n // Default values\n DEFAULT_SECURITY_POLICY,\n DEFAULT_BUNDLE_OPTIONS,\n DEFAULT_BUNDLER_OPTIONS,\n} from './types';\n\n// ============================================\n// Cache Utilities\n// ============================================\n\nexport { BundlerCache, hashContent, createCacheKey } from './cache';\n\nexport type { CacheOptions, CacheStats } from './cache';\n\n// ============================================\n// Security Utilities\n// ============================================\n\nexport { validateSource, validateImports, validateSize, mergePolicy, throwOnViolations } from './sandbox/policy';\n\n// ============================================\n// Execution Utilities\n// ============================================\n\nexport { executeCode, executeDefault, isExecutionError } from './sandbox/executor';\n\nexport type { ExecutionContext, ExecutionResult } from './sandbox/executor';\n"]}
|