@ecopages/core 0.2.0-beta.4 → 0.2.0-beta.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -9
- package/package.json +371 -33
- package/src/adapters/README.md +6 -2
- package/src/adapters/abstract/application-adapter.d.ts +115 -6
- package/src/adapters/abstract/application-adapter.js +261 -120
- package/src/adapters/abstract/router-adapter.js +12 -4
- package/src/adapters/abstract/segment-path-matcher.d.ts +6 -0
- package/src/adapters/abstract/segment-path-matcher.js +147 -0
- package/src/adapters/abstract/server-adapter.d.ts +16 -2
- package/src/adapters/abstract/server-adapter.js +22 -14
- package/src/adapters/abstract/ws-pattern-matcher.d.ts +12 -0
- package/src/adapters/abstract/ws-pattern-matcher.js +28 -0
- package/src/adapters/bun/bun-user-websocket-lifecycle.d.ts +22 -0
- package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
- package/src/adapters/bun/client-bridge.d.ts +1 -0
- package/src/adapters/bun/client-bridge.js +51 -47
- package/src/adapters/bun/create-app.d.ts +9 -6
- package/src/adapters/bun/create-app.js +171 -130
- package/src/adapters/bun/hmr-manager.d.ts +1 -1
- package/src/adapters/bun/hmr-manager.js +62 -57
- package/src/adapters/bun/index.d.ts +1 -1
- package/src/adapters/bun/index.js +2 -8
- package/src/adapters/bun/runtime-host.d.ts +1 -1
- package/src/adapters/bun/runtime-host.js +61 -54
- package/src/adapters/bun/server-adapter.d.ts +91 -41
- package/src/adapters/bun/server-adapter.js +566 -426
- package/src/adapters/bun/static-preview-host.d.ts +1 -1
- package/src/adapters/bun/static-preview-host.js +43 -41
- package/src/adapters/create-app.d.ts +13 -11
- package/src/adapters/create-app.js +11 -63
- package/src/adapters/index.d.ts +2 -2
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +8 -3
- package/src/adapters/node/create-app.js +126 -84
- package/src/adapters/node/http-request-bridge.js +147 -106
- package/src/adapters/node/node-client-bridge.d.ts +1 -0
- package/src/adapters/node/node-client-bridge.js +62 -61
- package/src/adapters/node/node-hmr-manager.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.js +58 -48
- package/src/adapters/node/runtime-host.d.ts +1 -1
- package/src/adapters/node/runtime-host.js +96 -89
- package/src/adapters/node/server-adapter-dependencies.js +18 -17
- package/src/adapters/node/server-adapter.d.ts +63 -23
- package/src/adapters/node/server-adapter.js +346 -297
- package/src/adapters/node/static-content-server.d.ts +1 -0
- package/src/adapters/node/static-content-server.js +172 -183
- package/src/adapters/node/static-preview-host.d.ts +1 -1
- package/src/adapters/node/static-preview-host.js +88 -64
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
- package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
- package/src/adapters/shared/{hmr-html-response.d.ts → hmr/hmr-html-response.d.ts} +2 -2
- package/src/adapters/shared/hmr/hmr-html-response.js +50 -0
- package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +92 -0
- package/src/adapters/shared/hmr/shared-hmr-manager.js +446 -0
- package/src/adapters/shared/http/api-request-pipeline.d.ts +23 -0
- package/src/adapters/shared/http/api-request-pipeline.js +132 -0
- package/src/adapters/shared/{api-response.d.ts → http/api-response.d.ts} +1 -1
- package/src/adapters/shared/http/api-response.js +79 -0
- package/src/adapters/shared/http/create-body-response.d.ts +12 -0
- package/src/adapters/shared/http/create-body-response.js +26 -0
- package/src/adapters/shared/http/define-api-handler.d.ts +90 -0
- package/src/adapters/shared/http/define-api-handler.js +49 -0
- package/src/adapters/shared/{explicit-static-render-preparation.d.ts → http/explicit-static-render-preparation.d.ts} +3 -3
- package/src/adapters/shared/http/explicit-static-render-preparation.js +29 -0
- package/src/adapters/shared/{explicit-static-route-matcher.d.ts → http/explicit-static-route-matcher.d.ts} +3 -9
- package/src/adapters/shared/http/explicit-static-route-matcher.js +59 -0
- package/src/adapters/shared/{file-route-middleware-pipeline.d.ts → http/file-route-middleware-pipeline.d.ts} +2 -2
- package/src/adapters/shared/http/file-route-middleware-pipeline.js +84 -0
- package/src/adapters/shared/{fs-server-response-factory.d.ts → http/fs-server-response-factory.d.ts} +7 -2
- package/src/adapters/shared/http/fs-server-response-factory.js +106 -0
- package/src/adapters/shared/{fs-server-response-matcher.d.ts → http/fs-server-response-matcher.d.ts} +25 -5
- package/src/adapters/shared/http/fs-server-response-matcher.js +258 -0
- package/src/adapters/shared/http/run-middleware-chain.d.ts +5 -0
- package/src/adapters/shared/http/run-middleware-chain.js +17 -0
- package/src/adapters/shared/{application-adapter.d.ts → runtime/application-adapter.d.ts} +2 -2
- package/src/adapters/shared/runtime/application-adapter.js +75 -0
- package/src/adapters/shared/runtime/collect-dev-prewarm-plan.d.ts +11 -0
- package/src/adapters/shared/runtime/collect-dev-prewarm-plan.js +29 -0
- package/src/adapters/shared/runtime/copy-runtime-public-dir.d.ts +6 -0
- package/src/adapters/shared/runtime/copy-runtime-public-dir.js +27 -0
- package/src/adapters/shared/runtime/dev-static-route-prewarm.d.ts +16 -0
- package/src/adapters/shared/runtime/dev-static-route-prewarm.js +66 -0
- package/src/adapters/shared/runtime/port-manager.d.ts +116 -0
- package/src/adapters/shared/runtime/port-manager.js +226 -0
- package/src/adapters/shared/{render-context.d.ts → runtime/render-context.d.ts} +2 -2
- package/src/adapters/shared/runtime/render-context.js +99 -0
- package/src/adapters/shared/{runtime-app-bootstrap.d.ts → runtime/runtime-app-bootstrap.d.ts} +4 -3
- package/src/adapters/shared/runtime/runtime-app-bootstrap.js +38 -0
- package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +45 -0
- package/src/adapters/shared/runtime/runtime-server-lifecycle.js +71 -0
- package/src/adapters/shared/{server-adapter.d.ts → runtime/server-adapter.d.ts} +31 -50
- package/src/adapters/shared/runtime/server-adapter.js +301 -0
- package/src/adapters/shared/{server-route-handler.d.ts → runtime/server-route-handler.d.ts} +6 -33
- package/src/adapters/shared/runtime/server-route-handler.js +77 -0
- package/src/adapters/shared/{server-static-builder.d.ts → runtime/server-static-builder.d.ts} +27 -35
- package/src/adapters/shared/runtime/server-static-builder.js +172 -0
- package/src/adapters/shared/{static-preview-host.d.ts → runtime/static-preview-host.d.ts} +6 -1
- package/src/adapters/shared/ws/node-http-websocket-upgrades.d.ts +21 -0
- package/src/adapters/shared/ws/node-http-websocket-upgrades.js +109 -0
- package/src/adapters/shared/ws/websocket-lifecycle.d.ts +24 -0
- package/src/adapters/shared/ws/websocket-lifecycle.js +62 -0
- package/src/build/README.md +191 -31
- package/src/build/app-build-manifest-runtime.d.ts +39 -0
- package/src/build/app-build-manifest-runtime.js +145 -0
- package/src/build/browser/browser-runtime-manifest.js +58 -0
- package/src/build/browser/browser-runtime-plugin-helpers.js +34 -0
- package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +1 -1
- package/src/build/browser/browser-runtime-plugin.js +216 -0
- package/src/build/browser/jsx-ownership-plugins.d.ts +24 -0
- package/src/build/browser/jsx-ownership-plugins.js +55 -0
- package/src/build/browser/lit-static-render-worker-context.d.ts +2 -0
- package/src/build/browser/lit-static-render-worker-context.js +4 -0
- package/src/build/build-adapter.d.ts +29 -334
- package/src/build/build-adapter.js +273 -237
- package/src/build/cache/build-input-fingerprint.d.ts +28 -0
- package/src/build/cache/build-input-fingerprint.js +33 -0
- package/src/build/cache/cache-constants.d.ts +4 -0
- package/src/build/cache/cache-constants.js +4 -0
- package/src/build/cache/cache-keys.d.ts +22 -0
- package/src/build/cache/cache-keys.js +71 -0
- package/src/build/cache/pages-unified-graph-build.d.ts +31 -0
- package/src/build/cache/pages-unified-graph-build.js +199 -0
- package/src/build/cache/production-build-cache.d.ts +21 -0
- package/src/build/cache/production-build-cache.js +56 -0
- package/src/build/cache/server-entry-build-cache.d.ts +43 -0
- package/src/build/cache/server-entry-build-cache.js +153 -0
- package/src/build/contracts/build-contracts.d.ts +96 -0
- package/src/build/contracts/build-contracts.js +1 -0
- package/src/build/contracts/build-manifest.d.ts +90 -0
- package/src/build/contracts/build-manifest.js +64 -0
- package/src/build/contracts/build-types.js +1 -0
- package/src/build/contracts/content-virtual-modules.d.ts +12 -0
- package/src/build/contracts/content-virtual-modules.js +29 -0
- package/src/build/{rolldown-adapter-helpers.d.ts → rolldown/rolldown-adapter-helpers.d.ts} +32 -9
- package/src/build/rolldown/rolldown-adapter-helpers.js +458 -0
- package/src/build/{rolldown-build-adapter.d.ts → rolldown/rolldown-build-adapter.d.ts} +3 -7
- package/src/build/rolldown/rolldown-build-adapter.js +57 -0
- package/src/build/rolldown/rolldown-build-invocation-metrics.d.ts +12 -0
- package/src/build/rolldown/rolldown-build-invocation-metrics.js +39 -0
- package/src/build/{rolldown-plugin-bridge.d.ts → rolldown/rolldown-plugin-bridge.d.ts} +16 -2
- package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
- package/src/build/rolldown/rolldown-source-transform-pass.d.ts +15 -0
- package/src/build/rolldown/rolldown-source-transform-pass.js +70 -0
- package/src/build/rolldown/runtime-build-output-normalizer.d.ts +10 -0
- package/src/build/rolldown/runtime-build-output-normalizer.js +253 -0
- package/src/build/rolldown/server-side-css-shim-plugin.js +58 -0
- package/src/build/runtime/build-profile-options.d.ts +7 -0
- package/src/build/runtime/build-profile-options.js +37 -0
- package/src/build/runtime/build-request-identity.d.ts +17 -0
- package/src/build/runtime/build-request-identity.js +79 -0
- package/src/build/runtime/build-request-policy.d.ts +58 -0
- package/src/build/runtime/build-request-policy.js +84 -0
- package/src/build/runtime/build-runtime.d.ts +28 -0
- package/src/build/runtime/build-runtime.js +75 -0
- package/src/build/runtime/deduping-build-executor.d.ts +21 -0
- package/src/build/runtime/deduping-build-executor.js +40 -0
- package/src/build/runtime/parallel-build-executor.d.ts +21 -0
- package/src/build/runtime/parallel-build-executor.js +60 -0
- package/src/build/{serialized-build-executor.d.ts → runtime/serialized-build-executor.d.ts} +1 -1
- package/src/build/runtime/serialized-build-executor.js +79 -0
- package/src/cache/index.d.ts +2 -1
- package/src/cache/index.js +7 -6
- package/src/cache/module-parse-cache.d.ts +5 -0
- package/src/cache/module-parse-cache.js +122 -67
- package/src/cache/module-transform-profiler.d.ts +8 -0
- package/src/cache/module-transform-profiler.js +8 -0
- package/src/client/navigation-scripts/classification.d.ts +16 -0
- package/src/client/navigation-scripts/classification.js +49 -0
- package/src/client/navigation-scripts/index.d.ts +3 -0
- package/src/client/navigation-scripts/index.js +3 -0
- package/src/client/navigation-scripts/navigation-scripts.test.browser.d.ts +1 -0
- package/src/client/navigation-scripts/navigation-scripts.test.browser.js +61 -0
- package/src/client/navigation-scripts/registry.d.ts +11 -0
- package/src/client/navigation-scripts/registry.js +16 -0
- package/src/client/navigation-scripts/rerun-queue.d.ts +37 -0
- package/src/client/navigation-scripts/rerun-queue.js +90 -0
- package/src/client/scroll.d.ts +17 -0
- package/src/client/scroll.js +33 -0
- package/src/client/scroll.test.browser.d.ts +1 -0
- package/src/client/scroll.test.browser.js +31 -0
- package/src/client/view-transitions.d.ts +32 -0
- package/src/client/view-transitions.js +120 -0
- package/src/client/view-transitions.test.browser.d.ts +1 -0
- package/src/client/view-transitions.test.browser.js +56 -0
- package/src/config/config-builder.d.ts +40 -10
- package/src/config/config-builder.js +647 -600
- package/src/config/constants.d.ts +1 -0
- package/src/config/constants.js +44 -23
- package/src/declarations.d.ts +1 -0
- package/src/dev/README.md +24 -0
- package/src/dev/client-bridge-registry.d.ts +5 -0
- package/src/dev/client-bridge-registry.js +10 -0
- package/src/dev/dev-client-ownership.d.ts +7 -0
- package/src/dev/dev-client-ownership.js +8 -0
- package/src/dev/hmr-manager-registry.d.ts +8 -0
- package/src/dev/hmr-manager-registry.js +10 -0
- package/src/dev/host-runtime.d.ts +3 -0
- package/src/dev/host-runtime.js +25 -23
- package/src/dev/runtime-server-started-message.d.ts +2 -0
- package/src/dev/runtime-server-started-message.js +3 -0
- package/src/dev/sc-server.js +106 -103
- package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
- package/src/dev/transform-server/dev-transform-bundler.js +79 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
- package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
- package/src/dev/transform-server/dev-transform-import-rewriter.js +126 -0
- package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
- package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
- package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
- package/src/dev/transform-server/dev-transform-server.js +191 -0
- package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
- package/src/dev/transform-server/dev-transform-url.js +58 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +28 -0
- package/src/dev/transform-server/dev-transform-vendor-registry.js +158 -0
- package/src/dev/transform-server/index.d.ts +6 -0
- package/src/dev/transform-server/index.js +4 -0
- package/src/dev/transform-server/types.d.ts +15 -0
- package/src/dev/transform-server/types.js +1 -0
- package/src/dev-toolbar/README.md +52 -0
- package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
- package/src/dev-toolbar/define-dev-tool.js +9 -0
- package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
- package/src/dev-toolbar/dev-toolbar-config.js +19 -0
- package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
- package/src/dev-toolbar/dev-toolbar-host.js +117 -0
- package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
- package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
- package/src/dev-toolbar/dev-toolbar-manifest-contract.d.ts +22 -0
- package/src/dev-toolbar/dev-toolbar-manifest-contract.js +2 -0
- package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
- package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
- package/src/dev-toolbar/dev-toolbar-package.d.ts +34 -0
- package/src/dev-toolbar/dev-toolbar-package.js +78 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
- package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
- package/src/diagnostics/request-build-dedupe.d.ts +18 -0
- package/src/diagnostics/request-build-dedupe.js +39 -0
- package/src/diagnostics/request-pipeline-metrics.d.ts +38 -0
- package/src/diagnostics/request-pipeline-metrics.js +121 -0
- package/src/diagnostics/startup-trace.d.ts +81 -0
- package/src/diagnostics/startup-trace.js +281 -0
- package/src/eco/README.md +17 -0
- package/src/eco/component-identity.d.ts +13 -0
- package/src/eco/component-identity.js +18 -0
- package/src/eco/eco-declared-component.d.ts +15 -0
- package/src/eco/eco-declared-component.js +23 -0
- package/src/eco/eco.browser.js +63 -70
- package/src/eco/eco.js +163 -97
- package/src/eco/eco.types.d.ts +47 -8
- package/src/eco/eco.types.js +5 -0
- package/src/eco/eco.utils.d.ts +1 -1
- package/src/eco/eco.utils.js +1 -10
- package/src/eco/global-injector-map.js +55 -41
- package/src/eco/lazy-injector-map.js +90 -60
- package/src/eco/module-dependencies.js +52 -44
- package/src/eco/page-layout-normalization.d.ts +21 -0
- package/src/eco/page-layout-normalization.js +69 -0
- package/src/env.d.ts +2 -0
- package/src/errors/http-error.d.ts +8 -0
- package/src/errors/http-error.js +66 -49
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -6
- package/src/errors/locals-access-error.js +5 -8
- package/src/errors/undeclared-component-dependency-error.d.ts +11 -0
- package/src/errors/undeclared-component-dependency-error.js +17 -0
- package/src/global/app-logger.js +3 -6
- package/src/hmr/README.md +21 -0
- package/src/hmr/client/hmr-runtime.js +119 -110
- package/src/hmr/client/module-update.d.ts +13 -0
- package/src/hmr/client/module-update.js +39 -0
- package/src/hmr/hmr-asset-paths.d.ts +14 -0
- package/src/hmr/hmr-asset-paths.js +22 -0
- package/src/hmr/hmr-entrypoint-output.d.ts +21 -0
- package/src/hmr/hmr-entrypoint-output.js +34 -0
- package/src/hmr/hmr-file-change-prep.d.ts +10 -0
- package/src/hmr/hmr-file-change-prep.js +14 -0
- package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
- package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
- package/src/hmr/hmr-runtime-paths.d.ts +10 -0
- package/src/hmr/hmr-runtime-paths.js +13 -0
- package/src/hmr/hmr-strategy.d.ts +9 -0
- package/src/hmr/hmr-strategy.js +113 -42
- package/src/hmr/strategies/default-hmr-strategy.js +55 -33
- package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -97
- package/src/hmr/strategies/js-hmr-strategy.js +107 -167
- package/src/hmr/strategies/server-rendered-template-hmr-strategy.d.ts +17 -0
- package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +35 -0
- package/src/index.browser.d.ts +1 -0
- package/src/index.browser.js +2 -4
- package/src/index.d.ts +4 -1
- package/src/index.js +7 -21
- package/src/integrations/ghtml/ghtml-renderer.d.ts +2 -6
- package/src/integrations/ghtml/ghtml-renderer.js +12 -56
- package/src/integrations/ghtml/ghtml.constants.js +1 -4
- package/src/integrations/ghtml/ghtml.plugin.d.ts +3 -16
- package/src/integrations/ghtml/ghtml.plugin.js +10 -20
- package/src/islands/README.md +25 -0
- package/src/islands/island-host.d.ts +37 -0
- package/src/islands/island-host.js +55 -0
- package/src/plugins/README.md +2 -1
- package/src/plugins/alias-resolver-cache.d.ts +6 -9
- package/src/plugins/alias-resolver-cache.js +114 -97
- package/src/plugins/alias-resolver-plugin.d.ts +3 -3
- package/src/plugins/alias-resolver-plugin.js +35 -62
- package/src/plugins/define-integration.d.ts +26 -0
- package/src/plugins/define-integration.js +20 -0
- package/src/plugins/eco-component-meta-plugin.d.ts +6 -102
- package/src/plugins/eco-component-meta-plugin.js +120 -162
- package/src/plugins/foreign-jsx-override-plugin.d.ts +1 -1
- package/src/plugins/foreign-jsx-override-plugin.js +49 -37
- package/src/plugins/integration-plugin.d.ts +43 -14
- package/src/plugins/integration-plugin.js +212 -190
- package/src/plugins/jsx-import-source.utils.d.ts +8 -0
- package/src/plugins/jsx-import-source.utils.js +21 -0
- package/src/plugins/processor.d.ts +71 -12
- package/src/plugins/processor.js +168 -130
- package/src/plugins/runtime-capability.js +1 -0
- package/src/plugins/source-transform.d.ts +32 -1
- package/src/plugins/source-transform.js +112 -60
- package/src/plugins/tsconfig-import-resolver.d.ts +35 -0
- package/src/plugins/tsconfig-import-resolver.js +235 -0
- package/src/route-renderer/GRAPH.md +26 -32
- package/src/route-renderer/README.md +54 -33
- package/src/route-renderer/orchestration/document-shell/document-shell-render.service.d.ts +107 -0
- package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +155 -0
- package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.d.ts +20 -0
- package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +37 -0
- package/src/route-renderer/orchestration/{component-render-context.d.ts → foreign-child/component-render-context.d.ts} +8 -15
- package/src/route-renderer/orchestration/foreign-child/component-render-context.js +196 -0
- package/src/route-renderer/orchestration/{render-output.utils.d.ts → foreign-child/foreign-child-output.utils.d.ts} +17 -7
- package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +191 -0
- package/src/route-renderer/orchestration/{foreign-subtree-execution.service.d.ts → foreign-child/foreign-subtree-execution.service.d.ts} +64 -34
- package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +354 -0
- package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.d.ts +19 -0
- package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +36 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +41 -151
- package/src/route-renderer/orchestration/integration-renderer.js +798 -988
- package/src/route-renderer/orchestration/integration-renderer.test-fixtures.d.ts +75 -0
- package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +173 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.d.ts +10 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +132 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph.d.ts +34 -0
- package/src/route-renderer/orchestration/ownership-graph/component-graph.js +89 -0
- package/src/route-renderer/orchestration/{ownership-validation.service.d.ts → ownership-graph/ownership-validation.service.d.ts} +6 -2
- package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +77 -0
- package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.d.ts +7 -0
- package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +30 -0
- package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.d.ts +15 -0
- package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.js +9 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.d.ts +5 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.js +30 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.d.ts +12 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +32 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +126 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +542 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.d.ts +47 -0
- package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +232 -0
- package/src/route-renderer/orchestration/{processed-asset-dedupe.d.ts → page-browser-graph/processed-asset-dedupe.d.ts} +1 -1
- package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +23 -0
- package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.d.ts +29 -0
- package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.js +54 -0
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +38 -0
- package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +26 -0
- package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.d.ts +6 -0
- package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +25 -0
- package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.d.ts +15 -0
- package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +43 -0
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +25 -0
- package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +44 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.d.ts +26 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +49 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.d.ts +4 -0
- package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +30 -0
- package/src/route-renderer/orchestration/{route-render-orchestrator.d.ts → route-pipeline/route-render-orchestrator.d.ts} +24 -54
- package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +215 -0
- package/src/route-renderer/orchestration/string-markup-renderer.d.ts +14 -0
- package/src/route-renderer/orchestration/string-markup-renderer.js +52 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +121 -121
- package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
- package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +1 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +64 -51
- package/src/route-renderer/page-loading/file-scoped-dependency-components.d.ts +42 -0
- package/src/route-renderer/page-loading/file-scoped-dependency-components.js +94 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +47 -36
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +39 -28
- package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
- package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
- package/src/route-renderer/page-loading/page-module-loader.d.ts +2 -1
- package/src/route-renderer/page-loading/page-module-loader.js +136 -124
- package/src/route-renderer/page-loading/resolved-page-dependencies.d.ts +12 -0
- package/src/route-renderer/page-loading/resolved-page-dependencies.js +38 -0
- package/src/route-renderer/route-renderer.js +74 -76
- package/src/router/README.md +31 -0
- package/src/router/client/link-intent.d.ts +11 -21
- package/src/router/client/link-intent.js +56 -30
- package/src/router/client/link-intent.test.browser.js +50 -39
- package/src/router/client/link-navigation-policy.d.ts +45 -0
- package/src/router/client/link-navigation-policy.js +122 -0
- package/src/router/client/link-navigation-policy.test.browser.d.ts +1 -0
- package/src/router/client/link-navigation-policy.test.browser.js +82 -0
- package/src/router/client/navigation-coordinator.d.ts +1 -1
- package/src/router/client/navigation-coordinator.js +235 -201
- package/src/router/client/navigation-lifecycle.d.ts +55 -0
- package/src/router/client/navigation-lifecycle.js +50 -0
- package/src/router/client/navigation-lifecycle.test.browser.d.ts +1 -0
- package/src/router/client/navigation-lifecycle.test.browser.js +118 -0
- package/src/router/server/route-registry.js +237 -242
- package/src/services/README.md +5 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +13 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -50
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +7 -1
- package/src/services/assets/asset-processing-service/asset-processing.service.js +308 -268
- package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
- package/src/services/assets/asset-processing-service/assets.types.d.ts +1 -1
- package/src/services/assets/asset-processing-service/assets.types.js +1 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +2 -1
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -45
- package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.d.ts +52 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +115 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +4 -2
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -38
- package/src/services/assets/asset-processing-service/finalize-processed-asset.d.ts +3 -0
- package/src/services/assets/asset-processing-service/finalize-processed-asset.js +5 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +2 -1
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +85 -60
- package/src/services/assets/asset-processing-service/index.d.ts +2 -0
- package/src/services/assets/asset-processing-service/index.js +8 -6
- package/src/services/assets/asset-processing-service/inline-content-script-body.d.ts +11 -0
- package/src/services/assets/asset-processing-service/inline-content-script-body.js +23 -0
- package/src/services/assets/asset-processing-service/materialize-content-script-asset.d.ts +9 -0
- package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +22 -0
- package/src/services/assets/asset-processing-service/page-package.js +70 -72
- package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
- package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -2
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -130
- package/src/services/assets/asset-processing-service/processors/index.js +5 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +8 -0
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +111 -111
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -1
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -94
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -121
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -3
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +26 -57
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -3
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +33 -67
- package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.d.ts +2 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +44 -0
- package/src/services/assets/asset-processing-service/resolve-integration-plugin.d.ts +4 -0
- package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +15 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -1
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -44
- package/src/services/assets/browser-bundle.service.d.ts +28 -30
- package/src/services/assets/browser-bundle.service.js +54 -40
- package/src/services/cache/cache.types.d.ts +4 -2
- package/src/services/cache/cache.types.js +5 -0
- package/src/services/cache/html-page-cache-dependency-index.d.ts +34 -0
- package/src/services/cache/html-page-cache-dependency-index.js +88 -0
- package/src/services/cache/index.d.ts +2 -0
- package/src/services/cache/index.js +8 -7
- package/src/services/cache/memory-cache-store.js +101 -89
- package/src/services/cache/page-cache-service.d.ts +31 -1
- package/src/services/cache/page-cache-service.js +237 -150
- package/src/services/cache/page-request-cache-coordinator.service.js +106 -102
- package/src/services/html/html-rewriter-provider.service.js +61 -61
- package/src/services/html/html-transformer.service.d.ts +1 -1
- package/src/services/html/html-transformer.service.js +249 -266
- package/src/services/invalidation/development-invalidation.service.d.ts +25 -2
- package/src/services/invalidation/development-invalidation.service.js +239 -175
- package/src/services/module-loading/README.md +52 -0
- package/src/services/module-loading/app-module-loader.service.js +1 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +8 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +103 -118
- package/src/services/module-loading/collection-server-module-build.service.d.ts +19 -0
- package/src/services/module-loading/collection-server-module-build.service.js +83 -0
- package/src/services/module-loading/host-module-loader-registry.js +6 -11
- package/src/services/module-loading/module-loading-types.js +1 -0
- package/src/services/module-loading/page-module-import.service.d.ts +11 -13
- package/src/services/module-loading/page-module-import.service.js +222 -184
- package/src/services/module-loading/route-module-build-cache-registry.d.ts +24 -0
- package/src/services/module-loading/route-module-build-cache-registry.js +51 -0
- package/src/services/module-loading/route-module-build-cache.d.ts +4 -0
- package/src/services/module-loading/route-module-build-cache.js +3 -0
- package/src/services/module-loading/route-module-build-cache.store.d.ts +57 -0
- package/src/services/module-loading/route-module-build-cache.store.js +202 -0
- package/src/services/module-loading/route-module-build-manifest.d.ts +57 -0
- package/src/services/module-loading/route-module-build-manifest.js +60 -0
- package/src/services/module-loading/route-module-dependency-hasher.d.ts +81 -0
- package/src/services/module-loading/route-module-dependency-hasher.js +148 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +1 -3
- package/src/services/module-loading/server-module-transpiler.service.js +65 -62
- package/src/services/module-loading/source-module-support.js +15 -7
- package/src/services/runtime-state/dev-graph.service.js +165 -157
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
- package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
- package/src/services/validation/schema-validation-service.d.ts +1 -4
- package/src/services/validation/schema-validation-service.js +156 -95
- package/src/services/validation/standard-schema.types.d.ts +9 -62
- package/src/services/validation/standard-schema.types.js +1 -0
- package/src/services/validation/validate-standard-schema.d.ts +7 -0
- package/src/services/validation/validate-standard-schema.js +14 -0
- package/src/static-site-generator/README.md +41 -0
- package/src/static-site-generator/production-page-browser-graph-prebuild.d.ts +32 -0
- package/src/static-site-generator/production-page-browser-graph-prebuild.js +57 -0
- package/src/static-site-generator/sitemap-routes.d.ts +14 -0
- package/src/static-site-generator/sitemap-routes.js +36 -0
- package/src/static-site-generator/sitemap.d.ts +15 -0
- package/src/static-site-generator/sitemap.js +42 -0
- package/src/static-site-generator/static-build-invalidation.d.ts +10 -0
- package/src/static-site-generator/static-build-invalidation.js +37 -0
- package/src/static-site-generator/static-export-context.d.ts +30 -0
- package/src/static-site-generator/static-export-context.js +1 -0
- package/src/static-site-generator/static-site-generator.d.ts +43 -25
- package/src/static-site-generator/static-site-generator.js +536 -294
- package/src/types/internal-types.d.ts +59 -13
- package/src/types/internal-types.js +1 -0
- package/src/types/public-types.d.ts +310 -95
- package/src/types/public-types.js +1 -0
- package/src/utils/deep-merge.js +39 -26
- package/src/utils/ecopages-route-info.d.ts +26 -0
- package/src/utils/ecopages-route-info.js +30 -0
- package/src/utils/hash.js +3 -6
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +22 -5
- package/src/utils/html.js +1 -4
- package/src/utils/invariant.js +11 -10
- package/src/utils/locals-utils.js +32 -22
- package/src/utils/parse-cli-args.d.ts +2 -0
- package/src/utils/parse-cli-args.js +73 -59
- package/src/utils/path-pattern.d.ts +23 -0
- package/src/utils/path-pattern.js +42 -0
- package/src/utils/path-utils.module.js +8 -11
- package/src/utils/resolve-entry-file.js +70 -38
- package/src/utils/resolve-work-dir.js +23 -27
- package/src/utils/runtime.js +24 -33
- package/src/utils/server-utils.module.d.ts +3 -2
- package/src/utils/server-utils.module.js +60 -53
- package/src/utils/static-file-extensions.d.ts +12 -0
- package/src/utils/static-file-extensions.js +54 -0
- package/src/watchers/project-watcher-ignore.d.ts +11 -0
- package/src/watchers/project-watcher-ignore.js +17 -0
- package/src/watchers/project-watcher.d.ts +29 -6
- package/src/watchers/project-watcher.js +402 -257
- package/src/watchers/project-watcher.test-helpers.js +45 -50
- package/src/adapters/shared/api-response.js +0 -96
- package/src/adapters/shared/application-adapter.js +0 -90
- package/src/adapters/shared/define-api-handler.d.ts +0 -25
- package/src/adapters/shared/define-api-handler.js +0 -15
- package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
- package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
- package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
- package/src/adapters/shared/fs-server-response-factory.js +0 -81
- package/src/adapters/shared/fs-server-response-matcher.js +0 -186
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
- package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
- package/src/adapters/shared/hmr-html-response.js +0 -33
- package/src/adapters/shared/render-context.js +0 -93
- package/src/adapters/shared/runtime-app-bootstrap.js +0 -46
- package/src/adapters/shared/runtime-host.js +0 -0
- package/src/adapters/shared/server-adapter.js +0 -436
- package/src/adapters/shared/server-route-handler.js +0 -111
- package/src/adapters/shared/server-static-builder.js +0 -162
- package/src/adapters/shared/shared-hmr-manager.d.ts +0 -59
- package/src/adapters/shared/shared-hmr-manager.js +0 -241
- package/src/adapters/shared/static-preview-host.js +0 -0
- package/src/build/browser-runtime-manifest.js +0 -61
- package/src/build/browser-runtime-plugin-helpers.js +0 -14
- package/src/build/browser-runtime-plugin.js +0 -173
- package/src/build/build-manifest.d.ts +0 -33
- package/src/build/build-manifest.js +0 -49
- package/src/build/build-types.js +0 -0
- package/src/build/rolldown-adapter-helpers.js +0 -265
- package/src/build/rolldown-build-adapter.js +0 -65
- package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
- package/src/build/rolldown-dev-build-adapter.js +0 -166
- package/src/build/rolldown-plugin-bridge.js +0 -199
- package/src/build/runtime-build-executor.d.ts +0 -21
- package/src/build/runtime-build-executor.js +0 -19
- package/src/build/runtime-build-output-normalizer.d.ts +0 -3
- package/src/build/runtime-build-output-normalizer.js +0 -111
- package/src/build/serialized-build-executor.js +0 -63
- package/src/build/server-side-css-shim-plugin.js +0 -35
- package/src/hmr/hmr.postcss.test.e2e.js +0 -31
- package/src/hmr/hmr.test.e2e.js +0 -43
- package/src/route-renderer/orchestration/component-render-context.js +0 -147
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
- package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -233
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
- package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
- package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
- package/src/route-renderer/orchestration/render-output.utils.js +0 -171
- package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -577
- package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
- package/src/route-renderer/orchestration/template-serialization.js +0 -45
- /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
- /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
- /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
- /package/src/build/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +0 -0
- /package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +0 -0
- /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
- /package/src/build/{server-side-css-shim-plugin.d.ts → rolldown/server-side-css-shim-plugin.d.ts} +0 -0
|
@@ -1,71 +1,123 @@
|
|
|
1
|
-
import path from
|
|
2
|
-
import { fileSystem } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { fileSystem } from '@ecopages/file-system';
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes bundler module ids so one transform can serve Ecopages loaders,
|
|
5
|
+
* Vite, and future bundler adapters.
|
|
6
|
+
*/
|
|
7
|
+
export function normalizeTransformId(id) {
|
|
8
|
+
const queryIndex = id.indexOf('?');
|
|
9
|
+
const hashIndex = id.indexOf('#');
|
|
10
|
+
const endIndex = [queryIndex, hashIndex].filter((index) => index >= 0).sort((left, right) => left - right)[0];
|
|
11
|
+
return endIndex === undefined ? id : id.slice(0, endIndex);
|
|
8
12
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Applies one source transform if the normalized id matches its filter.
|
|
15
|
+
*/
|
|
16
|
+
export function applySourceTransform(transform, code, id) {
|
|
17
|
+
const normalizedId = normalizeTransformId(id);
|
|
18
|
+
if (!transform.filter.test(normalizedId)) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
return transform.transform(code, normalizedId);
|
|
15
22
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
case ".jsx":
|
|
24
|
-
return "jsx";
|
|
25
|
-
default:
|
|
26
|
-
return "js";
|
|
27
|
-
}
|
|
23
|
+
const SOURCE_TRANSFORM_ENFORCE_ORDER = {
|
|
24
|
+
pre: 0,
|
|
25
|
+
default: 1,
|
|
26
|
+
post: 2,
|
|
27
|
+
};
|
|
28
|
+
function getSourceTransformEnforceOrder(transform) {
|
|
29
|
+
return SOURCE_TRANSFORM_ENFORCE_ORDER[transform.enforce ?? 'default'];
|
|
28
30
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Applies app-owned source transforms in deterministic `pre` → default → `post` order.
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* Used by the Rolldown plugin bridge after `onLoad` plugins produce final module
|
|
36
|
+
* contents. Transforms that do not match `filter` are skipped; matching transforms
|
|
37
|
+
* are chained left-to-right on the current source string.
|
|
38
|
+
*
|
|
39
|
+
* @param transforms - App-owned transforms, usually from {@link getAppSourceTransforms}.
|
|
40
|
+
* @param code - Current module source.
|
|
41
|
+
* @param id - Module id forwarded to each transform after query/hash normalization.
|
|
42
|
+
* @returns The transformed source, or the original `code` when no transform matches.
|
|
43
|
+
*/
|
|
44
|
+
export function applySourceTransforms(transforms, code, id) {
|
|
45
|
+
let current = code;
|
|
46
|
+
for (const transform of [...transforms].sort((left, right) => getSourceTransformEnforceOrder(left) - getSourceTransformEnforceOrder(right))) {
|
|
47
|
+
const result = applySourceTransform(transform, current, id);
|
|
37
48
|
if (!result) {
|
|
38
|
-
|
|
49
|
+
continue;
|
|
39
50
|
}
|
|
40
|
-
|
|
41
|
-
contents: typeof result === "string" ? result : result.code,
|
|
42
|
-
loader: inferLoaderFromPath(filePath),
|
|
43
|
-
resolveDir: path.dirname(filePath)
|
|
44
|
-
};
|
|
45
|
-
});
|
|
51
|
+
current = typeof result === 'string' ? result : result.code;
|
|
46
52
|
}
|
|
47
|
-
|
|
53
|
+
return current;
|
|
48
54
|
}
|
|
49
|
-
function
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
function inferLoaderFromPath(filePath) {
|
|
56
|
+
const extension = path.extname(filePath).toLowerCase();
|
|
57
|
+
switch (extension) {
|
|
58
|
+
case '.ts':
|
|
59
|
+
return 'ts';
|
|
60
|
+
case '.tsx':
|
|
61
|
+
return 'tsx';
|
|
62
|
+
case '.jsx':
|
|
63
|
+
return 'jsx';
|
|
64
|
+
default:
|
|
65
|
+
return 'js';
|
|
55
66
|
}
|
|
56
|
-
};
|
|
57
67
|
}
|
|
58
|
-
|
|
59
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Adapts a source transform into the existing Ecopages build-plugin contract.
|
|
70
|
+
*
|
|
71
|
+
* @remarks
|
|
72
|
+
* Server-oriented builds and loader registration still use this adapter.
|
|
73
|
+
* Browser/HMR builds should register the transform in `appConfig.sourceTransforms`
|
|
74
|
+
* instead so the Rolldown bridge can run it after competing `onLoad` plugins.
|
|
75
|
+
*/
|
|
76
|
+
export function createEcoBuildPluginFromSourceTransform(transform) {
|
|
77
|
+
return {
|
|
78
|
+
name: transform.name,
|
|
79
|
+
setup(build) {
|
|
80
|
+
build.onLoad({ filter: transform.filter }, (args) => {
|
|
81
|
+
const filePath = normalizeTransformId(args.path);
|
|
82
|
+
const code = fileSystem.readFileSync(filePath);
|
|
83
|
+
const result = applySourceTransform(transform, code, filePath);
|
|
84
|
+
if (!result) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
contents: typeof result === 'string' ? result : result.code,
|
|
89
|
+
loader: inferLoaderFromPath(filePath),
|
|
90
|
+
resolveDir: path.dirname(filePath),
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
};
|
|
60
95
|
}
|
|
61
|
-
|
|
62
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Adapts a source transform into a Vite-compatible plugin object.
|
|
98
|
+
*
|
|
99
|
+
* @remarks
|
|
100
|
+
* This intentionally returns a plain object shape so core does not need a hard
|
|
101
|
+
* dependency on `vite` just to author transform primitives.
|
|
102
|
+
*/
|
|
103
|
+
export function createVitePluginFromSourceTransform(transform) {
|
|
104
|
+
return {
|
|
105
|
+
name: transform.name,
|
|
106
|
+
enforce: transform.enforce,
|
|
107
|
+
transform(code, id) {
|
|
108
|
+
return applySourceTransform(transform, code, id);
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Returns the app-owned source transforms in stable registration order.
|
|
114
|
+
*/
|
|
115
|
+
export function getAppSourceTransforms(appConfig) {
|
|
116
|
+
return appConfig.sourceTransforms ? Array.from(appConfig.sourceTransforms.values()) : [];
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Adapts the app-owned source transforms into Vite-compatible plugin objects.
|
|
120
|
+
*/
|
|
121
|
+
export function createVitePluginsFromAppSourceTransforms(appConfig) {
|
|
122
|
+
return getAppSourceTransforms(appConfig).map((transform) => createVitePluginFromSourceTransform(transform));
|
|
63
123
|
}
|
|
64
|
-
export {
|
|
65
|
-
applySourceTransform,
|
|
66
|
-
createEcoBuildPluginFromSourceTransform,
|
|
67
|
-
createVitePluginFromSourceTransform,
|
|
68
|
-
createVitePluginsFromAppSourceTransforms,
|
|
69
|
-
getAppSourceTransforms,
|
|
70
|
-
normalizeTransformId
|
|
71
|
-
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loads `compilerOptions.paths` keys from tsconfig, following `extends` recursively.
|
|
3
|
+
*/
|
|
4
|
+
export declare function loadTsconfigPathPrefixes(projectRoot: string): string[];
|
|
5
|
+
export declare function matchesTsconfigPathPrefix(specifier: string, prefixes: readonly string[]): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Returns true when `specifier` looks like a bare npm package import rather than
|
|
8
|
+
* a relative path, absolute path, node built-in, tsconfig alias, or `#` import map.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isBarePackageImportSpecifier(specifier: string, projectRoot?: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Resolves a bare npm package entry for browser vendor prebundles.
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* Prefer package `"browser"` / `"exports.browser"` over Node `"import"` entries.
|
|
16
|
+
* `createRequire().resolve()` is wrong here — it selects the server facade for
|
|
17
|
+
* dual packages such as `@ecopages/core`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveBarePackageBrowserEntry(projectRoot: string, specifier: string): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Resolves a relative import against the filesystem without requiring tsconfig.
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* Used when oxc-resolver has no tsconfig (minimal fixtures / apps without paths)
|
|
25
|
+
* and as a fallback when the resolver cannot locate a relative specifier.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveRelativeModulePath(fromFile: string, specifier: string): string | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Resolves a relative or tsconfig path alias import (via oxc-resolver).
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveProjectModulePath(projectRoot: string, fromFile: string, specifier: string): string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Resolves a TS path alias import using the app's tsconfig `paths` (via oxc-resolver).
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveProjectImportPath(projectRoot: string, fromFile: string, specifier: string): string | undefined;
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { existsSync, readFileSync, realpathSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { ResolverFactory } from 'oxc-resolver';
|
|
4
|
+
const RESOLVABLE_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.mdx'];
|
|
5
|
+
const resolverCache = new Map();
|
|
6
|
+
const pathPrefixCache = new Map();
|
|
7
|
+
function stripJsonComments(source) {
|
|
8
|
+
return source.replace(/\/\*[\s\S]*?\*\//g, '').replace(/^\s*\/\/.*$/gm, '');
|
|
9
|
+
}
|
|
10
|
+
function findTsconfigPath(projectRoot) {
|
|
11
|
+
const candidate = path.join(projectRoot, 'tsconfig.json');
|
|
12
|
+
return existsSync(candidate) ? candidate : undefined;
|
|
13
|
+
}
|
|
14
|
+
function readJsonFile(filePath) {
|
|
15
|
+
const source = readFileSync(filePath, 'utf8');
|
|
16
|
+
try {
|
|
17
|
+
return JSON.parse(source);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return JSON.parse(stripJsonComments(source));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Loads `compilerOptions.paths` keys from tsconfig, following `extends` recursively.
|
|
25
|
+
*/
|
|
26
|
+
export function loadTsconfigPathPrefixes(projectRoot) {
|
|
27
|
+
const cached = pathPrefixCache.get(projectRoot);
|
|
28
|
+
if (cached) {
|
|
29
|
+
return cached;
|
|
30
|
+
}
|
|
31
|
+
const tsconfigPath = findTsconfigPath(projectRoot);
|
|
32
|
+
if (!tsconfigPath) {
|
|
33
|
+
pathPrefixCache.set(projectRoot, []);
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
const prefixes = new Set();
|
|
37
|
+
const visited = new Set();
|
|
38
|
+
const collectFromConfig = (configPath) => {
|
|
39
|
+
const normalized = path.resolve(configPath);
|
|
40
|
+
if (visited.has(normalized)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
visited.add(normalized);
|
|
44
|
+
let config;
|
|
45
|
+
try {
|
|
46
|
+
config = readJsonFile(normalized);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (typeof config.extends === 'string') {
|
|
52
|
+
const parentPath = path.resolve(path.dirname(normalized), config.extends);
|
|
53
|
+
collectFromConfig(parentPath);
|
|
54
|
+
}
|
|
55
|
+
for (const key of Object.keys(config.compilerOptions?.paths ?? {})) {
|
|
56
|
+
if (key.endsWith('/*')) {
|
|
57
|
+
prefixes.add(key.slice(0, -1));
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (key.endsWith('*')) {
|
|
61
|
+
prefixes.add(key.slice(0, -1));
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
prefixes.add(key);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
collectFromConfig(tsconfigPath);
|
|
68
|
+
const resolvedPrefixes = [...prefixes];
|
|
69
|
+
pathPrefixCache.set(projectRoot, resolvedPrefixes);
|
|
70
|
+
return resolvedPrefixes;
|
|
71
|
+
}
|
|
72
|
+
export function matchesTsconfigPathPrefix(specifier, prefixes) {
|
|
73
|
+
return prefixes.some((prefix) => {
|
|
74
|
+
if (prefix.endsWith('/')) {
|
|
75
|
+
return specifier.startsWith(prefix);
|
|
76
|
+
}
|
|
77
|
+
return specifier === prefix || specifier.startsWith(`${prefix}/`);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Returns true when `specifier` looks like a bare npm package import rather than
|
|
82
|
+
* a relative path, absolute path, node built-in, tsconfig alias, or `#` import map.
|
|
83
|
+
*/
|
|
84
|
+
export function isBarePackageImportSpecifier(specifier, projectRoot) {
|
|
85
|
+
if (specifier.startsWith('.') || path.isAbsolute(specifier) || specifier.startsWith('/')) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
if (specifier.startsWith('node:') || specifier.startsWith('#') || specifier.includes(':')) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
if (projectRoot && matchesTsconfigPathPrefix(specifier, loadTsconfigPathPrefixes(projectRoot))) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
function getResolverFactory(projectRoot) {
|
|
97
|
+
const cached = resolverCache.get(projectRoot);
|
|
98
|
+
if (cached) {
|
|
99
|
+
return cached;
|
|
100
|
+
}
|
|
101
|
+
const tsconfigPath = findTsconfigPath(projectRoot);
|
|
102
|
+
if (!tsconfigPath) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
const resolver = new ResolverFactory({
|
|
106
|
+
tsconfig: {
|
|
107
|
+
configFile: tsconfigPath,
|
|
108
|
+
},
|
|
109
|
+
extensions: [...RESOLVABLE_EXTENSIONS],
|
|
110
|
+
});
|
|
111
|
+
resolverCache.set(projectRoot, resolver);
|
|
112
|
+
return resolver;
|
|
113
|
+
}
|
|
114
|
+
const BROWSER_PACKAGE_CONDITION_NAMES = ['browser', 'module', 'import', 'default'];
|
|
115
|
+
const BROWSER_PACKAGE_MAIN_FIELDS = ['browser', 'module', 'main'];
|
|
116
|
+
const browserPackageResolvers = new Map();
|
|
117
|
+
function getBrowserPackageResolver(projectRoot) {
|
|
118
|
+
const normalizedRoot = path.resolve(projectRoot);
|
|
119
|
+
const cached = browserPackageResolvers.get(normalizedRoot);
|
|
120
|
+
if (cached) {
|
|
121
|
+
return cached;
|
|
122
|
+
}
|
|
123
|
+
const resolver = new ResolverFactory({
|
|
124
|
+
conditionNames: [...BROWSER_PACKAGE_CONDITION_NAMES],
|
|
125
|
+
mainFields: [...BROWSER_PACKAGE_MAIN_FIELDS],
|
|
126
|
+
extensions: [...RESOLVABLE_EXTENSIONS],
|
|
127
|
+
});
|
|
128
|
+
browserPackageResolvers.set(normalizedRoot, resolver);
|
|
129
|
+
return resolver;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Resolves a bare npm package entry for browser vendor prebundles.
|
|
133
|
+
*
|
|
134
|
+
* @remarks
|
|
135
|
+
* Prefer package `"browser"` / `"exports.browser"` over Node `"import"` entries.
|
|
136
|
+
* `createRequire().resolve()` is wrong here — it selects the server facade for
|
|
137
|
+
* dual packages such as `@ecopages/core`.
|
|
138
|
+
*/
|
|
139
|
+
export function resolveBarePackageBrowserEntry(projectRoot, specifier) {
|
|
140
|
+
const result = getBrowserPackageResolver(projectRoot).sync(projectRoot, specifier);
|
|
141
|
+
if (result.error || !result.path) {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
try {
|
|
145
|
+
return realpathSync(result.path);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return result.path;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function resolveAliasedBarrelTarget(resolvedPath) {
|
|
152
|
+
if (!path.basename(resolvedPath).startsWith('index.')) {
|
|
153
|
+
return resolvedPath;
|
|
154
|
+
}
|
|
155
|
+
const source = readFileSync(resolvedPath, 'utf8').trim();
|
|
156
|
+
const match = source.match(/^export\s+\*\s+from\s+['"]([^'"]+)['"]\s*;?$/);
|
|
157
|
+
if (!match?.[1]?.startsWith('.')) {
|
|
158
|
+
return resolvedPath;
|
|
159
|
+
}
|
|
160
|
+
const targetDir = path.dirname(resolvedPath);
|
|
161
|
+
const targetBase = path.resolve(targetDir, match[1]);
|
|
162
|
+
for (const extension of RESOLVABLE_EXTENSIONS) {
|
|
163
|
+
const candidate = `${targetBase}${extension}`;
|
|
164
|
+
if (existsSync(candidate)) {
|
|
165
|
+
return candidate;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
for (const extension of RESOLVABLE_EXTENSIONS) {
|
|
169
|
+
const candidate = path.join(targetBase, `index${extension}`);
|
|
170
|
+
if (existsSync(candidate)) {
|
|
171
|
+
return candidate;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return resolvedPath;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Resolves a relative import against the filesystem without requiring tsconfig.
|
|
178
|
+
*
|
|
179
|
+
* @remarks
|
|
180
|
+
* Used when oxc-resolver has no tsconfig (minimal fixtures / apps without paths)
|
|
181
|
+
* and as a fallback when the resolver cannot locate a relative specifier.
|
|
182
|
+
*/
|
|
183
|
+
export function resolveRelativeModulePath(fromFile, specifier) {
|
|
184
|
+
if (!specifier.startsWith('.')) {
|
|
185
|
+
return undefined;
|
|
186
|
+
}
|
|
187
|
+
const targetBase = path.resolve(path.dirname(fromFile), specifier);
|
|
188
|
+
if (existsSync(targetBase)) {
|
|
189
|
+
return path.resolve(targetBase);
|
|
190
|
+
}
|
|
191
|
+
for (const candidateExtension of RESOLVABLE_EXTENSIONS) {
|
|
192
|
+
const candidate = `${targetBase}${candidateExtension}`;
|
|
193
|
+
if (existsSync(candidate)) {
|
|
194
|
+
return path.resolve(candidate);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
for (const candidateExtension of RESOLVABLE_EXTENSIONS) {
|
|
198
|
+
const candidate = path.join(targetBase, `index${candidateExtension}`);
|
|
199
|
+
if (existsSync(candidate)) {
|
|
200
|
+
return path.resolve(candidate);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Resolves a relative or tsconfig path alias import (via oxc-resolver).
|
|
207
|
+
*/
|
|
208
|
+
export function resolveProjectModulePath(projectRoot, fromFile, specifier) {
|
|
209
|
+
const prefixes = loadTsconfigPathPrefixes(projectRoot);
|
|
210
|
+
const isRelative = specifier.startsWith('.');
|
|
211
|
+
const isPathAlias = matchesTsconfigPathPrefix(specifier, prefixes);
|
|
212
|
+
if (!isRelative && !isPathAlias) {
|
|
213
|
+
return undefined;
|
|
214
|
+
}
|
|
215
|
+
const resolver = getResolverFactory(projectRoot);
|
|
216
|
+
if (resolver) {
|
|
217
|
+
const result = resolver.sync(path.dirname(fromFile), specifier);
|
|
218
|
+
if (result.path) {
|
|
219
|
+
return resolveAliasedBarrelTarget(realpathSync(result.path));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (isRelative) {
|
|
223
|
+
return resolveRelativeModulePath(fromFile, specifier);
|
|
224
|
+
}
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Resolves a TS path alias import using the app's tsconfig `paths` (via oxc-resolver).
|
|
229
|
+
*/
|
|
230
|
+
export function resolveProjectImportPath(projectRoot, fromFile, specifier) {
|
|
231
|
+
if (!matchesTsconfigPathPrefix(specifier, loadTsconfigPathPrefixes(projectRoot))) {
|
|
232
|
+
return undefined;
|
|
233
|
+
}
|
|
234
|
+
return resolveProjectModulePath(projectRoot, fromFile, specifier);
|
|
235
|
+
}
|
|
@@ -33,32 +33,26 @@ flowchart TD
|
|
|
33
33
|
|
|
34
34
|
## 2) Route Render Flow
|
|
35
35
|
|
|
36
|
-
`IntegrationRenderer.execute()` delegates shared route orchestration to `
|
|
36
|
+
`IntegrationRenderer.execute()` delegates shared route orchestration to `RouteRenderOrchestrator`.
|
|
37
37
|
|
|
38
38
|
```mermaid
|
|
39
39
|
flowchart TD
|
|
40
|
-
A[IntegrationRenderer.execute] --> B[
|
|
40
|
+
A[IntegrationRenderer.execute] --> B[RouteRenderOrchestrator.prepareRenderOptions]
|
|
41
41
|
B --> C[resolvePageModule]
|
|
42
42
|
C --> D[ownershipValidationService.validate]
|
|
43
43
|
D --> E[resolvePageData]
|
|
44
|
-
E --> F[
|
|
45
|
-
F --> G[resolveDependencies]
|
|
46
|
-
G --> H[
|
|
47
|
-
H --> I
|
|
48
|
-
I
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
M -->
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
P --> Q[inspect unresolved marker artifacts]
|
|
57
|
-
Q --> R{unresolved eco-marker remains?}
|
|
58
|
-
R -- Yes --> S[throw unresolved artifact error]
|
|
59
|
-
R -- No --> T[stamp root or document attributes when needed]
|
|
60
|
-
T --> U[htmlTransformer transform]
|
|
61
|
-
U --> V[final body and cache strategy]
|
|
44
|
+
E --> F[ownershipValidationService.validate + throwIfOwnershipInvalid]
|
|
45
|
+
F --> G[resolveDependencies + buildPageBrowserGraph]
|
|
46
|
+
G --> H[collect injector and eager SSR lazy assets]
|
|
47
|
+
H --> I[build pagePackage and prepared render options]
|
|
48
|
+
I --> J[IntegrationRenderer.render via document shell]
|
|
49
|
+
J --> K[capture rendered body as html]
|
|
50
|
+
K --> L[inspect unresolved marker artifacts]
|
|
51
|
+
L --> M{unresolved eco-marker remains?}
|
|
52
|
+
M -- Yes --> N[throw unresolved artifact error]
|
|
53
|
+
M -- No --> O[stamp document attributes when needed]
|
|
54
|
+
O --> P[htmlTransformer transform]
|
|
55
|
+
P --> Q[final body and cache strategy]
|
|
62
56
|
```
|
|
63
57
|
|
|
64
58
|
## 3) Mixed-Integration Render Model
|
|
@@ -77,7 +71,7 @@ flowchart TD
|
|
|
77
71
|
D -- Yes --> E[render inline]
|
|
78
72
|
D -- No --> F[delegate to owning renderer]
|
|
79
73
|
F --> G[owning renderer renderComponentWithForeignChildren]
|
|
80
|
-
G --> H[owning renderer
|
|
74
|
+
G --> H[owning renderer renderComponentWithForeignChildren mapped via toForeignSubtreeRenderPayload]
|
|
81
75
|
H --> I[resolved html plus assets and attachment policy]
|
|
82
76
|
```
|
|
83
77
|
|
|
@@ -91,7 +85,7 @@ flowchart TD
|
|
|
91
85
|
B -- Yes --> C[return resolved renderer-owned output]
|
|
92
86
|
B -- No --> D[queue foreign-subtree token]
|
|
93
87
|
D --> E[finish current render pass]
|
|
94
|
-
E --> F[
|
|
88
|
+
E --> F[ForeignSubtreeExecutionService resolveQueuedHtml]
|
|
95
89
|
F --> G[resolve nested queued tokens first]
|
|
96
90
|
G --> H[dispatch foreign subtree to owning renderer]
|
|
97
91
|
H --> I[merge emitted assets and root attributes]
|
|
@@ -121,12 +115,12 @@ flowchart TD
|
|
|
121
115
|
The most useful reading order is:
|
|
122
116
|
|
|
123
117
|
1. `route-renderer.ts`
|
|
124
|
-
2. `orchestration/route-render-
|
|
118
|
+
2. `orchestration/route-pipeline/route-render-orchestrator.ts`
|
|
125
119
|
3. `orchestration/integration-renderer.ts`
|
|
126
|
-
4. `orchestration/ownership-validation.service.ts`
|
|
127
|
-
5. `orchestration/ownership-
|
|
128
|
-
6. `orchestration/component-render-context.ts`
|
|
129
|
-
7. `orchestration/
|
|
120
|
+
4. `orchestration/ownership-graph/ownership-validation.service.ts`
|
|
121
|
+
5. `orchestration/ownership-graph/component-graph.ts`
|
|
122
|
+
6. `orchestration/foreign-child/component-render-context.ts`
|
|
123
|
+
7. `orchestration/foreign-child/foreign-subtree-execution.service.ts`
|
|
130
124
|
8. `page-loading/page-module-loader.ts`
|
|
131
125
|
9. `page-loading/dependency-resolver.ts`
|
|
132
126
|
10. `eco/eco.ts`
|
|
@@ -134,12 +128,12 @@ The most useful reading order is:
|
|
|
134
128
|
## 7) Key Files
|
|
135
129
|
|
|
136
130
|
- `packages/core/src/route-renderer/route-renderer.ts`
|
|
137
|
-
- `packages/core/src/route-renderer/orchestration/route-render-
|
|
131
|
+
- `packages/core/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.ts`
|
|
138
132
|
- `packages/core/src/route-renderer/orchestration/integration-renderer.ts`
|
|
139
|
-
- `packages/core/src/route-renderer/orchestration/ownership-validation.service.ts`
|
|
140
|
-
- `packages/core/src/route-renderer/orchestration/ownership-
|
|
141
|
-
- `packages/core/src/route-renderer/orchestration/component-render-context.ts`
|
|
142
|
-
- `packages/core/src/route-renderer/orchestration/
|
|
133
|
+
- `packages/core/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.ts`
|
|
134
|
+
- `packages/core/src/route-renderer/orchestration/ownership-graph/component-graph.ts`
|
|
135
|
+
- `packages/core/src/route-renderer/orchestration/foreign-child/component-render-context.ts`
|
|
136
|
+
- `packages/core/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.ts`
|
|
143
137
|
- `packages/core/src/route-renderer/page-loading/page-module-loader.ts`
|
|
144
138
|
- `packages/core/src/route-renderer/page-loading/dependency-resolver.ts`
|
|
145
139
|
- `packages/core/src/eco/eco.ts`
|