@ecopages/core 0.2.0-alpha.4 → 0.2.0-alpha.40
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 +268 -14
- package/package.json +84 -110
- package/src/adapters/README.md +39 -0
- package/src/adapters/abstract/application-adapter.d.ts +28 -2
- package/src/adapters/abstract/application-adapter.js +14 -2
- package/src/adapters/abstract/router-adapter.d.ts +1 -1
- package/src/adapters/abstract/server-adapter.d.ts +2 -2
- package/src/adapters/bun/client-bridge.d.ts +1 -1
- package/src/adapters/bun/create-app.d.ts +12 -12
- package/src/adapters/bun/create-app.js +64 -41
- package/src/adapters/bun/hmr-manager.d.ts +30 -68
- package/src/adapters/bun/hmr-manager.js +30 -212
- package/src/adapters/bun/index.d.ts +2 -3
- package/src/adapters/bun/index.js +3 -3
- package/src/adapters/bun/runtime-host.d.ts +52 -0
- package/src/adapters/bun/runtime-host.js +56 -0
- package/src/adapters/bun/server-adapter.d.ts +93 -32
- package/src/adapters/bun/server-adapter.js +166 -89
- package/src/adapters/bun/static-preview-host.d.ts +28 -0
- package/src/adapters/bun/static-preview-host.js +45 -0
- package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
- package/src/{create-app.js → adapters/create-app.js} +4 -4
- package/src/adapters/index.d.ts +2 -6
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +15 -12
- package/src/adapters/node/create-app.js +34 -85
- package/src/adapters/node/http-request-bridge.d.ts +57 -0
- package/src/adapters/node/http-request-bridge.js +118 -0
- package/src/adapters/node/node-client-bridge.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.d.ts +38 -49
- package/src/adapters/node/node-hmr-manager.js +31 -219
- package/src/adapters/node/runtime-host.d.ts +57 -0
- package/src/adapters/node/runtime-host.js +92 -0
- package/src/adapters/node/server-adapter-dependencies.d.ts +19 -0
- package/src/adapters/node/server-adapter-dependencies.js +18 -0
- package/src/adapters/node/server-adapter.d.ts +20 -72
- package/src/adapters/node/server-adapter.js +99 -203
- package/src/adapters/node/static-content-server.d.ts +37 -1
- package/src/adapters/node/static-content-server.js +29 -1
- package/src/adapters/node/static-preview-host.d.ts +55 -0
- package/src/adapters/node/static-preview-host.js +68 -0
- package/src/adapters/shared/application-adapter.d.ts +1 -1
- package/src/{define-api-handler.d.ts → adapters/shared/define-api-handler.d.ts} +1 -1
- package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
- package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +7 -4
- package/src/adapters/shared/explicit-static-route-matcher.js +14 -13
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
- package/src/adapters/shared/file-route-middleware-pipeline.js +3 -11
- package/src/adapters/shared/fs-server-response-factory.d.ts +14 -10
- package/src/adapters/shared/fs-server-response-factory.js +11 -27
- package/src/adapters/shared/fs-server-response-matcher.d.ts +20 -16
- package/src/adapters/shared/fs-server-response-matcher.js +76 -45
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
- package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
- package/src/adapters/shared/hmr-html-response.d.ts +22 -0
- package/src/adapters/shared/hmr-html-response.js +33 -0
- package/src/adapters/shared/render-context.d.ts +5 -3
- package/src/adapters/shared/render-context.js +27 -3
- package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
- package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
- package/src/adapters/shared/runtime-host.d.ts +12 -0
- package/src/adapters/shared/server-adapter.d.ts +33 -12
- package/src/adapters/shared/server-adapter.js +215 -132
- package/src/adapters/shared/server-route-handler.d.ts +5 -5
- package/src/adapters/shared/server-route-handler.js +7 -16
- package/src/adapters/shared/server-static-builder.d.ts +41 -8
- package/src/adapters/shared/server-static-builder.js +65 -11
- package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
- package/src/adapters/shared/shared-hmr-manager.js +239 -0
- package/src/adapters/shared/static-preview-host.d.ts +10 -0
- package/src/build/README.md +107 -0
- package/src/build/build-adapter.d.ts +176 -3
- package/src/build/build-adapter.js +619 -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 +16 -6
- package/src/build/esbuild-build-adapter.js +202 -74
- package/src/build/runtime-build-executor.d.ts +14 -0
- package/src/build/runtime-build-executor.js +22 -0
- package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
- package/src/build/runtime-specifier-alias-plugin.js +35 -0
- package/src/build/runtime-specifier-aliases.d.ts +5 -0
- package/src/build/runtime-specifier-aliases.js +95 -0
- package/src/config/README.md +36 -0
- package/src/config/config-builder.d.ts +54 -29
- package/src/config/config-builder.js +256 -50
- package/src/{constants.d.ts → config/constants.d.ts} +13 -0
- package/src/{constants.js → config/constants.js} +4 -0
- package/src/declarations.d.ts +19 -14
- package/src/dev/host-runtime.d.ts +10 -0
- package/src/dev/host-runtime.js +24 -0
- package/src/dev/sc-server.d.ts +1 -1
- package/src/dev/sc-server.js +1 -1
- package/src/eco/README.md +70 -16
- package/src/eco/eco.browser.d.ts +2 -0
- package/src/eco/eco.browser.js +88 -0
- package/src/eco/eco.js +63 -54
- package/src/eco/eco.types.d.ts +69 -6
- package/src/eco/eco.utils.d.ts +1 -40
- package/src/eco/eco.utils.js +5 -35
- package/src/eco/global-injector-map.d.ts +3 -3
- package/src/eco/global-injector-map.js +2 -2
- package/src/eco/lazy-injector-map.d.ts +2 -2
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -1
- package/src/hmr/README.md +26 -0
- package/src/hmr/client/hmr-runtime.d.ts +1 -6
- package/src/hmr/client/hmr-runtime.js +38 -7
- package/src/hmr/hmr-strategy.d.ts +16 -13
- package/src/hmr/hmr-strategy.js +22 -7
- package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
- package/src/hmr/hmr.postcss.test.e2e.js +31 -0
- package/src/hmr/hmr.test.e2e.js +26 -33
- package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
- package/src/hmr/strategies/default-hmr-strategy.js +1 -1
- package/src/hmr/strategies/js-hmr-strategy.d.ts +46 -48
- package/src/hmr/strategies/js-hmr-strategy.js +60 -75
- package/src/index.browser.d.ts +2 -2
- package/src/index.browser.js +1 -1
- package/src/index.d.ts +4 -3
- package/src/index.js +16 -5
- package/src/integrations/ghtml/ghtml-renderer.d.ts +3 -2
- package/src/integrations/ghtml/ghtml-renderer.js +27 -30
- package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
- package/src/integrations/ghtml/ghtml.constants.js +4 -0
- package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
- package/src/integrations/ghtml/ghtml.plugin.js +3 -4
- package/src/plugins/README.md +35 -0
- package/src/plugins/alias-resolver-plugin.d.ts +1 -0
- package/src/plugins/alias-resolver-plugin.js +27 -5
- package/src/plugins/eco-component-meta-plugin.d.ts +14 -1
- package/src/plugins/eco-component-meta-plugin.js +42 -24
- package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
- package/src/plugins/foreign-jsx-override-plugin.js +41 -0
- package/src/plugins/integration-plugin.d.ts +147 -29
- package/src/plugins/integration-plugin.js +103 -14
- package/src/plugins/processor.d.ts +17 -2
- package/src/plugins/processor.js +22 -3
- package/src/plugins/runtime-capability.d.ts +9 -0
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/GRAPH.md +83 -325
- package/src/route-renderer/README.md +73 -90
- package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
- package/src/route-renderer/orchestration/component-render-context.js +147 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +534 -0
- package/src/route-renderer/orchestration/integration-renderer.js +986 -0
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
- package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
- package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
- package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
- package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
- package/src/route-renderer/orchestration/render-output.utils.js +171 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +134 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.js +437 -0
- package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
- package/src/route-renderer/orchestration/template-serialization.js +45 -0
- package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
- package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
- package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
- package/src/route-renderer/{dependency-resolver.d.ts → page-loading/dependency-resolver.d.ts} +15 -4
- package/src/route-renderer/page-loading/dependency-resolver.js +115 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
- package/src/route-renderer/page-loading/page-module-loader.d.ts +90 -0
- package/src/route-renderer/{page-module-loader.js → page-loading/page-module-loader.js} +39 -14
- package/src/route-renderer/route-renderer.d.ts +57 -14
- package/src/route-renderer/route-renderer.js +30 -18
- package/src/router/README.md +94 -0
- package/src/router/client/link-intent.d.ts +53 -0
- package/src/router/client/link-intent.js +34 -0
- package/src/router/client/link-intent.test.browser.d.ts +1 -0
- package/src/router/client/link-intent.test.browser.js +43 -0
- package/src/router/client/navigation-coordinator.d.ts +169 -0
- package/src/router/client/navigation-coordinator.js +215 -0
- package/src/router/server/route-registry.d.ts +78 -0
- package/src/router/server/route-registry.js +262 -0
- package/src/services/README.md +28 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +103 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset-processing.service.js +124 -89
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.js +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.d.ts +16 -1
- package/src/services/assets/asset-processing-service/assets.types.js +0 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +55 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +49 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
- package/src/services/assets/asset-processing-service/index.d.ts +6 -0
- package/src/services/assets/asset-processing-service/index.js +6 -0
- package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
- package/src/services/assets/asset-processing-service/page-package.js +80 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.js +11 -5
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +22 -0
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +136 -0
- package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
- package/src/services/assets/asset-processing-service/processors/index.js +5 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.d.ts +3 -2
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +119 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.d.ts +4 -3
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.js +28 -7
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +42 -0
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +126 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +59 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.js +9 -3
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
- package/src/services/assets/browser-bundle.service.d.ts +73 -0
- package/src/services/assets/browser-bundle.service.js +41 -0
- package/src/services/{page-request-cache-coordinator.service.d.ts → cache/page-request-cache-coordinator.service.d.ts} +2 -2
- package/src/services/{page-request-cache-coordinator.service.js → cache/page-request-cache-coordinator.service.js} +3 -1
- package/src/services/html/html-rewriter-provider.service.d.ts +40 -0
- package/src/services/html/html-rewriter-provider.service.js +68 -0
- package/src/services/html/html-transformer.service.d.ts +96 -0
- package/src/services/html/html-transformer.service.js +287 -0
- package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
- package/src/services/invalidation/development-invalidation.service.js +190 -0
- package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
- package/src/services/module-loading/app-module-loader.service.js +0 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +24 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +151 -0
- package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
- package/src/services/module-loading/host-module-loader-registry.js +15 -0
- package/src/services/module-loading/module-loading-types.d.ts +2 -0
- package/src/services/module-loading/module-loading-types.js +0 -0
- package/src/services/module-loading/node-bootstrap-plugin.d.ts +42 -0
- package/src/services/module-loading/node-bootstrap-plugin.js +297 -0
- package/src/services/module-loading/page-module-import.service.d.ts +95 -0
- package/src/services/module-loading/page-module-import.service.js +191 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +63 -0
- package/src/services/module-loading/server-module-transpiler.service.js +64 -0
- package/src/services/module-loading/source-module-support.d.ts +5 -0
- package/src/services/module-loading/source-module-support.js +8 -0
- package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
- package/src/services/runtime-state/dev-graph.service.js +162 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
- package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
- package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
- package/src/services/{schema-validation-service.d.ts → validation/schema-validation-service.d.ts} +1 -1
- package/src/static-site-generator/README.md +26 -0
- package/src/static-site-generator/static-site-generator.d.ts +67 -20
- package/src/static-site-generator/static-site-generator.js +182 -138
- package/src/{internal-types.d.ts → types/internal-types.d.ts} +62 -30
- package/src/types/internal-types.js +0 -0
- package/src/{public-types.d.ts → types/public-types.d.ts} +239 -35
- package/src/types/public-types.js +0 -0
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +6 -0
- package/src/utils/locals-utils.d.ts +1 -1
- package/src/utils/parse-cli-args.d.ts +4 -1
- package/src/utils/parse-cli-args.js +16 -1
- package/src/utils/resolve-work-dir.d.ts +11 -0
- package/src/utils/resolve-work-dir.js +31 -0
- package/src/watchers/project-watcher.d.ts +40 -29
- package/src/watchers/project-watcher.js +126 -116
- package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
- package/src/watchers/project-watcher.test-helpers.js +6 -6
- package/CHANGELOG.md +0 -91
- package/src/adapters/abstract/application-adapter.ts +0 -337
- package/src/adapters/abstract/router-adapter.ts +0 -30
- package/src/adapters/abstract/server-adapter.ts +0 -79
- package/src/adapters/bun/client-bridge.ts +0 -62
- package/src/adapters/bun/create-app.ts +0 -189
- package/src/adapters/bun/define-api-handler.d.ts +0 -61
- package/src/adapters/bun/define-api-handler.ts +0 -114
- package/src/adapters/bun/hmr-manager.ts +0 -296
- package/src/adapters/bun/index.ts +0 -3
- package/src/adapters/bun/server-adapter.ts +0 -492
- package/src/adapters/bun/server-lifecycle.d.ts +0 -52
- package/src/adapters/bun/server-lifecycle.js +0 -120
- package/src/adapters/bun/server-lifecycle.ts +0 -154
- package/src/adapters/index.ts +0 -6
- package/src/adapters/node/create-app.ts +0 -179
- package/src/adapters/node/index.d.ts +0 -4
- package/src/adapters/node/index.js +0 -8
- package/src/adapters/node/index.ts +0 -9
- package/src/adapters/node/node-client-bridge.ts +0 -79
- package/src/adapters/node/node-hmr-manager.ts +0 -289
- package/src/adapters/node/server-adapter.ts +0 -561
- package/src/adapters/node/static-content-server.ts +0 -203
- package/src/adapters/shared/api-response.ts +0 -104
- package/src/adapters/shared/application-adapter.ts +0 -199
- package/src/adapters/shared/explicit-static-route-matcher.ts +0 -134
- package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -123
- package/src/adapters/shared/fs-server-response-factory.ts +0 -118
- package/src/adapters/shared/fs-server-response-matcher.ts +0 -198
- package/src/adapters/shared/render-context.ts +0 -105
- package/src/adapters/shared/server-adapter.ts +0 -442
- package/src/adapters/shared/server-route-handler.ts +0 -166
- package/src/adapters/shared/server-static-builder.ts +0 -82
- package/src/build/build-adapter.ts +0 -132
- package/src/build/build-types.ts +0 -83
- package/src/build/esbuild-build-adapter.ts +0 -510
- package/src/config/config-builder.ts +0 -474
- package/src/constants.ts +0 -39
- package/src/create-app.ts +0 -87
- package/src/define-api-handler.js +0 -15
- package/src/define-api-handler.ts +0 -66
- package/src/dev/sc-server.ts +0 -143
- package/src/eco/component-render-context.d.ts +0 -105
- package/src/eco/component-render-context.js +0 -77
- package/src/eco/component-render-context.ts +0 -202
- package/src/eco/eco.ts +0 -221
- package/src/eco/eco.types.ts +0 -202
- package/src/eco/eco.utils.ts +0 -89
- package/src/eco/global-injector-map.ts +0 -112
- package/src/eco/lazy-injector-map.ts +0 -120
- package/src/eco/module-dependencies.ts +0 -75
- package/src/errors/http-error.ts +0 -72
- package/src/errors/index.ts +0 -2
- package/src/errors/locals-access-error.ts +0 -7
- package/src/global/app-logger.ts +0 -4
- package/src/hmr/client/hmr-runtime.ts +0 -121
- package/src/hmr/hmr-strategy.ts +0 -172
- package/src/hmr/hmr.test.e2e.ts +0 -75
- package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
- package/src/hmr/strategies/js-hmr-strategy.ts +0 -320
- package/src/index.browser.ts +0 -3
- package/src/index.ts +0 -5
- package/src/integrations/ghtml/ghtml-renderer.ts +0 -93
- package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
- package/src/internal-types.ts +0 -212
- package/src/plugins/alias-resolver-plugin.ts +0 -45
- package/src/plugins/eco-component-meta-plugin.ts +0 -474
- package/src/plugins/integration-plugin.ts +0 -184
- package/src/plugins/processor.ts +0 -220
- package/src/public-types.ts +0 -1260
- package/src/route-renderer/component-graph-executor.d.ts +0 -32
- package/src/route-renderer/component-graph-executor.js +0 -31
- package/src/route-renderer/component-graph-executor.ts +0 -84
- package/src/route-renderer/component-graph.d.ts +0 -42
- package/src/route-renderer/component-graph.js +0 -72
- package/src/route-renderer/component-graph.ts +0 -159
- package/src/route-renderer/component-marker.d.ts +0 -52
- package/src/route-renderer/component-marker.js +0 -46
- package/src/route-renderer/component-marker.ts +0 -117
- package/src/route-renderer/dependency-resolver.js +0 -428
- package/src/route-renderer/dependency-resolver.ts +0 -596
- package/src/route-renderer/html-post-processing.service.d.ts +0 -40
- package/src/route-renderer/html-post-processing.service.js +0 -86
- package/src/route-renderer/html-post-processing.service.ts +0 -103
- package/src/route-renderer/integration-renderer.d.ts +0 -339
- package/src/route-renderer/integration-renderer.js +0 -526
- package/src/route-renderer/integration-renderer.ts +0 -696
- package/src/route-renderer/marker-graph-resolver.d.ts +0 -76
- package/src/route-renderer/marker-graph-resolver.js +0 -93
- package/src/route-renderer/marker-graph-resolver.ts +0 -153
- package/src/route-renderer/page-module-loader.d.ts +0 -61
- package/src/route-renderer/page-module-loader.ts +0 -153
- package/src/route-renderer/render-execution.service.d.ts +0 -69
- package/src/route-renderer/render-execution.service.js +0 -91
- package/src/route-renderer/render-execution.service.ts +0 -158
- package/src/route-renderer/render-preparation.service.d.ts +0 -112
- package/src/route-renderer/render-preparation.service.js +0 -243
- package/src/route-renderer/render-preparation.service.ts +0 -358
- package/src/route-renderer/route-renderer.ts +0 -80
- package/src/router/fs-router-scanner.d.ts +0 -41
- package/src/router/fs-router-scanner.js +0 -155
- package/src/router/fs-router-scanner.ts +0 -217
- package/src/router/fs-router.d.ts +0 -26
- package/src/router/fs-router.js +0 -100
- package/src/router/fs-router.ts +0 -122
- package/src/services/asset-processing-service/asset-processing.service.d.ts +0 -41
- package/src/services/asset-processing-service/asset-processing.service.ts +0 -306
- package/src/services/asset-processing-service/asset.factory.ts +0 -105
- package/src/services/asset-processing-service/assets.types.ts +0 -112
- package/src/services/asset-processing-service/index.d.ts +0 -3
- package/src/services/asset-processing-service/index.js +0 -3
- package/src/services/asset-processing-service/index.ts +0 -3
- package/src/services/asset-processing-service/processor.interface.ts +0 -27
- package/src/services/asset-processing-service/processor.registry.ts +0 -18
- package/src/services/asset-processing-service/processors/base/base-processor.ts +0 -76
- package/src/services/asset-processing-service/processors/base/base-script-processor.d.ts +0 -16
- package/src/services/asset-processing-service/processors/base/base-script-processor.js +0 -80
- package/src/services/asset-processing-service/processors/base/base-script-processor.ts +0 -105
- package/src/services/asset-processing-service/processors/index.d.ts +0 -5
- package/src/services/asset-processing-service/processors/index.js +0 -5
- package/src/services/asset-processing-service/processors/index.ts +0 -5
- package/src/services/asset-processing-service/processors/script/content-script.processor.js +0 -57
- package/src/services/asset-processing-service/processors/script/content-script.processor.ts +0 -66
- package/src/services/asset-processing-service/processors/script/file-script.processor.ts +0 -88
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -7
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.js +0 -74
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.ts +0 -84
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -25
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
- package/src/services/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -77
- package/src/services/cache/cache.types.ts +0 -126
- package/src/services/cache/index.ts +0 -18
- package/src/services/cache/memory-cache-store.ts +0 -130
- package/src/services/cache/page-cache-service.ts +0 -202
- package/src/services/html-transformer.service.d.ts +0 -50
- package/src/services/html-transformer.service.js +0 -163
- package/src/services/html-transformer.service.ts +0 -217
- package/src/services/page-module-import.service.d.ts +0 -37
- package/src/services/page-module-import.service.js +0 -88
- package/src/services/page-module-import.service.ts +0 -129
- package/src/services/page-request-cache-coordinator.service.ts +0 -128
- package/src/services/schema-validation-service.ts +0 -204
- package/src/services/validation/standard-schema.types.ts +0 -68
- package/src/static-site-generator/static-site-generator.ts +0 -359
- package/src/utils/css.d.ts +0 -1
- package/src/utils/css.js +0 -7
- package/src/utils/css.ts +0 -5
- package/src/utils/deep-merge.ts +0 -47
- package/src/utils/hash.ts +0 -5
- package/src/utils/html.ts +0 -1
- package/src/utils/invariant.ts +0 -15
- package/src/utils/locals-utils.ts +0 -37
- package/src/utils/parse-cli-args.ts +0 -83
- package/src/utils/path-utils.module.ts +0 -14
- package/src/utils/runtime.ts +0 -44
- package/src/utils/server-utils.module.ts +0 -67
- package/src/watchers/project-watcher.test-helpers.ts +0 -41
- package/src/watchers/project-watcher.ts +0 -344
- /package/src/adapters/{bun → shared}/define-api-handler.js +0 -0
- /package/src/{internal-types.js → adapters/shared/runtime-host.js} +0 -0
- /package/src/{public-types.js → adapters/shared/static-preview-host.js} +0 -0
- /package/src/{services/asset-processing-service/assets.types.js → plugins/runtime-capability.js} +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.js +0 -0
- /package/src/services/{schema-validation-service.js → validation/schema-validation-service.js} +0 -0
package/README.md
CHANGED
|
@@ -1,32 +1,286 @@
|
|
|
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 around a Bun-first core with Node fallback support and Vite-hosted compatibility for advanced dev and build orchestration. 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
|
+
- **Runtime Boundary**: `createApp()` prefers Bun when available and falls back to Node otherwise. Vite and Nitro still own host-side dev and build orchestration.
|
|
10
|
+
- **Build Ownership**: Bun-native execution keeps a core-owned build path. Vite and Nitro own host-side transforms, module graph behavior, and deployment-oriented builds.
|
|
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[Host module loader boundary]
|
|
35
|
+
G --> H[PageModuleImportService]
|
|
36
|
+
E --> H
|
|
37
|
+
E --> I
|
|
38
|
+
E --> I[BrowserBundleService]
|
|
39
|
+
H --> J[Runtime app adapter]
|
|
40
|
+
J --> K[Bun adapter or Node adapter]
|
|
41
|
+
D --> I
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Development Invalidation And HMR Flow
|
|
45
|
+
|
|
46
|
+
```mermaid
|
|
47
|
+
flowchart TD
|
|
48
|
+
A[File change] --> B[ProjectWatcher]
|
|
49
|
+
B --> C[DevelopmentInvalidationService]
|
|
50
|
+
C --> D{Change kind}
|
|
51
|
+
D -->|Route or server source| E[Invalidate server modules]
|
|
52
|
+
D -->|Public or include| F[Reload browser]
|
|
53
|
+
D -->|Processor-owned asset| G[Notify processor only]
|
|
54
|
+
D -->|HMR-eligible source| H[Core HMR manager]
|
|
55
|
+
H --> I[Strategy selection]
|
|
56
|
+
I --> J[Core JsHmrStrategy]
|
|
57
|
+
I --> K[Integration strategy e.g. ReactHmrStrategy]
|
|
58
|
+
J --> L[BrowserBundleService]
|
|
59
|
+
K --> L
|
|
60
|
+
K --> M[importServerModule]
|
|
61
|
+
M --> N[ServerModuleTranspiler]
|
|
62
|
+
L --> O[Updated browser bundle]
|
|
63
|
+
O --> P[Client bridge broadcast]
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
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.
|
|
67
|
+
|
|
68
|
+
### Practical Summary
|
|
69
|
+
|
|
70
|
+
- `ConfigBuilder` now seeds one app-owned build ownership path, adapter, manifest, executor, dev graph, and runtime registry.
|
|
71
|
+
- `BrowserBundleService` is the shared browser build seam used by HMR and asset-oriented browser output paths.
|
|
72
|
+
- `ServerModuleTranspiler` is the shared server-side source loading seam used by runtime bootstrap and HMR metadata loading.
|
|
73
|
+
- `createApp()` stays the universal runtime entrypoint, while Vite and Nitro hosts own their advanced dev and build workflows.
|
|
74
|
+
- esbuild remains only as a temporary Bun-path implementation detail and is not a strategic core dependency.
|
|
75
|
+
|
|
76
|
+
## Documentation Map
|
|
77
|
+
|
|
78
|
+
Use this package README as the top-level map, then drill into the focused subsystem READMEs:
|
|
79
|
+
|
|
80
|
+
- `src/config/README.md`: config finalization and app-owned runtime/build state
|
|
81
|
+
- `src/plugins/README.md`: integration and processor authoring contracts
|
|
82
|
+
- `src/build/README.md`: build adapter, executor, and development build coordination
|
|
83
|
+
- `src/services/README.md`: cross-cutting runtime services and orchestration helpers
|
|
84
|
+
- `src/adapters/README.md`: Bun, Node, and shared adapter boundaries
|
|
85
|
+
- `src/hmr/README.md`: HMR strategy and update-layer ownership
|
|
86
|
+
- `src/router/README.md`: route discovery, matching, and browser navigation coordination
|
|
87
|
+
- `src/route-renderer/README.md`: rendering orchestration and dependency resolution
|
|
88
|
+
- `src/static-site-generator/README.md`: static build execution path
|
|
89
|
+
- `src/eco/README.md`: `eco` authoring APIs for pages, layouts, and components
|
|
90
|
+
|
|
91
|
+
The intended reading order is:
|
|
92
|
+
|
|
93
|
+
1. this file for the big-picture architecture
|
|
94
|
+
2. `src/config/README.md` for config and lifecycle ownership
|
|
95
|
+
3. `src/plugins/README.md` and `src/build/README.md` for contribution contracts
|
|
96
|
+
4. `src/services/README.md` and `src/adapters/README.md` for runtime execution
|
|
97
|
+
5. `src/router/README.md` and `src/route-renderer/README.md` for request-time flow
|
|
98
|
+
|
|
99
|
+
## Installation
|
|
16
100
|
|
|
17
101
|
```bash
|
|
18
|
-
|
|
102
|
+
bun add @ecopages/core
|
|
19
103
|
```
|
|
20
104
|
|
|
21
|
-
|
|
105
|
+
_(You can also use `npm`, `yarn`, or `pnpm`)_
|
|
106
|
+
|
|
107
|
+
## Basic Usage
|
|
108
|
+
|
|
109
|
+
The Ecopages architecture revolves around an `eco.config.ts` file and an application entry point.
|
|
110
|
+
|
|
111
|
+
### 1. Configuration (`eco.config.ts`)
|
|
112
|
+
|
|
113
|
+
Configure your integratons, processors, and default metadata. Ecopages uses a builder pattern:
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
import { ConfigBuilder } from '@ecopages/core/config-builder';
|
|
117
|
+
// import your desired plugins...
|
|
118
|
+
|
|
119
|
+
const config = await new ConfigBuilder()
|
|
120
|
+
.setRootDir(import.meta.dirname)
|
|
121
|
+
.setBaseUrl(import.meta.env.ECOPAGES_BASE_URL ?? 'http://localhost:3000')
|
|
122
|
+
.setDefaultMetadata({
|
|
123
|
+
title: 'My Ecopages Site',
|
|
124
|
+
description: 'Built with Ecopages',
|
|
125
|
+
})
|
|
126
|
+
// .setIntegrations([kitajsPlugin()])
|
|
127
|
+
.build();
|
|
128
|
+
|
|
129
|
+
export default config;
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 2. Application Entry (`app.ts`)
|
|
133
|
+
|
|
134
|
+
Start the application using `createApp`. It will choose the Bun adapter when Bun is available and fall back to Node otherwise.
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
import { createApp } from '@ecopages/core/create-app';
|
|
138
|
+
import appConfig from './eco.config';
|
|
139
|
+
|
|
140
|
+
const app = await createApp({ appConfig });
|
|
141
|
+
|
|
142
|
+
await app.start();
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 3. Creating Pages
|
|
146
|
+
|
|
147
|
+
Use the `eco.page()` factory to define static routes. Place these in `src/pages/`:
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
150
|
+
import { eco } from '@ecopages/core';
|
|
151
|
+
import { BaseLayout } from '@/layouts/base-layout';
|
|
152
|
+
|
|
153
|
+
export default eco.page({
|
|
154
|
+
layout: BaseLayout,
|
|
155
|
+
metadata: () => ({
|
|
156
|
+
title: 'Home',
|
|
157
|
+
}),
|
|
158
|
+
render: () => (
|
|
159
|
+
<div>
|
|
160
|
+
<h1>Welcome to Ecopages</h1>
|
|
161
|
+
</div>
|
|
162
|
+
),
|
|
163
|
+
});
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 4. Reusable Components
|
|
167
|
+
|
|
168
|
+
Define components with `eco.component()` to automatically inject necessary stylesheets or scripts only when that component is rendered:
|
|
22
169
|
|
|
23
|
-
|
|
170
|
+
```tsx
|
|
171
|
+
import { eco } from '@ecopages/core';
|
|
172
|
+
|
|
173
|
+
export const MyButton = eco.component({
|
|
174
|
+
dependencies: {
|
|
175
|
+
stylesheets: ['./button.css'],
|
|
176
|
+
},
|
|
177
|
+
render: ({ label }) => <button className="my-button">{label}</button>,
|
|
178
|
+
});
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Dependency ownership affects final asset packaging:
|
|
182
|
+
|
|
183
|
+
- Stylesheets and scripts declared from `eco.html()` stay Html-owned and can be emitted as shared app-wide assets.
|
|
184
|
+
- Stylesheets and scripts declared from Pages, Layouts, or Components are resolved into page-owned assets for the rendered route.
|
|
185
|
+
- This split is intentional. Shared Html assets can be cached across routes, while page-owned assets can change without invalidating the global shell.
|
|
186
|
+
|
|
187
|
+
### 5. API Handlers
|
|
188
|
+
|
|
189
|
+
Add server-side routes using `defineApiHandler`. Register them on your `app` instance before starting:
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
import { defineApiHandler } from '@ecopages/core';
|
|
193
|
+
|
|
194
|
+
export const helloWorld = defineApiHandler({
|
|
195
|
+
path: '/api/hello',
|
|
196
|
+
method: 'GET',
|
|
197
|
+
handler: async ({ response }) => {
|
|
198
|
+
return response.json({ message: 'Hello World' });
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Attach the handler in your `app.ts` entry:
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
// app.ts
|
|
207
|
+
import { createApp } from '@ecopages/core/create-app';
|
|
208
|
+
import { helloWorld } from './handlers/hello';
|
|
209
|
+
import appConfig from './eco.config';
|
|
210
|
+
|
|
211
|
+
const app = await createApp({ appConfig });
|
|
212
|
+
|
|
213
|
+
app.get(helloWorld); // Register the API handler
|
|
214
|
+
|
|
215
|
+
await app.start();
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
See the [official documentation](https://ecopages.app) for advanced usage, API handlers, and integrations.
|
|
219
|
+
|
|
220
|
+
## Import Structure
|
|
221
|
+
|
|
222
|
+
Use the `create-app` subpath for runtime startup and the root package for standard authoring helpers:
|
|
24
223
|
|
|
25
224
|
```ts
|
|
26
|
-
import {
|
|
225
|
+
import { createApp } from '@ecopages/core/create-app';
|
|
226
|
+
import { defineApiHandler, defineGroupHandler, eco } from '@ecopages/core';
|
|
27
227
|
```
|
|
28
228
|
|
|
29
|
-
|
|
229
|
+
> [!NOTE]
|
|
230
|
+
> `createApp` is the recommended entrypoint over `EcopagesApp`.
|
|
231
|
+
|
|
232
|
+
### Runtime Escape Hatches
|
|
233
|
+
|
|
234
|
+
Use runtime-specific subpaths only when you explicitly need Bun-native APIs that bypass the universal abstractions:
|
|
30
235
|
|
|
31
236
|
- `@ecopages/core/bun`
|
|
32
|
-
|
|
237
|
+
|
|
238
|
+
## Entry Point Roles
|
|
239
|
+
|
|
240
|
+
The published subpaths are grouped by architectural role rather than by source folder.
|
|
241
|
+
|
|
242
|
+
### App Authoring
|
|
243
|
+
|
|
244
|
+
Use these entrypoints when building an Ecopages app:
|
|
245
|
+
|
|
246
|
+
- `@ecopages/core`
|
|
247
|
+
- `@ecopages/core/create-app`
|
|
248
|
+
- `@ecopages/core/config-builder`
|
|
249
|
+
- `@ecopages/core/errors`
|
|
250
|
+
- `@ecopages/core/html`
|
|
251
|
+
- `@ecopages/core/hash`
|
|
252
|
+
- `@ecopages/core/declarations`
|
|
253
|
+
- `@ecopages/core/env`
|
|
254
|
+
- `@ecopages/core/bun`
|
|
255
|
+
|
|
256
|
+
### Browser Navigation
|
|
257
|
+
|
|
258
|
+
Use these entrypoints when a browser runtime needs to coordinate document ownership and link intent:
|
|
259
|
+
|
|
260
|
+
- `@ecopages/core/router/navigation-coordinator`
|
|
261
|
+
- `@ecopages/core/router/link-intent`
|
|
262
|
+
|
|
263
|
+
### Extension Authoring
|
|
264
|
+
|
|
265
|
+
Use these entrypoints when implementing integrations, processors, or source transforms:
|
|
266
|
+
|
|
267
|
+
- `@ecopages/core/plugins/integration-plugin`
|
|
268
|
+
- `@ecopages/core/plugins/processor`
|
|
269
|
+
- `@ecopages/core/plugins/source-transform`
|
|
270
|
+
- `@ecopages/core/route-renderer/integration-renderer`
|
|
271
|
+
- `@ecopages/core/services/asset-processing-service`
|
|
272
|
+
- `@ecopages/core/hmr/hmr-strategy`
|
|
273
|
+
- `@ecopages/core/integrations/ghtml`
|
|
274
|
+
|
|
275
|
+
### Host And Runtime Composition
|
|
276
|
+
|
|
277
|
+
Use these entrypoints only when implementing host adapters or framework-owned bundling seams:
|
|
278
|
+
|
|
279
|
+
- `@ecopages/core/dev/host-runtime`
|
|
280
|
+
- `@ecopages/core/build/build-adapter`
|
|
281
|
+
- `@ecopages/core/build/build-types`
|
|
282
|
+
- `@ecopages/core/build/runtime-specifier-alias-plugin`
|
|
283
|
+
- `@ecopages/core/build/runtime-specifier-aliases`
|
|
284
|
+
- `@ecopages/core/plugins/foreign-jsx-override-plugin`
|
|
285
|
+
|
|
286
|
+
These host-facing entrypoints are narrower compatibility seams. App code and most extensions should prefer the app-authoring or extension-authoring surfaces.
|
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.40",
|
|
4
4
|
"description": "Core package for Ecopages",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ecopages",
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
"directory": "packages/core"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@ecopages/file-system": "0.2.0-alpha.
|
|
21
|
-
"@ecopages/logger": "
|
|
22
|
-
"@ecopages/scripts-injector": "^0.1.
|
|
20
|
+
"@ecopages/file-system": "0.2.0-alpha.40",
|
|
21
|
+
"@ecopages/logger": "^0.2.3",
|
|
22
|
+
"@ecopages/scripts-injector": "^0.1.5",
|
|
23
23
|
"@worker-tools/html-rewriter": "0.1.0-pre.19",
|
|
24
|
-
"chokidar": "^
|
|
25
|
-
"esbuild": "^0.
|
|
24
|
+
"chokidar": "^5.0.0",
|
|
25
|
+
"esbuild": "^0.28.0",
|
|
26
26
|
"ghtml": "^4.0.2",
|
|
27
|
-
"oxc-parser": "^0.
|
|
28
|
-
"ws": "^8.
|
|
27
|
+
"oxc-parser": "^0.124.0",
|
|
28
|
+
"ws": "^8.20.1"
|
|
29
29
|
},
|
|
30
30
|
"exports": {
|
|
31
31
|
".": {
|
|
@@ -35,18 +35,29 @@
|
|
|
35
35
|
"default": "./src/index.js"
|
|
36
36
|
},
|
|
37
37
|
"./create-app": {
|
|
38
|
-
"
|
|
39
|
-
"
|
|
38
|
+
"import": "./src/adapters/create-app.js",
|
|
39
|
+
"types": "./src/adapters/create-app.d.ts",
|
|
40
|
+
"default": "./src/adapters/create-app.js"
|
|
40
41
|
},
|
|
41
42
|
"./route-renderer/integration-renderer": {
|
|
42
|
-
"types": "./src/route-renderer/integration-renderer.d.ts",
|
|
43
|
-
"default": "./src/route-renderer/integration-renderer.js"
|
|
43
|
+
"types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
|
|
44
|
+
"default": "./src/route-renderer/orchestration/integration-renderer.js"
|
|
44
45
|
},
|
|
45
|
-
"./
|
|
46
|
-
"
|
|
47
|
-
"
|
|
46
|
+
"./route-renderer/component-render-context": {
|
|
47
|
+
"import": "./src/route-renderer/orchestration/component-render-context.js",
|
|
48
|
+
"types": "./src/route-renderer/orchestration/component-render-context.d.ts",
|
|
49
|
+
"default": "./src/route-renderer/orchestration/component-render-context.js"
|
|
50
|
+
},
|
|
51
|
+
"./router/navigation-coordinator": {
|
|
52
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
53
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
54
|
+
},
|
|
55
|
+
"./router/link-intent": {
|
|
56
|
+
"types": "./src/router/client/link-intent.d.ts",
|
|
57
|
+
"default": "./src/router/client/link-intent.js"
|
|
48
58
|
},
|
|
49
59
|
"./eco": {
|
|
60
|
+
"browser": "./src/eco/eco.browser.js",
|
|
50
61
|
"types": "./src/eco/eco.d.ts",
|
|
51
62
|
"default": "./src/eco/eco.js"
|
|
52
63
|
},
|
|
@@ -61,43 +72,24 @@
|
|
|
61
72
|
"default": "./src/config/config-builder.js"
|
|
62
73
|
},
|
|
63
74
|
"./constants": {
|
|
64
|
-
"types": "./src/constants.d.ts",
|
|
65
|
-
"default": "./src/constants.js"
|
|
75
|
+
"types": "./src/config/constants.d.ts",
|
|
76
|
+
"default": "./src/config/constants.js"
|
|
66
77
|
},
|
|
67
78
|
"./bun": {
|
|
68
79
|
"types": "./src/adapters/bun/index.d.ts",
|
|
69
80
|
"default": "./src/adapters/bun/index.js"
|
|
70
81
|
},
|
|
71
|
-
"./bun/create-app": {
|
|
72
|
-
"types": "./src/adapters/bun/create-app.d.ts",
|
|
73
|
-
"default": "./src/adapters/bun/create-app.js"
|
|
74
|
-
},
|
|
75
|
-
"./bun/define-api-handler": {
|
|
76
|
-
"types": "./src/adapters/bun/define-api-handler.d.ts",
|
|
77
|
-
"default": "./src/adapters/bun/define-api-handler.js"
|
|
78
|
-
},
|
|
79
82
|
"./hmr/hmr-strategy": {
|
|
80
83
|
"types": "./src/hmr/hmr-strategy.d.ts",
|
|
81
84
|
"default": "./src/hmr/hmr-strategy.js"
|
|
82
85
|
},
|
|
83
|
-
"./
|
|
84
|
-
"types": "./src/
|
|
86
|
+
"./dev/host-runtime": {
|
|
87
|
+
"types": "./src/dev/host-runtime.d.ts",
|
|
88
|
+
"default": "./src/dev/host-runtime.js"
|
|
85
89
|
},
|
|
86
90
|
"./services/asset-processing-service": {
|
|
87
|
-
"types": "./src/services/asset-processing-service/index.d.ts",
|
|
88
|
-
"default": "./src/services/asset-processing-service/index.js"
|
|
89
|
-
},
|
|
90
|
-
"./utils/deep-merge": {
|
|
91
|
-
"types": "./src/utils/deep-merge.d.ts",
|
|
92
|
-
"default": "./src/utils/deep-merge.js"
|
|
93
|
-
},
|
|
94
|
-
"./utils/invariant": {
|
|
95
|
-
"types": "./src/utils/invariant.d.ts",
|
|
96
|
-
"default": "./src/utils/invariant.js"
|
|
97
|
-
},
|
|
98
|
-
"./utils/parse-cli-args": {
|
|
99
|
-
"types": "./src/utils/parse-cli-args.d.ts",
|
|
100
|
-
"default": "./src/utils/parse-cli-args.js"
|
|
91
|
+
"types": "./src/services/assets/asset-processing-service/index.d.ts",
|
|
92
|
+
"default": "./src/services/assets/asset-processing-service/index.js"
|
|
101
93
|
},
|
|
102
94
|
"./plugins/processor": {
|
|
103
95
|
"types": "./src/plugins/processor.d.ts",
|
|
@@ -107,6 +99,10 @@
|
|
|
107
99
|
"types": "./src/plugins/integration-plugin.d.ts",
|
|
108
100
|
"default": "./src/plugins/integration-plugin.js"
|
|
109
101
|
},
|
|
102
|
+
"./plugins/source-transform": {
|
|
103
|
+
"types": "./src/plugins/source-transform.d.ts",
|
|
104
|
+
"default": "./src/plugins/source-transform.js"
|
|
105
|
+
},
|
|
110
106
|
"./build/build-types": {
|
|
111
107
|
"types": "./src/build/build-types.d.ts",
|
|
112
108
|
"default": "./src/build/build-types.js"
|
|
@@ -115,32 +111,23 @@
|
|
|
115
111
|
"types": "./src/build/build-adapter.d.ts",
|
|
116
112
|
"default": "./src/build/build-adapter.js"
|
|
117
113
|
},
|
|
118
|
-
"./
|
|
119
|
-
"types": "./src/
|
|
120
|
-
"default": "./src/
|
|
114
|
+
"./build/runtime-specifier-alias-plugin": {
|
|
115
|
+
"types": "./src/build/runtime-specifier-alias-plugin.d.ts",
|
|
116
|
+
"default": "./src/build/runtime-specifier-alias-plugin.js"
|
|
121
117
|
},
|
|
122
|
-
"./
|
|
123
|
-
"types": "./src/
|
|
124
|
-
"default": "./src/
|
|
118
|
+
"./build/runtime-specifier-aliases": {
|
|
119
|
+
"types": "./src/build/runtime-specifier-aliases.d.ts",
|
|
120
|
+
"default": "./src/build/runtime-specifier-aliases.js"
|
|
125
121
|
},
|
|
126
|
-
"./
|
|
127
|
-
"types": "./src/
|
|
128
|
-
"default": "./src/
|
|
129
|
-
},
|
|
130
|
-
"./node/create-app": {
|
|
131
|
-
"types": "./src/adapters/node/create-app.d.ts",
|
|
132
|
-
"default": "./src/adapters/node/create-app.js"
|
|
122
|
+
"./plugins/foreign-jsx-override-plugin": {
|
|
123
|
+
"types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
|
|
124
|
+
"default": "./src/plugins/foreign-jsx-override-plugin.js"
|
|
133
125
|
},
|
|
134
126
|
"./html": {
|
|
135
127
|
"import": "./src/utils/html.js",
|
|
136
128
|
"default": "./src/utils/html.js",
|
|
137
129
|
"types": "./src/utils/html.d.ts"
|
|
138
130
|
},
|
|
139
|
-
"./css": {
|
|
140
|
-
"import": "./src/utils/css.js",
|
|
141
|
-
"default": "./src/utils/css.js",
|
|
142
|
-
"types": "./src/utils/css.d.ts"
|
|
143
|
-
},
|
|
144
131
|
"./hash": {
|
|
145
132
|
"import": "./src/utils/hash.js",
|
|
146
133
|
"default": "./src/utils/hash.js",
|
|
@@ -155,18 +142,29 @@
|
|
|
155
142
|
"default": "./src/integrations/ghtml/ghtml.plugin.js"
|
|
156
143
|
},
|
|
157
144
|
"./create-app.ts": {
|
|
158
|
-
"
|
|
159
|
-
"
|
|
145
|
+
"import": "./src/adapters/create-app.js",
|
|
146
|
+
"types": "./src/adapters/create-app.d.ts",
|
|
147
|
+
"default": "./src/adapters/create-app.js"
|
|
160
148
|
},
|
|
161
149
|
"./route-renderer/integration-renderer.ts": {
|
|
162
|
-
"types": "./src/route-renderer/integration-renderer.d.ts",
|
|
163
|
-
"default": "./src/route-renderer/integration-renderer.js"
|
|
150
|
+
"types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
|
|
151
|
+
"default": "./src/route-renderer/orchestration/integration-renderer.js"
|
|
164
152
|
},
|
|
165
|
-
"./
|
|
166
|
-
"
|
|
167
|
-
"
|
|
153
|
+
"./route-renderer/component-render-context.ts": {
|
|
154
|
+
"import": "./src/route-renderer/orchestration/component-render-context.js",
|
|
155
|
+
"types": "./src/route-renderer/orchestration/component-render-context.d.ts",
|
|
156
|
+
"default": "./src/route-renderer/orchestration/component-render-context.js"
|
|
157
|
+
},
|
|
158
|
+
"./router/navigation-coordinator.ts": {
|
|
159
|
+
"types": "./src/router/client/navigation-coordinator.d.ts",
|
|
160
|
+
"default": "./src/router/client/navigation-coordinator.js"
|
|
161
|
+
},
|
|
162
|
+
"./router/link-intent.ts": {
|
|
163
|
+
"types": "./src/router/client/link-intent.d.ts",
|
|
164
|
+
"default": "./src/router/client/link-intent.js"
|
|
168
165
|
},
|
|
169
166
|
"./eco.ts": {
|
|
167
|
+
"browser": "./src/eco/eco.browser.js",
|
|
170
168
|
"types": "./src/eco/eco.d.ts",
|
|
171
169
|
"default": "./src/eco/eco.js"
|
|
172
170
|
},
|
|
@@ -181,43 +179,24 @@
|
|
|
181
179
|
"default": "./src/config/config-builder.js"
|
|
182
180
|
},
|
|
183
181
|
"./constants.ts": {
|
|
184
|
-
"types": "./src/constants.d.ts",
|
|
185
|
-
"default": "./src/constants.js"
|
|
182
|
+
"types": "./src/config/constants.d.ts",
|
|
183
|
+
"default": "./src/config/constants.js"
|
|
186
184
|
},
|
|
187
185
|
"./bun.ts": {
|
|
188
186
|
"types": "./src/adapters/bun/index.d.ts",
|
|
189
187
|
"default": "./src/adapters/bun/index.js"
|
|
190
188
|
},
|
|
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
189
|
"./hmr/hmr-strategy.ts": {
|
|
200
190
|
"types": "./src/hmr/hmr-strategy.d.ts",
|
|
201
191
|
"default": "./src/hmr/hmr-strategy.js"
|
|
202
192
|
},
|
|
203
|
-
"./
|
|
204
|
-
"types": "./src/
|
|
193
|
+
"./dev/host-runtime.ts": {
|
|
194
|
+
"types": "./src/dev/host-runtime.d.ts",
|
|
195
|
+
"default": "./src/dev/host-runtime.js"
|
|
205
196
|
},
|
|
206
197
|
"./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"
|
|
198
|
+
"types": "./src/services/assets/asset-processing-service/index.d.ts",
|
|
199
|
+
"default": "./src/services/assets/asset-processing-service/index.js"
|
|
221
200
|
},
|
|
222
201
|
"./plugins/processor.ts": {
|
|
223
202
|
"types": "./src/plugins/processor.d.ts",
|
|
@@ -227,6 +206,10 @@
|
|
|
227
206
|
"types": "./src/plugins/integration-plugin.d.ts",
|
|
228
207
|
"default": "./src/plugins/integration-plugin.js"
|
|
229
208
|
},
|
|
209
|
+
"./plugins/source-transform.ts": {
|
|
210
|
+
"types": "./src/plugins/source-transform.d.ts",
|
|
211
|
+
"default": "./src/plugins/source-transform.js"
|
|
212
|
+
},
|
|
230
213
|
"./build/build-types.ts": {
|
|
231
214
|
"types": "./src/build/build-types.d.ts",
|
|
232
215
|
"default": "./src/build/build-types.js"
|
|
@@ -235,32 +218,23 @@
|
|
|
235
218
|
"types": "./src/build/build-adapter.d.ts",
|
|
236
219
|
"default": "./src/build/build-adapter.js"
|
|
237
220
|
},
|
|
238
|
-
"./
|
|
239
|
-
"types": "./src/
|
|
240
|
-
"default": "./src/
|
|
221
|
+
"./build/runtime-specifier-alias-plugin.ts": {
|
|
222
|
+
"types": "./src/build/runtime-specifier-alias-plugin.d.ts",
|
|
223
|
+
"default": "./src/build/runtime-specifier-alias-plugin.js"
|
|
241
224
|
},
|
|
242
|
-
"./
|
|
243
|
-
"types": "./src/
|
|
244
|
-
"default": "./src/
|
|
225
|
+
"./build/runtime-specifier-aliases.ts": {
|
|
226
|
+
"types": "./src/build/runtime-specifier-aliases.d.ts",
|
|
227
|
+
"default": "./src/build/runtime-specifier-aliases.js"
|
|
245
228
|
},
|
|
246
|
-
"./
|
|
247
|
-
"types": "./src/
|
|
248
|
-
"default": "./src/
|
|
249
|
-
},
|
|
250
|
-
"./node/create-app.ts": {
|
|
251
|
-
"types": "./src/adapters/node/create-app.d.ts",
|
|
252
|
-
"default": "./src/adapters/node/create-app.js"
|
|
229
|
+
"./plugins/foreign-jsx-override-plugin.ts": {
|
|
230
|
+
"types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
|
|
231
|
+
"default": "./src/plugins/foreign-jsx-override-plugin.js"
|
|
253
232
|
},
|
|
254
233
|
"./html.ts": {
|
|
255
234
|
"import": "./src/utils/html.js",
|
|
256
235
|
"default": "./src/utils/html.js",
|
|
257
236
|
"types": "./src/utils/html.d.ts"
|
|
258
237
|
},
|
|
259
|
-
"./css.ts": {
|
|
260
|
-
"import": "./src/utils/css.js",
|
|
261
|
-
"default": "./src/utils/css.js",
|
|
262
|
-
"types": "./src/utils/css.d.ts"
|
|
263
|
-
},
|
|
264
238
|
"./hash.ts": {
|
|
265
239
|
"import": "./src/utils/hash.js",
|
|
266
240
|
"default": "./src/utils/hash.js",
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Runtime Adapters
|
|
2
|
+
|
|
3
|
+
This directory contains the runtime-host integration layer for Ecopages.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Adapters translate app-owned core services into concrete runtime behavior at the host boundary. Bun remains the direct core runtime, while Node compatibility is driven by the Ecopages CLI thin-host path and reuses internal adapter pieces here.
|
|
8
|
+
|
|
9
|
+
They are responsible for:
|
|
10
|
+
|
|
11
|
+
- starting and stopping runtime-specific servers or thin hosts
|
|
12
|
+
- delegating startup into framework-owned loaders and services
|
|
13
|
+
- bridging runtime-specific request/response or HMR transport details
|
|
14
|
+
- keeping host/runtime transport details out of generic core orchestration
|
|
15
|
+
|
|
16
|
+
They are not responsible for:
|
|
17
|
+
|
|
18
|
+
- deciding plugin lifecycle ordering
|
|
19
|
+
- owning server-module semantics
|
|
20
|
+
- owning browser bundling policy
|
|
21
|
+
- owning route rendering semantics
|
|
22
|
+
|
|
23
|
+
## Main Areas
|
|
24
|
+
|
|
25
|
+
- `bun/`: Bun server adapter, lifecycle coordination, bridge, and HMR transport
|
|
26
|
+
- `node/`: internal Node compatibility adapter pieces used by the CLI thin-host path
|
|
27
|
+
- `shared/`: runtime-neutral adapter helpers used by both hosts
|
|
28
|
+
|
|
29
|
+
## Ownership Boundary
|
|
30
|
+
|
|
31
|
+
The adapter layer is transport-oriented.
|
|
32
|
+
|
|
33
|
+
Core services still own:
|
|
34
|
+
|
|
35
|
+
- config finalization
|
|
36
|
+
- build-manifest assembly
|
|
37
|
+
- server loading
|
|
38
|
+
- invalidation classification
|
|
39
|
+
- route rendering orchestration
|