@frontmcp/ui 0.6.0 → 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/runtime/index.d.ts +2 -1
- package/bridge/runtime/index.d.ts.map +1 -1
- package/bundler/file-cache/component-builder.d.ts +1 -1
- package/bundler/file-cache/component-builder.d.ts.map +1 -1
- package/bundler/file-cache/hash-calculator.d.ts +1 -1
- package/bundler/file-cache/hash-calculator.d.ts.map +1 -1
- package/bundler/file-cache/storage/filesystem.d.ts +1 -1
- package/bundler/file-cache/storage/filesystem.d.ts.map +1 -1
- package/bundler/file-cache/storage/interface.d.ts +1 -1
- package/bundler/file-cache/storage/interface.d.ts.map +1 -1
- package/bundler/file-cache/storage/redis.d.ts +1 -1
- package/bundler/file-cache/storage/redis.d.ts.map +1 -1
- package/bundler/index.js +10 -1057
- package/components/alert.schema.d.ts +6 -6
- package/components/avatar.schema.d.ts +9 -9
- package/components/badge.schema.d.ts +9 -9
- package/components/button.schema.d.ts +9 -9
- package/components/card.schema.d.ts +7 -7
- package/components/form.schema.d.ts +24 -24
- package/components/index.js +128 -198
- package/components/modal.schema.d.ts +8 -8
- package/components/table.schema.d.ts +6 -6
- package/esm/bridge/runtime/index.d.ts +2 -1
- package/esm/bridge/runtime/index.d.ts.map +1 -1
- package/esm/bundler/file-cache/component-builder.d.ts +1 -1
- package/esm/bundler/file-cache/component-builder.d.ts.map +1 -1
- package/esm/bundler/file-cache/hash-calculator.d.ts +1 -1
- package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -1
- package/esm/bundler/file-cache/storage/filesystem.d.ts +1 -1
- package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -1
- package/esm/bundler/file-cache/storage/interface.d.ts +1 -1
- package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -1
- package/esm/bundler/file-cache/storage/redis.d.ts +1 -1
- package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -1
- package/esm/bundler/index.js +3 -1050
- package/esm/components/alert.schema.d.ts +6 -6
- package/esm/components/avatar.schema.d.ts +9 -9
- package/esm/components/badge.schema.d.ts +9 -9
- package/esm/components/button.schema.d.ts +9 -9
- package/esm/components/card.schema.d.ts +7 -7
- package/esm/components/form.schema.d.ts +24 -24
- package/esm/components/index.js +136 -196
- package/esm/components/modal.schema.d.ts +8 -8
- package/esm/components/table.schema.d.ts +6 -6
- package/esm/index.d.ts +23 -39
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4256 -16441
- package/esm/layouts/base.d.ts +2 -2
- package/esm/layouts/base.d.ts.map +1 -1
- package/esm/layouts/index.js +33 -516
- package/esm/package.json +8 -26
- package/esm/pages/index.js +100 -627
- package/esm/react/Alert.d.ts +1 -2
- package/esm/react/Alert.d.ts.map +1 -1
- package/esm/react/Badge.d.ts +1 -2
- package/esm/react/Badge.d.ts.map +1 -1
- package/esm/react/Button.d.ts +1 -2
- package/esm/react/Button.d.ts.map +1 -1
- package/esm/react/Card.d.ts +1 -2
- package/esm/react/Card.d.ts.map +1 -1
- package/esm/react/hooks/context.d.ts +1 -1
- package/esm/react/hooks/context.d.ts.map +1 -1
- package/esm/react/index.d.ts +5 -6
- package/esm/react/index.d.ts.map +1 -1
- package/esm/react/index.js +2074 -322
- package/esm/react/types.d.ts +1 -2
- package/esm/react/types.d.ts.map +1 -1
- package/esm/renderers/index.d.ts +10 -25
- package/esm/renderers/index.d.ts.map +1 -1
- package/esm/renderers/index.js +171 -1617
- package/esm/{runtime/adapters → renderers}/react.adapter.d.ts +2 -2
- package/esm/renderers/react.adapter.d.ts.map +1 -0
- package/esm/renderers/react.renderer.d.ts +3 -3
- package/esm/renderers/react.renderer.d.ts.map +1 -1
- package/esm/universal/index.js +1755 -0
- package/esm/web-components/index.js +232 -287
- package/esm/widgets/index.js +89 -147
- package/index.d.ts +23 -39
- package/index.d.ts.map +1 -1
- package/index.js +6123 -18539
- package/layouts/base.d.ts +2 -2
- package/layouts/base.d.ts.map +1 -1
- package/layouts/index.js +43 -536
- package/package.json +8 -26
- package/pages/index.js +111 -648
- package/react/Alert.d.ts +1 -2
- package/react/Alert.d.ts.map +1 -1
- package/react/Badge.d.ts +1 -2
- package/react/Badge.d.ts.map +1 -1
- package/react/Button.d.ts +1 -2
- package/react/Button.d.ts.map +1 -1
- package/react/Card.d.ts +1 -2
- package/react/Card.d.ts.map +1 -1
- package/react/hooks/context.d.ts +1 -1
- package/react/hooks/context.d.ts.map +1 -1
- package/react/index.d.ts +5 -6
- package/react/index.d.ts.map +1 -1
- package/react/index.js +2065 -335
- package/react/types.d.ts +1 -2
- package/react/types.d.ts.map +1 -1
- package/renderers/index.d.ts +10 -25
- package/renderers/index.d.ts.map +1 -1
- package/renderers/index.js +175 -1641
- package/{runtime/adapters → renderers}/react.adapter.d.ts +2 -2
- package/renderers/react.adapter.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +3 -3
- package/renderers/react.renderer.d.ts.map +1 -1
- package/universal/index.js +1841 -0
- package/web-components/index.js +224 -289
- package/widgets/index.js +80 -148
- package/adapters/index.d.ts +0 -13
- package/adapters/index.d.ts.map +0 -1
- package/adapters/index.js +0 -462
- package/adapters/platform-meta.d.ts +0 -166
- package/adapters/platform-meta.d.ts.map +0 -1
- package/adapters/response-builder.d.ts +0 -108
- package/adapters/response-builder.d.ts.map +0 -1
- package/adapters/serving-mode.d.ts +0 -107
- package/adapters/serving-mode.d.ts.map +0 -1
- package/base-template/bridge.d.ts +0 -90
- package/base-template/bridge.d.ts.map +0 -1
- package/base-template/default-base-template.d.ts +0 -92
- package/base-template/default-base-template.d.ts.map +0 -1
- package/base-template/index.d.ts +0 -15
- package/base-template/index.d.ts.map +0 -1
- package/base-template/index.js +0 -1398
- package/base-template/polyfills.d.ts +0 -31
- package/base-template/polyfills.d.ts.map +0 -1
- package/base-template/theme-styles.d.ts +0 -74
- package/base-template/theme-styles.d.ts.map +0 -1
- package/build/cdn-resources.d.ts +0 -243
- package/build/cdn-resources.d.ts.map +0 -1
- package/build/index.d.ts +0 -295
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -7096
- package/build/widget-manifest.d.ts +0 -362
- package/build/widget-manifest.d.ts.map +0 -1
- package/dependency/cdn-registry.d.ts +0 -98
- package/dependency/cdn-registry.d.ts.map +0 -1
- package/dependency/import-map.d.ts +0 -186
- package/dependency/import-map.d.ts.map +0 -1
- package/dependency/import-parser.d.ts +0 -82
- package/dependency/import-parser.d.ts.map +0 -1
- package/dependency/index.d.ts +0 -17
- package/dependency/index.d.ts.map +0 -1
- package/dependency/resolver.d.ts +0 -164
- package/dependency/resolver.d.ts.map +0 -1
- package/dependency/schemas.d.ts +0 -486
- package/dependency/schemas.d.ts.map +0 -1
- package/dependency/template-loader.d.ts +0 -204
- package/dependency/template-loader.d.ts.map +0 -1
- package/dependency/template-processor.d.ts +0 -118
- package/dependency/template-processor.d.ts.map +0 -1
- package/dependency/types.d.ts +0 -739
- package/dependency/types.d.ts.map +0 -1
- package/esm/adapters/index.d.ts +0 -13
- package/esm/adapters/index.d.ts.map +0 -1
- package/esm/adapters/index.js +0 -427
- package/esm/adapters/platform-meta.d.ts +0 -166
- package/esm/adapters/platform-meta.d.ts.map +0 -1
- package/esm/adapters/response-builder.d.ts +0 -108
- package/esm/adapters/response-builder.d.ts.map +0 -1
- package/esm/adapters/serving-mode.d.ts +0 -107
- package/esm/adapters/serving-mode.d.ts.map +0 -1
- package/esm/base-template/bridge.d.ts +0 -90
- package/esm/base-template/bridge.d.ts.map +0 -1
- package/esm/base-template/default-base-template.d.ts +0 -92
- package/esm/base-template/default-base-template.d.ts.map +0 -1
- package/esm/base-template/index.d.ts +0 -15
- package/esm/base-template/index.d.ts.map +0 -1
- package/esm/base-template/index.js +0 -1364
- package/esm/base-template/polyfills.d.ts +0 -31
- package/esm/base-template/polyfills.d.ts.map +0 -1
- package/esm/base-template/theme-styles.d.ts +0 -74
- package/esm/base-template/theme-styles.d.ts.map +0 -1
- package/esm/build/cdn-resources.d.ts +0 -243
- package/esm/build/cdn-resources.d.ts.map +0 -1
- package/esm/build/index.d.ts +0 -295
- package/esm/build/index.d.ts.map +0 -1
- package/esm/build/index.js +0 -7021
- package/esm/build/widget-manifest.d.ts +0 -362
- package/esm/build/widget-manifest.d.ts.map +0 -1
- package/esm/dependency/cdn-registry.d.ts +0 -98
- package/esm/dependency/cdn-registry.d.ts.map +0 -1
- package/esm/dependency/import-map.d.ts +0 -186
- package/esm/dependency/import-map.d.ts.map +0 -1
- package/esm/dependency/import-parser.d.ts +0 -82
- package/esm/dependency/import-parser.d.ts.map +0 -1
- package/esm/dependency/index.d.ts +0 -17
- package/esm/dependency/index.d.ts.map +0 -1
- package/esm/dependency/resolver.d.ts +0 -164
- package/esm/dependency/resolver.d.ts.map +0 -1
- package/esm/dependency/schemas.d.ts +0 -486
- package/esm/dependency/schemas.d.ts.map +0 -1
- package/esm/dependency/template-loader.d.ts +0 -204
- package/esm/dependency/template-loader.d.ts.map +0 -1
- package/esm/dependency/template-processor.d.ts +0 -118
- package/esm/dependency/template-processor.d.ts.map +0 -1
- package/esm/dependency/types.d.ts +0 -739
- package/esm/dependency/types.d.ts.map +0 -1
- package/esm/handlebars/expression-extractor.d.ts +0 -147
- package/esm/handlebars/expression-extractor.d.ts.map +0 -1
- package/esm/handlebars/helpers.d.ts +0 -339
- package/esm/handlebars/helpers.d.ts.map +0 -1
- package/esm/handlebars/index.d.ts +0 -195
- package/esm/handlebars/index.d.ts.map +0 -1
- package/esm/handlebars/index.js +0 -587
- package/esm/registry/index.d.ts +0 -46
- package/esm/registry/index.d.ts.map +0 -1
- package/esm/registry/index.js +0 -6422
- package/esm/registry/render-template.d.ts +0 -91
- package/esm/registry/render-template.d.ts.map +0 -1
- package/esm/registry/tool-ui.registry.d.ts +0 -294
- package/esm/registry/tool-ui.registry.d.ts.map +0 -1
- package/esm/registry/uri-utils.d.ts +0 -56
- package/esm/registry/uri-utils.d.ts.map +0 -1
- package/esm/renderers/cache.d.ts +0 -145
- package/esm/renderers/cache.d.ts.map +0 -1
- package/esm/renderers/html.renderer.d.ts +0 -123
- package/esm/renderers/html.renderer.d.ts.map +0 -1
- package/esm/renderers/mdx.renderer.d.ts +0 -120
- package/esm/renderers/mdx.renderer.d.ts.map +0 -1
- package/esm/renderers/registry.d.ts +0 -134
- package/esm/renderers/registry.d.ts.map +0 -1
- package/esm/renderers/types.d.ts +0 -342
- package/esm/renderers/types.d.ts.map +0 -1
- package/esm/renderers/utils/detect.d.ts +0 -107
- package/esm/renderers/utils/detect.d.ts.map +0 -1
- package/esm/renderers/utils/hash.d.ts +0 -40
- package/esm/renderers/utils/hash.d.ts.map +0 -1
- package/esm/renderers/utils/index.d.ts +0 -9
- package/esm/renderers/utils/index.d.ts.map +0 -1
- package/esm/renderers/utils/transpiler.d.ts +0 -89
- package/esm/renderers/utils/transpiler.d.ts.map +0 -1
- package/esm/runtime/adapters/html.adapter.d.ts +0 -59
- package/esm/runtime/adapters/html.adapter.d.ts.map +0 -1
- package/esm/runtime/adapters/index.d.ts +0 -26
- package/esm/runtime/adapters/index.d.ts.map +0 -1
- package/esm/runtime/adapters/mdx.adapter.d.ts +0 -73
- package/esm/runtime/adapters/mdx.adapter.d.ts.map +0 -1
- package/esm/runtime/adapters/react.adapter.d.ts.map +0 -1
- package/esm/runtime/adapters/types.d.ts +0 -95
- package/esm/runtime/adapters/types.d.ts.map +0 -1
- package/esm/runtime/csp.d.ts +0 -48
- package/esm/runtime/csp.d.ts.map +0 -1
- package/esm/runtime/index.d.ts +0 -17
- package/esm/runtime/index.d.ts.map +0 -1
- package/esm/runtime/index.js +0 -5186
- package/esm/runtime/mcp-bridge.d.ts +0 -101
- package/esm/runtime/mcp-bridge.d.ts.map +0 -1
- package/esm/runtime/renderer-runtime.d.ts +0 -133
- package/esm/runtime/renderer-runtime.d.ts.map +0 -1
- package/esm/runtime/sanitizer.d.ts +0 -172
- package/esm/runtime/sanitizer.d.ts.map +0 -1
- package/esm/runtime/types.d.ts +0 -415
- package/esm/runtime/types.d.ts.map +0 -1
- package/esm/runtime/wrapper.d.ts +0 -421
- package/esm/runtime/wrapper.d.ts.map +0 -1
- package/esm/styles/index.d.ts +0 -8
- package/esm/styles/index.d.ts.map +0 -1
- package/esm/styles/index.js +0 -171
- package/esm/styles/variants.d.ts +0 -51
- package/esm/styles/variants.d.ts.map +0 -1
- package/esm/theme/cdn.d.ts +0 -195
- package/esm/theme/cdn.d.ts.map +0 -1
- package/esm/theme/index.d.ts +0 -18
- package/esm/theme/index.d.ts.map +0 -1
- package/esm/theme/index.js +0 -700
- package/esm/theme/platforms.d.ts +0 -107
- package/esm/theme/platforms.d.ts.map +0 -1
- package/esm/theme/presets/github-openai.d.ts +0 -50
- package/esm/theme/presets/github-openai.d.ts.map +0 -1
- package/esm/theme/presets/index.d.ts +0 -11
- package/esm/theme/presets/index.d.ts.map +0 -1
- package/esm/theme/theme.d.ts +0 -396
- package/esm/theme/theme.d.ts.map +0 -1
- package/esm/tool-template/builder.d.ts +0 -213
- package/esm/tool-template/builder.d.ts.map +0 -1
- package/esm/tool-template/index.d.ts +0 -16
- package/esm/tool-template/index.d.ts.map +0 -1
- package/esm/tool-template/index.js +0 -3515
- package/esm/types/index.d.ts +0 -14
- package/esm/types/index.d.ts.map +0 -1
- package/esm/types/index.js +0 -75
- package/esm/types/ui-config.d.ts +0 -639
- package/esm/types/ui-config.d.ts.map +0 -1
- package/esm/types/ui-runtime.d.ts +0 -1007
- package/esm/types/ui-runtime.d.ts.map +0 -1
- package/esm/typings/cache/cache-adapter.d.ts +0 -125
- package/esm/typings/cache/cache-adapter.d.ts.map +0 -1
- package/esm/typings/cache/index.d.ts +0 -10
- package/esm/typings/cache/index.d.ts.map +0 -1
- package/esm/typings/cache/memory-cache.d.ts +0 -92
- package/esm/typings/cache/memory-cache.d.ts.map +0 -1
- package/esm/typings/dts-parser.d.ts +0 -90
- package/esm/typings/dts-parser.d.ts.map +0 -1
- package/esm/typings/index.d.ts +0 -48
- package/esm/typings/index.d.ts.map +0 -1
- package/esm/typings/schemas.d.ts +0 -232
- package/esm/typings/schemas.d.ts.map +0 -1
- package/esm/typings/type-fetcher.d.ts +0 -89
- package/esm/typings/type-fetcher.d.ts.map +0 -1
- package/esm/typings/types.d.ts +0 -320
- package/esm/typings/types.d.ts.map +0 -1
- package/esm/utils/escape-html.d.ts +0 -58
- package/esm/utils/escape-html.d.ts.map +0 -1
- package/esm/utils/index.d.ts +0 -10
- package/esm/utils/index.d.ts.map +0 -1
- package/esm/utils/index.js +0 -40
- package/esm/utils/safe-stringify.d.ts +0 -30
- package/esm/utils/safe-stringify.d.ts.map +0 -1
- package/esm/validation/error-box.d.ts +0 -56
- package/esm/validation/error-box.d.ts.map +0 -1
- package/esm/validation/index.d.ts +0 -13
- package/esm/validation/index.d.ts.map +0 -1
- package/esm/validation/index.js +0 -562
- package/esm/validation/schema-paths.d.ts +0 -118
- package/esm/validation/schema-paths.d.ts.map +0 -1
- package/esm/validation/template-validator.d.ts +0 -143
- package/esm/validation/template-validator.d.ts.map +0 -1
- package/esm/validation/wrapper.d.ts +0 -97
- package/esm/validation/wrapper.d.ts.map +0 -1
- package/handlebars/expression-extractor.d.ts +0 -147
- package/handlebars/expression-extractor.d.ts.map +0 -1
- package/handlebars/helpers.d.ts +0 -339
- package/handlebars/helpers.d.ts.map +0 -1
- package/handlebars/index.d.ts +0 -195
- package/handlebars/index.d.ts.map +0 -1
- package/handlebars/index.js +0 -666
- package/registry/index.d.ts +0 -46
- package/registry/index.d.ts.map +0 -1
- package/registry/index.js +0 -6465
- package/registry/render-template.d.ts +0 -91
- package/registry/render-template.d.ts.map +0 -1
- package/registry/tool-ui.registry.d.ts +0 -294
- package/registry/tool-ui.registry.d.ts.map +0 -1
- package/registry/uri-utils.d.ts +0 -56
- package/registry/uri-utils.d.ts.map +0 -1
- package/renderers/cache.d.ts +0 -145
- package/renderers/cache.d.ts.map +0 -1
- package/renderers/html.renderer.d.ts +0 -123
- package/renderers/html.renderer.d.ts.map +0 -1
- package/renderers/mdx.renderer.d.ts +0 -120
- package/renderers/mdx.renderer.d.ts.map +0 -1
- package/renderers/registry.d.ts +0 -134
- package/renderers/registry.d.ts.map +0 -1
- package/renderers/types.d.ts +0 -342
- package/renderers/types.d.ts.map +0 -1
- package/renderers/utils/detect.d.ts +0 -107
- package/renderers/utils/detect.d.ts.map +0 -1
- package/renderers/utils/hash.d.ts +0 -40
- package/renderers/utils/hash.d.ts.map +0 -1
- package/renderers/utils/index.d.ts +0 -9
- package/renderers/utils/index.d.ts.map +0 -1
- package/renderers/utils/transpiler.d.ts +0 -89
- package/renderers/utils/transpiler.d.ts.map +0 -1
- package/runtime/adapters/html.adapter.d.ts +0 -59
- package/runtime/adapters/html.adapter.d.ts.map +0 -1
- package/runtime/adapters/index.d.ts +0 -26
- package/runtime/adapters/index.d.ts.map +0 -1
- package/runtime/adapters/mdx.adapter.d.ts +0 -73
- package/runtime/adapters/mdx.adapter.d.ts.map +0 -1
- package/runtime/adapters/react.adapter.d.ts.map +0 -1
- package/runtime/adapters/types.d.ts +0 -95
- package/runtime/adapters/types.d.ts.map +0 -1
- package/runtime/csp.d.ts +0 -48
- package/runtime/csp.d.ts.map +0 -1
- package/runtime/index.d.ts +0 -17
- package/runtime/index.d.ts.map +0 -1
- package/runtime/index.js +0 -5264
- package/runtime/mcp-bridge.d.ts +0 -101
- package/runtime/mcp-bridge.d.ts.map +0 -1
- package/runtime/renderer-runtime.d.ts +0 -133
- package/runtime/renderer-runtime.d.ts.map +0 -1
- package/runtime/sanitizer.d.ts +0 -172
- package/runtime/sanitizer.d.ts.map +0 -1
- package/runtime/types.d.ts +0 -415
- package/runtime/types.d.ts.map +0 -1
- package/runtime/wrapper.d.ts +0 -421
- package/runtime/wrapper.d.ts.map +0 -1
- package/styles/index.d.ts +0 -8
- package/styles/index.d.ts.map +0 -1
- package/styles/index.js +0 -222
- package/styles/variants.d.ts +0 -51
- package/styles/variants.d.ts.map +0 -1
- package/theme/cdn.d.ts +0 -195
- package/theme/cdn.d.ts.map +0 -1
- package/theme/index.d.ts +0 -18
- package/theme/index.d.ts.map +0 -1
- package/theme/index.js +0 -757
- package/theme/platforms.d.ts +0 -107
- package/theme/platforms.d.ts.map +0 -1
- package/theme/presets/github-openai.d.ts +0 -50
- package/theme/presets/github-openai.d.ts.map +0 -1
- package/theme/presets/index.d.ts +0 -11
- package/theme/presets/index.d.ts.map +0 -1
- package/theme/theme.d.ts +0 -396
- package/theme/theme.d.ts.map +0 -1
- package/tool-template/builder.d.ts +0 -213
- package/tool-template/builder.d.ts.map +0 -1
- package/tool-template/index.d.ts +0 -16
- package/tool-template/index.d.ts.map +0 -1
- package/tool-template/index.js +0 -3559
- package/types/index.d.ts +0 -14
- package/types/index.d.ts.map +0 -1
- package/types/index.js +0 -108
- package/types/ui-config.d.ts +0 -639
- package/types/ui-config.d.ts.map +0 -1
- package/types/ui-runtime.d.ts +0 -1007
- package/types/ui-runtime.d.ts.map +0 -1
- package/typings/cache/cache-adapter.d.ts +0 -125
- package/typings/cache/cache-adapter.d.ts.map +0 -1
- package/typings/cache/index.d.ts +0 -10
- package/typings/cache/index.d.ts.map +0 -1
- package/typings/cache/memory-cache.d.ts +0 -92
- package/typings/cache/memory-cache.d.ts.map +0 -1
- package/typings/dts-parser.d.ts +0 -90
- package/typings/dts-parser.d.ts.map +0 -1
- package/typings/index.d.ts +0 -48
- package/typings/index.d.ts.map +0 -1
- package/typings/schemas.d.ts +0 -232
- package/typings/schemas.d.ts.map +0 -1
- package/typings/type-fetcher.d.ts +0 -89
- package/typings/type-fetcher.d.ts.map +0 -1
- package/typings/types.d.ts +0 -320
- package/typings/types.d.ts.map +0 -1
- package/utils/escape-html.d.ts +0 -58
- package/utils/escape-html.d.ts.map +0 -1
- package/utils/index.d.ts +0 -10
- package/utils/index.d.ts.map +0 -1
- package/utils/index.js +0 -70
- package/utils/safe-stringify.d.ts +0 -30
- package/utils/safe-stringify.d.ts.map +0 -1
- package/validation/error-box.d.ts +0 -56
- package/validation/error-box.d.ts.map +0 -1
- package/validation/index.d.ts +0 -13
- package/validation/index.d.ts.map +0 -1
- package/validation/index.js +0 -603
- package/validation/schema-paths.d.ts +0 -118
- package/validation/schema-paths.d.ts.map +0 -1
- package/validation/template-validator.d.ts +0 -143
- package/validation/template-validator.d.ts.map +0 -1
- package/validation/wrapper.d.ts +0 -97
- package/validation/wrapper.d.ts.map +0 -1
package/esm/bundler/index.js
CHANGED
|
@@ -1391,17 +1391,8 @@ function isExecutionError(error) {
|
|
|
1391
1391
|
return error instanceof ExecutionError;
|
|
1392
1392
|
}
|
|
1393
1393
|
|
|
1394
|
-
// libs/ui/src/
|
|
1395
|
-
|
|
1396
|
-
if (str === null || str === void 0) {
|
|
1397
|
-
return "";
|
|
1398
|
-
}
|
|
1399
|
-
const s = String(str);
|
|
1400
|
-
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
1401
|
-
}
|
|
1402
|
-
function escapeHtmlAttr(str) {
|
|
1403
|
-
return str.replace(/&/g, "&").replace(/"/g, """);
|
|
1404
|
-
}
|
|
1394
|
+
// libs/ui/src/bundler/bundler.ts
|
|
1395
|
+
import { escapeHtml } from "@frontmcp/uipack/utils";
|
|
1405
1396
|
|
|
1406
1397
|
// libs/ui/src/universal/types.ts
|
|
1407
1398
|
var UNIVERSAL_CDN = {
|
|
@@ -3356,1045 +3347,7 @@ import { readFile as readFile3 } from "fs/promises";
|
|
|
3356
3347
|
import { existsSync as existsSync3 } from "fs";
|
|
3357
3348
|
import { resolve as resolve2, extname } from "path";
|
|
3358
3349
|
import { randomUUID } from "crypto";
|
|
3359
|
-
|
|
3360
|
-
// libs/ui/src/dependency/cdn-registry.ts
|
|
3361
|
-
var DEFAULT_CDN_REGISTRY = {
|
|
3362
|
-
// ============================================
|
|
3363
|
-
// React Ecosystem
|
|
3364
|
-
// ============================================
|
|
3365
|
-
react: {
|
|
3366
|
-
packageName: "react",
|
|
3367
|
-
defaultVersion: "18.3.1",
|
|
3368
|
-
providers: {
|
|
3369
|
-
cloudflare: {
|
|
3370
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.production.min.js",
|
|
3371
|
-
integrity: "sha512-Qp8J4Xr8LBZ5CXNJQc/HmLqFrpXz6lNkbzMYkYHKzQx5p1q1yOqPQHntXKoYgPPE/n9m0QF1OkJdXa2ePpO4fw==",
|
|
3372
|
-
global: "React",
|
|
3373
|
-
crossorigin: "anonymous"
|
|
3374
|
-
},
|
|
3375
|
-
jsdelivr: {
|
|
3376
|
-
url: "https://cdn.jsdelivr.net/npm/react@18.3.1/umd/react.production.min.js",
|
|
3377
|
-
global: "React",
|
|
3378
|
-
crossorigin: "anonymous"
|
|
3379
|
-
},
|
|
3380
|
-
unpkg: {
|
|
3381
|
-
url: "https://unpkg.com/react@18.3.1/umd/react.production.min.js",
|
|
3382
|
-
global: "React",
|
|
3383
|
-
crossorigin: "anonymous"
|
|
3384
|
-
},
|
|
3385
|
-
"esm.sh": {
|
|
3386
|
-
url: "https://esm.sh/react@18.3.1",
|
|
3387
|
-
esm: true,
|
|
3388
|
-
crossorigin: "anonymous"
|
|
3389
|
-
}
|
|
3390
|
-
},
|
|
3391
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
|
|
3392
|
-
metadata: {
|
|
3393
|
-
description: "A JavaScript library for building user interfaces",
|
|
3394
|
-
homepage: "https://react.dev",
|
|
3395
|
-
license: "MIT"
|
|
3396
|
-
}
|
|
3397
|
-
},
|
|
3398
|
-
"react-dom": {
|
|
3399
|
-
packageName: "react-dom",
|
|
3400
|
-
defaultVersion: "18.3.1",
|
|
3401
|
-
providers: {
|
|
3402
|
-
cloudflare: {
|
|
3403
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.3.1/umd/react-dom.production.min.js",
|
|
3404
|
-
integrity: "sha512-6s2gVRdS3aT+FDdZTRJSzKlzIPqDXWyYl/5hPQb6hSgzKPGFcQyZhbqjbWVxGrs2dYNrINFXb0k0UD3d+CKPJA==",
|
|
3405
|
-
global: "ReactDOM",
|
|
3406
|
-
crossorigin: "anonymous",
|
|
3407
|
-
peerDependencies: ["react"]
|
|
3408
|
-
},
|
|
3409
|
-
jsdelivr: {
|
|
3410
|
-
url: "https://cdn.jsdelivr.net/npm/react-dom@18.3.1/umd/react-dom.production.min.js",
|
|
3411
|
-
global: "ReactDOM",
|
|
3412
|
-
crossorigin: "anonymous",
|
|
3413
|
-
peerDependencies: ["react"]
|
|
3414
|
-
},
|
|
3415
|
-
unpkg: {
|
|
3416
|
-
url: "https://unpkg.com/react-dom@18.3.1/umd/react-dom.production.min.js",
|
|
3417
|
-
global: "ReactDOM",
|
|
3418
|
-
crossorigin: "anonymous",
|
|
3419
|
-
peerDependencies: ["react"]
|
|
3420
|
-
},
|
|
3421
|
-
"esm.sh": {
|
|
3422
|
-
url: "https://esm.sh/react-dom@18.3.1",
|
|
3423
|
-
esm: true,
|
|
3424
|
-
crossorigin: "anonymous",
|
|
3425
|
-
peerDependencies: ["react"]
|
|
3426
|
-
}
|
|
3427
|
-
},
|
|
3428
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
|
|
3429
|
-
metadata: {
|
|
3430
|
-
description: "React package for working with the DOM",
|
|
3431
|
-
homepage: "https://react.dev",
|
|
3432
|
-
license: "MIT"
|
|
3433
|
-
}
|
|
3434
|
-
},
|
|
3435
|
-
// ============================================
|
|
3436
|
-
// Charting Libraries
|
|
3437
|
-
// ============================================
|
|
3438
|
-
"chart.js": {
|
|
3439
|
-
packageName: "chart.js",
|
|
3440
|
-
defaultVersion: "4.4.7",
|
|
3441
|
-
providers: {
|
|
3442
|
-
cloudflare: {
|
|
3443
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.7/chart.umd.min.js",
|
|
3444
|
-
integrity: "sha512-dMDjIoZjJD6gs0KPBhFYjLQrH3kIohSEn6HzWs6Y6GiO0+L9kk/bM3cR5KNEDK1KvMNpTIZG6pHK9SZfCJHRpQ==",
|
|
3445
|
-
global: "Chart",
|
|
3446
|
-
crossorigin: "anonymous"
|
|
3447
|
-
},
|
|
3448
|
-
jsdelivr: {
|
|
3449
|
-
url: "https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js",
|
|
3450
|
-
global: "Chart",
|
|
3451
|
-
crossorigin: "anonymous"
|
|
3452
|
-
},
|
|
3453
|
-
unpkg: {
|
|
3454
|
-
url: "https://unpkg.com/chart.js@4.4.7/dist/chart.umd.min.js",
|
|
3455
|
-
global: "Chart",
|
|
3456
|
-
crossorigin: "anonymous"
|
|
3457
|
-
}
|
|
3458
|
-
},
|
|
3459
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
|
|
3460
|
-
metadata: {
|
|
3461
|
-
description: "Simple yet flexible JavaScript charting library",
|
|
3462
|
-
homepage: "https://www.chartjs.org",
|
|
3463
|
-
license: "MIT"
|
|
3464
|
-
}
|
|
3465
|
-
},
|
|
3466
|
-
"react-chartjs-2": {
|
|
3467
|
-
packageName: "react-chartjs-2",
|
|
3468
|
-
defaultVersion: "5.3.0",
|
|
3469
|
-
providers: {
|
|
3470
|
-
cloudflare: {
|
|
3471
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/react-chartjs-2/5.3.0/react-chartjs-2.min.js",
|
|
3472
|
-
global: "ReactChartjs2",
|
|
3473
|
-
crossorigin: "anonymous",
|
|
3474
|
-
peerDependencies: ["react", "chart.js"]
|
|
3475
|
-
},
|
|
3476
|
-
jsdelivr: {
|
|
3477
|
-
url: "https://cdn.jsdelivr.net/npm/react-chartjs-2@5.3.0/dist/index.umd.js",
|
|
3478
|
-
global: "ReactChartjs2",
|
|
3479
|
-
crossorigin: "anonymous",
|
|
3480
|
-
peerDependencies: ["react", "chart.js"]
|
|
3481
|
-
},
|
|
3482
|
-
"esm.sh": {
|
|
3483
|
-
url: "https://esm.sh/react-chartjs-2@5.3.0",
|
|
3484
|
-
esm: true,
|
|
3485
|
-
crossorigin: "anonymous",
|
|
3486
|
-
peerDependencies: ["react", "chart.js"]
|
|
3487
|
-
}
|
|
3488
|
-
},
|
|
3489
|
-
preferredProviders: ["cloudflare", "jsdelivr", "esm.sh"],
|
|
3490
|
-
metadata: {
|
|
3491
|
-
description: "React components for Chart.js",
|
|
3492
|
-
homepage: "https://react-chartjs-2.js.org",
|
|
3493
|
-
license: "MIT"
|
|
3494
|
-
}
|
|
3495
|
-
},
|
|
3496
|
-
// ============================================
|
|
3497
|
-
// D3.js
|
|
3498
|
-
// ============================================
|
|
3499
|
-
d3: {
|
|
3500
|
-
packageName: "d3",
|
|
3501
|
-
defaultVersion: "7.9.0",
|
|
3502
|
-
providers: {
|
|
3503
|
-
cloudflare: {
|
|
3504
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js",
|
|
3505
|
-
integrity: "sha512-vc58qvvBdrDR4etbxMdlTt4GBQk1qjvyORR2nrsPsFPyrs+/u5c3+1Ct6upOgdZoIl7eq6k3a1UPDSNAQi/32A==",
|
|
3506
|
-
global: "d3",
|
|
3507
|
-
crossorigin: "anonymous"
|
|
3508
|
-
},
|
|
3509
|
-
jsdelivr: {
|
|
3510
|
-
url: "https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",
|
|
3511
|
-
global: "d3",
|
|
3512
|
-
crossorigin: "anonymous"
|
|
3513
|
-
},
|
|
3514
|
-
unpkg: {
|
|
3515
|
-
url: "https://unpkg.com/d3@7.9.0/dist/d3.min.js",
|
|
3516
|
-
global: "d3",
|
|
3517
|
-
crossorigin: "anonymous"
|
|
3518
|
-
}
|
|
3519
|
-
},
|
|
3520
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
|
|
3521
|
-
metadata: {
|
|
3522
|
-
description: "Data-Driven Documents",
|
|
3523
|
-
homepage: "https://d3js.org",
|
|
3524
|
-
license: "ISC"
|
|
3525
|
-
}
|
|
3526
|
-
},
|
|
3527
|
-
// ============================================
|
|
3528
|
-
// Utility Libraries
|
|
3529
|
-
// ============================================
|
|
3530
|
-
lodash: {
|
|
3531
|
-
packageName: "lodash",
|
|
3532
|
-
defaultVersion: "4.17.21",
|
|
3533
|
-
providers: {
|
|
3534
|
-
cloudflare: {
|
|
3535
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js",
|
|
3536
|
-
integrity: "sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==",
|
|
3537
|
-
global: "_",
|
|
3538
|
-
crossorigin: "anonymous"
|
|
3539
|
-
},
|
|
3540
|
-
jsdelivr: {
|
|
3541
|
-
url: "https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js",
|
|
3542
|
-
global: "_",
|
|
3543
|
-
crossorigin: "anonymous"
|
|
3544
|
-
},
|
|
3545
|
-
unpkg: {
|
|
3546
|
-
url: "https://unpkg.com/lodash@4.17.21/lodash.min.js",
|
|
3547
|
-
global: "_",
|
|
3548
|
-
crossorigin: "anonymous"
|
|
3549
|
-
}
|
|
3550
|
-
},
|
|
3551
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
|
|
3552
|
-
metadata: {
|
|
3553
|
-
description: "A modern JavaScript utility library",
|
|
3554
|
-
homepage: "https://lodash.com",
|
|
3555
|
-
license: "MIT"
|
|
3556
|
-
}
|
|
3557
|
-
},
|
|
3558
|
-
"lodash-es": {
|
|
3559
|
-
packageName: "lodash-es",
|
|
3560
|
-
defaultVersion: "4.17.21",
|
|
3561
|
-
providers: {
|
|
3562
|
-
"esm.sh": {
|
|
3563
|
-
url: "https://esm.sh/lodash-es@4.17.21",
|
|
3564
|
-
esm: true,
|
|
3565
|
-
crossorigin: "anonymous"
|
|
3566
|
-
},
|
|
3567
|
-
jsdelivr: {
|
|
3568
|
-
url: "https://cdn.jsdelivr.net/npm/lodash-es@4.17.21/+esm",
|
|
3569
|
-
esm: true,
|
|
3570
|
-
crossorigin: "anonymous"
|
|
3571
|
-
}
|
|
3572
|
-
},
|
|
3573
|
-
preferredProviders: ["esm.sh", "jsdelivr"],
|
|
3574
|
-
metadata: {
|
|
3575
|
-
description: "Lodash exported as ES modules",
|
|
3576
|
-
homepage: "https://lodash.com",
|
|
3577
|
-
license: "MIT"
|
|
3578
|
-
}
|
|
3579
|
-
},
|
|
3580
|
-
dayjs: {
|
|
3581
|
-
packageName: "dayjs",
|
|
3582
|
-
defaultVersion: "1.11.13",
|
|
3583
|
-
providers: {
|
|
3584
|
-
cloudflare: {
|
|
3585
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.13/dayjs.min.js",
|
|
3586
|
-
integrity: "sha512-Ot7ArUEhJDU0cwoBNNnWe487kjL5wAOsIYig8llY/l0P2TUFwgsAHVmrZMHsT8NGo+HwkjTJsNErS6QqIkBxDw==",
|
|
3587
|
-
global: "dayjs",
|
|
3588
|
-
crossorigin: "anonymous"
|
|
3589
|
-
},
|
|
3590
|
-
jsdelivr: {
|
|
3591
|
-
url: "https://cdn.jsdelivr.net/npm/dayjs@1.11.13/dayjs.min.js",
|
|
3592
|
-
global: "dayjs",
|
|
3593
|
-
crossorigin: "anonymous"
|
|
3594
|
-
},
|
|
3595
|
-
unpkg: {
|
|
3596
|
-
url: "https://unpkg.com/dayjs@1.11.13/dayjs.min.js",
|
|
3597
|
-
global: "dayjs",
|
|
3598
|
-
crossorigin: "anonymous"
|
|
3599
|
-
}
|
|
3600
|
-
},
|
|
3601
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
|
|
3602
|
-
metadata: {
|
|
3603
|
-
description: "Fast 2kB alternative to Moment.js with the same modern API",
|
|
3604
|
-
homepage: "https://day.js.org",
|
|
3605
|
-
license: "MIT"
|
|
3606
|
-
}
|
|
3607
|
-
},
|
|
3608
|
-
"date-fns": {
|
|
3609
|
-
packageName: "date-fns",
|
|
3610
|
-
defaultVersion: "4.1.0",
|
|
3611
|
-
providers: {
|
|
3612
|
-
"esm.sh": {
|
|
3613
|
-
url: "https://esm.sh/date-fns@4.1.0",
|
|
3614
|
-
esm: true,
|
|
3615
|
-
crossorigin: "anonymous"
|
|
3616
|
-
},
|
|
3617
|
-
jsdelivr: {
|
|
3618
|
-
url: "https://cdn.jsdelivr.net/npm/date-fns@4.1.0/+esm",
|
|
3619
|
-
esm: true,
|
|
3620
|
-
crossorigin: "anonymous"
|
|
3621
|
-
}
|
|
3622
|
-
},
|
|
3623
|
-
preferredProviders: ["esm.sh", "jsdelivr"],
|
|
3624
|
-
metadata: {
|
|
3625
|
-
description: "Modern JavaScript date utility library",
|
|
3626
|
-
homepage: "https://date-fns.org",
|
|
3627
|
-
license: "MIT"
|
|
3628
|
-
}
|
|
3629
|
-
},
|
|
3630
|
-
// ============================================
|
|
3631
|
-
// Animation Libraries
|
|
3632
|
-
// ============================================
|
|
3633
|
-
"framer-motion": {
|
|
3634
|
-
packageName: "framer-motion",
|
|
3635
|
-
defaultVersion: "11.15.0",
|
|
3636
|
-
providers: {
|
|
3637
|
-
"esm.sh": {
|
|
3638
|
-
url: "https://esm.sh/framer-motion@11.15.0",
|
|
3639
|
-
esm: true,
|
|
3640
|
-
crossorigin: "anonymous",
|
|
3641
|
-
peerDependencies: ["react", "react-dom"]
|
|
3642
|
-
},
|
|
3643
|
-
jsdelivr: {
|
|
3644
|
-
url: "https://cdn.jsdelivr.net/npm/framer-motion@11.15.0/dist/framer-motion.js",
|
|
3645
|
-
global: "Motion",
|
|
3646
|
-
crossorigin: "anonymous",
|
|
3647
|
-
peerDependencies: ["react", "react-dom"]
|
|
3648
|
-
}
|
|
3649
|
-
},
|
|
3650
|
-
preferredProviders: ["esm.sh", "jsdelivr"],
|
|
3651
|
-
metadata: {
|
|
3652
|
-
description: "Production-ready motion library for React",
|
|
3653
|
-
homepage: "https://www.framer.com/motion/",
|
|
3654
|
-
license: "MIT"
|
|
3655
|
-
}
|
|
3656
|
-
},
|
|
3657
|
-
// ============================================
|
|
3658
|
-
// UI Component Libraries
|
|
3659
|
-
// ============================================
|
|
3660
|
-
"lucide-react": {
|
|
3661
|
-
packageName: "lucide-react",
|
|
3662
|
-
defaultVersion: "0.468.0",
|
|
3663
|
-
providers: {
|
|
3664
|
-
"esm.sh": {
|
|
3665
|
-
url: "https://esm.sh/lucide-react@0.468.0",
|
|
3666
|
-
esm: true,
|
|
3667
|
-
crossorigin: "anonymous",
|
|
3668
|
-
peerDependencies: ["react"]
|
|
3669
|
-
},
|
|
3670
|
-
jsdelivr: {
|
|
3671
|
-
url: "https://cdn.jsdelivr.net/npm/lucide-react@0.468.0/dist/esm/lucide-react.js",
|
|
3672
|
-
esm: true,
|
|
3673
|
-
crossorigin: "anonymous",
|
|
3674
|
-
peerDependencies: ["react"]
|
|
3675
|
-
}
|
|
3676
|
-
},
|
|
3677
|
-
preferredProviders: ["esm.sh", "jsdelivr"],
|
|
3678
|
-
metadata: {
|
|
3679
|
-
description: "Beautiful & consistent icon toolkit for React",
|
|
3680
|
-
homepage: "https://lucide.dev",
|
|
3681
|
-
license: "ISC"
|
|
3682
|
-
}
|
|
3683
|
-
},
|
|
3684
|
-
// ============================================
|
|
3685
|
-
// Markdown/Syntax Highlighting
|
|
3686
|
-
// ============================================
|
|
3687
|
-
marked: {
|
|
3688
|
-
packageName: "marked",
|
|
3689
|
-
defaultVersion: "15.0.4",
|
|
3690
|
-
providers: {
|
|
3691
|
-
cloudflare: {
|
|
3692
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/marked/15.0.4/marked.min.js",
|
|
3693
|
-
integrity: "sha512-Rn/d0sGeizGbk3VJEiYNDt/mMcfuzYoFkia3iBffv+HX8VUrHMo/0cKjZuxWGoZLPh/VxUcC9ais+RBFZW9EBg==",
|
|
3694
|
-
global: "marked",
|
|
3695
|
-
crossorigin: "anonymous"
|
|
3696
|
-
},
|
|
3697
|
-
jsdelivr: {
|
|
3698
|
-
url: "https://cdn.jsdelivr.net/npm/marked@15.0.4/marked.min.js",
|
|
3699
|
-
global: "marked",
|
|
3700
|
-
crossorigin: "anonymous"
|
|
3701
|
-
},
|
|
3702
|
-
unpkg: {
|
|
3703
|
-
url: "https://unpkg.com/marked@15.0.4/marked.min.js",
|
|
3704
|
-
global: "marked",
|
|
3705
|
-
crossorigin: "anonymous"
|
|
3706
|
-
}
|
|
3707
|
-
},
|
|
3708
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
|
|
3709
|
-
metadata: {
|
|
3710
|
-
description: "A markdown parser and compiler",
|
|
3711
|
-
homepage: "https://marked.js.org",
|
|
3712
|
-
license: "MIT"
|
|
3713
|
-
}
|
|
3714
|
-
},
|
|
3715
|
-
"highlight.js": {
|
|
3716
|
-
packageName: "highlight.js",
|
|
3717
|
-
defaultVersion: "11.10.0",
|
|
3718
|
-
providers: {
|
|
3719
|
-
cloudflare: {
|
|
3720
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/highlight.min.js",
|
|
3721
|
-
integrity: "sha512-6yoqbrcLAHDWAdQmiRlHG4+m0g/CT/V9AGyxabG8j7Jk8j3v3k6mIP1iN/PvSofcWet2tf8SRn/j3L/+pb7LRQ==",
|
|
3722
|
-
global: "hljs",
|
|
3723
|
-
crossorigin: "anonymous"
|
|
3724
|
-
},
|
|
3725
|
-
jsdelivr: {
|
|
3726
|
-
url: "https://cdn.jsdelivr.net/npm/highlight.js@11.10.0/lib/core.min.js",
|
|
3727
|
-
global: "hljs",
|
|
3728
|
-
crossorigin: "anonymous"
|
|
3729
|
-
},
|
|
3730
|
-
unpkg: {
|
|
3731
|
-
url: "https://unpkg.com/highlight.js@11.10.0/lib/core.min.js",
|
|
3732
|
-
global: "hljs",
|
|
3733
|
-
crossorigin: "anonymous"
|
|
3734
|
-
}
|
|
3735
|
-
},
|
|
3736
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
|
|
3737
|
-
metadata: {
|
|
3738
|
-
description: "Syntax highlighting for the web",
|
|
3739
|
-
homepage: "https://highlightjs.org",
|
|
3740
|
-
license: "BSD-3-Clause"
|
|
3741
|
-
}
|
|
3742
|
-
},
|
|
3743
|
-
// ============================================
|
|
3744
|
-
// Interactive Libraries
|
|
3745
|
-
// ============================================
|
|
3746
|
-
"htmx.org": {
|
|
3747
|
-
packageName: "htmx.org",
|
|
3748
|
-
defaultVersion: "2.0.4",
|
|
3749
|
-
providers: {
|
|
3750
|
-
cloudflare: {
|
|
3751
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/htmx/2.0.4/htmx.min.js",
|
|
3752
|
-
integrity: "sha512-2kIcAizYXhIn5IyXrMC72f2nh0JAtESHRpOieVw5dYPYeHwLCC2eKCqvdZDYRSEgasKrPpEPpRFjL8gqwBZWAA==",
|
|
3753
|
-
global: "htmx",
|
|
3754
|
-
crossorigin: "anonymous"
|
|
3755
|
-
},
|
|
3756
|
-
jsdelivr: {
|
|
3757
|
-
url: "https://cdn.jsdelivr.net/npm/htmx.org@2.0.4/dist/htmx.min.js",
|
|
3758
|
-
global: "htmx",
|
|
3759
|
-
crossorigin: "anonymous"
|
|
3760
|
-
},
|
|
3761
|
-
unpkg: {
|
|
3762
|
-
url: "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js",
|
|
3763
|
-
global: "htmx",
|
|
3764
|
-
crossorigin: "anonymous"
|
|
3765
|
-
}
|
|
3766
|
-
},
|
|
3767
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
|
|
3768
|
-
metadata: {
|
|
3769
|
-
description: "High power tools for HTML",
|
|
3770
|
-
homepage: "https://htmx.org",
|
|
3771
|
-
license: "BSD-2-Clause"
|
|
3772
|
-
}
|
|
3773
|
-
},
|
|
3774
|
-
alpinejs: {
|
|
3775
|
-
packageName: "alpinejs",
|
|
3776
|
-
defaultVersion: "3.14.3",
|
|
3777
|
-
providers: {
|
|
3778
|
-
cloudflare: {
|
|
3779
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.14.3/cdn.min.js",
|
|
3780
|
-
integrity: "sha512-lrQ8FHgsWKFSuQFq8NKPJicjlvJFEIrCqEj8zeX7ZOUlHWltN/Iow4jND+x84jqTdDf9n+hvQpJjGDvOl/eDRA==",
|
|
3781
|
-
global: "Alpine",
|
|
3782
|
-
crossorigin: "anonymous"
|
|
3783
|
-
},
|
|
3784
|
-
jsdelivr: {
|
|
3785
|
-
url: "https://cdn.jsdelivr.net/npm/alpinejs@3.14.3/dist/cdn.min.js",
|
|
3786
|
-
global: "Alpine",
|
|
3787
|
-
crossorigin: "anonymous"
|
|
3788
|
-
},
|
|
3789
|
-
unpkg: {
|
|
3790
|
-
url: "https://unpkg.com/alpinejs@3.14.3/dist/cdn.min.js",
|
|
3791
|
-
global: "Alpine",
|
|
3792
|
-
crossorigin: "anonymous"
|
|
3793
|
-
}
|
|
3794
|
-
},
|
|
3795
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
|
|
3796
|
-
metadata: {
|
|
3797
|
-
description: "A rugged, minimal framework for composing behavior directly in your markup",
|
|
3798
|
-
homepage: "https://alpinejs.dev",
|
|
3799
|
-
license: "MIT"
|
|
3800
|
-
}
|
|
3801
|
-
},
|
|
3802
|
-
// ============================================
|
|
3803
|
-
// Templating Libraries
|
|
3804
|
-
// ============================================
|
|
3805
|
-
handlebars: {
|
|
3806
|
-
packageName: "handlebars",
|
|
3807
|
-
defaultVersion: "4.7.8",
|
|
3808
|
-
providers: {
|
|
3809
|
-
cloudflare: {
|
|
3810
|
-
url: "https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js",
|
|
3811
|
-
integrity: "sha512-E1dSFxg+wsfJ4HKjutk/WaCzK7S2wv1POn1RRPGh8ZK+ag9l244Vqxji3r6wgz9YBf6+vhQEYJZpSjqWFPg9gg==",
|
|
3812
|
-
global: "Handlebars",
|
|
3813
|
-
crossorigin: "anonymous"
|
|
3814
|
-
},
|
|
3815
|
-
jsdelivr: {
|
|
3816
|
-
url: "https://cdn.jsdelivr.net/npm/handlebars@4.7.8/dist/handlebars.min.js",
|
|
3817
|
-
global: "Handlebars",
|
|
3818
|
-
crossorigin: "anonymous"
|
|
3819
|
-
},
|
|
3820
|
-
unpkg: {
|
|
3821
|
-
url: "https://unpkg.com/handlebars@4.7.8/dist/handlebars.min.js",
|
|
3822
|
-
global: "Handlebars",
|
|
3823
|
-
crossorigin: "anonymous"
|
|
3824
|
-
}
|
|
3825
|
-
},
|
|
3826
|
-
preferredProviders: ["cloudflare", "jsdelivr", "unpkg"],
|
|
3827
|
-
metadata: {
|
|
3828
|
-
description: "Minimal templating on steroids",
|
|
3829
|
-
homepage: "https://handlebarsjs.com",
|
|
3830
|
-
license: "MIT"
|
|
3831
|
-
}
|
|
3832
|
-
}
|
|
3833
|
-
};
|
|
3834
|
-
var CDN_PROVIDER_PRIORITY = {
|
|
3835
|
-
claude: ["cloudflare"],
|
|
3836
|
-
// ONLY cloudflare for Claude
|
|
3837
|
-
openai: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
|
|
3838
|
-
cursor: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
|
|
3839
|
-
gemini: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
|
|
3840
|
-
continue: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
|
|
3841
|
-
cody: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"],
|
|
3842
|
-
unknown: ["cloudflare", "jsdelivr", "unpkg", "esm.sh"]
|
|
3843
|
-
// Default to cloudflare first
|
|
3844
|
-
};
|
|
3845
|
-
function lookupPackage(packageName, registry = DEFAULT_CDN_REGISTRY) {
|
|
3846
|
-
return registry[packageName];
|
|
3847
|
-
}
|
|
3848
|
-
function mergeRegistries(customRegistry) {
|
|
3849
|
-
return {
|
|
3850
|
-
...DEFAULT_CDN_REGISTRY,
|
|
3851
|
-
...customRegistry
|
|
3852
|
-
};
|
|
3853
|
-
}
|
|
3854
|
-
function getPackagePeerDependencies(packageName, registry = DEFAULT_CDN_REGISTRY) {
|
|
3855
|
-
const entry = lookupPackage(packageName, registry);
|
|
3856
|
-
if (!entry) return [];
|
|
3857
|
-
for (const provider of Object.keys(entry.providers)) {
|
|
3858
|
-
const config = entry.providers[provider];
|
|
3859
|
-
if (config?.peerDependencies) {
|
|
3860
|
-
return config.peerDependencies;
|
|
3861
|
-
}
|
|
3862
|
-
}
|
|
3863
|
-
return [];
|
|
3864
|
-
}
|
|
3865
|
-
function resolveAllDependencies(packageNames, platform = "unknown", registry = DEFAULT_CDN_REGISTRY) {
|
|
3866
|
-
const resolved = /* @__PURE__ */ new Set();
|
|
3867
|
-
const queue = [...packageNames];
|
|
3868
|
-
while (queue.length > 0) {
|
|
3869
|
-
const packageName = queue.shift();
|
|
3870
|
-
if (!packageName) continue;
|
|
3871
|
-
if (resolved.has(packageName)) continue;
|
|
3872
|
-
resolved.add(packageName);
|
|
3873
|
-
const peers = getPackagePeerDependencies(packageName, registry);
|
|
3874
|
-
for (const peer of peers) {
|
|
3875
|
-
if (!resolved.has(peer)) {
|
|
3876
|
-
queue.push(peer);
|
|
3877
|
-
}
|
|
3878
|
-
}
|
|
3879
|
-
}
|
|
3880
|
-
const result = [];
|
|
3881
|
-
const remaining = new Set(resolved);
|
|
3882
|
-
while (remaining.size > 0) {
|
|
3883
|
-
let added = false;
|
|
3884
|
-
for (const pkg of remaining) {
|
|
3885
|
-
const peers = getPackagePeerDependencies(pkg, registry);
|
|
3886
|
-
const allPeersResolved = peers.every((peer) => !remaining.has(peer) || result.includes(peer));
|
|
3887
|
-
if (allPeersResolved) {
|
|
3888
|
-
if (!result.includes(pkg)) {
|
|
3889
|
-
result.push(pkg);
|
|
3890
|
-
}
|
|
3891
|
-
remaining.delete(pkg);
|
|
3892
|
-
added = true;
|
|
3893
|
-
}
|
|
3894
|
-
}
|
|
3895
|
-
if (!added && remaining.size > 0) {
|
|
3896
|
-
const next = remaining.values().next().value;
|
|
3897
|
-
if (next !== void 0) {
|
|
3898
|
-
if (!result.includes(next)) {
|
|
3899
|
-
result.push(next);
|
|
3900
|
-
}
|
|
3901
|
-
remaining.delete(next);
|
|
3902
|
-
}
|
|
3903
|
-
}
|
|
3904
|
-
}
|
|
3905
|
-
return result;
|
|
3906
|
-
}
|
|
3907
|
-
|
|
3908
|
-
// libs/ui/src/dependency/import-parser.ts
|
|
3909
|
-
var IMPORT_PATTERNS = {
|
|
3910
|
-
/**
|
|
3911
|
-
* Named imports: import { foo, bar } from 'module'
|
|
3912
|
-
* Also handles renamed imports: import { foo as f } from 'module'
|
|
3913
|
-
*/
|
|
3914
|
-
named: /import\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g,
|
|
3915
|
-
/**
|
|
3916
|
-
* Default imports: import foo from 'module'
|
|
3917
|
-
*/
|
|
3918
|
-
default: /import\s+(\w+)\s+from\s*['"]([^'"]+)['"]/g,
|
|
3919
|
-
/**
|
|
3920
|
-
* Namespace imports: import * as foo from 'module'
|
|
3921
|
-
*/
|
|
3922
|
-
namespace: /import\s*\*\s*as\s+(\w+)\s+from\s*['"]([^'"]+)['"]/g,
|
|
3923
|
-
/**
|
|
3924
|
-
* Side-effect imports: import 'module'
|
|
3925
|
-
*/
|
|
3926
|
-
sideEffect: /import\s*['"]([^'"]+)['"]/g,
|
|
3927
|
-
/**
|
|
3928
|
-
* Dynamic imports: import('module') or await import('module')
|
|
3929
|
-
*/
|
|
3930
|
-
dynamic: /(?:await\s+)?import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
|
|
3931
|
-
/**
|
|
3932
|
-
* Combined default and named: import foo, { bar } from 'module'
|
|
3933
|
-
*/
|
|
3934
|
-
defaultAndNamed: /import\s+(\w+)\s*,\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g,
|
|
3935
|
-
/**
|
|
3936
|
-
* Combined default and namespace: import foo, * as bar from 'module'
|
|
3937
|
-
*/
|
|
3938
|
-
defaultAndNamespace: /import\s+(\w+)\s*,\s*\*\s*as\s+(\w+)\s+from\s*['"]([^'"]+)['"]/g,
|
|
3939
|
-
/**
|
|
3940
|
-
* Re-exports: export { foo } from 'module'
|
|
3941
|
-
*/
|
|
3942
|
-
reExport: /export\s*\{[^}]+\}\s*from\s*['"]([^'"]+)['"]/g,
|
|
3943
|
-
/**
|
|
3944
|
-
* Re-export all: export * from 'module'
|
|
3945
|
-
*/
|
|
3946
|
-
reExportAll: /export\s*\*\s*from\s*['"]([^'"]+)['"]/g
|
|
3947
|
-
};
|
|
3948
|
-
function parseNamedImports(namedString) {
|
|
3949
|
-
return namedString.split(",").map((s) => s.trim()).filter((s) => s.length > 0).map((s) => {
|
|
3950
|
-
const asMatch = s.match(/^(\w+)\s+as\s+\w+$/);
|
|
3951
|
-
return asMatch ? asMatch[1] : s;
|
|
3952
|
-
});
|
|
3953
|
-
}
|
|
3954
|
-
function isRelativeImport(specifier) {
|
|
3955
|
-
return specifier.startsWith("./") || specifier.startsWith("../") || specifier.startsWith("/");
|
|
3956
|
-
}
|
|
3957
|
-
function isExternalImport(specifier) {
|
|
3958
|
-
return !isRelativeImport(specifier) && !specifier.startsWith("#");
|
|
3959
|
-
}
|
|
3960
|
-
function getPackageName(specifier) {
|
|
3961
|
-
if (specifier.startsWith("@")) {
|
|
3962
|
-
const parts = specifier.split("/");
|
|
3963
|
-
if (parts.length >= 2) {
|
|
3964
|
-
return `${parts[0]}/${parts[1]}`;
|
|
3965
|
-
}
|
|
3966
|
-
return specifier;
|
|
3967
|
-
}
|
|
3968
|
-
const firstSlash = specifier.indexOf("/");
|
|
3969
|
-
return firstSlash === -1 ? specifier : specifier.slice(0, firstSlash);
|
|
3970
|
-
}
|
|
3971
|
-
function getLineNumber(source, index) {
|
|
3972
|
-
let line = 1;
|
|
3973
|
-
for (let i = 0; i < index && i < source.length; i++) {
|
|
3974
|
-
if (source[i] === "\n") {
|
|
3975
|
-
line++;
|
|
3976
|
-
}
|
|
3977
|
-
}
|
|
3978
|
-
return line;
|
|
3979
|
-
}
|
|
3980
|
-
function getColumnNumber(source, index) {
|
|
3981
|
-
let column = 0;
|
|
3982
|
-
for (let i = index - 1; i >= 0 && source[i] !== "\n"; i--) {
|
|
3983
|
-
column++;
|
|
3984
|
-
}
|
|
3985
|
-
return column;
|
|
3986
|
-
}
|
|
3987
|
-
function parseImports(source) {
|
|
3988
|
-
const imports = [];
|
|
3989
|
-
const seenStatements = /* @__PURE__ */ new Set();
|
|
3990
|
-
const addImport = (imp) => {
|
|
3991
|
-
const key = `${imp.type}:${imp.specifier}:${imp.statement}`;
|
|
3992
|
-
if (!seenStatements.has(key)) {
|
|
3993
|
-
seenStatements.add(key);
|
|
3994
|
-
imports.push(imp);
|
|
3995
|
-
}
|
|
3996
|
-
};
|
|
3997
|
-
let match;
|
|
3998
|
-
const defaultAndNamedRegex = new RegExp(IMPORT_PATTERNS.defaultAndNamed.source, "g");
|
|
3999
|
-
while ((match = defaultAndNamedRegex.exec(source)) !== null) {
|
|
4000
|
-
const [statement, defaultName, namedString, specifier] = match;
|
|
4001
|
-
const namedImports = parseNamedImports(namedString);
|
|
4002
|
-
addImport({
|
|
4003
|
-
statement,
|
|
4004
|
-
specifier,
|
|
4005
|
-
type: "default",
|
|
4006
|
-
defaultImport: defaultName,
|
|
4007
|
-
namedImports,
|
|
4008
|
-
line: getLineNumber(source, match.index),
|
|
4009
|
-
column: getColumnNumber(source, match.index)
|
|
4010
|
-
});
|
|
4011
|
-
}
|
|
4012
|
-
const defaultAndNamespaceRegex = new RegExp(IMPORT_PATTERNS.defaultAndNamespace.source, "g");
|
|
4013
|
-
while ((match = defaultAndNamespaceRegex.exec(source)) !== null) {
|
|
4014
|
-
const [statement, defaultName, namespaceName, specifier] = match;
|
|
4015
|
-
addImport({
|
|
4016
|
-
statement,
|
|
4017
|
-
specifier,
|
|
4018
|
-
type: "default",
|
|
4019
|
-
defaultImport: defaultName,
|
|
4020
|
-
namespaceImport: namespaceName,
|
|
4021
|
-
line: getLineNumber(source, match.index),
|
|
4022
|
-
column: getColumnNumber(source, match.index)
|
|
4023
|
-
});
|
|
4024
|
-
}
|
|
4025
|
-
const namedRegex = new RegExp(IMPORT_PATTERNS.named.source, "g");
|
|
4026
|
-
while ((match = namedRegex.exec(source)) !== null) {
|
|
4027
|
-
const [statement, namedString, specifier] = match;
|
|
4028
|
-
const namedImports = parseNamedImports(namedString);
|
|
4029
|
-
addImport({
|
|
4030
|
-
statement,
|
|
4031
|
-
specifier,
|
|
4032
|
-
type: "named",
|
|
4033
|
-
namedImports,
|
|
4034
|
-
line: getLineNumber(source, match.index),
|
|
4035
|
-
column: getColumnNumber(source, match.index)
|
|
4036
|
-
});
|
|
4037
|
-
}
|
|
4038
|
-
const defaultRegex = new RegExp(IMPORT_PATTERNS.default.source, "g");
|
|
4039
|
-
while ((match = defaultRegex.exec(source)) !== null) {
|
|
4040
|
-
const [statement, defaultName, specifier] = match;
|
|
4041
|
-
const afterMatch = source.slice(match.index + match[0].length - specifier.length - 2);
|
|
4042
|
-
if (afterMatch.startsWith(",")) continue;
|
|
4043
|
-
addImport({
|
|
4044
|
-
statement,
|
|
4045
|
-
specifier,
|
|
4046
|
-
type: "default",
|
|
4047
|
-
defaultImport: defaultName,
|
|
4048
|
-
line: getLineNumber(source, match.index),
|
|
4049
|
-
column: getColumnNumber(source, match.index)
|
|
4050
|
-
});
|
|
4051
|
-
}
|
|
4052
|
-
const namespaceRegex = new RegExp(IMPORT_PATTERNS.namespace.source, "g");
|
|
4053
|
-
while ((match = namespaceRegex.exec(source)) !== null) {
|
|
4054
|
-
const [statement, namespaceName, specifier] = match;
|
|
4055
|
-
addImport({
|
|
4056
|
-
statement,
|
|
4057
|
-
specifier,
|
|
4058
|
-
type: "namespace",
|
|
4059
|
-
namespaceImport: namespaceName,
|
|
4060
|
-
line: getLineNumber(source, match.index),
|
|
4061
|
-
column: getColumnNumber(source, match.index)
|
|
4062
|
-
});
|
|
4063
|
-
}
|
|
4064
|
-
const sideEffectRegex = new RegExp(IMPORT_PATTERNS.sideEffect.source, "g");
|
|
4065
|
-
while ((match = sideEffectRegex.exec(source)) !== null) {
|
|
4066
|
-
const [statement, specifier] = match;
|
|
4067
|
-
const beforeMatch = source.slice(Math.max(0, match.index - 50), match.index);
|
|
4068
|
-
if (beforeMatch.includes("from")) continue;
|
|
4069
|
-
addImport({
|
|
4070
|
-
statement,
|
|
4071
|
-
specifier,
|
|
4072
|
-
type: "side-effect",
|
|
4073
|
-
line: getLineNumber(source, match.index),
|
|
4074
|
-
column: getColumnNumber(source, match.index)
|
|
4075
|
-
});
|
|
4076
|
-
}
|
|
4077
|
-
const dynamicRegex = new RegExp(IMPORT_PATTERNS.dynamic.source, "g");
|
|
4078
|
-
while ((match = dynamicRegex.exec(source)) !== null) {
|
|
4079
|
-
const [statement, specifier] = match;
|
|
4080
|
-
addImport({
|
|
4081
|
-
statement,
|
|
4082
|
-
specifier,
|
|
4083
|
-
type: "dynamic",
|
|
4084
|
-
line: getLineNumber(source, match.index),
|
|
4085
|
-
column: getColumnNumber(source, match.index)
|
|
4086
|
-
});
|
|
4087
|
-
}
|
|
4088
|
-
const reExportRegex = new RegExp(IMPORT_PATTERNS.reExport.source, "g");
|
|
4089
|
-
while ((match = reExportRegex.exec(source)) !== null) {
|
|
4090
|
-
const [statement, specifier] = match;
|
|
4091
|
-
addImport({
|
|
4092
|
-
statement,
|
|
4093
|
-
specifier,
|
|
4094
|
-
type: "named",
|
|
4095
|
-
line: getLineNumber(source, match.index),
|
|
4096
|
-
column: getColumnNumber(source, match.index)
|
|
4097
|
-
});
|
|
4098
|
-
}
|
|
4099
|
-
const reExportAllRegex = new RegExp(IMPORT_PATTERNS.reExportAll.source, "g");
|
|
4100
|
-
while ((match = reExportAllRegex.exec(source)) !== null) {
|
|
4101
|
-
const [statement, specifier] = match;
|
|
4102
|
-
addImport({
|
|
4103
|
-
statement,
|
|
4104
|
-
specifier,
|
|
4105
|
-
type: "namespace",
|
|
4106
|
-
line: getLineNumber(source, match.index),
|
|
4107
|
-
column: getColumnNumber(source, match.index)
|
|
4108
|
-
});
|
|
4109
|
-
}
|
|
4110
|
-
const externalImports = imports.filter((imp) => isExternalImport(imp.specifier));
|
|
4111
|
-
const relativeImports = imports.filter((imp) => isRelativeImport(imp.specifier));
|
|
4112
|
-
const externalPackages = [...new Set(externalImports.map((imp) => getPackageName(imp.specifier)))];
|
|
4113
|
-
return {
|
|
4114
|
-
imports,
|
|
4115
|
-
externalImports,
|
|
4116
|
-
relativeImports,
|
|
4117
|
-
externalPackages
|
|
4118
|
-
};
|
|
4119
|
-
}
|
|
4120
|
-
|
|
4121
|
-
// libs/ui/src/dependency/import-map.ts
|
|
4122
|
-
function createImportMap(dependencies) {
|
|
4123
|
-
const imports = {};
|
|
4124
|
-
const integrity = {};
|
|
4125
|
-
for (const dep of dependencies) {
|
|
4126
|
-
imports[dep.packageName] = dep.cdnUrl;
|
|
4127
|
-
if (dep.integrity) {
|
|
4128
|
-
integrity[dep.cdnUrl] = dep.integrity;
|
|
4129
|
-
}
|
|
4130
|
-
}
|
|
4131
|
-
return {
|
|
4132
|
-
imports,
|
|
4133
|
-
integrity: Object.keys(integrity).length > 0 ? integrity : void 0
|
|
4134
|
-
};
|
|
4135
|
-
}
|
|
4136
|
-
function generateImportMapScriptTag(map) {
|
|
4137
|
-
const json = JSON.stringify(map, null, 2);
|
|
4138
|
-
return `<script type="importmap">
|
|
4139
|
-
${json}
|
|
4140
|
-
</script>`;
|
|
4141
|
-
}
|
|
4142
|
-
function generateImportMapScriptTagMinified(map) {
|
|
4143
|
-
const json = JSON.stringify(map);
|
|
4144
|
-
return `<script type="importmap">${json}</script>`;
|
|
4145
|
-
}
|
|
4146
|
-
function generateUMDShim(dependencies, options = {}) {
|
|
4147
|
-
const { safe = true, minify = false } = options;
|
|
4148
|
-
const depsWithGlobals = dependencies.filter((d) => d.global && !d.esm);
|
|
4149
|
-
if (depsWithGlobals.length === 0) {
|
|
4150
|
-
return "";
|
|
4151
|
-
}
|
|
4152
|
-
const entries = depsWithGlobals.map((dep) => {
|
|
4153
|
-
const global = dep.global;
|
|
4154
|
-
return `'${dep.packageName}': { default: window.${global}, ...window.${global} }`;
|
|
4155
|
-
});
|
|
4156
|
-
const shimObject = `{
|
|
4157
|
-
${entries.join(",\n ")}
|
|
4158
|
-
}`;
|
|
4159
|
-
const code = safe ? `(function() {
|
|
4160
|
-
try {
|
|
4161
|
-
window.__esm_shim = ${shimObject};
|
|
4162
|
-
} catch (e) {
|
|
4163
|
-
console.warn('UMD shim failed:', e);
|
|
4164
|
-
}
|
|
4165
|
-
})();` : `window.__esm_shim = ${shimObject};`;
|
|
4166
|
-
return minify ? code.replace(/\s+/g, " ").replace(/\s*([{},:])\s*/g, "$1") : code;
|
|
4167
|
-
}
|
|
4168
|
-
function generateCDNScriptTags(dependencies) {
|
|
4169
|
-
return dependencies.filter((dep) => !dep.esm).map((dep) => {
|
|
4170
|
-
const attrs = [`src="${escapeHtmlAttr(dep.cdnUrl)}"`];
|
|
4171
|
-
if (dep.integrity) {
|
|
4172
|
-
attrs.push(`integrity="${escapeHtmlAttr(dep.integrity)}"`);
|
|
4173
|
-
}
|
|
4174
|
-
attrs.push('crossorigin="anonymous"');
|
|
4175
|
-
return `<script ${attrs.join(" ")}></script>`;
|
|
4176
|
-
});
|
|
4177
|
-
}
|
|
4178
|
-
function generateESMScriptTags(dependencies) {
|
|
4179
|
-
return dependencies.filter((dep) => dep.esm).map((dep) => {
|
|
4180
|
-
const attrs = ['type="module"', `src="${escapeHtmlAttr(dep.cdnUrl)}"`];
|
|
4181
|
-
if (dep.integrity) {
|
|
4182
|
-
attrs.push(`integrity="${escapeHtmlAttr(dep.integrity)}"`);
|
|
4183
|
-
}
|
|
4184
|
-
attrs.push('crossorigin="anonymous"');
|
|
4185
|
-
return `<script ${attrs.join(" ")}></script>`;
|
|
4186
|
-
});
|
|
4187
|
-
}
|
|
4188
|
-
function generateDependencyHTML(dependencies, options = {}) {
|
|
4189
|
-
const { minify = false, includeShim = true } = options;
|
|
4190
|
-
const parts = [];
|
|
4191
|
-
const importMap = createImportMap(dependencies);
|
|
4192
|
-
const importMapTag = minify ? generateImportMapScriptTagMinified(importMap) : generateImportMapScriptTag(importMap);
|
|
4193
|
-
parts.push(importMapTag);
|
|
4194
|
-
const umdTags = generateCDNScriptTags(dependencies);
|
|
4195
|
-
parts.push(...umdTags);
|
|
4196
|
-
if (includeShim) {
|
|
4197
|
-
const shim = generateUMDShim(dependencies, { minify });
|
|
4198
|
-
if (shim) {
|
|
4199
|
-
parts.push(`<script>${shim}</script>`);
|
|
4200
|
-
}
|
|
4201
|
-
}
|
|
4202
|
-
const esmTags = generateESMScriptTags(dependencies);
|
|
4203
|
-
parts.push(...esmTags);
|
|
4204
|
-
return parts.join(minify ? "" : "\n");
|
|
4205
|
-
}
|
|
4206
|
-
|
|
4207
|
-
// libs/ui/src/dependency/resolver.ts
|
|
4208
|
-
var DependencyResolutionError = class extends Error {
|
|
4209
|
-
constructor(packageName, reason) {
|
|
4210
|
-
super(`Failed to resolve dependency "${packageName}": ${reason}`);
|
|
4211
|
-
this.packageName = packageName;
|
|
4212
|
-
this.reason = reason;
|
|
4213
|
-
this.name = "DependencyResolutionError";
|
|
4214
|
-
}
|
|
4215
|
-
};
|
|
4216
|
-
var NoProviderError = class extends DependencyResolutionError {
|
|
4217
|
-
constructor(packageName, platform) {
|
|
4218
|
-
super(packageName, `No CDN provider available for platform "${platform}"`);
|
|
4219
|
-
this.platform = platform;
|
|
4220
|
-
this.name = "NoProviderError";
|
|
4221
|
-
}
|
|
4222
|
-
};
|
|
4223
|
-
var DependencyResolver = class {
|
|
4224
|
-
options;
|
|
4225
|
-
registry;
|
|
4226
|
-
constructor(options = {}) {
|
|
4227
|
-
this.options = {
|
|
4228
|
-
platform: options.platform ?? "unknown",
|
|
4229
|
-
preferredProviders: options.preferredProviders ?? CDN_PROVIDER_PRIORITY[options.platform ?? "unknown"],
|
|
4230
|
-
customRegistry: options.customRegistry ?? {},
|
|
4231
|
-
strictMode: options.strictMode ?? true,
|
|
4232
|
-
requireIntegrity: options.requireIntegrity ?? false
|
|
4233
|
-
};
|
|
4234
|
-
this.registry = mergeRegistries(this.options.customRegistry);
|
|
4235
|
-
}
|
|
4236
|
-
/**
|
|
4237
|
-
* Resolve a single package to its CDN dependency.
|
|
4238
|
-
*
|
|
4239
|
-
* @param packageName - NPM package name
|
|
4240
|
-
* @param override - Optional explicit CDN dependency override
|
|
4241
|
-
* @returns Resolved dependency, or null in non-strict mode if package is not found (should be bundled)
|
|
4242
|
-
* @throws DependencyResolutionError if package cannot be resolved in strict mode
|
|
4243
|
-
*/
|
|
4244
|
-
resolve(packageName, override) {
|
|
4245
|
-
if (override) {
|
|
4246
|
-
return this.createResolvedDependency(packageName, override, "custom");
|
|
4247
|
-
}
|
|
4248
|
-
const entry = lookupPackage(packageName, this.registry);
|
|
4249
|
-
if (!entry) {
|
|
4250
|
-
if (this.options.strictMode) {
|
|
4251
|
-
throw new DependencyResolutionError(
|
|
4252
|
-
packageName,
|
|
4253
|
-
'Package not found in CDN registry. Add it to "dependencies" for explicit CDN configuration.'
|
|
4254
|
-
);
|
|
4255
|
-
}
|
|
4256
|
-
return null;
|
|
4257
|
-
}
|
|
4258
|
-
const providerPriority = this.options.preferredProviders;
|
|
4259
|
-
for (const provider of providerPriority) {
|
|
4260
|
-
const config = entry.providers[provider];
|
|
4261
|
-
if (config?.url) {
|
|
4262
|
-
if (this.options.requireIntegrity && !config.integrity) {
|
|
4263
|
-
continue;
|
|
4264
|
-
}
|
|
4265
|
-
return this.createResolvedDependency(packageName, config, provider, entry.defaultVersion);
|
|
4266
|
-
}
|
|
4267
|
-
}
|
|
4268
|
-
throw new NoProviderError(packageName, this.options.platform);
|
|
4269
|
-
}
|
|
4270
|
-
/**
|
|
4271
|
-
* Resolve multiple packages.
|
|
4272
|
-
*
|
|
4273
|
-
* @param packageNames - Array of package names
|
|
4274
|
-
* @param overrides - Optional explicit overrides for specific packages
|
|
4275
|
-
* @returns Array of resolved dependencies (in dependency order)
|
|
4276
|
-
*/
|
|
4277
|
-
resolveMany(packageNames, overrides) {
|
|
4278
|
-
const allPackages = resolveAllDependencies(packageNames, this.options.platform, this.registry);
|
|
4279
|
-
const resolved = [];
|
|
4280
|
-
for (const pkgName of allPackages) {
|
|
4281
|
-
try {
|
|
4282
|
-
const override = overrides?.[pkgName];
|
|
4283
|
-
const dep = this.resolve(pkgName, override);
|
|
4284
|
-
if (dep) {
|
|
4285
|
-
resolved.push(dep);
|
|
4286
|
-
}
|
|
4287
|
-
} catch (error) {
|
|
4288
|
-
if (this.options.strictMode) {
|
|
4289
|
-
throw error;
|
|
4290
|
-
}
|
|
4291
|
-
}
|
|
4292
|
-
}
|
|
4293
|
-
return resolved;
|
|
4294
|
-
}
|
|
4295
|
-
/**
|
|
4296
|
-
* Resolve dependencies from source code.
|
|
4297
|
-
*
|
|
4298
|
-
* Parses the source to extract imports, then resolves external packages
|
|
4299
|
-
* that are in the externals list.
|
|
4300
|
-
*
|
|
4301
|
-
* @param source - Source code to parse
|
|
4302
|
-
* @param externals - Package names to resolve from CDN (others are bundled)
|
|
4303
|
-
* @param overrides - Optional explicit CDN overrides
|
|
4304
|
-
* @returns Resolved dependencies
|
|
4305
|
-
*/
|
|
4306
|
-
resolveFromSource(source, externals, overrides) {
|
|
4307
|
-
const parseResult = parseImports(source);
|
|
4308
|
-
const packagesToResolve = parseResult.externalPackages.filter((pkg) => externals.includes(pkg));
|
|
4309
|
-
return this.resolveMany(packagesToResolve, overrides);
|
|
4310
|
-
}
|
|
4311
|
-
/**
|
|
4312
|
-
* Generate an import map for resolved dependencies.
|
|
4313
|
-
*
|
|
4314
|
-
* @param dependencies - Resolved dependencies
|
|
4315
|
-
* @returns Browser import map
|
|
4316
|
-
*/
|
|
4317
|
-
generateImportMap(dependencies) {
|
|
4318
|
-
return createImportMap(dependencies);
|
|
4319
|
-
}
|
|
4320
|
-
/**
|
|
4321
|
-
* Check if a package can be resolved for the current platform.
|
|
4322
|
-
*
|
|
4323
|
-
* @param packageName - Package name to check
|
|
4324
|
-
* @returns true if the package can be resolved
|
|
4325
|
-
*/
|
|
4326
|
-
canResolve(packageName) {
|
|
4327
|
-
try {
|
|
4328
|
-
const result = this.resolve(packageName);
|
|
4329
|
-
return result !== null;
|
|
4330
|
-
} catch {
|
|
4331
|
-
return false;
|
|
4332
|
-
}
|
|
4333
|
-
}
|
|
4334
|
-
/**
|
|
4335
|
-
* Get the resolved CDN URL for a package.
|
|
4336
|
-
*
|
|
4337
|
-
* @param packageName - Package name
|
|
4338
|
-
* @param override - Optional explicit override
|
|
4339
|
-
* @returns CDN URL or undefined if cannot resolve
|
|
4340
|
-
*/
|
|
4341
|
-
getUrl(packageName, override) {
|
|
4342
|
-
try {
|
|
4343
|
-
const resolved = this.resolve(packageName, override);
|
|
4344
|
-
return resolved?.cdnUrl;
|
|
4345
|
-
} catch {
|
|
4346
|
-
return void 0;
|
|
4347
|
-
}
|
|
4348
|
-
}
|
|
4349
|
-
/**
|
|
4350
|
-
* Get peer dependencies for a package.
|
|
4351
|
-
*/
|
|
4352
|
-
getPeerDependencies(packageName) {
|
|
4353
|
-
return getPackagePeerDependencies(packageName, this.registry);
|
|
4354
|
-
}
|
|
4355
|
-
/**
|
|
4356
|
-
* Create the current registry (default + custom).
|
|
4357
|
-
*/
|
|
4358
|
-
getRegistry() {
|
|
4359
|
-
return this.registry;
|
|
4360
|
-
}
|
|
4361
|
-
/**
|
|
4362
|
-
* Get the current platform.
|
|
4363
|
-
*/
|
|
4364
|
-
getPlatform() {
|
|
4365
|
-
return this.options.platform;
|
|
4366
|
-
}
|
|
4367
|
-
/**
|
|
4368
|
-
* Create a resolved dependency object.
|
|
4369
|
-
*/
|
|
4370
|
-
createResolvedDependency(packageName, config, provider, version) {
|
|
4371
|
-
return {
|
|
4372
|
-
packageName,
|
|
4373
|
-
version: version ?? this.extractVersionFromUrl(config.url) ?? "latest",
|
|
4374
|
-
cdnUrl: config.url,
|
|
4375
|
-
integrity: config.integrity,
|
|
4376
|
-
global: config.global,
|
|
4377
|
-
esm: config.esm ?? false,
|
|
4378
|
-
provider
|
|
4379
|
-
};
|
|
4380
|
-
}
|
|
4381
|
-
/**
|
|
4382
|
-
* Try to extract version from CDN URL.
|
|
4383
|
-
*/
|
|
4384
|
-
extractVersionFromUrl(url) {
|
|
4385
|
-
const versionMatch = url.match(/@(\d+\.\d+\.\d+(?:-[\w.]+)?)/);
|
|
4386
|
-
if (versionMatch) {
|
|
4387
|
-
return versionMatch[1];
|
|
4388
|
-
}
|
|
4389
|
-
const versionMatch2 = url.match(/\/v?(\d+\.\d+\.\d+)\//);
|
|
4390
|
-
if (versionMatch2) {
|
|
4391
|
-
return versionMatch2[1];
|
|
4392
|
-
}
|
|
4393
|
-
return void 0;
|
|
4394
|
-
}
|
|
4395
|
-
};
|
|
4396
|
-
|
|
4397
|
-
// libs/ui/src/bundler/file-cache/component-builder.ts
|
|
3350
|
+
import { DependencyResolver, createImportMap, generateDependencyHTML } from "@frontmcp/uipack/dependency";
|
|
4398
3351
|
var ComponentBuilder = class {
|
|
4399
3352
|
storage;
|
|
4400
3353
|
esbuild = null;
|