@ecopages/core 0.2.0-alpha.5 → 0.2.0-alpha.51
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 +267 -14
- package/package.json +98 -108
- package/src/adapters/README.md +39 -0
- package/src/adapters/abstract/application-adapter.d.ts +28 -2
- package/src/adapters/abstract/application-adapter.js +14 -2
- package/src/adapters/abstract/router-adapter.d.ts +1 -1
- package/src/adapters/abstract/server-adapter.d.ts +2 -2
- package/src/adapters/bun/client-bridge.d.ts +1 -1
- package/src/adapters/bun/create-app.d.ts +12 -12
- package/src/adapters/bun/create-app.js +64 -41
- package/src/adapters/bun/hmr-manager.d.ts +30 -62
- package/src/adapters/bun/hmr-manager.js +30 -194
- package/src/adapters/bun/index.d.ts +2 -3
- package/src/adapters/bun/index.js +3 -3
- package/src/adapters/bun/runtime-host.d.ts +52 -0
- package/src/adapters/bun/runtime-host.js +56 -0
- package/src/adapters/bun/server-adapter.d.ts +93 -32
- package/src/adapters/bun/server-adapter.js +166 -89
- package/src/adapters/bun/static-preview-host.d.ts +28 -0
- package/src/adapters/bun/static-preview-host.js +45 -0
- package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
- package/src/{create-app.js → adapters/create-app.js} +4 -4
- package/src/adapters/index.d.ts +2 -6
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +15 -12
- package/src/adapters/node/create-app.js +34 -85
- package/src/adapters/node/http-request-bridge.d.ts +57 -0
- package/src/adapters/node/http-request-bridge.js +118 -0
- package/src/adapters/node/node-client-bridge.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.d.ts +38 -48
- package/src/adapters/node/node-hmr-manager.js +31 -203
- package/src/adapters/node/runtime-host.d.ts +57 -0
- package/src/adapters/node/runtime-host.js +92 -0
- package/src/adapters/node/server-adapter-dependencies.d.ts +19 -0
- package/src/adapters/node/server-adapter-dependencies.js +18 -0
- package/src/adapters/node/server-adapter.d.ts +20 -72
- package/src/adapters/node/server-adapter.js +98 -203
- package/src/adapters/node/static-content-server.d.ts +37 -1
- package/src/adapters/node/static-content-server.js +29 -1
- package/src/adapters/node/static-preview-host.d.ts +55 -0
- package/src/adapters/node/static-preview-host.js +68 -0
- package/src/adapters/shared/application-adapter.d.ts +1 -1
- package/src/{define-api-handler.d.ts → adapters/shared/define-api-handler.d.ts} +1 -1
- package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
- package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +7 -4
- package/src/adapters/shared/explicit-static-route-matcher.js +14 -13
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
- package/src/adapters/shared/file-route-middleware-pipeline.js +3 -11
- package/src/adapters/shared/fs-server-response-factory.d.ts +14 -10
- package/src/adapters/shared/fs-server-response-factory.js +11 -27
- package/src/adapters/shared/fs-server-response-matcher.d.ts +20 -16
- package/src/adapters/shared/fs-server-response-matcher.js +76 -45
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
- package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
- package/src/adapters/shared/hmr-html-response.d.ts +22 -0
- package/src/adapters/shared/hmr-html-response.js +33 -0
- package/src/adapters/shared/render-context.d.ts +5 -3
- package/src/adapters/shared/render-context.js +27 -3
- package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
- package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
- package/src/adapters/shared/runtime-host.d.ts +12 -0
- package/src/adapters/shared/server-adapter.d.ts +33 -12
- package/src/adapters/shared/server-adapter.js +215 -132
- package/src/adapters/shared/server-route-handler.d.ts +5 -5
- package/src/adapters/shared/server-route-handler.js +7 -16
- package/src/adapters/shared/server-static-builder.d.ts +41 -8
- package/src/adapters/shared/server-static-builder.js +65 -11
- package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
- package/src/adapters/shared/shared-hmr-manager.js +240 -0
- package/src/adapters/shared/static-preview-host.d.ts +10 -0
- package/src/build/README.md +107 -0
- package/src/build/browser-runtime-import-rewrite-plugin.d.ts +26 -0
- package/src/build/browser-runtime-import-rewrite-plugin.js +162 -0
- package/src/build/browser-runtime-manifest.d.ts +31 -0
- package/src/build/browser-runtime-manifest.js +61 -0
- package/src/build/build-adapter.d.ts +175 -3
- package/src/build/build-adapter.js +633 -16
- package/src/build/build-manifest.d.ts +33 -0
- package/src/build/build-manifest.js +52 -0
- package/src/build/dev-build-coordinator.d.ts +72 -0
- package/src/build/dev-build-coordinator.js +154 -0
- package/src/build/esbuild-build-adapter.d.ts +16 -6
- package/src/build/esbuild-build-adapter.js +205 -75
- package/src/build/runtime-build-executor.d.ts +14 -0
- package/src/build/runtime-build-executor.js +22 -0
- package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
- package/src/build/runtime-specifier-alias-plugin.js +31 -0
- package/src/config/README.md +36 -0
- package/src/config/config-builder.d.ts +54 -29
- package/src/config/config-builder.js +256 -50
- package/src/{constants.d.ts → config/constants.d.ts} +13 -0
- package/src/{constants.js → config/constants.js} +4 -0
- package/src/declarations.d.ts +19 -14
- package/src/dev/host-runtime.d.ts +10 -0
- package/src/dev/host-runtime.js +24 -0
- package/src/dev/sc-server.d.ts +1 -1
- package/src/dev/sc-server.js +1 -1
- package/src/eco/README.md +70 -16
- package/src/eco/eco.browser.d.ts +2 -0
- package/src/eco/eco.browser.js +88 -0
- package/src/eco/eco.js +63 -54
- package/src/eco/eco.types.d.ts +69 -6
- package/src/eco/eco.utils.d.ts +1 -40
- package/src/eco/eco.utils.js +5 -35
- package/src/eco/global-injector-map.d.ts +3 -3
- package/src/eco/global-injector-map.js +2 -2
- package/src/eco/lazy-injector-map.d.ts +2 -2
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -1
- package/src/hmr/README.md +26 -0
- package/src/hmr/client/hmr-runtime.d.ts +1 -6
- package/src/hmr/client/hmr-runtime.js +38 -7
- package/src/hmr/hmr-strategy.d.ts +16 -13
- package/src/hmr/hmr-strategy.js +22 -7
- package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
- package/src/hmr/hmr.postcss.test.e2e.js +31 -0
- package/src/hmr/hmr.test.e2e.js +26 -33
- package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
- package/src/hmr/strategies/default-hmr-strategy.js +1 -1
- package/src/hmr/strategies/js-hmr-strategy.d.ts +40 -42
- package/src/hmr/strategies/js-hmr-strategy.js +24 -43
- package/src/index.browser.d.ts +2 -2
- package/src/index.browser.js +1 -1
- package/src/index.d.ts +4 -3
- package/src/index.js +16 -5
- package/src/integrations/ghtml/ghtml-renderer.d.ts +3 -2
- package/src/integrations/ghtml/ghtml-renderer.js +27 -30
- package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
- package/src/integrations/ghtml/ghtml.constants.js +4 -0
- package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
- package/src/integrations/ghtml/ghtml.plugin.js +3 -4
- package/src/plugins/README.md +35 -0
- package/src/plugins/alias-resolver-plugin.d.ts +1 -0
- package/src/plugins/alias-resolver-plugin.js +27 -5
- package/src/plugins/eco-component-meta-plugin.d.ts +14 -1
- package/src/plugins/eco-component-meta-plugin.js +42 -24
- package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
- package/src/plugins/foreign-jsx-override-plugin.js +41 -0
- package/src/plugins/integration-plugin.d.ts +157 -29
- package/src/plugins/integration-plugin.js +115 -14
- package/src/plugins/processor.d.ts +17 -2
- package/src/plugins/processor.js +22 -3
- package/src/plugins/runtime-capability.d.ts +9 -0
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/GRAPH.md +83 -325
- package/src/route-renderer/README.md +73 -90
- package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
- package/src/route-renderer/orchestration/component-render-context.js +147 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +534 -0
- package/src/route-renderer/orchestration/integration-renderer.js +991 -0
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
- package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
- package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
- package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
- package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
- package/src/route-renderer/orchestration/render-output.utils.js +171 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +156 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.js +577 -0
- package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
- package/src/route-renderer/orchestration/template-serialization.js +45 -0
- package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
- package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
- package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
- package/src/route-renderer/{dependency-resolver.d.ts → page-loading/dependency-resolver.d.ts} +15 -4
- package/src/route-renderer/page-loading/dependency-resolver.js +115 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
- package/src/route-renderer/page-loading/page-module-loader.d.ts +90 -0
- package/src/route-renderer/{page-module-loader.js → page-loading/page-module-loader.js} +39 -14
- package/src/route-renderer/route-renderer.d.ts +57 -14
- package/src/route-renderer/route-renderer.js +30 -18
- package/src/router/README.md +94 -0
- package/src/router/client/link-intent.d.ts +53 -0
- package/src/router/client/link-intent.js +34 -0
- package/src/router/client/link-intent.test.browser.d.ts +1 -0
- package/src/router/client/link-intent.test.browser.js +43 -0
- package/src/router/client/navigation-coordinator.d.ts +169 -0
- package/src/router/client/navigation-coordinator.js +215 -0
- package/src/router/server/route-registry.d.ts +78 -0
- package/src/router/server/route-registry.js +262 -0
- package/src/services/README.md +28 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +103 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset-processing.service.js +124 -89
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.js +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.d.ts +16 -1
- package/src/services/assets/asset-processing-service/assets.types.js +0 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +57 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +49 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
- package/src/services/assets/asset-processing-service/index.d.ts +6 -0
- package/src/services/assets/asset-processing-service/index.js +6 -0
- package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
- package/src/services/assets/asset-processing-service/page-package.js +80 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.js +11 -5
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +22 -0
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +136 -0
- package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
- package/src/services/assets/asset-processing-service/processors/index.js +5 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.d.ts +3 -2
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +120 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.d.ts +4 -3
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.js +28 -7
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +42 -0
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +126 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +59 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.js +9 -3
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
- package/src/services/assets/browser-bundle.service.d.ts +73 -0
- package/src/services/assets/browser-bundle.service.js +41 -0
- package/src/services/{page-request-cache-coordinator.service.d.ts → cache/page-request-cache-coordinator.service.d.ts} +2 -2
- package/src/services/{page-request-cache-coordinator.service.js → cache/page-request-cache-coordinator.service.js} +3 -1
- package/src/services/html/html-rewriter-provider.service.d.ts +40 -0
- package/src/services/html/html-rewriter-provider.service.js +68 -0
- package/src/services/html/html-transformer.service.d.ts +96 -0
- package/src/services/html/html-transformer.service.js +287 -0
- package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
- package/src/services/invalidation/development-invalidation.service.js +190 -0
- package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
- package/src/services/module-loading/app-module-loader.service.js +0 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +24 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +151 -0
- package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
- package/src/services/module-loading/host-module-loader-registry.js +15 -0
- package/src/services/module-loading/module-loading-types.d.ts +2 -0
- package/src/services/module-loading/module-loading-types.js +0 -0
- package/src/services/module-loading/node-bootstrap-plugin.d.ts +38 -0
- package/src/services/module-loading/node-bootstrap-plugin.js +215 -0
- package/src/services/module-loading/page-module-import.service.d.ts +95 -0
- package/src/services/module-loading/page-module-import.service.js +191 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +63 -0
- package/src/services/module-loading/server-module-transpiler.service.js +64 -0
- package/src/services/module-loading/source-module-support.d.ts +5 -0
- package/src/services/module-loading/source-module-support.js +8 -0
- package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
- package/src/services/runtime-state/dev-graph.service.js +162 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
- package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
- package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
- package/src/services/{schema-validation-service.d.ts → validation/schema-validation-service.d.ts} +1 -1
- package/src/static-site-generator/README.md +26 -0
- package/src/static-site-generator/static-site-generator.d.ts +67 -20
- package/src/static-site-generator/static-site-generator.js +182 -138
- package/src/{internal-types.d.ts → types/internal-types.d.ts} +62 -30
- package/src/types/internal-types.js +0 -0
- package/src/{public-types.d.ts → types/public-types.d.ts} +239 -31
- package/src/types/public-types.js +0 -0
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +6 -0
- package/src/utils/locals-utils.d.ts +1 -1
- package/src/utils/parse-cli-args.d.ts +4 -1
- package/src/utils/parse-cli-args.js +16 -1
- package/src/utils/resolve-work-dir.d.ts +11 -0
- package/src/utils/resolve-work-dir.js +31 -0
- package/src/watchers/project-watcher.d.ts +11 -7
- package/src/watchers/project-watcher.js +69 -75
- package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
- package/src/watchers/project-watcher.test-helpers.js +6 -5
- package/CHANGELOG.md +0 -94
- package/src/adapters/abstract/application-adapter.ts +0 -337
- package/src/adapters/abstract/router-adapter.ts +0 -30
- package/src/adapters/abstract/server-adapter.ts +0 -79
- package/src/adapters/bun/client-bridge.ts +0 -62
- package/src/adapters/bun/create-app.ts +0 -189
- package/src/adapters/bun/define-api-handler.d.ts +0 -61
- package/src/adapters/bun/define-api-handler.ts +0 -114
- package/src/adapters/bun/hmr-manager.ts +0 -276
- package/src/adapters/bun/index.ts +0 -3
- package/src/adapters/bun/server-adapter.ts +0 -492
- package/src/adapters/bun/server-lifecycle.d.ts +0 -52
- package/src/adapters/bun/server-lifecycle.js +0 -120
- package/src/adapters/bun/server-lifecycle.ts +0 -154
- package/src/adapters/index.ts +0 -6
- package/src/adapters/node/create-app.ts +0 -179
- package/src/adapters/node/index.d.ts +0 -4
- package/src/adapters/node/index.js +0 -8
- package/src/adapters/node/index.ts +0 -9
- package/src/adapters/node/node-client-bridge.ts +0 -79
- package/src/adapters/node/node-hmr-manager.ts +0 -271
- package/src/adapters/node/server-adapter.ts +0 -561
- package/src/adapters/node/static-content-server.ts +0 -203
- package/src/adapters/shared/api-response.ts +0 -104
- package/src/adapters/shared/application-adapter.ts +0 -199
- package/src/adapters/shared/explicit-static-route-matcher.ts +0 -134
- package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -123
- package/src/adapters/shared/fs-server-response-factory.ts +0 -118
- package/src/adapters/shared/fs-server-response-matcher.ts +0 -198
- package/src/adapters/shared/render-context.ts +0 -105
- package/src/adapters/shared/server-adapter.ts +0 -442
- package/src/adapters/shared/server-route-handler.ts +0 -166
- package/src/adapters/shared/server-static-builder.ts +0 -82
- package/src/build/build-adapter.ts +0 -133
- package/src/build/build-types.ts +0 -83
- package/src/build/esbuild-build-adapter.ts +0 -511
- package/src/config/config-builder.ts +0 -474
- package/src/constants.ts +0 -39
- package/src/create-app.ts +0 -87
- package/src/define-api-handler.js +0 -15
- package/src/define-api-handler.ts +0 -66
- package/src/dev/sc-server.ts +0 -143
- package/src/eco/component-render-context.d.ts +0 -105
- package/src/eco/component-render-context.js +0 -77
- package/src/eco/component-render-context.ts +0 -202
- package/src/eco/eco.ts +0 -221
- package/src/eco/eco.types.ts +0 -202
- package/src/eco/eco.utils.ts +0 -89
- package/src/eco/global-injector-map.ts +0 -112
- package/src/eco/lazy-injector-map.ts +0 -120
- package/src/eco/module-dependencies.ts +0 -75
- package/src/errors/http-error.ts +0 -72
- package/src/errors/index.ts +0 -2
- package/src/errors/locals-access-error.ts +0 -7
- package/src/global/app-logger.ts +0 -4
- package/src/hmr/client/hmr-runtime.ts +0 -121
- package/src/hmr/hmr-strategy.ts +0 -172
- package/src/hmr/hmr.test.e2e.ts +0 -75
- package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
- package/src/hmr/strategies/js-hmr-strategy.ts +0 -327
- package/src/index.browser.ts +0 -3
- package/src/index.ts +0 -5
- package/src/integrations/ghtml/ghtml-renderer.ts +0 -93
- package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
- package/src/internal-types.ts +0 -212
- package/src/plugins/alias-resolver-plugin.ts +0 -45
- package/src/plugins/eco-component-meta-plugin.ts +0 -474
- package/src/plugins/integration-plugin.ts +0 -184
- package/src/plugins/processor.ts +0 -220
- package/src/public-types.ts +0 -1255
- package/src/route-renderer/component-graph-executor.d.ts +0 -32
- package/src/route-renderer/component-graph-executor.js +0 -31
- package/src/route-renderer/component-graph-executor.ts +0 -84
- package/src/route-renderer/component-graph.d.ts +0 -42
- package/src/route-renderer/component-graph.js +0 -72
- package/src/route-renderer/component-graph.ts +0 -159
- package/src/route-renderer/component-marker.d.ts +0 -52
- package/src/route-renderer/component-marker.js +0 -46
- package/src/route-renderer/component-marker.ts +0 -117
- package/src/route-renderer/dependency-resolver.js +0 -428
- package/src/route-renderer/dependency-resolver.ts +0 -596
- package/src/route-renderer/html-post-processing.service.d.ts +0 -40
- package/src/route-renderer/html-post-processing.service.js +0 -86
- package/src/route-renderer/html-post-processing.service.ts +0 -103
- package/src/route-renderer/integration-renderer.d.ts +0 -339
- package/src/route-renderer/integration-renderer.js +0 -526
- package/src/route-renderer/integration-renderer.ts +0 -696
- package/src/route-renderer/marker-graph-resolver.d.ts +0 -76
- package/src/route-renderer/marker-graph-resolver.js +0 -93
- package/src/route-renderer/marker-graph-resolver.ts +0 -153
- package/src/route-renderer/page-module-loader.d.ts +0 -61
- package/src/route-renderer/page-module-loader.ts +0 -153
- package/src/route-renderer/render-execution.service.d.ts +0 -69
- package/src/route-renderer/render-execution.service.js +0 -91
- package/src/route-renderer/render-execution.service.ts +0 -158
- package/src/route-renderer/render-preparation.service.d.ts +0 -112
- package/src/route-renderer/render-preparation.service.js +0 -243
- package/src/route-renderer/render-preparation.service.ts +0 -358
- package/src/route-renderer/route-renderer.ts +0 -80
- package/src/router/fs-router-scanner.d.ts +0 -41
- package/src/router/fs-router-scanner.js +0 -155
- package/src/router/fs-router-scanner.ts +0 -217
- package/src/router/fs-router.d.ts +0 -26
- package/src/router/fs-router.js +0 -100
- package/src/router/fs-router.ts +0 -122
- package/src/services/asset-processing-service/asset-processing.service.d.ts +0 -41
- package/src/services/asset-processing-service/asset-processing.service.ts +0 -306
- package/src/services/asset-processing-service/asset.factory.ts +0 -105
- package/src/services/asset-processing-service/assets.types.ts +0 -112
- package/src/services/asset-processing-service/index.d.ts +0 -3
- package/src/services/asset-processing-service/index.js +0 -3
- package/src/services/asset-processing-service/index.ts +0 -3
- package/src/services/asset-processing-service/processor.interface.ts +0 -27
- package/src/services/asset-processing-service/processor.registry.ts +0 -18
- package/src/services/asset-processing-service/processors/base/base-processor.ts +0 -76
- package/src/services/asset-processing-service/processors/base/base-script-processor.d.ts +0 -16
- package/src/services/asset-processing-service/processors/base/base-script-processor.js +0 -80
- package/src/services/asset-processing-service/processors/base/base-script-processor.ts +0 -105
- package/src/services/asset-processing-service/processors/index.d.ts +0 -5
- package/src/services/asset-processing-service/processors/index.js +0 -5
- package/src/services/asset-processing-service/processors/index.ts +0 -5
- package/src/services/asset-processing-service/processors/script/content-script.processor.js +0 -57
- package/src/services/asset-processing-service/processors/script/content-script.processor.ts +0 -66
- package/src/services/asset-processing-service/processors/script/file-script.processor.ts +0 -88
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -7
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.js +0 -74
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.ts +0 -84
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -25
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
- package/src/services/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -77
- package/src/services/cache/cache.types.ts +0 -126
- package/src/services/cache/index.ts +0 -18
- package/src/services/cache/memory-cache-store.ts +0 -130
- package/src/services/cache/page-cache-service.ts +0 -202
- package/src/services/html-transformer.service.d.ts +0 -50
- package/src/services/html-transformer.service.js +0 -163
- package/src/services/html-transformer.service.ts +0 -217
- package/src/services/page-module-import.service.d.ts +0 -37
- package/src/services/page-module-import.service.js +0 -88
- package/src/services/page-module-import.service.ts +0 -129
- package/src/services/page-request-cache-coordinator.service.ts +0 -128
- package/src/services/schema-validation-service.ts +0 -204
- package/src/services/validation/standard-schema.types.ts +0 -68
- package/src/static-site-generator/static-site-generator.ts +0 -359
- package/src/utils/css.d.ts +0 -1
- package/src/utils/css.js +0 -7
- package/src/utils/css.ts +0 -5
- package/src/utils/deep-merge.ts +0 -47
- package/src/utils/hash.ts +0 -5
- package/src/utils/html.ts +0 -1
- package/src/utils/invariant.ts +0 -15
- package/src/utils/locals-utils.ts +0 -37
- package/src/utils/parse-cli-args.ts +0 -83
- package/src/utils/path-utils.module.ts +0 -14
- package/src/utils/runtime.ts +0 -44
- package/src/utils/server-utils.module.ts +0 -67
- package/src/watchers/project-watcher.test-helpers.ts +0 -40
- package/src/watchers/project-watcher.ts +0 -364
- /package/src/adapters/{bun → shared}/define-api-handler.js +0 -0
- /package/src/{internal-types.js → adapters/shared/runtime-host.js} +0 -0
- /package/src/{public-types.js → adapters/shared/static-preview-host.js} +0 -0
- /package/src/{services/asset-processing-service/assets.types.js → plugins/runtime-capability.js} +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.js +0 -0
- /package/src/services/{schema-validation-service.js → validation/schema-validation-service.js} +0 -0
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import type { Readable } from 'node:stream';
|
|
2
|
-
import type { ApiResponseBuilder } from '
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
2
|
+
import type { ApiResponseBuilder } from '../adapters/shared/api-response.js';
|
|
3
|
+
import type { BuildExecutor } from '../build/build-adapter.js';
|
|
4
|
+
import type { EcoBuildPlugin } from '../build/build-types.js';
|
|
5
|
+
import type { ForeignChildRuntime } from '../route-renderer/orchestration/component-render-context.js';
|
|
6
|
+
import type { EcoPageComponent } from '../eco/eco.types.js';
|
|
5
7
|
import type { EcoPagesAppConfig } from './internal-types.js';
|
|
6
|
-
import type { HmrStrategy } from '
|
|
7
|
-
import type {
|
|
8
|
-
import type {
|
|
8
|
+
import type { HmrStrategy } from '../hmr/hmr-strategy.js';
|
|
9
|
+
import type { BrowserBundleExecutor } from '../services/assets/browser-bundle.service.js';
|
|
10
|
+
import type { AssetDefinition, ProcessedAsset } from '../services/assets/asset-processing-service/assets.types.js';
|
|
11
|
+
import type { CacheStats, CacheStrategy } from '../services/cache/cache.types.js';
|
|
9
12
|
import type { InteractionEventsString as ScriptsInjectorInteractionEventsString } from '@ecopages/scripts-injector/types';
|
|
10
|
-
export type {
|
|
11
|
-
|
|
12
|
-
export type {
|
|
13
|
+
export type { EcoPagesAppConfig } from './internal-types.js';
|
|
14
|
+
export type { EcoPageComponent } from '../eco/eco.types.js';
|
|
15
|
+
export type { ProcessedAsset } from '../services/assets/asset-processing-service/assets.types.js';
|
|
16
|
+
import type { StandardSchema, StandardSchemaResult, StandardSchemaSuccessResult, StandardSchemaFailureResult, StandardSchemaIssue, InferOutput } from '../services/validation/standard-schema.types.js';
|
|
17
|
+
export type { StandardSchema, StandardSchemaResult, StandardSchemaSuccessResult, StandardSchemaFailureResult, StandardSchemaIssue, InferOutput, ForeignChildRuntime, };
|
|
13
18
|
export type InteractionEventsString = ScriptsInjectorInteractionEventsString;
|
|
14
19
|
export type DependencyLazyTrigger = {
|
|
15
20
|
'on:idle': true;
|
|
@@ -82,17 +87,13 @@ export interface CacheInvalidator {
|
|
|
82
87
|
}
|
|
83
88
|
/**
|
|
84
89
|
* Context interface for HMR strategies.
|
|
85
|
-
* Provides access to watched files, specifier mappings, and build configuration.
|
|
90
|
+
* Provides access to watched files, registered bare-specifier mappings, and build configuration.
|
|
86
91
|
*/
|
|
87
92
|
export interface DefaultHmrContext {
|
|
88
93
|
/**
|
|
89
94
|
* Map of registered entrypoints to their output URLs.
|
|
90
95
|
*/
|
|
91
96
|
getWatchedFiles(): Map<string, string>;
|
|
92
|
-
/**
|
|
93
|
-
* Map of bare specifiers to vendor URLs for import resolution.
|
|
94
|
-
*/
|
|
95
|
-
getSpecifierMap(): Map<string, string>;
|
|
96
97
|
/**
|
|
97
98
|
* Directory where HMR bundles are written.
|
|
98
99
|
*/
|
|
@@ -115,6 +116,18 @@ export interface DefaultHmrContext {
|
|
|
115
116
|
* Used by plugins to identify page files for transformation.
|
|
116
117
|
*/
|
|
117
118
|
getPagesDir(): string;
|
|
119
|
+
/**
|
|
120
|
+
* Build executor owned by the active app/runtime.
|
|
121
|
+
*/
|
|
122
|
+
getBuildExecutor(): BuildExecutor;
|
|
123
|
+
/**
|
|
124
|
+
* Browser bundler owned by the active app/runtime.
|
|
125
|
+
*/
|
|
126
|
+
getBrowserBundleService(): BrowserBundleExecutor;
|
|
127
|
+
/**
|
|
128
|
+
* Server-side module loader owned by the active app/runtime.
|
|
129
|
+
*/
|
|
130
|
+
importServerModule<T = unknown>(filePath: string | URL): Promise<T>;
|
|
118
131
|
}
|
|
119
132
|
/**
|
|
120
133
|
* Represents an event broadcast to connected clients via the ClientBridge.
|
|
@@ -155,13 +168,22 @@ export interface IClientBridge {
|
|
|
155
168
|
*/
|
|
156
169
|
export interface IHmrManager {
|
|
157
170
|
/**
|
|
158
|
-
* Registers
|
|
171
|
+
* Registers an integration-owned client entrypoint to be built and watched.
|
|
172
|
+
*
|
|
173
|
+
* @remarks
|
|
174
|
+
* This path is strict: the owning integration must emit the expected `_hmr`
|
|
175
|
+
* bundle. Missing output is treated as a development pipeline failure.
|
|
159
176
|
*/
|
|
160
177
|
registerEntrypoint(entrypointPath: string): Promise<string>;
|
|
161
178
|
/**
|
|
162
|
-
* Registers
|
|
179
|
+
* Registers a generic script asset entrypoint to be built and watched.
|
|
180
|
+
*
|
|
181
|
+
* @remarks
|
|
182
|
+
* This path exists for non-page script assets that are not owned by a
|
|
183
|
+
* framework integration. Unlike `registerEntrypoint()`, it may use the generic
|
|
184
|
+
* script bundling path.
|
|
163
185
|
*/
|
|
164
|
-
|
|
186
|
+
registerScriptEntrypoint(entrypointPath: string): Promise<string>;
|
|
165
187
|
/**
|
|
166
188
|
* Registers a custom HMR strategy.
|
|
167
189
|
*/
|
|
@@ -190,10 +212,6 @@ export interface IHmrManager {
|
|
|
190
212
|
* Gets the map of watched files.
|
|
191
213
|
*/
|
|
192
214
|
getWatchedFiles(): Map<string, string>;
|
|
193
|
-
/**
|
|
194
|
-
* Gets the specifier map.
|
|
195
|
-
*/
|
|
196
|
-
getSpecifierMap(): Map<string, string>;
|
|
197
215
|
/**
|
|
198
216
|
* Gets the HMR dist directory.
|
|
199
217
|
*/
|
|
@@ -227,6 +245,21 @@ export type EcoComponentDependencies = {
|
|
|
227
245
|
components?: EcoComponent[];
|
|
228
246
|
};
|
|
229
247
|
export type EcoPagesElement = string | Promise<string>;
|
|
248
|
+
/**
|
|
249
|
+
* Serializable child payloads accepted by cross-integration deferred rendering.
|
|
250
|
+
*
|
|
251
|
+
* This models the broad value shapes that EcoPages already flattens when a
|
|
252
|
+
* foreign component boundary serializes its children for another integration.
|
|
253
|
+
* It is intentionally transport-oriented rather than framework-native, so it
|
|
254
|
+
* can be shared across Kita, Lit, React, and Ecopages JSX authoring surfaces
|
|
255
|
+
* without coupling core types to any one renderer.
|
|
256
|
+
*/
|
|
257
|
+
export type EcoChildren = string | Promise<string> | number | bigint | boolean | null | undefined | readonly EcoChildren[] | {
|
|
258
|
+
strings: readonly string[];
|
|
259
|
+
values?: readonly EcoChildren[];
|
|
260
|
+
} | {
|
|
261
|
+
[key: string]: EcoChildren;
|
|
262
|
+
};
|
|
230
263
|
/**
|
|
231
264
|
* Represents the input configuration for EcoPages.
|
|
232
265
|
*/
|
|
@@ -280,7 +313,7 @@ export type EcoComponentConfig = {
|
|
|
280
313
|
* MyPage.config = { layout: Layout };
|
|
281
314
|
* ```
|
|
282
315
|
*/
|
|
283
|
-
layout?:
|
|
316
|
+
layout?: EcoPageLayoutComponent<any>;
|
|
284
317
|
dependencies?: EcoComponentDependencies;
|
|
285
318
|
/**
|
|
286
319
|
* Internal: Resolved lazy scripts grouped by trigger.
|
|
@@ -389,15 +422,36 @@ export interface PageHeadProps<T = EcoPagesElement> {
|
|
|
389
422
|
dependencies?: EcoComponentDependencies;
|
|
390
423
|
children?: T;
|
|
391
424
|
}
|
|
425
|
+
/**
|
|
426
|
+
* Represents the props for a route layout.
|
|
427
|
+
*/
|
|
428
|
+
export interface LayoutProps<T = EcoPagesElement> extends Partial<RequestPageContext> {
|
|
429
|
+
children: T;
|
|
430
|
+
}
|
|
392
431
|
/**
|
|
393
432
|
* Represents the props for the HTML template of a page.
|
|
394
433
|
*/
|
|
395
|
-
export interface HtmlTemplateProps extends PageHeadProps {
|
|
396
|
-
children:
|
|
434
|
+
export interface HtmlTemplateProps<T = EcoPagesElement> extends PageHeadProps<T> {
|
|
435
|
+
children: T;
|
|
397
436
|
language?: string;
|
|
398
|
-
headContent?:
|
|
437
|
+
headContent?: T;
|
|
399
438
|
pageProps: Record<string, unknown>;
|
|
400
439
|
}
|
|
440
|
+
/**
|
|
441
|
+
* Layout components accepted by pages.
|
|
442
|
+
*
|
|
443
|
+
* This preserves compatibility with existing `eco.component()` layouts while
|
|
444
|
+
* also supporting semantic `eco.layout()` declarations.
|
|
445
|
+
*/
|
|
446
|
+
export type EcoPageLayoutComponent<T = EcoPagesElement> = EcoLayoutComponent<T> | EcoComponent<any, T>;
|
|
447
|
+
/**
|
|
448
|
+
* Represents a layout component created with eco.layout().
|
|
449
|
+
*/
|
|
450
|
+
export type EcoLayoutComponent<T = EcoPagesElement> = EcoComponent<LayoutProps<T>, T>;
|
|
451
|
+
/**
|
|
452
|
+
* Represents an HTML shell component created with eco.html().
|
|
453
|
+
*/
|
|
454
|
+
export type EcoHtmlComponent<T = EcoPagesElement> = EcoComponent<HtmlTemplateProps, T>;
|
|
401
455
|
/**
|
|
402
456
|
* Represents the props for the error 404 template.
|
|
403
457
|
*/
|
|
@@ -598,21 +652,144 @@ type StylesheetContentIntegrationPluginDependencies = {
|
|
|
598
652
|
export type IntegrationRendererRenderOptions<C = EcoPagesElement> = RouteRendererOptions & {
|
|
599
653
|
props?: Record<string, unknown>;
|
|
600
654
|
metadata: PageMetadataProps;
|
|
601
|
-
HtmlTemplate:
|
|
655
|
+
HtmlTemplate: EcoHtmlComponent<C>;
|
|
602
656
|
Page: EcoComponent<PageProps, C>;
|
|
603
|
-
Layout?:
|
|
657
|
+
Layout?: EcoPageLayoutComponent<any>;
|
|
604
658
|
dependencies?: EcoComponentDependencies;
|
|
605
659
|
resolvedDependencies: ProcessedAsset[];
|
|
660
|
+
pagePackage?: PagePackageResult;
|
|
606
661
|
componentRender?: ComponentRenderResult;
|
|
607
662
|
pageProps?: Record<string, unknown>;
|
|
608
663
|
cacheStrategy?: CacheStrategy;
|
|
609
664
|
pageLocals?: RequestLocals;
|
|
665
|
+
ownershipPlan?: OwnershipPlan;
|
|
610
666
|
};
|
|
611
|
-
|
|
667
|
+
/**
|
|
668
|
+
* Structured page asset package produced after dependency resolution.
|
|
669
|
+
*
|
|
670
|
+
* `assets` retains the full processed asset list, while the remaining fields
|
|
671
|
+
* split that list into the subsets used during final HTML injection and
|
|
672
|
+
* renderer-owned follow-up work.
|
|
673
|
+
*/
|
|
674
|
+
export interface PagePackageResult {
|
|
675
|
+
/**
|
|
676
|
+
* Full processed asset list before any page-level partitioning.
|
|
677
|
+
*/
|
|
678
|
+
assets: ProcessedAsset[];
|
|
679
|
+
/**
|
|
680
|
+
* Optional structured Page Browser Graph carried through route preparation.
|
|
681
|
+
*/
|
|
682
|
+
pageBrowserGraph?: PageBrowserGraphResult;
|
|
683
|
+
/**
|
|
684
|
+
* Assets that should still be injected into the final HTML document.
|
|
685
|
+
*/
|
|
686
|
+
htmlAssets: ProcessedAsset[];
|
|
687
|
+
/**
|
|
688
|
+
* Primary page-owned browser entry when one was identified during packaging.
|
|
689
|
+
*/
|
|
690
|
+
pageScript?: ProcessedAsset;
|
|
691
|
+
/**
|
|
692
|
+
* Primary page-owned stylesheet when one was identified during packaging.
|
|
693
|
+
*/
|
|
694
|
+
pageStylesheet?: ProcessedAsset;
|
|
695
|
+
/**
|
|
696
|
+
* Inline assets that remain embedded directly in the document.
|
|
697
|
+
*/
|
|
698
|
+
inlineAssets: ProcessedAsset[];
|
|
699
|
+
/**
|
|
700
|
+
* Assets kept outside the main page package so callers can manage them explicitly.
|
|
701
|
+
*/
|
|
702
|
+
separateAssets: ProcessedAsset[];
|
|
703
|
+
/**
|
|
704
|
+
* Browser chunks needed after initial page bootstrap, including eager lazy-entry bundles.
|
|
705
|
+
*/
|
|
706
|
+
dynamicChunks: ProcessedAsset[];
|
|
707
|
+
}
|
|
708
|
+
/**
|
|
709
|
+
* Page-scoped browser output planned before final HTML packaging.
|
|
710
|
+
*
|
|
711
|
+
* This shape keeps page-browser ownership explicit without forcing downstream
|
|
712
|
+
* HTML packaging to understand how integrations discovered the graph. Entry
|
|
713
|
+
* assets represent the initial page bootstrap outputs, while chunk assets stay
|
|
714
|
+
* separate so callers can preserve lazy/shared chunk identity until the point
|
|
715
|
+
* they intentionally flatten for page packaging.
|
|
716
|
+
*/
|
|
717
|
+
export interface PageBrowserGraphResult {
|
|
718
|
+
/**
|
|
719
|
+
* Processed assets needed for the initial page browser bootstrap.
|
|
720
|
+
*/
|
|
721
|
+
entryAssets: ProcessedAsset[];
|
|
722
|
+
/**
|
|
723
|
+
* Processed browser chunks referenced after the initial page bootstrap.
|
|
724
|
+
*/
|
|
725
|
+
chunkAssets: ProcessedAsset[];
|
|
726
|
+
}
|
|
727
|
+
export type PageBrowserGraphContributionContext = {
|
|
728
|
+
file: string;
|
|
729
|
+
pageModule: EcoPageFile;
|
|
730
|
+
};
|
|
731
|
+
export interface PageBrowserGraphContribution {
|
|
732
|
+
dependencies?: AssetDefinition[];
|
|
733
|
+
assets?: ProcessedAsset[];
|
|
734
|
+
}
|
|
735
|
+
export type OwnershipValidationErrorCode = 'UNKNOWN_INTEGRATION_OWNER' | 'MISSING_COMPONENT_METADATA';
|
|
736
|
+
export interface OwnershipValidationError {
|
|
737
|
+
code: OwnershipValidationErrorCode;
|
|
738
|
+
message: string;
|
|
739
|
+
componentId?: string;
|
|
740
|
+
componentFile?: string;
|
|
741
|
+
integrationName?: string;
|
|
742
|
+
}
|
|
743
|
+
export type OwnershipPlanNodeSource = 'route' | 'page' | 'layout' | 'html-template' | 'dependency';
|
|
744
|
+
export interface IntegrationOwnership {
|
|
745
|
+
integrationName: string;
|
|
746
|
+
componentId: string;
|
|
747
|
+
componentFile?: string;
|
|
748
|
+
isPageEntry: boolean;
|
|
749
|
+
isForeignToParent: boolean;
|
|
750
|
+
}
|
|
751
|
+
export interface OwnershipPlanNode {
|
|
752
|
+
id: string;
|
|
753
|
+
source: OwnershipPlanNodeSource;
|
|
754
|
+
ownership: IntegrationOwnership;
|
|
755
|
+
children: OwnershipPlanNode[];
|
|
756
|
+
declaredDependenciesValid: boolean;
|
|
757
|
+
}
|
|
758
|
+
export interface OwnershipPlan {
|
|
759
|
+
root: OwnershipPlanNode;
|
|
760
|
+
rendererNames: string[];
|
|
761
|
+
foreignEdgeCount: number;
|
|
762
|
+
hasValidationErrors: boolean;
|
|
763
|
+
validationErrors: OwnershipValidationError[];
|
|
764
|
+
}
|
|
765
|
+
export type ForeignSubtreeAttachmentPolicy = {
|
|
766
|
+
kind: 'none';
|
|
767
|
+
} | {
|
|
768
|
+
kind: 'first-element';
|
|
769
|
+
};
|
|
770
|
+
export interface ForeignSubtreeRenderPayload {
|
|
771
|
+
html: string;
|
|
772
|
+
assets: ProcessedAsset[];
|
|
773
|
+
rootTag?: string;
|
|
774
|
+
rootAttributes?: Record<string, string>;
|
|
775
|
+
attachmentPolicy: ForeignSubtreeAttachmentPolicy;
|
|
776
|
+
integrationName: string;
|
|
777
|
+
}
|
|
778
|
+
/**
|
|
779
|
+
* Shared execution-scoped context threaded through foreign-child renders.
|
|
780
|
+
*
|
|
781
|
+
* Integrations can extend this with renderer-local runtime keys, but the cache
|
|
782
|
+
* and optional component instance identity are shared across all renderers.
|
|
783
|
+
*/
|
|
784
|
+
export interface BaseIntegrationContext {
|
|
785
|
+
rendererCache?: Map<string, unknown>;
|
|
786
|
+
componentInstanceId?: string;
|
|
787
|
+
}
|
|
788
|
+
export interface ComponentRenderInput<TIntegrationContext extends BaseIntegrationContext = BaseIntegrationContext> {
|
|
612
789
|
component: EcoComponent;
|
|
613
790
|
props: Record<string, unknown>;
|
|
614
|
-
children?:
|
|
615
|
-
integrationContext?:
|
|
791
|
+
children?: unknown;
|
|
792
|
+
integrationContext?: TIntegrationContext;
|
|
616
793
|
}
|
|
617
794
|
export interface ComponentRenderResult {
|
|
618
795
|
html: string;
|
|
@@ -663,13 +840,31 @@ export interface ResponseOptions {
|
|
|
663
840
|
* Provides methods to render eco.page views and return formatted responses.
|
|
664
841
|
*/
|
|
665
842
|
export interface RenderContext {
|
|
843
|
+
/**
|
|
844
|
+
* Import a server-executed module through the active Ecopages module loader.
|
|
845
|
+
*
|
|
846
|
+
* This applies the runtime's cache-busting and source-transpilation rules so
|
|
847
|
+
* request-time lazy imports participate in development invalidation.
|
|
848
|
+
*
|
|
849
|
+
* @param filePath - Absolute filesystem path or file URL for the server module
|
|
850
|
+
*/
|
|
851
|
+
importServerModule<T = unknown>(filePath: string | URL): Promise<T>;
|
|
852
|
+
/**
|
|
853
|
+
* Import a server module through the active Ecopages module loader and render
|
|
854
|
+
* its default-exported eco.page view.
|
|
855
|
+
*
|
|
856
|
+
* @param filePath - Absolute filesystem path or file URL for the server module
|
|
857
|
+
* @param props - Props to pass to the default-exported view
|
|
858
|
+
* @param options - Optional status code and headers
|
|
859
|
+
*/
|
|
860
|
+
renderServerModule<P = Record<string, unknown>>(filePath: string | URL, props?: P, options?: RenderOptions): Promise<Response>;
|
|
666
861
|
/**
|
|
667
862
|
* Render an eco.page view with full layout and includes.
|
|
668
863
|
* @param view - The eco.page component to render
|
|
669
864
|
* @param props - Props to pass to the view
|
|
670
865
|
* @param options - Optional status code and headers
|
|
671
866
|
*/
|
|
672
|
-
render<P = Record<string, unknown>>(view: EcoComponent<P>, props
|
|
867
|
+
render<P = Record<string, unknown>>(view: EcoComponent<P>, props?: P, options?: RenderOptions): Promise<Response>;
|
|
673
868
|
/**
|
|
674
869
|
* Render an eco.page view without layout (for partials/fragments).
|
|
675
870
|
* @param view - The eco.page component to render
|
|
@@ -853,6 +1048,15 @@ export interface ApiHandlerContext<TRequest extends Request = Request, TServer =
|
|
|
853
1048
|
*/
|
|
854
1049
|
headers?: unknown;
|
|
855
1050
|
}
|
|
1051
|
+
/**
|
|
1052
|
+
* Context available to file-route page middleware.
|
|
1053
|
+
*
|
|
1054
|
+
* Page middleware can mutate locals, short-circuit the request, and use the
|
|
1055
|
+
* response helpers, but final document rendering stays owned by the page route
|
|
1056
|
+
* execution path.
|
|
1057
|
+
*/
|
|
1058
|
+
export interface FileRouteMiddlewareContext<TRequest extends Request = Request, TServer = any> extends Omit<ApiHandlerContext<TRequest, TServer>, 'render' | 'renderPartial' | 'importServerModule' | 'renderServerModule'> {
|
|
1059
|
+
}
|
|
856
1060
|
/**
|
|
857
1061
|
* Next function for middleware chain.
|
|
858
1062
|
* Call to continue to the next middleware or final handler.
|
|
@@ -888,6 +1092,10 @@ export type MiddlewareNext = () => Promise<Response>;
|
|
|
888
1092
|
* ```
|
|
889
1093
|
*/
|
|
890
1094
|
export type Middleware<TRequest extends Request = Request, TServer = any, TContext extends ApiHandlerContext<TRequest, TServer> = ApiHandlerContext<TRequest, TServer>> = (context: TContext, next: MiddlewareNext) => Promise<Response> | Response;
|
|
1095
|
+
/**
|
|
1096
|
+
* Middleware contract for file-based page routes.
|
|
1097
|
+
*/
|
|
1098
|
+
export type FileRouteMiddleware<TRequest extends Request = Request, TServer = any, TContext extends FileRouteMiddlewareContext<TRequest, TServer> = FileRouteMiddlewareContext<TRequest, TServer>> = (context: TContext, next: MiddlewareNext) => Promise<Response> | Response;
|
|
891
1099
|
/**
|
|
892
1100
|
* Helper type for defining middleware with extended context.
|
|
893
1101
|
* Automatically infers TRequest and TServer from the provided context type.
|
|
File without changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApiHandlerContext } from '../public-types.js';
|
|
1
|
+
import type { ApiHandlerContext } from '../types/public-types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Creates a require function for validating and retrieving request locals.
|
|
4
4
|
* Supports both single key access and multiple keys with type safety.
|
|
@@ -17,8 +17,11 @@ export type ReturnParseCliArgs = {
|
|
|
17
17
|
hostname?: string;
|
|
18
18
|
reactFastRefresh?: boolean;
|
|
19
19
|
};
|
|
20
|
+
export type ParseCliArgsOptions = {
|
|
21
|
+
embeddedRuntime?: boolean;
|
|
22
|
+
};
|
|
20
23
|
/**
|
|
21
24
|
* Parses command line arguments for the server.
|
|
22
25
|
* It returns {@link ReturnParseCliArgs}
|
|
23
26
|
*/
|
|
24
|
-
export declare function parseCliArgs(): ReturnParseCliArgs;
|
|
27
|
+
export declare function parseCliArgs(options?: ParseCliArgsOptions): ReturnParseCliArgs;
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
import { parseArgs } from "node:util";
|
|
2
2
|
import { getRuntimeArgv } from "./runtime.js";
|
|
3
|
+
function getEmbeddedRuntimeCommandOptions() {
|
|
4
|
+
const isDevelopment = process.env.NODE_ENV === "development";
|
|
5
|
+
return {
|
|
6
|
+
preview: false,
|
|
7
|
+
build: false,
|
|
8
|
+
start: !isDevelopment,
|
|
9
|
+
dev: isDevelopment,
|
|
10
|
+
port: void 0,
|
|
11
|
+
hostname: void 0,
|
|
12
|
+
reactFastRefresh: void 0
|
|
13
|
+
};
|
|
14
|
+
}
|
|
3
15
|
const ECOPAGES_BIN_FILES = ["ecopages.ts", "ecopages.js", "cli.js"];
|
|
4
16
|
const ECOPAGES_AVAILABLE_COMMANDS = ["dev", "build", "start", "preview"];
|
|
5
|
-
function parseCliArgs() {
|
|
17
|
+
function parseCliArgs(options = {}) {
|
|
18
|
+
if (options.embeddedRuntime || process.env.ECOPAGES_INTERNAL_EMBEDDED_RUNTIME === "true") {
|
|
19
|
+
return getEmbeddedRuntimeCommandOptions();
|
|
20
|
+
}
|
|
6
21
|
const runtimeArgv = getRuntimeArgv();
|
|
7
22
|
const { values } = parseArgs({
|
|
8
23
|
args: runtimeArgv,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type InternalPathConfig = {
|
|
2
|
+
rootDir?: string;
|
|
3
|
+
workDir?: string;
|
|
4
|
+
absolutePaths?: {
|
|
5
|
+
workDir?: string;
|
|
6
|
+
distDir?: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export declare function resolveInternalWorkDir(appConfig: InternalPathConfig): string;
|
|
10
|
+
export declare function resolveInternalExecutionDir(appConfig: InternalPathConfig): string;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { DEFAULT_ECOPAGES_WORK_DIR } from "../config/constants.js";
|
|
3
|
+
function isInsideNodeModules(directory) {
|
|
4
|
+
return path.normalize(directory).split(path.sep).includes("node_modules");
|
|
5
|
+
}
|
|
6
|
+
function resolveInternalWorkDir(appConfig) {
|
|
7
|
+
if (appConfig.absolutePaths?.workDir) {
|
|
8
|
+
return appConfig.absolutePaths.workDir;
|
|
9
|
+
}
|
|
10
|
+
if (appConfig.rootDir) {
|
|
11
|
+
return path.join(appConfig.rootDir, appConfig.workDir ?? DEFAULT_ECOPAGES_WORK_DIR);
|
|
12
|
+
}
|
|
13
|
+
if (appConfig.workDir) {
|
|
14
|
+
return appConfig.workDir;
|
|
15
|
+
}
|
|
16
|
+
return DEFAULT_ECOPAGES_WORK_DIR;
|
|
17
|
+
}
|
|
18
|
+
function resolveInternalExecutionDir(appConfig) {
|
|
19
|
+
const workDir = resolveInternalWorkDir(appConfig);
|
|
20
|
+
if (!isInsideNodeModules(workDir)) {
|
|
21
|
+
return workDir;
|
|
22
|
+
}
|
|
23
|
+
if (appConfig.rootDir) {
|
|
24
|
+
return path.join(appConfig.rootDir, DEFAULT_ECOPAGES_WORK_DIR);
|
|
25
|
+
}
|
|
26
|
+
return DEFAULT_ECOPAGES_WORK_DIR;
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
resolveInternalExecutionDir,
|
|
30
|
+
resolveInternalWorkDir
|
|
31
|
+
};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { type FSWatcher } from 'chokidar';
|
|
2
|
-
import type { EcoPagesAppConfig, IHmrManager, IClientBridge } from '../internal-types.js';
|
|
2
|
+
import type { EcoPagesAppConfig, IHmrManager, IClientBridge } from '../types/internal-types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Configuration options for the ProjectWatcher
|
|
5
5
|
* @interface ProjectWatcherConfig
|
|
6
6
|
* @property {EcoPagesAppConfig} config - The application configuration
|
|
7
|
-
* @property {() => void} refreshRouterRoutesCallback - Callback to refresh router routes
|
|
7
|
+
* @property {() => Promise<void>} refreshRouterRoutesCallback - Callback to refresh router routes
|
|
8
8
|
* @property {IHmrManager} hmrManager - The HMR manager instance
|
|
9
9
|
* @property {ClientBridge} bridge - The client bridge instance
|
|
10
10
|
*/
|
|
11
11
|
export interface ProjectWatcherConfig {
|
|
12
12
|
config: EcoPagesAppConfig;
|
|
13
|
-
refreshRouterRoutesCallback: () => void
|
|
13
|
+
refreshRouterRoutesCallback: () => Promise<void>;
|
|
14
14
|
hmrManager: IHmrManager;
|
|
15
15
|
bridge: IClientBridge;
|
|
16
16
|
}
|
|
@@ -42,6 +42,7 @@ export declare class ProjectWatcher {
|
|
|
42
42
|
private refreshRouterRoutesCallback;
|
|
43
43
|
private hmrManager;
|
|
44
44
|
private bridge;
|
|
45
|
+
private readonly invalidationService;
|
|
45
46
|
private watcher;
|
|
46
47
|
private lastHandledChange;
|
|
47
48
|
private changeQueue;
|
|
@@ -52,6 +53,8 @@ export declare class ProjectWatcher {
|
|
|
52
53
|
* @private
|
|
53
54
|
*/
|
|
54
55
|
private uncacheModules;
|
|
56
|
+
private isRouteSourceFile;
|
|
57
|
+
private isIncludeSourceFile;
|
|
55
58
|
/**
|
|
56
59
|
* Handles public directory file changes by copying only the changed file.
|
|
57
60
|
* @param filePath - Absolute path of the changed file
|
|
@@ -64,11 +67,12 @@ export declare class ProjectWatcher {
|
|
|
64
67
|
private enqueueChange;
|
|
65
68
|
/**
|
|
66
69
|
* Handles file changes by uncaching modules, refreshing routes, and delegating appropriately.
|
|
67
|
-
* Follows
|
|
70
|
+
* Follows 5-rule priority:
|
|
68
71
|
* 0. Public directory match? -> copy file and reload
|
|
69
72
|
* 1. additionalWatchPaths match? -> reload
|
|
70
|
-
* 2.
|
|
71
|
-
* 3.
|
|
73
|
+
* 2. Include template source? -> reload after processor notifications
|
|
74
|
+
* 3. Processor-owned asset? -> processor already handled it via notification, skip HMR
|
|
75
|
+
* 4. Otherwise -> HMR strategies
|
|
72
76
|
*
|
|
73
77
|
* Processors that watch a file extension as a dependency (e.g. PostCSS watching
|
|
74
78
|
* .tsx for Tailwind class scanning) are always notified first, but do not
|
|
@@ -108,7 +112,7 @@ export declare class ProjectWatcher {
|
|
|
108
112
|
*
|
|
109
113
|
* @param {string} path - Path of the changed directory
|
|
110
114
|
*/
|
|
111
|
-
triggerRouterRefresh(
|
|
115
|
+
triggerRouterRefresh(changedPath: string): Promise<void>;
|
|
112
116
|
/**
|
|
113
117
|
* Handles and logs errors that occur during file watching.
|
|
114
118
|
*
|