@ecopages/core 0.2.0-alpha.4 → 0.2.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +213 -12
- package/package.json +100 -188
- package/src/adapters/README.md +39 -0
- package/src/adapters/bun/hmr-manager.test.ts +267 -0
- package/src/adapters/bun/hmr-manager.ts +181 -68
- package/src/adapters/bun/index.ts +1 -2
- package/src/adapters/bun/server-adapter.ts +41 -34
- package/src/adapters/bun/server-lifecycle.ts +40 -70
- package/src/adapters/index.ts +1 -1
- package/src/adapters/node/bootstrap-dependency-resolver.test.ts +282 -0
- package/src/adapters/node/bootstrap-dependency-resolver.ts +301 -0
- package/src/adapters/node/index.ts +7 -0
- package/src/adapters/node/node-client-bridge.test.ts +198 -0
- package/src/adapters/node/node-hmr-manager.test.ts +322 -0
- package/src/adapters/node/node-hmr-manager.ts +208 -116
- package/src/adapters/node/runtime-adapter.test.ts +868 -0
- package/src/adapters/node/runtime-adapter.ts +439 -0
- package/src/adapters/node/server-adapter.ts +31 -104
- package/src/adapters/node/static-content-server.test.ts +60 -0
- package/src/adapters/node/static-content-server.ts +36 -0
- package/src/adapters/node/write-runtime-manifest.ts +38 -0
- package/src/adapters/shared/api-response.test.ts +97 -0
- package/src/{define-api-handler.ts → adapters/shared/define-api-handler.ts} +1 -1
- package/src/adapters/shared/explicit-static-route-matcher.test.ts +381 -0
- package/src/adapters/shared/explicit-static-route-matcher.ts +7 -1
- package/src/adapters/shared/file-route-middleware-pipeline.test.ts +90 -0
- package/src/adapters/shared/file-route-middleware-pipeline.ts +6 -2
- package/src/adapters/shared/fs-server-response-factory.test.ts +187 -0
- package/src/adapters/shared/fs-server-response-matcher.test.ts +286 -0
- package/src/adapters/shared/fs-server-response-matcher.ts +17 -10
- package/src/adapters/shared/hmr-entrypoint-registrar.ts +149 -0
- package/src/adapters/shared/hmr-html-response.ts +52 -0
- package/src/adapters/shared/hmr-manager.contract.test.ts +196 -0
- package/src/adapters/shared/hmr-manager.dispatch.test.ts +220 -0
- package/src/adapters/shared/render-context.test.ts +146 -0
- package/src/adapters/shared/render-context.ts +21 -6
- package/src/adapters/shared/runtime-bootstrap.ts +79 -0
- package/src/adapters/shared/server-adapter.test.ts +77 -0
- package/src/adapters/shared/server-adapter.ts +51 -4
- package/src/adapters/shared/server-route-handler.test.ts +110 -0
- package/src/adapters/shared/server-route-handler.ts +5 -18
- package/src/adapters/shared/server-static-builder.test.ts +316 -0
- package/src/adapters/shared/server-static-builder.ts +92 -8
- package/src/build/README.md +101 -0
- package/src/build/build-adapter-serialization.test.ts +268 -0
- package/src/build/build-adapter.test.ts +815 -0
- package/src/build/build-adapter.ts +235 -6
- package/src/build/build-manifest.ts +54 -0
- package/src/build/dev-build-coordinator.ts +221 -0
- package/src/build/esbuild-build-adapter.ts +132 -83
- package/src/build/runtime-build-executor.ts +34 -0
- package/src/build/runtime-specifier-alias-plugin.test.ts +43 -0
- package/src/build/runtime-specifier-alias-plugin.ts +58 -0
- package/src/config/README.md +33 -0
- package/src/config/config-builder.test.ts +410 -0
- package/src/config/config-builder.ts +281 -49
- package/src/constants.ts +15 -0
- package/src/declarations.d.ts +18 -13
- package/src/eco/README.md +70 -16
- package/src/eco/component-render-context.ts +39 -17
- package/src/eco/eco.test.ts +678 -0
- package/src/eco/eco.ts +29 -8
- package/src/eco/eco.types.ts +20 -1
- package/src/eco/eco.utils.test.ts +124 -0
- package/src/eco/global-injector-map.test.ts +42 -0
- package/src/eco/lazy-injector-map.test.ts +66 -0
- package/src/eco/module-dependencies.test.ts +30 -0
- package/src/errors/http-error.test.ts +134 -0
- package/src/global/utils.test.ts +12 -0
- package/src/hmr/README.md +26 -0
- 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 +38 -7
- package/src/hmr/hmr-strategy.test.ts +124 -0
- package/src/hmr/hmr.postcss.test.e2e.ts +41 -0
- package/src/hmr/hmr.test.e2e.ts +29 -38
- package/src/hmr/strategies/js-hmr-strategy.test.ts +335 -0
- package/src/hmr/strategies/js-hmr-strategy.ts +115 -115
- package/src/index.ts +1 -1
- package/src/integrations/ghtml/ghtml-renderer.test.ts +63 -0
- package/src/integrations/ghtml/ghtml-renderer.ts +4 -1
- package/src/internal-types.ts +39 -19
- package/src/plugins/README.md +34 -0
- package/src/plugins/alias-resolver-plugin.test.ts +41 -0
- package/src/plugins/alias-resolver-plugin.ts +21 -3
- package/src/plugins/eco-component-meta-plugin.test.ts +380 -0
- package/src/plugins/eco-component-meta-plugin.ts +10 -3
- package/src/plugins/integration-plugin.test.ts +111 -0
- package/src/plugins/integration-plugin.ts +45 -3
- package/src/plugins/processor.test.ts +148 -0
- package/src/plugins/processor.ts +22 -2
- package/src/plugins/runtime-capability.ts +14 -0
- package/src/public-types.ts +73 -16
- package/src/route-renderer/GRAPH.md +16 -20
- package/src/route-renderer/README.md +8 -21
- package/src/route-renderer/component-graph/component-graph-executor.test.ts +41 -0
- package/src/route-renderer/component-graph/component-graph.test.ts +63 -0
- package/src/route-renderer/component-graph/component-marker.test.ts +73 -0
- package/src/route-renderer/component-graph/component-reference.ts +29 -0
- package/src/route-renderer/component-graph/marker-graph-resolver.test.ts +135 -0
- package/src/route-renderer/{marker-graph-resolver.ts → component-graph/marker-graph-resolver.ts} +11 -9
- package/src/route-renderer/orchestration/integration-renderer.test.ts +936 -0
- package/src/route-renderer/{integration-renderer.ts → orchestration/integration-renderer.ts} +113 -19
- package/src/route-renderer/orchestration/render-execution.service.test.ts +97 -0
- package/src/route-renderer/{render-execution.service.ts → orchestration/render-execution.service.ts} +109 -37
- package/src/route-renderer/orchestration/render-preparation.service.test.ts +235 -0
- package/src/route-renderer/{render-preparation.service.ts → orchestration/render-preparation.service.ts} +127 -9
- package/src/route-renderer/page-loading/dependency-resolver.test.ts +345 -0
- package/src/route-renderer/{dependency-resolver.ts → page-loading/dependency-resolver.ts} +28 -12
- package/src/route-renderer/page-loading/page-module-loader.test.ts +96 -0
- package/src/route-renderer/{page-module-loader.ts → page-loading/page-module-loader.ts} +49 -21
- package/src/route-renderer/route-renderer.ts +36 -1
- package/src/router/README.md +26 -0
- package/src/router/client/link-intent.d.ts +53 -0
- package/src/router/client/link-intent.test.browser.ts +51 -0
- package/src/router/client/link-intent.ts +92 -0
- package/src/router/client/navigation-coordinator.test.ts +237 -0
- package/src/router/client/navigation-coordinator.ts +433 -0
- package/src/router/server/fs-router-scanner.test.ts +83 -0
- package/src/router/{fs-router-scanner.ts → server/fs-router-scanner.ts} +12 -10
- package/src/router/server/fs-router.test.ts +214 -0
- package/src/router/{fs-router.ts → server/fs-router.ts} +2 -2
- package/src/services/README.md +29 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +385 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset-processing.service.ts +101 -6
- package/src/services/assets/asset-processing-service/asset.factory.test.ts +63 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.ts +2 -1
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +72 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +95 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +67 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +78 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/index.ts +2 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.ts +1 -1
- package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +59 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.ts +11 -5
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-script-processor.ts +17 -27
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +286 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.ts +3 -3
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +227 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.ts +5 -4
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +199 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.ts +4 -1
- package/src/services/assets/browser-bundle.service.test.ts +36 -0
- package/src/services/assets/browser-bundle.service.ts +53 -0
- package/src/services/cache/index.ts +3 -3
- package/src/services/cache/memory-cache-store.test.ts +225 -0
- package/src/services/cache/memory-cache-store.ts +1 -1
- package/src/services/cache/page-cache-service.test.ts +175 -0
- package/src/services/cache/page-cache-service.ts +3 -3
- package/src/services/cache/page-request-cache-coordinator.service.test.ts +79 -0
- package/src/services/{page-request-cache-coordinator.service.ts → cache/page-request-cache-coordinator.service.ts} +9 -6
- package/src/services/html/html-rewriter-provider.service.test.ts +183 -0
- package/src/services/html/html-rewriter-provider.service.ts +103 -0
- package/src/services/html/html-transformer.service.test.ts +378 -0
- package/src/services/html/html-transformer.service.ts +279 -0
- package/src/services/invalidation/development-invalidation.service.test.ts +77 -0
- package/src/services/invalidation/development-invalidation.service.ts +261 -0
- package/src/services/module-loading/app-server-module-transpiler.service.ts +52 -0
- package/src/services/module-loading/page-module-import.service.test.ts +253 -0
- package/src/services/module-loading/page-module-import.service.ts +200 -0
- package/src/services/module-loading/server-loader.service.test.ts +161 -0
- package/src/services/module-loading/server-loader.service.ts +130 -0
- package/src/services/module-loading/server-module-transpiler.service.test.ts +115 -0
- package/src/services/module-loading/server-module-transpiler.service.ts +105 -0
- package/src/services/runtime-manifest/node-runtime-manifest.service.test.ts +95 -0
- package/src/services/runtime-manifest/node-runtime-manifest.service.ts +101 -0
- package/src/services/runtime-state/dev-graph.service.ts +217 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +136 -0
- package/src/services/runtime-state/runtime-specifier-registry.service.ts +96 -0
- package/src/services/runtime-state/server-invalidation-state.service.ts +68 -0
- package/src/services/validation/schema-validation-service.test.ts +223 -0
- package/src/services/{schema-validation-service.ts → validation/schema-validation-service.ts} +1 -1
- package/src/static-site-generator/README.md +26 -0
- package/src/static-site-generator/static-site-generator.test.ts +307 -0
- package/src/static-site-generator/static-site-generator.ts +109 -6
- package/src/utils/deep-merge.test.ts +114 -0
- package/src/utils/invariant.test.ts +22 -0
- package/src/utils/path-utils.test.ts +15 -0
- package/src/utils/resolve-work-dir.ts +45 -0
- package/src/utils/server-utils.test.ts +38 -0
- package/src/watchers/project-watcher.integration.test.ts +337 -0
- package/src/watchers/project-watcher.test-helpers.ts +1 -1
- package/src/watchers/project-watcher.test.ts +678 -0
- package/src/watchers/project-watcher.ts +130 -111
- package/CHANGELOG.md +0 -91
- package/src/adapters/abstract/application-adapter.d.ts +0 -168
- package/src/adapters/abstract/application-adapter.js +0 -109
- package/src/adapters/abstract/router-adapter.d.ts +0 -26
- package/src/adapters/abstract/router-adapter.js +0 -5
- package/src/adapters/abstract/server-adapter.d.ts +0 -69
- package/src/adapters/abstract/server-adapter.js +0 -15
- package/src/adapters/bun/client-bridge.d.ts +0 -34
- package/src/adapters/bun/client-bridge.js +0 -48
- package/src/adapters/bun/create-app.d.ts +0 -60
- package/src/adapters/bun/create-app.js +0 -117
- package/src/adapters/bun/define-api-handler.d.ts +0 -61
- package/src/adapters/bun/define-api-handler.js +0 -15
- package/src/adapters/bun/define-api-handler.ts +0 -114
- package/src/adapters/bun/hmr-manager.d.ts +0 -85
- package/src/adapters/bun/hmr-manager.js +0 -240
- package/src/adapters/bun/index.d.ts +0 -3
- package/src/adapters/bun/index.js +0 -8
- package/src/adapters/bun/server-adapter.d.ts +0 -155
- package/src/adapters/bun/server-adapter.js +0 -368
- package/src/adapters/bun/server-lifecycle.d.ts +0 -52
- package/src/adapters/bun/server-lifecycle.js +0 -120
- package/src/adapters/index.d.ts +0 -6
- package/src/adapters/index.js +0 -14
- package/src/adapters/node/create-app.d.ts +0 -21
- package/src/adapters/node/create-app.js +0 -143
- package/src/adapters/node/index.d.ts +0 -4
- package/src/adapters/node/index.js +0 -8
- package/src/adapters/node/node-client-bridge.d.ts +0 -26
- package/src/adapters/node/node-client-bridge.js +0 -66
- package/src/adapters/node/node-hmr-manager.d.ts +0 -63
- package/src/adapters/node/node-hmr-manager.js +0 -237
- package/src/adapters/node/server-adapter.d.ts +0 -190
- package/src/adapters/node/server-adapter.js +0 -420
- package/src/adapters/node/static-content-server.d.ts +0 -24
- package/src/adapters/node/static-content-server.js +0 -166
- package/src/adapters/shared/api-response.d.ts +0 -52
- package/src/adapters/shared/api-response.js +0 -96
- package/src/adapters/shared/application-adapter.d.ts +0 -18
- package/src/adapters/shared/application-adapter.js +0 -90
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +0 -38
- package/src/adapters/shared/explicit-static-route-matcher.js +0 -100
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +0 -65
- package/src/adapters/shared/file-route-middleware-pipeline.js +0 -98
- package/src/adapters/shared/fs-server-response-factory.d.ts +0 -19
- package/src/adapters/shared/fs-server-response-factory.js +0 -97
- package/src/adapters/shared/fs-server-response-matcher.d.ts +0 -71
- package/src/adapters/shared/fs-server-response-matcher.js +0 -155
- package/src/adapters/shared/render-context.d.ts +0 -14
- package/src/adapters/shared/render-context.js +0 -69
- package/src/adapters/shared/server-adapter.d.ts +0 -87
- package/src/adapters/shared/server-adapter.js +0 -353
- package/src/adapters/shared/server-route-handler.d.ts +0 -89
- package/src/adapters/shared/server-route-handler.js +0 -120
- package/src/adapters/shared/server-static-builder.d.ts +0 -38
- package/src/adapters/shared/server-static-builder.js +0 -46
- package/src/build/build-adapter.d.ts +0 -74
- package/src/build/build-adapter.js +0 -54
- package/src/build/build-types.d.ts +0 -57
- package/src/build/build-types.js +0 -0
- package/src/build/esbuild-build-adapter.d.ts +0 -69
- package/src/build/esbuild-build-adapter.js +0 -390
- package/src/config/config-builder.d.ts +0 -227
- package/src/config/config-builder.js +0 -392
- package/src/constants.d.ts +0 -32
- package/src/constants.js +0 -21
- package/src/create-app.d.ts +0 -17
- package/src/create-app.js +0 -66
- package/src/define-api-handler.d.ts +0 -25
- package/src/define-api-handler.js +0 -15
- package/src/dev/sc-server.d.ts +0 -30
- package/src/dev/sc-server.js +0 -111
- package/src/eco/component-render-context.d.ts +0 -105
- package/src/eco/component-render-context.js +0 -77
- package/src/eco/eco.d.ts +0 -9
- package/src/eco/eco.js +0 -110
- package/src/eco/eco.types.d.ts +0 -170
- package/src/eco/eco.types.js +0 -0
- package/src/eco/eco.utils.d.ts +0 -40
- package/src/eco/eco.utils.js +0 -40
- package/src/eco/global-injector-map.d.ts +0 -16
- package/src/eco/global-injector-map.js +0 -80
- package/src/eco/lazy-injector-map.d.ts +0 -8
- package/src/eco/lazy-injector-map.js +0 -70
- package/src/eco/module-dependencies.d.ts +0 -18
- package/src/eco/module-dependencies.js +0 -49
- package/src/errors/http-error.d.ts +0 -31
- package/src/errors/http-error.js +0 -50
- package/src/errors/index.d.ts +0 -2
- package/src/errors/index.js +0 -4
- package/src/errors/locals-access-error.d.ts +0 -4
- package/src/errors/locals-access-error.js +0 -9
- package/src/global/app-logger.d.ts +0 -2
- package/src/global/app-logger.js +0 -6
- package/src/hmr/client/hmr-runtime.d.ts +0 -10
- package/src/hmr/client/hmr-runtime.js +0 -86
- package/src/hmr/hmr-strategy.d.ts +0 -159
- package/src/hmr/hmr-strategy.js +0 -29
- package/src/hmr/hmr.test.e2e.d.ts +0 -1
- package/src/hmr/hmr.test.e2e.js +0 -50
- package/src/hmr/strategies/default-hmr-strategy.d.ts +0 -43
- package/src/hmr/strategies/default-hmr-strategy.js +0 -34
- package/src/hmr/strategies/js-hmr-strategy.d.ts +0 -136
- package/src/hmr/strategies/js-hmr-strategy.js +0 -188
- package/src/index.browser.d.ts +0 -3
- package/src/index.browser.js +0 -4
- package/src/index.d.ts +0 -5
- package/src/index.js +0 -10
- package/src/integrations/ghtml/ghtml-renderer.d.ts +0 -15
- package/src/integrations/ghtml/ghtml-renderer.js +0 -60
- package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -20
- package/src/integrations/ghtml/ghtml.plugin.js +0 -21
- package/src/internal-types.d.ts +0 -200
- package/src/internal-types.js +0 -0
- package/src/plugins/alias-resolver-plugin.d.ts +0 -2
- package/src/plugins/alias-resolver-plugin.js +0 -39
- package/src/plugins/eco-component-meta-plugin.d.ts +0 -95
- package/src/plugins/eco-component-meta-plugin.js +0 -157
- package/src/plugins/integration-plugin.d.ts +0 -102
- package/src/plugins/integration-plugin.js +0 -100
- package/src/plugins/processor.d.ts +0 -82
- package/src/plugins/processor.js +0 -122
- package/src/public-types.d.ts +0 -1098
- package/src/public-types.js +0 -0
- 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.d.ts +0 -42
- package/src/route-renderer/component-graph.js +0 -72
- package/src/route-renderer/component-marker.d.ts +0 -52
- package/src/route-renderer/component-marker.js +0 -46
- package/src/route-renderer/dependency-resolver.d.ts +0 -24
- package/src/route-renderer/dependency-resolver.js +0 -428
- 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/marker-graph-resolver.d.ts +0 -76
- package/src/route-renderer/marker-graph-resolver.js +0 -93
- package/src/route-renderer/page-module-loader.d.ts +0 -61
- package/src/route-renderer/page-module-loader.js +0 -102
- 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-preparation.service.d.ts +0 -112
- package/src/route-renderer/render-preparation.service.js +0 -243
- package/src/route-renderer/route-renderer.d.ts +0 -26
- package/src/route-renderer/route-renderer.js +0 -68
- package/src/router/fs-router-scanner.d.ts +0 -41
- package/src/router/fs-router-scanner.js +0 -155
- package/src/router/fs-router.d.ts +0 -26
- package/src/router/fs-router.js +0 -100
- package/src/services/asset-processing-service/asset-processing.service.d.ts +0 -41
- package/src/services/asset-processing-service/asset-processing.service.js +0 -250
- package/src/services/asset-processing-service/asset.factory.d.ts +0 -17
- package/src/services/asset-processing-service/asset.factory.js +0 -82
- package/src/services/asset-processing-service/assets.types.d.ts +0 -88
- package/src/services/asset-processing-service/assets.types.js +0 -0
- 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/processor.interface.d.ts +0 -22
- package/src/services/asset-processing-service/processor.interface.js +0 -6
- package/src/services/asset-processing-service/processor.registry.d.ts +0 -8
- package/src/services/asset-processing-service/processor.registry.js +0 -15
- package/src/services/asset-processing-service/processors/base/base-processor.d.ts +0 -24
- package/src/services/asset-processing-service/processors/base/base-processor.js +0 -59
- 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/index.d.ts +0 -5
- package/src/services/asset-processing-service/processors/index.js +0 -5
- package/src/services/asset-processing-service/processors/script/content-script.processor.d.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/file-script.processor.d.ts +0 -8
- package/src/services/asset-processing-service/processors/script/file-script.processor.js +0 -76
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -7
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.js +0 -74
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -5
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -25
- package/src/services/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -9
- package/src/services/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +0 -63
- package/src/services/cache/cache.types.d.ts +0 -107
- package/src/services/cache/cache.types.js +0 -0
- package/src/services/cache/index.d.ts +0 -7
- package/src/services/cache/index.js +0 -7
- package/src/services/cache/memory-cache-store.d.ts +0 -42
- package/src/services/cache/memory-cache-store.js +0 -98
- package/src/services/cache/page-cache-service.d.ts +0 -70
- package/src/services/cache/page-cache-service.js +0 -152
- 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.d.ts +0 -75
- package/src/services/page-request-cache-coordinator.service.js +0 -107
- package/src/services/schema-validation-service.d.ts +0 -122
- package/src/services/schema-validation-service.js +0 -101
- package/src/services/validation/standard-schema.types.d.ts +0 -65
- package/src/services/validation/standard-schema.types.js +0 -0
- package/src/static-site-generator/static-site-generator.d.ts +0 -57
- package/src/static-site-generator/static-site-generator.js +0 -272
- package/src/utils/css.d.ts +0 -1
- package/src/utils/css.js +0 -7
- package/src/utils/deep-merge.d.ts +0 -14
- package/src/utils/deep-merge.js +0 -32
- package/src/utils/hash.d.ts +0 -1
- package/src/utils/hash.js +0 -7
- package/src/utils/html.d.ts +0 -1
- package/src/utils/html.js +0 -4
- package/src/utils/invariant.d.ts +0 -5
- package/src/utils/invariant.js +0 -11
- package/src/utils/locals-utils.d.ts +0 -15
- package/src/utils/locals-utils.js +0 -24
- package/src/utils/parse-cli-args.d.ts +0 -24
- package/src/utils/parse-cli-args.js +0 -47
- package/src/utils/path-utils.module.d.ts +0 -5
- package/src/utils/path-utils.module.js +0 -14
- package/src/utils/runtime.d.ts +0 -11
- package/src/utils/runtime.js +0 -40
- package/src/utils/server-utils.module.d.ts +0 -19
- package/src/utils/server-utils.module.js +0 -56
- package/src/watchers/project-watcher.d.ts +0 -125
- package/src/watchers/project-watcher.js +0 -265
- package/src/watchers/project-watcher.test-helpers.d.ts +0 -4
- package/src/watchers/project-watcher.test-helpers.js +0 -52
- /package/src/route-renderer/{component-graph-executor.ts → component-graph/component-graph-executor.ts} +0 -0
- /package/src/route-renderer/{component-graph.ts → component-graph/component-graph.ts} +0 -0
- /package/src/route-renderer/{component-marker.ts → component-graph/component-marker.ts} +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.ts +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/index.ts +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.ts +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.ts +0 -0
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.6",
|
|
4
4
|
"description": "Core package for Ecopages",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ecopages",
|
|
@@ -8,16 +8,23 @@
|
|
|
8
8
|
"ssg"
|
|
9
9
|
],
|
|
10
10
|
"license": "MIT",
|
|
11
|
-
"main": "./src/index.
|
|
11
|
+
"main": "./src/index.ts",
|
|
12
12
|
"type": "module",
|
|
13
|
+
"files": [
|
|
14
|
+
"src"
|
|
15
|
+
],
|
|
13
16
|
"sideEffects": false,
|
|
14
17
|
"repository": {
|
|
15
18
|
"type": "git",
|
|
16
19
|
"url": "https://github.com/ecopages/ecopages.git",
|
|
17
20
|
"directory": "packages/core"
|
|
18
21
|
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"typecheck": "bunx tsc --noEmit",
|
|
24
|
+
"release:jsr": "bunx jsr publish"
|
|
25
|
+
},
|
|
19
26
|
"dependencies": {
|
|
20
|
-
"@ecopages/file-system": "
|
|
27
|
+
"@ecopages/file-system": "workspace:*",
|
|
21
28
|
"@ecopages/logger": "latest",
|
|
22
29
|
"@ecopages/scripts-injector": "^0.1.3",
|
|
23
30
|
"@worker-tools/html-rewriter": "0.1.0-pre.19",
|
|
@@ -27,28 +34,49 @@
|
|
|
27
34
|
"oxc-parser": "^0.110.0",
|
|
28
35
|
"ws": "^8.18.0"
|
|
29
36
|
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/bun": "latest",
|
|
39
|
+
"@types/ws": "^8.5.14",
|
|
40
|
+
"arktype": "^2.1.29",
|
|
41
|
+
"tailwindcss": "^3.4.19",
|
|
42
|
+
"tsx": "^4.20.5",
|
|
43
|
+
"valibot": "^1.2.0",
|
|
44
|
+
"zod": "^4.3.6"
|
|
45
|
+
},
|
|
30
46
|
"exports": {
|
|
31
47
|
".": {
|
|
32
|
-
"browser": "./src/index.browser.
|
|
33
|
-
"import": "./src/index.
|
|
34
|
-
"
|
|
35
|
-
"
|
|
48
|
+
"browser": "./src/index.browser.ts",
|
|
49
|
+
"import": "./src/index.ts",
|
|
50
|
+
"require": "./src/index.ts",
|
|
51
|
+
"types": "./src/index.ts"
|
|
36
52
|
},
|
|
37
53
|
"./create-app": {
|
|
38
|
-
"types": "./src/create-app.
|
|
39
|
-
"default": "./src/create-app.
|
|
54
|
+
"types": "./src/create-app.ts",
|
|
55
|
+
"default": "./src/create-app.ts"
|
|
40
56
|
},
|
|
41
57
|
"./route-renderer/integration-renderer": {
|
|
42
|
-
"types": "./src/route-renderer/integration-renderer.
|
|
43
|
-
"default": "./src/route-renderer/integration-renderer.
|
|
58
|
+
"types": "./src/route-renderer/orchestration/integration-renderer.ts",
|
|
59
|
+
"default": "./src/route-renderer/orchestration/integration-renderer.ts"
|
|
60
|
+
},
|
|
61
|
+
"./router/navigation-coordinator": {
|
|
62
|
+
"types": "./src/router/client/navigation-coordinator.ts",
|
|
63
|
+
"default": "./src/router/client/navigation-coordinator.ts"
|
|
64
|
+
},
|
|
65
|
+
"./router/link-intent": {
|
|
66
|
+
"types": "./src/router/client/link-intent.ts",
|
|
67
|
+
"default": "./src/router/client/link-intent.ts"
|
|
68
|
+
},
|
|
69
|
+
"./router/client/navigation-coordinator": {
|
|
70
|
+
"types": "./src/router/client/navigation-coordinator.ts",
|
|
71
|
+
"default": "./src/router/client/navigation-coordinator.ts"
|
|
44
72
|
},
|
|
45
73
|
"./errors/locals-access-error": {
|
|
46
|
-
"types": "./src/errors/locals-access-error.
|
|
47
|
-
"default": "./src/errors/locals-access-error.
|
|
74
|
+
"types": "./src/errors/locals-access-error.ts",
|
|
75
|
+
"default": "./src/errors/locals-access-error.ts"
|
|
48
76
|
},
|
|
49
77
|
"./eco": {
|
|
50
|
-
"types": "./src/eco/eco.
|
|
51
|
-
"default": "./src/eco/eco.
|
|
78
|
+
"types": "./src/eco/eco.ts",
|
|
79
|
+
"default": "./src/eco/eco.ts"
|
|
52
80
|
},
|
|
53
81
|
"./declarations": {
|
|
54
82
|
"types": "./src/declarations.d.ts"
|
|
@@ -57,223 +85,107 @@
|
|
|
57
85
|
"types": "./src/env.d.ts"
|
|
58
86
|
},
|
|
59
87
|
"./config-builder": {
|
|
60
|
-
"types": "./src/config/config-builder.
|
|
61
|
-
"default": "./src/config/config-builder.
|
|
88
|
+
"types": "./src/config/config-builder.ts",
|
|
89
|
+
"default": "./src/config/config-builder.ts"
|
|
62
90
|
},
|
|
63
91
|
"./constants": {
|
|
64
|
-
"types": "./src/constants.
|
|
65
|
-
"default": "./src/constants.
|
|
92
|
+
"types": "./src/constants.ts",
|
|
93
|
+
"default": "./src/constants.ts"
|
|
66
94
|
},
|
|
67
95
|
"./bun": {
|
|
68
|
-
"types": "./src/adapters/bun/index.
|
|
69
|
-
"default": "./src/adapters/bun/index.
|
|
96
|
+
"types": "./src/adapters/bun/index.ts",
|
|
97
|
+
"default": "./src/adapters/bun/index.ts"
|
|
70
98
|
},
|
|
71
99
|
"./bun/create-app": {
|
|
72
|
-
"types": "./src/adapters/bun/create-app.
|
|
73
|
-
"default": "./src/adapters/bun/create-app.
|
|
100
|
+
"types": "./src/adapters/bun/create-app.ts",
|
|
101
|
+
"default": "./src/adapters/bun/create-app.ts"
|
|
74
102
|
},
|
|
75
103
|
"./bun/define-api-handler": {
|
|
76
|
-
"types": "./src/adapters/bun/define-api-handler.
|
|
77
|
-
"default": "./src/adapters/bun/define-api-handler.
|
|
104
|
+
"types": "./src/adapters/bun/define-api-handler.ts",
|
|
105
|
+
"default": "./src/adapters/bun/define-api-handler.ts"
|
|
78
106
|
},
|
|
79
107
|
"./hmr/hmr-strategy": {
|
|
80
|
-
"types": "./src/hmr/hmr-strategy.
|
|
81
|
-
"default": "./src/hmr/hmr-strategy.
|
|
108
|
+
"types": "./src/hmr/hmr-strategy.ts",
|
|
109
|
+
"default": "./src/hmr/hmr-strategy.ts"
|
|
82
110
|
},
|
|
83
111
|
"./internal-types": {
|
|
84
|
-
"types": "./src/internal-types.
|
|
112
|
+
"types": "./src/internal-types.ts"
|
|
85
113
|
},
|
|
86
114
|
"./services/asset-processing-service": {
|
|
87
|
-
"types": "./src/services/asset-processing-service/index.
|
|
88
|
-
"default": "./src/services/asset-processing-service/index.
|
|
115
|
+
"types": "./src/services/assets/asset-processing-service/index.ts",
|
|
116
|
+
"default": "./src/services/assets/asset-processing-service/index.ts"
|
|
89
117
|
},
|
|
90
118
|
"./utils/deep-merge": {
|
|
91
|
-
"types": "./src/utils/deep-merge.
|
|
92
|
-
"default": "./src/utils/deep-merge.
|
|
119
|
+
"types": "./src/utils/deep-merge.ts",
|
|
120
|
+
"default": "./src/utils/deep-merge.ts"
|
|
93
121
|
},
|
|
94
122
|
"./utils/invariant": {
|
|
95
|
-
"types": "./src/utils/invariant.
|
|
96
|
-
"default": "./src/utils/invariant.
|
|
123
|
+
"types": "./src/utils/invariant.ts",
|
|
124
|
+
"default": "./src/utils/invariant.ts"
|
|
97
125
|
},
|
|
98
126
|
"./utils/parse-cli-args": {
|
|
99
|
-
"types": "./src/utils/parse-cli-args.
|
|
100
|
-
"default": "./src/utils/parse-cli-args.
|
|
127
|
+
"types": "./src/utils/parse-cli-args.ts",
|
|
128
|
+
"default": "./src/utils/parse-cli-args.ts"
|
|
101
129
|
},
|
|
102
130
|
"./plugins/processor": {
|
|
103
|
-
"types": "./src/plugins/processor.
|
|
104
|
-
"default": "./src/plugins/processor.
|
|
131
|
+
"types": "./src/plugins/processor.ts",
|
|
132
|
+
"default": "./src/plugins/processor.ts"
|
|
105
133
|
},
|
|
106
134
|
"./plugins/integration-plugin": {
|
|
107
|
-
"types": "./src/plugins/integration-plugin.
|
|
108
|
-
"default": "./src/plugins/integration-plugin.
|
|
135
|
+
"types": "./src/plugins/integration-plugin.ts",
|
|
136
|
+
"default": "./src/plugins/integration-plugin.ts"
|
|
109
137
|
},
|
|
110
138
|
"./build/build-types": {
|
|
111
|
-
"types": "./src/build/build-types.
|
|
112
|
-
"default": "./src/build/build-types.
|
|
139
|
+
"types": "./src/build/build-types.ts",
|
|
140
|
+
"default": "./src/build/build-types.ts"
|
|
113
141
|
},
|
|
114
142
|
"./build/build-adapter": {
|
|
115
|
-
"types": "./src/build/build-adapter.
|
|
116
|
-
"default": "./src/build/build-adapter.
|
|
143
|
+
"types": "./src/build/build-adapter.ts",
|
|
144
|
+
"default": "./src/build/build-adapter.ts"
|
|
145
|
+
},
|
|
146
|
+
"./build/runtime-specifier-alias-plugin": {
|
|
147
|
+
"types": "./src/build/runtime-specifier-alias-plugin.ts",
|
|
148
|
+
"default": "./src/build/runtime-specifier-alias-plugin.ts"
|
|
117
149
|
},
|
|
118
150
|
"./adapters/bun/client-bridge": {
|
|
119
|
-
"types": "./src/adapters/bun/client-bridge.
|
|
120
|
-
"default": "./src/adapters/bun/client-bridge.
|
|
151
|
+
"types": "./src/adapters/bun/client-bridge.ts",
|
|
152
|
+
"default": "./src/adapters/bun/client-bridge.ts"
|
|
121
153
|
},
|
|
122
154
|
"./node": {
|
|
123
|
-
"types": "./src/adapters/node/index.
|
|
124
|
-
"default": "./src/adapters/node/index.
|
|
155
|
+
"types": "./src/adapters/node/index.ts",
|
|
156
|
+
"default": "./src/adapters/node/index.ts"
|
|
125
157
|
},
|
|
126
158
|
"./node/server-adapter": {
|
|
127
|
-
"types": "./src/adapters/node/server-adapter.
|
|
128
|
-
"default": "./src/adapters/node/server-adapter.
|
|
159
|
+
"types": "./src/adapters/node/server-adapter.ts",
|
|
160
|
+
"default": "./src/adapters/node/server-adapter.ts"
|
|
129
161
|
},
|
|
130
162
|
"./node/create-app": {
|
|
131
|
-
"types": "./src/adapters/node/create-app.
|
|
132
|
-
"default": "./src/adapters/node/create-app.
|
|
163
|
+
"types": "./src/adapters/node/create-app.ts",
|
|
164
|
+
"default": "./src/adapters/node/create-app.ts"
|
|
165
|
+
},
|
|
166
|
+
"./node/runtime-adapter": {
|
|
167
|
+
"types": "./src/adapters/node/runtime-adapter.ts",
|
|
168
|
+
"default": "./src/adapters/node/runtime-adapter.ts"
|
|
133
169
|
},
|
|
134
170
|
"./html": {
|
|
135
|
-
"import": "./src/utils/html.
|
|
136
|
-
"
|
|
137
|
-
"types": "./src/utils/html.d.ts"
|
|
171
|
+
"import": "./src/utils/html.ts",
|
|
172
|
+
"require": "./src/utils/html.ts"
|
|
138
173
|
},
|
|
139
174
|
"./css": {
|
|
140
|
-
"import": "./src/utils/css.
|
|
141
|
-
"
|
|
142
|
-
"types": "./src/utils/css.d.ts"
|
|
175
|
+
"import": "./src/utils/css.ts",
|
|
176
|
+
"require": "./src/utils/css.ts"
|
|
143
177
|
},
|
|
144
178
|
"./hash": {
|
|
145
|
-
"import": "./src/utils/hash.
|
|
146
|
-
"
|
|
147
|
-
"types": "./src/utils/hash.d.ts"
|
|
179
|
+
"import": "./src/utils/hash.ts",
|
|
180
|
+
"require": "./src/utils/hash.ts"
|
|
148
181
|
},
|
|
149
182
|
"./errors": {
|
|
150
|
-
"types": "./src/errors/index.
|
|
151
|
-
"default": "./src/errors/index.
|
|
183
|
+
"types": "./src/errors/index.ts",
|
|
184
|
+
"default": "./src/errors/index.ts"
|
|
152
185
|
},
|
|
153
186
|
"./integrations/ghtml": {
|
|
154
|
-
"types": "./src/integrations/ghtml/ghtml.plugin.
|
|
155
|
-
"default": "./src/integrations/ghtml/ghtml.plugin.
|
|
156
|
-
},
|
|
157
|
-
"./create-app.ts": {
|
|
158
|
-
"types": "./src/create-app.d.ts",
|
|
159
|
-
"default": "./src/create-app.js"
|
|
160
|
-
},
|
|
161
|
-
"./route-renderer/integration-renderer.ts": {
|
|
162
|
-
"types": "./src/route-renderer/integration-renderer.d.ts",
|
|
163
|
-
"default": "./src/route-renderer/integration-renderer.js"
|
|
164
|
-
},
|
|
165
|
-
"./errors/locals-access-error.ts": {
|
|
166
|
-
"types": "./src/errors/locals-access-error.d.ts",
|
|
167
|
-
"default": "./src/errors/locals-access-error.js"
|
|
168
|
-
},
|
|
169
|
-
"./eco.ts": {
|
|
170
|
-
"types": "./src/eco/eco.d.ts",
|
|
171
|
-
"default": "./src/eco/eco.js"
|
|
172
|
-
},
|
|
173
|
-
"./declarations.ts": {
|
|
174
|
-
"types": "./src/declarations.d.ts"
|
|
175
|
-
},
|
|
176
|
-
"./env.ts": {
|
|
177
|
-
"types": "./src/env.d.ts"
|
|
178
|
-
},
|
|
179
|
-
"./config-builder.ts": {
|
|
180
|
-
"types": "./src/config/config-builder.d.ts",
|
|
181
|
-
"default": "./src/config/config-builder.js"
|
|
182
|
-
},
|
|
183
|
-
"./constants.ts": {
|
|
184
|
-
"types": "./src/constants.d.ts",
|
|
185
|
-
"default": "./src/constants.js"
|
|
186
|
-
},
|
|
187
|
-
"./bun.ts": {
|
|
188
|
-
"types": "./src/adapters/bun/index.d.ts",
|
|
189
|
-
"default": "./src/adapters/bun/index.js"
|
|
190
|
-
},
|
|
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
|
-
"./hmr/hmr-strategy.ts": {
|
|
200
|
-
"types": "./src/hmr/hmr-strategy.d.ts",
|
|
201
|
-
"default": "./src/hmr/hmr-strategy.js"
|
|
202
|
-
},
|
|
203
|
-
"./internal-types.ts": {
|
|
204
|
-
"types": "./src/internal-types.d.ts"
|
|
205
|
-
},
|
|
206
|
-
"./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"
|
|
221
|
-
},
|
|
222
|
-
"./plugins/processor.ts": {
|
|
223
|
-
"types": "./src/plugins/processor.d.ts",
|
|
224
|
-
"default": "./src/plugins/processor.js"
|
|
225
|
-
},
|
|
226
|
-
"./plugins/integration-plugin.ts": {
|
|
227
|
-
"types": "./src/plugins/integration-plugin.d.ts",
|
|
228
|
-
"default": "./src/plugins/integration-plugin.js"
|
|
229
|
-
},
|
|
230
|
-
"./build/build-types.ts": {
|
|
231
|
-
"types": "./src/build/build-types.d.ts",
|
|
232
|
-
"default": "./src/build/build-types.js"
|
|
233
|
-
},
|
|
234
|
-
"./build/build-adapter.ts": {
|
|
235
|
-
"types": "./src/build/build-adapter.d.ts",
|
|
236
|
-
"default": "./src/build/build-adapter.js"
|
|
237
|
-
},
|
|
238
|
-
"./adapters/bun/client-bridge.ts": {
|
|
239
|
-
"types": "./src/adapters/bun/client-bridge.d.ts",
|
|
240
|
-
"default": "./src/adapters/bun/client-bridge.js"
|
|
241
|
-
},
|
|
242
|
-
"./node.ts": {
|
|
243
|
-
"types": "./src/adapters/node/index.d.ts",
|
|
244
|
-
"default": "./src/adapters/node/index.js"
|
|
245
|
-
},
|
|
246
|
-
"./node/server-adapter.ts": {
|
|
247
|
-
"types": "./src/adapters/node/server-adapter.d.ts",
|
|
248
|
-
"default": "./src/adapters/node/server-adapter.js"
|
|
249
|
-
},
|
|
250
|
-
"./node/create-app.ts": {
|
|
251
|
-
"types": "./src/adapters/node/create-app.d.ts",
|
|
252
|
-
"default": "./src/adapters/node/create-app.js"
|
|
253
|
-
},
|
|
254
|
-
"./html.ts": {
|
|
255
|
-
"import": "./src/utils/html.js",
|
|
256
|
-
"default": "./src/utils/html.js",
|
|
257
|
-
"types": "./src/utils/html.d.ts"
|
|
258
|
-
},
|
|
259
|
-
"./css.ts": {
|
|
260
|
-
"import": "./src/utils/css.js",
|
|
261
|
-
"default": "./src/utils/css.js",
|
|
262
|
-
"types": "./src/utils/css.d.ts"
|
|
263
|
-
},
|
|
264
|
-
"./hash.ts": {
|
|
265
|
-
"import": "./src/utils/hash.js",
|
|
266
|
-
"default": "./src/utils/hash.js",
|
|
267
|
-
"types": "./src/utils/hash.d.ts"
|
|
268
|
-
},
|
|
269
|
-
"./errors.ts": {
|
|
270
|
-
"types": "./src/errors/index.d.ts",
|
|
271
|
-
"default": "./src/errors/index.js"
|
|
272
|
-
},
|
|
273
|
-
"./integrations/ghtml.ts": {
|
|
274
|
-
"types": "./src/integrations/ghtml/ghtml.plugin.d.ts",
|
|
275
|
-
"default": "./src/integrations/ghtml/ghtml.plugin.js"
|
|
187
|
+
"types": "./src/integrations/ghtml/ghtml.plugin.ts",
|
|
188
|
+
"default": "./src/integrations/ghtml/ghtml.plugin.ts"
|
|
276
189
|
}
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
@@ -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
|