@ecopages/core 0.2.0-beta.9 → 0.2.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -14
- package/package.json +368 -57
- package/src/adapters/README.md +6 -2
- package/src/adapters/abstract/application-adapter.d.ts +57 -5
- package/src/adapters/abstract/application-adapter.js +261 -203
- package/src/adapters/abstract/router-adapter.js +12 -4
- package/src/adapters/abstract/segment-path-matcher.d.ts +6 -0
- package/src/adapters/abstract/segment-path-matcher.js +147 -0
- package/src/adapters/abstract/server-adapter.d.ts +13 -2
- package/src/adapters/abstract/server-adapter.js +22 -14
- package/src/adapters/abstract/ws-pattern-matcher.d.ts +2 -50
- package/src/adapters/abstract/ws-pattern-matcher.js +24 -57
- package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
- package/src/adapters/bun/client-bridge.js +51 -50
- package/src/adapters/bun/create-app.d.ts +5 -7
- package/src/adapters/bun/create-app.js +169 -154
- package/src/adapters/bun/hmr-manager.d.ts +2 -3
- package/src/adapters/bun/hmr-manager.js +62 -57
- package/src/adapters/bun/index.d.ts +1 -1
- package/src/adapters/bun/index.js +2 -8
- package/src/adapters/bun/runtime-host.d.ts +1 -1
- package/src/adapters/bun/runtime-host.js +61 -54
- package/src/adapters/bun/server-adapter.d.ts +34 -53
- package/src/adapters/bun/server-adapter.js +557 -637
- package/src/adapters/bun/static-preview-host.d.ts +1 -1
- package/src/adapters/bun/static-preview-host.js +43 -41
- package/src/adapters/create-app.d.ts +1 -12
- package/src/adapters/create-app.js +11 -72
- package/src/adapters/index.d.ts +2 -2
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +4 -3
- package/src/adapters/node/create-app.js +123 -98
- package/src/adapters/node/http-request-bridge.js +147 -106
- package/src/adapters/node/node-client-bridge.js +62 -64
- package/src/adapters/node/node-hmr-manager.d.ts +2 -3
- package/src/adapters/node/node-hmr-manager.js +58 -48
- package/src/adapters/node/runtime-host.d.ts +1 -1
- package/src/adapters/node/runtime-host.js +96 -89
- package/src/adapters/node/server-adapter-dependencies.js +18 -17
- package/src/adapters/node/server-adapter.d.ts +28 -8
- package/src/adapters/node/server-adapter.js +349 -302
- package/src/adapters/node/static-content-server.js +172 -186
- package/src/adapters/node/static-preview-host.d.ts +1 -1
- package/src/adapters/node/static-preview-host.js +88 -64
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
- package/src/adapters/shared/{hmr-html-response.d.ts → hmr/hmr-html-response.d.ts} +2 -2
- package/src/adapters/shared/hmr/hmr-html-response.js +50 -0
- package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +92 -0
- package/src/adapters/shared/hmr/shared-hmr-manager.js +446 -0
- package/src/adapters/shared/http/api-request-pipeline.d.ts +23 -0
- package/src/adapters/shared/http/api-request-pipeline.js +132 -0
- package/src/adapters/shared/{api-response.d.ts → http/api-response.d.ts} +1 -1
- package/src/adapters/shared/http/api-response.js +79 -0
- package/src/adapters/shared/http/create-body-response.d.ts +12 -0
- package/src/adapters/shared/http/create-body-response.js +26 -0
- package/src/adapters/shared/http/define-api-handler.d.ts +48 -0
- package/src/adapters/shared/http/define-api-handler.js +49 -0
- package/src/adapters/shared/{explicit-static-render-preparation.d.ts → http/explicit-static-render-preparation.d.ts} +3 -3
- package/src/adapters/shared/http/explicit-static-render-preparation.js +29 -0
- package/src/adapters/shared/{explicit-static-route-matcher.d.ts → http/explicit-static-route-matcher.d.ts} +3 -9
- package/src/adapters/shared/http/explicit-static-route-matcher.js +59 -0
- package/src/adapters/shared/{file-route-middleware-pipeline.d.ts → http/file-route-middleware-pipeline.d.ts} +2 -2
- package/src/adapters/shared/http/file-route-middleware-pipeline.js +84 -0
- package/src/adapters/shared/{fs-server-response-factory.d.ts → http/fs-server-response-factory.d.ts} +7 -2
- package/src/adapters/shared/http/fs-server-response-factory.js +106 -0
- package/src/adapters/shared/{fs-server-response-matcher.d.ts → http/fs-server-response-matcher.d.ts} +25 -5
- package/src/adapters/shared/http/fs-server-response-matcher.js +260 -0
- package/src/adapters/shared/http/run-middleware-chain.d.ts +5 -0
- package/src/adapters/shared/http/run-middleware-chain.js +17 -0
- package/src/adapters/shared/{application-adapter.d.ts → runtime/application-adapter.d.ts} +2 -2
- package/src/adapters/shared/runtime/application-adapter.js +75 -0
- package/src/adapters/shared/runtime/collect-dev-prewarm-plan.d.ts +11 -0
- package/src/adapters/shared/runtime/collect-dev-prewarm-plan.js +29 -0
- package/src/adapters/shared/runtime/copy-runtime-public-dir.js +27 -0
- package/src/adapters/shared/runtime/dev-static-route-prewarm.d.ts +16 -0
- package/src/adapters/shared/runtime/dev-static-route-prewarm.js +66 -0
- package/src/adapters/shared/runtime/port-manager.d.ts +116 -0
- package/src/adapters/shared/runtime/port-manager.js +226 -0
- package/src/adapters/shared/{render-context.d.ts → runtime/render-context.d.ts} +2 -2
- package/src/adapters/shared/runtime/render-context.js +99 -0
- package/src/adapters/shared/{runtime-app-bootstrap.d.ts → runtime/runtime-app-bootstrap.d.ts} +4 -2
- package/src/adapters/shared/runtime/runtime-app-bootstrap.js +38 -0
- package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +45 -0
- package/src/adapters/shared/runtime/runtime-server-lifecycle.js +71 -0
- package/src/adapters/shared/{server-adapter.d.ts → runtime/server-adapter.d.ts} +31 -50
- package/src/adapters/shared/runtime/server-adapter.js +301 -0
- package/src/adapters/shared/{server-route-handler.d.ts → runtime/server-route-handler.d.ts} +6 -33
- package/src/adapters/shared/runtime/server-route-handler.js +77 -0
- package/src/adapters/shared/{server-static-builder.d.ts → runtime/server-static-builder.d.ts} +26 -31
- package/src/adapters/shared/runtime/server-static-builder.js +172 -0
- package/src/adapters/shared/{static-preview-host.d.ts → runtime/static-preview-host.d.ts} +6 -1
- package/src/adapters/shared/{node-http-websocket-upgrades.d.ts → ws/node-http-websocket-upgrades.d.ts} +1 -1
- package/src/adapters/shared/ws/node-http-websocket-upgrades.js +109 -0
- package/src/adapters/shared/ws/websocket-lifecycle.d.ts +24 -0
- package/src/adapters/shared/ws/websocket-lifecycle.js +62 -0
- package/src/build/README.md +165 -45
- package/src/build/app-build-manifest-runtime.d.ts +39 -0
- package/src/build/app-build-manifest-runtime.js +145 -0
- package/src/build/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +4 -0
- package/src/build/browser/browser-runtime-manifest.js +65 -0
- package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +3 -5
- package/src/build/browser/browser-runtime-plugin-helpers.js +32 -0
- package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +12 -13
- package/src/build/browser/browser-runtime-plugin.js +218 -0
- package/src/build/browser/jsx-ownership-plugins.d.ts +24 -0
- package/src/build/browser/jsx-ownership-plugins.js +55 -0
- package/src/build/browser/lit-static-render-worker-context.d.ts +2 -0
- package/src/build/browser/lit-static-render-worker-context.js +4 -0
- package/src/build/build-adapter.d.ts +25 -355
- package/src/build/build-adapter.js +258 -265
- package/src/build/{build-input-fingerprint.d.ts → cache/build-input-fingerprint.d.ts} +3 -3
- package/src/build/cache/build-input-fingerprint.js +33 -0
- package/src/build/cache/cache-constants.d.ts +4 -0
- package/src/build/cache/cache-constants.js +4 -0
- package/src/build/cache/cache-keys.d.ts +22 -0
- package/src/build/cache/cache-keys.js +71 -0
- package/src/build/{pages-unified-graph-build.d.ts → cache/pages-unified-graph-build.d.ts} +1 -1
- package/src/build/cache/pages-unified-graph-build.js +199 -0
- package/src/build/cache/production-build-cache.d.ts +21 -0
- package/src/build/cache/production-build-cache.js +56 -0
- package/src/build/{server-entry-build-cache.d.ts → cache/server-entry-build-cache.d.ts} +3 -4
- package/src/build/cache/server-entry-build-cache.js +153 -0
- package/src/build/contracts/build-contracts.d.ts +96 -0
- package/src/build/contracts/build-contracts.js +1 -0
- package/src/build/contracts/build-manifest.d.ts +90 -0
- package/src/build/contracts/build-manifest.js +64 -0
- package/src/build/contracts/build-types.js +1 -0
- package/src/build/contracts/content-virtual-modules.d.ts +12 -0
- package/src/build/contracts/content-virtual-modules.js +29 -0
- package/src/build/{rolldown-adapter-helpers.d.ts → rolldown/rolldown-adapter-helpers.d.ts} +32 -9
- package/src/build/rolldown/rolldown-adapter-helpers.js +472 -0
- package/src/build/{rolldown-build-adapter.d.ts → rolldown/rolldown-build-adapter.d.ts} +3 -7
- package/src/build/rolldown/rolldown-build-adapter.js +57 -0
- package/src/build/{rolldown-build-invocation-metrics.d.ts → rolldown/rolldown-build-invocation-metrics.d.ts} +1 -1
- package/src/build/rolldown/rolldown-build-invocation-metrics.js +39 -0
- package/src/build/{rolldown-plugin-bridge.d.ts → rolldown/rolldown-plugin-bridge.d.ts} +7 -2
- package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
- package/src/build/{rolldown-source-transform-pass.d.ts → rolldown/rolldown-source-transform-pass.d.ts} +1 -1
- package/src/build/rolldown/rolldown-source-transform-pass.js +70 -0
- package/src/build/rolldown/runtime-build-output-normalizer.js +227 -0
- package/src/build/rolldown/server-side-css-shim-plugin.js +58 -0
- package/src/build/runtime/build-profile-options.d.ts +7 -0
- package/src/build/runtime/build-profile-options.js +37 -0
- package/src/build/runtime/build-request-identity.d.ts +17 -0
- package/src/build/runtime/build-request-identity.js +79 -0
- package/src/build/runtime/build-request-policy.d.ts +58 -0
- package/src/build/runtime/build-request-policy.js +84 -0
- package/src/build/runtime/build-runtime.d.ts +28 -0
- package/src/build/runtime/build-runtime.js +75 -0
- package/src/build/runtime/deduping-build-executor.d.ts +21 -0
- package/src/build/runtime/deduping-build-executor.js +40 -0
- package/src/build/{parallel-build-executor.d.ts → runtime/parallel-build-executor.d.ts} +1 -1
- package/src/build/runtime/parallel-build-executor.js +60 -0
- package/src/build/{serialized-build-executor.d.ts → runtime/serialized-build-executor.d.ts} +1 -1
- package/src/build/runtime/serialized-build-executor.js +79 -0
- package/src/cache/index.d.ts +2 -1
- package/src/cache/index.js +7 -6
- package/src/cache/module-parse-cache.d.ts +5 -0
- package/src/cache/module-parse-cache.js +122 -67
- package/src/cache/module-transform-profiler.d.ts +8 -0
- package/src/cache/module-transform-profiler.js +8 -0
- package/src/client/navigation-scripts/classification.d.ts +16 -0
- package/src/client/navigation-scripts/classification.js +49 -0
- package/src/client/navigation-scripts/index.d.ts +3 -0
- package/src/client/navigation-scripts/index.js +3 -0
- package/src/client/navigation-scripts/navigation-scripts.test.browser.d.ts +1 -0
- package/src/client/navigation-scripts/navigation-scripts.test.browser.js +61 -0
- package/src/client/navigation-scripts/registry.d.ts +11 -0
- package/src/client/navigation-scripts/registry.js +16 -0
- package/src/client/navigation-scripts/rerun-queue.d.ts +37 -0
- package/src/client/navigation-scripts/rerun-queue.js +90 -0
- package/src/client/scroll.d.ts +17 -0
- package/src/client/scroll.js +33 -0
- package/src/client/scroll.test.browser.d.ts +1 -0
- package/src/client/scroll.test.browser.js +31 -0
- package/src/client/view-transitions.d.ts +32 -0
- package/src/client/view-transitions.js +120 -0
- package/src/client/view-transitions.test.browser.d.ts +1 -0
- package/src/client/view-transitions.test.browser.js +56 -0
- package/src/config/README.md +1 -1
- package/src/config/config-builder.d.ts +40 -20
- package/src/config/config-builder.js +645 -610
- package/src/config/constants.d.ts +1 -0
- package/src/config/constants.js +44 -23
- package/src/declarations.d.ts +1 -0
- package/src/dev/README.md +24 -0
- package/src/dev/client-bridge-registry.d.ts +5 -0
- package/src/dev/client-bridge-registry.js +10 -0
- package/src/dev/dev-client-ownership.d.ts +7 -0
- package/src/dev/dev-client-ownership.js +8 -0
- package/src/dev/hmr-manager-registry.d.ts +8 -0
- package/src/dev/hmr-manager-registry.js +10 -0
- package/src/dev/host-runtime.d.ts +3 -0
- package/src/dev/host-runtime.js +25 -23
- package/src/dev/runtime-server-started-message.d.ts +2 -0
- package/src/dev/runtime-server-started-message.js +3 -0
- package/src/dev/sc-server.js +106 -103
- package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
- package/src/dev/transform-server/dev-transform-bundler.js +79 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.js +127 -0
- package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
- package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
- package/src/dev/transform-server/dev-transform-server.js +191 -0
- package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-url.js +58 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +28 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.js +166 -0
- package/src/dev/transform-server/index.d.ts +6 -0
- package/src/dev/transform-server/index.js +4 -0
- package/src/dev/transform-server/types.d.ts +15 -0
- package/src/dev/transform-server/types.js +1 -0
- package/src/dev-toolbar/README.md +52 -0
- package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
- package/src/dev-toolbar/define-dev-tool.js +9 -0
- package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
- package/src/dev-toolbar/dev-toolbar-config.js +19 -0
- package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
- package/src/dev-toolbar/dev-toolbar-host.js +117 -0
- package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
- package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
- package/src/dev-toolbar/dev-toolbar-manifest-contract.d.ts +22 -0
- package/src/dev-toolbar/dev-toolbar-manifest-contract.js +2 -0
- package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
- package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
- package/src/dev-toolbar/dev-toolbar-package.d.ts +34 -0
- package/src/dev-toolbar/dev-toolbar-package.js +78 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
- package/src/diagnostics/request-build-dedupe.d.ts +18 -0
- package/src/diagnostics/request-build-dedupe.js +39 -0
- package/src/diagnostics/request-pipeline-metrics.d.ts +38 -0
- package/src/diagnostics/request-pipeline-metrics.js +121 -0
- package/src/diagnostics/startup-trace.d.ts +81 -0
- package/src/diagnostics/startup-trace.js +281 -0
- package/src/eco/README.md +17 -0
- package/src/eco/component-identity.d.ts +13 -0
- package/src/eco/component-identity.js +18 -0
- package/src/eco/eco-declared-component.d.ts +15 -0
- package/src/eco/eco-declared-component.js +23 -0
- package/src/eco/eco.browser.js +63 -70
- package/src/eco/eco.js +163 -97
- package/src/eco/eco.types.d.ts +47 -8
- package/src/eco/eco.types.js +5 -0
- package/src/eco/eco.utils.d.ts +1 -1
- package/src/eco/eco.utils.js +1 -10
- package/src/eco/global-injector-map.js +55 -41
- package/src/eco/lazy-injector-map.js +90 -60
- package/src/eco/module-dependencies.js +52 -44
- package/src/eco/page-layout-normalization.d.ts +21 -0
- package/src/eco/page-layout-normalization.js +69 -0
- package/src/env.d.ts +2 -0
- package/src/errors/http-error.d.ts +8 -0
- package/src/errors/http-error.js +66 -49
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -6
- package/src/errors/locals-access-error.js +5 -8
- package/src/errors/undeclared-component-dependency-error.d.ts +11 -0
- package/src/errors/undeclared-component-dependency-error.js +17 -0
- package/src/global/app-logger.js +3 -6
- package/src/hmr/README.md +21 -0
- package/src/hmr/client/hmr-runtime.js +119 -110
- package/src/hmr/client/module-update.d.ts +13 -0
- package/src/hmr/client/module-update.js +39 -0
- package/src/hmr/hmr-asset-paths.d.ts +14 -0
- package/src/hmr/hmr-asset-paths.js +22 -0
- package/src/hmr/hmr-entrypoint-output.d.ts +21 -0
- package/src/hmr/hmr-entrypoint-output.js +34 -0
- package/src/hmr/hmr-file-change-prep.d.ts +10 -0
- package/src/hmr/hmr-file-change-prep.js +14 -0
- package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
- package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
- package/src/hmr/hmr-runtime-paths.d.ts +10 -0
- package/src/hmr/hmr-runtime-paths.js +13 -0
- package/src/hmr/hmr-strategy.d.ts +9 -0
- package/src/hmr/hmr-strategy.js +113 -42
- package/src/hmr/strategies/default-hmr-strategy.js +55 -33
- package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -97
- package/src/hmr/strategies/js-hmr-strategy.js +107 -167
- package/src/hmr/strategies/server-rendered-template-hmr-strategy.d.ts +17 -0
- package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +35 -0
- package/src/index.browser.d.ts +1 -0
- package/src/index.browser.js +2 -4
- package/src/index.d.ts +4 -1
- package/src/index.js +7 -21
- package/src/islands/README.md +25 -0
- package/src/islands/island-host.d.ts +37 -0
- package/src/islands/island-host.js +55 -0
- package/src/plugins/README.md +4 -2
- package/src/plugins/alias-resolver-cache.d.ts +6 -9
- package/src/plugins/alias-resolver-cache.js +114 -97
- package/src/plugins/alias-resolver-plugin.d.ts +3 -3
- package/src/plugins/alias-resolver-plugin.js +35 -62
- package/src/plugins/define-integration.d.ts +26 -0
- package/src/plugins/define-integration.js +20 -0
- package/src/plugins/eco-component-meta-plugin.d.ts +6 -102
- package/src/plugins/eco-component-meta-plugin.js +123 -162
- package/src/plugins/foreign-jsx-override-plugin.d.ts +1 -1
- package/src/plugins/foreign-jsx-override-plugin.js +49 -37
- package/src/plugins/integration-plugin.d.ts +28 -15
- package/src/plugins/integration-plugin.js +212 -195
- package/src/plugins/jsx-import-source.utils.d.ts +8 -0
- package/src/plugins/jsx-import-source.utils.js +21 -0
- package/src/plugins/package-specifier.d.ts +12 -0
- package/src/plugins/package-specifier.js +33 -0
- package/src/plugins/processor.d.ts +79 -12
- package/src/plugins/processor.js +188 -136
- package/src/plugins/runtime-capability.js +1 -0
- package/src/plugins/source-transform.d.ts +1 -1
- package/src/plugins/source-transform.js +109 -79
- package/src/plugins/tsconfig-import-resolver.d.ts +37 -0
- package/src/plugins/tsconfig-import-resolver.js +262 -0
- package/src/route-renderer/GRAPH.md +24 -30
- package/src/route-renderer/README.md +52 -32
- package/src/route-renderer/orchestration/document-shell/document-shell-render.service.d.ts +107 -0
- package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +155 -0
- package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.d.ts +32 -0
- package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +52 -0
- package/src/route-renderer/orchestration/{component-render-context.d.ts → foreign-child/component-render-context.d.ts} +8 -15
- package/src/route-renderer/orchestration/foreign-child/component-render-context.js +196 -0
- package/src/route-renderer/orchestration/{render-output.utils.d.ts → foreign-child/foreign-child-output.utils.d.ts} +20 -7
- package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +195 -0
- package/src/route-renderer/orchestration/{foreign-subtree-execution.service.d.ts → foreign-child/foreign-subtree-execution.service.d.ts} +64 -34
- package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +354 -0
- package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.d.ts +19 -0
- package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +36 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +39 -153
- package/src/route-renderer/orchestration/integration-renderer.js +803 -1008
- package/src/route-renderer/orchestration/integration-renderer.test-fixtures.d.ts +75 -0
- package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +173 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.d.ts +10 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +132 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph.d.ts +34 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph.js +89 -0
- package/src/route-renderer/orchestration/{ownership-validation.service.d.ts → ownership-graph/ownership-validation.service.d.ts} +6 -2
- package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +77 -0
- package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.d.ts +7 -0
- package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +30 -0
- package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.d.ts +15 -0
- package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.js +9 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.d.ts +5 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.js +30 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.d.ts +12 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +32 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +126 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +542 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.d.ts +47 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +248 -0
- package/src/route-renderer/orchestration/{processed-asset-dedupe.d.ts → page-browser-graph/processed-asset-dedupe.d.ts} +1 -1
- package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +23 -0
- package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.d.ts +29 -0
- package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.js +54 -0
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +38 -0
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +26 -0
- package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.d.ts +6 -0
- package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +25 -0
- package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.d.ts +15 -0
- package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +43 -0
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +25 -0
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +44 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.d.ts +26 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +44 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.d.ts +4 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +30 -0
- package/src/route-renderer/orchestration/{route-render-orchestrator.d.ts → route-pipeline/route-render-orchestrator.d.ts} +24 -54
- package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +215 -0
- package/src/{integrations/ghtml/ghtml-renderer.d.ts → route-renderer/orchestration/string-markup-renderer.d.ts} +8 -10
- package/src/route-renderer/orchestration/string-markup-renderer.js +53 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +121 -121
- package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
- package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +1 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +64 -51
- package/src/route-renderer/page-loading/file-scoped-dependency-components.d.ts +42 -0
- package/src/route-renderer/page-loading/file-scoped-dependency-components.js +94 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +47 -36
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +39 -28
- package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
- package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
- package/src/route-renderer/page-loading/page-module-loader.d.ts +2 -1
- package/src/route-renderer/page-loading/page-module-loader.js +136 -124
- package/src/route-renderer/page-loading/resolved-page-dependencies.d.ts +12 -0
- package/src/route-renderer/page-loading/resolved-page-dependencies.js +38 -0
- package/src/route-renderer/route-renderer.js +74 -76
- package/src/router/README.md +31 -0
- package/src/router/client/link-intent.d.ts +11 -21
- package/src/router/client/link-intent.js +56 -30
- package/src/router/client/link-intent.test.browser.js +50 -39
- package/src/router/client/link-navigation-policy.d.ts +45 -0
- package/src/router/client/link-navigation-policy.js +122 -0
- package/src/router/client/link-navigation-policy.test.browser.d.ts +1 -0
- package/src/router/client/link-navigation-policy.test.browser.js +82 -0
- package/src/router/client/navigation-coordinator.d.ts +1 -1
- package/src/router/client/navigation-coordinator.js +235 -211
- package/src/router/client/navigation-lifecycle.d.ts +55 -0
- package/src/router/client/navigation-lifecycle.js +50 -0
- package/src/router/client/navigation-lifecycle.test.browser.d.ts +1 -0
- package/src/router/client/navigation-lifecycle.test.browser.js +118 -0
- package/src/router/server/route-registry.js +237 -242
- package/src/services/README.md +5 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +13 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -50
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +12 -1
- package/src/services/assets/asset-processing-service/asset-processing.service.js +335 -268
- package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
- package/src/services/assets/asset-processing-service/assets.types.d.ts +1 -1
- package/src/services/assets/asset-processing-service/assets.types.js +1 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +1 -1
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -46
- package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.d.ts +52 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +115 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -58
- package/src/services/assets/asset-processing-service/finalize-processed-asset.d.ts +3 -0
- package/src/services/assets/asset-processing-service/finalize-processed-asset.js +5 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +2 -1
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +85 -60
- package/src/services/assets/asset-processing-service/index.d.ts +2 -0
- package/src/services/assets/asset-processing-service/index.js +8 -6
- package/src/services/assets/asset-processing-service/inline-content-script-body.d.ts +11 -0
- package/src/services/assets/asset-processing-service/inline-content-script-body.js +23 -0
- package/src/services/assets/asset-processing-service/materialize-content-script-asset.d.ts +9 -0
- package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +22 -0
- package/src/services/assets/asset-processing-service/page-package.js +70 -72
- package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
- package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -2
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -130
- package/src/services/assets/asset-processing-service/processors/index.js +5 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +8 -0
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +111 -111
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -1
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -94
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -135
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -3
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +26 -57
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -3
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +33 -67
- package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.d.ts +2 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +44 -0
- package/src/services/assets/asset-processing-service/resolve-integration-plugin.d.ts +4 -0
- package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +15 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -1
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -44
- package/src/services/assets/browser-bundle.service.d.ts +27 -31
- package/src/services/assets/browser-bundle.service.js +54 -49
- package/src/services/assets/browser-runtime-asset-generation.d.ts +17 -0
- package/src/services/assets/browser-runtime-asset-generation.js +28 -0
- package/src/services/cache/cache.types.d.ts +4 -2
- package/src/services/cache/cache.types.js +5 -0
- package/src/services/cache/html-page-cache-dependency-index.d.ts +34 -0
- package/src/services/cache/html-page-cache-dependency-index.js +88 -0
- package/src/services/cache/index.d.ts +2 -0
- package/src/services/cache/index.js +8 -7
- package/src/services/cache/memory-cache-store.js +101 -89
- package/src/services/cache/page-cache-service.d.ts +31 -1
- package/src/services/cache/page-cache-service.js +237 -150
- package/src/services/cache/page-request-cache-coordinator.service.d.ts +2 -1
- package/src/services/cache/page-request-cache-coordinator.service.js +112 -102
- package/src/services/html/html-rewriter-provider.service.js +61 -61
- package/src/services/html/html-transformer.service.js +249 -266
- package/src/services/invalidation/development-invalidation.service.d.ts +15 -1
- package/src/services/invalidation/development-invalidation.service.js +241 -204
- package/src/services/module-loading/README.md +9 -6
- package/src/services/module-loading/app-module-loader.service.js +1 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +8 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +104 -106
- package/src/services/module-loading/collection-server-module-build.service.d.ts +19 -0
- package/src/services/module-loading/collection-server-module-build.service.js +83 -0
- package/src/services/module-loading/host-module-loader-registry.js +6 -11
- package/src/services/module-loading/module-loading-types.js +1 -0
- package/src/services/module-loading/page-module-import.service.d.ts +7 -12
- package/src/services/module-loading/page-module-import.service.js +232 -206
- package/src/services/module-loading/route-module-build-cache-registry.d.ts +2 -0
- package/src/services/module-loading/route-module-build-cache-registry.js +59 -33
- package/src/services/module-loading/route-module-build-cache.js +3 -38
- package/src/services/module-loading/route-module-build-cache.store.d.ts +10 -0
- package/src/services/module-loading/route-module-build-cache.store.js +213 -196
- package/src/services/module-loading/route-module-build-manifest.d.ts +10 -14
- package/src/services/module-loading/route-module-build-manifest.js +54 -118
- package/src/services/module-loading/route-module-dependency-hasher.d.ts +2 -2
- package/src/services/module-loading/route-module-dependency-hasher.js +136 -109
- package/src/services/module-loading/server-module-transpiler.service.d.ts +1 -3
- package/src/services/module-loading/server-module-transpiler.service.js +65 -62
- package/src/services/module-loading/source-module-support.js +15 -7
- package/src/services/runtime-state/dev-graph.service.js +165 -157
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
- package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
- package/src/services/validation/schema-validation-service.d.ts +1 -4
- package/src/services/validation/schema-validation-service.js +156 -95
- package/src/services/validation/standard-schema.types.d.ts +9 -62
- package/src/services/validation/standard-schema.types.js +1 -0
- package/src/services/validation/validate-standard-schema.d.ts +7 -0
- package/src/services/validation/validate-standard-schema.js +14 -0
- package/src/static-site-generator/README.md +10 -2
- package/src/static-site-generator/production-page-browser-graph-prebuild.d.ts +32 -0
- package/src/static-site-generator/production-page-browser-graph-prebuild.js +57 -0
- package/src/static-site-generator/sitemap-routes.d.ts +14 -0
- package/src/static-site-generator/sitemap-routes.js +36 -0
- package/src/static-site-generator/sitemap.d.ts +15 -0
- package/src/static-site-generator/sitemap.js +42 -0
- package/src/static-site-generator/static-build-invalidation.d.ts +2 -2
- package/src/static-site-generator/static-build-invalidation.js +33 -74
- package/src/static-site-generator/static-export-context.d.ts +9 -1
- package/src/static-site-generator/static-export-context.js +1 -0
- package/src/static-site-generator/static-site-generator.d.ts +27 -6
- package/src/static-site-generator/static-site-generator.js +528 -389
- package/src/types/internal-types.d.ts +55 -17
- package/src/types/internal-types.js +1 -0
- package/src/types/public-types.d.ts +236 -95
- package/src/types/public-types.js +1 -0
- package/src/utils/deep-merge.js +39 -26
- package/src/utils/ecopages-route-info.d.ts +26 -0
- package/src/utils/ecopages-route-info.js +30 -0
- package/src/utils/hash.js +3 -6
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +22 -5
- package/src/utils/invariant.js +11 -10
- package/src/utils/locals-utils.js +32 -22
- package/src/utils/parse-cli-args.d.ts +1 -0
- package/src/utils/parse-cli-args.js +73 -62
- package/src/utils/path-pattern.d.ts +23 -0
- package/src/utils/path-pattern.js +42 -0
- package/src/utils/path-utils.module.js +8 -11
- package/src/utils/resolve-entry-file.js +70 -38
- package/src/utils/resolve-work-dir.js +23 -27
- package/src/utils/runtime.js +24 -33
- package/src/utils/server-utils.module.d.ts +3 -2
- package/src/utils/server-utils.module.js +60 -53
- package/src/utils/static-file-extensions.d.ts +12 -0
- package/src/utils/static-file-extensions.js +54 -0
- package/src/watchers/project-watcher-ignore.d.ts +11 -0
- package/src/watchers/project-watcher-ignore.js +17 -0
- package/src/watchers/project-watcher.d.ts +21 -6
- package/src/watchers/project-watcher.js +402 -277
- package/src/watchers/project-watcher.test-helpers.js +45 -50
- package/src/adapters/shared/api-response.js +0 -96
- package/src/adapters/shared/application-adapter.js +0 -90
- package/src/adapters/shared/bun-user-websocket-lifecycle.js +0 -102
- package/src/adapters/shared/copy-runtime-public-dir.js +0 -24
- package/src/adapters/shared/define-api-handler.d.ts +0 -25
- package/src/adapters/shared/define-api-handler.js +0 -15
- package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
- package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
- package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
- package/src/adapters/shared/fs-server-response-factory.js +0 -81
- package/src/adapters/shared/fs-server-response-matcher.js +0 -186
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
- package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
- package/src/adapters/shared/hmr-html-response.js +0 -33
- package/src/adapters/shared/node-http-websocket-upgrades.js +0 -125
- package/src/adapters/shared/render-context.js +0 -93
- package/src/adapters/shared/runtime-app-bootstrap.js +0 -41
- package/src/adapters/shared/runtime-host.js +0 -0
- package/src/adapters/shared/server-adapter.js +0 -436
- package/src/adapters/shared/server-route-handler.js +0 -111
- package/src/adapters/shared/server-static-builder.js +0 -202
- package/src/adapters/shared/shared-hmr-manager.d.ts +0 -61
- package/src/adapters/shared/shared-hmr-manager.js +0 -273
- package/src/adapters/shared/static-preview-host.js +0 -0
- package/src/adapters/shared/websocket-lifecycle.d.ts +0 -3
- package/src/adapters/shared/websocket-lifecycle.js +0 -19
- package/src/build/browser-runtime-manifest.js +0 -61
- package/src/build/browser-runtime-plugin-helpers.js +0 -14
- package/src/build/browser-runtime-plugin.js +0 -173
- package/src/build/build-input-fingerprint.js +0 -31
- package/src/build/build-manifest.d.ts +0 -33
- package/src/build/build-manifest.js +0 -49
- package/src/build/build-types.js +0 -0
- package/src/build/jsx-ownership-plugins.d.ts +0 -10
- package/src/build/jsx-ownership-plugins.js +0 -17
- package/src/build/pages-unified-graph-build.js +0 -208
- package/src/build/parallel-build-executor.js +0 -52
- package/src/build/rolldown-adapter-helpers.js +0 -310
- package/src/build/rolldown-build-adapter.js +0 -67
- package/src/build/rolldown-build-invocation-metrics.js +0 -43
- package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
- package/src/build/rolldown-dev-build-adapter.js +0 -182
- package/src/build/rolldown-plugin-bridge.js +0 -211
- package/src/build/rolldown-source-transform-pass.js +0 -58
- package/src/build/runtime-build-executor.d.ts +0 -15
- package/src/build/runtime-build-executor.js +0 -43
- package/src/build/runtime-build-output-normalizer.js +0 -203
- package/src/build/serialized-build-executor.js +0 -63
- package/src/build/server-entry-build-cache.js +0 -169
- package/src/build/server-side-css-shim-plugin.js +0 -35
- package/src/hmr/hmr.postcss.test.e2e.js +0 -31
- package/src/hmr/hmr.test.e2e.js +0 -54
- package/src/integrations/ghtml/ghtml-renderer.js +0 -57
- package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
- package/src/integrations/ghtml/ghtml.constants.js +0 -4
- package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
- package/src/integrations/ghtml/ghtml.plugin.js +0 -20
- package/src/route-renderer/orchestration/component-render-context.js +0 -147
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
- package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -231
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
- package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
- package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
- package/src/route-renderer/orchestration/render-output.utils.js +0 -175
- package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -578
- package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
- package/src/route-renderer/orchestration/template-serialization.js +0 -45
- package/src/utils/html.d.ts +0 -1
- package/src/utils/html.js +0 -4
- /package/src/adapters/{shared → bun}/bun-user-websocket-lifecycle.d.ts +0 -0
- /package/src/adapters/shared/{copy-runtime-public-dir.d.ts → runtime/copy-runtime-public-dir.d.ts} +0 -0
- /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
- /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
- /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
- /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
- /package/src/build/{runtime-build-output-normalizer.d.ts → rolldown/runtime-build-output-normalizer.d.ts} +0 -0
- /package/src/build/{server-side-css-shim-plugin.d.ts → rolldown/server-side-css-shim-plugin.d.ts} +0 -0
|
@@ -1,206 +1,223 @@
|
|
|
1
|
-
import { createBrowserRuntimeManifest } from
|
|
2
|
-
import { AssetProcessingService } from
|
|
3
|
-
import { deepMerge } from
|
|
4
|
-
import { invariant } from
|
|
5
|
-
const INTEGRATION_PLUGIN_ERRORS = {
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { createBrowserRuntimeManifest, } from '../build/browser/browser-runtime-manifest.js';
|
|
2
|
+
import { AssetProcessingService } from '../services/assets/asset-processing-service/asset-processing.service.js';
|
|
3
|
+
import { deepMerge } from '../utils/deep-merge.js';
|
|
4
|
+
import { invariant } from '../utils/invariant.js';
|
|
5
|
+
export const INTEGRATION_PLUGIN_ERRORS = {
|
|
6
|
+
NOT_INITIALIZED_WITH_APP_CONFIG: 'Plugin not initialized with app config',
|
|
7
|
+
NOT_INITIALIZED_WITH_ASSET_SERVICE: 'Plugin not initialized with asset dependency service',
|
|
8
8
|
};
|
|
9
|
-
function mergeIntegrationOptions(defaults, overrides) {
|
|
10
|
-
|
|
9
|
+
export function mergeIntegrationOptions(defaults, overrides) {
|
|
10
|
+
return deepMerge(defaults, overrides);
|
|
11
11
|
}
|
|
12
|
-
function assertIntegrationInvariant(condition, message) {
|
|
13
|
-
|
|
12
|
+
export function assertIntegrationInvariant(condition, message) {
|
|
13
|
+
invariant(condition, message);
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
* contributions belong in `prepareBuildContributions()` and runtime-only setup
|
|
56
|
-
* belongs in `setup()`.
|
|
57
|
-
*/
|
|
58
|
-
constructor(config) {
|
|
59
|
-
this.name = config.name;
|
|
60
|
-
this.extensions = config.extensions;
|
|
61
|
-
this.integrationDependencies = config.integrationDependencies || [];
|
|
62
|
-
this.runtimeCapability = config.runtimeCapability;
|
|
63
|
-
this.jsxImportSource = config.jsxImportSource;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Attaches the finalized app config to the integration.
|
|
67
|
-
*
|
|
68
|
-
* Core calls this during config finalization before runtime setup so the
|
|
69
|
-
* integration can resolve asset paths and other app-owned services later.
|
|
70
|
-
*/
|
|
71
|
-
setConfig(appConfig) {
|
|
72
|
-
this.appConfig = appConfig;
|
|
73
|
-
this.initializeAssetDefinitionService();
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Records the runtime origin used for page-module loading and renderer setup.
|
|
77
|
-
*/
|
|
78
|
-
setRuntimeOrigin(runtimeOrigin) {
|
|
79
|
-
this.runtimeOrigin = runtimeOrigin;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Attaches the shared HMR manager and registers integration-owned development hooks.
|
|
83
|
-
*
|
|
84
|
-
* @remarks
|
|
85
|
-
* The default implementation registers the optional integration HMR strategy.
|
|
86
|
-
* Integrations should override this only when they need to extend that shared
|
|
87
|
-
* behavior rather than replace it.
|
|
88
|
-
*/
|
|
89
|
-
setHmrManager(hmrManager) {
|
|
90
|
-
this.hmrManager = hmrManager;
|
|
91
|
-
const strategy = this.getHmrStrategy?.();
|
|
92
|
-
if (strategy) {
|
|
93
|
-
hmrManager.registerStrategy(strategy);
|
|
15
|
+
/**
|
|
16
|
+
* Base class for framework integrations.
|
|
17
|
+
*
|
|
18
|
+
* @remarks
|
|
19
|
+
* An integration owns three main concerns:
|
|
20
|
+
* - which file extensions it claims
|
|
21
|
+
* - which renderer class turns those files into HTML
|
|
22
|
+
* - which build-time or runtime contributions must be registered for that framework
|
|
23
|
+
*
|
|
24
|
+
* Core owns lifecycle ordering. Integrations declare contributions through the
|
|
25
|
+
* hooks on this class, while `ConfigBuilder.build()` and app startup decide when
|
|
26
|
+
* those hooks run. Build plugins map to {@link AppBuildManifest} buckets:
|
|
27
|
+
* `plugins` → `runtimePlugins`, `browserBuildPlugins` → `browserBundlePlugins`,
|
|
28
|
+
* `browserRuntimeManifest` → client import rewrite map. For page-browser and
|
|
29
|
+
* document shaping, integrations should prefer the contribution contracts
|
|
30
|
+
* re-exported from this module:
|
|
31
|
+
* `PageBrowserGraphContribution` / `PageBrowserGraphContributionContext` and
|
|
32
|
+
* `HtmlDocumentContribution` / `HtmlDocumentContributionContext`.
|
|
33
|
+
*/
|
|
34
|
+
export class IntegrationPlugin {
|
|
35
|
+
name;
|
|
36
|
+
extensions;
|
|
37
|
+
runtimeCapability;
|
|
38
|
+
jsxImportSource;
|
|
39
|
+
integrationDependencies;
|
|
40
|
+
resolvedIntegrationDependencies = [];
|
|
41
|
+
options;
|
|
42
|
+
appConfig;
|
|
43
|
+
assetProcessingService;
|
|
44
|
+
hmrManager;
|
|
45
|
+
/**
|
|
46
|
+
* Returns build plugins shared by server-oriented and browser-oriented builds.
|
|
47
|
+
*
|
|
48
|
+
* @remarks
|
|
49
|
+
* Collected into {@link AppBuildManifest.runtimePlugins} during config finalization.
|
|
50
|
+
* MDX loaders, virtual-module resolvers, and other transforms that must run during
|
|
51
|
+
* route-module transpile belong here—not in {@link browserBuildPlugins}.
|
|
52
|
+
*/
|
|
53
|
+
get plugins() {
|
|
54
|
+
return [];
|
|
94
55
|
}
|
|
95
|
-
|
|
96
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Returns build plugins that should only apply to browser-oriented bundles.
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* Browser-only transforms such as runtime import aliasing belong here so they
|
|
61
|
+
* do not affect server bundles or static-page module generation.
|
|
62
|
+
*/
|
|
63
|
+
get browserBuildPlugins() {
|
|
64
|
+
return [];
|
|
97
65
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Returns shared browser runtime asset declarations owned by this integration.
|
|
68
|
+
*
|
|
69
|
+
* @remarks
|
|
70
|
+
* Core seals these declarations into the app build manifest so app-owned browser
|
|
71
|
+
* bundle paths can rewrite manifest-owned imports even when a specific build
|
|
72
|
+
* request does not install an integration-local runtime rewrite plugin.
|
|
73
|
+
*/
|
|
74
|
+
get browserRuntimeManifest() {
|
|
75
|
+
return createBrowserRuntimeManifest();
|
|
107
76
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Creates the integration with static declaration-only configuration.
|
|
79
|
+
*
|
|
80
|
+
* @remarks
|
|
81
|
+
* Constructors are expected to stay side-effect free. Build-manifest
|
|
82
|
+
* contributions belong in `prepareBuildContributions()` and runtime-only setup
|
|
83
|
+
* belongs in `setup()`.
|
|
84
|
+
*/
|
|
85
|
+
constructor(config) {
|
|
86
|
+
this.name = config.name;
|
|
87
|
+
this.extensions = config.extensions;
|
|
88
|
+
this.integrationDependencies = config.integrationDependencies || [];
|
|
89
|
+
this.runtimeCapability = config.runtimeCapability;
|
|
90
|
+
this.jsxImportSource = config.jsxImportSource;
|
|
121
91
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Attaches the finalized app config to the integration.
|
|
94
|
+
*
|
|
95
|
+
* Core calls this during config finalization before runtime setup so the
|
|
96
|
+
* integration can resolve asset paths and other app-owned services later.
|
|
97
|
+
*/
|
|
98
|
+
setConfig(appConfig) {
|
|
99
|
+
this.appConfig = appConfig;
|
|
100
|
+
this.initializeAssetDefinitionService();
|
|
125
101
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
runtimeOrigin: this.runtimeOrigin
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Attaches runtime-only services after a renderer instance has been created.
|
|
136
|
-
*/
|
|
137
|
-
attachRendererRuntimeServices(renderer) {
|
|
138
|
-
if (typeof renderer.name !== "string" || renderer.name.length === 0) {
|
|
139
|
-
renderer.name = this.name;
|
|
102
|
+
/**
|
|
103
|
+
* Records the runtime origin used for page-module loading and renderer setup.
|
|
104
|
+
*/
|
|
105
|
+
setRuntimeOrigin(runtimeOrigin) {
|
|
106
|
+
this.runtimeOrigin = runtimeOrigin;
|
|
140
107
|
}
|
|
141
|
-
|
|
142
|
-
|
|
108
|
+
/**
|
|
109
|
+
* Attaches the shared HMR manager and registers integration-owned development hooks.
|
|
110
|
+
*
|
|
111
|
+
* @remarks
|
|
112
|
+
* The default implementation registers the optional integration HMR strategy.
|
|
113
|
+
* Integrations should override this only when they need to extend that shared
|
|
114
|
+
* behavior rather than replace it.
|
|
115
|
+
*/
|
|
116
|
+
setHmrManager(hmrManager) {
|
|
117
|
+
this.hmrManager = hmrManager;
|
|
118
|
+
const strategy = this.getHmrStrategy?.();
|
|
119
|
+
if (strategy) {
|
|
120
|
+
hmrManager.registerStrategy(strategy);
|
|
121
|
+
}
|
|
122
|
+
if (this.assetProcessingService) {
|
|
123
|
+
this.assetProcessingService.setHmrManager(hmrManager);
|
|
124
|
+
}
|
|
143
125
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
126
|
+
/**
|
|
127
|
+
* Creates the asset-processing service used for global integration dependencies.
|
|
128
|
+
*/
|
|
129
|
+
initializeAssetDefinitionService() {
|
|
130
|
+
if (!this.appConfig)
|
|
131
|
+
throw new Error(INTEGRATION_PLUGIN_ERRORS.NOT_INITIALIZED_WITH_APP_CONFIG);
|
|
132
|
+
this.assetProcessingService = AssetProcessingService.createWithDefaultProcessors(this.appConfig);
|
|
133
|
+
if (this.hmrManager) {
|
|
134
|
+
this.assetProcessingService.setHmrManager(this.hmrManager);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Returns processed global assets resolved during `setup()`.
|
|
139
|
+
*/
|
|
140
|
+
getResolvedIntegrationDependencies() {
|
|
141
|
+
return this.resolvedIntegrationDependencies;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Creates the shared renderer options owned by core lifecycle setup.
|
|
145
|
+
*/
|
|
146
|
+
createRendererOptions(options) {
|
|
147
|
+
if (!this.appConfig) {
|
|
148
|
+
throw new Error(INTEGRATION_PLUGIN_ERRORS.NOT_INITIALIZED_WITH_APP_CONFIG);
|
|
149
|
+
}
|
|
150
|
+
const assetProcessingService = AssetProcessingService.createWithDefaultProcessors(this.appConfig);
|
|
151
|
+
if (this.hmrManager) {
|
|
152
|
+
assetProcessingService.setHmrManager(this.hmrManager);
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
appConfig: this.appConfig,
|
|
156
|
+
assetProcessingService,
|
|
157
|
+
resolvedIntegrationDependencies: this.resolvedIntegrationDependencies,
|
|
158
|
+
rendererModules: options?.rendererModules,
|
|
159
|
+
runtimeOrigin: this.runtimeOrigin,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Attaches runtime-only services after a renderer instance has been created.
|
|
164
|
+
*/
|
|
165
|
+
attachRendererRuntimeServices(renderer) {
|
|
166
|
+
if (typeof renderer.name !== 'string' || renderer.name.length === 0) {
|
|
167
|
+
renderer.name = this.name;
|
|
168
|
+
}
|
|
169
|
+
if (this.hmrManager) {
|
|
170
|
+
renderer.setHmrManager(this.hmrManager);
|
|
171
|
+
}
|
|
172
|
+
return renderer;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Instantiates the integration renderer with app-owned services.
|
|
176
|
+
*
|
|
177
|
+
* @remarks
|
|
178
|
+
* Renderers are cheap runtime objects. They receive the finalized app config,
|
|
179
|
+
* a fresh asset-processing service, integration-global processed assets, and
|
|
180
|
+
* any renderer module context supplied by the active runtime.
|
|
181
|
+
*/
|
|
182
|
+
initializeRenderer(options) {
|
|
183
|
+
const renderer = new this.renderer(this.createRendererOptions(options));
|
|
184
|
+
renderer.name ||= this.name;
|
|
185
|
+
return this.attachRendererRuntimeServices(renderer);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Prepares build-facing contributions before the app build manifest is sealed.
|
|
189
|
+
*
|
|
190
|
+
* @remarks
|
|
191
|
+
* Integrations can override this when runtime or build plugin declarations must
|
|
192
|
+
* be materialized ahead of runtime startup. Runtime-only side effects stay in
|
|
193
|
+
* `setup()`.
|
|
194
|
+
*/
|
|
195
|
+
async prepareBuildContributions() { }
|
|
196
|
+
/**
|
|
197
|
+
* Reports whether this integration's build inputs changed since the last
|
|
198
|
+
* incremental static build.
|
|
199
|
+
*/
|
|
200
|
+
didChange() {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Performs runtime-only integration setup after config build has already
|
|
205
|
+
* sealed manifest contributions.
|
|
206
|
+
*/
|
|
207
|
+
async setup() {
|
|
208
|
+
if (this.integrationDependencies.length === 0)
|
|
209
|
+
return;
|
|
210
|
+
if (!this.assetProcessingService)
|
|
211
|
+
throw new Error(INTEGRATION_PLUGIN_ERRORS.NOT_INITIALIZED_WITH_ASSET_SERVICE);
|
|
212
|
+
this.resolvedIntegrationDependencies = await this.assetProcessingService.processDependencies(this.integrationDependencies, this.name);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Releases runtime resources owned by the integration.
|
|
216
|
+
*
|
|
217
|
+
* @remarks
|
|
218
|
+
* Most integrations do not need custom teardown. Override this only for
|
|
219
|
+
* explicit cleanup such as watchers, compiler handles, or runtime registries
|
|
220
|
+
* that outlive individual requests.
|
|
221
|
+
*/
|
|
222
|
+
async teardown() { }
|
|
200
223
|
}
|
|
201
|
-
export {
|
|
202
|
-
INTEGRATION_PLUGIN_ERRORS,
|
|
203
|
-
IntegrationPlugin,
|
|
204
|
-
assertIntegrationInvariant,
|
|
205
|
-
mergeIntegrationOptions
|
|
206
|
-
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EcoPagesAppConfig } from '../types/internal-types.js';
|
|
2
|
+
export declare function createJsxImportSourcePragma(jsxImportSource: string): string;
|
|
3
|
+
export declare function prependJsxImportSourceIfMissing(code: string, jsxImportSource: string | undefined): string;
|
|
4
|
+
export declare function isJsxSourceExtension(extension: string): boolean;
|
|
5
|
+
export declare function filterJsxSourceExtensions(extensions: string[]): string[];
|
|
6
|
+
export declare function collectJsxExtensions(integrations: NonNullable<EcoPagesAppConfig['integrations']>, options?: {
|
|
7
|
+
excludeIntegrationName?: string;
|
|
8
|
+
}): string[];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function createJsxImportSourcePragma(jsxImportSource) {
|
|
2
|
+
return `/** @jsxImportSource ${jsxImportSource} */\n`;
|
|
3
|
+
}
|
|
4
|
+
export function prependJsxImportSourceIfMissing(code, jsxImportSource) {
|
|
5
|
+
if (!jsxImportSource || code.includes('@jsxImportSource')) {
|
|
6
|
+
return code;
|
|
7
|
+
}
|
|
8
|
+
return createJsxImportSourcePragma(jsxImportSource) + code;
|
|
9
|
+
}
|
|
10
|
+
export function isJsxSourceExtension(extension) {
|
|
11
|
+
return extension.endsWith('.tsx') || extension.endsWith('.jsx');
|
|
12
|
+
}
|
|
13
|
+
export function filterJsxSourceExtensions(extensions) {
|
|
14
|
+
return extensions.filter(isJsxSourceExtension);
|
|
15
|
+
}
|
|
16
|
+
export function collectJsxExtensions(integrations, options) {
|
|
17
|
+
return integrations
|
|
18
|
+
.filter((integration) => integration.jsxImportSource)
|
|
19
|
+
.filter((integration) => integration.name !== options?.excludeIntegrationName)
|
|
20
|
+
.flatMap((integration) => filterJsxSourceExtensions(integration.extensions));
|
|
21
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes bare npm import specifiers to their package root.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* toPackageRootSpecifier('@scope/pkg/sub/file') -> '@scope/pkg'
|
|
6
|
+
* toPackageRootSpecifier('lodash/debounce') -> 'lodash'
|
|
7
|
+
*/
|
|
8
|
+
export declare function toPackageRootSpecifier(specifier: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Returns true when `specifier` is a subpath import of `packageRoot`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function isSubpathOfPackageRoot(specifier: string, packageRoot: string): boolean;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes bare npm import specifiers to their package root.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* toPackageRootSpecifier('@scope/pkg/sub/file') -> '@scope/pkg'
|
|
6
|
+
* toPackageRootSpecifier('lodash/debounce') -> 'lodash'
|
|
7
|
+
*/
|
|
8
|
+
export function toPackageRootSpecifier(specifier) {
|
|
9
|
+
if (specifier.startsWith('.') ||
|
|
10
|
+
specifier.startsWith('/') ||
|
|
11
|
+
specifier.startsWith('node:') ||
|
|
12
|
+
specifier.includes('://')) {
|
|
13
|
+
return specifier;
|
|
14
|
+
}
|
|
15
|
+
if (specifier.startsWith('@')) {
|
|
16
|
+
const [scope, name, ...rest] = specifier.split('/');
|
|
17
|
+
if (!scope || !name) {
|
|
18
|
+
return specifier;
|
|
19
|
+
}
|
|
20
|
+
return rest.length > 0 ? `${scope}/${name}` : specifier;
|
|
21
|
+
}
|
|
22
|
+
const [name] = specifier.split('/');
|
|
23
|
+
return name ?? specifier;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns true when `specifier` is a subpath import of `packageRoot`.
|
|
27
|
+
*/
|
|
28
|
+
export function isSubpathOfPackageRoot(specifier, packageRoot) {
|
|
29
|
+
if (specifier === packageRoot) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return specifier.startsWith(`${packageRoot}/`);
|
|
33
|
+
}
|
|
@@ -1,19 +1,45 @@
|
|
|
1
|
-
import type { EcoBuildPlugin } from '../build/build-types.js';
|
|
1
|
+
import type { EcoBuildPlugin } from '../build/contracts/build-types.js';
|
|
2
2
|
import type { EcoPagesAppConfig, IClientBridge } from '../types/internal-types.js';
|
|
3
|
-
import
|
|
3
|
+
import { GENERATED_BASE_PATHS } from '../config/constants.js';
|
|
4
4
|
import type { RuntimeCapabilityDeclaration } from './runtime-capability.js';
|
|
5
5
|
export type { RuntimeCapabilityDeclaration, RuntimeCapabilityTag } from './runtime-capability.js';
|
|
6
|
-
export type { EcoBuildLoader, EcoBuildOnLoadArgs, EcoBuildOnLoadResult, EcoBuildOnResolveArgs, EcoBuildOnResolveResult, EcoBuildPlugin, EcoBuildPluginBuilder, } from '../build/build-types.js';
|
|
6
|
+
export type { EcoBuildLoader, EcoBuildOnLoadArgs, EcoBuildOnLoadResult, EcoBuildOnResolveArgs, EcoBuildOnResolveResult, EcoBuildPlugin, EcoBuildPluginBuilder, } from '../build/contracts/build-types.js';
|
|
7
7
|
export declare const PROCESSOR_ERRORS: {
|
|
8
8
|
readonly CACHE_DIRECTORY_NOT_SET: "Cache directory not set in context";
|
|
9
9
|
};
|
|
10
10
|
export declare function mergeProcessorOptions<TDefaults, TOverrides>(defaults: TDefaults, overrides: TOverrides): TDefaults & TOverrides;
|
|
11
|
+
export declare function resolveGeneratedPath(type: keyof typeof GENERATED_BASE_PATHS, options: {
|
|
12
|
+
root: string;
|
|
13
|
+
module: string;
|
|
14
|
+
subPath?: string;
|
|
15
|
+
}): string;
|
|
16
|
+
/**
|
|
17
|
+
* Serializes the TypeScript `@types` package manifest for generated virtual-module declarations.
|
|
18
|
+
*/
|
|
19
|
+
export declare function serializeGeneratedTypesPackage(packageName: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Writes the generated `@types` package manifest that TypeScript auto-loads from `node_modules`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function writeGeneratedTypesPackage(options: {
|
|
24
|
+
root: string;
|
|
25
|
+
module: string;
|
|
26
|
+
packageName: string;
|
|
27
|
+
writeFile: (filePath: string, content: string) => void;
|
|
28
|
+
}): void;
|
|
11
29
|
export interface ProcessorWatchContext {
|
|
12
30
|
path: string;
|
|
13
31
|
bridge: IClientBridge;
|
|
14
32
|
}
|
|
15
33
|
export interface ProcessorWatchConfig {
|
|
16
34
|
paths: string[];
|
|
35
|
+
/**
|
|
36
|
+
* File extensions that trigger watch callbacks (`onCreate`, `onChange`, `onDelete`).
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* Watch extensions drive notifications only. They do not declare asset ownership.
|
|
40
|
+
* Ownership requires {@link ProcessorConfig.capabilities} and controls whether dev
|
|
41
|
+
* invalidation skips server modules and HMR for processor-handled assets.
|
|
42
|
+
*/
|
|
17
43
|
extensions?: string[];
|
|
18
44
|
onCreate?: (ctx: ProcessorWatchContext) => Promise<void>;
|
|
19
45
|
onChange?: (ctx: ProcessorWatchContext) => Promise<void>;
|
|
@@ -52,22 +78,41 @@ export interface ProcessorContext {
|
|
|
52
78
|
cache?: string;
|
|
53
79
|
}
|
|
54
80
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
81
|
+
* Base class for content and asset processors that contribute build plugins.
|
|
82
|
+
*
|
|
83
|
+
* @remarks
|
|
84
|
+
* Processors declare plugins through two getters that map to
|
|
85
|
+
* {@link AppBuildManifest} buckets (names differ from integrations):
|
|
86
|
+
*
|
|
87
|
+
* - `plugins` → `runtimePlugins` (server **and** browser builds)
|
|
88
|
+
* - `buildPlugins` → `browserBundlePlugins` (browser bundles only)
|
|
89
|
+
*
|
|
90
|
+
* Virtual modules that must resolve during route-module transpile belong in
|
|
91
|
+
* `plugins`. Browser-only bundler hooks belong in `buildPlugins`.
|
|
59
92
|
*/
|
|
60
93
|
export declare abstract class Processor<TOptions = Record<string, unknown>> {
|
|
61
94
|
readonly name: string;
|
|
62
|
-
protected dependencies: AssetDefinition[];
|
|
63
95
|
protected context?: ProcessorContext;
|
|
64
96
|
protected options?: TOptions;
|
|
65
97
|
protected watchConfig?: ProcessorWatchConfig;
|
|
66
98
|
protected capabilities: ProcessorAssetCapability[];
|
|
67
99
|
readonly runtimeCapability?: RuntimeCapabilityDeclaration;
|
|
68
|
-
/**
|
|
100
|
+
/**
|
|
101
|
+
* Browser-bundle-only plugins.
|
|
102
|
+
*
|
|
103
|
+
* @remarks
|
|
104
|
+
* Maps to {@link AppBuildManifest.browserBundlePlugins}. Integrations name the
|
|
105
|
+
* same bucket `browserBuildPlugins`.
|
|
106
|
+
*/
|
|
69
107
|
abstract buildPlugins?: EcoBuildPlugin[];
|
|
70
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* Shared build plugins for server-oriented and browser-oriented work.
|
|
110
|
+
*
|
|
111
|
+
* @remarks
|
|
112
|
+
* Maps to {@link AppBuildManifest.runtimePlugins}. Despite the name, these are
|
|
113
|
+
* bundler plugins—not dev-server file processors. Runtime-only setup stays in
|
|
114
|
+
* {@link setup}.
|
|
115
|
+
*/
|
|
71
116
|
abstract plugins?: EcoBuildPlugin[];
|
|
72
117
|
constructor(config: ProcessorConfig<TOptions>);
|
|
73
118
|
setContext(appConfig: EcoPagesAppConfig): void;
|
|
@@ -80,19 +125,41 @@ export declare abstract class Processor<TOptions = Record<string, unknown>> {
|
|
|
80
125
|
* warming or watcher registration should stay in `setup()`.
|
|
81
126
|
*/
|
|
82
127
|
prepareBuildContributions(): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Declares watch-mode SSR prewarm pathnames and readiness for core.
|
|
130
|
+
*
|
|
131
|
+
* @remarks
|
|
132
|
+
* Processors return paths and readiness only; core owns parallel rendering and page cache population.
|
|
133
|
+
*/
|
|
134
|
+
collectDevPrewarmPlan(): Promise<{
|
|
135
|
+
pathnames: readonly string[];
|
|
136
|
+
readiness: 'background' | 'beforeReady';
|
|
137
|
+
}>;
|
|
83
138
|
/**
|
|
84
139
|
* Reports whether this processor's build inputs changed since the last
|
|
85
140
|
* incremental static build.
|
|
141
|
+
*
|
|
142
|
+
* @remarks
|
|
143
|
+
* No shipped processor overrides this today. Integrations and processors can
|
|
144
|
+
* opt in when they own build inputs that should invalidate incremental static
|
|
145
|
+
* exports without a full rebuild.
|
|
86
146
|
*/
|
|
87
147
|
didChange(): boolean;
|
|
88
148
|
abstract setup(): Promise<void>;
|
|
89
|
-
abstract teardown(): Promise<void>;
|
|
90
149
|
abstract process(input: unknown, filePath?: string): Promise<unknown>;
|
|
150
|
+
/**
|
|
151
|
+
* Releases runtime resources owned by the processor.
|
|
152
|
+
*
|
|
153
|
+
* @remarks
|
|
154
|
+
* Core does not call this hook today. Override only when a processor owns
|
|
155
|
+
* watchers, compiler handles, or other resources that outlive individual
|
|
156
|
+
* requests.
|
|
157
|
+
*/
|
|
158
|
+
teardown(): Promise<void>;
|
|
91
159
|
protected getCachePath(key: string): string;
|
|
92
160
|
protected readCache<T>(key: string): Promise<T | null>;
|
|
93
161
|
protected writeCache<T>(key: string, data: T): Promise<void>;
|
|
94
162
|
getWatchConfig(): ProcessorWatchConfig | undefined;
|
|
95
|
-
getDependencies(): AssetDefinition[];
|
|
96
163
|
getName(): string;
|
|
97
164
|
getAssetCapabilities(): ProcessorAssetCapability[];
|
|
98
165
|
matchesFileFilter(_filepath: string): boolean;
|