@ecopages/core 0.2.0-alpha.3 → 0.2.0-alpha.31
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/CHANGELOG.md +66 -66
- package/README.md +268 -14
- package/package.json +72 -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 +5 -12
- package/src/adapters/bun/create-app.js +43 -7
- package/src/adapters/bun/hmr-manager.d.ts +72 -26
- package/src/adapters/bun/hmr-manager.js +153 -81
- package/src/adapters/bun/index.d.ts +2 -3
- package/src/adapters/bun/index.js +3 -3
- package/src/adapters/bun/server-adapter.d.ts +5 -5
- package/src/adapters/bun/server-adapter.js +63 -38
- package/src/adapters/bun/server-lifecycle.d.ts +28 -17
- package/src/adapters/bun/server-lifecycle.js +34 -62
- 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 +6 -9
- package/src/adapters/node/create-app.js +12 -6
- package/src/adapters/node/node-client-bridge.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.d.ts +79 -21
- package/src/adapters/node/node-hmr-manager.js +167 -114
- package/src/adapters/node/server-adapter.d.ts +7 -35
- package/src/adapters/node/server-adapter.js +55 -107
- package/src/adapters/node/static-content-server.d.ts +37 -1
- package/src/adapters/node/static-content-server.js +29 -1
- 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 +32 -0
- package/src/adapters/shared/render-context.d.ts +4 -3
- package/src/adapters/shared/render-context.js +6 -3
- package/src/adapters/shared/runtime-bootstrap.d.ts +38 -0
- package/src/adapters/shared/runtime-bootstrap.js +43 -0
- package/src/adapters/shared/server-adapter.d.ts +33 -12
- package/src/adapters/shared/server-adapter.js +208 -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/build/README.md +107 -0
- package/src/build/build-adapter.d.ts +168 -3
- package/src/build/build-adapter.js +604 -16
- package/src/build/build-manifest.d.ts +27 -0
- package/src/build/build-manifest.js +30 -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 +15 -6
- package/src/build/esbuild-build-adapter.js +189 -74
- 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 +35 -0
- package/src/build/runtime-specifier-aliases.d.ts +5 -0
- package/src/build/runtime-specifier-aliases.js +95 -0
- package/src/config/README.md +36 -0
- package/src/config/config-builder.d.ts +54 -29
- package/src/config/config-builder.js +255 -49
- 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 +83 -0
- package/src/eco/eco.js +32 -57
- package/src/eco/eco.types.d.ts +14 -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 +46 -48
- package/src/hmr/strategies/js-hmr-strategy.js +64 -74
- 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.js +17 -3
- package/src/plugins/eco-component-meta-plugin.d.ts +14 -1
- package/src/plugins/eco-component-meta-plugin.js +27 -22
- package/src/plugins/foreign-jsx-override-plugin.d.ts +31 -0
- package/src/plugins/foreign-jsx-override-plugin.js +35 -0
- package/src/plugins/integration-plugin.d.ts +142 -29
- package/src/plugins/integration-plugin.js +103 -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 +89 -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 +108 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +206 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +516 -0
- package/src/route-renderer/orchestration/integration-renderer.js +909 -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 +2 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +23 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +90 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +158 -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 +120 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.js +388 -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/browser-runtime-asset.factory.d.ts +55 -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 +3 -0
- package/src/services/assets/asset-processing-service/page-package.js +74 -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 +119 -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/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.d.ts +3 -3
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.js +12 -7
- 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 +37 -0
- package/src/services/html/html-rewriter-provider.service.js +68 -0
- package/src/services/html/html-transformer.service.d.ts +87 -0
- package/src/services/html/html-transformer.service.js +216 -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-server-module-transpiler.service.d.ts +24 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +115 -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 +42 -0
- package/src/services/module-loading/node-bootstrap-plugin.js +216 -0
- package/src/services/module-loading/page-module-import.service.d.ts +76 -0
- package/src/services/module-loading/page-module-import.service.js +170 -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} +201 -32
- 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 +40 -29
- package/src/watchers/project-watcher.js +126 -116
- package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
- package/src/watchers/project-watcher.test-helpers.js +6 -6
- 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 -296
- package/src/adapters/bun/index.ts +0 -3
- package/src/adapters/bun/server-adapter.ts +0 -492
- 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 -289
- 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 -132
- package/src/build/build-types.ts +0 -83
- package/src/build/esbuild-build-adapter.ts +0 -510
- 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/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-have-HMR-script-injected-in-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
- 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 -320
- 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 -1260
- 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.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 -41
- package/src/watchers/project-watcher.ts +0 -344
- /package/src/adapters/{bun → shared}/define-api-handler.js +0 -0
- /package/src/{internal-types.js → plugins/runtime-capability.js} +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.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/{public-types.js → services/module-loading/app-module-loader.service.js} +0 -0
- /package/src/services/{schema-validation-service.js → validation/schema-validation-service.js} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ecopages/core",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
3
|
+
"version": "0.2.0-alpha.31",
|
|
4
4
|
"description": "Core package for Ecopages",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ecopages",
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
"directory": "packages/core"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@ecopages/file-system": "0.2.0-alpha.
|
|
21
|
-
"@ecopages/logger": "
|
|
20
|
+
"@ecopages/file-system": "0.2.0-alpha.31",
|
|
21
|
+
"@ecopages/logger": "^0.2.3",
|
|
22
22
|
"@ecopages/scripts-injector": "^0.1.3",
|
|
23
23
|
"@worker-tools/html-rewriter": "0.1.0-pre.19",
|
|
24
|
-
"chokidar": "^
|
|
25
|
-
"esbuild": "^0.
|
|
24
|
+
"chokidar": "^5.0.0",
|
|
25
|
+
"esbuild": "^0.28.0",
|
|
26
26
|
"ghtml": "^4.0.2",
|
|
27
|
-
"oxc-parser": "^0.
|
|
27
|
+
"oxc-parser": "^0.124.0",
|
|
28
28
|
"ws": "^8.18.0"
|
|
29
29
|
},
|
|
30
30
|
"exports": {
|
|
@@ -35,18 +35,24 @@
|
|
|
35
35
|
"default": "./src/index.js"
|
|
36
36
|
},
|
|
37
37
|
"./create-app": {
|
|
38
|
-
"
|
|
39
|
-
"
|
|
38
|
+
"import": "./src/adapters/create-app.js",
|
|
39
|
+
"types": "./src/adapters/create-app.d.ts",
|
|
40
|
+
"default": "./src/adapters/create-app.js"
|
|
40
41
|
},
|
|
41
42
|
"./route-renderer/integration-renderer": {
|
|
42
|
-
"types": "./src/route-renderer/integration-renderer.d.ts",
|
|
43
|
-
"default": "./src/route-renderer/integration-renderer.js"
|
|
43
|
+
"types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
|
|
44
|
+
"default": "./src/route-renderer/orchestration/integration-renderer.js"
|
|
44
45
|
},
|
|
45
|
-
"./
|
|
46
|
-
"types": "./src/
|
|
47
|
-
"default": "./src/
|
|
46
|
+
"./router/navigation-coordinator": {
|
|
47
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
48
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
49
|
+
},
|
|
50
|
+
"./router/link-intent": {
|
|
51
|
+
"types": "./src/router/client/link-intent.d.ts",
|
|
52
|
+
"default": "./src/router/client/link-intent.js"
|
|
48
53
|
},
|
|
49
54
|
"./eco": {
|
|
55
|
+
"browser": "./src/eco/eco.browser.js",
|
|
50
56
|
"types": "./src/eco/eco.d.ts",
|
|
51
57
|
"default": "./src/eco/eco.js"
|
|
52
58
|
},
|
|
@@ -61,43 +67,24 @@
|
|
|
61
67
|
"default": "./src/config/config-builder.js"
|
|
62
68
|
},
|
|
63
69
|
"./constants": {
|
|
64
|
-
"types": "./src/constants.d.ts",
|
|
65
|
-
"default": "./src/constants.js"
|
|
70
|
+
"types": "./src/config/constants.d.ts",
|
|
71
|
+
"default": "./src/config/constants.js"
|
|
66
72
|
},
|
|
67
73
|
"./bun": {
|
|
68
74
|
"types": "./src/adapters/bun/index.d.ts",
|
|
69
75
|
"default": "./src/adapters/bun/index.js"
|
|
70
76
|
},
|
|
71
|
-
"./bun/create-app": {
|
|
72
|
-
"types": "./src/adapters/bun/create-app.d.ts",
|
|
73
|
-
"default": "./src/adapters/bun/create-app.js"
|
|
74
|
-
},
|
|
75
|
-
"./bun/define-api-handler": {
|
|
76
|
-
"types": "./src/adapters/bun/define-api-handler.d.ts",
|
|
77
|
-
"default": "./src/adapters/bun/define-api-handler.js"
|
|
78
|
-
},
|
|
79
77
|
"./hmr/hmr-strategy": {
|
|
80
78
|
"types": "./src/hmr/hmr-strategy.d.ts",
|
|
81
79
|
"default": "./src/hmr/hmr-strategy.js"
|
|
82
80
|
},
|
|
83
|
-
"./
|
|
84
|
-
"types": "./src/
|
|
81
|
+
"./dev/host-runtime": {
|
|
82
|
+
"types": "./src/dev/host-runtime.d.ts",
|
|
83
|
+
"default": "./src/dev/host-runtime.js"
|
|
85
84
|
},
|
|
86
85
|
"./services/asset-processing-service": {
|
|
87
|
-
"types": "./src/services/asset-processing-service/index.d.ts",
|
|
88
|
-
"default": "./src/services/asset-processing-service/index.js"
|
|
89
|
-
},
|
|
90
|
-
"./utils/deep-merge": {
|
|
91
|
-
"types": "./src/utils/deep-merge.d.ts",
|
|
92
|
-
"default": "./src/utils/deep-merge.js"
|
|
93
|
-
},
|
|
94
|
-
"./utils/invariant": {
|
|
95
|
-
"types": "./src/utils/invariant.d.ts",
|
|
96
|
-
"default": "./src/utils/invariant.js"
|
|
97
|
-
},
|
|
98
|
-
"./utils/parse-cli-args": {
|
|
99
|
-
"types": "./src/utils/parse-cli-args.d.ts",
|
|
100
|
-
"default": "./src/utils/parse-cli-args.js"
|
|
86
|
+
"types": "./src/services/assets/asset-processing-service/index.d.ts",
|
|
87
|
+
"default": "./src/services/assets/asset-processing-service/index.js"
|
|
101
88
|
},
|
|
102
89
|
"./plugins/processor": {
|
|
103
90
|
"types": "./src/plugins/processor.d.ts",
|
|
@@ -107,6 +94,10 @@
|
|
|
107
94
|
"types": "./src/plugins/integration-plugin.d.ts",
|
|
108
95
|
"default": "./src/plugins/integration-plugin.js"
|
|
109
96
|
},
|
|
97
|
+
"./plugins/source-transform": {
|
|
98
|
+
"types": "./src/plugins/source-transform.d.ts",
|
|
99
|
+
"default": "./src/plugins/source-transform.js"
|
|
100
|
+
},
|
|
110
101
|
"./build/build-types": {
|
|
111
102
|
"types": "./src/build/build-types.d.ts",
|
|
112
103
|
"default": "./src/build/build-types.js"
|
|
@@ -115,32 +106,23 @@
|
|
|
115
106
|
"types": "./src/build/build-adapter.d.ts",
|
|
116
107
|
"default": "./src/build/build-adapter.js"
|
|
117
108
|
},
|
|
118
|
-
"./
|
|
119
|
-
"types": "./src/
|
|
120
|
-
"default": "./src/
|
|
109
|
+
"./build/runtime-specifier-alias-plugin": {
|
|
110
|
+
"types": "./src/build/runtime-specifier-alias-plugin.d.ts",
|
|
111
|
+
"default": "./src/build/runtime-specifier-alias-plugin.js"
|
|
121
112
|
},
|
|
122
|
-
"./
|
|
123
|
-
"types": "./src/
|
|
124
|
-
"default": "./src/
|
|
113
|
+
"./build/runtime-specifier-aliases": {
|
|
114
|
+
"types": "./src/build/runtime-specifier-aliases.d.ts",
|
|
115
|
+
"default": "./src/build/runtime-specifier-aliases.js"
|
|
125
116
|
},
|
|
126
|
-
"./
|
|
127
|
-
"types": "./src/
|
|
128
|
-
"default": "./src/
|
|
129
|
-
},
|
|
130
|
-
"./node/create-app": {
|
|
131
|
-
"types": "./src/adapters/node/create-app.d.ts",
|
|
132
|
-
"default": "./src/adapters/node/create-app.js"
|
|
117
|
+
"./plugins/foreign-jsx-override-plugin": {
|
|
118
|
+
"types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
|
|
119
|
+
"default": "./src/plugins/foreign-jsx-override-plugin.js"
|
|
133
120
|
},
|
|
134
121
|
"./html": {
|
|
135
122
|
"import": "./src/utils/html.js",
|
|
136
123
|
"default": "./src/utils/html.js",
|
|
137
124
|
"types": "./src/utils/html.d.ts"
|
|
138
125
|
},
|
|
139
|
-
"./css": {
|
|
140
|
-
"import": "./src/utils/css.js",
|
|
141
|
-
"default": "./src/utils/css.js",
|
|
142
|
-
"types": "./src/utils/css.d.ts"
|
|
143
|
-
},
|
|
144
126
|
"./hash": {
|
|
145
127
|
"import": "./src/utils/hash.js",
|
|
146
128
|
"default": "./src/utils/hash.js",
|
|
@@ -155,18 +137,24 @@
|
|
|
155
137
|
"default": "./src/integrations/ghtml/ghtml.plugin.js"
|
|
156
138
|
},
|
|
157
139
|
"./create-app.ts": {
|
|
158
|
-
"
|
|
159
|
-
"
|
|
140
|
+
"import": "./src/adapters/create-app.js",
|
|
141
|
+
"types": "./src/adapters/create-app.d.ts",
|
|
142
|
+
"default": "./src/adapters/create-app.js"
|
|
160
143
|
},
|
|
161
144
|
"./route-renderer/integration-renderer.ts": {
|
|
162
|
-
"types": "./src/route-renderer/integration-renderer.d.ts",
|
|
163
|
-
"default": "./src/route-renderer/integration-renderer.js"
|
|
145
|
+
"types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
|
|
146
|
+
"default": "./src/route-renderer/orchestration/integration-renderer.js"
|
|
164
147
|
},
|
|
165
|
-
"./
|
|
166
|
-
"types": "./src/
|
|
167
|
-
"default": "./src/
|
|
148
|
+
"./router/navigation-coordinator.ts": {
|
|
149
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
150
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
151
|
+
},
|
|
152
|
+
"./router/link-intent.ts": {
|
|
153
|
+
"types": "./src/router/client/link-intent.d.ts",
|
|
154
|
+
"default": "./src/router/client/link-intent.js"
|
|
168
155
|
},
|
|
169
156
|
"./eco.ts": {
|
|
157
|
+
"browser": "./src/eco/eco.browser.js",
|
|
170
158
|
"types": "./src/eco/eco.d.ts",
|
|
171
159
|
"default": "./src/eco/eco.js"
|
|
172
160
|
},
|
|
@@ -181,43 +169,24 @@
|
|
|
181
169
|
"default": "./src/config/config-builder.js"
|
|
182
170
|
},
|
|
183
171
|
"./constants.ts": {
|
|
184
|
-
"types": "./src/constants.d.ts",
|
|
185
|
-
"default": "./src/constants.js"
|
|
172
|
+
"types": "./src/config/constants.d.ts",
|
|
173
|
+
"default": "./src/config/constants.js"
|
|
186
174
|
},
|
|
187
175
|
"./bun.ts": {
|
|
188
176
|
"types": "./src/adapters/bun/index.d.ts",
|
|
189
177
|
"default": "./src/adapters/bun/index.js"
|
|
190
178
|
},
|
|
191
|
-
"./bun/create-app.ts": {
|
|
192
|
-
"types": "./src/adapters/bun/create-app.d.ts",
|
|
193
|
-
"default": "./src/adapters/bun/create-app.js"
|
|
194
|
-
},
|
|
195
|
-
"./bun/define-api-handler.ts": {
|
|
196
|
-
"types": "./src/adapters/bun/define-api-handler.d.ts",
|
|
197
|
-
"default": "./src/adapters/bun/define-api-handler.js"
|
|
198
|
-
},
|
|
199
179
|
"./hmr/hmr-strategy.ts": {
|
|
200
180
|
"types": "./src/hmr/hmr-strategy.d.ts",
|
|
201
181
|
"default": "./src/hmr/hmr-strategy.js"
|
|
202
182
|
},
|
|
203
|
-
"./
|
|
204
|
-
"types": "./src/
|
|
183
|
+
"./dev/host-runtime.ts": {
|
|
184
|
+
"types": "./src/dev/host-runtime.d.ts",
|
|
185
|
+
"default": "./src/dev/host-runtime.js"
|
|
205
186
|
},
|
|
206
187
|
"./services/asset-processing-service.ts": {
|
|
207
|
-
"types": "./src/services/asset-processing-service/index.d.ts",
|
|
208
|
-
"default": "./src/services/asset-processing-service/index.js"
|
|
209
|
-
},
|
|
210
|
-
"./utils/deep-merge.ts": {
|
|
211
|
-
"types": "./src/utils/deep-merge.d.ts",
|
|
212
|
-
"default": "./src/utils/deep-merge.js"
|
|
213
|
-
},
|
|
214
|
-
"./utils/invariant.ts": {
|
|
215
|
-
"types": "./src/utils/invariant.d.ts",
|
|
216
|
-
"default": "./src/utils/invariant.js"
|
|
217
|
-
},
|
|
218
|
-
"./utils/parse-cli-args.ts": {
|
|
219
|
-
"types": "./src/utils/parse-cli-args.d.ts",
|
|
220
|
-
"default": "./src/utils/parse-cli-args.js"
|
|
188
|
+
"types": "./src/services/assets/asset-processing-service/index.d.ts",
|
|
189
|
+
"default": "./src/services/assets/asset-processing-service/index.js"
|
|
221
190
|
},
|
|
222
191
|
"./plugins/processor.ts": {
|
|
223
192
|
"types": "./src/plugins/processor.d.ts",
|
|
@@ -227,6 +196,10 @@
|
|
|
227
196
|
"types": "./src/plugins/integration-plugin.d.ts",
|
|
228
197
|
"default": "./src/plugins/integration-plugin.js"
|
|
229
198
|
},
|
|
199
|
+
"./plugins/source-transform.ts": {
|
|
200
|
+
"types": "./src/plugins/source-transform.d.ts",
|
|
201
|
+
"default": "./src/plugins/source-transform.js"
|
|
202
|
+
},
|
|
230
203
|
"./build/build-types.ts": {
|
|
231
204
|
"types": "./src/build/build-types.d.ts",
|
|
232
205
|
"default": "./src/build/build-types.js"
|
|
@@ -235,32 +208,23 @@
|
|
|
235
208
|
"types": "./src/build/build-adapter.d.ts",
|
|
236
209
|
"default": "./src/build/build-adapter.js"
|
|
237
210
|
},
|
|
238
|
-
"./
|
|
239
|
-
"types": "./src/
|
|
240
|
-
"default": "./src/
|
|
211
|
+
"./build/runtime-specifier-alias-plugin.ts": {
|
|
212
|
+
"types": "./src/build/runtime-specifier-alias-plugin.d.ts",
|
|
213
|
+
"default": "./src/build/runtime-specifier-alias-plugin.js"
|
|
241
214
|
},
|
|
242
|
-
"./
|
|
243
|
-
"types": "./src/
|
|
244
|
-
"default": "./src/
|
|
215
|
+
"./build/runtime-specifier-aliases.ts": {
|
|
216
|
+
"types": "./src/build/runtime-specifier-aliases.d.ts",
|
|
217
|
+
"default": "./src/build/runtime-specifier-aliases.js"
|
|
245
218
|
},
|
|
246
|
-
"./
|
|
247
|
-
"types": "./src/
|
|
248
|
-
"default": "./src/
|
|
249
|
-
},
|
|
250
|
-
"./node/create-app.ts": {
|
|
251
|
-
"types": "./src/adapters/node/create-app.d.ts",
|
|
252
|
-
"default": "./src/adapters/node/create-app.js"
|
|
219
|
+
"./plugins/foreign-jsx-override-plugin.ts": {
|
|
220
|
+
"types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
|
|
221
|
+
"default": "./src/plugins/foreign-jsx-override-plugin.js"
|
|
253
222
|
},
|
|
254
223
|
"./html.ts": {
|
|
255
224
|
"import": "./src/utils/html.js",
|
|
256
225
|
"default": "./src/utils/html.js",
|
|
257
226
|
"types": "./src/utils/html.d.ts"
|
|
258
227
|
},
|
|
259
|
-
"./css.ts": {
|
|
260
|
-
"import": "./src/utils/css.js",
|
|
261
|
-
"default": "./src/utils/css.js",
|
|
262
|
-
"types": "./src/utils/css.d.ts"
|
|
263
|
-
},
|
|
264
228
|
"./hash.ts": {
|
|
265
229
|
"import": "./src/utils/hash.js",
|
|
266
230
|
"default": "./src/utils/hash.js",
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Runtime Adapters
|
|
2
|
+
|
|
3
|
+
This directory contains the runtime-host integration layer for Ecopages.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Adapters translate app-owned core services into concrete runtime behavior at the host boundary. Bun remains the direct core runtime, while Node compatibility is driven by the Ecopages CLI thin-host path and reuses internal adapter pieces here.
|
|
8
|
+
|
|
9
|
+
They are responsible for:
|
|
10
|
+
|
|
11
|
+
- starting and stopping runtime-specific servers or thin hosts
|
|
12
|
+
- delegating startup into framework-owned loaders and services
|
|
13
|
+
- bridging runtime-specific request/response or HMR transport details
|
|
14
|
+
- keeping host/runtime transport details out of generic core orchestration
|
|
15
|
+
|
|
16
|
+
They are not responsible for:
|
|
17
|
+
|
|
18
|
+
- deciding plugin lifecycle ordering
|
|
19
|
+
- owning server-module semantics
|
|
20
|
+
- owning browser bundling policy
|
|
21
|
+
- owning route rendering semantics
|
|
22
|
+
|
|
23
|
+
## Main Areas
|
|
24
|
+
|
|
25
|
+
- `bun/`: Bun server adapter, lifecycle coordination, bridge, and HMR transport
|
|
26
|
+
- `node/`: internal Node compatibility adapter pieces used by the CLI thin-host path
|
|
27
|
+
- `shared/`: runtime-neutral adapter helpers used by both hosts
|
|
28
|
+
|
|
29
|
+
## Ownership Boundary
|
|
30
|
+
|
|
31
|
+
The adapter layer is transport-oriented.
|
|
32
|
+
|
|
33
|
+
Core services still own:
|
|
34
|
+
|
|
35
|
+
- config finalization
|
|
36
|
+
- build-manifest assembly
|
|
37
|
+
- server loading
|
|
38
|
+
- invalidation classification
|
|
39
|
+
- route rendering orchestration
|
|
@@ -6,15 +6,40 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module ApplicationAdapter
|
|
8
8
|
*/
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
9
|
+
import type { SourceModuleLoader } from '../../services/module-loading/module-loading-types.js';
|
|
10
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
11
|
+
import type { ApiHandler, ApiHandlerContext, ErrorHandler, Middleware, RouteOptions, StaticRoute, ViewLoader } from '../../types/public-types.js';
|
|
11
12
|
import { type ReturnParseCliArgs } from '../../utils/parse-cli-args.js';
|
|
13
|
+
/**
|
|
14
|
+
* Runtime bootstrap options layered on top of the app config.
|
|
15
|
+
*
|
|
16
|
+
* These options let a host runtime embed Ecopages without mutating process
|
|
17
|
+
* globals or app runtime state before calling `createApp()`.
|
|
18
|
+
*/
|
|
19
|
+
export interface ApplicationRuntimeOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Forces the app into the embedded-runtime CLI mode used by host
|
|
22
|
+
* environments.
|
|
23
|
+
*
|
|
24
|
+
* When enabled and no explicit `hostModuleLoader` is provided, the
|
|
25
|
+
* adapter auto-detects a host module loader from the global scope.
|
|
26
|
+
*/
|
|
27
|
+
embedded?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Explicit source module loader for request-time imports.
|
|
30
|
+
*
|
|
31
|
+
* When omitted in embedded mode, the adapter attempts automatic
|
|
32
|
+
* detection from globals set by the host environment.
|
|
33
|
+
*/
|
|
34
|
+
hostModuleLoader?: SourceModuleLoader;
|
|
35
|
+
}
|
|
12
36
|
/**
|
|
13
37
|
* Configuration options for application adapters
|
|
14
38
|
*/
|
|
15
39
|
export interface ApplicationAdapterOptions {
|
|
16
40
|
appConfig: EcoPagesAppConfig;
|
|
17
41
|
serverOptions?: Record<string, any>;
|
|
42
|
+
runtime?: ApplicationRuntimeOptions;
|
|
18
43
|
/**
|
|
19
44
|
* Options for clearing the output directory before starting the server
|
|
20
45
|
* @default false
|
|
@@ -43,6 +68,7 @@ export declare abstract class AbstractApplicationAdapter<TOptions extends Applic
|
|
|
43
68
|
protected appConfig: EcoPagesAppConfig;
|
|
44
69
|
protected serverOptions: Record<string, any>;
|
|
45
70
|
protected cliArgs: ReturnParseCliArgs;
|
|
71
|
+
protected runtimeOptions: ApplicationRuntimeOptions;
|
|
46
72
|
protected apiHandlers: ApiHandler[];
|
|
47
73
|
protected staticRoutes: StaticRoute[];
|
|
48
74
|
protected errorHandler?: ErrorHandler;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { appLogger } from "../../global/app-logger.js";
|
|
2
|
+
import {
|
|
3
|
+
getAppModuleLoader,
|
|
4
|
+
setAppHostModuleLoader
|
|
5
|
+
} from "../../services/module-loading/app-server-module-transpiler.service.js";
|
|
6
|
+
import { getHostModuleLoader } from "../../services/module-loading/host-module-loader-registry.js";
|
|
2
7
|
import { invariant } from "../../utils/invariant.js";
|
|
3
8
|
import { fileSystem } from "@ecopages/file-system";
|
|
4
9
|
import { parseCliArgs } from "../../utils/parse-cli-args.js";
|
|
@@ -6,20 +11,27 @@ class AbstractApplicationAdapter {
|
|
|
6
11
|
appConfig;
|
|
7
12
|
serverOptions;
|
|
8
13
|
cliArgs;
|
|
14
|
+
runtimeOptions;
|
|
9
15
|
apiHandlers = [];
|
|
10
16
|
staticRoutes = [];
|
|
11
17
|
errorHandler;
|
|
12
18
|
constructor(options) {
|
|
13
19
|
this.appConfig = options.appConfig;
|
|
14
20
|
this.serverOptions = options.serverOptions || {};
|
|
15
|
-
this.
|
|
21
|
+
this.runtimeOptions = options.runtime ?? {};
|
|
22
|
+
this.cliArgs = parseCliArgs({ embeddedRuntime: this.runtimeOptions.embedded });
|
|
23
|
+
const hostModuleLoader = this.runtimeOptions.hostModuleLoader ?? (this.runtimeOptions.embedded ? getHostModuleLoader() : void 0);
|
|
24
|
+
if (hostModuleLoader) {
|
|
25
|
+
setAppHostModuleLoader(this.appConfig, hostModuleLoader);
|
|
26
|
+
}
|
|
27
|
+
getAppModuleLoader(this.appConfig);
|
|
16
28
|
if (options.clearOutput) {
|
|
17
29
|
this.clearDistFolder().catch((error) => {
|
|
18
30
|
appLogger.error("Error clearing dist folder", error);
|
|
19
31
|
});
|
|
20
32
|
}
|
|
21
33
|
}
|
|
22
|
-
async clearDistFolder(
|
|
34
|
+
async clearDistFolder() {
|
|
23
35
|
const distPath = this.appConfig.absolutePaths.distDir;
|
|
24
36
|
const distExists = fileSystem.exists(distPath);
|
|
25
37
|
if (!distExists) return;
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module ServerAdapter
|
|
8
8
|
*/
|
|
9
|
-
import type { EcoPagesAppConfig } from '../../internal-types.js';
|
|
10
|
-
import type { ApiHandler } from '../../public-types.js';
|
|
9
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
10
|
+
import type { ApiHandler } from '../../types/public-types.js';
|
|
11
11
|
/**
|
|
12
12
|
* Configuration options for all server adapters
|
|
13
13
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ServerWebSocket } from 'bun';
|
|
2
|
-
import type { ClientBridgeEvent, IClientBridge } from '../../public-types';
|
|
2
|
+
import type { ClientBridgeEvent, IClientBridge } from '../../types/public-types.js';
|
|
3
3
|
type BunSocket = ServerWebSocket<unknown>;
|
|
4
4
|
/**
|
|
5
5
|
* Manages WebSocket subscribers and broadcasts development events.
|
|
@@ -8,18 +8,10 @@
|
|
|
8
8
|
* @module EcopagesApp
|
|
9
9
|
*/
|
|
10
10
|
import type { Server } from 'bun';
|
|
11
|
-
import type {
|
|
12
|
-
import type { ApiHandlerContext, RouteGroupBuilder } from '../../public-types.js';
|
|
13
|
-
import { type ApplicationAdapterOptions } from '../abstract/application-adapter.js';
|
|
11
|
+
import type { ApiHandlerContext, RouteGroupBuilder } from '../../types/public-types.js';
|
|
14
12
|
import { SharedApplicationAdapter } from '../shared/application-adapter.js';
|
|
13
|
+
import type { EcopagesAppOptions } from '../create-app.js';
|
|
15
14
|
import { type BunServerAdapterResult } from './server-adapter.js';
|
|
16
|
-
/**
|
|
17
|
-
* Configuration options for the Bun application adapter
|
|
18
|
-
*/
|
|
19
|
-
export interface EcopagesAppOptions extends ApplicationAdapterOptions {
|
|
20
|
-
appConfig: EcoPagesAppConfig;
|
|
21
|
-
serverOptions?: Record<string, any>;
|
|
22
|
-
}
|
|
23
15
|
/**
|
|
24
16
|
* Bun-specific route group builder that properly infers route params from path patterns.
|
|
25
17
|
* When you define a route like `/posts/:slug`, the handler context will have
|
|
@@ -34,9 +26,10 @@ export type BunRouteGroupBuilder<WebSocketData = undefined, TContext extends Api
|
|
|
34
26
|
* This class extends the {@link AbstractApplicationAdapter}
|
|
35
27
|
* and provides methods for handling HTTP requests and managing the server.
|
|
36
28
|
*/
|
|
37
|
-
export declare class
|
|
29
|
+
export declare class BunEcopagesApp<WebSocketData = undefined> extends SharedApplicationAdapter<EcopagesAppOptions, Server<WebSocketData>, Request> {
|
|
38
30
|
serverAdapter: BunServerAdapterResult | undefined;
|
|
39
31
|
private server;
|
|
32
|
+
private startStaticPreviewServer;
|
|
40
33
|
fetch(request: Request): Promise<Response>;
|
|
41
34
|
/**
|
|
42
35
|
* Complete the initialization of the server adapter by processing dynamic routes
|
|
@@ -57,4 +50,4 @@ export declare class EcopagesApp<WebSocketData = undefined> extends SharedApplic
|
|
|
57
50
|
/**
|
|
58
51
|
* Factory function to create a Bun application
|
|
59
52
|
*/
|
|
60
|
-
export declare function createApp<WebSocketData = undefined>(options: EcopagesAppOptions): Promise<
|
|
53
|
+
export declare function createApp<WebSocketData = undefined>(options: EcopagesAppOptions): Promise<BunEcopagesApp<WebSocketData>>;
|
|
@@ -1,12 +1,37 @@
|
|
|
1
|
-
import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../constants.js";
|
|
1
|
+
import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
|
|
2
|
+
import { StaticContentServer } from "../../dev/sc-server.js";
|
|
2
3
|
import { appLogger } from "../../global/app-logger.js";
|
|
3
4
|
import { getBunRuntime } from "../../utils/runtime.js";
|
|
4
|
-
import {} from "../abstract/application-adapter.js";
|
|
5
5
|
import { SharedApplicationAdapter } from "../shared/application-adapter.js";
|
|
6
6
|
import { createBunServerAdapter } from "./server-adapter.js";
|
|
7
|
-
class
|
|
7
|
+
class BunEcopagesApp extends SharedApplicationAdapter {
|
|
8
8
|
serverAdapter;
|
|
9
9
|
server = null;
|
|
10
|
+
async startStaticPreviewServer(port, hostname) {
|
|
11
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
12
|
+
for (let attempt = 0; attempt < 20; attempt += 1) {
|
|
13
|
+
try {
|
|
14
|
+
const previewServer = StaticContentServer.createServer({
|
|
15
|
+
appConfig: this.appConfig,
|
|
16
|
+
options: { port }
|
|
17
|
+
});
|
|
18
|
+
if (previewServer.server?.port) {
|
|
19
|
+
appLogger.info(`Preview running at http://${hostname}:${previewServer.server.port}`);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
break;
|
|
23
|
+
} catch (error) {
|
|
24
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
25
|
+
const errorCode = typeof error === "object" && error !== null && "code" in error ? String(error.code) : void 0;
|
|
26
|
+
const isPortReleaseRace = errorCode === "EADDRINUSE" || errorMessage.includes("EADDRINUSE");
|
|
27
|
+
if (!isPortReleaseRace || attempt === 19) {
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
appLogger.error("Failed to start preview server");
|
|
34
|
+
}
|
|
10
35
|
async fetch(request) {
|
|
11
36
|
if (!this.serverAdapter) {
|
|
12
37
|
this.serverAdapter = await this.initializeServerAdapter();
|
|
@@ -83,11 +108,17 @@ class EcopagesApp extends SharedApplicationAdapter {
|
|
|
83
108
|
}
|
|
84
109
|
const enableHmr = dev || !preview && !build;
|
|
85
110
|
const serverOptions = this.serverAdapter.getServerOptions({ enableHmr });
|
|
111
|
+
const configuredHostname = String(serverOptions.hostname ?? DEFAULT_ECOPAGES_HOSTNAME);
|
|
112
|
+
const configuredPort = Number(serverOptions.port ?? DEFAULT_ECOPAGES_PORT);
|
|
113
|
+
const runtimeServerOptions = (preview || build) && requiresFetchRuntime ? {
|
|
114
|
+
...serverOptions,
|
|
115
|
+
port: 0
|
|
116
|
+
} : serverOptions;
|
|
86
117
|
const bun = getBunRuntime();
|
|
87
118
|
if (!bun) {
|
|
88
119
|
throw new Error("Bun runtime is required for the Bun adapter");
|
|
89
120
|
}
|
|
90
|
-
const bunServer = bun.serve(
|
|
121
|
+
const bunServer = bun.serve(runtimeServerOptions);
|
|
91
122
|
this.server = bunServer;
|
|
92
123
|
await this.serverAdapter.completeInitialization(this.server).catch((error) => {
|
|
93
124
|
appLogger.error(`Failed to complete initialization: ${error}`);
|
|
@@ -98,8 +129,13 @@ class EcopagesApp extends SharedApplicationAdapter {
|
|
|
98
129
|
appLogger.info(`Server running at http://${this.server.hostname}:${this.server.port}`);
|
|
99
130
|
if (build || preview) {
|
|
100
131
|
appLogger.debugTime("Building static pages");
|
|
101
|
-
await this.serverAdapter.buildStatic({ preview });
|
|
132
|
+
await this.serverAdapter.buildStatic({ preview: false });
|
|
102
133
|
this.server.stop(true);
|
|
134
|
+
if (preview) {
|
|
135
|
+
const previewHostname = configuredHostname;
|
|
136
|
+
const previewPort = configuredPort;
|
|
137
|
+
await this.startStaticPreviewServer(previewPort, previewHostname);
|
|
138
|
+
}
|
|
103
139
|
appLogger.debugTimeEnd("Building static pages");
|
|
104
140
|
if (build) {
|
|
105
141
|
process.exit(0);
|
|
@@ -109,9 +145,9 @@ class EcopagesApp extends SharedApplicationAdapter {
|
|
|
109
145
|
}
|
|
110
146
|
}
|
|
111
147
|
async function createApp(options) {
|
|
112
|
-
return new
|
|
148
|
+
return new BunEcopagesApp(options);
|
|
113
149
|
}
|
|
114
150
|
export {
|
|
115
|
-
|
|
151
|
+
BunEcopagesApp,
|
|
116
152
|
createApp
|
|
117
153
|
};
|