@ecopages/core 0.2.0-beta.4 → 0.2.0-beta.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -9
- package/package.json +371 -33
- package/src/adapters/README.md +6 -2
- package/src/adapters/abstract/application-adapter.d.ts +115 -6
- package/src/adapters/abstract/application-adapter.js +261 -120
- package/src/adapters/abstract/router-adapter.js +12 -4
- package/src/adapters/abstract/segment-path-matcher.d.ts +6 -0
- package/src/adapters/abstract/segment-path-matcher.js +147 -0
- package/src/adapters/abstract/server-adapter.d.ts +16 -2
- package/src/adapters/abstract/server-adapter.js +22 -14
- package/src/adapters/abstract/ws-pattern-matcher.d.ts +12 -0
- package/src/adapters/abstract/ws-pattern-matcher.js +28 -0
- package/src/adapters/bun/bun-user-websocket-lifecycle.d.ts +22 -0
- package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
- package/src/adapters/bun/client-bridge.d.ts +1 -0
- package/src/adapters/bun/client-bridge.js +51 -47
- package/src/adapters/bun/create-app.d.ts +9 -6
- package/src/adapters/bun/create-app.js +171 -130
- package/src/adapters/bun/hmr-manager.d.ts +1 -1
- package/src/adapters/bun/hmr-manager.js +62 -57
- package/src/adapters/bun/index.d.ts +1 -1
- package/src/adapters/bun/index.js +2 -8
- package/src/adapters/bun/runtime-host.d.ts +1 -1
- package/src/adapters/bun/runtime-host.js +61 -54
- package/src/adapters/bun/server-adapter.d.ts +91 -41
- package/src/adapters/bun/server-adapter.js +566 -426
- package/src/adapters/bun/static-preview-host.d.ts +1 -1
- package/src/adapters/bun/static-preview-host.js +43 -41
- package/src/adapters/create-app.d.ts +13 -11
- package/src/adapters/create-app.js +11 -63
- package/src/adapters/index.d.ts +2 -2
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +8 -3
- package/src/adapters/node/create-app.js +126 -84
- package/src/adapters/node/http-request-bridge.js +147 -106
- package/src/adapters/node/node-client-bridge.d.ts +1 -0
- package/src/adapters/node/node-client-bridge.js +62 -61
- package/src/adapters/node/node-hmr-manager.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.js +58 -48
- package/src/adapters/node/runtime-host.d.ts +1 -1
- package/src/adapters/node/runtime-host.js +96 -89
- package/src/adapters/node/server-adapter-dependencies.js +18 -17
- package/src/adapters/node/server-adapter.d.ts +63 -23
- package/src/adapters/node/server-adapter.js +346 -297
- package/src/adapters/node/static-content-server.d.ts +1 -0
- package/src/adapters/node/static-content-server.js +172 -183
- package/src/adapters/node/static-preview-host.d.ts +1 -1
- package/src/adapters/node/static-preview-host.js +88 -64
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
- package/src/adapters/shared/{hmr-html-response.d.ts → hmr/hmr-html-response.d.ts} +2 -2
- package/src/adapters/shared/hmr/hmr-html-response.js +50 -0
- package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +92 -0
- package/src/adapters/shared/hmr/shared-hmr-manager.js +446 -0
- package/src/adapters/shared/http/api-request-pipeline.d.ts +23 -0
- package/src/adapters/shared/http/api-request-pipeline.js +132 -0
- package/src/adapters/shared/{api-response.d.ts → http/api-response.d.ts} +1 -1
- package/src/adapters/shared/http/api-response.js +79 -0
- package/src/adapters/shared/http/create-body-response.d.ts +12 -0
- package/src/adapters/shared/http/create-body-response.js +26 -0
- package/src/adapters/shared/http/define-api-handler.d.ts +90 -0
- package/src/adapters/shared/http/define-api-handler.js +49 -0
- package/src/adapters/shared/{explicit-static-render-preparation.d.ts → http/explicit-static-render-preparation.d.ts} +3 -3
- package/src/adapters/shared/http/explicit-static-render-preparation.js +29 -0
- package/src/adapters/shared/{explicit-static-route-matcher.d.ts → http/explicit-static-route-matcher.d.ts} +3 -9
- package/src/adapters/shared/http/explicit-static-route-matcher.js +59 -0
- package/src/adapters/shared/{file-route-middleware-pipeline.d.ts → http/file-route-middleware-pipeline.d.ts} +2 -2
- package/src/adapters/shared/http/file-route-middleware-pipeline.js +84 -0
- package/src/adapters/shared/{fs-server-response-factory.d.ts → http/fs-server-response-factory.d.ts} +7 -2
- package/src/adapters/shared/http/fs-server-response-factory.js +106 -0
- package/src/adapters/shared/{fs-server-response-matcher.d.ts → http/fs-server-response-matcher.d.ts} +25 -5
- package/src/adapters/shared/http/fs-server-response-matcher.js +258 -0
- package/src/adapters/shared/http/run-middleware-chain.d.ts +5 -0
- package/src/adapters/shared/http/run-middleware-chain.js +17 -0
- package/src/adapters/shared/{application-adapter.d.ts → runtime/application-adapter.d.ts} +2 -2
- package/src/adapters/shared/runtime/application-adapter.js +75 -0
- package/src/adapters/shared/runtime/collect-dev-prewarm-plan.d.ts +11 -0
- package/src/adapters/shared/runtime/collect-dev-prewarm-plan.js +29 -0
- package/src/adapters/shared/runtime/copy-runtime-public-dir.d.ts +6 -0
- package/src/adapters/shared/runtime/copy-runtime-public-dir.js +27 -0
- package/src/adapters/shared/runtime/dev-static-route-prewarm.d.ts +16 -0
- package/src/adapters/shared/runtime/dev-static-route-prewarm.js +66 -0
- package/src/adapters/shared/runtime/port-manager.d.ts +116 -0
- package/src/adapters/shared/runtime/port-manager.js +226 -0
- package/src/adapters/shared/{render-context.d.ts → runtime/render-context.d.ts} +2 -2
- package/src/adapters/shared/runtime/render-context.js +99 -0
- package/src/adapters/shared/{runtime-app-bootstrap.d.ts → runtime/runtime-app-bootstrap.d.ts} +4 -3
- package/src/adapters/shared/runtime/runtime-app-bootstrap.js +38 -0
- package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +45 -0
- package/src/adapters/shared/runtime/runtime-server-lifecycle.js +71 -0
- package/src/adapters/shared/{server-adapter.d.ts → runtime/server-adapter.d.ts} +31 -50
- package/src/adapters/shared/runtime/server-adapter.js +301 -0
- package/src/adapters/shared/{server-route-handler.d.ts → runtime/server-route-handler.d.ts} +6 -33
- package/src/adapters/shared/runtime/server-route-handler.js +77 -0
- package/src/adapters/shared/{server-static-builder.d.ts → runtime/server-static-builder.d.ts} +27 -35
- package/src/adapters/shared/runtime/server-static-builder.js +172 -0
- package/src/adapters/shared/{static-preview-host.d.ts → runtime/static-preview-host.d.ts} +6 -1
- package/src/adapters/shared/ws/node-http-websocket-upgrades.d.ts +21 -0
- package/src/adapters/shared/ws/node-http-websocket-upgrades.js +109 -0
- package/src/adapters/shared/ws/websocket-lifecycle.d.ts +24 -0
- package/src/adapters/shared/ws/websocket-lifecycle.js +62 -0
- package/src/build/README.md +191 -31
- package/src/build/app-build-manifest-runtime.d.ts +39 -0
- package/src/build/app-build-manifest-runtime.js +145 -0
- package/src/build/browser/browser-runtime-manifest.js +58 -0
- package/src/build/browser/browser-runtime-plugin-helpers.js +34 -0
- package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +1 -1
- package/src/build/browser/browser-runtime-plugin.js +216 -0
- package/src/build/browser/jsx-ownership-plugins.d.ts +24 -0
- package/src/build/browser/jsx-ownership-plugins.js +55 -0
- package/src/build/browser/lit-static-render-worker-context.d.ts +2 -0
- package/src/build/browser/lit-static-render-worker-context.js +4 -0
- package/src/build/build-adapter.d.ts +29 -334
- package/src/build/build-adapter.js +273 -237
- package/src/build/cache/build-input-fingerprint.d.ts +28 -0
- package/src/build/cache/build-input-fingerprint.js +33 -0
- package/src/build/cache/cache-constants.d.ts +4 -0
- package/src/build/cache/cache-constants.js +4 -0
- package/src/build/cache/cache-keys.d.ts +22 -0
- package/src/build/cache/cache-keys.js +71 -0
- package/src/build/cache/pages-unified-graph-build.d.ts +31 -0
- package/src/build/cache/pages-unified-graph-build.js +199 -0
- package/src/build/cache/production-build-cache.d.ts +21 -0
- package/src/build/cache/production-build-cache.js +56 -0
- package/src/build/cache/server-entry-build-cache.d.ts +43 -0
- package/src/build/cache/server-entry-build-cache.js +153 -0
- package/src/build/contracts/build-contracts.d.ts +96 -0
- package/src/build/contracts/build-contracts.js +1 -0
- package/src/build/contracts/build-manifest.d.ts +90 -0
- package/src/build/contracts/build-manifest.js +64 -0
- package/src/build/contracts/build-types.js +1 -0
- package/src/build/contracts/content-virtual-modules.d.ts +12 -0
- package/src/build/contracts/content-virtual-modules.js +29 -0
- package/src/build/{rolldown-adapter-helpers.d.ts → rolldown/rolldown-adapter-helpers.d.ts} +32 -9
- package/src/build/rolldown/rolldown-adapter-helpers.js +458 -0
- package/src/build/{rolldown-build-adapter.d.ts → rolldown/rolldown-build-adapter.d.ts} +3 -7
- package/src/build/rolldown/rolldown-build-adapter.js +57 -0
- package/src/build/rolldown/rolldown-build-invocation-metrics.d.ts +12 -0
- package/src/build/rolldown/rolldown-build-invocation-metrics.js +39 -0
- package/src/build/{rolldown-plugin-bridge.d.ts → rolldown/rolldown-plugin-bridge.d.ts} +16 -2
- package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
- package/src/build/rolldown/rolldown-source-transform-pass.d.ts +15 -0
- package/src/build/rolldown/rolldown-source-transform-pass.js +70 -0
- package/src/build/rolldown/runtime-build-output-normalizer.d.ts +10 -0
- package/src/build/rolldown/runtime-build-output-normalizer.js +253 -0
- package/src/build/rolldown/server-side-css-shim-plugin.js +58 -0
- package/src/build/runtime/build-profile-options.d.ts +7 -0
- package/src/build/runtime/build-profile-options.js +37 -0
- package/src/build/runtime/build-request-identity.d.ts +17 -0
- package/src/build/runtime/build-request-identity.js +79 -0
- package/src/build/runtime/build-request-policy.d.ts +58 -0
- package/src/build/runtime/build-request-policy.js +84 -0
- package/src/build/runtime/build-runtime.d.ts +28 -0
- package/src/build/runtime/build-runtime.js +75 -0
- package/src/build/runtime/deduping-build-executor.d.ts +21 -0
- package/src/build/runtime/deduping-build-executor.js +40 -0
- package/src/build/runtime/parallel-build-executor.d.ts +21 -0
- package/src/build/runtime/parallel-build-executor.js +60 -0
- package/src/build/{serialized-build-executor.d.ts → runtime/serialized-build-executor.d.ts} +1 -1
- package/src/build/runtime/serialized-build-executor.js +79 -0
- package/src/cache/index.d.ts +2 -1
- package/src/cache/index.js +7 -6
- package/src/cache/module-parse-cache.d.ts +5 -0
- package/src/cache/module-parse-cache.js +122 -67
- package/src/cache/module-transform-profiler.d.ts +8 -0
- package/src/cache/module-transform-profiler.js +8 -0
- package/src/client/navigation-scripts/classification.d.ts +16 -0
- package/src/client/navigation-scripts/classification.js +49 -0
- package/src/client/navigation-scripts/index.d.ts +3 -0
- package/src/client/navigation-scripts/index.js +3 -0
- package/src/client/navigation-scripts/navigation-scripts.test.browser.d.ts +1 -0
- package/src/client/navigation-scripts/navigation-scripts.test.browser.js +61 -0
- package/src/client/navigation-scripts/registry.d.ts +11 -0
- package/src/client/navigation-scripts/registry.js +16 -0
- package/src/client/navigation-scripts/rerun-queue.d.ts +37 -0
- package/src/client/navigation-scripts/rerun-queue.js +90 -0
- package/src/client/scroll.d.ts +17 -0
- package/src/client/scroll.js +33 -0
- package/src/client/scroll.test.browser.d.ts +1 -0
- package/src/client/scroll.test.browser.js +31 -0
- package/src/client/view-transitions.d.ts +32 -0
- package/src/client/view-transitions.js +120 -0
- package/src/client/view-transitions.test.browser.d.ts +1 -0
- package/src/client/view-transitions.test.browser.js +56 -0
- package/src/config/config-builder.d.ts +40 -10
- package/src/config/config-builder.js +647 -600
- package/src/config/constants.d.ts +1 -0
- package/src/config/constants.js +44 -23
- package/src/declarations.d.ts +1 -0
- package/src/dev/README.md +24 -0
- package/src/dev/client-bridge-registry.d.ts +5 -0
- package/src/dev/client-bridge-registry.js +10 -0
- package/src/dev/dev-client-ownership.d.ts +7 -0
- package/src/dev/dev-client-ownership.js +8 -0
- package/src/dev/hmr-manager-registry.d.ts +8 -0
- package/src/dev/hmr-manager-registry.js +10 -0
- package/src/dev/host-runtime.d.ts +3 -0
- package/src/dev/host-runtime.js +25 -23
- package/src/dev/runtime-server-started-message.d.ts +2 -0
- package/src/dev/runtime-server-started-message.js +3 -0
- package/src/dev/sc-server.js +106 -103
- package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
- package/src/dev/transform-server/dev-transform-bundler.js +79 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.js +126 -0
- package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
- package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
- package/src/dev/transform-server/dev-transform-server.js +191 -0
- package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-url.js +58 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +28 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.js +158 -0
- package/src/dev/transform-server/index.d.ts +6 -0
- package/src/dev/transform-server/index.js +4 -0
- package/src/dev/transform-server/types.d.ts +15 -0
- package/src/dev/transform-server/types.js +1 -0
- package/src/dev-toolbar/README.md +52 -0
- package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
- package/src/dev-toolbar/define-dev-tool.js +9 -0
- package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
- package/src/dev-toolbar/dev-toolbar-config.js +19 -0
- package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
- package/src/dev-toolbar/dev-toolbar-host.js +117 -0
- package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
- package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
- package/src/dev-toolbar/dev-toolbar-manifest-contract.d.ts +22 -0
- package/src/dev-toolbar/dev-toolbar-manifest-contract.js +2 -0
- package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
- package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
- package/src/dev-toolbar/dev-toolbar-package.d.ts +34 -0
- package/src/dev-toolbar/dev-toolbar-package.js +78 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
- package/src/diagnostics/request-build-dedupe.d.ts +18 -0
- package/src/diagnostics/request-build-dedupe.js +39 -0
- package/src/diagnostics/request-pipeline-metrics.d.ts +38 -0
- package/src/diagnostics/request-pipeline-metrics.js +121 -0
- package/src/diagnostics/startup-trace.d.ts +81 -0
- package/src/diagnostics/startup-trace.js +281 -0
- package/src/eco/README.md +17 -0
- package/src/eco/component-identity.d.ts +13 -0
- package/src/eco/component-identity.js +18 -0
- package/src/eco/eco-declared-component.d.ts +15 -0
- package/src/eco/eco-declared-component.js +23 -0
- package/src/eco/eco.browser.js +63 -70
- package/src/eco/eco.js +163 -97
- package/src/eco/eco.types.d.ts +47 -8
- package/src/eco/eco.types.js +5 -0
- package/src/eco/eco.utils.d.ts +1 -1
- package/src/eco/eco.utils.js +1 -10
- package/src/eco/global-injector-map.js +55 -41
- package/src/eco/lazy-injector-map.js +90 -60
- package/src/eco/module-dependencies.js +52 -44
- package/src/eco/page-layout-normalization.d.ts +21 -0
- package/src/eco/page-layout-normalization.js +69 -0
- package/src/env.d.ts +2 -0
- package/src/errors/http-error.d.ts +8 -0
- package/src/errors/http-error.js +66 -49
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -6
- package/src/errors/locals-access-error.js +5 -8
- package/src/errors/undeclared-component-dependency-error.d.ts +11 -0
- package/src/errors/undeclared-component-dependency-error.js +17 -0
- package/src/global/app-logger.js +3 -6
- package/src/hmr/README.md +21 -0
- package/src/hmr/client/hmr-runtime.js +119 -110
- package/src/hmr/client/module-update.d.ts +13 -0
- package/src/hmr/client/module-update.js +39 -0
- package/src/hmr/hmr-asset-paths.d.ts +14 -0
- package/src/hmr/hmr-asset-paths.js +22 -0
- package/src/hmr/hmr-entrypoint-output.d.ts +21 -0
- package/src/hmr/hmr-entrypoint-output.js +34 -0
- package/src/hmr/hmr-file-change-prep.d.ts +10 -0
- package/src/hmr/hmr-file-change-prep.js +14 -0
- package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
- package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
- package/src/hmr/hmr-runtime-paths.d.ts +10 -0
- package/src/hmr/hmr-runtime-paths.js +13 -0
- package/src/hmr/hmr-strategy.d.ts +9 -0
- package/src/hmr/hmr-strategy.js +113 -42
- package/src/hmr/strategies/default-hmr-strategy.js +55 -33
- package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -97
- package/src/hmr/strategies/js-hmr-strategy.js +107 -167
- package/src/hmr/strategies/server-rendered-template-hmr-strategy.d.ts +17 -0
- package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +35 -0
- package/src/index.browser.d.ts +1 -0
- package/src/index.browser.js +2 -4
- package/src/index.d.ts +4 -1
- package/src/index.js +7 -21
- package/src/integrations/ghtml/ghtml-renderer.d.ts +2 -6
- package/src/integrations/ghtml/ghtml-renderer.js +12 -56
- package/src/integrations/ghtml/ghtml.constants.js +1 -4
- package/src/integrations/ghtml/ghtml.plugin.d.ts +3 -16
- package/src/integrations/ghtml/ghtml.plugin.js +10 -20
- package/src/islands/README.md +25 -0
- package/src/islands/island-host.d.ts +37 -0
- package/src/islands/island-host.js +55 -0
- package/src/plugins/README.md +2 -1
- package/src/plugins/alias-resolver-cache.d.ts +6 -9
- package/src/plugins/alias-resolver-cache.js +114 -97
- package/src/plugins/alias-resolver-plugin.d.ts +3 -3
- package/src/plugins/alias-resolver-plugin.js +35 -62
- package/src/plugins/define-integration.d.ts +26 -0
- package/src/plugins/define-integration.js +20 -0
- package/src/plugins/eco-component-meta-plugin.d.ts +6 -102
- package/src/plugins/eco-component-meta-plugin.js +120 -162
- package/src/plugins/foreign-jsx-override-plugin.d.ts +1 -1
- package/src/plugins/foreign-jsx-override-plugin.js +49 -37
- package/src/plugins/integration-plugin.d.ts +43 -14
- package/src/plugins/integration-plugin.js +212 -190
- package/src/plugins/jsx-import-source.utils.d.ts +8 -0
- package/src/plugins/jsx-import-source.utils.js +21 -0
- package/src/plugins/processor.d.ts +71 -12
- package/src/plugins/processor.js +168 -130
- package/src/plugins/runtime-capability.js +1 -0
- package/src/plugins/source-transform.d.ts +32 -1
- package/src/plugins/source-transform.js +112 -60
- package/src/plugins/tsconfig-import-resolver.d.ts +35 -0
- package/src/plugins/tsconfig-import-resolver.js +235 -0
- package/src/route-renderer/GRAPH.md +26 -32
- package/src/route-renderer/README.md +54 -33
- package/src/route-renderer/orchestration/document-shell/document-shell-render.service.d.ts +107 -0
- package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +155 -0
- package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.d.ts +20 -0
- package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +37 -0
- package/src/route-renderer/orchestration/{component-render-context.d.ts → foreign-child/component-render-context.d.ts} +8 -15
- package/src/route-renderer/orchestration/foreign-child/component-render-context.js +196 -0
- package/src/route-renderer/orchestration/{render-output.utils.d.ts → foreign-child/foreign-child-output.utils.d.ts} +17 -7
- package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +191 -0
- package/src/route-renderer/orchestration/{foreign-subtree-execution.service.d.ts → foreign-child/foreign-subtree-execution.service.d.ts} +64 -34
- package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +354 -0
- package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.d.ts +19 -0
- package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +36 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +41 -151
- package/src/route-renderer/orchestration/integration-renderer.js +798 -988
- package/src/route-renderer/orchestration/integration-renderer.test-fixtures.d.ts +75 -0
- package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +173 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.d.ts +10 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +132 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph.d.ts +34 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph.js +89 -0
- package/src/route-renderer/orchestration/{ownership-validation.service.d.ts → ownership-graph/ownership-validation.service.d.ts} +6 -2
- package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +77 -0
- package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.d.ts +7 -0
- package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +30 -0
- package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.d.ts +15 -0
- package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.js +9 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.d.ts +5 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.js +30 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.d.ts +12 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +32 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +126 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +542 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.d.ts +47 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +232 -0
- package/src/route-renderer/orchestration/{processed-asset-dedupe.d.ts → page-browser-graph/processed-asset-dedupe.d.ts} +1 -1
- package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +23 -0
- package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.d.ts +29 -0
- package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.js +54 -0
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +38 -0
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +26 -0
- package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.d.ts +6 -0
- package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +25 -0
- package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.d.ts +15 -0
- package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +43 -0
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +25 -0
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +44 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.d.ts +26 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +49 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.d.ts +4 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +30 -0
- package/src/route-renderer/orchestration/{route-render-orchestrator.d.ts → route-pipeline/route-render-orchestrator.d.ts} +24 -54
- package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +215 -0
- package/src/route-renderer/orchestration/string-markup-renderer.d.ts +14 -0
- package/src/route-renderer/orchestration/string-markup-renderer.js +52 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +121 -121
- package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
- package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +1 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +64 -51
- package/src/route-renderer/page-loading/file-scoped-dependency-components.d.ts +42 -0
- package/src/route-renderer/page-loading/file-scoped-dependency-components.js +94 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +47 -36
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +39 -28
- package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
- package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
- package/src/route-renderer/page-loading/page-module-loader.d.ts +2 -1
- package/src/route-renderer/page-loading/page-module-loader.js +136 -124
- package/src/route-renderer/page-loading/resolved-page-dependencies.d.ts +12 -0
- package/src/route-renderer/page-loading/resolved-page-dependencies.js +38 -0
- package/src/route-renderer/route-renderer.js +74 -76
- package/src/router/README.md +31 -0
- package/src/router/client/link-intent.d.ts +11 -21
- package/src/router/client/link-intent.js +56 -30
- package/src/router/client/link-intent.test.browser.js +50 -39
- package/src/router/client/link-navigation-policy.d.ts +45 -0
- package/src/router/client/link-navigation-policy.js +122 -0
- package/src/router/client/link-navigation-policy.test.browser.d.ts +1 -0
- package/src/router/client/link-navigation-policy.test.browser.js +82 -0
- package/src/router/client/navigation-coordinator.d.ts +1 -1
- package/src/router/client/navigation-coordinator.js +235 -201
- package/src/router/client/navigation-lifecycle.d.ts +55 -0
- package/src/router/client/navigation-lifecycle.js +50 -0
- package/src/router/client/navigation-lifecycle.test.browser.d.ts +1 -0
- package/src/router/client/navigation-lifecycle.test.browser.js +118 -0
- package/src/router/server/route-registry.js +237 -242
- package/src/services/README.md +5 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +13 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -50
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +7 -1
- package/src/services/assets/asset-processing-service/asset-processing.service.js +308 -268
- package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
- package/src/services/assets/asset-processing-service/assets.types.d.ts +1 -1
- package/src/services/assets/asset-processing-service/assets.types.js +1 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +2 -1
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -45
- package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.d.ts +52 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +115 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +4 -2
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -38
- package/src/services/assets/asset-processing-service/finalize-processed-asset.d.ts +3 -0
- package/src/services/assets/asset-processing-service/finalize-processed-asset.js +5 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +2 -1
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +85 -60
- package/src/services/assets/asset-processing-service/index.d.ts +2 -0
- package/src/services/assets/asset-processing-service/index.js +8 -6
- package/src/services/assets/asset-processing-service/inline-content-script-body.d.ts +11 -0
- package/src/services/assets/asset-processing-service/inline-content-script-body.js +23 -0
- package/src/services/assets/asset-processing-service/materialize-content-script-asset.d.ts +9 -0
- package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +22 -0
- package/src/services/assets/asset-processing-service/page-package.js +70 -72
- package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
- package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -2
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -130
- package/src/services/assets/asset-processing-service/processors/index.js +5 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +8 -0
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +111 -111
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -1
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -94
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -121
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -3
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +26 -57
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -3
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +33 -67
- package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.d.ts +2 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +44 -0
- package/src/services/assets/asset-processing-service/resolve-integration-plugin.d.ts +4 -0
- package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +15 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -1
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -44
- package/src/services/assets/browser-bundle.service.d.ts +28 -30
- package/src/services/assets/browser-bundle.service.js +54 -40
- package/src/services/cache/cache.types.d.ts +4 -2
- package/src/services/cache/cache.types.js +5 -0
- package/src/services/cache/html-page-cache-dependency-index.d.ts +34 -0
- package/src/services/cache/html-page-cache-dependency-index.js +88 -0
- package/src/services/cache/index.d.ts +2 -0
- package/src/services/cache/index.js +8 -7
- package/src/services/cache/memory-cache-store.js +101 -89
- package/src/services/cache/page-cache-service.d.ts +31 -1
- package/src/services/cache/page-cache-service.js +237 -150
- package/src/services/cache/page-request-cache-coordinator.service.js +106 -102
- package/src/services/html/html-rewriter-provider.service.js +61 -61
- package/src/services/html/html-transformer.service.d.ts +1 -1
- package/src/services/html/html-transformer.service.js +249 -266
- package/src/services/invalidation/development-invalidation.service.d.ts +25 -2
- package/src/services/invalidation/development-invalidation.service.js +239 -175
- package/src/services/module-loading/README.md +52 -0
- package/src/services/module-loading/app-module-loader.service.js +1 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +8 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +103 -118
- package/src/services/module-loading/collection-server-module-build.service.d.ts +19 -0
- package/src/services/module-loading/collection-server-module-build.service.js +83 -0
- package/src/services/module-loading/host-module-loader-registry.js +6 -11
- package/src/services/module-loading/module-loading-types.js +1 -0
- package/src/services/module-loading/page-module-import.service.d.ts +11 -13
- package/src/services/module-loading/page-module-import.service.js +222 -184
- package/src/services/module-loading/route-module-build-cache-registry.d.ts +24 -0
- package/src/services/module-loading/route-module-build-cache-registry.js +51 -0
- package/src/services/module-loading/route-module-build-cache.d.ts +4 -0
- package/src/services/module-loading/route-module-build-cache.js +3 -0
- package/src/services/module-loading/route-module-build-cache.store.d.ts +57 -0
- package/src/services/module-loading/route-module-build-cache.store.js +202 -0
- package/src/services/module-loading/route-module-build-manifest.d.ts +57 -0
- package/src/services/module-loading/route-module-build-manifest.js +60 -0
- package/src/services/module-loading/route-module-dependency-hasher.d.ts +81 -0
- package/src/services/module-loading/route-module-dependency-hasher.js +148 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +1 -3
- package/src/services/module-loading/server-module-transpiler.service.js +65 -62
- package/src/services/module-loading/source-module-support.js +15 -7
- package/src/services/runtime-state/dev-graph.service.js +165 -157
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
- package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
- package/src/services/validation/schema-validation-service.d.ts +1 -4
- package/src/services/validation/schema-validation-service.js +156 -95
- package/src/services/validation/standard-schema.types.d.ts +9 -62
- package/src/services/validation/standard-schema.types.js +1 -0
- package/src/services/validation/validate-standard-schema.d.ts +7 -0
- package/src/services/validation/validate-standard-schema.js +14 -0
- package/src/static-site-generator/README.md +41 -0
- package/src/static-site-generator/production-page-browser-graph-prebuild.d.ts +32 -0
- package/src/static-site-generator/production-page-browser-graph-prebuild.js +57 -0
- package/src/static-site-generator/sitemap-routes.d.ts +14 -0
- package/src/static-site-generator/sitemap-routes.js +36 -0
- package/src/static-site-generator/sitemap.d.ts +15 -0
- package/src/static-site-generator/sitemap.js +42 -0
- package/src/static-site-generator/static-build-invalidation.d.ts +10 -0
- package/src/static-site-generator/static-build-invalidation.js +37 -0
- package/src/static-site-generator/static-export-context.d.ts +30 -0
- package/src/static-site-generator/static-export-context.js +1 -0
- package/src/static-site-generator/static-site-generator.d.ts +43 -25
- package/src/static-site-generator/static-site-generator.js +536 -294
- package/src/types/internal-types.d.ts +59 -13
- package/src/types/internal-types.js +1 -0
- package/src/types/public-types.d.ts +310 -95
- package/src/types/public-types.js +1 -0
- package/src/utils/deep-merge.js +39 -26
- package/src/utils/ecopages-route-info.d.ts +26 -0
- package/src/utils/ecopages-route-info.js +30 -0
- package/src/utils/hash.js +3 -6
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +22 -5
- package/src/utils/html.js +1 -4
- package/src/utils/invariant.js +11 -10
- package/src/utils/locals-utils.js +32 -22
- package/src/utils/parse-cli-args.d.ts +2 -0
- package/src/utils/parse-cli-args.js +73 -59
- package/src/utils/path-pattern.d.ts +23 -0
- package/src/utils/path-pattern.js +42 -0
- package/src/utils/path-utils.module.js +8 -11
- package/src/utils/resolve-entry-file.js +70 -38
- package/src/utils/resolve-work-dir.js +23 -27
- package/src/utils/runtime.js +24 -33
- package/src/utils/server-utils.module.d.ts +3 -2
- package/src/utils/server-utils.module.js +60 -53
- package/src/utils/static-file-extensions.d.ts +12 -0
- package/src/utils/static-file-extensions.js +54 -0
- package/src/watchers/project-watcher-ignore.d.ts +11 -0
- package/src/watchers/project-watcher-ignore.js +17 -0
- package/src/watchers/project-watcher.d.ts +29 -6
- package/src/watchers/project-watcher.js +402 -257
- package/src/watchers/project-watcher.test-helpers.js +45 -50
- package/src/adapters/shared/api-response.js +0 -96
- package/src/adapters/shared/application-adapter.js +0 -90
- package/src/adapters/shared/define-api-handler.d.ts +0 -25
- package/src/adapters/shared/define-api-handler.js +0 -15
- package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
- package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
- package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
- package/src/adapters/shared/fs-server-response-factory.js +0 -81
- package/src/adapters/shared/fs-server-response-matcher.js +0 -186
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
- package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
- package/src/adapters/shared/hmr-html-response.js +0 -33
- package/src/adapters/shared/render-context.js +0 -93
- package/src/adapters/shared/runtime-app-bootstrap.js +0 -46
- package/src/adapters/shared/runtime-host.js +0 -0
- package/src/adapters/shared/server-adapter.js +0 -436
- package/src/adapters/shared/server-route-handler.js +0 -111
- package/src/adapters/shared/server-static-builder.js +0 -162
- package/src/adapters/shared/shared-hmr-manager.d.ts +0 -59
- package/src/adapters/shared/shared-hmr-manager.js +0 -241
- package/src/adapters/shared/static-preview-host.js +0 -0
- package/src/build/browser-runtime-manifest.js +0 -61
- package/src/build/browser-runtime-plugin-helpers.js +0 -14
- package/src/build/browser-runtime-plugin.js +0 -173
- package/src/build/build-manifest.d.ts +0 -33
- package/src/build/build-manifest.js +0 -49
- package/src/build/build-types.js +0 -0
- package/src/build/rolldown-adapter-helpers.js +0 -265
- package/src/build/rolldown-build-adapter.js +0 -65
- package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
- package/src/build/rolldown-dev-build-adapter.js +0 -166
- package/src/build/rolldown-plugin-bridge.js +0 -199
- package/src/build/runtime-build-executor.d.ts +0 -21
- package/src/build/runtime-build-executor.js +0 -19
- package/src/build/runtime-build-output-normalizer.d.ts +0 -3
- package/src/build/runtime-build-output-normalizer.js +0 -111
- package/src/build/serialized-build-executor.js +0 -63
- package/src/build/server-side-css-shim-plugin.js +0 -35
- package/src/hmr/hmr.postcss.test.e2e.js +0 -31
- package/src/hmr/hmr.test.e2e.js +0 -43
- package/src/route-renderer/orchestration/component-render-context.js +0 -147
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
- package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -233
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
- package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
- package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
- package/src/route-renderer/orchestration/render-output.utils.js +0 -171
- package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -577
- package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
- package/src/route-renderer/orchestration/template-serialization.js +0 -45
- /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
- /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
- /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
- /package/src/build/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +0 -0
- /package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +0 -0
- /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
- /package/src/build/{server-side-css-shim-plugin.d.ts → rolldown/server-side-css-shim-plugin.d.ts} +0 -0
|
@@ -1,19 +1,32 @@
|
|
|
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;
|
|
11
16
|
export interface ProcessorWatchContext {
|
|
12
17
|
path: string;
|
|
13
18
|
bridge: IClientBridge;
|
|
14
19
|
}
|
|
15
20
|
export interface ProcessorWatchConfig {
|
|
16
21
|
paths: string[];
|
|
22
|
+
/**
|
|
23
|
+
* File extensions that trigger watch callbacks (`onCreate`, `onChange`, `onDelete`).
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* Watch extensions drive notifications only. They do not declare asset ownership.
|
|
27
|
+
* Ownership requires {@link ProcessorConfig.capabilities} and controls whether dev
|
|
28
|
+
* invalidation skips server modules and HMR for processor-handled assets.
|
|
29
|
+
*/
|
|
17
30
|
extensions?: string[];
|
|
18
31
|
onCreate?: (ctx: ProcessorWatchContext) => Promise<void>;
|
|
19
32
|
onChange?: (ctx: ProcessorWatchContext) => Promise<void>;
|
|
@@ -52,22 +65,41 @@ export interface ProcessorContext {
|
|
|
52
65
|
cache?: string;
|
|
53
66
|
}
|
|
54
67
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
68
|
+
* Base class for content and asset processors that contribute build plugins.
|
|
69
|
+
*
|
|
70
|
+
* @remarks
|
|
71
|
+
* Processors declare plugins through two getters that map to
|
|
72
|
+
* {@link AppBuildManifest} buckets (names differ from integrations):
|
|
73
|
+
*
|
|
74
|
+
* - `plugins` → `runtimePlugins` (server **and** browser builds)
|
|
75
|
+
* - `buildPlugins` → `browserBundlePlugins` (browser bundles only)
|
|
76
|
+
*
|
|
77
|
+
* Virtual modules that must resolve during route-module transpile belong in
|
|
78
|
+
* `plugins`. Browser-only bundler hooks belong in `buildPlugins`.
|
|
59
79
|
*/
|
|
60
80
|
export declare abstract class Processor<TOptions = Record<string, unknown>> {
|
|
61
81
|
readonly name: string;
|
|
62
|
-
protected dependencies: AssetDefinition[];
|
|
63
82
|
protected context?: ProcessorContext;
|
|
64
83
|
protected options?: TOptions;
|
|
65
84
|
protected watchConfig?: ProcessorWatchConfig;
|
|
66
85
|
protected capabilities: ProcessorAssetCapability[];
|
|
67
86
|
readonly runtimeCapability?: RuntimeCapabilityDeclaration;
|
|
68
|
-
/**
|
|
87
|
+
/**
|
|
88
|
+
* Browser-bundle-only plugins.
|
|
89
|
+
*
|
|
90
|
+
* @remarks
|
|
91
|
+
* Maps to {@link AppBuildManifest.browserBundlePlugins}. Integrations name the
|
|
92
|
+
* same bucket `browserBuildPlugins`.
|
|
93
|
+
*/
|
|
69
94
|
abstract buildPlugins?: EcoBuildPlugin[];
|
|
70
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Shared build plugins for server-oriented and browser-oriented work.
|
|
97
|
+
*
|
|
98
|
+
* @remarks
|
|
99
|
+
* Maps to {@link AppBuildManifest.runtimePlugins}. Despite the name, these are
|
|
100
|
+
* bundler plugins—not dev-server file processors. Runtime-only setup stays in
|
|
101
|
+
* {@link setup}.
|
|
102
|
+
*/
|
|
71
103
|
abstract plugins?: EcoBuildPlugin[];
|
|
72
104
|
constructor(config: ProcessorConfig<TOptions>);
|
|
73
105
|
setContext(appConfig: EcoPagesAppConfig): void;
|
|
@@ -80,14 +112,41 @@ export declare abstract class Processor<TOptions = Record<string, unknown>> {
|
|
|
80
112
|
* warming or watcher registration should stay in `setup()`.
|
|
81
113
|
*/
|
|
82
114
|
prepareBuildContributions(): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Declares watch-mode SSR prewarm pathnames and readiness for core.
|
|
117
|
+
*
|
|
118
|
+
* @remarks
|
|
119
|
+
* Processors return paths and readiness only; core owns parallel rendering and page cache population.
|
|
120
|
+
*/
|
|
121
|
+
collectDevPrewarmPlan(): Promise<{
|
|
122
|
+
pathnames: readonly string[];
|
|
123
|
+
readiness: 'background' | 'beforeReady';
|
|
124
|
+
}>;
|
|
125
|
+
/**
|
|
126
|
+
* Reports whether this processor's build inputs changed since the last
|
|
127
|
+
* incremental static build.
|
|
128
|
+
*
|
|
129
|
+
* @remarks
|
|
130
|
+
* No shipped processor overrides this today. Integrations and processors can
|
|
131
|
+
* opt in when they own build inputs that should invalidate incremental static
|
|
132
|
+
* exports without a full rebuild.
|
|
133
|
+
*/
|
|
134
|
+
didChange(): boolean;
|
|
83
135
|
abstract setup(): Promise<void>;
|
|
84
|
-
abstract teardown(): Promise<void>;
|
|
85
136
|
abstract process(input: unknown, filePath?: string): Promise<unknown>;
|
|
137
|
+
/**
|
|
138
|
+
* Releases runtime resources owned by the processor.
|
|
139
|
+
*
|
|
140
|
+
* @remarks
|
|
141
|
+
* Core does not call this hook today. Override only when a processor owns
|
|
142
|
+
* watchers, compiler handles, or other resources that outlive individual
|
|
143
|
+
* requests.
|
|
144
|
+
*/
|
|
145
|
+
teardown(): Promise<void>;
|
|
86
146
|
protected getCachePath(key: string): string;
|
|
87
147
|
protected readCache<T>(key: string): Promise<T | null>;
|
|
88
148
|
protected writeCache<T>(key: string, data: T): Promise<void>;
|
|
89
149
|
getWatchConfig(): ProcessorWatchConfig | undefined;
|
|
90
|
-
getDependencies(): AssetDefinition[];
|
|
91
150
|
getName(): string;
|
|
92
151
|
getAssetCapabilities(): ProcessorAssetCapability[];
|
|
93
152
|
matchesFileFilter(_filepath: string): boolean;
|
package/src/plugins/processor.js
CHANGED
|
@@ -1,141 +1,179 @@
|
|
|
1
|
-
import path from
|
|
2
|
-
import { fileSystem } from
|
|
3
|
-
import { DEFAULT_ECOPAGES_WORK_DIR } from
|
|
4
|
-
import { GENERATED_BASE_PATHS } from
|
|
5
|
-
import { deepMerge } from
|
|
6
|
-
const PROCESSOR_ERRORS = {
|
|
7
|
-
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { fileSystem } from '@ecopages/file-system';
|
|
3
|
+
import { DEFAULT_ECOPAGES_WORK_DIR } from '../config/constants.js';
|
|
4
|
+
import { GENERATED_BASE_PATHS } from '../config/constants.js';
|
|
5
|
+
import { deepMerge } from '../utils/deep-merge.js';
|
|
6
|
+
export const PROCESSOR_ERRORS = {
|
|
7
|
+
CACHE_DIRECTORY_NOT_SET: 'Cache directory not set in context',
|
|
8
8
|
};
|
|
9
|
-
function mergeProcessorOptions(defaults, overrides) {
|
|
10
|
-
|
|
9
|
+
export function mergeProcessorOptions(defaults, overrides) {
|
|
10
|
+
return deepMerge(defaults, overrides);
|
|
11
11
|
}
|
|
12
|
-
function resolveGeneratedPath(type, options) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
export function resolveGeneratedPath(type, options) {
|
|
13
|
+
const { root, module, subPath } = options;
|
|
14
|
+
const parts = [root, GENERATED_BASE_PATHS[type], module, subPath].filter(Boolean);
|
|
15
|
+
return path.join(...parts);
|
|
16
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
|
-
distDir: appConfig.absolutePaths.distDir,
|
|
44
|
-
cache: cachePath
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Prepares build-facing processor contributions before config finalization.
|
|
49
|
-
*
|
|
50
|
-
* @remarks
|
|
51
|
-
* Override this when a processor must compute runtime/build plugins or other
|
|
52
|
-
* manifest-owned state before startup. Runtime-only work such as cache
|
|
53
|
-
* warming or watcher registration should stay in `setup()`.
|
|
54
|
-
*/
|
|
55
|
-
async prepareBuildContributions() {
|
|
56
|
-
}
|
|
57
|
-
getCachePath(key) {
|
|
58
|
-
return `${this.context?.cache}/${key}`;
|
|
59
|
-
}
|
|
60
|
-
async readCache(key) {
|
|
61
|
-
const cachePath = this.getCachePath(key);
|
|
62
|
-
try {
|
|
63
|
-
const data = await fileSystem.readFile(cachePath);
|
|
64
|
-
return JSON.parse(data);
|
|
65
|
-
} catch {
|
|
66
|
-
return null;
|
|
17
|
+
/**
|
|
18
|
+
* Base class for content and asset processors that contribute build plugins.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* Processors declare plugins through two getters that map to
|
|
22
|
+
* {@link AppBuildManifest} buckets (names differ from integrations):
|
|
23
|
+
*
|
|
24
|
+
* - `plugins` → `runtimePlugins` (server **and** browser builds)
|
|
25
|
+
* - `buildPlugins` → `browserBundlePlugins` (browser bundles only)
|
|
26
|
+
*
|
|
27
|
+
* Virtual modules that must resolve during route-module transpile belong in
|
|
28
|
+
* `plugins`. Browser-only bundler hooks belong in `buildPlugins`.
|
|
29
|
+
*/
|
|
30
|
+
export class Processor {
|
|
31
|
+
name;
|
|
32
|
+
context;
|
|
33
|
+
options;
|
|
34
|
+
watchConfig;
|
|
35
|
+
capabilities = [];
|
|
36
|
+
runtimeCapability;
|
|
37
|
+
constructor(config) {
|
|
38
|
+
this.name = config.name;
|
|
39
|
+
this.options = config.options;
|
|
40
|
+
this.watchConfig = config.watch;
|
|
41
|
+
this.capabilities = config.capabilities ?? [];
|
|
42
|
+
this.runtimeCapability = config.runtimeCapability;
|
|
67
43
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
44
|
+
setContext(appConfig) {
|
|
45
|
+
const workDir = appConfig.absolutePaths.workDir ??
|
|
46
|
+
path.join(appConfig.rootDir, appConfig.workDir ?? DEFAULT_ECOPAGES_WORK_DIR);
|
|
47
|
+
const cachePath = resolveGeneratedPath('cache', {
|
|
48
|
+
root: workDir,
|
|
49
|
+
module: this.name,
|
|
50
|
+
});
|
|
51
|
+
fileSystem.ensureDir(cachePath);
|
|
52
|
+
this.context = {
|
|
53
|
+
config: appConfig,
|
|
54
|
+
rootDir: appConfig.rootDir,
|
|
55
|
+
srcDir: appConfig.absolutePaths.srcDir,
|
|
56
|
+
distDir: appConfig.absolutePaths.distDir,
|
|
57
|
+
cache: cachePath,
|
|
58
|
+
};
|
|
72
59
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
canProcessAsset(kind, filepath) {
|
|
92
|
-
const capabilities = this.getAssetCapabilities();
|
|
93
|
-
if (capabilities.length === 0) {
|
|
94
|
-
return false;
|
|
60
|
+
/**
|
|
61
|
+
* Prepares build-facing processor contributions before config finalization.
|
|
62
|
+
*
|
|
63
|
+
* @remarks
|
|
64
|
+
* Override this when a processor must compute runtime/build plugins or other
|
|
65
|
+
* manifest-owned state before startup. Runtime-only work such as cache
|
|
66
|
+
* warming or watcher registration should stay in `setup()`.
|
|
67
|
+
*/
|
|
68
|
+
async prepareBuildContributions() { }
|
|
69
|
+
/**
|
|
70
|
+
* Declares watch-mode SSR prewarm pathnames and readiness for core.
|
|
71
|
+
*
|
|
72
|
+
* @remarks
|
|
73
|
+
* Processors return paths and readiness only; core owns parallel rendering and page cache population.
|
|
74
|
+
*/
|
|
75
|
+
collectDevPrewarmPlan() {
|
|
76
|
+
return Promise.resolve({ pathnames: [], readiness: 'background' });
|
|
95
77
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
78
|
+
/**
|
|
79
|
+
* Reports whether this processor's build inputs changed since the last
|
|
80
|
+
* incremental static build.
|
|
81
|
+
*
|
|
82
|
+
* @remarks
|
|
83
|
+
* No shipped processor overrides this today. Integrations and processors can
|
|
84
|
+
* opt in when they own build inputs that should invalidate incremental static
|
|
85
|
+
* exports without a full rebuild.
|
|
86
|
+
*/
|
|
87
|
+
didChange() {
|
|
88
|
+
return false;
|
|
99
89
|
}
|
|
100
|
-
|
|
101
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Releases runtime resources owned by the processor.
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* Core does not call this hook today. Override only when a processor owns
|
|
95
|
+
* watchers, compiler handles, or other resources that outlive individual
|
|
96
|
+
* requests.
|
|
97
|
+
*/
|
|
98
|
+
async teardown() { }
|
|
99
|
+
getCachePath(key) {
|
|
100
|
+
return `${this.context?.cache}/${key}`;
|
|
102
101
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
async readCache(key) {
|
|
103
|
+
const cachePath = this.getCachePath(key);
|
|
104
|
+
try {
|
|
105
|
+
const data = await fileSystem.readFile(cachePath);
|
|
106
|
+
return JSON.parse(data);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
108
111
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
async writeCache(key, data) {
|
|
113
|
+
if (!this.context?.cache) {
|
|
114
|
+
throw new Error(PROCESSOR_ERRORS.CACHE_DIRECTORY_NOT_SET);
|
|
115
|
+
}
|
|
116
|
+
const cachePath = this.getCachePath(key);
|
|
117
|
+
fileSystem.write(cachePath, JSON.stringify(data, null, 2));
|
|
118
|
+
}
|
|
119
|
+
getWatchConfig() {
|
|
120
|
+
return this.watchConfig;
|
|
121
|
+
}
|
|
122
|
+
getName() {
|
|
123
|
+
return this.name;
|
|
124
|
+
}
|
|
125
|
+
getAssetCapabilities() {
|
|
126
|
+
return this.capabilities;
|
|
127
|
+
}
|
|
128
|
+
matchesFileFilter(_filepath) {
|
|
116
129
|
return true;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
130
|
+
}
|
|
131
|
+
canProcessAsset(kind, filepath) {
|
|
132
|
+
const capabilities = this.getAssetCapabilities();
|
|
133
|
+
if (capabilities.length === 0) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
const matchingKind = capabilities.filter((capability) => capability.kind === kind);
|
|
137
|
+
if (matchingKind.length === 0) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
if (!filepath) {
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
return matchingKind.some((capability) => this.matchesCapabilityExtensions(filepath, capability.extensions));
|
|
144
|
+
}
|
|
145
|
+
matchesCapabilityExtensions(filepath, extensions) {
|
|
146
|
+
if (!extensions || extensions.length === 0) {
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
const normalizedExt = path.extname(filepath).toLowerCase();
|
|
150
|
+
return extensions.some((rawPattern) => {
|
|
151
|
+
const pattern = this.normalizeExtensionPattern(rawPattern);
|
|
152
|
+
if (!pattern) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
if (pattern === '*') {
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
const groupedMatch = pattern.match(/^\*\.\{(.+)\}$/);
|
|
159
|
+
if (groupedMatch) {
|
|
160
|
+
const groupItems = groupedMatch[1]
|
|
161
|
+
.split(',')
|
|
162
|
+
.map((item) => this.normalizeExtensionPattern(item))
|
|
163
|
+
.filter(Boolean);
|
|
164
|
+
return groupItems.some((item) => normalizedExt === item || normalizedExt === `.${item}`);
|
|
165
|
+
}
|
|
166
|
+
if (pattern.startsWith('*')) {
|
|
167
|
+
const suffix = pattern.slice(1);
|
|
168
|
+
return normalizedExt.endsWith(suffix);
|
|
169
|
+
}
|
|
170
|
+
if (pattern.startsWith('.')) {
|
|
171
|
+
return normalizedExt === pattern;
|
|
172
|
+
}
|
|
173
|
+
return normalizedExt === `.${pattern}`;
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
normalizeExtensionPattern(rawPattern) {
|
|
177
|
+
return rawPattern.trim().toLowerCase();
|
|
178
|
+
}
|
|
136
179
|
}
|
|
137
|
-
export {
|
|
138
|
-
PROCESSOR_ERRORS,
|
|
139
|
-
Processor,
|
|
140
|
-
mergeProcessorOptions
|
|
141
|
-
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,12 +1,24 @@
|
|
|
1
|
-
import type { EcoBuildPlugin } from '../build/build-types.js';
|
|
1
|
+
import type { EcoBuildPlugin } from '../build/contracts/build-types.js';
|
|
2
2
|
import type { EcoPagesAppConfig } from '../types/internal-types.js';
|
|
3
3
|
export interface EcoSourceTransformResult {
|
|
4
4
|
code: string;
|
|
5
5
|
map?: unknown;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Bundler-neutral source transform registered on {@link EcoPagesAppConfig.sourceTransforms}.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* Prefer this shape over a competing {@link EcoBuildPlugin} `onLoad` handler when
|
|
12
|
+
* the transform only rewrites module source. Browser/HMR builds run source
|
|
13
|
+
* transforms after first-wins `onLoad` plugins, so metadata injection and similar
|
|
14
|
+
* passes still run on rewritten output from boundary/runtime plugins.
|
|
15
|
+
*/
|
|
7
16
|
export interface EcoSourceTransform {
|
|
17
|
+
/** Stable transform name. Also used to dedupe loader plugins in browser builds. */
|
|
8
18
|
name: string;
|
|
19
|
+
/** File-path filter tested against {@link normalizeTransformId | normalized ids}. */
|
|
9
20
|
filter: RegExp;
|
|
21
|
+
/** Runs before default transforms, or after them when set to `post`. */
|
|
10
22
|
enforce?: 'pre' | 'post';
|
|
11
23
|
transform(code: string, id: string): EcoSourceTransformResult | string | undefined;
|
|
12
24
|
}
|
|
@@ -24,8 +36,27 @@ export declare function normalizeTransformId(id: string): string;
|
|
|
24
36
|
* Applies one source transform if the normalized id matches its filter.
|
|
25
37
|
*/
|
|
26
38
|
export declare function applySourceTransform(transform: EcoSourceTransform, code: string, id: string): EcoSourceTransformResult | string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Applies app-owned source transforms in deterministic `pre` → default → `post` order.
|
|
41
|
+
*
|
|
42
|
+
* @remarks
|
|
43
|
+
* Used by the Rolldown plugin bridge after `onLoad` plugins produce final module
|
|
44
|
+
* contents. Transforms that do not match `filter` are skipped; matching transforms
|
|
45
|
+
* are chained left-to-right on the current source string.
|
|
46
|
+
*
|
|
47
|
+
* @param transforms - App-owned transforms, usually from {@link getAppSourceTransforms}.
|
|
48
|
+
* @param code - Current module source.
|
|
49
|
+
* @param id - Module id forwarded to each transform after query/hash normalization.
|
|
50
|
+
* @returns The transformed source, or the original `code` when no transform matches.
|
|
51
|
+
*/
|
|
52
|
+
export declare function applySourceTransforms(transforms: readonly EcoSourceTransform[], code: string, id: string): string;
|
|
27
53
|
/**
|
|
28
54
|
* Adapts a source transform into the existing Ecopages build-plugin contract.
|
|
55
|
+
*
|
|
56
|
+
* @remarks
|
|
57
|
+
* Server-oriented builds and loader registration still use this adapter.
|
|
58
|
+
* Browser/HMR builds should register the transform in `appConfig.sourceTransforms`
|
|
59
|
+
* instead so the Rolldown bridge can run it after competing `onLoad` plugins.
|
|
29
60
|
*/
|
|
30
61
|
export declare function createEcoBuildPluginFromSourceTransform(transform: EcoSourceTransform): EcoBuildPlugin;
|
|
31
62
|
/**
|