@ecopages/core 0.2.0-alpha.1 → 0.2.0-alpha.10
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 +13 -70
- package/README.md +213 -12
- package/package.json +50 -18
- package/src/adapters/README.md +39 -0
- package/src/adapters/bun/hmr-manager.d.ts +77 -18
- package/src/adapters/bun/hmr-manager.js +159 -52
- package/src/adapters/bun/index.d.ts +1 -2
- package/src/adapters/bun/index.js +1 -1
- package/src/adapters/bun/server-adapter.js +35 -30
- package/src/adapters/bun/server-lifecycle.d.ts +24 -13
- package/src/adapters/bun/server-lifecycle.js +32 -60
- package/src/adapters/index.d.ts +1 -1
- package/src/adapters/index.js +1 -1
- package/src/adapters/node/bootstrap-dependency-resolver.d.ts +44 -0
- package/src/adapters/node/bootstrap-dependency-resolver.js +172 -0
- package/src/adapters/node/index.d.ts +2 -0
- package/src/adapters/node/index.js +3 -0
- package/src/adapters/node/node-hmr-manager.d.ts +87 -16
- package/src/adapters/node/node-hmr-manager.js +179 -88
- package/src/adapters/node/runtime-adapter.d.ts +46 -0
- package/src/adapters/node/runtime-adapter.js +306 -0
- package/src/adapters/node/server-adapter.d.ts +2 -31
- package/src/adapters/node/server-adapter.js +31 -93
- package/src/adapters/node/static-content-server.d.ts +36 -0
- package/src/adapters/node/static-content-server.js +28 -0
- package/src/adapters/node/write-runtime-manifest.d.ts +26 -0
- package/src/adapters/node/write-runtime-manifest.js +12 -0
- package/src/{define-api-handler.d.ts → adapters/shared/define-api-handler.d.ts} +1 -1
- package/src/adapters/shared/explicit-static-route-matcher.js +4 -1
- package/src/adapters/shared/file-route-middleware-pipeline.js +1 -0
- package/src/adapters/shared/fs-server-response-matcher.d.ts +9 -5
- package/src/adapters/shared/fs-server-response-matcher.js +13 -8
- 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.js +3 -2
- 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 +12 -2
- package/src/adapters/shared/server-adapter.js +37 -4
- package/src/adapters/shared/server-route-handler.d.ts +1 -1
- package/src/adapters/shared/server-route-handler.js +4 -13
- package/src/adapters/shared/server-static-builder.d.ts +35 -3
- package/src/adapters/shared/server-static-builder.js +59 -6
- package/src/build/README.md +101 -0
- package/src/build/build-adapter.d.ts +114 -2
- package/src/build/build-adapter.js +119 -5
- 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 +74 -0
- package/src/build/dev-build-coordinator.js +161 -0
- package/src/build/esbuild-build-adapter.d.ts +9 -6
- package/src/build/esbuild-build-adapter.js +103 -71
- package/src/build/runtime-build-executor.d.ts +13 -0
- package/src/build/runtime-build-executor.js +20 -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 +33 -0
- package/src/config/config-builder.d.ts +28 -17
- package/src/config/config-builder.js +221 -48
- package/src/constants.d.ts +13 -0
- package/src/constants.js +4 -0
- package/src/declarations.d.ts +18 -13
- package/src/eco/README.md +70 -16
- package/src/eco/component-render-context.d.ts +1 -1
- package/src/eco/component-render-context.js +26 -16
- package/src/eco/eco.js +16 -12
- package/src/eco/eco.types.d.ts +12 -4
- package/src/hmr/README.md +26 -0
- package/src/hmr/client/hmr-runtime.d.ts +1 -6
- package/src/hmr/client/hmr-runtime.js +30 -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/js-hmr-strategy.d.ts +45 -42
- package/src/hmr/strategies/js-hmr-strategy.js +70 -71
- package/src/index.d.ts +1 -1
- package/src/index.js +1 -1
- package/src/integrations/ghtml/ghtml-renderer.d.ts +1 -1
- package/src/integrations/ghtml/ghtml-renderer.js +3 -1
- package/src/internal-types.d.ts +39 -18
- package/src/plugins/README.md +34 -0
- package/src/plugins/alias-resolver-plugin.js +17 -3
- package/src/plugins/eco-component-meta-plugin.d.ts +2 -0
- package/src/plugins/eco-component-meta-plugin.js +1 -1
- package/src/plugins/integration-plugin.d.ts +38 -4
- package/src/plugins/integration-plugin.js +34 -1
- package/src/plugins/processor.d.ts +14 -1
- package/src/plugins/processor.js +15 -1
- package/src/plugins/runtime-capability.d.ts +9 -0
- package/src/public-types.d.ts +65 -10
- package/src/route-renderer/GRAPH.md +16 -20
- package/src/route-renderer/README.md +8 -21
- package/src/route-renderer/component-graph/component-reference.d.ts +10 -0
- package/src/route-renderer/component-graph/component-reference.js +19 -0
- package/src/route-renderer/{marker-graph-resolver.d.ts → component-graph/marker-graph-resolver.d.ts} +6 -5
- package/src/route-renderer/{marker-graph-resolver.js → component-graph/marker-graph-resolver.js} +10 -8
- package/src/route-renderer/{integration-renderer.d.ts → orchestration/integration-renderer.d.ts} +45 -12
- package/src/route-renderer/{integration-renderer.js → orchestration/integration-renderer.js} +79 -16
- package/src/route-renderer/{render-execution.service.d.ts → orchestration/render-execution.service.d.ts} +39 -5
- package/src/route-renderer/{render-execution.service.js → orchestration/render-execution.service.js} +58 -28
- package/src/route-renderer/{render-preparation.service.d.ts → orchestration/render-preparation.service.d.ts} +13 -4
- package/src/route-renderer/{render-preparation.service.js → orchestration/render-preparation.service.js} +92 -3
- package/src/route-renderer/{dependency-resolver.d.ts → page-loading/dependency-resolver.d.ts} +15 -4
- package/src/route-renderer/{dependency-resolver.js → page-loading/dependency-resolver.js} +18 -4
- package/src/route-renderer/page-loading/page-module-loader.d.ts +87 -0
- package/src/route-renderer/{page-module-loader.js → page-loading/page-module-loader.js} +36 -14
- package/src/route-renderer/route-renderer.d.ts +36 -1
- package/src/route-renderer/route-renderer.js +19 -0
- package/src/router/README.md +26 -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 +149 -0
- package/src/router/client/navigation-coordinator.js +215 -0
- package/src/router/{fs-router-scanner.d.ts → server/fs-router-scanner.d.ts} +3 -3
- package/src/router/{fs-router-scanner.js → server/fs-router-scanner.js} +8 -7
- package/src/router/{fs-router.d.ts → server/fs-router.d.ts} +1 -1
- package/src/router/{fs-router.js → server/fs-router.js} +1 -1
- package/src/services/README.md +29 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +120 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset-processing.service.js +88 -7
- 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 +2 -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 +55 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +48 -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/{asset-processing-service → assets/asset-processing-service}/index.d.ts +2 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/index.js +2 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.d.ts +1 -1
- 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 +9 -4
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-script-processor.d.ts +3 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-script-processor.js +14 -22
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.js +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.js +5 -4
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.js +4 -1
- package/src/services/assets/browser-bundle.service.d.ts +32 -0
- package/src/services/assets/browser-bundle.service.js +33 -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 +65 -0
- package/src/services/html/html-transformer.service.d.ts +77 -0
- package/src/services/html/html-transformer.service.js +221 -0
- package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
- package/src/services/invalidation/development-invalidation.service.js +189 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +16 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +34 -0
- package/src/services/module-loading/page-module-import.service.d.ts +71 -0
- package/src/services/module-loading/page-module-import.service.js +132 -0
- package/src/services/module-loading/server-loader.service.d.ts +96 -0
- package/src/services/module-loading/server-loader.service.js +32 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +69 -0
- package/src/services/module-loading/server-module-transpiler.service.js +61 -0
- package/src/services/runtime-manifest/node-runtime-manifest.service.d.ts +35 -0
- package/src/services/runtime-manifest/node-runtime-manifest.service.js +60 -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/runtime-specifier-registry.service.d.ts +69 -0
- package/src/services/runtime-state/runtime-specifier-registry.service.js +37 -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 +53 -1
- package/src/static-site-generator/static-site-generator.js +86 -5
- 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 +37 -21
- package/src/watchers/project-watcher.js +109 -66
- package/src/watchers/project-watcher.test-helpers.js +1 -0
- 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 -281
- 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.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 -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.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 -308
- 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.ts +0 -84
- package/src/route-renderer/component-graph.ts +0 -159
- package/src/route-renderer/component-marker.ts +0 -117
- 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.ts +0 -696
- 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.ts +0 -158
- 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.ts +0 -217
- 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.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.ts +0 -105
- package/src/services/asset-processing-service/processors/index.ts +0 -5
- 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.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.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 -306
- /package/src/adapters/{bun → shared}/define-api-handler.js +0 -0
- /package/src/{services/asset-processing-service/assets.types.js → plugins/runtime-capability.js} +0 -0
- /package/src/route-renderer/{component-graph-executor.d.ts → component-graph/component-graph-executor.d.ts} +0 -0
- /package/src/route-renderer/{component-graph-executor.js → component-graph/component-graph-executor.js} +0 -0
- /package/src/route-renderer/{component-graph.d.ts → component-graph/component-graph.d.ts} +0 -0
- /package/src/route-renderer/{component-graph.js → component-graph/component-graph.js} +0 -0
- /package/src/route-renderer/{component-marker.d.ts → component-graph/component-marker.d.ts} +0 -0
- /package/src/route-renderer/{component-marker.js → component-graph/component-marker.js} +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.d.ts +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.d.ts +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/index.d.ts +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/index.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.d.ts +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.d.ts +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.d.ts +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.d.ts +0 -0
- /package/src/services/{schema-validation-service.js → validation/schema-validation-service.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,84 +6,27 @@ All notable changes to `@ecopages/core` are documented here.
|
|
|
6
6
|
|
|
7
7
|
## [UNRELEASED] — TBD
|
|
8
8
|
|
|
9
|
-
### Features
|
|
10
|
-
|
|
11
|
-
#### Node.js Runtime Support
|
|
12
|
-
|
|
13
|
-
- **Node server adapter** — Full HTTP server adapter for Node.js via `packages/core/src/adapters/node/`, including request bridging, route handling, static content serving, and graceful shutdown.
|
|
14
|
-
- **Node static build pipeline** — Static-site build and preview server for Node.js runtime (`ab22f167`, `a47b4da3`, `435dc250`).
|
|
15
|
-
- **Node API handler pipeline** — `define-api-handler` now works cross-runtime; Node adapter wires API handler execution end-to-end (`73e57d87`, `f46aa528`).
|
|
16
|
-
- **Node client bridge** — `NodeClientBridge` with SSE-based HMR stream and heartbeat mechanism for connection health (`3361445f`).
|
|
17
|
-
- **Node HMR manager** — `NodeHmrManager` that mirrors Bun HMR capabilities on the Node runtime.
|
|
18
|
-
- **`createApp` universal factory** — Top-level `createApp` export that selects the correct adapter (Bun or Node) at runtime (`ce691bdf`, `2f1b1109`).
|
|
19
|
-
|
|
20
|
-
#### Build System
|
|
21
|
-
|
|
22
|
-
- **`EsbuildBuildAdapter`** — A new build backend backed by esbuild, replacing the Bun-only transpilation path. Includes module resolution routing, plugin registration, and transpilation defaults (`f503e86e`, `94c37d38`, `e4e124a1`).
|
|
23
|
-
- **Build dependency graph** — `BuildDependencyGraph` interface for tracking entrypoints and their asset dependencies, enabling more accurate HMR invalidation (`e7653c9b`).
|
|
24
|
-
- **Build adapter abstraction** — `build-adapter.ts` and `build-types.ts` decouple build and plugin contracts from Bun-specific types (`11b03bcc`).
|
|
25
|
-
|
|
26
|
-
#### Rendering & Orchestration
|
|
27
|
-
|
|
28
|
-
- **Boundary rendering policy** — Cross-integration component boundaries are now explicitly enforced (`ec1e4d66`).
|
|
29
|
-
- **Full orchestration mode** — Legacy rendering mode branches removed; the engine always runs in unified orchestration mode (`f652fa0a`).
|
|
30
|
-
- **Extracted render services** — The render pipeline is decomposed into focused services:
|
|
31
|
-
- `RenderExecutionService`
|
|
32
|
-
- `HtmlPostProcessingService`
|
|
33
|
-
- `RenderPreparationService`
|
|
34
|
-
- `MarkerGraphResolver`
|
|
35
|
-
- `FileRouteMiddlewarePipeline`
|
|
36
|
-
- `PageRequestCacheCoordinator`
|
|
37
|
-
- `PageModuleImportService`
|
|
38
|
-
- **Component render context** — New `ComponentRenderContext` consolidates component-level state during rendering (`eco/component-render-context.ts`).
|
|
39
|
-
- **Worker-tools HTML rewriter fallback** — `html-transformer` adopts `@worker-tools/html-rewriter` as a fallback for non-Bun environments (`54056d4f`).
|
|
40
|
-
|
|
41
|
-
#### Dependency & Injection
|
|
42
|
-
|
|
43
|
-
- **Global injector map** — `GlobalInjectorMap` and `LazyInjectorMap` provide structured, testable dependency injection for global and lazy assets (`c3a25072`).
|
|
44
|
-
- **Lazy dependency resolution** — SSR lazy script resolution now uses dedicated utility functions for dependency entry attributes and content generation (`71ce2f4f`).
|
|
45
|
-
- **Dependency entry type refactor** — Unified types for script and stylesheet dependency entries, with improved error messages (`1e02dba6`).
|
|
46
|
-
- **Module dependencies** — New `module-dependencies.ts` tracks explicit module-level asset relationships.
|
|
47
|
-
- **Eco utils extraction** — Shared utilities moved to `eco.utils.ts` to remove runtime metadata fallbacks (`bdc60d50`).
|
|
48
|
-
|
|
49
|
-
#### API Handlers
|
|
50
|
-
|
|
51
|
-
- **Unified typed API handler context** — `defineApiHandler` now exposes a fully typed, runtime-agnostic context object. The Bun-specific adapter is slimmed down to a thin wrapper (`2f1b1109`, `08e194b4`).
|
|
52
|
-
- **Portable root runtime API** — Core exposes a portable API surface that avoids runtime escape hatches (`ce691bdf`, `1ec42c02`).
|
|
53
|
-
|
|
54
|
-
### Refactoring
|
|
55
|
-
|
|
56
|
-
- **Bun adapter isolation** — Bun-specific types (`serve` options, file reads, env access, argv/hash helpers) are routed through dedicated helpers, making the remaining adapter code portable (`73668f52`, `0c90ced1`, `73fb904a`, `5eb0957b`, `4bdc74a9`, `e9ce163c`, `22f9de4a`, `f7b3d95e`).
|
|
57
|
-
- **Shared server adapter** — Common server adapter logic extracted to `adapters/shared/application-adapter.ts` and `adapters/shared/server-adapter.ts`, shared between Bun and Node adapters (`5a872eda`).
|
|
58
|
-
- **Route assets isolation** — Route-level assets are now isolated per-request, hardening dependency processing (`3fd76a12`).
|
|
59
|
-
- **Shared matcher error constants** — Matcher error strings are now constants shared across test and source (`ff4db106`).
|
|
60
|
-
- **App registration & fetch pipeline** — App creation and request handling consolidated into a single unified pipeline (`86e20a3d`).
|
|
61
|
-
- **Adapter escape hatch surface** trimmed — Public adapter API is narrowed to reduce surface area (`1ec42c02`).
|
|
62
|
-
|
|
63
9
|
### Bug Fixes
|
|
64
10
|
|
|
65
|
-
- Fixed
|
|
66
|
-
- Fixed
|
|
67
|
-
- Removed an invalid npm export entry that pointed to a non-existent `utils/ecopages-url-resolver` declaration target.
|
|
11
|
+
- Fixed npm release packaging to publish rewritten internal dependency versions instead of unresolved `workspace:*` ranges.
|
|
12
|
+
- Fixed published npm packaging to exclude raw TypeScript sources from tarballs so consumers resolve the built JavaScript and declaration outputs consistently.
|
|
68
13
|
|
|
69
|
-
###
|
|
14
|
+
### Features & Architecture
|
|
70
15
|
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
- Added `file-route-middleware-pipeline` tests.
|
|
16
|
+
- **Experimental Node.js Support**: Introduced a framework-owned thin-host bootstrap and runtime manifest flow for Node.js, providing cross-runtime parity while keeping the core agnostic.
|
|
17
|
+
- **Architectural Consolidation**: Unified server-side loading, browser bundling, and HMR strategy orchestration across all runtimes using shared core services (`ServerModuleTranspiler`, `BrowserBundleService`).
|
|
18
|
+
- **Build & Asset Refinement**: Introduced an internal `.eco` work directory to isolate development artifacts from production exports, and added `eco.html()`/`eco.layout()` for semantic component definitions.
|
|
19
|
+
- **Performance & Reliability**: Refactored internal watchers and HMR dispatching to improve build stability during rapid development cycles.
|
|
76
20
|
|
|
77
|
-
### Documentation
|
|
21
|
+
### Tests & Documentation
|
|
78
22
|
|
|
79
|
-
-
|
|
80
|
-
-
|
|
23
|
+
- **Robust Regression Suite**: Added coverage for experimental Node.js paths, the new shared services, and cross-runtime file-change dispatching.
|
|
24
|
+
- **Architecture Docs**: Added focused architecture and API documentation for config, plugins, services, adapters, HMR, router, and the rendering lifecycle.
|
|
81
25
|
|
|
82
26
|
---
|
|
83
27
|
|
|
84
28
|
## Migration Notes
|
|
85
29
|
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
- The old explicit `renderingMode` config option has been removed — full orchestration is always active.
|
|
30
|
+
- `createApp` is now the recommended entrypoint. Import it from `@ecopages/core`.
|
|
31
|
+
- `defineApiHandler` keeps the same call shape, but the handler context is now explicitly runtime-agnostic.
|
|
32
|
+
- The old explicit `renderingMode` config option has been removed and full orchestration is always active.
|
package/README.md
CHANGED
|
@@ -1,32 +1,233 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @ecopages/core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The foundational engine for the Ecopages framework. It provides the core build pipeline, development server, routing, and plugin architecture required to run an Ecopages application.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Overview
|
|
6
6
|
|
|
7
|
-
Ecopages
|
|
7
|
+
Ecopages is an extensible static site generator (SSG) built for universal execution across Bun and Node.js. It embraces a strictly MPA (Multi-Page Application) architecture by default, rendering HTML at build-time or request-time, and hydrating interactive islands only where necessary.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- **Universal Support**: First-class, optimized execution on both **Bun** and **Node.js** runtimes, powered by a unified `createApp` factory.
|
|
10
|
+
- **Fast by default**: Uses native ESM, optimized file watching, and esbuild for high-performance bundling and server-side rendering.
|
|
11
|
+
- **Framework agnostic**: First-class support for KitaJS, Lit, React, and MDX via official integration plugins.
|
|
12
|
+
- **Extensible**: Hook into the build process with custom processors or rendering integrations.
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
## Current Architecture
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
The current core package is organized around app-owned runtime state and explicit service boundaries.
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
The important ownership rules are:
|
|
19
|
+
|
|
20
|
+
- `ConfigBuilder.build()` finalizes app-owned build and runtime services.
|
|
21
|
+
- browser bundling and server module loading are explicit, separate paths.
|
|
22
|
+
- runtime hosts stay thin and delegate framework work into core services.
|
|
23
|
+
- HMR and invalidation use shared graph-aware services instead of runtime-specific ad hoc wiring.
|
|
24
|
+
|
|
25
|
+
### Bootstrap And Runtime Ownership
|
|
26
|
+
|
|
27
|
+
```mermaid
|
|
28
|
+
flowchart TD
|
|
29
|
+
A[eco.config.ts] --> B[ConfigBuilder.build]
|
|
30
|
+
B --> C[App build adapter]
|
|
31
|
+
B --> D[App build manifest]
|
|
32
|
+
B --> E[Build executor]
|
|
33
|
+
B --> F[Dev graph service]
|
|
34
|
+
B --> G[Runtime specifier registry]
|
|
35
|
+
B --> H[Node runtime manifest]
|
|
36
|
+
H --> I[CLI launch plan]
|
|
37
|
+
I --> J[Node thin host]
|
|
38
|
+
J --> K[Node runtime adapter]
|
|
39
|
+
K --> L[TranspilerServerLoader]
|
|
40
|
+
L --> M[ServerModuleTranspiler]
|
|
41
|
+
M --> N[PageModuleImportService]
|
|
42
|
+
K --> O[Loaded app runtime]
|
|
43
|
+
D --> P[BrowserBundleService]
|
|
44
|
+
E --> M
|
|
45
|
+
E --> P
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Development Invalidation And HMR Flow
|
|
49
|
+
|
|
50
|
+
```mermaid
|
|
51
|
+
flowchart TD
|
|
52
|
+
A[File change] --> B[ProjectWatcher]
|
|
53
|
+
B --> C[DevelopmentInvalidationService]
|
|
54
|
+
C --> D{Change kind}
|
|
55
|
+
D -->|Route or server source| E[Invalidate server modules]
|
|
56
|
+
D -->|Public or include| F[Reload browser]
|
|
57
|
+
D -->|Processor-owned asset| G[Notify processor only]
|
|
58
|
+
D -->|HMR-eligible source| H[Core HMR manager]
|
|
59
|
+
H --> I[Strategy selection]
|
|
60
|
+
I --> J[Core JsHmrStrategy]
|
|
61
|
+
I --> K[Integration strategy e.g. ReactHmrStrategy]
|
|
62
|
+
J --> L[BrowserBundleService]
|
|
63
|
+
K --> L
|
|
64
|
+
K --> M[importServerModule]
|
|
65
|
+
M --> N[ServerModuleTranspiler]
|
|
66
|
+
L --> O[Updated browser bundle]
|
|
67
|
+
O --> P[Client bridge broadcast]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
The manager/orchestration layer is core-owned, but framework-specific strategies such as React HMR are contributed by integrations and registered with the shared HMR manager.
|
|
71
|
+
|
|
72
|
+
### Practical Summary
|
|
73
|
+
|
|
74
|
+
- `ConfigBuilder` now seeds one app-owned build adapter, manifest, executor, dev graph, and runtime registry.
|
|
75
|
+
- `BrowserBundleService` is the shared browser build seam used by HMR and asset-oriented browser output paths.
|
|
76
|
+
- `ServerModuleTranspiler` is the shared server-side source loading seam used by runtime bootstrap and HMR metadata loading.
|
|
77
|
+
- the Node thin-host path exists to keep startup framework-owned without putting source parsing or tsconfig ownership into the host itself.
|
|
78
|
+
|
|
79
|
+
## Documentation Map
|
|
80
|
+
|
|
81
|
+
Use this package README as the top-level map, then drill into the focused subsystem READMEs:
|
|
82
|
+
|
|
83
|
+
- `src/config/README.md`: config finalization and app-owned runtime/build state
|
|
84
|
+
- `src/plugins/README.md`: integration and processor authoring contracts
|
|
85
|
+
- `src/build/README.md`: build adapter, executor, and development build coordination
|
|
86
|
+
- `src/services/README.md`: cross-cutting runtime services and orchestration helpers
|
|
87
|
+
- `src/adapters/README.md`: Bun, Node, and shared adapter boundaries
|
|
88
|
+
- `src/hmr/README.md`: HMR strategy and update-layer ownership
|
|
89
|
+
- `src/router/README.md`: route discovery, matching, and browser navigation coordination
|
|
90
|
+
- `src/route-renderer/README.md`: rendering orchestration and dependency resolution
|
|
91
|
+
- `src/static-site-generator/README.md`: static build execution path
|
|
92
|
+
- `src/eco/README.md`: `eco` authoring APIs for pages, layouts, and components
|
|
93
|
+
|
|
94
|
+
The intended reading order is:
|
|
95
|
+
|
|
96
|
+
1. this file for the big-picture architecture
|
|
97
|
+
2. `src/config/README.md` for config and lifecycle ownership
|
|
98
|
+
3. `src/plugins/README.md` and `src/build/README.md` for contribution contracts
|
|
99
|
+
4. `src/services/README.md` and `src/adapters/README.md` for runtime execution
|
|
100
|
+
5. `src/router/README.md` and `src/route-renderer/README.md` for request-time flow
|
|
101
|
+
|
|
102
|
+
## Installation
|
|
16
103
|
|
|
17
104
|
```bash
|
|
18
105
|
bunx jsr add @ecopages/core
|
|
19
106
|
```
|
|
20
107
|
|
|
21
|
-
|
|
108
|
+
_(You can also use `npm`, `yarn`, or `pnpm`)_
|
|
109
|
+
|
|
110
|
+
## Basic Usage
|
|
111
|
+
|
|
112
|
+
The Ecopages architecture revolves around an `eco.config.ts` file and an application entry point.
|
|
113
|
+
|
|
114
|
+
### 1. Configuration (`eco.config.ts`)
|
|
115
|
+
|
|
116
|
+
Configure your integratons, processors, and default metadata. Ecopages uses a builder pattern:
|
|
117
|
+
|
|
118
|
+
```typescript
|
|
119
|
+
import { ConfigBuilder } from '@ecopages/core/config-builder';
|
|
120
|
+
// import your desired plugins...
|
|
121
|
+
|
|
122
|
+
const config = await new ConfigBuilder()
|
|
123
|
+
.setRootDir(import.meta.dirname)
|
|
124
|
+
.setBaseUrl(import.meta.env.ECOPAGES_BASE_URL ?? 'http://localhost:3000')
|
|
125
|
+
.setDefaultMetadata({
|
|
126
|
+
title: 'My Ecopages Site',
|
|
127
|
+
description: 'Built with Ecopages',
|
|
128
|
+
})
|
|
129
|
+
// .setIntegrations([kitajsPlugin()])
|
|
130
|
+
.build();
|
|
131
|
+
|
|
132
|
+
export default config;
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 2. Application Entry (`app.ts`)
|
|
22
136
|
|
|
23
|
-
|
|
137
|
+
Start the application using the universal `createApp` factory. It automatically detects your runtime and applies the correct adapter.
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
import { createApp } from '@ecopages/core';
|
|
141
|
+
import appConfig from './eco.config';
|
|
142
|
+
|
|
143
|
+
const app = createApp({ appConfig });
|
|
144
|
+
|
|
145
|
+
await app.start();
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 3. Creating Pages
|
|
149
|
+
|
|
150
|
+
Use the `eco.page()` factory to define static routes. Place these in `src/pages/`:
|
|
151
|
+
|
|
152
|
+
```tsx
|
|
153
|
+
import { eco } from '@ecopages/core';
|
|
154
|
+
import { BaseLayout } from '@/layouts/base-layout';
|
|
155
|
+
|
|
156
|
+
export default eco.page({
|
|
157
|
+
layout: BaseLayout,
|
|
158
|
+
metadata: () => ({
|
|
159
|
+
title: 'Home',
|
|
160
|
+
}),
|
|
161
|
+
render: () => (
|
|
162
|
+
<div>
|
|
163
|
+
<h1>Welcome to Ecopages</h1>
|
|
164
|
+
</div>
|
|
165
|
+
),
|
|
166
|
+
});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 4. Reusable Components
|
|
170
|
+
|
|
171
|
+
Define components with `eco.component()` to automatically inject necessary stylesheets or scripts only when that component is rendered:
|
|
172
|
+
|
|
173
|
+
```tsx
|
|
174
|
+
import { eco } from '@ecopages/core';
|
|
175
|
+
|
|
176
|
+
export const MyButton = eco.component({
|
|
177
|
+
dependencies: {
|
|
178
|
+
stylesheets: ['./button.css'],
|
|
179
|
+
},
|
|
180
|
+
render: ({ label }) => <button className="my-button">{label}</button>,
|
|
181
|
+
});
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 5. API Handlers
|
|
185
|
+
|
|
186
|
+
Add server-side routes using `defineApiHandler`. Register them on your `app` instance before starting:
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
import { defineApiHandler } from '@ecopages/core';
|
|
190
|
+
|
|
191
|
+
export const helloWorld = defineApiHandler({
|
|
192
|
+
path: '/api/hello',
|
|
193
|
+
method: 'GET',
|
|
194
|
+
handler: async ({ response }) => {
|
|
195
|
+
return response.json({ message: 'Hello World' });
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Attach the handler in your `app.ts` entry:
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
// app.ts
|
|
204
|
+
import { createApp } from '@ecopages/core';
|
|
205
|
+
import { helloWorld } from './handlers/hello';
|
|
206
|
+
import appConfig from './eco.config';
|
|
207
|
+
|
|
208
|
+
const app = createApp({ appConfig });
|
|
209
|
+
|
|
210
|
+
app.get(helloWorld); // Register the API handler
|
|
211
|
+
|
|
212
|
+
await app.start();
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
See the [official documentation](https://ecopages.app) for advanced usage, API handlers, and integrations.
|
|
216
|
+
|
|
217
|
+
## Import Structure
|
|
218
|
+
|
|
219
|
+
Use the root package exports for standard authoring. The framework automatically detects your runtime and uses the optimal internal adapter:
|
|
24
220
|
|
|
25
221
|
```ts
|
|
26
|
-
import {
|
|
222
|
+
import { createApp, defineApiHandler, defineGroupHandler, eco } from '@ecopages/core';
|
|
27
223
|
```
|
|
28
224
|
|
|
29
|
-
|
|
225
|
+
> [!NOTE]
|
|
226
|
+
> `createApp` is now the recommended universal entrypoint over `EcopagesApp`.
|
|
227
|
+
|
|
228
|
+
### Runtime Escape Hatches
|
|
229
|
+
|
|
230
|
+
Use runtime-specific subpaths only when you explicitly need Bun-native or Node-native APIs that bypass the universal abstractions:
|
|
30
231
|
|
|
31
232
|
- `@ecopages/core/bun`
|
|
32
233
|
- `@ecopages/core/node`
|
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.10",
|
|
4
4
|
"description": "Core package for Ecopages",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ecopages",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"directory": "packages/core"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@ecopages/file-system": "0.2.0-alpha.
|
|
20
|
+
"@ecopages/file-system": "0.2.0-alpha.10",
|
|
21
21
|
"@ecopages/logger": "latest",
|
|
22
22
|
"@ecopages/scripts-injector": "^0.1.3",
|
|
23
23
|
"@worker-tools/html-rewriter": "0.1.0-pre.19",
|
|
@@ -39,8 +39,20 @@
|
|
|
39
39
|
"default": "./src/create-app.js"
|
|
40
40
|
},
|
|
41
41
|
"./route-renderer/integration-renderer": {
|
|
42
|
-
"types": "./src/route-renderer/integration-renderer.d.ts",
|
|
43
|
-
"default": "./src/route-renderer/integration-renderer.js"
|
|
42
|
+
"types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
|
|
43
|
+
"default": "./src/route-renderer/orchestration/integration-renderer.js"
|
|
44
|
+
},
|
|
45
|
+
"./router/navigation-coordinator": {
|
|
46
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
47
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
48
|
+
},
|
|
49
|
+
"./router/link-intent": {
|
|
50
|
+
"types": "./src/router/client/link-intent.d.ts",
|
|
51
|
+
"default": "./src/router/client/link-intent.js"
|
|
52
|
+
},
|
|
53
|
+
"./router/client/navigation-coordinator": {
|
|
54
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
55
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
44
56
|
},
|
|
45
57
|
"./errors/locals-access-error": {
|
|
46
58
|
"types": "./src/errors/locals-access-error.d.ts",
|
|
@@ -72,10 +84,6 @@
|
|
|
72
84
|
"types": "./src/adapters/bun/create-app.d.ts",
|
|
73
85
|
"default": "./src/adapters/bun/create-app.js"
|
|
74
86
|
},
|
|
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
87
|
"./hmr/hmr-strategy": {
|
|
80
88
|
"types": "./src/hmr/hmr-strategy.d.ts",
|
|
81
89
|
"default": "./src/hmr/hmr-strategy.js"
|
|
@@ -84,8 +92,8 @@
|
|
|
84
92
|
"types": "./src/internal-types.d.ts"
|
|
85
93
|
},
|
|
86
94
|
"./services/asset-processing-service": {
|
|
87
|
-
"types": "./src/services/asset-processing-service/index.d.ts",
|
|
88
|
-
"default": "./src/services/asset-processing-service/index.js"
|
|
95
|
+
"types": "./src/services/assets/asset-processing-service/index.d.ts",
|
|
96
|
+
"default": "./src/services/assets/asset-processing-service/index.js"
|
|
89
97
|
},
|
|
90
98
|
"./utils/deep-merge": {
|
|
91
99
|
"types": "./src/utils/deep-merge.d.ts",
|
|
@@ -115,6 +123,10 @@
|
|
|
115
123
|
"types": "./src/build/build-adapter.d.ts",
|
|
116
124
|
"default": "./src/build/build-adapter.js"
|
|
117
125
|
},
|
|
126
|
+
"./build/runtime-specifier-alias-plugin": {
|
|
127
|
+
"types": "./src/build/runtime-specifier-alias-plugin.d.ts",
|
|
128
|
+
"default": "./src/build/runtime-specifier-alias-plugin.js"
|
|
129
|
+
},
|
|
118
130
|
"./adapters/bun/client-bridge": {
|
|
119
131
|
"types": "./src/adapters/bun/client-bridge.d.ts",
|
|
120
132
|
"default": "./src/adapters/bun/client-bridge.js"
|
|
@@ -131,6 +143,10 @@
|
|
|
131
143
|
"types": "./src/adapters/node/create-app.d.ts",
|
|
132
144
|
"default": "./src/adapters/node/create-app.js"
|
|
133
145
|
},
|
|
146
|
+
"./node/runtime-adapter": {
|
|
147
|
+
"types": "./src/adapters/node/runtime-adapter.d.ts",
|
|
148
|
+
"default": "./src/adapters/node/runtime-adapter.js"
|
|
149
|
+
},
|
|
134
150
|
"./html": {
|
|
135
151
|
"import": "./src/utils/html.js",
|
|
136
152
|
"default": "./src/utils/html.js",
|
|
@@ -159,8 +175,20 @@
|
|
|
159
175
|
"default": "./src/create-app.js"
|
|
160
176
|
},
|
|
161
177
|
"./route-renderer/integration-renderer.ts": {
|
|
162
|
-
"types": "./src/route-renderer/integration-renderer.d.ts",
|
|
163
|
-
"default": "./src/route-renderer/integration-renderer.js"
|
|
178
|
+
"types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
|
|
179
|
+
"default": "./src/route-renderer/orchestration/integration-renderer.js"
|
|
180
|
+
},
|
|
181
|
+
"./router/navigation-coordinator.ts": {
|
|
182
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
183
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
184
|
+
},
|
|
185
|
+
"./router/link-intent.ts": {
|
|
186
|
+
"types": "./src/router/client/link-intent.d.ts",
|
|
187
|
+
"default": "./src/router/client/link-intent.js"
|
|
188
|
+
},
|
|
189
|
+
"./router/client/navigation-coordinator.ts": {
|
|
190
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
191
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
164
192
|
},
|
|
165
193
|
"./errors/locals-access-error.ts": {
|
|
166
194
|
"types": "./src/errors/locals-access-error.d.ts",
|
|
@@ -192,10 +220,6 @@
|
|
|
192
220
|
"types": "./src/adapters/bun/create-app.d.ts",
|
|
193
221
|
"default": "./src/adapters/bun/create-app.js"
|
|
194
222
|
},
|
|
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
223
|
"./hmr/hmr-strategy.ts": {
|
|
200
224
|
"types": "./src/hmr/hmr-strategy.d.ts",
|
|
201
225
|
"default": "./src/hmr/hmr-strategy.js"
|
|
@@ -204,8 +228,8 @@
|
|
|
204
228
|
"types": "./src/internal-types.d.ts"
|
|
205
229
|
},
|
|
206
230
|
"./services/asset-processing-service.ts": {
|
|
207
|
-
"types": "./src/services/asset-processing-service/index.d.ts",
|
|
208
|
-
"default": "./src/services/asset-processing-service/index.js"
|
|
231
|
+
"types": "./src/services/assets/asset-processing-service/index.d.ts",
|
|
232
|
+
"default": "./src/services/assets/asset-processing-service/index.js"
|
|
209
233
|
},
|
|
210
234
|
"./utils/deep-merge.ts": {
|
|
211
235
|
"types": "./src/utils/deep-merge.d.ts",
|
|
@@ -235,6 +259,10 @@
|
|
|
235
259
|
"types": "./src/build/build-adapter.d.ts",
|
|
236
260
|
"default": "./src/build/build-adapter.js"
|
|
237
261
|
},
|
|
262
|
+
"./build/runtime-specifier-alias-plugin.ts": {
|
|
263
|
+
"types": "./src/build/runtime-specifier-alias-plugin.d.ts",
|
|
264
|
+
"default": "./src/build/runtime-specifier-alias-plugin.js"
|
|
265
|
+
},
|
|
238
266
|
"./adapters/bun/client-bridge.ts": {
|
|
239
267
|
"types": "./src/adapters/bun/client-bridge.d.ts",
|
|
240
268
|
"default": "./src/adapters/bun/client-bridge.js"
|
|
@@ -251,6 +279,10 @@
|
|
|
251
279
|
"types": "./src/adapters/node/create-app.d.ts",
|
|
252
280
|
"default": "./src/adapters/node/create-app.js"
|
|
253
281
|
},
|
|
282
|
+
"./node/runtime-adapter.ts": {
|
|
283
|
+
"types": "./src/adapters/node/runtime-adapter.d.ts",
|
|
284
|
+
"default": "./src/adapters/node/runtime-adapter.js"
|
|
285
|
+
},
|
|
254
286
|
"./html.ts": {
|
|
255
287
|
"import": "./src/utils/html.js",
|
|
256
288
|
"default": "./src/utils/html.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 on Bun and Node.
|
|
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/`: Node server adapter plus thin-host runtime bootstrap 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
|