@ecopages/core 0.2.0-alpha.9 → 0.2.0-beta.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 +79 -28
- package/package.json +104 -116
- package/src/adapters/README.md +2 -2
- package/src/adapters/abstract/application-adapter.d.ts +28 -2
- package/src/adapters/abstract/application-adapter.js +14 -2
- package/src/adapters/abstract/router-adapter.d.ts +1 -1
- package/src/adapters/abstract/server-adapter.d.ts +2 -2
- package/src/adapters/bun/client-bridge.d.ts +1 -1
- package/src/adapters/bun/create-app.d.ts +12 -12
- package/src/adapters/bun/create-app.js +64 -41
- package/src/adapters/bun/hmr-manager.d.ts +19 -115
- package/src/adapters/bun/hmr-manager.js +25 -301
- package/src/adapters/bun/index.d.ts +1 -1
- package/src/adapters/bun/index.js +2 -2
- package/src/adapters/bun/runtime-host.d.ts +52 -0
- package/src/adapters/bun/runtime-host.js +56 -0
- package/src/adapters/bun/server-adapter.d.ts +100 -32
- package/src/adapters/bun/server-adapter.js +142 -65
- package/src/adapters/bun/static-preview-host.d.ts +28 -0
- package/src/adapters/bun/static-preview-host.js +45 -0
- package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
- package/src/{create-app.js → adapters/create-app.js} +4 -4
- package/src/adapters/index.d.ts +1 -5
- package/src/adapters/index.js +1 -7
- package/src/adapters/node/create-app.d.ts +15 -12
- package/src/adapters/node/create-app.js +34 -85
- package/src/adapters/node/http-request-bridge.d.ts +57 -0
- package/src/adapters/node/http-request-bridge.js +118 -0
- package/src/adapters/node/node-client-bridge.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.d.ts +22 -103
- package/src/adapters/node/node-hmr-manager.js +26 -289
- package/src/adapters/node/runtime-host.d.ts +57 -0
- package/src/adapters/node/runtime-host.js +92 -0
- package/src/adapters/node/server-adapter-dependencies.d.ts +19 -0
- package/src/adapters/node/server-adapter-dependencies.js +18 -0
- package/src/adapters/node/server-adapter.d.ts +19 -42
- package/src/adapters/node/server-adapter.js +94 -139
- package/src/adapters/node/static-content-server.d.ts +1 -1
- package/src/adapters/node/static-content-server.js +1 -1
- package/src/adapters/node/static-preview-host.d.ts +55 -0
- package/src/adapters/node/static-preview-host.js +68 -0
- package/src/adapters/shared/application-adapter.d.ts +1 -1
- package/src/adapters/shared/define-api-handler.d.ts +1 -1
- package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
- package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +7 -4
- package/src/adapters/shared/explicit-static-route-matcher.js +14 -16
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
- package/src/adapters/shared/file-route-middleware-pipeline.js +2 -11
- package/src/adapters/shared/fs-server-response-factory.d.ts +14 -10
- package/src/adapters/shared/fs-server-response-factory.js +11 -27
- package/src/adapters/shared/fs-server-response-matcher.d.ts +18 -18
- package/src/adapters/shared/fs-server-response-matcher.js +72 -46
- package/src/adapters/shared/hmr-entrypoint-registrar.js +1 -1
- package/src/adapters/shared/hmr-html-response.d.ts +1 -1
- package/src/adapters/shared/hmr-html-response.js +4 -3
- package/src/adapters/shared/render-context.d.ts +5 -3
- package/src/adapters/shared/render-context.js +24 -1
- package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
- package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
- package/src/adapters/shared/runtime-host.d.ts +12 -0
- package/src/adapters/shared/server-adapter.d.ts +22 -11
- package/src/adapters/shared/server-adapter.js +183 -133
- package/src/adapters/shared/server-route-handler.d.ts +5 -5
- package/src/adapters/shared/server-route-handler.js +4 -4
- package/src/adapters/shared/server-static-builder.d.ts +32 -8
- package/src/adapters/shared/server-static-builder.js +69 -6
- package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
- package/src/adapters/shared/shared-hmr-manager.js +241 -0
- package/src/adapters/shared/static-preview-host.d.ts +10 -0
- package/src/build/README.md +57 -67
- package/src/build/browser-runtime-manifest.d.ts +31 -0
- package/src/build/browser-runtime-manifest.js +61 -0
- package/src/build/browser-runtime-plugin-helpers.d.ts +26 -0
- package/src/build/browser-runtime-plugin-helpers.js +14 -0
- package/src/build/browser-runtime-plugin.d.ts +78 -0
- package/src/build/browser-runtime-plugin.js +173 -0
- package/src/build/build-adapter.d.ts +384 -63
- package/src/build/build-adapter.js +129 -54
- package/src/build/build-manifest.d.ts +6 -0
- package/src/build/build-manifest.js +21 -2
- package/src/build/build-types.d.ts +2 -2
- package/src/build/rolldown-adapter-helpers.d.ts +58 -0
- package/src/build/rolldown-adapter-helpers.js +265 -0
- package/src/build/rolldown-build-adapter.d.ts +28 -0
- package/src/build/rolldown-build-adapter.js +65 -0
- package/src/build/rolldown-dev-build-adapter.d.ts +82 -0
- package/src/build/rolldown-dev-build-adapter.js +166 -0
- package/src/build/rolldown-plugin-bridge.d.ts +59 -0
- package/src/build/rolldown-plugin-bridge.js +199 -0
- package/src/build/runtime-build-executor.d.ts +15 -7
- package/src/build/runtime-build-executor.js +8 -9
- package/src/build/runtime-build-output-normalizer.d.ts +3 -0
- package/src/build/runtime-build-output-normalizer.js +111 -0
- package/src/build/serialized-build-executor.d.ts +64 -0
- package/src/build/serialized-build-executor.js +63 -0
- package/src/build/server-side-css-shim-plugin.d.ts +41 -0
- package/src/build/server-side-css-shim-plugin.js +35 -0
- package/src/cache/index.d.ts +6 -0
- package/src/cache/index.js +6 -0
- package/src/cache/module-parse-cache.d.ts +65 -0
- package/src/cache/module-parse-cache.js +75 -0
- package/src/config/README.md +5 -2
- package/src/config/config-builder.d.ts +41 -13
- package/src/config/config-builder.js +62 -24
- package/src/declarations.d.ts +1 -1
- package/src/dev/host-runtime.d.ts +10 -0
- package/src/dev/host-runtime.js +24 -0
- package/src/dev/sc-server.d.ts +1 -1
- package/src/dev/sc-server.js +1 -1
- package/src/eco/eco.browser.d.ts +2 -0
- package/src/eco/eco.browser.js +88 -0
- package/src/eco/eco.js +50 -45
- package/src/eco/eco.types.d.ts +60 -8
- package/src/eco/eco.utils.d.ts +1 -40
- package/src/eco/eco.utils.js +5 -35
- package/src/eco/global-injector-map.d.ts +3 -3
- package/src/eco/global-injector-map.js +2 -2
- package/src/eco/lazy-injector-map.d.ts +2 -2
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -1
- package/src/hmr/client/hmr-runtime.js +9 -1
- package/src/hmr/hmr-strategy.d.ts +16 -13
- package/src/hmr/hmr-strategy.js +22 -7
- package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
- package/src/hmr/strategies/default-hmr-strategy.js +1 -1
- package/src/hmr/strategies/js-hmr-strategy.d.ts +4 -9
- package/src/hmr/strategies/js-hmr-strategy.js +5 -10
- package/src/index.browser.d.ts +2 -2
- package/src/index.browser.js +1 -1
- package/src/index.d.ts +3 -2
- package/src/index.js +15 -4
- package/src/integrations/ghtml/ghtml-renderer.d.ts +2 -1
- package/src/integrations/ghtml/ghtml-renderer.js +24 -29
- package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
- package/src/integrations/ghtml/ghtml.constants.js +4 -0
- package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
- package/src/integrations/ghtml/ghtml.plugin.js +3 -4
- package/src/plugins/README.md +1 -0
- package/src/plugins/alias-resolver-cache.d.ts +68 -0
- package/src/plugins/alias-resolver-cache.js +106 -0
- package/src/plugins/alias-resolver-plugin.d.ts +5 -1
- package/src/plugins/alias-resolver-plugin.js +19 -7
- package/src/plugins/eco-component-meta-plugin.d.ts +12 -1
- package/src/plugins/eco-component-meta-plugin.js +43 -25
- package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
- package/src/plugins/foreign-jsx-override-plugin.js +41 -0
- package/src/plugins/integration-plugin.d.ts +136 -42
- package/src/plugins/integration-plugin.js +99 -31
- package/src/plugins/processor.d.ts +4 -2
- package/src/plugins/processor.js +8 -3
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/GRAPH.md +80 -318
- package/src/route-renderer/README.md +74 -78
- package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
- package/src/route-renderer/orchestration/component-render-context.js +147 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +290 -128
- package/src/route-renderer/orchestration/integration-renderer.js +660 -258
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
- package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
- package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
- package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
- package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
- package/src/route-renderer/orchestration/render-output.utils.js +171 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +156 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.js +577 -0
- package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
- package/src/route-renderer/orchestration/template-serialization.js +45 -0
- package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
- package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
- package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
- package/src/route-renderer/page-loading/dependency-resolver.d.ts +2 -2
- package/src/route-renderer/page-loading/dependency-resolver.js +27 -354
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
- package/src/route-renderer/page-loading/page-module-loader.d.ts +7 -4
- package/src/route-renderer/page-loading/page-module-loader.js +8 -5
- package/src/route-renderer/route-renderer.d.ts +31 -23
- package/src/route-renderer/route-renderer.js +17 -24
- package/src/router/README.md +76 -8
- package/src/router/client/navigation-coordinator.d.ts +20 -0
- package/src/router/client/navigation-coordinator.js +2 -2
- package/src/router/server/route-registry.d.ts +78 -0
- package/src/router/server/route-registry.js +262 -0
- package/src/services/README.md +1 -2
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +3 -20
- package/src/services/assets/asset-processing-service/asset-processing.service.js +52 -98
- package/src/services/assets/asset-processing-service/asset.factory.d.ts +1 -1
- package/src/services/assets/asset-processing-service/asset.factory.js +2 -2
- package/src/services/assets/asset-processing-service/assets.types.d.ts +14 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +2 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +1 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
- package/src/services/assets/asset-processing-service/index.d.ts +6 -5
- package/src/services/assets/asset-processing-service/index.js +6 -5
- package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
- package/src/services/assets/asset-processing-service/page-package.js +80 -0
- package/src/services/assets/asset-processing-service/processor.interface.d.ts +2 -2
- package/src/services/assets/asset-processing-service/processor.registry.d.ts +2 -2
- package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +1 -1
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +3 -2
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +10 -5
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +69 -5
- package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -5
- package/src/services/assets/asset-processing-service/processors/index.js +5 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +3 -2
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +66 -3
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +4 -3
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +27 -6
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +38 -3
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +57 -6
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +39 -5
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +5 -2
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
- package/src/services/assets/browser-bundle.service.d.ts +44 -3
- package/src/services/assets/browser-bundle.service.js +15 -7
- package/src/services/html/html-rewriter-provider.service.d.ts +3 -0
- package/src/services/html/html-rewriter-provider.service.js +4 -1
- package/src/services/html/html-transformer.service.d.ts +22 -3
- package/src/services/html/html-transformer.service.js +101 -35
- package/src/services/invalidation/development-invalidation.service.d.ts +1 -1
- package/src/services/invalidation/development-invalidation.service.js +1 -0
- package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
- package/src/services/module-loading/app-module-loader.service.js +0 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +9 -1
- package/src/services/module-loading/app-server-module-transpiler.service.js +102 -6
- package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
- package/src/services/module-loading/host-module-loader-registry.js +15 -0
- package/src/services/module-loading/module-loading-types.d.ts +2 -0
- package/src/services/module-loading/module-loading-types.js +0 -0
- package/src/services/module-loading/page-module-import.service.d.ts +32 -8
- package/src/services/module-loading/page-module-import.service.js +83 -22
- package/src/services/module-loading/server-module-transpiler.service.d.ts +8 -14
- package/src/services/module-loading/server-module-transpiler.service.js +5 -2
- package/src/services/module-loading/source-module-support.d.ts +5 -0
- package/src/services/module-loading/source-module-support.js +8 -0
- package/src/services/runtime-state/dev-graph.service.d.ts +6 -6
- package/src/services/runtime-state/dev-graph.service.js +10 -10
- package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +1 -1
- package/src/services/runtime-state/server-invalidation-state.service.d.ts +1 -1
- package/src/static-site-generator/static-site-generator.d.ts +23 -28
- package/src/static-site-generator/static-site-generator.js +119 -156
- package/src/{internal-types.d.ts → types/internal-types.d.ts} +34 -23
- package/src/types/internal-types.js +0 -0
- package/src/{public-types.d.ts → types/public-types.d.ts} +195 -37
- package/src/types/public-types.js +0 -0
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +6 -0
- package/src/utils/locals-utils.d.ts +1 -1
- package/src/utils/parse-cli-args.d.ts +4 -1
- package/src/utils/parse-cli-args.js +16 -1
- package/src/utils/resolve-entry-file.d.ts +72 -0
- package/src/utils/resolve-entry-file.js +41 -0
- package/src/utils/resolve-work-dir.js +1 -1
- package/src/watchers/project-watcher.d.ts +4 -4
- package/src/watchers/project-watcher.js +35 -41
- package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
- package/src/watchers/project-watcher.test-helpers.js +5 -5
- package/CHANGELOG.md +0 -31
- package/src/adapters/abstract/application-adapter.ts +0 -337
- package/src/adapters/abstract/router-adapter.ts +0 -30
- package/src/adapters/abstract/server-adapter.ts +0 -79
- package/src/adapters/bun/client-bridge.ts +0 -62
- package/src/adapters/bun/create-app.ts +0 -189
- package/src/adapters/bun/hmr-manager.ts +0 -409
- package/src/adapters/bun/index.ts +0 -2
- package/src/adapters/bun/server-adapter.ts +0 -499
- package/src/adapters/bun/server-lifecycle.d.ts +0 -63
- package/src/adapters/bun/server-lifecycle.js +0 -92
- package/src/adapters/bun/server-lifecycle.ts +0 -124
- package/src/adapters/index.ts +0 -6
- package/src/adapters/node/bootstrap-dependency-resolver.d.ts +0 -44
- package/src/adapters/node/bootstrap-dependency-resolver.js +0 -172
- package/src/adapters/node/bootstrap-dependency-resolver.ts +0 -301
- package/src/adapters/node/create-app.ts +0 -179
- package/src/adapters/node/index.d.ts +0 -6
- package/src/adapters/node/index.js +0 -11
- package/src/adapters/node/index.ts +0 -16
- package/src/adapters/node/node-client-bridge.ts +0 -79
- package/src/adapters/node/node-hmr-manager.ts +0 -381
- package/src/adapters/node/runtime-adapter.d.ts +0 -46
- package/src/adapters/node/runtime-adapter.js +0 -306
- package/src/adapters/node/runtime-adapter.ts +0 -439
- package/src/adapters/node/server-adapter.ts +0 -488
- package/src/adapters/node/static-content-server.ts +0 -239
- package/src/adapters/node/write-runtime-manifest.d.ts +0 -26
- package/src/adapters/node/write-runtime-manifest.js +0 -12
- package/src/adapters/node/write-runtime-manifest.ts +0 -38
- package/src/adapters/shared/api-response.ts +0 -104
- package/src/adapters/shared/application-adapter.ts +0 -199
- package/src/adapters/shared/define-api-handler.ts +0 -66
- package/src/adapters/shared/explicit-static-route-matcher.ts +0 -140
- package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -127
- package/src/adapters/shared/fs-server-response-factory.ts +0 -118
- package/src/adapters/shared/fs-server-response-matcher.ts +0 -205
- package/src/adapters/shared/hmr-entrypoint-registrar.ts +0 -149
- package/src/adapters/shared/hmr-html-response.ts +0 -52
- package/src/adapters/shared/render-context.ts +0 -120
- package/src/adapters/shared/runtime-bootstrap.d.ts +0 -38
- package/src/adapters/shared/runtime-bootstrap.js +0 -43
- package/src/adapters/shared/runtime-bootstrap.ts +0 -79
- package/src/adapters/shared/server-adapter.ts +0 -489
- package/src/adapters/shared/server-route-handler.ts +0 -153
- package/src/adapters/shared/server-static-builder.ts +0 -166
- package/src/build/build-adapter.ts +0 -361
- package/src/build/build-manifest.ts +0 -54
- package/src/build/build-types.ts +0 -83
- package/src/build/dev-build-coordinator.d.ts +0 -74
- package/src/build/dev-build-coordinator.js +0 -161
- package/src/build/dev-build-coordinator.ts +0 -221
- package/src/build/esbuild-build-adapter.d.ts +0 -72
- package/src/build/esbuild-build-adapter.js +0 -422
- package/src/build/esbuild-build-adapter.ts +0 -559
- package/src/build/runtime-build-executor.ts +0 -34
- package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
- package/src/build/runtime-specifier-alias-plugin.js +0 -31
- package/src/build/runtime-specifier-alias-plugin.ts +0 -58
- package/src/config/config-builder.ts +0 -706
- package/src/constants.ts +0 -54
- package/src/create-app.ts +0 -87
- package/src/dev/sc-server.ts +0 -143
- package/src/eco/component-render-context.d.ts +0 -105
- package/src/eco/component-render-context.js +0 -87
- package/src/eco/component-render-context.ts +0 -224
- package/src/eco/eco.ts +0 -242
- package/src/eco/eco.types.ts +0 -221
- package/src/eco/eco.utils.ts +0 -89
- package/src/eco/global-injector-map.ts +0 -112
- package/src/eco/lazy-injector-map.ts +0 -120
- package/src/eco/module-dependencies.ts +0 -75
- package/src/errors/http-error.ts +0 -72
- package/src/errors/index.ts +0 -2
- package/src/errors/locals-access-error.ts +0 -7
- package/src/global/app-logger.ts +0 -4
- package/src/hmr/client/hmr-runtime.ts +0 -152
- package/src/hmr/hmr-strategy.ts +0 -172
- package/src/hmr/hmr.postcss.test.e2e.ts +0 -41
- package/src/hmr/hmr.test.e2e.ts +0 -66
- package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
- package/src/hmr/strategies/js-hmr-strategy.ts +0 -320
- package/src/index.browser.ts +0 -3
- package/src/index.ts +0 -5
- package/src/integrations/ghtml/ghtml-renderer.ts +0 -96
- package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
- package/src/internal-types.ts +0 -232
- package/src/plugins/alias-resolver-plugin.ts +0 -63
- package/src/plugins/eco-component-meta-plugin.ts +0 -481
- package/src/plugins/integration-plugin.ts +0 -226
- package/src/plugins/processor.ts +0 -240
- package/src/plugins/runtime-capability.ts +0 -14
- package/src/public-types.ts +0 -1317
- package/src/route-renderer/component-graph/component-graph-executor.d.ts +0 -32
- package/src/route-renderer/component-graph/component-graph-executor.js +0 -31
- package/src/route-renderer/component-graph/component-graph-executor.ts +0 -84
- package/src/route-renderer/component-graph/component-graph.d.ts +0 -42
- package/src/route-renderer/component-graph/component-graph.js +0 -72
- package/src/route-renderer/component-graph/component-graph.ts +0 -159
- package/src/route-renderer/component-graph/component-marker.d.ts +0 -52
- package/src/route-renderer/component-graph/component-marker.js +0 -46
- package/src/route-renderer/component-graph/component-marker.ts +0 -117
- package/src/route-renderer/component-graph/component-reference.d.ts +0 -10
- package/src/route-renderer/component-graph/component-reference.js +0 -19
- package/src/route-renderer/component-graph/component-reference.ts +0 -29
- package/src/route-renderer/component-graph/marker-graph-resolver.d.ts +0 -77
- package/src/route-renderer/component-graph/marker-graph-resolver.js +0 -95
- package/src/route-renderer/component-graph/marker-graph-resolver.ts +0 -155
- package/src/route-renderer/orchestration/integration-renderer.ts +0 -790
- package/src/route-renderer/orchestration/render-execution.service.d.ts +0 -103
- package/src/route-renderer/orchestration/render-execution.service.js +0 -121
- package/src/route-renderer/orchestration/render-execution.service.ts +0 -230
- package/src/route-renderer/orchestration/render-preparation.service.d.ts +0 -121
- package/src/route-renderer/orchestration/render-preparation.service.js +0 -332
- package/src/route-renderer/orchestration/render-preparation.service.ts +0 -476
- package/src/route-renderer/page-loading/dependency-resolver.ts +0 -612
- package/src/route-renderer/page-loading/page-module-loader.ts +0 -181
- package/src/route-renderer/route-renderer.ts +0 -115
- package/src/router/client/link-intent.test.browser.ts +0 -51
- package/src/router/client/link-intent.ts +0 -92
- package/src/router/client/navigation-coordinator.ts +0 -433
- package/src/router/server/fs-router-scanner.d.ts +0 -41
- package/src/router/server/fs-router-scanner.js +0 -156
- package/src/router/server/fs-router-scanner.ts +0 -219
- package/src/router/server/fs-router.d.ts +0 -26
- package/src/router/server/fs-router.js +0 -100
- package/src/router/server/fs-router.ts +0 -122
- package/src/services/assets/asset-processing-service/asset-processing.service.ts +0 -401
- package/src/services/assets/asset-processing-service/asset.factory.ts +0 -105
- package/src/services/assets/asset-processing-service/assets.types.ts +0 -113
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +0 -95
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +0 -78
- package/src/services/assets/asset-processing-service/index.ts +0 -5
- package/src/services/assets/asset-processing-service/processor.interface.ts +0 -27
- package/src/services/assets/asset-processing-service/processor.registry.ts +0 -18
- package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +0 -82
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +0 -95
- package/src/services/assets/asset-processing-service/processors/index.ts +0 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +0 -66
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +0 -88
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +0 -85
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -80
- package/src/services/assets/browser-bundle.service.ts +0 -53
- package/src/services/cache/cache.types.ts +0 -126
- package/src/services/cache/index.ts +0 -18
- package/src/services/cache/memory-cache-store.ts +0 -130
- package/src/services/cache/page-cache-service.ts +0 -202
- package/src/services/cache/page-request-cache-coordinator.service.ts +0 -131
- package/src/services/html/html-rewriter-provider.service.ts +0 -103
- package/src/services/html/html-transformer.service.ts +0 -279
- package/src/services/invalidation/development-invalidation.service.ts +0 -261
- package/src/services/module-loading/app-server-module-transpiler.service.ts +0 -52
- package/src/services/module-loading/page-module-import.service.ts +0 -200
- package/src/services/module-loading/server-loader.service.d.ts +0 -96
- package/src/services/module-loading/server-loader.service.js +0 -32
- package/src/services/module-loading/server-loader.service.ts +0 -130
- package/src/services/module-loading/server-module-transpiler.service.ts +0 -105
- package/src/services/runtime-manifest/node-runtime-manifest.service.d.ts +0 -35
- package/src/services/runtime-manifest/node-runtime-manifest.service.js +0 -60
- package/src/services/runtime-manifest/node-runtime-manifest.service.ts +0 -101
- package/src/services/runtime-state/dev-graph.service.ts +0 -217
- package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +0 -136
- package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +0 -69
- package/src/services/runtime-state/runtime-specifier-registry.service.js +0 -37
- package/src/services/runtime-state/runtime-specifier-registry.service.ts +0 -96
- package/src/services/runtime-state/server-invalidation-state.service.ts +0 -68
- package/src/services/validation/schema-validation-service.ts +0 -204
- package/src/services/validation/standard-schema.types.ts +0 -68
- package/src/static-site-generator/static-site-generator.ts +0 -462
- package/src/utils/css.d.ts +0 -1
- package/src/utils/css.js +0 -7
- package/src/utils/css.ts +0 -5
- package/src/utils/deep-merge.ts +0 -47
- package/src/utils/hash.ts +0 -5
- package/src/utils/html.ts +0 -1
- package/src/utils/invariant.ts +0 -15
- package/src/utils/locals-utils.ts +0 -37
- package/src/utils/parse-cli-args.ts +0 -83
- package/src/utils/path-utils.module.ts +0 -14
- package/src/utils/resolve-work-dir.ts +0 -45
- package/src/utils/runtime.ts +0 -44
- package/src/utils/server-utils.module.ts +0 -67
- package/src/watchers/project-watcher.test-helpers.ts +0 -41
- package/src/watchers/project-watcher.ts +0 -363
- /package/src/{internal-types.js → adapters/shared/runtime-host.js} +0 -0
- /package/src/{public-types.js → adapters/shared/static-preview-host.js} +0 -0
- /package/src/{constants.d.ts → config/constants.d.ts} +0 -0
- /package/src/{constants.js → config/constants.js} +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
class BrowserRuntimeManifestConflictError extends Error {
|
|
2
|
+
specifier;
|
|
3
|
+
existing;
|
|
4
|
+
incoming;
|
|
5
|
+
constructor(specifier, existing, incoming) {
|
|
6
|
+
super(
|
|
7
|
+
`Browser runtime asset conflict for ${specifier}: ${existing.owner} maps to ${existing.publicPath}, ${incoming.owner} maps to ${incoming.publicPath}`
|
|
8
|
+
);
|
|
9
|
+
this.name = "BrowserRuntimeManifestConflictError";
|
|
10
|
+
this.specifier = specifier;
|
|
11
|
+
this.existing = existing;
|
|
12
|
+
this.incoming = incoming;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function normalizeDeclaration(declaration) {
|
|
16
|
+
return {
|
|
17
|
+
...declaration,
|
|
18
|
+
externals: declaration.externals ?? []
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function hasCompatibleRuntimeAsset(existing, incoming) {
|
|
22
|
+
return existing.owner === incoming.owner && existing.importPath === incoming.importPath && existing.publicPath === incoming.publicPath && existing.mode === incoming.mode && arrayEquals(existing.externals, incoming.externals);
|
|
23
|
+
}
|
|
24
|
+
function arrayEquals(left, right) {
|
|
25
|
+
if (left.length !== right.length) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return left.every((value, index) => value === right[index]);
|
|
29
|
+
}
|
|
30
|
+
function createBrowserRuntimeManifest(declarations = []) {
|
|
31
|
+
const assets = [];
|
|
32
|
+
const bySpecifier = /* @__PURE__ */ new Map();
|
|
33
|
+
for (const declaration of declarations) {
|
|
34
|
+
const asset = normalizeDeclaration(declaration);
|
|
35
|
+
const existing = bySpecifier.get(asset.specifier);
|
|
36
|
+
if (existing) {
|
|
37
|
+
if (!hasCompatibleRuntimeAsset(existing, asset)) {
|
|
38
|
+
throw new BrowserRuntimeManifestConflictError(asset.specifier, existing, asset);
|
|
39
|
+
}
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
assets.push(asset);
|
|
43
|
+
bySpecifier.set(asset.specifier, asset);
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
assets,
|
|
47
|
+
bySpecifier
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function mergeBrowserRuntimeManifests(...manifests) {
|
|
51
|
+
return createBrowserRuntimeManifest(manifests.flatMap((manifest) => manifest?.assets ?? []));
|
|
52
|
+
}
|
|
53
|
+
function getBrowserRuntimeSpecifierMap(manifest) {
|
|
54
|
+
return new Map(manifest.assets.map((asset) => [asset.specifier, asset.publicPath]));
|
|
55
|
+
}
|
|
56
|
+
export {
|
|
57
|
+
BrowserRuntimeManifestConflictError,
|
|
58
|
+
createBrowserRuntimeManifest,
|
|
59
|
+
getBrowserRuntimeSpecifierMap,
|
|
60
|
+
mergeBrowserRuntimeManifests
|
|
61
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for the browser-runtime plugin.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* `createBrowserRuntimePlugin` needs to:
|
|
6
|
+
*
|
|
7
|
+
* 1. Escape each specifier for inclusion in a regex filter.
|
|
8
|
+
* 2. Build a `RegExp` whose alternation matches any of those specifiers.
|
|
9
|
+
*
|
|
10
|
+
* These utilities are extracted here so the plugin does not duplicate
|
|
11
|
+
* the same code path.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Escapes a literal specifier for inclusion in a regular expression.
|
|
15
|
+
*
|
|
16
|
+
* Only the regex metacharacters are escaped: `. * + ? ^ $ { } ( ) | [ ] \`
|
|
17
|
+
*/
|
|
18
|
+
export declare function escapeRegExp(value: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Builds a `RegExp` whose alternation matches any of the keys in
|
|
21
|
+
* `specifierMap`.
|
|
22
|
+
*
|
|
23
|
+
* Returns `null` for an empty map so callers can short-circuit and
|
|
24
|
+
* avoid registering a no-op `onResolve` / `onLoad` filter.
|
|
25
|
+
*/
|
|
26
|
+
export declare function buildSpecifierFilter(specifierMap: ReadonlyMap<string, string>): RegExp | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
function escapeRegExp(value) {
|
|
2
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
3
|
+
}
|
|
4
|
+
function buildSpecifierFilter(specifierMap) {
|
|
5
|
+
if (specifierMap.size === 0) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
const alternation = Array.from(specifierMap.keys()).map(escapeRegExp).join("|");
|
|
9
|
+
return new RegExp(`^(${alternation})$`);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
buildSpecifierFilter,
|
|
13
|
+
escapeRegExp
|
|
14
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified browser-runtime plugin factory.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Single factory that exposes the union of behaviors for the browser
|
|
6
|
+
* runtime:
|
|
7
|
+
*
|
|
8
|
+
* - `onResolve` for manifest specifiers → mapped public URL, marked external
|
|
9
|
+
* - `onResolve` for paths starting with `/` whose target is in the manifest's
|
|
10
|
+
* public path set → marked external
|
|
11
|
+
* - `onLoad` for JS/TS files → AST-walking import/export rewrite against the
|
|
12
|
+
* manifest specifier set, with a `code.includes(specifier)` fast path
|
|
13
|
+
*
|
|
14
|
+
* The plugin object carries the manifest's `specifier → publicPath` map
|
|
15
|
+
* under `BROWSER_RUNTIME_IMPORT_REWRITE_MAP` so
|
|
16
|
+
* `collectBrowserRuntimeImportRewriteMap` and the post-build rewriter can
|
|
17
|
+
* read it without re-walking the manifest.
|
|
18
|
+
*
|
|
19
|
+
* This is the single source of truth for browser-runtime plugin behavior.
|
|
20
|
+
* Per-bundler bridges can treat it as a single plugin.
|
|
21
|
+
*/
|
|
22
|
+
import type { EcoBuildPlugin } from './build-types.js';
|
|
23
|
+
import { type BrowserRuntimeManifest } from './browser-runtime-manifest.js';
|
|
24
|
+
/**
|
|
25
|
+
* Symbol used to attach the manifest's `specifier → publicPath` map to a
|
|
26
|
+
* plugin instance. Consumers read it via `getBrowserRuntimeImportRewriteMap`
|
|
27
|
+
* or `collectBrowserRuntimeImportRewriteMap`.
|
|
28
|
+
*/
|
|
29
|
+
export declare const BROWSER_RUNTIME_IMPORT_REWRITE_MAP: unique symbol;
|
|
30
|
+
/**
|
|
31
|
+
* Default name used by `createBrowserRuntimePlugin` when the caller
|
|
32
|
+
* does not provide one.
|
|
33
|
+
*/
|
|
34
|
+
export declare const DEFAULT_BROWSER_RUNTIME_PLUGIN_NAME = "browser-runtime-plugin";
|
|
35
|
+
export type CreateBrowserRuntimePluginOptions = {
|
|
36
|
+
/** Manifest whose specifier → publicPath entries drive the plugin. */
|
|
37
|
+
manifest: BrowserRuntimeManifest;
|
|
38
|
+
/** Stable build plugin name used for deduplication and selective exclusion. */
|
|
39
|
+
name?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Whether alias `onResolve` results should be marked `external`.
|
|
42
|
+
* Default `true`. Pass `false` to let the bundler try to bundle the
|
|
43
|
+
* mapped URL.
|
|
44
|
+
*/
|
|
45
|
+
external?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Enable source-level AST import/export rewrite via the `onLoad`
|
|
48
|
+
* hook. Default `true`. Set `false` for alias-only consumers
|
|
49
|
+
* (e.g. `react`/`react-dom` externals in vendor assets).
|
|
50
|
+
*/
|
|
51
|
+
rewriteImports?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Register an `onResolve` for paths starting with `/` whose target
|
|
54
|
+
* is in the manifest's public path set. Marks them external so the
|
|
55
|
+
* bundler does not try to resolve them as source modules. Default
|
|
56
|
+
* `true`.
|
|
57
|
+
*/
|
|
58
|
+
matchPublicPaths?: boolean;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Rewrites static ESM import/export specifiers and string-literal dynamic imports
|
|
62
|
+
* from manifest-owned runtime specifiers to concrete browser public URLs.
|
|
63
|
+
*
|
|
64
|
+
* Exposed for the post-build rewriter and for tests.
|
|
65
|
+
*/
|
|
66
|
+
export declare function rewriteBrowserRuntimeImports(code: string, specifierMap: ReadonlyMap<string, string>, filePath?: string): string;
|
|
67
|
+
export declare function getBrowserRuntimeImportRewriteMap(plugin: EcoBuildPlugin): ReadonlyMap<string, string> | undefined;
|
|
68
|
+
export declare function collectBrowserRuntimeImportRewriteMap(plugins: EcoBuildPlugin[] | undefined): ReadonlyMap<string, string>;
|
|
69
|
+
/**
|
|
70
|
+
* Creates a build plugin that exposes the union of browser-runtime
|
|
71
|
+
* manifest behaviors (alias resolution, public-path matching, and source
|
|
72
|
+
* import/export rewrite). See {@link CreateBrowserRuntimePluginOptions}
|
|
73
|
+
* for per-behavior toggles.
|
|
74
|
+
*
|
|
75
|
+
* Returns `null` for an empty manifest so callers can short-circuit
|
|
76
|
+
* registration without sprinkling `if (plugin)` everywhere.
|
|
77
|
+
*/
|
|
78
|
+
export declare function createBrowserRuntimePlugin(options: CreateBrowserRuntimePluginOptions): EcoBuildPlugin | null;
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import { cachedParseSync } from "../cache/module-parse-cache.js";
|
|
4
|
+
import { getBrowserRuntimeSpecifierMap } from "./browser-runtime-manifest.js";
|
|
5
|
+
import { buildSpecifierFilter } from "./browser-runtime-plugin-helpers.js";
|
|
6
|
+
const BROWSER_RUNTIME_IMPORT_REWRITE_MAP = /* @__PURE__ */ Symbol.for("ecopages.browserRuntimeImportRewriteMap");
|
|
7
|
+
const DEFAULT_BROWSER_RUNTIME_PLUGIN_NAME = "browser-runtime-plugin";
|
|
8
|
+
function isRecord(value) {
|
|
9
|
+
return Boolean(value) && typeof value === "object";
|
|
10
|
+
}
|
|
11
|
+
function inferLoaderFromPath(filePath) {
|
|
12
|
+
const extension = path.extname(filePath).toLowerCase();
|
|
13
|
+
switch (extension) {
|
|
14
|
+
case ".mts":
|
|
15
|
+
case ".cts":
|
|
16
|
+
case ".ts":
|
|
17
|
+
return "ts";
|
|
18
|
+
case ".tsx":
|
|
19
|
+
return "tsx";
|
|
20
|
+
case ".jsx":
|
|
21
|
+
return "jsx";
|
|
22
|
+
default:
|
|
23
|
+
return "js";
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function queueReplacement(options) {
|
|
27
|
+
if (!isRecord(options.source) || typeof options.source.value !== "string") {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const mappedPath = options.specifierMap.get(options.source.value);
|
|
31
|
+
if (!mappedPath || typeof options.source.start !== "number" || typeof options.source.end !== "number") {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const quote = options.code[options.source.start] === "'" ? "'" : '"';
|
|
35
|
+
options.edits.push({
|
|
36
|
+
start: options.source.start,
|
|
37
|
+
end: options.source.end,
|
|
38
|
+
replacement: `${quote}${mappedPath}${quote}`
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function rewriteBrowserRuntimeImports(code, specifierMap, filePath = "browser-runtime-imports.js") {
|
|
42
|
+
if (specifierMap.size === 0) {
|
|
43
|
+
return code;
|
|
44
|
+
}
|
|
45
|
+
const edits = [];
|
|
46
|
+
try {
|
|
47
|
+
const result = cachedParseSync(filePath, code, {
|
|
48
|
+
sourceType: "module",
|
|
49
|
+
lang: path.extname(filePath).endsWith("x") ? "tsx" : "ts"
|
|
50
|
+
});
|
|
51
|
+
const walk = (node) => {
|
|
52
|
+
if (!isRecord(node)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (node.type === "ImportDeclaration" || node.type === "ExportNamedDeclaration" || node.type === "ExportAllDeclaration") {
|
|
56
|
+
queueReplacement({ code, source: node.source, specifierMap, edits });
|
|
57
|
+
}
|
|
58
|
+
if (node.type === "ImportExpression" && isRecord(node.source)) {
|
|
59
|
+
if (node.source.type === "StringLiteral" || node.source.type === "Literal") {
|
|
60
|
+
queueReplacement({ code, source: node.source, specifierMap, edits });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
for (const value of Object.values(node)) {
|
|
64
|
+
if (Array.isArray(value)) {
|
|
65
|
+
for (const child of value) {
|
|
66
|
+
walk(child);
|
|
67
|
+
}
|
|
68
|
+
} else {
|
|
69
|
+
walk(value);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
walk(result.program);
|
|
74
|
+
} catch {
|
|
75
|
+
return code;
|
|
76
|
+
}
|
|
77
|
+
if (edits.length === 0) {
|
|
78
|
+
return code;
|
|
79
|
+
}
|
|
80
|
+
edits.sort((left, right) => right.start - left.start);
|
|
81
|
+
let rewritten = code;
|
|
82
|
+
for (const edit of edits) {
|
|
83
|
+
rewritten = rewritten.slice(0, edit.start) + edit.replacement + rewritten.slice(edit.end);
|
|
84
|
+
}
|
|
85
|
+
return rewritten;
|
|
86
|
+
}
|
|
87
|
+
function getBrowserRuntimeImportRewriteMap(plugin) {
|
|
88
|
+
return plugin[BROWSER_RUNTIME_IMPORT_REWRITE_MAP];
|
|
89
|
+
}
|
|
90
|
+
function collectBrowserRuntimeImportRewriteMap(plugins) {
|
|
91
|
+
const merged = /* @__PURE__ */ new Map();
|
|
92
|
+
for (const plugin of plugins ?? []) {
|
|
93
|
+
const specifierMap = getBrowserRuntimeImportRewriteMap(plugin);
|
|
94
|
+
if (!specifierMap) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
for (const [specifier, publicPath] of specifierMap.entries()) {
|
|
98
|
+
if (!merged.has(specifier)) {
|
|
99
|
+
merged.set(specifier, publicPath);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return merged;
|
|
104
|
+
}
|
|
105
|
+
function createBrowserRuntimePlugin(options) {
|
|
106
|
+
const { manifest } = options;
|
|
107
|
+
const specifierMap = getBrowserRuntimeSpecifierMap(manifest);
|
|
108
|
+
const specifierFilter = buildSpecifierFilter(specifierMap);
|
|
109
|
+
if (!specifierFilter) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
const external = options.external ?? true;
|
|
113
|
+
const rewriteImports = options.rewriteImports ?? true;
|
|
114
|
+
const matchPublicPaths = options.matchPublicPaths ?? true;
|
|
115
|
+
const publicPathSet = new Set(specifierMap.values());
|
|
116
|
+
const specifierKeys = Array.from(specifierMap.keys());
|
|
117
|
+
const plugin = {
|
|
118
|
+
name: options.name ?? DEFAULT_BROWSER_RUNTIME_PLUGIN_NAME,
|
|
119
|
+
setup(build) {
|
|
120
|
+
build.onResolve({ filter: specifierFilter }, (args) => {
|
|
121
|
+
const mappedPath = specifierMap.get(args.path);
|
|
122
|
+
if (!mappedPath) {
|
|
123
|
+
return void 0;
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
path: mappedPath,
|
|
127
|
+
external
|
|
128
|
+
};
|
|
129
|
+
});
|
|
130
|
+
if (matchPublicPaths) {
|
|
131
|
+
build.onResolve({ filter: /^\// }, (args) => {
|
|
132
|
+
if (!publicPathSet.has(args.path)) {
|
|
133
|
+
return void 0;
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
path: args.path,
|
|
137
|
+
external: true
|
|
138
|
+
};
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if (rewriteImports) {
|
|
142
|
+
build.onLoad({ filter: /\.[cm]?[jt]sx?$/ }, (args) => {
|
|
143
|
+
if (!path.isAbsolute(args.path) || !existsSync(args.path)) {
|
|
144
|
+
return void 0;
|
|
145
|
+
}
|
|
146
|
+
const code = readFileSync(args.path, "utf-8");
|
|
147
|
+
if (!specifierKeys.some((specifier) => code.includes(specifier))) {
|
|
148
|
+
return void 0;
|
|
149
|
+
}
|
|
150
|
+
const rewritten = rewriteBrowserRuntimeImports(code, specifierMap, args.path);
|
|
151
|
+
if (rewritten === code) {
|
|
152
|
+
return void 0;
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
contents: rewritten,
|
|
156
|
+
loader: inferLoaderFromPath(args.path),
|
|
157
|
+
resolveDir: path.dirname(args.path)
|
|
158
|
+
};
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
plugin[BROWSER_RUNTIME_IMPORT_REWRITE_MAP] = specifierMap;
|
|
164
|
+
return plugin;
|
|
165
|
+
}
|
|
166
|
+
export {
|
|
167
|
+
BROWSER_RUNTIME_IMPORT_REWRITE_MAP,
|
|
168
|
+
DEFAULT_BROWSER_RUNTIME_PLUGIN_NAME,
|
|
169
|
+
collectBrowserRuntimeImportRewriteMap,
|
|
170
|
+
createBrowserRuntimePlugin,
|
|
171
|
+
getBrowserRuntimeImportRewriteMap,
|
|
172
|
+
rewriteBrowserRuntimeImports
|
|
173
|
+
};
|