@ecopages/core 0.2.0-beta.8 → 0.2.0-rc.0
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 +42 -13
- package/package.json +361 -58
- package/src/adapters/README.md +6 -2
- package/src/adapters/abstract/application-adapter.d.ts +57 -5
- package/src/adapters/abstract/application-adapter.js +261 -203
- package/src/adapters/abstract/router-adapter.js +12 -4
- package/src/adapters/abstract/segment-path-matcher.d.ts +6 -0
- package/src/adapters/abstract/segment-path-matcher.js +147 -0
- package/src/adapters/abstract/server-adapter.d.ts +13 -2
- package/src/adapters/abstract/server-adapter.js +22 -14
- package/src/adapters/abstract/ws-pattern-matcher.d.ts +2 -50
- package/src/adapters/abstract/ws-pattern-matcher.js +24 -57
- package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
- package/src/adapters/bun/client-bridge.js +51 -50
- package/src/adapters/bun/create-app.d.ts +4 -6
- package/src/adapters/bun/create-app.js +169 -154
- package/src/adapters/bun/hmr-manager.d.ts +2 -3
- package/src/adapters/bun/hmr-manager.js +62 -57
- package/src/adapters/bun/index.d.ts +1 -1
- package/src/adapters/bun/index.js +2 -8
- package/src/adapters/bun/runtime-host.d.ts +1 -1
- package/src/adapters/bun/runtime-host.js +61 -54
- package/src/adapters/bun/server-adapter.d.ts +34 -53
- package/src/adapters/bun/server-adapter.js +557 -637
- package/src/adapters/bun/static-preview-host.d.ts +1 -1
- package/src/adapters/bun/static-preview-host.js +43 -41
- package/src/adapters/create-app.d.ts +1 -12
- package/src/adapters/create-app.js +11 -72
- package/src/adapters/index.d.ts +2 -2
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +4 -3
- package/src/adapters/node/create-app.js +123 -98
- package/src/adapters/node/http-request-bridge.js +147 -106
- package/src/adapters/node/node-client-bridge.js +62 -64
- package/src/adapters/node/node-hmr-manager.d.ts +2 -3
- package/src/adapters/node/node-hmr-manager.js +58 -48
- package/src/adapters/node/runtime-host.d.ts +1 -1
- package/src/adapters/node/runtime-host.js +96 -89
- package/src/adapters/node/server-adapter-dependencies.js +18 -17
- package/src/adapters/node/server-adapter.d.ts +28 -8
- package/src/adapters/node/server-adapter.js +349 -302
- package/src/adapters/node/static-content-server.js +172 -186
- package/src/adapters/node/static-preview-host.d.ts +1 -1
- package/src/adapters/node/static-preview-host.js +88 -64
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
- package/src/adapters/shared/{hmr-html-response.d.ts → hmr/hmr-html-response.d.ts} +2 -2
- package/src/adapters/shared/hmr/hmr-html-response.js +50 -0
- package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +92 -0
- package/src/adapters/shared/hmr/shared-hmr-manager.js +446 -0
- package/src/adapters/shared/http/api-request-pipeline.d.ts +23 -0
- package/src/adapters/shared/http/api-request-pipeline.js +132 -0
- package/src/adapters/shared/{api-response.d.ts → http/api-response.d.ts} +1 -1
- package/src/adapters/shared/http/api-response.js +79 -0
- package/src/adapters/shared/http/create-body-response.d.ts +12 -0
- package/src/adapters/shared/http/create-body-response.js +26 -0
- package/src/adapters/shared/http/define-api-handler.d.ts +90 -0
- package/src/adapters/shared/http/define-api-handler.js +49 -0
- package/src/adapters/shared/{explicit-static-render-preparation.d.ts → http/explicit-static-render-preparation.d.ts} +3 -3
- package/src/adapters/shared/http/explicit-static-render-preparation.js +29 -0
- package/src/adapters/shared/{explicit-static-route-matcher.d.ts → http/explicit-static-route-matcher.d.ts} +3 -9
- package/src/adapters/shared/http/explicit-static-route-matcher.js +59 -0
- package/src/adapters/shared/{file-route-middleware-pipeline.d.ts → http/file-route-middleware-pipeline.d.ts} +2 -2
- package/src/adapters/shared/http/file-route-middleware-pipeline.js +84 -0
- package/src/adapters/shared/{fs-server-response-factory.d.ts → http/fs-server-response-factory.d.ts} +7 -2
- package/src/adapters/shared/http/fs-server-response-factory.js +106 -0
- package/src/adapters/shared/{fs-server-response-matcher.d.ts → http/fs-server-response-matcher.d.ts} +25 -5
- package/src/adapters/shared/http/fs-server-response-matcher.js +260 -0
- package/src/adapters/shared/http/run-middleware-chain.d.ts +5 -0
- package/src/adapters/shared/http/run-middleware-chain.js +17 -0
- package/src/adapters/shared/{application-adapter.d.ts → runtime/application-adapter.d.ts} +2 -2
- package/src/adapters/shared/runtime/application-adapter.js +75 -0
- package/src/adapters/shared/runtime/collect-dev-prewarm-plan.d.ts +11 -0
- package/src/adapters/shared/runtime/collect-dev-prewarm-plan.js +29 -0
- package/src/adapters/shared/runtime/copy-runtime-public-dir.js +27 -0
- package/src/adapters/shared/runtime/dev-static-route-prewarm.d.ts +16 -0
- package/src/adapters/shared/runtime/dev-static-route-prewarm.js +66 -0
- package/src/adapters/shared/runtime/port-manager.d.ts +116 -0
- package/src/adapters/shared/runtime/port-manager.js +226 -0
- package/src/adapters/shared/{render-context.d.ts → runtime/render-context.d.ts} +2 -2
- package/src/adapters/shared/runtime/render-context.js +99 -0
- package/src/adapters/shared/{runtime-app-bootstrap.d.ts → runtime/runtime-app-bootstrap.d.ts} +4 -2
- package/src/adapters/shared/runtime/runtime-app-bootstrap.js +38 -0
- package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +45 -0
- package/src/adapters/shared/runtime/runtime-server-lifecycle.js +71 -0
- package/src/adapters/shared/{server-adapter.d.ts → runtime/server-adapter.d.ts} +31 -50
- package/src/adapters/shared/runtime/server-adapter.js +301 -0
- package/src/adapters/shared/{server-route-handler.d.ts → runtime/server-route-handler.d.ts} +6 -33
- package/src/adapters/shared/runtime/server-route-handler.js +77 -0
- package/src/adapters/shared/{server-static-builder.d.ts → runtime/server-static-builder.d.ts} +26 -31
- package/src/adapters/shared/runtime/server-static-builder.js +172 -0
- package/src/adapters/shared/{static-preview-host.d.ts → runtime/static-preview-host.d.ts} +6 -1
- package/src/adapters/shared/{node-http-websocket-upgrades.d.ts → ws/node-http-websocket-upgrades.d.ts} +1 -1
- package/src/adapters/shared/ws/node-http-websocket-upgrades.js +109 -0
- package/src/adapters/shared/ws/websocket-lifecycle.d.ts +24 -0
- package/src/adapters/shared/ws/websocket-lifecycle.js +62 -0
- package/src/build/README.md +165 -45
- package/src/build/app-build-manifest-runtime.d.ts +39 -0
- package/src/build/app-build-manifest-runtime.js +145 -0
- package/src/build/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +4 -0
- package/src/build/browser/browser-runtime-manifest.js +65 -0
- package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +3 -5
- package/src/build/browser/browser-runtime-plugin-helpers.js +32 -0
- package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +12 -13
- package/src/build/browser/browser-runtime-plugin.js +218 -0
- package/src/build/browser/jsx-ownership-plugins.d.ts +24 -0
- package/src/build/browser/jsx-ownership-plugins.js +55 -0
- package/src/build/browser/lit-static-render-worker-context.d.ts +2 -0
- package/src/build/browser/lit-static-render-worker-context.js +4 -0
- package/src/build/build-adapter.d.ts +29 -340
- package/src/build/build-adapter.js +258 -260
- package/src/build/{build-input-fingerprint.d.ts → cache/build-input-fingerprint.d.ts} +3 -3
- package/src/build/cache/build-input-fingerprint.js +33 -0
- package/src/build/cache/cache-constants.d.ts +4 -0
- package/src/build/cache/cache-constants.js +4 -0
- package/src/build/cache/cache-keys.d.ts +22 -0
- package/src/build/cache/cache-keys.js +71 -0
- package/src/build/{pages-unified-graph-build.d.ts → cache/pages-unified-graph-build.d.ts} +1 -1
- package/src/build/cache/pages-unified-graph-build.js +199 -0
- package/src/build/cache/production-build-cache.d.ts +21 -0
- package/src/build/cache/production-build-cache.js +56 -0
- package/src/build/{server-entry-build-cache.d.ts → cache/server-entry-build-cache.d.ts} +3 -4
- package/src/build/cache/server-entry-build-cache.js +153 -0
- package/src/build/contracts/build-contracts.d.ts +96 -0
- package/src/build/contracts/build-contracts.js +1 -0
- package/src/build/contracts/build-manifest.d.ts +90 -0
- package/src/build/contracts/build-manifest.js +64 -0
- package/src/build/contracts/build-types.js +1 -0
- package/src/build/contracts/content-virtual-modules.d.ts +12 -0
- package/src/build/contracts/content-virtual-modules.js +29 -0
- package/src/build/{rolldown-adapter-helpers.d.ts → rolldown/rolldown-adapter-helpers.d.ts} +32 -9
- package/src/build/rolldown/rolldown-adapter-helpers.js +463 -0
- package/src/build/{rolldown-build-adapter.d.ts → rolldown/rolldown-build-adapter.d.ts} +3 -7
- package/src/build/rolldown/rolldown-build-adapter.js +57 -0
- package/src/build/{rolldown-build-invocation-metrics.d.ts → rolldown/rolldown-build-invocation-metrics.d.ts} +1 -1
- package/src/build/rolldown/rolldown-build-invocation-metrics.js +39 -0
- package/src/build/{rolldown-plugin-bridge.d.ts → rolldown/rolldown-plugin-bridge.d.ts} +16 -2
- package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
- package/src/build/rolldown/rolldown-source-transform-pass.d.ts +15 -0
- package/src/build/rolldown/rolldown-source-transform-pass.js +70 -0
- package/src/build/rolldown/runtime-build-output-normalizer.js +253 -0
- package/src/build/rolldown/server-side-css-shim-plugin.js +58 -0
- package/src/build/runtime/build-profile-options.d.ts +7 -0
- package/src/build/runtime/build-profile-options.js +37 -0
- package/src/build/runtime/build-request-identity.d.ts +17 -0
- package/src/build/runtime/build-request-identity.js +79 -0
- package/src/build/runtime/build-request-policy.d.ts +58 -0
- package/src/build/runtime/build-request-policy.js +84 -0
- package/src/build/runtime/build-runtime.d.ts +28 -0
- package/src/build/runtime/build-runtime.js +75 -0
- package/src/build/runtime/deduping-build-executor.d.ts +21 -0
- package/src/build/runtime/deduping-build-executor.js +40 -0
- package/src/build/{parallel-build-executor.d.ts → runtime/parallel-build-executor.d.ts} +1 -1
- package/src/build/runtime/parallel-build-executor.js +60 -0
- package/src/build/{serialized-build-executor.d.ts → runtime/serialized-build-executor.d.ts} +1 -1
- package/src/build/runtime/serialized-build-executor.js +79 -0
- package/src/cache/index.d.ts +2 -1
- package/src/cache/index.js +7 -6
- package/src/cache/module-parse-cache.d.ts +5 -0
- package/src/cache/module-parse-cache.js +122 -67
- package/src/cache/module-transform-profiler.d.ts +8 -0
- package/src/cache/module-transform-profiler.js +8 -0
- package/src/client/navigation-scripts/classification.d.ts +16 -0
- package/src/client/navigation-scripts/classification.js +49 -0
- package/src/client/navigation-scripts/index.d.ts +3 -0
- package/src/client/navigation-scripts/index.js +3 -0
- package/src/client/navigation-scripts/navigation-scripts.test.browser.d.ts +1 -0
- package/src/client/navigation-scripts/navigation-scripts.test.browser.js +61 -0
- package/src/client/navigation-scripts/registry.d.ts +11 -0
- package/src/client/navigation-scripts/registry.js +16 -0
- package/src/client/navigation-scripts/rerun-queue.d.ts +37 -0
- package/src/client/navigation-scripts/rerun-queue.js +90 -0
- package/src/client/scroll.d.ts +17 -0
- package/src/client/scroll.js +33 -0
- package/src/client/scroll.test.browser.d.ts +1 -0
- package/src/client/scroll.test.browser.js +31 -0
- package/src/client/view-transitions.d.ts +32 -0
- package/src/client/view-transitions.js +120 -0
- package/src/client/view-transitions.test.browser.d.ts +1 -0
- package/src/client/view-transitions.test.browser.js +56 -0
- package/src/config/README.md +1 -1
- package/src/config/config-builder.d.ts +42 -12
- package/src/config/config-builder.js +645 -600
- package/src/config/constants.d.ts +1 -0
- package/src/config/constants.js +44 -23
- package/src/declarations.d.ts +1 -0
- package/src/dev/README.md +24 -0
- package/src/dev/client-bridge-registry.d.ts +5 -0
- package/src/dev/client-bridge-registry.js +10 -0
- package/src/dev/dev-client-ownership.d.ts +7 -0
- package/src/dev/dev-client-ownership.js +8 -0
- package/src/dev/hmr-manager-registry.d.ts +8 -0
- package/src/dev/hmr-manager-registry.js +10 -0
- package/src/dev/host-runtime.d.ts +3 -0
- package/src/dev/host-runtime.js +25 -23
- package/src/dev/runtime-server-started-message.d.ts +2 -0
- package/src/dev/runtime-server-started-message.js +3 -0
- package/src/dev/sc-server.js +106 -103
- package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
- package/src/dev/transform-server/dev-transform-bundler.js +79 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.js +127 -0
- package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
- package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
- package/src/dev/transform-server/dev-transform-server.js +191 -0
- package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-url.js +58 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +28 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.js +166 -0
- package/src/dev/transform-server/index.d.ts +6 -0
- package/src/dev/transform-server/index.js +4 -0
- package/src/dev/transform-server/types.d.ts +15 -0
- package/src/dev/transform-server/types.js +1 -0
- package/src/dev-toolbar/README.md +52 -0
- package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
- package/src/dev-toolbar/define-dev-tool.js +9 -0
- package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
- package/src/dev-toolbar/dev-toolbar-config.js +19 -0
- package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
- package/src/dev-toolbar/dev-toolbar-host.js +117 -0
- package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
- package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
- package/src/dev-toolbar/dev-toolbar-manifest-contract.d.ts +22 -0
- package/src/dev-toolbar/dev-toolbar-manifest-contract.js +2 -0
- package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
- package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
- package/src/dev-toolbar/dev-toolbar-package.d.ts +34 -0
- package/src/dev-toolbar/dev-toolbar-package.js +78 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
- package/src/diagnostics/request-build-dedupe.d.ts +18 -0
- package/src/diagnostics/request-build-dedupe.js +39 -0
- package/src/diagnostics/request-pipeline-metrics.d.ts +38 -0
- package/src/diagnostics/request-pipeline-metrics.js +121 -0
- package/src/diagnostics/startup-trace.d.ts +81 -0
- package/src/diagnostics/startup-trace.js +281 -0
- package/src/eco/README.md +17 -0
- package/src/eco/component-identity.d.ts +13 -0
- package/src/eco/component-identity.js +18 -0
- package/src/eco/eco-declared-component.d.ts +15 -0
- package/src/eco/eco-declared-component.js +23 -0
- package/src/eco/eco.browser.js +63 -70
- package/src/eco/eco.js +163 -97
- package/src/eco/eco.types.d.ts +47 -8
- package/src/eco/eco.types.js +5 -0
- package/src/eco/eco.utils.d.ts +1 -1
- package/src/eco/eco.utils.js +1 -10
- package/src/eco/global-injector-map.js +55 -41
- package/src/eco/lazy-injector-map.js +90 -60
- package/src/eco/module-dependencies.js +52 -44
- package/src/eco/page-layout-normalization.d.ts +21 -0
- package/src/eco/page-layout-normalization.js +69 -0
- package/src/env.d.ts +2 -0
- package/src/errors/http-error.d.ts +8 -0
- package/src/errors/http-error.js +66 -49
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -6
- package/src/errors/locals-access-error.js +5 -8
- package/src/errors/undeclared-component-dependency-error.d.ts +11 -0
- package/src/errors/undeclared-component-dependency-error.js +17 -0
- package/src/global/app-logger.js +3 -6
- package/src/hmr/README.md +21 -0
- package/src/hmr/client/hmr-runtime.js +119 -110
- package/src/hmr/client/module-update.d.ts +13 -0
- package/src/hmr/client/module-update.js +39 -0
- package/src/hmr/hmr-asset-paths.d.ts +14 -0
- package/src/hmr/hmr-asset-paths.js +22 -0
- package/src/hmr/hmr-entrypoint-output.d.ts +21 -0
- package/src/hmr/hmr-entrypoint-output.js +34 -0
- package/src/hmr/hmr-file-change-prep.d.ts +10 -0
- package/src/hmr/hmr-file-change-prep.js +14 -0
- package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
- package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
- package/src/hmr/hmr-runtime-paths.d.ts +10 -0
- package/src/hmr/hmr-runtime-paths.js +13 -0
- package/src/hmr/hmr-strategy.d.ts +9 -0
- package/src/hmr/hmr-strategy.js +113 -42
- package/src/hmr/strategies/default-hmr-strategy.js +55 -33
- package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -97
- package/src/hmr/strategies/js-hmr-strategy.js +107 -167
- package/src/hmr/strategies/server-rendered-template-hmr-strategy.d.ts +17 -0
- package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +35 -0
- package/src/index.browser.d.ts +1 -0
- package/src/index.browser.js +2 -4
- package/src/index.d.ts +4 -1
- package/src/index.js +7 -21
- package/src/islands/README.md +25 -0
- package/src/islands/island-host.d.ts +37 -0
- package/src/islands/island-host.js +55 -0
- package/src/plugins/README.md +2 -1
- package/src/plugins/alias-resolver-cache.d.ts +6 -9
- package/src/plugins/alias-resolver-cache.js +114 -97
- package/src/plugins/alias-resolver-plugin.d.ts +3 -3
- package/src/plugins/alias-resolver-plugin.js +35 -62
- package/src/plugins/define-integration.d.ts +26 -0
- package/src/plugins/define-integration.js +20 -0
- package/src/plugins/eco-component-meta-plugin.d.ts +6 -102
- package/src/plugins/eco-component-meta-plugin.js +123 -162
- package/src/plugins/foreign-jsx-override-plugin.d.ts +1 -1
- package/src/plugins/foreign-jsx-override-plugin.js +49 -37
- package/src/plugins/integration-plugin.d.ts +24 -6
- package/src/plugins/integration-plugin.js +212 -195
- package/src/plugins/jsx-import-source.utils.d.ts +8 -0
- package/src/plugins/jsx-import-source.utils.js +21 -0
- package/src/plugins/package-specifier.d.ts +12 -0
- package/src/plugins/package-specifier.js +33 -0
- package/src/plugins/processor.d.ts +66 -12
- package/src/plugins/processor.js +168 -137
- package/src/plugins/runtime-capability.js +1 -0
- package/src/plugins/source-transform.d.ts +32 -1
- package/src/plugins/source-transform.js +112 -60
- package/src/plugins/tsconfig-import-resolver.d.ts +37 -0
- package/src/plugins/tsconfig-import-resolver.js +262 -0
- package/src/route-renderer/GRAPH.md +24 -30
- package/src/route-renderer/README.md +52 -32
- package/src/route-renderer/orchestration/document-shell/document-shell-render.service.d.ts +107 -0
- package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +155 -0
- package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.d.ts +20 -0
- package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +37 -0
- package/src/route-renderer/orchestration/{component-render-context.d.ts → foreign-child/component-render-context.d.ts} +8 -15
- package/src/route-renderer/orchestration/foreign-child/component-render-context.js +196 -0
- package/src/route-renderer/orchestration/{render-output.utils.d.ts → foreign-child/foreign-child-output.utils.d.ts} +20 -7
- package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +195 -0
- package/src/route-renderer/orchestration/{foreign-subtree-execution.service.d.ts → foreign-child/foreign-subtree-execution.service.d.ts} +64 -34
- package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +354 -0
- package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.d.ts +19 -0
- package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +36 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +37 -153
- package/src/route-renderer/orchestration/integration-renderer.js +803 -1008
- package/src/route-renderer/orchestration/integration-renderer.test-fixtures.d.ts +75 -0
- package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +173 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.d.ts +10 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +132 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph.d.ts +34 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph.js +89 -0
- package/src/route-renderer/orchestration/{ownership-validation.service.d.ts → ownership-graph/ownership-validation.service.d.ts} +6 -2
- package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +77 -0
- package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.d.ts +7 -0
- package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +30 -0
- package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.d.ts +15 -0
- package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.js +9 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.d.ts +5 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.js +30 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.d.ts +12 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +32 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +126 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +542 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.d.ts +47 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +248 -0
- package/src/route-renderer/orchestration/{processed-asset-dedupe.d.ts → page-browser-graph/processed-asset-dedupe.d.ts} +1 -1
- package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +23 -0
- package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.d.ts +29 -0
- package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.js +54 -0
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +38 -0
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +26 -0
- package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.d.ts +6 -0
- package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +25 -0
- package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.d.ts +15 -0
- package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +43 -0
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +25 -0
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +44 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.d.ts +26 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +44 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.d.ts +4 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +30 -0
- package/src/route-renderer/orchestration/{route-render-orchestrator.d.ts → route-pipeline/route-render-orchestrator.d.ts} +24 -54
- package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +215 -0
- package/src/{integrations/ghtml/ghtml-renderer.d.ts → route-renderer/orchestration/string-markup-renderer.d.ts} +8 -10
- package/src/route-renderer/orchestration/string-markup-renderer.js +52 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +121 -121
- package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
- package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +1 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +64 -51
- package/src/route-renderer/page-loading/file-scoped-dependency-components.d.ts +42 -0
- package/src/route-renderer/page-loading/file-scoped-dependency-components.js +94 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +47 -36
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +39 -28
- package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
- package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
- package/src/route-renderer/page-loading/page-module-loader.d.ts +2 -1
- package/src/route-renderer/page-loading/page-module-loader.js +136 -124
- package/src/route-renderer/page-loading/resolved-page-dependencies.d.ts +12 -0
- package/src/route-renderer/page-loading/resolved-page-dependencies.js +38 -0
- package/src/route-renderer/route-renderer.js +74 -76
- package/src/router/README.md +31 -0
- package/src/router/client/link-intent.d.ts +11 -21
- package/src/router/client/link-intent.js +56 -30
- package/src/router/client/link-intent.test.browser.js +50 -39
- package/src/router/client/link-navigation-policy.d.ts +45 -0
- package/src/router/client/link-navigation-policy.js +122 -0
- package/src/router/client/link-navigation-policy.test.browser.d.ts +1 -0
- package/src/router/client/link-navigation-policy.test.browser.js +82 -0
- package/src/router/client/navigation-coordinator.d.ts +1 -1
- package/src/router/client/navigation-coordinator.js +235 -211
- package/src/router/client/navigation-lifecycle.d.ts +55 -0
- package/src/router/client/navigation-lifecycle.js +50 -0
- package/src/router/client/navigation-lifecycle.test.browser.d.ts +1 -0
- package/src/router/client/navigation-lifecycle.test.browser.js +118 -0
- package/src/router/server/route-registry.js +237 -242
- package/src/services/README.md +5 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +13 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -50
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +12 -1
- package/src/services/assets/asset-processing-service/asset-processing.service.js +335 -268
- package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
- package/src/services/assets/asset-processing-service/assets.types.d.ts +1 -1
- package/src/services/assets/asset-processing-service/assets.types.js +1 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +1 -1
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -46
- package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.d.ts +52 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +115 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -58
- package/src/services/assets/asset-processing-service/finalize-processed-asset.d.ts +3 -0
- package/src/services/assets/asset-processing-service/finalize-processed-asset.js +5 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +2 -1
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +85 -60
- package/src/services/assets/asset-processing-service/index.d.ts +2 -0
- package/src/services/assets/asset-processing-service/index.js +8 -6
- package/src/services/assets/asset-processing-service/inline-content-script-body.d.ts +11 -0
- package/src/services/assets/asset-processing-service/inline-content-script-body.js +23 -0
- package/src/services/assets/asset-processing-service/materialize-content-script-asset.d.ts +9 -0
- package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +22 -0
- package/src/services/assets/asset-processing-service/page-package.js +70 -72
- package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
- package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -2
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -130
- 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 +8 -0
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +111 -111
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -1
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -94
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -135
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -3
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +26 -57
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -3
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +33 -67
- package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.d.ts +2 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +44 -0
- package/src/services/assets/asset-processing-service/resolve-integration-plugin.d.ts +4 -0
- package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +15 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -1
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -44
- package/src/services/assets/browser-bundle.service.d.ts +27 -30
- package/src/services/assets/browser-bundle.service.js +54 -46
- package/src/services/assets/browser-runtime-asset-generation.d.ts +17 -0
- package/src/services/assets/browser-runtime-asset-generation.js +28 -0
- package/src/services/cache/cache.types.d.ts +4 -2
- package/src/services/cache/cache.types.js +5 -0
- package/src/services/cache/html-page-cache-dependency-index.d.ts +34 -0
- package/src/services/cache/html-page-cache-dependency-index.js +88 -0
- package/src/services/cache/index.d.ts +2 -0
- package/src/services/cache/index.js +8 -7
- package/src/services/cache/memory-cache-store.js +101 -89
- package/src/services/cache/page-cache-service.d.ts +31 -1
- package/src/services/cache/page-cache-service.js +237 -150
- package/src/services/cache/page-request-cache-coordinator.service.d.ts +2 -1
- package/src/services/cache/page-request-cache-coordinator.service.js +112 -102
- package/src/services/html/html-rewriter-provider.service.js +61 -61
- package/src/services/html/html-transformer.service.js +249 -266
- package/src/services/invalidation/development-invalidation.service.d.ts +15 -1
- package/src/services/invalidation/development-invalidation.service.js +241 -204
- package/src/services/module-loading/README.md +9 -6
- package/src/services/module-loading/app-module-loader.service.js +1 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +8 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +104 -106
- package/src/services/module-loading/collection-server-module-build.service.d.ts +19 -0
- package/src/services/module-loading/collection-server-module-build.service.js +83 -0
- package/src/services/module-loading/host-module-loader-registry.js +6 -11
- package/src/services/module-loading/module-loading-types.js +1 -0
- package/src/services/module-loading/page-module-import.service.d.ts +7 -12
- package/src/services/module-loading/page-module-import.service.js +232 -206
- package/src/services/module-loading/route-module-build-cache-registry.d.ts +2 -0
- package/src/services/module-loading/route-module-build-cache-registry.js +59 -33
- package/src/services/module-loading/route-module-build-cache.js +3 -38
- package/src/services/module-loading/route-module-build-cache.store.d.ts +10 -0
- package/src/services/module-loading/route-module-build-cache.store.js +213 -196
- package/src/services/module-loading/route-module-build-manifest.d.ts +10 -14
- package/src/services/module-loading/route-module-build-manifest.js +54 -118
- package/src/services/module-loading/route-module-dependency-hasher.d.ts +2 -2
- package/src/services/module-loading/route-module-dependency-hasher.js +136 -109
- package/src/services/module-loading/server-module-transpiler.service.d.ts +1 -3
- package/src/services/module-loading/server-module-transpiler.service.js +65 -62
- package/src/services/module-loading/source-module-support.js +15 -7
- package/src/services/runtime-state/dev-graph.service.js +165 -157
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
- package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
- package/src/services/validation/schema-validation-service.d.ts +1 -4
- package/src/services/validation/schema-validation-service.js +156 -95
- package/src/services/validation/standard-schema.types.d.ts +9 -62
- package/src/services/validation/standard-schema.types.js +1 -0
- package/src/services/validation/validate-standard-schema.d.ts +7 -0
- package/src/services/validation/validate-standard-schema.js +14 -0
- package/src/static-site-generator/README.md +10 -2
- package/src/static-site-generator/production-page-browser-graph-prebuild.d.ts +32 -0
- package/src/static-site-generator/production-page-browser-graph-prebuild.js +57 -0
- package/src/static-site-generator/sitemap-routes.d.ts +14 -0
- package/src/static-site-generator/sitemap-routes.js +36 -0
- package/src/static-site-generator/sitemap.d.ts +15 -0
- package/src/static-site-generator/sitemap.js +42 -0
- package/src/static-site-generator/static-build-invalidation.d.ts +2 -2
- package/src/static-site-generator/static-build-invalidation.js +33 -74
- package/src/static-site-generator/static-export-context.d.ts +9 -1
- package/src/static-site-generator/static-export-context.js +1 -0
- package/src/static-site-generator/static-site-generator.d.ts +27 -6
- package/src/static-site-generator/static-site-generator.js +528 -389
- package/src/types/internal-types.d.ts +55 -17
- package/src/types/internal-types.js +1 -0
- package/src/types/public-types.d.ts +236 -95
- package/src/types/public-types.js +1 -0
- package/src/utils/deep-merge.js +39 -26
- package/src/utils/ecopages-route-info.d.ts +26 -0
- package/src/utils/ecopages-route-info.js +30 -0
- package/src/utils/hash.js +3 -6
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +22 -5
- package/src/utils/invariant.js +11 -10
- package/src/utils/locals-utils.js +32 -22
- package/src/utils/parse-cli-args.d.ts +1 -0
- package/src/utils/parse-cli-args.js +73 -62
- package/src/utils/path-pattern.d.ts +23 -0
- package/src/utils/path-pattern.js +42 -0
- package/src/utils/path-utils.module.js +8 -11
- package/src/utils/resolve-entry-file.js +70 -38
- package/src/utils/resolve-work-dir.js +23 -27
- package/src/utils/runtime.js +24 -33
- package/src/utils/server-utils.module.d.ts +3 -2
- package/src/utils/server-utils.module.js +60 -53
- package/src/utils/static-file-extensions.d.ts +12 -0
- package/src/utils/static-file-extensions.js +54 -0
- package/src/watchers/project-watcher-ignore.d.ts +11 -0
- package/src/watchers/project-watcher-ignore.js +17 -0
- package/src/watchers/project-watcher.d.ts +21 -6
- package/src/watchers/project-watcher.js +402 -277
- package/src/watchers/project-watcher.test-helpers.js +45 -50
- package/src/adapters/shared/api-response.js +0 -96
- package/src/adapters/shared/application-adapter.js +0 -90
- package/src/adapters/shared/bun-user-websocket-lifecycle.js +0 -102
- package/src/adapters/shared/copy-runtime-public-dir.js +0 -24
- package/src/adapters/shared/define-api-handler.d.ts +0 -25
- package/src/adapters/shared/define-api-handler.js +0 -15
- package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
- package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
- package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
- package/src/adapters/shared/fs-server-response-factory.js +0 -81
- package/src/adapters/shared/fs-server-response-matcher.js +0 -186
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
- package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
- package/src/adapters/shared/hmr-html-response.js +0 -33
- package/src/adapters/shared/node-http-websocket-upgrades.js +0 -125
- package/src/adapters/shared/render-context.js +0 -93
- package/src/adapters/shared/runtime-app-bootstrap.js +0 -41
- package/src/adapters/shared/runtime-host.js +0 -0
- package/src/adapters/shared/server-adapter.js +0 -436
- package/src/adapters/shared/server-route-handler.js +0 -111
- package/src/adapters/shared/server-static-builder.js +0 -202
- package/src/adapters/shared/shared-hmr-manager.d.ts +0 -61
- package/src/adapters/shared/shared-hmr-manager.js +0 -273
- package/src/adapters/shared/static-preview-host.js +0 -0
- package/src/adapters/shared/websocket-lifecycle.d.ts +0 -3
- package/src/adapters/shared/websocket-lifecycle.js +0 -19
- package/src/build/browser-runtime-manifest.js +0 -61
- package/src/build/browser-runtime-plugin-helpers.js +0 -14
- package/src/build/browser-runtime-plugin.js +0 -173
- package/src/build/build-input-fingerprint.js +0 -31
- package/src/build/build-manifest.d.ts +0 -33
- package/src/build/build-manifest.js +0 -49
- package/src/build/build-types.js +0 -0
- package/src/build/jsx-ownership-plugins.d.ts +0 -10
- package/src/build/jsx-ownership-plugins.js +0 -17
- package/src/build/pages-unified-graph-build.js +0 -208
- package/src/build/parallel-build-executor.js +0 -52
- package/src/build/rolldown-adapter-helpers.js +0 -309
- package/src/build/rolldown-build-adapter.js +0 -67
- package/src/build/rolldown-build-invocation-metrics.js +0 -43
- package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
- package/src/build/rolldown-dev-build-adapter.js +0 -182
- package/src/build/rolldown-plugin-bridge.js +0 -199
- package/src/build/runtime-build-executor.d.ts +0 -15
- package/src/build/runtime-build-executor.js +0 -43
- package/src/build/runtime-build-output-normalizer.js +0 -203
- package/src/build/serialized-build-executor.js +0 -63
- package/src/build/server-entry-build-cache.js +0 -169
- package/src/build/server-side-css-shim-plugin.js +0 -35
- package/src/hmr/hmr.postcss.test.e2e.js +0 -31
- package/src/hmr/hmr.test.e2e.js +0 -54
- package/src/integrations/ghtml/ghtml-renderer.js +0 -57
- package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
- package/src/integrations/ghtml/ghtml.constants.js +0 -4
- package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
- package/src/integrations/ghtml/ghtml.plugin.js +0 -20
- package/src/route-renderer/orchestration/component-render-context.js +0 -147
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
- package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -231
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
- package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
- package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
- package/src/route-renderer/orchestration/render-output.utils.js +0 -175
- package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -578
- package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
- package/src/route-renderer/orchestration/template-serialization.js +0 -45
- package/src/utils/html.d.ts +0 -1
- package/src/utils/html.js +0 -4
- /package/src/adapters/{shared → bun}/bun-user-websocket-lifecycle.d.ts +0 -0
- /package/src/adapters/shared/{copy-runtime-public-dir.d.ts → runtime/copy-runtime-public-dir.d.ts} +0 -0
- /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
- /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
- /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
- /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
- /package/src/build/{runtime-build-output-normalizer.d.ts → rolldown/runtime-build-output-normalizer.d.ts} +0 -0
- /package/src/build/{server-side-css-shim-plugin.d.ts → rolldown/server-side-css-shim-plugin.d.ts} +0 -0
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
|
-
import { readFileSync } from "node:fs";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { collectBrowserRuntimeImportRewriteMap, rewriteBrowserRuntimeImports } from "./browser-runtime-plugin.js";
|
|
5
|
-
import { createServerSideCssShimPlugin } from "./server-side-css-shim-plugin.js";
|
|
6
|
-
import { createRolldownPluginBridge } from "./rolldown-plugin-bridge.js";
|
|
7
|
-
import {
|
|
8
|
-
isDeclaredAppPackageImport,
|
|
9
|
-
isWorkspacePackageImport,
|
|
10
|
-
normalizeNodeRuntimeBuildOutputs
|
|
11
|
-
} from "./runtime-build-output-normalizer.js";
|
|
12
|
-
const corePackageRequire = createRequire(new URL("../../package.json", import.meta.url));
|
|
13
|
-
let corePackageNames;
|
|
14
|
-
function getCorePackageNames() {
|
|
15
|
-
if (corePackageNames) {
|
|
16
|
-
return corePackageNames;
|
|
17
|
-
}
|
|
18
|
-
const packageJsonPath = new URL("../../package.json", import.meta.url);
|
|
19
|
-
corePackageNames = /* @__PURE__ */ new Set();
|
|
20
|
-
try {
|
|
21
|
-
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
22
|
-
for (const field of ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"]) {
|
|
23
|
-
const entries = packageJson[field];
|
|
24
|
-
if (!entries || typeof entries !== "object") {
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
for (const name of Object.keys(entries)) {
|
|
28
|
-
corePackageNames.add(name);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
} catch {
|
|
32
|
-
}
|
|
33
|
-
return corePackageNames;
|
|
34
|
-
}
|
|
35
|
-
function isCoreDeclaredPackageImport(specifier) {
|
|
36
|
-
const name = specifier.startsWith("@") ? specifier.split("/").slice(0, 2).join("/") : specifier.split("/")[0] ?? specifier;
|
|
37
|
-
return getCorePackageNames().has(name);
|
|
38
|
-
}
|
|
39
|
-
function transpileProfileToOptions(profile) {
|
|
40
|
-
switch (profile) {
|
|
41
|
-
case "browser-script":
|
|
42
|
-
case "hmr-runtime":
|
|
43
|
-
case "hmr-entrypoint":
|
|
44
|
-
return {
|
|
45
|
-
target: "browser",
|
|
46
|
-
format: "esm",
|
|
47
|
-
sourcemap: "none"
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function isPackageImport(id) {
|
|
52
|
-
return !id.startsWith(".") && !path.isAbsolute(id) && !id.startsWith("/") && !id.startsWith("node:") && !id.startsWith("@/") && !id.startsWith("~/") && !id.startsWith("#") && !id.includes(":");
|
|
53
|
-
}
|
|
54
|
-
function tryResolveModule(id, resolver) {
|
|
55
|
-
try {
|
|
56
|
-
return resolver.resolve(id);
|
|
57
|
-
} catch {
|
|
58
|
-
return void 0;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function getAppRootRequire(cache, contextRoot) {
|
|
62
|
-
const cacheKey = path.resolve(contextRoot);
|
|
63
|
-
let req = cache.get(cacheKey);
|
|
64
|
-
if (!req) {
|
|
65
|
-
req = createRequire(path.join(cacheKey, "package.json"));
|
|
66
|
-
cache.set(cacheKey, req);
|
|
67
|
-
}
|
|
68
|
-
return req;
|
|
69
|
-
}
|
|
70
|
-
function shouldBundlePackageImport(id, contextRoot, appRootRequireCache) {
|
|
71
|
-
if (isWorkspacePackageImport(id, contextRoot)) {
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
if (isDeclaredAppPackageImport(id, contextRoot)) {
|
|
75
|
-
const appRootRequire = getAppRootRequire(appRootRequireCache, contextRoot);
|
|
76
|
-
const appResolvedPath = tryResolveModule(id, appRootRequire);
|
|
77
|
-
return Boolean(appResolvedPath && /\.(?:[cm]?ts|tsx|jsx)$/u.test(appResolvedPath));
|
|
78
|
-
}
|
|
79
|
-
if (isCoreDeclaredPackageImport(id)) {
|
|
80
|
-
const coreResolvedPath = tryResolveModule(id, corePackageRequire);
|
|
81
|
-
if (coreResolvedPath && !/\.(?:[cm]?ts|tsx|jsx)$/u.test(coreResolvedPath)) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
function createExternalMatcher(options, appRootRequireCache) {
|
|
88
|
-
const explicitExternals = new Set(options.external ?? []);
|
|
89
|
-
const externalPackages = options.externalPackages === true;
|
|
90
|
-
const contextRoot = options.root ? path.resolve(options.root) : process.cwd();
|
|
91
|
-
return (id) => {
|
|
92
|
-
if (explicitExternals.has(id)) {
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
if (!externalPackages || !isPackageImport(id)) {
|
|
96
|
-
return false;
|
|
97
|
-
}
|
|
98
|
-
return !shouldBundlePackageImport(id, contextRoot, appRootRequireCache);
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
function mapRolldownFormat(value) {
|
|
102
|
-
switch (value) {
|
|
103
|
-
case "cjs":
|
|
104
|
-
return "cjs";
|
|
105
|
-
case "iife":
|
|
106
|
-
return "iife";
|
|
107
|
-
default:
|
|
108
|
-
return "esm";
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
function mapRolldownPlatform(value) {
|
|
112
|
-
if (value === "browser") return "browser";
|
|
113
|
-
if (value === "node") return "node";
|
|
114
|
-
if (value && /^(?:es\d+|chrome\d+|edge\d+|firefox\d+|safari\d+|hermes|deno\d+|ios\d+)$/.test(value)) {
|
|
115
|
-
return "node";
|
|
116
|
-
}
|
|
117
|
-
return "neutral";
|
|
118
|
-
}
|
|
119
|
-
function mapRolldownSourcemap(value) {
|
|
120
|
-
switch (value) {
|
|
121
|
-
case "none":
|
|
122
|
-
return false;
|
|
123
|
-
case "inline":
|
|
124
|
-
return "inline";
|
|
125
|
-
case "external":
|
|
126
|
-
case "linked":
|
|
127
|
-
return "hidden";
|
|
128
|
-
default:
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
function mapRolldownJsx(jsx) {
|
|
133
|
-
const { factory, fragment, ...rest } = jsx;
|
|
134
|
-
const out = { ...rest };
|
|
135
|
-
if (factory !== void 0) {
|
|
136
|
-
out.pragma = factory;
|
|
137
|
-
}
|
|
138
|
-
if (fragment !== void 0) {
|
|
139
|
-
out.pragmaFrag = fragment;
|
|
140
|
-
}
|
|
141
|
-
return out;
|
|
142
|
-
}
|
|
143
|
-
function toEntryFileNamesPattern(value) {
|
|
144
|
-
if (!value) {
|
|
145
|
-
return void 0;
|
|
146
|
-
}
|
|
147
|
-
const literal = !/\[[^\]]+\]/u.test(value);
|
|
148
|
-
const stripped = value.replaceAll(/\.?\[ext\]/g, "");
|
|
149
|
-
if (stripped.length === 0) {
|
|
150
|
-
return void 0;
|
|
151
|
-
}
|
|
152
|
-
return { pattern: stripped, literal };
|
|
153
|
-
}
|
|
154
|
-
function getJavaScriptOutExtension(options, literal) {
|
|
155
|
-
if (literal) {
|
|
156
|
-
return void 0;
|
|
157
|
-
}
|
|
158
|
-
if (options.target === "browser") {
|
|
159
|
-
return ".js";
|
|
160
|
-
}
|
|
161
|
-
if (options.format === "cjs") {
|
|
162
|
-
return ".cjs";
|
|
163
|
-
}
|
|
164
|
-
return ".mjs";
|
|
165
|
-
}
|
|
166
|
-
function normalizeOutputPath(outputPath, outdir) {
|
|
167
|
-
return path.isAbsolute(outputPath) ? path.normalize(outputPath) : path.normalize(path.join(outdir, outputPath));
|
|
168
|
-
}
|
|
169
|
-
function normalizeModulePath(modulePath, contextRoot) {
|
|
170
|
-
return path.isAbsolute(modulePath) ? path.normalize(modulePath) : path.normalize(path.resolve(contextRoot, modulePath));
|
|
171
|
-
}
|
|
172
|
-
function extractDependencyGraph(chunks, contextRoot) {
|
|
173
|
-
const entrypoints = {};
|
|
174
|
-
for (const chunk of chunks) {
|
|
175
|
-
if (!chunk.facadeModuleId) {
|
|
176
|
-
continue;
|
|
177
|
-
}
|
|
178
|
-
const entrypointPath = normalizeModulePath(chunk.facadeModuleId, contextRoot);
|
|
179
|
-
entrypoints[entrypointPath] = Array.from(
|
|
180
|
-
/* @__PURE__ */ new Set([entrypointPath, ...chunk.moduleIds.map((id) => normalizeModulePath(id, contextRoot))])
|
|
181
|
-
);
|
|
182
|
-
}
|
|
183
|
-
return { entrypoints };
|
|
184
|
-
}
|
|
185
|
-
function toBuildLogs(error) {
|
|
186
|
-
if (error instanceof Error) {
|
|
187
|
-
return [{ message: error.message }];
|
|
188
|
-
}
|
|
189
|
-
return [{ message: "Unknown build error" }];
|
|
190
|
-
}
|
|
191
|
-
function resolveRolldownOptions(options, contextRoot, outdir, appRootRequireCache) {
|
|
192
|
-
const external = createExternalMatcher(options, appRootRequireCache);
|
|
193
|
-
const transformOptions = {};
|
|
194
|
-
if (options.define) {
|
|
195
|
-
transformOptions.define = options.define;
|
|
196
|
-
}
|
|
197
|
-
if (options.jsx) {
|
|
198
|
-
transformOptions.jsx = mapRolldownJsx(options.jsx);
|
|
199
|
-
}
|
|
200
|
-
if (options.target && /^(?:es|chrome|edge|firefox|safari|hermes|deno|ios)/.test(options.target)) {
|
|
201
|
-
transformOptions.target = options.target;
|
|
202
|
-
}
|
|
203
|
-
const bundlePlugins = options.plugins ?? [];
|
|
204
|
-
const appPlugins = createRolldownPluginBridge(bundlePlugins, contextRoot);
|
|
205
|
-
const allPlugins = [...options.target !== "browser" ? [createServerSideCssShimPlugin()] : [], ...appPlugins];
|
|
206
|
-
const inputOptions = {
|
|
207
|
-
input: options.entrypoints,
|
|
208
|
-
cwd: contextRoot,
|
|
209
|
-
external,
|
|
210
|
-
platform: mapRolldownPlatform(options.target),
|
|
211
|
-
transform: Object.keys(transformOptions).length > 0 ? transformOptions : void 0,
|
|
212
|
-
resolve: options.conditions ? { conditionNames: options.conditions } : void 0,
|
|
213
|
-
treeshake: typeof options.treeshaking === "boolean" ? options.treeshaking : true,
|
|
214
|
-
...process.env.ECOPAGES_PROFILE_BUILD === "1" ? {} : {
|
|
215
|
-
checks: {
|
|
216
|
-
pluginTimings: false
|
|
217
|
-
}
|
|
218
|
-
},
|
|
219
|
-
experimental: {
|
|
220
|
-
nativeMagicString: true
|
|
221
|
-
},
|
|
222
|
-
plugins: allPlugins
|
|
223
|
-
};
|
|
224
|
-
const entryFileNames = toEntryFileNamesPattern(options.naming);
|
|
225
|
-
const jsExtension = getJavaScriptOutExtension(options, entryFileNames?.literal ?? false);
|
|
226
|
-
const finalEntryFileNames = entryFileNames ? jsExtension ? `${entryFileNames.pattern}${jsExtension}` : entryFileNames.pattern : jsExtension ? `[name]${jsExtension}` : "[name]";
|
|
227
|
-
const outputOptions = {
|
|
228
|
-
dir: outdir,
|
|
229
|
-
format: mapRolldownFormat(options.format),
|
|
230
|
-
minify: !!options.minify,
|
|
231
|
-
entryFileNames: finalEntryFileNames,
|
|
232
|
-
chunkFileNames: "[name]-[hash].js",
|
|
233
|
-
assetFileNames: "[name]-[hash][extname]",
|
|
234
|
-
sourcemap: mapRolldownSourcemap(options.sourcemap)
|
|
235
|
-
};
|
|
236
|
-
return { inputOptions, outputOptions };
|
|
237
|
-
}
|
|
238
|
-
function rewriteBrowserRuntimeImportsInOutputs(result, contextRoot, plugins) {
|
|
239
|
-
if (!result.success || result.outputs.length === 0) {
|
|
240
|
-
return result;
|
|
241
|
-
}
|
|
242
|
-
const specifierMap = collectBrowserRuntimeImportRewriteMap(plugins);
|
|
243
|
-
if (specifierMap.size === 0) {
|
|
244
|
-
return result;
|
|
245
|
-
}
|
|
246
|
-
const moduleRequireFromContext = createRequire(path.join(contextRoot, "package.json"));
|
|
247
|
-
const fs = moduleRequireFromContext("node:fs");
|
|
248
|
-
const cacheFingerprint = `${Array.from(specifierMap.entries()).sort().join("|")}`;
|
|
249
|
-
for (const output of result.outputs) {
|
|
250
|
-
if (!/\.(?:[cm]?js)$/u.test(output.path)) {
|
|
251
|
-
continue;
|
|
252
|
-
}
|
|
253
|
-
const code = fs.readFileSync(output.path, "utf-8");
|
|
254
|
-
const contentKey = `${cacheFingerprint}::${output.path}::${djb2(code)}`;
|
|
255
|
-
if (rewriteCache.has(contentKey)) {
|
|
256
|
-
continue;
|
|
257
|
-
}
|
|
258
|
-
const rewritten = rewriteBrowserRuntimeImports(code, specifierMap, output.path);
|
|
259
|
-
if (rewritten !== code) {
|
|
260
|
-
fs.writeFileSync(output.path, rewritten);
|
|
261
|
-
}
|
|
262
|
-
rewriteCache.add(contentKey);
|
|
263
|
-
}
|
|
264
|
-
return result;
|
|
265
|
-
}
|
|
266
|
-
const rewriteCache = /* @__PURE__ */ new Set();
|
|
267
|
-
function djb2(input) {
|
|
268
|
-
let hash = 5381;
|
|
269
|
-
for (let i = 0; i < input.length; i++) {
|
|
270
|
-
hash = (hash << 5) + hash + input.charCodeAt(i) | 0;
|
|
271
|
-
}
|
|
272
|
-
return hash.toString(36);
|
|
273
|
-
}
|
|
274
|
-
function clearRewriteCacheForTests() {
|
|
275
|
-
rewriteCache.clear();
|
|
276
|
-
}
|
|
277
|
-
function rewriteNodeRuntimeImportsInOutputs(result, contextRoot) {
|
|
278
|
-
if (!result.success || result.outputs.length === 0) {
|
|
279
|
-
return result;
|
|
280
|
-
}
|
|
281
|
-
normalizeNodeRuntimeBuildOutputs(
|
|
282
|
-
result.outputs.map((output) => output.path),
|
|
283
|
-
contextRoot
|
|
284
|
-
);
|
|
285
|
-
return result;
|
|
286
|
-
}
|
|
287
|
-
function buildResultFromRolldownOutput(output, outdir, contextRoot) {
|
|
288
|
-
const outputs = output.output.map((entry) => ({
|
|
289
|
-
path: normalizeOutputPath(entry.fileName, outdir)
|
|
290
|
-
}));
|
|
291
|
-
const entryChunks = output.output.filter((entry) => entry.type === "chunk" && entry.isEntry);
|
|
292
|
-
const dependencyGraph = entryChunks.length > 0 ? extractDependencyGraph(entryChunks, contextRoot) : void 0;
|
|
293
|
-
return {
|
|
294
|
-
success: true,
|
|
295
|
-
logs: [],
|
|
296
|
-
outputs,
|
|
297
|
-
dependencyGraph
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
export {
|
|
301
|
-
buildResultFromRolldownOutput,
|
|
302
|
-
clearRewriteCacheForTests,
|
|
303
|
-
extractDependencyGraph,
|
|
304
|
-
resolveRolldownOptions,
|
|
305
|
-
rewriteBrowserRuntimeImportsInOutputs,
|
|
306
|
-
rewriteNodeRuntimeImportsInOutputs,
|
|
307
|
-
toBuildLogs,
|
|
308
|
-
transpileProfileToOptions
|
|
309
|
-
};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { rolldown } from "rolldown";
|
|
4
|
-
import {
|
|
5
|
-
buildResultFromRolldownOutput,
|
|
6
|
-
resolveRolldownOptions,
|
|
7
|
-
rewriteBrowserRuntimeImportsInOutputs,
|
|
8
|
-
rewriteNodeRuntimeImportsInOutputs,
|
|
9
|
-
toBuildLogs,
|
|
10
|
-
transpileProfileToOptions
|
|
11
|
-
} from "./rolldown-adapter-helpers.js";
|
|
12
|
-
import { recordRolldownBuildInvocation } from "./rolldown-build-invocation-metrics.js";
|
|
13
|
-
const moduleRequire = createRequire(import.meta.url);
|
|
14
|
-
class RolldownBuildAdapter {
|
|
15
|
-
ownership = "rolldown";
|
|
16
|
-
/** Per-adapter require cache, keyed on resolved context root. */
|
|
17
|
-
appRootRequireCache = /* @__PURE__ */ new Map();
|
|
18
|
-
/**
|
|
19
|
-
* Issues one build. Creates a fresh `rolldown()` bundler per call,
|
|
20
|
-
* so no module-graph reuse. For repeated rebuilds on the same
|
|
21
|
-
* entrypoints, use {@link RolldownDevBuildAdapter}.
|
|
22
|
-
*/
|
|
23
|
-
async buildOrThrow(options) {
|
|
24
|
-
recordRolldownBuildInvocation("rolldown");
|
|
25
|
-
const contextRoot = options.root ? path.resolve(options.root) : process.cwd();
|
|
26
|
-
const outdir = path.resolve(options.outdir ?? "dist/assets");
|
|
27
|
-
const plugins = options.plugins ?? [];
|
|
28
|
-
const { inputOptions, outputOptions } = resolveRolldownOptions(
|
|
29
|
-
options,
|
|
30
|
-
contextRoot,
|
|
31
|
-
outdir,
|
|
32
|
-
this.appRootRequireCache
|
|
33
|
-
);
|
|
34
|
-
const bundle = await rolldown(inputOptions);
|
|
35
|
-
const output = await bundle.write(outputOptions);
|
|
36
|
-
await bundle.close();
|
|
37
|
-
const baseResult = buildResultFromRolldownOutput(output, outdir, contextRoot);
|
|
38
|
-
return rewriteNodeRuntimeImportsInOutputs(
|
|
39
|
-
rewriteBrowserRuntimeImportsInOutputs(baseResult, contextRoot, plugins),
|
|
40
|
-
contextRoot
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
async build(options) {
|
|
44
|
-
try {
|
|
45
|
-
return await this.buildOrThrow(options);
|
|
46
|
-
} catch (error) {
|
|
47
|
-
return {
|
|
48
|
-
success: false,
|
|
49
|
-
logs: toBuildLogs(error),
|
|
50
|
-
outputs: []
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
resolve(importPath, rootDir) {
|
|
55
|
-
return moduleRequire.resolve(importPath, { paths: [rootDir] });
|
|
56
|
-
}
|
|
57
|
-
getTranspileOptions(profile) {
|
|
58
|
-
return transpileProfileToOptions(profile);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function createRolldownBuildAdapter() {
|
|
62
|
-
return new RolldownBuildAdapter();
|
|
63
|
-
}
|
|
64
|
-
export {
|
|
65
|
-
RolldownBuildAdapter,
|
|
66
|
-
createRolldownBuildAdapter
|
|
67
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
const invocationCounts = /* @__PURE__ */ new Map();
|
|
2
|
-
let pageModuleBuildInvocations = 0;
|
|
3
|
-
function isRolldownBuildMetricsEnabled() {
|
|
4
|
-
return process.env.ECOPAGES_ROLLDOWN_BUILD_METRICS === "1" || process.env.ECOPAGES_LOGGER_DEBUG === "true";
|
|
5
|
-
}
|
|
6
|
-
function recordRolldownBuildInvocation(adapter = "rolldown") {
|
|
7
|
-
if (!isRolldownBuildMetricsEnabled()) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
invocationCounts.set(adapter, (invocationCounts.get(adapter) ?? 0) + 1);
|
|
11
|
-
}
|
|
12
|
-
function getRolldownBuildInvocationCounts() {
|
|
13
|
-
return Object.fromEntries(invocationCounts);
|
|
14
|
-
}
|
|
15
|
-
function resetRolldownBuildInvocationCounts() {
|
|
16
|
-
invocationCounts.clear();
|
|
17
|
-
pageModuleBuildInvocations = 0;
|
|
18
|
-
}
|
|
19
|
-
function recordPageModuleBuildInvocation() {
|
|
20
|
-
if (!isRolldownBuildMetricsEnabled()) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
pageModuleBuildInvocations += 1;
|
|
24
|
-
}
|
|
25
|
-
function getPageModuleRolldownBuildInvocations() {
|
|
26
|
-
return pageModuleBuildInvocations;
|
|
27
|
-
}
|
|
28
|
-
function getTotalRolldownBuildInvocations() {
|
|
29
|
-
let total = 0;
|
|
30
|
-
for (const count of invocationCounts.values()) {
|
|
31
|
-
total += count;
|
|
32
|
-
}
|
|
33
|
-
return total;
|
|
34
|
-
}
|
|
35
|
-
export {
|
|
36
|
-
getPageModuleRolldownBuildInvocations,
|
|
37
|
-
getRolldownBuildInvocationCounts,
|
|
38
|
-
getTotalRolldownBuildInvocations,
|
|
39
|
-
isRolldownBuildMetricsEnabled,
|
|
40
|
-
recordPageModuleBuildInvocation,
|
|
41
|
-
recordRolldownBuildInvocation,
|
|
42
|
-
resetRolldownBuildInvocationCounts
|
|
43
|
-
};
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DevEngine-backed build adapter for cached incremental rebuilds.
|
|
3
|
-
*
|
|
4
|
-
* @remarks
|
|
5
|
-
* Wraps Rolldown's experimental `DevEngine` to provide cached incremental
|
|
6
|
-
* rebuilds. Unlike the standard `RolldownBuildAdapter` which creates a new
|
|
7
|
-
* bundler for every build, this adapter keeps a `DevEngine` instance alive
|
|
8
|
-
* and reuses the internal module graph, resolver cache, and transform cache
|
|
9
|
-
* across builds.
|
|
10
|
-
*
|
|
11
|
-
* The adapter is designed for the HMR rebuild path where the same entrypoints
|
|
12
|
-
* are rebuilt repeatedly with small changes. For one-off production builds,
|
|
13
|
-
* use `RolldownBuildAdapter` instead.
|
|
14
|
-
*
|
|
15
|
-
* The first build creates the engine and runs it. Subsequent builds with the
|
|
16
|
-
* same plugin/target/format triple reuse the cached engine and call
|
|
17
|
-
* `triggerFullBuild()`. The cache key incorporates the context root, plugin
|
|
18
|
-
* names, target, and format; when any of those change, the cached engine is
|
|
19
|
-
* closed and a new one is created.
|
|
20
|
-
*
|
|
21
|
-
* Call `close()` to release the cached engine and free resources.
|
|
22
|
-
*
|
|
23
|
-
* @module
|
|
24
|
-
*/
|
|
25
|
-
import type { BuildAdapter, BuildOptions, BuildResult, BuildTranspileOptions, BuildTranspileProfile } from './build-adapter.js';
|
|
26
|
-
/**
|
|
27
|
-
* Build adapter backed by Rolldown's DevEngine for cached incremental rebuilds.
|
|
28
|
-
*/
|
|
29
|
-
export declare class RolldownDevBuildAdapter implements BuildAdapter {
|
|
30
|
-
/**
|
|
31
|
-
* `'rolldown-dev'` (not `'rolldown'`) so {@link getBuildAdapterOwnership}
|
|
32
|
-
* round-trips correctly and `createBuildAdapter({ ownership })` can
|
|
33
|
-
* re-select this class.
|
|
34
|
-
*/
|
|
35
|
-
readonly ownership: "rolldown-dev";
|
|
36
|
-
private cachedEngine;
|
|
37
|
-
private engineInstanceCount;
|
|
38
|
-
private readonly pendingBuilds;
|
|
39
|
-
private readonly appRootRequireCache;
|
|
40
|
-
/**
|
|
41
|
-
* Stable key over the inputs that affect the engine configuration.
|
|
42
|
-
* Output paths and entrypoints must participate — HMR registers many
|
|
43
|
-
* distinct script entrypoints with literal naming under the same outdir.
|
|
44
|
-
*/
|
|
45
|
-
private getCacheKey;
|
|
46
|
-
/**
|
|
47
|
-
* Returns the cached engine, creating a new one when the cache
|
|
48
|
-
* key changes. On a cache miss the prior engine is closed and
|
|
49
|
-
* {@link engineInstanceCount} is incremented.
|
|
50
|
-
*/
|
|
51
|
-
private getOrCreateEngine;
|
|
52
|
-
/**
|
|
53
|
-
* Triggers a build on the cached engine and returns the next
|
|
54
|
-
* `RolldownOutput` delivered to `onOutput`.
|
|
55
|
-
*
|
|
56
|
-
* First call after engine creation invokes `engine.run`; subsequent
|
|
57
|
-
* calls invoke `engine.triggerFullBuild` and reuse the cached
|
|
58
|
-
* module graph, resolver, and transform caches.
|
|
59
|
-
*
|
|
60
|
-
* If the trigger itself throws, the queued build is removed so
|
|
61
|
-
* the next `build()` does not consume a stale slot.
|
|
62
|
-
*/
|
|
63
|
-
private runBuild;
|
|
64
|
-
/** Throws on error; see {@link build} for the no-throw variant. */
|
|
65
|
-
buildOrThrow(options: BuildOptions): Promise<BuildResult>;
|
|
66
|
-
build(options: BuildOptions): Promise<BuildResult>;
|
|
67
|
-
resolve(importPath: string, rootDir: string): string;
|
|
68
|
-
getTranspileOptions(profile: BuildTranspileProfile): BuildTranspileOptions;
|
|
69
|
-
/**
|
|
70
|
-
* Closes the cached DevEngine and rejects any in-flight builds
|
|
71
|
-
* with `'DevBuildAdapter closed'`.
|
|
72
|
-
*
|
|
73
|
-
* @remarks
|
|
74
|
-
* Not on the {@link BuildAdapter} interface, so it is only
|
|
75
|
-
* reachable through the concrete class. The adapter is meant to
|
|
76
|
-
* live for the process lifetime; this is for explicit teardown.
|
|
77
|
-
*/
|
|
78
|
-
close(): Promise<void>;
|
|
79
|
-
/** Test-only: number of engines created over the adapter's lifetime. */
|
|
80
|
-
getEngineInstanceCountForTests(): number;
|
|
81
|
-
}
|
|
82
|
-
export declare function createRolldownDevBuildAdapter(): RolldownDevBuildAdapter;
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { dev } from "rolldown/experimental";
|
|
4
|
-
import {
|
|
5
|
-
buildResultFromRolldownOutput,
|
|
6
|
-
resolveRolldownOptions,
|
|
7
|
-
rewriteBrowserRuntimeImportsInOutputs,
|
|
8
|
-
toBuildLogs,
|
|
9
|
-
transpileProfileToOptions
|
|
10
|
-
} from "./rolldown-adapter-helpers.js";
|
|
11
|
-
import { recordRolldownBuildInvocation } from "./rolldown-build-invocation-metrics.js";
|
|
12
|
-
const moduleRequire = createRequire(import.meta.url);
|
|
13
|
-
function normalizeEntrypointList(entrypoints) {
|
|
14
|
-
if (Array.isArray(entrypoints)) {
|
|
15
|
-
return entrypoints.map((entrypoint) => path.resolve(entrypoint)).sort();
|
|
16
|
-
}
|
|
17
|
-
if (entrypoints && typeof entrypoints === "object") {
|
|
18
|
-
return Object.values(entrypoints).map((entrypoint) => path.resolve(entrypoint)).sort();
|
|
19
|
-
}
|
|
20
|
-
return [];
|
|
21
|
-
}
|
|
22
|
-
class RolldownDevBuildAdapter {
|
|
23
|
-
/**
|
|
24
|
-
* `'rolldown-dev'` (not `'rolldown'`) so {@link getBuildAdapterOwnership}
|
|
25
|
-
* round-trips correctly and `createBuildAdapter({ ownership })` can
|
|
26
|
-
* re-select this class.
|
|
27
|
-
*/
|
|
28
|
-
ownership = "rolldown-dev";
|
|
29
|
-
cachedEngine;
|
|
30
|
-
engineInstanceCount = 0;
|
|
31
|
-
pendingBuilds = [];
|
|
32
|
-
appRootRequireCache = /* @__PURE__ */ new Map();
|
|
33
|
-
/**
|
|
34
|
-
* Stable key over the inputs that affect the engine configuration.
|
|
35
|
-
* Output paths and entrypoints must participate — HMR registers many
|
|
36
|
-
* distinct script entrypoints with literal naming under the same outdir.
|
|
37
|
-
*/
|
|
38
|
-
getCacheKey(options, contextRoot) {
|
|
39
|
-
const pluginNames = (options.plugins ?? []).map((plugin) => plugin.name).sort().join(":");
|
|
40
|
-
const outdir = path.resolve(options.outdir ?? "dist/assets");
|
|
41
|
-
const entrypoints = normalizeEntrypointList(options.entrypoints).join("|");
|
|
42
|
-
return [
|
|
43
|
-
contextRoot,
|
|
44
|
-
pluginNames,
|
|
45
|
-
options.target ?? "default",
|
|
46
|
-
options.format ?? "esm",
|
|
47
|
-
outdir,
|
|
48
|
-
options.naming ?? "[name]",
|
|
49
|
-
entrypoints
|
|
50
|
-
].join("::");
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Returns the cached engine, creating a new one when the cache
|
|
54
|
-
* key changes. On a cache miss the prior engine is closed and
|
|
55
|
-
* {@link engineInstanceCount} is incremented.
|
|
56
|
-
*/
|
|
57
|
-
async getOrCreateEngine(options, contextRoot) {
|
|
58
|
-
const bundlePlugins = options.plugins ?? [];
|
|
59
|
-
const cacheKey = this.getCacheKey(options, contextRoot);
|
|
60
|
-
if (this.cachedEngine) {
|
|
61
|
-
if (this.cachedEngine.cacheKey === cacheKey) {
|
|
62
|
-
return this.cachedEngine;
|
|
63
|
-
}
|
|
64
|
-
await this.cachedEngine.engine.close();
|
|
65
|
-
this.cachedEngine = void 0;
|
|
66
|
-
}
|
|
67
|
-
const outdir = path.resolve(options.outdir ?? "dist/assets");
|
|
68
|
-
const { inputOptions, outputOptions } = resolveRolldownOptions(
|
|
69
|
-
options,
|
|
70
|
-
contextRoot,
|
|
71
|
-
outdir,
|
|
72
|
-
this.appRootRequireCache
|
|
73
|
-
);
|
|
74
|
-
const engine = await dev(inputOptions, outputOptions, {
|
|
75
|
-
rebuildStrategy: "never",
|
|
76
|
-
onOutput: (result) => {
|
|
77
|
-
if (result instanceof Error) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
const next = this.pendingBuilds.shift();
|
|
81
|
-
if (next) {
|
|
82
|
-
next.resolve(result);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
this.cachedEngine = {
|
|
87
|
-
engine,
|
|
88
|
-
engineStarted: false,
|
|
89
|
-
contextRoot,
|
|
90
|
-
bundlePlugins,
|
|
91
|
-
cacheKey
|
|
92
|
-
};
|
|
93
|
-
this.engineInstanceCount += 1;
|
|
94
|
-
return this.cachedEngine;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Triggers a build on the cached engine and returns the next
|
|
98
|
-
* `RolldownOutput` delivered to `onOutput`.
|
|
99
|
-
*
|
|
100
|
-
* First call after engine creation invokes `engine.run`; subsequent
|
|
101
|
-
* calls invoke `engine.triggerFullBuild` and reuse the cached
|
|
102
|
-
* module graph, resolver, and transform caches.
|
|
103
|
-
*
|
|
104
|
-
* If the trigger itself throws, the queued build is removed so
|
|
105
|
-
* the next `build()` does not consume a stale slot.
|
|
106
|
-
*/
|
|
107
|
-
async runBuild(cached) {
|
|
108
|
-
const outputPromise = new Promise((resolve, reject) => {
|
|
109
|
-
this.pendingBuilds.push({ resolve, reject });
|
|
110
|
-
});
|
|
111
|
-
try {
|
|
112
|
-
if (!cached.engineStarted) {
|
|
113
|
-
cached.engineStarted = true;
|
|
114
|
-
await cached.engine.run();
|
|
115
|
-
} else {
|
|
116
|
-
cached.engine.triggerFullBuild();
|
|
117
|
-
}
|
|
118
|
-
} catch (error) {
|
|
119
|
-
this.pendingBuilds.shift();
|
|
120
|
-
throw error;
|
|
121
|
-
}
|
|
122
|
-
return outputPromise;
|
|
123
|
-
}
|
|
124
|
-
/** Throws on error; see {@link build} for the no-throw variant. */
|
|
125
|
-
async buildOrThrow(options) {
|
|
126
|
-
recordRolldownBuildInvocation("rolldown-dev");
|
|
127
|
-
const contextRoot = options.root ? path.resolve(options.root) : process.cwd();
|
|
128
|
-
const outdir = path.resolve(options.outdir ?? "dist/assets");
|
|
129
|
-
const plugins = options.plugins ?? [];
|
|
130
|
-
const cached = await this.getOrCreateEngine(options, contextRoot);
|
|
131
|
-
const output = await this.runBuild(cached);
|
|
132
|
-
const baseResult = buildResultFromRolldownOutput(output, outdir, contextRoot);
|
|
133
|
-
return rewriteBrowserRuntimeImportsInOutputs(baseResult, contextRoot, plugins);
|
|
134
|
-
}
|
|
135
|
-
async build(options) {
|
|
136
|
-
try {
|
|
137
|
-
return await this.buildOrThrow(options);
|
|
138
|
-
} catch (error) {
|
|
139
|
-
return {
|
|
140
|
-
success: false,
|
|
141
|
-
logs: toBuildLogs(error),
|
|
142
|
-
outputs: []
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
resolve(importPath, rootDir) {
|
|
147
|
-
return moduleRequire.resolve(importPath, { paths: [rootDir] });
|
|
148
|
-
}
|
|
149
|
-
getTranspileOptions(profile) {
|
|
150
|
-
return transpileProfileToOptions(profile);
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Closes the cached DevEngine and rejects any in-flight builds
|
|
154
|
-
* with `'DevBuildAdapter closed'`.
|
|
155
|
-
*
|
|
156
|
-
* @remarks
|
|
157
|
-
* Not on the {@link BuildAdapter} interface, so it is only
|
|
158
|
-
* reachable through the concrete class. The adapter is meant to
|
|
159
|
-
* live for the process lifetime; this is for explicit teardown.
|
|
160
|
-
*/
|
|
161
|
-
async close() {
|
|
162
|
-
if (this.cachedEngine) {
|
|
163
|
-
await this.cachedEngine.engine.close();
|
|
164
|
-
this.cachedEngine = void 0;
|
|
165
|
-
}
|
|
166
|
-
while (this.pendingBuilds.length > 0) {
|
|
167
|
-
const pending = this.pendingBuilds.shift();
|
|
168
|
-
pending?.reject(new Error("DevBuildAdapter closed"));
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
/** Test-only: number of engines created over the adapter's lifetime. */
|
|
172
|
-
getEngineInstanceCountForTests() {
|
|
173
|
-
return this.engineInstanceCount;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
function createRolldownDevBuildAdapter() {
|
|
177
|
-
return new RolldownDevBuildAdapter();
|
|
178
|
-
}
|
|
179
|
-
export {
|
|
180
|
-
RolldownDevBuildAdapter,
|
|
181
|
-
createRolldownDevBuildAdapter
|
|
182
|
-
};
|