@ecopages/core 0.2.0-beta.4 → 0.2.0-beta.41
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,243 +1,279 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
...
|
|
33
|
-
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Build pipeline contracts and app-owned adapter wiring.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* The build layer exposes three concentric shapes:
|
|
6
|
+
*
|
|
7
|
+
* - `BuildAdapter` — the low-level backend contract. Two implementations
|
|
8
|
+
* exist: a bundler-backed adapter (the real backend) and
|
|
9
|
+
* {@link ViteHostBuildAdapter} (a host-owned boundary marker that throws
|
|
10
|
+
* on direct use, for host runtimes that own their own build pipeline).
|
|
11
|
+
* - `BuildExecutor` — the runtime-facing facade stored on
|
|
12
|
+
* `appConfig.runtime.buildRuntime` via profile-based accessors.
|
|
13
|
+
* - App-owned helpers (`getAppBuildAdapter` and the `set*` counterparts) —
|
|
14
|
+
* the supported way for runtime code to read and mutate the active adapter
|
|
15
|
+
* per `EcoPagesAppConfig`. Profile executors live on
|
|
16
|
+
* `appConfig.runtime.buildRuntime`.
|
|
17
|
+
*/
|
|
18
|
+
import {} from './contracts/build-contracts.js';
|
|
19
|
+
import { createAppBuildManifest, getBrowserBuildPlugins, getServerBuildPlugins, } from './contracts/build-manifest.js';
|
|
20
|
+
import { getAppSourceTransforms } from '../plugins/source-transform.js';
|
|
21
|
+
import { createAliasResolverPlugin } from '../plugins/alias-resolver-plugin.js';
|
|
22
|
+
import { getJsxOwnershipPlugins } from './browser/jsx-ownership-plugins.js';
|
|
23
|
+
import { createRolldownBuildAdapter } from './rolldown/rolldown-build-adapter.js';
|
|
24
|
+
/**
|
|
25
|
+
* @remarks
|
|
26
|
+
* All runtime-bag setters funnel through here so `appConfig.runtime` is patched
|
|
27
|
+
* in one place instead of repeating the spread-merge at every call site.
|
|
28
|
+
*/
|
|
29
|
+
function patchAppRuntime(appConfig, patch) {
|
|
30
|
+
appConfig.runtime = {
|
|
31
|
+
...(appConfig.runtime ?? {}),
|
|
32
|
+
...patch,
|
|
33
|
+
};
|
|
37
34
|
}
|
|
38
35
|
function createHostOwnedBuildError(methodName) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
case "vite-host":
|
|
61
|
-
return createViteHostBuildAdapter();
|
|
62
|
-
case "rolldown-dev":
|
|
63
|
-
return createRolldownDevBuildAdapter();
|
|
64
|
-
case "rolldown":
|
|
65
|
-
default:
|
|
66
|
-
return createRolldownBuildAdapter();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
const defaultRolldownBuildAdapter = createBuildAdapter({ ownership: "rolldown" });
|
|
70
|
-
const defaultViteHostBuildAdapter = createBuildAdapter({ ownership: "vite-host" });
|
|
71
|
-
const defaultBuildAdapter = defaultRolldownBuildAdapter;
|
|
72
|
-
function getDefaultBuildAdapter(ownership = "rolldown") {
|
|
73
|
-
return ownership === "vite-host" ? defaultViteHostBuildAdapter : defaultRolldownBuildAdapter;
|
|
74
|
-
}
|
|
75
|
-
function getBuildAdapterOwnership(buildAdapter) {
|
|
76
|
-
return buildAdapter?.ownership ?? "rolldown";
|
|
77
|
-
}
|
|
78
|
-
function getAppBuildOwnership(appConfig) {
|
|
79
|
-
return appConfig.runtime?.buildOwnership ?? getBuildAdapterOwnership(appConfig.runtime?.buildAdapter);
|
|
80
|
-
}
|
|
81
|
-
function setAppBuildOwnership(appConfig, buildOwnership) {
|
|
82
|
-
appConfig.runtime = {
|
|
83
|
-
...appConfig.runtime ?? {},
|
|
84
|
-
buildOwnership
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
function getAppBuildAdapter(appConfig) {
|
|
88
|
-
return appConfig.runtime?.buildAdapter ?? getDefaultBuildAdapter(getAppBuildOwnership(appConfig));
|
|
89
|
-
}
|
|
90
|
-
function setAppBuildAdapter(appConfig, buildAdapter) {
|
|
91
|
-
appConfig.runtime = {
|
|
92
|
-
...appConfig.runtime ?? {},
|
|
93
|
-
buildOwnership: getBuildAdapterOwnership(buildAdapter),
|
|
94
|
-
buildAdapter
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
function getAppBuildManifest(appConfig) {
|
|
98
|
-
return appConfig.runtime?.buildManifest ?? createAppBuildManifest({
|
|
99
|
-
loaderPlugins: Array.from(appConfig.loaders.values())
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
function setAppBuildManifest(appConfig, buildManifest) {
|
|
103
|
-
appConfig.runtime = {
|
|
104
|
-
...appConfig.runtime ?? {},
|
|
105
|
-
buildManifest
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
function createConfiguredAppBuildManifest(appConfig, input) {
|
|
109
|
-
return createAppBuildManifest({
|
|
110
|
-
loaderPlugins: input?.loaderPlugins ?? Array.from(appConfig.loaders.values()),
|
|
111
|
-
runtimePlugins: input?.runtimePlugins,
|
|
112
|
-
browserBundlePlugins: input?.browserBundlePlugins,
|
|
113
|
-
browserRuntimeManifest: input?.browserRuntimeManifest
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
function updateAppBuildManifest(appConfig, input) {
|
|
117
|
-
setAppBuildManifest(appConfig, createConfiguredAppBuildManifest(appConfig, input));
|
|
118
|
-
}
|
|
119
|
-
async function collectConfiguredAppBuildManifestContributions(appConfig) {
|
|
120
|
-
const runtimePlugins = [];
|
|
121
|
-
const browserBundlePlugins = [];
|
|
122
|
-
const browserRuntimeManifests = [];
|
|
123
|
-
for (const processor of appConfig.processors.values()) {
|
|
124
|
-
await processor.prepareBuildContributions();
|
|
125
|
-
if (processor.plugins) {
|
|
126
|
-
runtimePlugins.push(...processor.plugins);
|
|
127
|
-
}
|
|
128
|
-
if (processor.buildPlugins) {
|
|
129
|
-
browserBundlePlugins.push(...processor.buildPlugins);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
for (const integration of appConfig.integrations) {
|
|
133
|
-
integration.setConfig(appConfig);
|
|
134
|
-
await integration.prepareBuildContributions();
|
|
135
|
-
runtimePlugins.push(...integration.plugins ?? []);
|
|
136
|
-
browserBundlePlugins.push(...integration.browserBuildPlugins ?? []);
|
|
137
|
-
browserRuntimeManifests.push(integration.browserRuntimeManifest);
|
|
138
|
-
}
|
|
139
|
-
return {
|
|
140
|
-
runtimePlugins,
|
|
141
|
-
browserBundlePlugins,
|
|
142
|
-
browserRuntimeManifest: mergeBrowserRuntimeManifests(...browserRuntimeManifests)
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
async function setupAppRuntimePlugins(options) {
|
|
146
|
-
for (const loader of options.appConfig.loaders.values()) {
|
|
147
|
-
options.onRuntimePlugin?.(loader);
|
|
148
|
-
}
|
|
149
|
-
for (const processor of options.appConfig.processors.values()) {
|
|
150
|
-
await processor.setup();
|
|
151
|
-
if (processor.plugins) {
|
|
152
|
-
for (const plugin of processor.plugins) {
|
|
153
|
-
options.onRuntimePlugin?.(plugin);
|
|
154
|
-
}
|
|
36
|
+
return new Error(`Vite-hosted builds are owned by the host runtime. Core cannot ${methodName} through the host-owned compatibility adapter.`);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Boundary-marker adapter for Vite-host ownership.
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
* This is not a real backend. It exists so `appConfig.runtime.buildAdapter`
|
|
43
|
+
* can carry the `'vite-host'` ownership without falling back to a
|
|
44
|
+
* framework-owned bundler path. Every method throws a
|
|
45
|
+
* {@link createHostOwnedBuildError} so misrouted calls fail loudly
|
|
46
|
+
* with a clear message instead of silently executing under a
|
|
47
|
+
* different backend.
|
|
48
|
+
*
|
|
49
|
+
* The class stays in the public surface for host runtimes that own
|
|
50
|
+
* their build pipeline (e.g. Nitro) and for app code that wants to
|
|
51
|
+
* opt into host-owned ownership before its host wires up the build.
|
|
52
|
+
*/
|
|
53
|
+
export class ViteHostBuildAdapter {
|
|
54
|
+
ownership = 'vite-host';
|
|
55
|
+
async build(_options) {
|
|
56
|
+
throw createHostOwnedBuildError('build');
|
|
155
57
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
integration.setConfig(options.appConfig);
|
|
159
|
-
integration.setRuntimeOrigin(options.runtimeOrigin);
|
|
160
|
-
if (options.hmrManager) {
|
|
161
|
-
integration.setHmrManager(options.hmrManager);
|
|
58
|
+
resolve(_importPath, _rootDir) {
|
|
59
|
+
throw createHostOwnedBuildError('resolve imports');
|
|
162
60
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
options.onRuntimePlugin?.(plugin);
|
|
61
|
+
getTranspileOptions(_profile) {
|
|
62
|
+
throw createHostOwnedBuildError('derive transpile options');
|
|
166
63
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
function
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
(
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
function getAppBuildExecutor(appConfig) {
|
|
191
|
-
return appConfig.runtime?.buildExecutor ?? getAppBuildAdapter(appConfig);
|
|
192
|
-
}
|
|
193
|
-
function setAppBuildExecutor(appConfig, buildExecutor) {
|
|
194
|
-
appConfig.runtime = {
|
|
195
|
-
...appConfig.runtime ?? {},
|
|
196
|
-
buildExecutor
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
function build(options, executor = defaultRolldownBuildAdapter) {
|
|
200
|
-
return executor.build(options).then((result) => {
|
|
201
|
-
if (result.success) {
|
|
202
|
-
normalizeNodeRuntimeBuildOutputs(
|
|
203
|
-
result.outputs.map((output) => output.path),
|
|
204
|
-
options.root ?? process.cwd()
|
|
205
|
-
);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Constructs a {@link ViteHostBuildAdapter}. Use only in code paths
|
|
67
|
+
* that explicitly opt into the host-owned boundary.
|
|
68
|
+
*/
|
|
69
|
+
export function createViteHostBuildAdapter() {
|
|
70
|
+
return new ViteHostBuildAdapter();
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Constructs a build adapter for the given ownership.
|
|
74
|
+
*
|
|
75
|
+
* @param options - When `options.ownership` is omitted, the default is
|
|
76
|
+
* `'rolldown'`. The Vite-host path is opt-in.
|
|
77
|
+
*/
|
|
78
|
+
export function createBuildAdapter(options) {
|
|
79
|
+
switch (options?.ownership ?? 'rolldown') {
|
|
80
|
+
case 'vite-host':
|
|
81
|
+
return createViteHostBuildAdapter();
|
|
82
|
+
case 'rolldown':
|
|
83
|
+
default:
|
|
84
|
+
return createRolldownBuildAdapter();
|
|
206
85
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
86
|
+
}
|
|
87
|
+
/** The shared default-bundler backend instance. Use {@link getAppBuildAdapter} in app-aware code. */
|
|
88
|
+
export const defaultRolldownBuildAdapter = createBuildAdapter({ ownership: 'rolldown' });
|
|
89
|
+
/** The shared Vite-host boundary instance. Use {@link getAppBuildAdapter} in app-aware code. */
|
|
90
|
+
export const defaultViteHostBuildAdapter = createBuildAdapter({ ownership: 'vite-host' });
|
|
91
|
+
/**
|
|
92
|
+
* Global default build adapter.
|
|
93
|
+
*
|
|
94
|
+
* @remarks
|
|
95
|
+
* Resolves to the bundled default-bundler adapter. New app-aware
|
|
96
|
+
* code should prefer {@link getAppBuildAdapter}.
|
|
97
|
+
*/
|
|
98
|
+
export const defaultBuildAdapter = defaultRolldownBuildAdapter;
|
|
99
|
+
/**
|
|
100
|
+
* Resolves the default build adapter for an ownership value.
|
|
101
|
+
*
|
|
102
|
+
* @param ownership - Defaults to `'rolldown'`. Returns the
|
|
103
|
+
* {@link ViteHostBuildAdapter} only when the caller explicitly asks
|
|
104
|
+
* for `'vite-host'`.
|
|
105
|
+
*/
|
|
106
|
+
export function getDefaultBuildAdapter(ownership = 'rolldown') {
|
|
107
|
+
return ownership === 'vite-host' ? defaultViteHostBuildAdapter : defaultRolldownBuildAdapter;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Reads the {@link BuildOwnership} declared on a {@link BuildAdapter}.
|
|
111
|
+
*
|
|
112
|
+
* @param buildAdapter - When `undefined`, defaults to `'rolldown'`.
|
|
113
|
+
*/
|
|
114
|
+
export function getBuildAdapterOwnership(buildAdapter) {
|
|
115
|
+
return buildAdapter?.ownership ?? 'rolldown';
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Resolves the build ownership of an app config.
|
|
119
|
+
*
|
|
120
|
+
* @remarks
|
|
121
|
+
* Resolution order: `appConfig.runtime.buildOwnership` (explicit), then
|
|
122
|
+
* the ownership declared on `appConfig.runtime.buildAdapter`, then the
|
|
123
|
+
* default `'rolldown'`.
|
|
124
|
+
*/
|
|
125
|
+
export function getAppBuildOwnership(appConfig) {
|
|
126
|
+
return appConfig.runtime?.buildOwnership ?? getBuildAdapterOwnership(appConfig.runtime?.buildAdapter);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Sets the explicit build ownership on an app config.
|
|
130
|
+
*
|
|
131
|
+
* @remarks
|
|
132
|
+
* The `ConfigBuilder` uses this when the caller calls
|
|
133
|
+
* `setBuildOwnership`. App code that needs a different ownership
|
|
134
|
+
* should call this directly with a new value; passing the same
|
|
135
|
+
* value is a no-op.
|
|
136
|
+
*/
|
|
137
|
+
export function setAppBuildOwnership(appConfig, buildOwnership) {
|
|
138
|
+
patchAppRuntime(appConfig, { buildOwnership });
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Returns the adapter owned by an app/runtime instance.
|
|
142
|
+
*
|
|
143
|
+
* @remarks
|
|
144
|
+
* Falls back through `appConfig.runtime.buildAdapter` →
|
|
145
|
+
* {@link getDefaultBuildAdapter} on the resolved ownership. Throws
|
|
146
|
+
* never; a missing adapter resolves to the global default.
|
|
147
|
+
*/
|
|
148
|
+
export function getAppBuildAdapter(appConfig) {
|
|
149
|
+
return appConfig.runtime?.buildAdapter ?? getDefaultBuildAdapter(getAppBuildOwnership(appConfig));
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Installs the adapter that should serve future builds for one app
|
|
153
|
+
* instance, and aligns the ownership field to the new adapter's
|
|
154
|
+
* declared ownership.
|
|
155
|
+
*/
|
|
156
|
+
export function setAppBuildAdapter(appConfig, buildAdapter) {
|
|
157
|
+
patchAppRuntime(appConfig, {
|
|
158
|
+
buildOwnership: getBuildAdapterOwnership(buildAdapter),
|
|
159
|
+
buildAdapter,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Returns the build manifest owned by an app/runtime instance.
|
|
164
|
+
*
|
|
165
|
+
* @remarks
|
|
166
|
+
* Falls back to a fresh manifest seeded from the config's loaders when
|
|
167
|
+
* the app config has no manifest yet. This is the supported way to
|
|
168
|
+
* read the manifest across the source-loading and asset-processing
|
|
169
|
+
* services.
|
|
170
|
+
*/
|
|
171
|
+
export function getAppBuildManifest(appConfig) {
|
|
172
|
+
return (appConfig.runtime?.buildManifest ??
|
|
173
|
+
createAppBuildManifest({
|
|
174
|
+
loaderPlugins: Array.from(appConfig.loaders?.values() ?? []),
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
177
|
+
/** Installs the build manifest that should be visible to one app instance.
|
|
178
|
+
*
|
|
179
|
+
* @remarks
|
|
180
|
+
* Production apps are sealed via {@link updateAppBuildManifest} during
|
|
181
|
+
* {@link ConfigBuilder.build}. Call `setAppBuildManifest` directly only in tests or
|
|
182
|
+
* when replacing the entire manifest object; partial updates should use
|
|
183
|
+
* {@link updateAppBuildManifest}.
|
|
184
|
+
*/
|
|
185
|
+
export function setAppBuildManifest(appConfig, buildManifest) {
|
|
186
|
+
patchAppRuntime(appConfig, { buildManifest });
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Builds a fresh app manifest from the config's loaders plus optional
|
|
190
|
+
* caller-supplied runtime/browser contributions.
|
|
191
|
+
*
|
|
192
|
+
* @remarks
|
|
193
|
+
* Loader plugins are always taken from the config; runtime and
|
|
194
|
+
* browser-bundle plugins are passed through from the caller when
|
|
195
|
+
* supplied, otherwise left empty for later population by
|
|
196
|
+
* {@link collectConfiguredAppBuildManifestContributions}.
|
|
197
|
+
*/
|
|
198
|
+
export function createConfiguredAppBuildManifest(appConfig, input) {
|
|
199
|
+
return createAppBuildManifest({
|
|
200
|
+
loaderPlugins: input?.loaderPlugins ?? Array.from(appConfig.loaders.values()),
|
|
201
|
+
runtimePlugins: input?.runtimePlugins,
|
|
202
|
+
browserBundlePlugins: input?.browserBundlePlugins,
|
|
203
|
+
browserRuntimeManifest: input?.browserRuntimeManifest,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Replaces the app-owned manifest using config-owned loaders and the
|
|
208
|
+
* caller-supplied contribution input.
|
|
209
|
+
*
|
|
210
|
+
* @remarks
|
|
211
|
+
* Primary production entry: `ConfigBuilder.build()` passes the return value of
|
|
212
|
+
* {@link collectConfiguredAppBuildManifestContributions} here to seal
|
|
213
|
+
* `appConfig.runtime.buildManifest` before startup.
|
|
214
|
+
*/
|
|
215
|
+
export function updateAppBuildManifest(appConfig, input) {
|
|
216
|
+
setAppBuildManifest(appConfig, createConfiguredAppBuildManifest(appConfig, input));
|
|
217
|
+
}
|
|
218
|
+
export { collectConfiguredAppBuildManifestContributions, ensureIntegrationRuntimeReady, setupAppRuntimePlugins, } from './app-build-manifest-runtime.js';
|
|
219
|
+
/**
|
|
220
|
+
* Returns the server-bundle plugin list for one app/runtime instance.
|
|
221
|
+
*
|
|
222
|
+
* @remarks
|
|
223
|
+
* Reads from the app's sealed build manifest; the manifest itself is
|
|
224
|
+
* the source of truth for which plugins participate in the server
|
|
225
|
+
* bundle.
|
|
226
|
+
*/
|
|
227
|
+
export function getAppServerBuildPlugins(appConfig) {
|
|
228
|
+
const projectDir = appConfig.absolutePaths?.projectDir;
|
|
229
|
+
const aliasPlugin = projectDir ? [createAliasResolverPlugin(projectDir)] : [];
|
|
230
|
+
return [...aliasPlugin, ...getServerBuildPlugins(getAppBuildManifest(appConfig))];
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Returns the browser-bundle plugin list for one app/runtime instance.
|
|
234
|
+
*
|
|
235
|
+
* @remarks
|
|
236
|
+
* Reads from the app's sealed build manifest. The browser-bundle
|
|
237
|
+
* manifest is the source of truth for which plugins participate in the
|
|
238
|
+
* browser bundle.
|
|
239
|
+
*
|
|
240
|
+
* Plugins whose `name` matches a registered {@link EcoSourceTransform} are
|
|
241
|
+
* excluded here because browser builds run those transforms via the Rolldown
|
|
242
|
+
* bridge post-load pass instead of as competing `onLoad` handlers.
|
|
243
|
+
*/
|
|
244
|
+
export function getAppBrowserBuildPlugins(appConfig) {
|
|
245
|
+
const manifest = getAppBuildManifest(appConfig);
|
|
246
|
+
const sourceTransformNames = new Set(getAppSourceTransforms(appConfig).map((transform) => transform.name));
|
|
247
|
+
const browserPlugins = getBrowserBuildPlugins(manifest).filter((plugin) => !sourceTransformNames.has(plugin.name));
|
|
248
|
+
const projectDir = appConfig.absolutePaths?.projectDir;
|
|
249
|
+
const aliasPlugin = projectDir ? [createAliasResolverPlugin(projectDir)] : [];
|
|
250
|
+
return [...aliasPlugin, ...browserPlugins, ...getJsxOwnershipPlugins(appConfig)];
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Runs a build through the active pipeline.
|
|
254
|
+
*
|
|
255
|
+
* @remarks
|
|
256
|
+
* `executor` defaults to the default-bundler adapter for non-app-aware
|
|
257
|
+
* callsites. App-aware code should pass a profile executor from
|
|
258
|
+
* {@link requireBuildRuntime} to honor the per-app pipeline.
|
|
259
|
+
*/
|
|
260
|
+
export function build(options, executor = defaultRolldownBuildAdapter) {
|
|
261
|
+
return executor.build(options);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Default transpile-options helper for callsites without app runtime
|
|
265
|
+
* context.
|
|
266
|
+
*
|
|
267
|
+
* @remarks
|
|
268
|
+
* New app-aware code should prefer {@link getAppTranspileOptions}.
|
|
269
|
+
*/
|
|
270
|
+
export function getTranspileOptions(profile) {
|
|
271
|
+
return defaultRolldownBuildAdapter.getTranspileOptions(profile);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Resolves transpile options for one app/runtime instance by asking
|
|
275
|
+
* the app's adapter.
|
|
276
|
+
*/
|
|
277
|
+
export function getAppTranspileOptions(appConfig, profile) {
|
|
278
|
+
return getAppBuildAdapter(appConfig).getTranspileOptions(profile);
|
|
279
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { IntegrationPlugin } from '../../plugins/integration-plugin.js';
|
|
2
|
+
import type { Processor } from '../../plugins/processor.js';
|
|
3
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Optional contributor surface for build-time cache invalidation.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Processors and integrations may override {@link didChange} to report that
|
|
9
|
+
* their build inputs changed independently of route source files.
|
|
10
|
+
*/
|
|
11
|
+
export interface BuildInputChangeContributor {
|
|
12
|
+
/**
|
|
13
|
+
* Returns `true` when this contributor's build inputs changed since the last
|
|
14
|
+
* persisted incremental build metadata was written.
|
|
15
|
+
*/
|
|
16
|
+
didChange?(): boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Returns whether a processor or integration signals changed build inputs. */
|
|
19
|
+
export declare function didBuildInputContributorChange(contributor: BuildInputChangeContributor): boolean;
|
|
20
|
+
/** Hashes the app's eco.config.ts file when present. */
|
|
21
|
+
export declare function hashAppConfigFile(appConfig: EcoPagesAppConfig): string;
|
|
22
|
+
/** Fingerprints processor/integration build-input state for cache invalidation. */
|
|
23
|
+
export declare function createBuildInputsFingerprint(appConfig: EcoPagesAppConfig): string;
|
|
24
|
+
/** Returns true when any processor or integration reports changed build inputs. */
|
|
25
|
+
export declare function haveBuildInputsChanged(appConfig: EcoPagesAppConfig): boolean;
|
|
26
|
+
/** Collects every processor and integration that can invalidate incremental builds. */
|
|
27
|
+
export declare function collectBuildInputContributors(appConfig: EcoPagesAppConfig): BuildInputChangeContributor[];
|
|
28
|
+
export type { Processor, IntegrationPlugin };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { fileSystem } from '@ecopages/file-system';
|
|
2
|
+
/** Returns whether a processor or integration signals changed build inputs. */
|
|
3
|
+
export function didBuildInputContributorChange(contributor) {
|
|
4
|
+
return contributor.didChange?.() === true;
|
|
5
|
+
}
|
|
6
|
+
/** Hashes the app's eco.config.ts file when present. */
|
|
7
|
+
export function hashAppConfigFile(appConfig) {
|
|
8
|
+
const configPath = appConfig.absolutePaths?.config;
|
|
9
|
+
if (!configPath || !fileSystem.exists(configPath)) {
|
|
10
|
+
return 'missing';
|
|
11
|
+
}
|
|
12
|
+
return fileSystem.hash(configPath);
|
|
13
|
+
}
|
|
14
|
+
/** Fingerprints processor/integration build-input state for cache invalidation. */
|
|
15
|
+
export function createBuildInputsFingerprint(appConfig) {
|
|
16
|
+
const changedContributors = [
|
|
17
|
+
...Array.from(appConfig.processors?.values() ?? [])
|
|
18
|
+
.filter((processor) => didBuildInputContributorChange(processor))
|
|
19
|
+
.map((processor) => `processor:${processor.getName()}`),
|
|
20
|
+
...(appConfig.integrations ?? [])
|
|
21
|
+
.filter((integration) => didBuildInputContributorChange(integration))
|
|
22
|
+
.map((integration) => `integration:${integration.name}`),
|
|
23
|
+
];
|
|
24
|
+
return changedContributors.length > 0 ? changedContributors.sort().join('|') : 'stable';
|
|
25
|
+
}
|
|
26
|
+
/** Returns true when any processor or integration reports changed build inputs. */
|
|
27
|
+
export function haveBuildInputsChanged(appConfig) {
|
|
28
|
+
return createBuildInputsFingerprint(appConfig) !== 'stable';
|
|
29
|
+
}
|
|
30
|
+
/** Collects every processor and integration that can invalidate incremental builds. */
|
|
31
|
+
export function collectBuildInputContributors(appConfig) {
|
|
32
|
+
return [...Array.from(appConfig.processors?.values() ?? []), ...(appConfig.integrations ?? [])];
|
|
33
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Filename written beside persisted production build artifacts that store incremental metadata. */
|
|
2
|
+
export declare const ROUTE_MODULE_BUILD_CACHE_FILENAME = ".build-cache.json";
|
|
3
|
+
/** @deprecated Use {@link ROUTE_MODULE_BUILD_CACHE_FILENAME}; server-entry caches share the same filename. */
|
|
4
|
+
export declare const SERVER_ENTRY_BUILD_CACHE_FILENAME = ".build-cache.json";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Filename written beside persisted production build artifacts that store incremental metadata. */
|
|
2
|
+
export const ROUTE_MODULE_BUILD_CACHE_FILENAME = '.build-cache.json';
|
|
3
|
+
/** @deprecated Use {@link ROUTE_MODULE_BUILD_CACHE_FILENAME}; server-entry caches share the same filename. */
|
|
4
|
+
export const SERVER_ENTRY_BUILD_CACHE_FILENAME = ROUTE_MODULE_BUILD_CACHE_FILENAME;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { EcoBuildPlugin } from '../contracts/build-types.js';
|
|
2
|
+
import type { BuildOptions } from '../contracts/build-contracts.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the installed `@ecopages/core` package version for cache invalidation.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getCorePackageVersion(): string;
|
|
7
|
+
/** Stable fingerprint for JSX options used in build and disk cache keys. */
|
|
8
|
+
export declare function createJsxCacheKey(jsx: BuildOptions['jsx']): string;
|
|
9
|
+
/** Stable fingerprint for ordered build plugins. */
|
|
10
|
+
export declare function createPluginCacheKey(plugins?: EcoBuildPlugin[]): string;
|
|
11
|
+
/** Stable fingerprint for ordered source transforms. */
|
|
12
|
+
export declare function createSourceTransformCacheKey(sourceTransforms: BuildOptions['sourceTransforms']): string;
|
|
13
|
+
/**
|
|
14
|
+
* Stable fingerprint of a function body for cache and request identity keys.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* Hashes `fn.toString()`. Suitable for in-process and persisted keys that must
|
|
18
|
+
* agree within one install; not stable across minifiers or renames.
|
|
19
|
+
*/
|
|
20
|
+
export declare function hashFunctionIdentity(fn: (...args: never[]) => unknown): string;
|
|
21
|
+
/** @deprecated Use {@link hashFunctionIdentity}. */
|
|
22
|
+
export declare const hashPluginSetup: typeof hashFunctionIdentity;
|