@ecopages/core 0.2.0-alpha.1 → 0.2.0-alpha.11
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 +16 -64
- package/README.md +210 -13
- package/package.json +88 -62
- package/src/adapters/README.md +39 -0
- package/src/adapters/abstract/application-adapter.d.ts +28 -2
- package/src/adapters/abstract/application-adapter.js +14 -2
- package/src/adapters/abstract/router-adapter.d.ts +1 -1
- package/src/adapters/abstract/server-adapter.d.ts +2 -2
- package/src/adapters/bun/client-bridge.d.ts +1 -1
- package/src/adapters/bun/create-app.d.ts +4 -12
- package/src/adapters/bun/create-app.js +4 -5
- package/src/adapters/bun/hmr-manager.d.ts +80 -21
- package/src/adapters/bun/hmr-manager.js +163 -56
- package/src/adapters/bun/index.d.ts +2 -3
- package/src/adapters/bun/index.js +3 -3
- package/src/adapters/bun/server-adapter.d.ts +5 -5
- package/src/adapters/bun/server-adapter.js +40 -34
- package/src/adapters/bun/server-lifecycle.d.ts +28 -17
- package/src/adapters/bun/server-lifecycle.js +34 -62
- package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
- package/src/{create-app.js → adapters/create-app.js} +4 -4
- package/src/adapters/index.d.ts +2 -6
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +6 -9
- package/src/adapters/node/create-app.js +12 -6
- package/src/adapters/node/node-client-bridge.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.d.ts +89 -18
- package/src/adapters/node/node-hmr-manager.js +180 -89
- package/src/adapters/node/server-adapter.d.ts +4 -33
- package/src/adapters/node/server-adapter.js +39 -100
- package/src/adapters/node/static-content-server.d.ts +37 -1
- package/src/adapters/node/static-content-server.js +29 -1
- package/src/adapters/shared/application-adapter.d.ts +1 -1
- package/src/{define-api-handler.d.ts → adapters/shared/define-api-handler.d.ts} +1 -1
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +2 -2
- package/src/adapters/shared/explicit-static-route-matcher.js +4 -1
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +1 -1
- package/src/adapters/shared/file-route-middleware-pipeline.js +1 -0
- package/src/adapters/shared/fs-server-response-factory.d.ts +2 -2
- package/src/adapters/shared/fs-server-response-factory.js +1 -1
- 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.d.ts +2 -1
- package/src/adapters/shared/render-context.js +6 -3
- package/src/adapters/shared/runtime-bootstrap.d.ts +38 -0
- package/src/adapters/shared/runtime-bootstrap.js +43 -0
- package/src/adapters/shared/server-adapter.d.ts +13 -3
- package/src/adapters/shared/server-adapter.js +42 -5
- package/src/adapters/shared/server-route-handler.d.ts +4 -4
- package/src/adapters/shared/server-route-handler.js +6 -15
- package/src/adapters/shared/server-static-builder.d.ts +38 -6
- package/src/adapters/shared/server-static-builder.js +64 -10
- package/src/build/README.md +107 -0
- package/src/build/build-adapter.d.ts +160 -3
- package/src/build/build-adapter.js +494 -16
- package/src/build/build-manifest.d.ts +27 -0
- package/src/build/build-manifest.js +30 -0
- package/src/build/dev-build-coordinator.d.ts +72 -0
- package/src/build/dev-build-coordinator.js +154 -0
- package/src/build/esbuild-build-adapter.d.ts +15 -6
- package/src/build/esbuild-build-adapter.js +189 -74
- package/src/build/runtime-build-executor.d.ts +14 -0
- package/src/build/runtime-build-executor.js +22 -0
- package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
- package/src/build/runtime-specifier-alias-plugin.js +35 -0
- package/src/build/runtime-specifier-aliases.d.ts +5 -0
- package/src/build/runtime-specifier-aliases.js +95 -0
- package/src/config/README.md +36 -0
- package/src/config/config-builder.d.ts +52 -18
- package/src/config/config-builder.js +258 -48
- package/src/{constants.d.ts → config/constants.d.ts} +13 -0
- package/src/{constants.js → config/constants.js} +4 -0
- package/src/declarations.d.ts +19 -14
- package/src/dev/sc-server.d.ts +1 -1
- package/src/dev/sc-server.js +1 -1
- package/src/eco/README.md +70 -16
- package/src/eco/component-render-context.d.ts +2 -2
- package/src/eco/component-render-context.js +33 -16
- package/src/eco/eco.browser.d.ts +2 -0
- package/src/eco/eco.browser.js +83 -0
- package/src/eco/eco.js +91 -16
- package/src/eco/eco.types.d.ts +12 -4
- package/src/eco/eco.utils.d.ts +1 -1
- package/src/eco/global-injector-map.d.ts +1 -1
- package/src/eco/lazy-injector-map.d.ts +1 -1
- package/src/hmr/README.md +26 -0
- package/src/hmr/client/hmr-runtime.d.ts +1 -6
- package/src/hmr/client/hmr-runtime.js +30 -7
- package/src/hmr/hmr-strategy.d.ts +8 -7
- package/src/hmr/hmr-strategy.js +22 -7
- package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
- package/src/hmr/hmr.postcss.test.e2e.js +31 -0
- package/src/hmr/hmr.test.e2e.js +26 -33
- package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
- package/src/hmr/strategies/default-hmr-strategy.js +1 -1
- package/src/hmr/strategies/js-hmr-strategy.d.ts +46 -43
- package/src/hmr/strategies/js-hmr-strategy.js +72 -73
- package/src/index.browser.d.ts +2 -2
- package/src/index.browser.js +1 -1
- package/src/index.d.ts +4 -3
- package/src/index.js +16 -5
- package/src/integrations/ghtml/ghtml-renderer.d.ts +2 -2
- package/src/integrations/ghtml/ghtml-renderer.js +3 -1
- package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -2
- package/src/integrations/ghtml/ghtml.plugin.js +2 -2
- package/src/plugins/README.md +35 -0
- package/src/plugins/alias-resolver-plugin.js +17 -3
- package/src/plugins/eco-component-meta-plugin.d.ts +14 -1
- package/src/plugins/eco-component-meta-plugin.js +27 -21
- package/src/plugins/integration-plugin.d.ts +48 -9
- package/src/plugins/integration-plugin.js +39 -2
- package/src/plugins/processor.d.ts +15 -2
- package/src/plugins/processor.js +16 -2
- package/src/plugins/runtime-capability.d.ts +9 -0
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/GRAPH.md +18 -22
- package/src/route-renderer/README.md +15 -26
- package/src/route-renderer/{component-graph-executor.d.ts → component-graph/component-graph-executor.d.ts} +3 -2
- package/src/route-renderer/{component-graph-executor.js → component-graph/component-graph-executor.js} +2 -3
- package/src/route-renderer/{component-graph.d.ts → component-graph/component-graph.d.ts} +13 -2
- package/src/route-renderer/{component-graph.js → component-graph/component-graph.js} +26 -4
- package/src/route-renderer/component-graph/component-reference.d.ts +11 -0
- package/src/route-renderer/component-graph/component-reference.js +39 -0
- package/src/route-renderer/{marker-graph-resolver.d.ts → component-graph/marker-graph-resolver.d.ts} +9 -6
- package/src/route-renderer/{marker-graph-resolver.js → component-graph/marker-graph-resolver.js} +36 -12
- package/src/route-renderer/{integration-renderer.d.ts → orchestration/integration-renderer.d.ts} +65 -13
- package/src/route-renderer/{integration-renderer.js → orchestration/integration-renderer.js} +206 -30
- package/src/route-renderer/{render-execution.service.d.ts → orchestration/render-execution.service.d.ts} +42 -6
- package/src/route-renderer/orchestration/render-execution.service.js +191 -0
- 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} +95 -5
- 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 +89 -0
- package/src/route-renderer/{page-module-loader.js → page-loading/page-module-loader.js} +38 -14
- package/src/route-renderer/route-renderer.d.ts +41 -4
- package/src/route-renderer/route-renderer.js +32 -3
- package/src/router/README.md +97 -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 +91 -10
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.js +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.d.ts +2 -1
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +55 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +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/assets/asset-processing-service/index.d.ts +5 -0
- package/src/services/assets/asset-processing-service/index.js +5 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.js +9 -4
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-script-processor.d.ts +5 -4
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-script-processor.js +15 -23
- package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
- package/src/services/assets/asset-processing-service/processors/index.js +5 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.js +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.d.ts +4 -3
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.js +16 -4
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.d.ts +3 -3
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.js +6 -5
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.js +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.js +5 -2
- 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 +68 -0
- package/src/services/html/html-transformer.service.d.ts +77 -0
- package/src/services/html/html-transformer.service.js +215 -0
- package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
- package/src/services/invalidation/development-invalidation.service.js +190 -0
- package/src/services/module-loading/app-module-loader.service.d.ts +25 -0
- package/src/services/module-loading/app-module-loader.service.js +31 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +24 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +109 -0
- package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
- package/src/services/module-loading/host-module-loader-registry.js +15 -0
- package/src/services/module-loading/module-loading-types.d.ts +2 -0
- package/src/services/module-loading/node-bootstrap-plugin.d.ts +22 -0
- package/src/services/module-loading/node-bootstrap-plugin.js +179 -0
- package/src/services/module-loading/page-module-import.service.d.ts +75 -0
- package/src/services/module-loading/page-module-import.service.js +161 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +72 -0
- package/src/services/module-loading/server-module-transpiler.service.js +64 -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 +55 -3
- package/src/static-site-generator/static-site-generator.js +86 -5
- package/src/{internal-types.d.ts → types/internal-types.d.ts} +53 -22
- package/src/types/internal-types.js +0 -0
- package/src/{public-types.d.ts → types/public-types.d.ts} +73 -17
- package/src/types/public-types.js +0 -0
- package/src/utils/locals-utils.d.ts +1 -1
- package/src/utils/parse-cli-args.d.ts +4 -1
- package/src/utils/parse-cli-args.js +16 -1
- package/src/utils/resolve-work-dir.d.ts +11 -0
- package/src/utils/resolve-work-dir.js +31 -0
- package/src/watchers/project-watcher.d.ts +40 -24
- package/src/watchers/project-watcher.js +105 -68
- package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
- 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.d.ts +0 -4
- package/src/adapters/node/index.js +0 -8
- package/src/adapters/node/index.ts +0 -9
- package/src/adapters/node/node-client-bridge.ts +0 -79
- package/src/adapters/node/node-hmr-manager.ts +0 -271
- package/src/adapters/node/server-adapter.ts +0 -561
- package/src/adapters/node/static-content-server.ts +0 -203
- package/src/adapters/shared/api-response.ts +0 -104
- package/src/adapters/shared/application-adapter.ts +0 -199
- package/src/adapters/shared/explicit-static-route-matcher.ts +0 -134
- package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -123
- package/src/adapters/shared/fs-server-response-factory.ts +0 -118
- package/src/adapters/shared/fs-server-response-matcher.ts +0 -198
- package/src/adapters/shared/render-context.ts +0 -105
- package/src/adapters/shared/server-adapter.ts +0 -442
- package/src/adapters/shared/server-route-handler.ts +0 -166
- package/src/adapters/shared/server-static-builder.ts +0 -82
- package/src/build/build-adapter.ts +0 -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.js +0 -91
- 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.d.ts +0 -3
- package/src/services/asset-processing-service/index.js +0 -3
- package/src/services/asset-processing-service/index.ts +0 -3
- package/src/services/asset-processing-service/processor.interface.ts +0 -27
- package/src/services/asset-processing-service/processor.registry.ts +0 -18
- package/src/services/asset-processing-service/processors/base/base-processor.ts +0 -76
- package/src/services/asset-processing-service/processors/base/base-script-processor.ts +0 -105
- package/src/services/asset-processing-service/processors/index.d.ts +0 -5
- package/src/services/asset-processing-service/processors/index.js +0 -5
- package/src/services/asset-processing-service/processors/index.ts +0 -5
- package/src/services/asset-processing-service/processors/script/content-script.processor.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.d.ts +0 -1
- package/src/utils/css.js +0 -7
- package/src/utils/css.ts +0 -5
- package/src/utils/deep-merge.ts +0 -47
- package/src/utils/hash.ts +0 -5
- package/src/utils/html.ts +0 -1
- package/src/utils/invariant.ts +0 -15
- package/src/utils/locals-utils.ts +0 -37
- package/src/utils/parse-cli-args.ts +0 -83
- package/src/utils/path-utils.module.ts +0 -14
- package/src/utils/runtime.ts +0 -44
- package/src/utils/server-utils.module.ts +0 -67
- package/src/watchers/project-watcher.test-helpers.ts +0 -40
- package/src/watchers/project-watcher.ts +0 -306
- /package/src/adapters/{bun → shared}/define-api-handler.js +0 -0
- /package/src/{internal-types.js → plugins/runtime-capability.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}/assets.types.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.js +0 -0
- /package/src/{public-types.js → services/module-loading/module-loading-types.js} +0 -0
- /package/src/services/{schema-validation-service.js → validation/schema-validation-service.js} +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { parseSync } from "oxc-parser";
|
|
2
|
+
const RUNTIME_SPECIFIER_ALIAS_MAP = /* @__PURE__ */ Symbol("ecopages.runtimeSpecifierAliasMap");
|
|
3
|
+
function attachRuntimeSpecifierAliasMap(plugin, specifierMap) {
|
|
4
|
+
plugin[RUNTIME_SPECIFIER_ALIAS_MAP] = specifierMap;
|
|
5
|
+
return plugin;
|
|
6
|
+
}
|
|
7
|
+
function getRuntimeSpecifierAliasMap(plugin) {
|
|
8
|
+
return plugin[RUNTIME_SPECIFIER_ALIAS_MAP];
|
|
9
|
+
}
|
|
10
|
+
function collectRuntimeSpecifierAliasMap(plugins) {
|
|
11
|
+
const merged = /* @__PURE__ */ new Map();
|
|
12
|
+
for (const plugin of plugins ?? []) {
|
|
13
|
+
const specifierMap = getRuntimeSpecifierAliasMap(plugin);
|
|
14
|
+
if (!specifierMap) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
for (const [specifier, mappedPath] of specifierMap.entries()) {
|
|
18
|
+
if (!merged.has(specifier)) {
|
|
19
|
+
merged.set(specifier, mappedPath);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return merged;
|
|
24
|
+
}
|
|
25
|
+
function rewriteRuntimeSpecifierAliases(code, specifierMap) {
|
|
26
|
+
if (specifierMap.size === 0) {
|
|
27
|
+
return code;
|
|
28
|
+
}
|
|
29
|
+
const edits = [];
|
|
30
|
+
try {
|
|
31
|
+
const result = parseSync("runtime-alias-output.js", code, {
|
|
32
|
+
sourceType: "module",
|
|
33
|
+
lang: "js"
|
|
34
|
+
});
|
|
35
|
+
const queueReplacement = (source) => {
|
|
36
|
+
if (typeof source.value !== "string") {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const mappedPath = specifierMap.get(source.value);
|
|
40
|
+
if (!mappedPath) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const quote = code[source.start] === "'" ? "'" : '"';
|
|
44
|
+
edits.push({
|
|
45
|
+
start: source.start,
|
|
46
|
+
end: source.end,
|
|
47
|
+
replacement: `${quote}${mappedPath}${quote}`
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const walk = (node) => {
|
|
51
|
+
if (!node || typeof node !== "object") {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (Array.isArray(node)) {
|
|
55
|
+
for (const child of node) {
|
|
56
|
+
walk(child);
|
|
57
|
+
}
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const candidate = node;
|
|
61
|
+
if (candidate.type === "ImportDeclaration" || candidate.type === "ExportNamedDeclaration" || candidate.type === "ExportAllDeclaration") {
|
|
62
|
+
if (candidate.source) {
|
|
63
|
+
queueReplacement(candidate.source);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (candidate.type === "ImportExpression") {
|
|
67
|
+
const importNode = candidate;
|
|
68
|
+
if (importNode.source?.type === "StringLiteral" || importNode.source?.type === "Literal") {
|
|
69
|
+
queueReplacement(importNode.source);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
for (const value of Object.values(candidate)) {
|
|
73
|
+
walk(value);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
walk(result.program);
|
|
77
|
+
} catch {
|
|
78
|
+
return code;
|
|
79
|
+
}
|
|
80
|
+
if (edits.length === 0) {
|
|
81
|
+
return code;
|
|
82
|
+
}
|
|
83
|
+
edits.sort((left, right) => right.start - left.start);
|
|
84
|
+
let rewritten = code;
|
|
85
|
+
for (const edit of edits) {
|
|
86
|
+
rewritten = rewritten.slice(0, edit.start) + edit.replacement + rewritten.slice(edit.end);
|
|
87
|
+
}
|
|
88
|
+
return rewritten;
|
|
89
|
+
}
|
|
90
|
+
export {
|
|
91
|
+
attachRuntimeSpecifierAliasMap,
|
|
92
|
+
collectRuntimeSpecifierAliasMap,
|
|
93
|
+
getRuntimeSpecifierAliasMap,
|
|
94
|
+
rewriteRuntimeSpecifierAliases
|
|
95
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Config Layer
|
|
2
|
+
|
|
3
|
+
This directory contains the app-configuration finalization path for Ecopages.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
The config layer answers one question:
|
|
8
|
+
|
|
9
|
+
How does one `eco.config.ts` become one stable, app-owned runtime/build configuration?
|
|
10
|
+
|
|
11
|
+
It is responsible for:
|
|
12
|
+
|
|
13
|
+
- validating integration, processor, and loader registration
|
|
14
|
+
- resolving semantic paths such as `html` and `404` templates
|
|
15
|
+
- selecting explicit build ownership and creating app-owned runtime state such as the build adapter, build executor, build manifest, dev graph service, runtime specifier registry, and remaining compatibility-only runtime state
|
|
16
|
+
- enforcing runtime capability requirements before startup
|
|
17
|
+
- carrying host-injected runtime dependencies only through abstract slots such as host module loaders, never through bundler-specific core defaults
|
|
18
|
+
|
|
19
|
+
## Main Files
|
|
20
|
+
|
|
21
|
+
- `config-builder.ts`: the primary builder and config finalization boundary
|
|
22
|
+
- `config-builder.test.ts`: coverage for validation, path resolution, and runtime capability checks
|
|
23
|
+
|
|
24
|
+
## Ownership Rules
|
|
25
|
+
|
|
26
|
+
- Integrations and processors declare contributions.
|
|
27
|
+
- `ConfigBuilder.build()` decides ordering, validates compatibility, and seals build ownership for the finalized app config.
|
|
28
|
+
- Runtime startup reuses finalized config/build state; it should not recompute manifest ownership.
|
|
29
|
+
|
|
30
|
+
Bun-native is the default ownership path. Vite-host ownership is explicit and should be selected during config construction when a host-driven compatibility flow must avoid silently falling back to Bun build execution.
|
|
31
|
+
|
|
32
|
+
## Output
|
|
33
|
+
|
|
34
|
+
The result of this layer is a built `EcoPagesAppConfig` with resolved absolute paths and app-owned runtime services attached under `appConfig.runtime`.
|
|
35
|
+
|
|
36
|
+
That built config is then consumed by server adapters, static generation, route rendering, and HMR.
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
* This module contains the ConfigBuilder class, which is used to build the EcoPagesAppConfig object.
|
|
3
3
|
* @module
|
|
4
4
|
*/
|
|
5
|
+
import { type BuildOwnership } from '../build/build-adapter.js';
|
|
5
6
|
import type { EcoBuildPlugin } from '../build/build-types.js';
|
|
6
|
-
import type { EcoPagesAppConfig,
|
|
7
|
+
import type { EcoPagesAppConfig, RobotsPreference } from '../types/internal-types.js';
|
|
7
8
|
import type { IntegrationPlugin } from '../plugins/integration-plugin.js';
|
|
8
9
|
import type { Processor } from '../plugins/processor.js';
|
|
9
|
-
import type {
|
|
10
|
+
import type { EcoSourceTransform } from '../plugins/source-transform.js';
|
|
11
|
+
import type { PageMetadataProps } from '../types/public-types.js';
|
|
10
12
|
import type { CacheConfig } from '../services/cache/cache.types.js';
|
|
11
13
|
export declare const CONFIG_BUILDER_ERRORS: {
|
|
12
14
|
readonly DUPLICATE_INTEGRATION_NAMES: "Integrations names must be unique";
|
|
@@ -14,7 +16,12 @@ export declare const CONFIG_BUILDER_ERRORS: {
|
|
|
14
16
|
readonly MIXED_JSX_ENGINES: "Both kitajs and react integrations are enabled. Use per-file JSX import source/pragma consistently (e.g. `/** @jsxImportSource react */` for React files and `/** @jsxImportSource @kitajs/html */` for Kita files).";
|
|
15
17
|
readonly duplicateProcessorName: (name: string) => string;
|
|
16
18
|
readonly duplicateLoaderName: (name: string) => string;
|
|
19
|
+
readonly duplicateSemanticTemplate: (kind: "html" | "404", matches: string[]) => string;
|
|
20
|
+
readonly incompatibleRuntimeCapability: (kind: "integration" | "processor", name: string, runtime: RuntimeKind, reason: string) => string;
|
|
21
|
+
readonly unsupportedRuntimeVersion: (kind: "integration" | "processor", name: string, runtime: RuntimeKind, current: string, min: string) => string;
|
|
22
|
+
readonly invalidRuntimeVersion: (kind: "integration" | "processor", name: string, version: string) => string;
|
|
17
23
|
};
|
|
24
|
+
type RuntimeKind = 'node' | 'bun';
|
|
18
25
|
/**
|
|
19
26
|
* A builder class for creating and configuring EcoPages application configuration.
|
|
20
27
|
* Provides a fluent interface for setting various configuration options and managing
|
|
@@ -46,6 +53,7 @@ export declare const CONFIG_BUILDER_ERRORS: {
|
|
|
46
53
|
* @throws {Error} When adding duplicate processors or loaders
|
|
47
54
|
*/
|
|
48
55
|
export declare class ConfigBuilder {
|
|
56
|
+
private buildOwnership;
|
|
49
57
|
config: EcoPagesAppConfig;
|
|
50
58
|
/**
|
|
51
59
|
* Sets the base URL for the application.
|
|
@@ -63,6 +71,15 @@ export declare class ConfigBuilder {
|
|
|
63
71
|
* @returns The ConfigBuilder instance for method chaining
|
|
64
72
|
*/
|
|
65
73
|
setRootDir(rootDir: string): this;
|
|
74
|
+
/**
|
|
75
|
+
* Sets which runtime path owns build execution for the finalized app config.
|
|
76
|
+
*
|
|
77
|
+
* @remarks
|
|
78
|
+
* Bun-native remains the default. Vite-host ownership should be selected only
|
|
79
|
+
* for host-driven compatibility flows where core must not silently fall back to
|
|
80
|
+
* Bun build execution.
|
|
81
|
+
*/
|
|
82
|
+
setBuildOwnership(buildOwnership: BuildOwnership): this;
|
|
66
83
|
/**
|
|
67
84
|
* Sets the source directory relative to the root directory.
|
|
68
85
|
* This directory contains all the source files for the application.
|
|
@@ -111,21 +128,6 @@ export declare class ConfigBuilder {
|
|
|
111
128
|
* @returns The ConfigBuilder instance for method chaining
|
|
112
129
|
*/
|
|
113
130
|
setPublicDir(publicDir: string): this;
|
|
114
|
-
/**
|
|
115
|
-
* Sets the templates used for includes.
|
|
116
|
-
* These templates are used to build the HTML structure of pages.
|
|
117
|
-
*
|
|
118
|
-
* @param includesTemplates - An object containing the template file names
|
|
119
|
-
* @returns The ConfigBuilder instance for method chaining
|
|
120
|
-
*/
|
|
121
|
-
setIncludesTemplates(includesTemplates: IncludesTemplates): this;
|
|
122
|
-
/**
|
|
123
|
-
* Sets the template file for the 404 error page.
|
|
124
|
-
*
|
|
125
|
-
* @param error404Template - The file name of the 404 error template (default: '404.ghtml.ts')
|
|
126
|
-
* @returns The ConfigBuilder instance for method chaining
|
|
127
|
-
*/
|
|
128
|
-
setError404Template(error404Template: string): this;
|
|
129
131
|
/**
|
|
130
132
|
* Sets the robots.txt configuration.
|
|
131
133
|
* This determines which paths are allowed/disallowed for search engines.
|
|
@@ -147,10 +149,22 @@ export declare class ConfigBuilder {
|
|
|
147
149
|
/**
|
|
148
150
|
* Sets the output directory for the built application.
|
|
149
151
|
*
|
|
150
|
-
* @param distDir - The distribution directory name (default: '
|
|
152
|
+
* @param distDir - The distribution directory name (default: 'dist')
|
|
151
153
|
* @returns The ConfigBuilder instance for method chaining
|
|
152
154
|
*/
|
|
153
155
|
setDistDir(distDir: string): this;
|
|
156
|
+
/**
|
|
157
|
+
* Sets the internal work directory for runtime-only artifacts.
|
|
158
|
+
*
|
|
159
|
+
* @remarks
|
|
160
|
+
* Use this when deployable output should stay clean while Ecopages still
|
|
161
|
+
* needs a separate workspace for server transpilation caches, runtime
|
|
162
|
+
* manifests, and other internal build products.
|
|
163
|
+
*
|
|
164
|
+
* @param workDir - The internal work directory name
|
|
165
|
+
* @returns The ConfigBuilder instance for method chaining
|
|
166
|
+
*/
|
|
167
|
+
setWorkDir(workDir: string): this;
|
|
154
168
|
/**
|
|
155
169
|
* Sets the default metadata for pages.
|
|
156
170
|
* This is used when a page doesn't specify its own metadata.
|
|
@@ -190,6 +204,11 @@ export declare class ConfigBuilder {
|
|
|
190
204
|
* @returns The ConfigBuilder instance for method chaining
|
|
191
205
|
*/
|
|
192
206
|
setLoaders(loaders: EcoBuildPlugin[]): this;
|
|
207
|
+
/**
|
|
208
|
+
* Sets the source transforms to use for transform-first bundlers such as Vite.
|
|
209
|
+
* This replaces any existing source transforms.
|
|
210
|
+
*/
|
|
211
|
+
setSourceTransforms(sourceTransforms: EcoSourceTransform[]): this;
|
|
193
212
|
/**
|
|
194
213
|
* Adds a loader to the application.
|
|
195
214
|
*
|
|
@@ -199,6 +218,12 @@ export declare class ConfigBuilder {
|
|
|
199
218
|
* @throws Error if a loader with the same name already exists
|
|
200
219
|
*/
|
|
201
220
|
addLoader(name: string, loader: EcoBuildPlugin): this;
|
|
221
|
+
/**
|
|
222
|
+
* Adds a source transform to the application.
|
|
223
|
+
*
|
|
224
|
+
* @throws Error if a source transform with the same name already exists.
|
|
225
|
+
*/
|
|
226
|
+
addSourceTransform(name: string, sourceTransform: EcoSourceTransform): this;
|
|
202
227
|
/**
|
|
203
228
|
* Sets the cache configuration for ISR and page caching.
|
|
204
229
|
*
|
|
@@ -208,8 +233,16 @@ export declare class ConfigBuilder {
|
|
|
208
233
|
setCacheConfig(cacheConfig: CacheConfig): this;
|
|
209
234
|
setExperimental(experimental: NonNullable<EcoPagesAppConfig['experimental']>): this;
|
|
210
235
|
private createAbsolutePaths;
|
|
236
|
+
private resolveSemanticTemplatePath;
|
|
211
237
|
private createIntegrationTemplatesExt;
|
|
212
238
|
private initializeProcessors;
|
|
239
|
+
private validateRuntimeCapabilities;
|
|
240
|
+
private validateRuntimeCapability;
|
|
241
|
+
private detectRuntimeEnvironment;
|
|
242
|
+
private getBunVersion;
|
|
243
|
+
private describeUnsupportedRuntimeTag;
|
|
244
|
+
private parseVersion;
|
|
245
|
+
private compareVersions;
|
|
213
246
|
/**
|
|
214
247
|
* Initializes default loaders that are required for EcoPages to function.
|
|
215
248
|
* This includes the eco-component-meta-plugin which auto-injects __eco metadata into component configs.
|
|
@@ -225,3 +258,4 @@ export declare class ConfigBuilder {
|
|
|
225
258
|
*/
|
|
226
259
|
build(): Promise<EcoPagesAppConfig>;
|
|
227
260
|
}
|
|
261
|
+
export {};
|