@ecopages/core 0.2.0-beta.4 → 0.2.0-beta.40
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 +40 -9
- package/package.json +371 -33
- package/src/adapters/README.md +6 -2
- package/src/adapters/abstract/application-adapter.d.ts +115 -6
- package/src/adapters/abstract/application-adapter.js +261 -120
- 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 +16 -2
- package/src/adapters/abstract/server-adapter.js +22 -14
- package/src/adapters/abstract/ws-pattern-matcher.d.ts +12 -0
- package/src/adapters/abstract/ws-pattern-matcher.js +28 -0
- package/src/adapters/bun/bun-user-websocket-lifecycle.d.ts +22 -0
- package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
- package/src/adapters/bun/client-bridge.d.ts +1 -0
- package/src/adapters/bun/client-bridge.js +51 -47
- package/src/adapters/bun/create-app.d.ts +9 -6
- package/src/adapters/bun/create-app.js +171 -130
- package/src/adapters/bun/hmr-manager.d.ts +1 -1
- 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 +91 -41
- package/src/adapters/bun/server-adapter.js +566 -426
- 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 +13 -11
- package/src/adapters/create-app.js +11 -63
- package/src/adapters/index.d.ts +2 -2
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +8 -3
- package/src/adapters/node/create-app.js +126 -84
- package/src/adapters/node/http-request-bridge.js +147 -106
- package/src/adapters/node/node-client-bridge.d.ts +1 -0
- package/src/adapters/node/node-client-bridge.js +62 -61
- package/src/adapters/node/node-hmr-manager.d.ts +1 -1
- 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 +63 -23
- package/src/adapters/node/server-adapter.js +346 -297
- package/src/adapters/node/static-content-server.d.ts +1 -0
- package/src/adapters/node/static-content-server.js +172 -183
- 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 +258 -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.d.ts +6 -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 -3
- 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} +27 -35
- 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/ws/node-http-websocket-upgrades.d.ts +21 -0
- 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 +191 -31
- 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/browser-runtime-manifest.js +58 -0
- package/src/build/browser/browser-runtime-plugin-helpers.js +34 -0
- package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +1 -1
- package/src/build/browser/browser-runtime-plugin.js +216 -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 -334
- package/src/build/build-adapter.js +273 -237
- package/src/build/cache/build-input-fingerprint.d.ts +28 -0
- 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/cache/pages-unified-graph-build.d.ts +31 -0
- 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/cache/server-entry-build-cache.d.ts +43 -0
- 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 +458 -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/rolldown-build-invocation-metrics.d.ts +12 -0
- 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.d.ts +10 -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/runtime/parallel-build-executor.d.ts +21 -0
- 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/config-builder.d.ts +40 -10
- package/src/config/config-builder.js +647 -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 +126 -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 +158 -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/integrations/ghtml/ghtml-renderer.d.ts +2 -6
- package/src/integrations/ghtml/ghtml-renderer.js +12 -56
- package/src/integrations/ghtml/ghtml.constants.js +1 -4
- package/src/integrations/ghtml/ghtml.plugin.d.ts +3 -16
- package/src/integrations/ghtml/ghtml.plugin.js +10 -20
- 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 +120 -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 +43 -14
- package/src/plugins/integration-plugin.js +212 -190
- package/src/plugins/jsx-import-source.utils.d.ts +8 -0
- package/src/plugins/jsx-import-source.utils.js +21 -0
- package/src/plugins/processor.d.ts +71 -12
- package/src/plugins/processor.js +168 -130
- 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 +35 -0
- package/src/plugins/tsconfig-import-resolver.js +235 -0
- package/src/route-renderer/GRAPH.md +26 -32
- package/src/route-renderer/README.md +54 -33
- 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} +17 -7
- package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +191 -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 +41 -151
- package/src/route-renderer/orchestration/integration-renderer.js +798 -988
- 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 +232 -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 +49 -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/route-renderer/orchestration/string-markup-renderer.d.ts +14 -0
- 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 -201
- 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 +7 -1
- package/src/services/assets/asset-processing-service/asset-processing.service.js +308 -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 +2 -1
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -45
- 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.d.ts +4 -2
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -38
- 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 -121
- 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 +28 -30
- package/src/services/assets/browser-bundle.service.js +54 -40
- 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.js +106 -102
- package/src/services/html/html-rewriter-provider.service.js +61 -61
- package/src/services/html/html-transformer.service.d.ts +1 -1
- package/src/services/html/html-transformer.service.js +249 -266
- package/src/services/invalidation/development-invalidation.service.d.ts +25 -2
- package/src/services/invalidation/development-invalidation.service.js +239 -175
- package/src/services/module-loading/README.md +52 -0
- 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 +103 -118
- 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 +11 -13
- package/src/services/module-loading/page-module-import.service.js +222 -184
- package/src/services/module-loading/route-module-build-cache-registry.d.ts +24 -0
- package/src/services/module-loading/route-module-build-cache-registry.js +51 -0
- package/src/services/module-loading/route-module-build-cache.d.ts +4 -0
- package/src/services/module-loading/route-module-build-cache.js +3 -0
- package/src/services/module-loading/route-module-build-cache.store.d.ts +57 -0
- package/src/services/module-loading/route-module-build-cache.store.js +202 -0
- package/src/services/module-loading/route-module-build-manifest.d.ts +57 -0
- package/src/services/module-loading/route-module-build-manifest.js +60 -0
- package/src/services/module-loading/route-module-dependency-hasher.d.ts +81 -0
- package/src/services/module-loading/route-module-dependency-hasher.js +148 -0
- 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 +41 -0
- 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 +10 -0
- package/src/static-site-generator/static-build-invalidation.js +37 -0
- package/src/static-site-generator/static-export-context.d.ts +30 -0
- package/src/static-site-generator/static-export-context.js +1 -0
- package/src/static-site-generator/static-site-generator.d.ts +43 -25
- package/src/static-site-generator/static-site-generator.js +536 -294
- package/src/types/internal-types.d.ts +59 -13
- package/src/types/internal-types.js +1 -0
- package/src/types/public-types.d.ts +310 -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/html.js +1 -4
- package/src/utils/invariant.js +11 -10
- package/src/utils/locals-utils.js +32 -22
- package/src/utils/parse-cli-args.d.ts +2 -0
- package/src/utils/parse-cli-args.js +73 -59
- 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 +29 -6
- package/src/watchers/project-watcher.js +402 -257
- 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/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/render-context.js +0 -93
- package/src/adapters/shared/runtime-app-bootstrap.js +0 -46
- 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 -162
- package/src/adapters/shared/shared-hmr-manager.d.ts +0 -59
- package/src/adapters/shared/shared-hmr-manager.js +0 -241
- package/src/adapters/shared/static-preview-host.js +0 -0
- 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-manifest.d.ts +0 -33
- package/src/build/build-manifest.js +0 -49
- package/src/build/build-types.js +0 -0
- package/src/build/rolldown-adapter-helpers.js +0 -265
- package/src/build/rolldown-build-adapter.js +0 -65
- package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
- package/src/build/rolldown-dev-build-adapter.js +0 -166
- package/src/build/rolldown-plugin-bridge.js +0 -199
- package/src/build/runtime-build-executor.d.ts +0 -21
- package/src/build/runtime-build-executor.js +0 -19
- package/src/build/runtime-build-output-normalizer.d.ts +0 -3
- package/src/build/runtime-build-output-normalizer.js +0 -111
- package/src/build/serialized-build-executor.js +0 -63
- 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 -43
- 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 -233
- 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 -171
- package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -577
- package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
- package/src/route-renderer/orchestration/template-serialization.js +0 -45
- /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/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +0 -0
- /package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +0 -0
- /package/src/build/{build-types.d.ts → contracts/build-types.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,166 +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
|
-
const moduleRequire = createRequire(import.meta.url);
|
|
12
|
-
class RolldownDevBuildAdapter {
|
|
13
|
-
/**
|
|
14
|
-
* `'rolldown-dev'` (not `'rolldown'`) so {@link getBuildAdapterOwnership}
|
|
15
|
-
* round-trips correctly and `createBuildAdapter({ ownership })` can
|
|
16
|
-
* re-select this class.
|
|
17
|
-
*/
|
|
18
|
-
ownership = "rolldown-dev";
|
|
19
|
-
cachedEngine;
|
|
20
|
-
engineInstanceCount = 0;
|
|
21
|
-
pendingBuilds = [];
|
|
22
|
-
appRootRequireCache = /* @__PURE__ */ new Map();
|
|
23
|
-
/**
|
|
24
|
-
* Stable key over the inputs that affect the engine configuration.
|
|
25
|
-
* Plugin order is intentionally not part of the key: two plugin
|
|
26
|
-
* sets with the same names are interchangeable for caching.
|
|
27
|
-
*/
|
|
28
|
-
getCacheKey(plugins, contextRoot, target, format) {
|
|
29
|
-
const pluginNames = plugins.map((p) => p.name).join(":");
|
|
30
|
-
return `${contextRoot}::${pluginNames}::${target ?? "default"}::${format ?? "esm"}`;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Returns the cached engine, creating a new one when the cache
|
|
34
|
-
* key changes. On a cache miss the prior engine is closed and
|
|
35
|
-
* {@link engineInstanceCount} is incremented.
|
|
36
|
-
*/
|
|
37
|
-
async getOrCreateEngine(options, contextRoot) {
|
|
38
|
-
const bundlePlugins = options.plugins ?? [];
|
|
39
|
-
const cacheKey = this.getCacheKey(bundlePlugins, contextRoot, options.target, options.format);
|
|
40
|
-
if (this.cachedEngine) {
|
|
41
|
-
const existingKey = this.getCacheKey(
|
|
42
|
-
this.cachedEngine.bundlePlugins,
|
|
43
|
-
this.cachedEngine.contextRoot,
|
|
44
|
-
options.target,
|
|
45
|
-
options.format
|
|
46
|
-
);
|
|
47
|
-
if (existingKey === cacheKey) {
|
|
48
|
-
return this.cachedEngine;
|
|
49
|
-
}
|
|
50
|
-
await this.cachedEngine.engine.close();
|
|
51
|
-
this.cachedEngine = void 0;
|
|
52
|
-
}
|
|
53
|
-
const outdir = path.resolve(options.outdir ?? "dist/assets");
|
|
54
|
-
const { inputOptions, outputOptions } = resolveRolldownOptions(
|
|
55
|
-
options,
|
|
56
|
-
contextRoot,
|
|
57
|
-
outdir,
|
|
58
|
-
this.appRootRequireCache
|
|
59
|
-
);
|
|
60
|
-
const engine = await dev(inputOptions, outputOptions, {
|
|
61
|
-
rebuildStrategy: "never",
|
|
62
|
-
onOutput: (result) => {
|
|
63
|
-
if (result instanceof Error) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
const next = this.pendingBuilds.shift();
|
|
67
|
-
if (next) {
|
|
68
|
-
next.resolve(result);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
this.cachedEngine = {
|
|
73
|
-
engine,
|
|
74
|
-
engineStarted: false,
|
|
75
|
-
contextRoot,
|
|
76
|
-
bundlePlugins
|
|
77
|
-
};
|
|
78
|
-
this.engineInstanceCount += 1;
|
|
79
|
-
return this.cachedEngine;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Triggers a build on the cached engine and returns the next
|
|
83
|
-
* `RolldownOutput` delivered to `onOutput`.
|
|
84
|
-
*
|
|
85
|
-
* First call after engine creation invokes `engine.run`; subsequent
|
|
86
|
-
* calls invoke `engine.triggerFullBuild` and reuse the cached
|
|
87
|
-
* module graph, resolver, and transform caches.
|
|
88
|
-
*
|
|
89
|
-
* If the trigger itself throws, the queued build is removed so
|
|
90
|
-
* the next `build()` does not consume a stale slot.
|
|
91
|
-
*/
|
|
92
|
-
async runBuild(cached) {
|
|
93
|
-
const outputPromise = new Promise((resolve, reject) => {
|
|
94
|
-
this.pendingBuilds.push({ resolve, reject });
|
|
95
|
-
});
|
|
96
|
-
try {
|
|
97
|
-
if (!cached.engineStarted) {
|
|
98
|
-
cached.engineStarted = true;
|
|
99
|
-
await cached.engine.run();
|
|
100
|
-
} else {
|
|
101
|
-
cached.engine.triggerFullBuild();
|
|
102
|
-
}
|
|
103
|
-
} catch (error) {
|
|
104
|
-
this.pendingBuilds.shift();
|
|
105
|
-
throw error;
|
|
106
|
-
}
|
|
107
|
-
return outputPromise;
|
|
108
|
-
}
|
|
109
|
-
/** Throws on error; see {@link build} for the no-throw variant. */
|
|
110
|
-
async buildOrThrow(options) {
|
|
111
|
-
const contextRoot = options.root ? path.resolve(options.root) : process.cwd();
|
|
112
|
-
const outdir = path.resolve(options.outdir ?? "dist/assets");
|
|
113
|
-
const plugins = options.plugins ?? [];
|
|
114
|
-
const cached = await this.getOrCreateEngine(options, contextRoot);
|
|
115
|
-
const output = await this.runBuild(cached);
|
|
116
|
-
const baseResult = buildResultFromRolldownOutput(output, outdir, contextRoot);
|
|
117
|
-
return rewriteBrowserRuntimeImportsInOutputs(baseResult, contextRoot, plugins);
|
|
118
|
-
}
|
|
119
|
-
async build(options) {
|
|
120
|
-
try {
|
|
121
|
-
return await this.buildOrThrow(options);
|
|
122
|
-
} catch (error) {
|
|
123
|
-
return {
|
|
124
|
-
success: false,
|
|
125
|
-
logs: toBuildLogs(error),
|
|
126
|
-
outputs: []
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
resolve(importPath, rootDir) {
|
|
131
|
-
return moduleRequire.resolve(importPath, { paths: [rootDir] });
|
|
132
|
-
}
|
|
133
|
-
getTranspileOptions(profile) {
|
|
134
|
-
return transpileProfileToOptions(profile);
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Closes the cached DevEngine and rejects any in-flight builds
|
|
138
|
-
* with `'DevBuildAdapter closed'`.
|
|
139
|
-
*
|
|
140
|
-
* @remarks
|
|
141
|
-
* Not on the {@link BuildAdapter} interface, so it is only
|
|
142
|
-
* reachable through the concrete class. The adapter is meant to
|
|
143
|
-
* live for the process lifetime; this is for explicit teardown.
|
|
144
|
-
*/
|
|
145
|
-
async close() {
|
|
146
|
-
if (this.cachedEngine) {
|
|
147
|
-
await this.cachedEngine.engine.close();
|
|
148
|
-
this.cachedEngine = void 0;
|
|
149
|
-
}
|
|
150
|
-
while (this.pendingBuilds.length > 0) {
|
|
151
|
-
const pending = this.pendingBuilds.shift();
|
|
152
|
-
pending?.reject(new Error("DevBuildAdapter closed"));
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
/** Test-only: number of engines created over the adapter's lifetime. */
|
|
156
|
-
getEngineInstanceCountForTests() {
|
|
157
|
-
return this.engineInstanceCount;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
function createRolldownDevBuildAdapter() {
|
|
161
|
-
return new RolldownDevBuildAdapter();
|
|
162
|
-
}
|
|
163
|
-
export {
|
|
164
|
-
RolldownDevBuildAdapter,
|
|
165
|
-
createRolldownDevBuildAdapter
|
|
166
|
-
};
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { escapeRegExp } from "./browser-runtime-plugin-helpers.js";
|
|
3
|
-
const NAMESPACE_SEPARATOR = ":";
|
|
4
|
-
function joinNamespace(namespace, value) {
|
|
5
|
-
return namespace ? `${namespace}${NAMESPACE_SEPARATOR}${value}` : value;
|
|
6
|
-
}
|
|
7
|
-
function splitNamespace(id) {
|
|
8
|
-
const separatorIndex = id.indexOf(NAMESPACE_SEPARATOR);
|
|
9
|
-
if (separatorIndex <= 0) {
|
|
10
|
-
return { namespace: void 0, path: id };
|
|
11
|
-
}
|
|
12
|
-
return {
|
|
13
|
-
namespace: id.slice(0, separatorIndex),
|
|
14
|
-
path: id.slice(separatorIndex + 1)
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
function inferRolldownModuleTypeFromPath(filePath) {
|
|
18
|
-
const extension = path.extname(filePath).toLowerCase();
|
|
19
|
-
switch (extension) {
|
|
20
|
-
case ".ts":
|
|
21
|
-
return "ts";
|
|
22
|
-
case ".tsx":
|
|
23
|
-
return "tsx";
|
|
24
|
-
case ".jsx":
|
|
25
|
-
return "jsx";
|
|
26
|
-
case ".json":
|
|
27
|
-
return "json";
|
|
28
|
-
case ".css":
|
|
29
|
-
return "css";
|
|
30
|
-
default:
|
|
31
|
-
return "js";
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function normalizeRolldownModuleType(loader) {
|
|
35
|
-
switch (loader) {
|
|
36
|
-
case "js":
|
|
37
|
-
case "jsx":
|
|
38
|
-
case "ts":
|
|
39
|
-
case "tsx":
|
|
40
|
-
case "json":
|
|
41
|
-
case "css":
|
|
42
|
-
case "text":
|
|
43
|
-
case "base64":
|
|
44
|
-
case "dataurl":
|
|
45
|
-
case "binary":
|
|
46
|
-
case "empty":
|
|
47
|
-
return loader;
|
|
48
|
-
case "global-css":
|
|
49
|
-
case "local-css":
|
|
50
|
-
return "css";
|
|
51
|
-
case "file":
|
|
52
|
-
case "copy":
|
|
53
|
-
return "asset";
|
|
54
|
-
default:
|
|
55
|
-
return void 0;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function convertLoadResultToModuleSource(result) {
|
|
59
|
-
if (result.loader === "object" && result.exports && typeof result.exports === "object") {
|
|
60
|
-
return Object.entries(result.exports).map(
|
|
61
|
-
([key, value]) => key === "default" ? `export default ${JSON.stringify(value)};` : `export const ${key} = ${JSON.stringify(value)};`
|
|
62
|
-
).join("\n");
|
|
63
|
-
}
|
|
64
|
-
return void 0;
|
|
65
|
-
}
|
|
66
|
-
function buildIdFilter(filter, namespace) {
|
|
67
|
-
if (!namespace) {
|
|
68
|
-
return filter;
|
|
69
|
-
}
|
|
70
|
-
return new RegExp(`^${escapeRegExp(namespace)}${NAMESPACE_SEPARATOR}${filter.source.slice(1)}`);
|
|
71
|
-
}
|
|
72
|
-
function resolvePluginPath(value, importer, contextRoot) {
|
|
73
|
-
if (path.isAbsolute(value)) {
|
|
74
|
-
return value;
|
|
75
|
-
}
|
|
76
|
-
if (value.startsWith(".") || value.startsWith("..")) {
|
|
77
|
-
const baseDir = importer ? path.dirname(importer) : contextRoot;
|
|
78
|
-
return path.resolve(baseDir, value);
|
|
79
|
-
}
|
|
80
|
-
return value;
|
|
81
|
-
}
|
|
82
|
-
function convertPluginOnLoadResult(args, result) {
|
|
83
|
-
if (!result || typeof result !== "object") {
|
|
84
|
-
return void 0;
|
|
85
|
-
}
|
|
86
|
-
const candidate = result;
|
|
87
|
-
const { path: sourcePath } = splitNamespace(args.id);
|
|
88
|
-
const sourceFromExports = convertLoadResultToModuleSource(candidate);
|
|
89
|
-
if (sourceFromExports) {
|
|
90
|
-
const description = {
|
|
91
|
-
code: sourceFromExports,
|
|
92
|
-
moduleType: "js"
|
|
93
|
-
};
|
|
94
|
-
return description;
|
|
95
|
-
}
|
|
96
|
-
if (typeof candidate.contents === "string" || candidate.contents instanceof Uint8Array) {
|
|
97
|
-
const code = typeof candidate.contents === "string" ? candidate.contents : new TextDecoder().decode(candidate.contents);
|
|
98
|
-
const description = {
|
|
99
|
-
code,
|
|
100
|
-
moduleType: normalizeRolldownModuleType(candidate.loader) ?? inferRolldownModuleTypeFromPath(sourcePath)
|
|
101
|
-
};
|
|
102
|
-
return description;
|
|
103
|
-
}
|
|
104
|
-
return void 0;
|
|
105
|
-
}
|
|
106
|
-
function convertPluginOnResolveResult(result, importer, contextRoot) {
|
|
107
|
-
if (!result || typeof result !== "object") {
|
|
108
|
-
return void 0;
|
|
109
|
-
}
|
|
110
|
-
const candidate = result;
|
|
111
|
-
if (typeof candidate.path !== "string" && typeof candidate.namespace !== "string") {
|
|
112
|
-
if (typeof candidate.external !== "boolean") {
|
|
113
|
-
return void 0;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
const partial = { id: "" };
|
|
117
|
-
if (typeof candidate.path === "string") {
|
|
118
|
-
partial.id = joinNamespace(candidate.namespace, resolvePluginPath(candidate.path, importer, contextRoot));
|
|
119
|
-
} else if (typeof candidate.namespace === "string") {
|
|
120
|
-
partial.id = joinNamespace(candidate.namespace, "");
|
|
121
|
-
}
|
|
122
|
-
if (typeof candidate.external === "boolean") {
|
|
123
|
-
partial.external = candidate.external;
|
|
124
|
-
}
|
|
125
|
-
return partial;
|
|
126
|
-
}
|
|
127
|
-
function createRolldownPluginBridge(plugins, contextRoot) {
|
|
128
|
-
if (plugins.length === 0) {
|
|
129
|
-
return [];
|
|
130
|
-
}
|
|
131
|
-
const moduleCounter = { value: 0 };
|
|
132
|
-
const resolveRegistrations = [];
|
|
133
|
-
const loadRegistrations = [];
|
|
134
|
-
const registerResolve = (filter, callback) => {
|
|
135
|
-
resolveRegistrations.push({ filter, callback });
|
|
136
|
-
};
|
|
137
|
-
const registerLoad = (filter, callback) => {
|
|
138
|
-
loadRegistrations.push({ filter, callback });
|
|
139
|
-
};
|
|
140
|
-
const resolveIdHandler = async (source, importer, _extraOptions) => {
|
|
141
|
-
for (const { filter, callback } of resolveRegistrations) {
|
|
142
|
-
if (!filter.test(source)) {
|
|
143
|
-
continue;
|
|
144
|
-
}
|
|
145
|
-
const { namespace, path: sourcePath } = splitNamespace(source);
|
|
146
|
-
const result = await callback({ path: sourcePath, importer, namespace });
|
|
147
|
-
const converted = convertPluginOnResolveResult(result, importer, contextRoot);
|
|
148
|
-
if (converted !== void 0) {
|
|
149
|
-
return converted;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return void 0;
|
|
153
|
-
};
|
|
154
|
-
const loadHandler = async (id) => {
|
|
155
|
-
for (const { filter, callback } of loadRegistrations) {
|
|
156
|
-
if (!filter.test(id)) {
|
|
157
|
-
continue;
|
|
158
|
-
}
|
|
159
|
-
const { namespace, path: sourcePath } = splitNamespace(id);
|
|
160
|
-
const result = await callback({ path: sourcePath, namespace });
|
|
161
|
-
const converted = convertPluginOnLoadResult({ id }, result);
|
|
162
|
-
if (converted !== void 0) {
|
|
163
|
-
return converted;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return void 0;
|
|
167
|
-
};
|
|
168
|
-
const plugin = {
|
|
169
|
-
name: "ecopages-plugin-bridge",
|
|
170
|
-
buildStart: async () => {
|
|
171
|
-
for (const ecoPlugin of plugins) {
|
|
172
|
-
const bridge = {
|
|
173
|
-
onResolve: (options, callback) => {
|
|
174
|
-
registerResolve(buildIdFilter(options.filter, options.namespace), callback);
|
|
175
|
-
},
|
|
176
|
-
onLoad: (options, callback) => {
|
|
177
|
-
registerLoad(buildIdFilter(options.filter, options.namespace), callback);
|
|
178
|
-
},
|
|
179
|
-
module: (specifier, callback) => {
|
|
180
|
-
const namespace = `ecopages-module-${moduleCounter.value}`;
|
|
181
|
-
moduleCounter.value += 1;
|
|
182
|
-
const filter = new RegExp(`^${escapeRegExp(specifier)}$`);
|
|
183
|
-
registerResolve(filter, async () => ({
|
|
184
|
-
path: joinNamespace(namespace, specifier)
|
|
185
|
-
}));
|
|
186
|
-
registerLoad(buildIdFilter(/.*/, namespace), async () => callback());
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
await ecoPlugin.setup(bridge);
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
resolveId: resolveIdHandler,
|
|
193
|
-
load: loadHandler
|
|
194
|
-
};
|
|
195
|
-
return [plugin];
|
|
196
|
-
}
|
|
197
|
-
export {
|
|
198
|
-
createRolldownPluginBridge
|
|
199
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { EcoPagesAppConfig } from '../types/internal-types.js';
|
|
2
|
-
import { type BuildExecutor } from './build-adapter.js';
|
|
3
|
-
/**
|
|
4
|
-
* Installs the app-owned runtime build executor for one app instance.
|
|
5
|
-
*
|
|
6
|
-
* @remarks
|
|
7
|
-
* Wraps the app-owned adapter in a {@link SerializedBuildExecutor} so
|
|
8
|
-
* every dev-watch caller issues builds against a single FIFO queue.
|
|
9
|
-
* Plugin injection is applied here via {@link withBuildExecutorPlugins}
|
|
10
|
-
* so app-owned plugins are merged into every rebuild without callers
|
|
11
|
-
* having to know about the manifest.
|
|
12
|
-
*
|
|
13
|
-
* Idempotent across calls: re-invoking replaces the existing executor
|
|
14
|
-
* on `appConfig.runtime` with a fresh wrapper.
|
|
15
|
-
*
|
|
16
|
-
* @param appConfig - The app config whose runtime state is updated.
|
|
17
|
-
* The function reads the existing executor (falling back to the
|
|
18
|
-
* app-owned adapter) and writes the wrapped executor back.
|
|
19
|
-
* @returns The installed {@link BuildExecutor}.
|
|
20
|
-
*/
|
|
21
|
-
export declare function installAppRuntimeBuildExecutor(appConfig: EcoPagesAppConfig): BuildExecutor;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getAppBuildAdapter,
|
|
3
|
-
getAppBuildExecutor,
|
|
4
|
-
getAppServerBuildPlugins,
|
|
5
|
-
setAppBuildExecutor,
|
|
6
|
-
withBuildExecutorPlugins
|
|
7
|
-
} from "./build-adapter.js";
|
|
8
|
-
import { SerializedBuildExecutor } from "./serialized-build-executor.js";
|
|
9
|
-
function installAppRuntimeBuildExecutor(appConfig) {
|
|
10
|
-
const baseExecutor = getAppBuildExecutor(appConfig) ?? getAppBuildAdapter(appConfig);
|
|
11
|
-
const buildExecutor = new SerializedBuildExecutor(
|
|
12
|
-
withBuildExecutorPlugins(baseExecutor, () => getAppServerBuildPlugins(appConfig))
|
|
13
|
-
);
|
|
14
|
-
setAppBuildExecutor(appConfig, buildExecutor);
|
|
15
|
-
return buildExecutor;
|
|
16
|
-
}
|
|
17
|
-
export {
|
|
18
|
-
installAppRuntimeBuildExecutor
|
|
19
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare function isDeclaredAppPackageImport(specifier: string, rootDir: string): boolean;
|
|
2
|
-
export declare function normalizeNodeRuntimeBuildOutputFile(filePath: string, rootDir: string): void;
|
|
3
|
-
export declare function normalizeNodeRuntimeBuildOutputs(outputPaths: string[], rootDir: string): void;
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
|
-
import { readFileSync } from "node:fs";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { pathToFileURL } from "node:url";
|
|
5
|
-
const corePackageRequire = createRequire(new URL("../../package.json", import.meta.url));
|
|
6
|
-
const appDeclaredPackageCache = /* @__PURE__ */ new Map();
|
|
7
|
-
function tryResolveRuntimeImport(specifier, resolver) {
|
|
8
|
-
try {
|
|
9
|
-
return resolver.resolve(specifier);
|
|
10
|
-
} catch {
|
|
11
|
-
return void 0;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
function isBareRuntimeImport(specifier) {
|
|
15
|
-
return !specifier.startsWith(".") && !path.isAbsolute(specifier) && !specifier.startsWith("/") && !specifier.startsWith("node:") && !specifier.startsWith("@/") && !specifier.startsWith("~/") && !specifier.startsWith("#") && !specifier.includes(":");
|
|
16
|
-
}
|
|
17
|
-
function getPackageNameFromSpecifier(specifier) {
|
|
18
|
-
if (specifier.startsWith("@")) {
|
|
19
|
-
return specifier.split("/").slice(0, 2).join("/");
|
|
20
|
-
}
|
|
21
|
-
return specifier.split("/")[0] ?? specifier;
|
|
22
|
-
}
|
|
23
|
-
function getDeclaredAppPackages(rootDir) {
|
|
24
|
-
const cacheKey = path.resolve(rootDir);
|
|
25
|
-
const cached = appDeclaredPackageCache.get(cacheKey);
|
|
26
|
-
if (cached) {
|
|
27
|
-
return cached;
|
|
28
|
-
}
|
|
29
|
-
const packageJsonPath = path.resolve(rootDir, "package.json");
|
|
30
|
-
const declaredPackages = /* @__PURE__ */ new Set();
|
|
31
|
-
try {
|
|
32
|
-
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
33
|
-
for (const field of ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"]) {
|
|
34
|
-
const entries = packageJson[field];
|
|
35
|
-
if (!entries || typeof entries !== "object") {
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
for (const packageName of Object.keys(entries)) {
|
|
39
|
-
declaredPackages.add(packageName);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
} catch {
|
|
43
|
-
appDeclaredPackageCache.set(cacheKey, declaredPackages);
|
|
44
|
-
return declaredPackages;
|
|
45
|
-
}
|
|
46
|
-
appDeclaredPackageCache.set(cacheKey, declaredPackages);
|
|
47
|
-
return declaredPackages;
|
|
48
|
-
}
|
|
49
|
-
function isDeclaredAppPackageImport(specifier, rootDir) {
|
|
50
|
-
return getDeclaredAppPackages(rootDir).has(getPackageNameFromSpecifier(specifier));
|
|
51
|
-
}
|
|
52
|
-
function rewriteRuntimeImportSpecifier(specifier, quote, rootDir) {
|
|
53
|
-
if (!isBareRuntimeImport(specifier)) {
|
|
54
|
-
return void 0;
|
|
55
|
-
}
|
|
56
|
-
if (isDeclaredAppPackageImport(specifier, rootDir)) {
|
|
57
|
-
return void 0;
|
|
58
|
-
}
|
|
59
|
-
const resolvedPath = tryResolveRuntimeImport(specifier, corePackageRequire);
|
|
60
|
-
if (!resolvedPath || !/\.(?:[cm]?[jt]s|tsx|jsx)$/u.test(resolvedPath)) {
|
|
61
|
-
return void 0;
|
|
62
|
-
}
|
|
63
|
-
return `${quote}${pathToFileURL(resolvedPath).href}${quote}`;
|
|
64
|
-
}
|
|
65
|
-
function rewriteRuntimeBuildOutputImports(code, rootDir) {
|
|
66
|
-
const rewriteSpecifier = (prefix, quote, specifier) => {
|
|
67
|
-
const rewrittenSpecifier = rewriteRuntimeImportSpecifier(specifier, quote, rootDir);
|
|
68
|
-
return `${prefix}${rewrittenSpecifier ?? `${quote}${specifier}${quote}`}`;
|
|
69
|
-
};
|
|
70
|
-
const withResolvedPackages = code.replace(
|
|
71
|
-
/(\bfrom\s+)(['"])([^'"\\]+)\2/g,
|
|
72
|
-
(_match, prefix, quote, specifier) => rewriteSpecifier(prefix, quote, specifier)
|
|
73
|
-
).replace(
|
|
74
|
-
/(\bimport\s+)(['"])([^'"\\]+)\2/g,
|
|
75
|
-
(_match, prefix, quote, specifier) => rewriteSpecifier(prefix, quote, specifier)
|
|
76
|
-
).replace(
|
|
77
|
-
/(\bimport\s*\(\s*)(['"])([^'"\\]+)\2/g,
|
|
78
|
-
(_match, prefix, quote, specifier) => rewriteSpecifier(prefix, quote, specifier)
|
|
79
|
-
);
|
|
80
|
-
return withResolvedPackages.replace(
|
|
81
|
-
/(['"])(@oxc-project\/runtime\/(?:helpers(?:\/esm)?\/[^'"\\]+))\1/g,
|
|
82
|
-
(match, quote, specifier) => {
|
|
83
|
-
const resolvedPath = tryResolveRuntimeImport(specifier, corePackageRequire);
|
|
84
|
-
return resolvedPath ? `${quote}${pathToFileURL(resolvedPath).href}${quote}` : match;
|
|
85
|
-
}
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
function normalizeNodeRuntimeBuildOutputFile(filePath, rootDir) {
|
|
89
|
-
if (!/\.(?:[cm]?js)$/u.test(filePath)) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
const fileSystem = corePackageRequire("node:fs");
|
|
93
|
-
if (!fileSystem.existsSync(filePath)) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
const code = fileSystem.readFileSync(filePath, "utf-8");
|
|
97
|
-
const rewritten = rewriteRuntimeBuildOutputImports(code, rootDir);
|
|
98
|
-
if (rewritten !== code) {
|
|
99
|
-
fileSystem.writeFileSync(filePath, rewritten);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
function normalizeNodeRuntimeBuildOutputs(outputPaths, rootDir) {
|
|
103
|
-
for (const outputPath of outputPaths) {
|
|
104
|
-
normalizeNodeRuntimeBuildOutputFile(outputPath, rootDir);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
export {
|
|
108
|
-
isDeclaredAppPackageImport,
|
|
109
|
-
normalizeNodeRuntimeBuildOutputFile,
|
|
110
|
-
normalizeNodeRuntimeBuildOutputs
|
|
111
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
class SerializedBuildExecutor {
|
|
2
|
-
inner;
|
|
3
|
-
tail = Promise.resolve();
|
|
4
|
-
constructor(inner) {
|
|
5
|
-
this.inner = inner;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Run a build through the serialized queue. The returned promise
|
|
9
|
-
* resolves with the inner executor's `BuildResult`. A rejected
|
|
10
|
-
* inner build does not block the queue — the next caller can
|
|
11
|
-
* proceed.
|
|
12
|
-
*/
|
|
13
|
-
build(options) {
|
|
14
|
-
return this.run(() => this.inner.build(options));
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Run an arbitrary async operation through the serialized queue.
|
|
18
|
-
*
|
|
19
|
-
* Use this when the work is not a `build()` call against a wrapped
|
|
20
|
-
* executor (e.g. when composing with a coordinator that needs to
|
|
21
|
-
* inject recovery around the inner call). The returned promise
|
|
22
|
-
* resolves with the operation's result. A rejected operation does
|
|
23
|
-
* not block the queue.
|
|
24
|
-
*/
|
|
25
|
-
run(operation) {
|
|
26
|
-
const next = this.tail.catch(() => void 0).then(() => operation());
|
|
27
|
-
this.tail = next.catch(() => void 0);
|
|
28
|
-
return next;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Returns the wrapped executor. Tests use this to assert the
|
|
32
|
-
* delegation chain.
|
|
33
|
-
*/
|
|
34
|
-
unwrap() {
|
|
35
|
-
return this.inner;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Reset the queue to an empty state. Tests use this to recover
|
|
39
|
-
* from a poisoned tail.
|
|
40
|
-
*/
|
|
41
|
-
resetForTests() {
|
|
42
|
-
this.tail = Promise.resolve();
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Overrides the internal queue tail for fault-recovery tests. The
|
|
46
|
-
* supplied promise is awaited before the next enqueued operation
|
|
47
|
-
* starts.
|
|
48
|
-
*/
|
|
49
|
-
setBuildQueueForTests(queue) {
|
|
50
|
-
this.tail = queue;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Returns the current internal queue tail for fault-recovery
|
|
54
|
-
* tests. Tests await this to assert that recovery has cleared a
|
|
55
|
-
* wedged queue.
|
|
56
|
-
*/
|
|
57
|
-
getBuildQueueForTests() {
|
|
58
|
-
return this.tail;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export {
|
|
62
|
-
SerializedBuildExecutor
|
|
63
|
-
};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
const CSS_PATH = /\.css$/u;
|
|
4
|
-
const CSS_QUERY = "?ecopages-css-shim";
|
|
5
|
-
function stripShimQuery(id) {
|
|
6
|
-
const queryIndex = id.indexOf("?");
|
|
7
|
-
return queryIndex === -1 ? id : id.slice(0, queryIndex);
|
|
8
|
-
}
|
|
9
|
-
function createServerSideCssShimPlugin() {
|
|
10
|
-
return {
|
|
11
|
-
name: "ecopages:server-side-css-shim",
|
|
12
|
-
async resolveId(source, importer) {
|
|
13
|
-
if (!CSS_PATH.test(source)) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
const resolved = importer ? path.resolve(path.dirname(importer), source) : path.resolve(source);
|
|
17
|
-
return existsSync(resolved) ? `${resolved}${CSS_QUERY}` : null;
|
|
18
|
-
},
|
|
19
|
-
async load(id) {
|
|
20
|
-
if (!id.endsWith(CSS_QUERY)) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
const realPath = stripShimQuery(id);
|
|
24
|
-
readFileSync(realPath, "utf-8");
|
|
25
|
-
return {
|
|
26
|
-
code: 'export default "";',
|
|
27
|
-
moduleType: "js",
|
|
28
|
-
moduleSideEffects: true
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
export {
|
|
34
|
-
createServerSideCssShimPlugin
|
|
35
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { test, expect } from "@playwright/test";
|
|
2
|
-
import { readFileSync } from "node:fs";
|
|
3
|
-
import { writeFile } from "node:fs/promises";
|
|
4
|
-
import { resolve } from "node:path";
|
|
5
|
-
const FIXTURE_DIR = resolve(process.cwd(), "packages/core/__fixtures__/app");
|
|
6
|
-
const TEST_CSS_FILE = resolve(FIXTURE_DIR, "src/pages/postcss-hmr.css");
|
|
7
|
-
test.describe("HMR E2E PostCSS", () => {
|
|
8
|
-
test("should hot-update processor-owned CSS without a full page reload", async ({ page }) => {
|
|
9
|
-
const originalCss = readFileSync(TEST_CSS_FILE, "utf-8");
|
|
10
|
-
const title = page.locator(".postcss-title").first();
|
|
11
|
-
try {
|
|
12
|
-
await page.goto("/postcss-hmr", { waitUntil: "networkidle" });
|
|
13
|
-
await expect(title).toBeVisible();
|
|
14
|
-
const initialColor = await title.evaluate((el) => getComputedStyle(el).color);
|
|
15
|
-
expect(initialColor).toBeTruthy();
|
|
16
|
-
await page.evaluate(() => {
|
|
17
|
-
window.__postcssReloadProbe = "before-change";
|
|
18
|
-
});
|
|
19
|
-
const modifiedCss = originalCss.replace(".postcss-title {", ".postcss-title {\n color: rgb(255, 0, 0);");
|
|
20
|
-
await writeFile(TEST_CSS_FILE, modifiedCss, { flush: true });
|
|
21
|
-
await expect.poll(async () => title.evaluate((el) => getComputedStyle(el).color), { timeout: 1e4 }).toBe("rgb(255, 0, 0)");
|
|
22
|
-
await expect(
|
|
23
|
-
page.evaluate(
|
|
24
|
-
() => window.__postcssReloadProbe ?? null
|
|
25
|
-
)
|
|
26
|
-
).resolves.toBe("before-change");
|
|
27
|
-
} finally {
|
|
28
|
-
await writeFile(TEST_CSS_FILE, originalCss, { flush: true });
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
});
|