@ecopages/core 0.2.0-alpha.3 → 0.2.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +66 -66
- package/README.md +268 -14
- package/package.json +72 -108
- package/src/adapters/README.md +39 -0
- package/src/adapters/abstract/application-adapter.d.ts +28 -2
- package/src/adapters/abstract/application-adapter.js +14 -2
- package/src/adapters/abstract/router-adapter.d.ts +1 -1
- package/src/adapters/abstract/server-adapter.d.ts +2 -2
- package/src/adapters/bun/client-bridge.d.ts +1 -1
- package/src/adapters/bun/create-app.d.ts +5 -12
- package/src/adapters/bun/create-app.js +43 -7
- package/src/adapters/bun/hmr-manager.d.ts +72 -26
- package/src/adapters/bun/hmr-manager.js +153 -81
- package/src/adapters/bun/index.d.ts +2 -3
- package/src/adapters/bun/index.js +3 -3
- package/src/adapters/bun/server-adapter.d.ts +5 -5
- package/src/adapters/bun/server-adapter.js +63 -38
- package/src/adapters/bun/server-lifecycle.d.ts +28 -17
- package/src/adapters/bun/server-lifecycle.js +34 -62
- package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
- package/src/{create-app.js → adapters/create-app.js} +4 -4
- package/src/adapters/index.d.ts +2 -6
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +6 -9
- package/src/adapters/node/create-app.js +12 -6
- package/src/adapters/node/node-client-bridge.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.d.ts +79 -21
- package/src/adapters/node/node-hmr-manager.js +167 -114
- package/src/adapters/node/server-adapter.d.ts +7 -35
- package/src/adapters/node/server-adapter.js +55 -107
- package/src/adapters/node/static-content-server.d.ts +37 -1
- package/src/adapters/node/static-content-server.js +29 -1
- package/src/adapters/shared/application-adapter.d.ts +1 -1
- package/src/{define-api-handler.d.ts → adapters/shared/define-api-handler.d.ts} +1 -1
- package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
- package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +7 -4
- package/src/adapters/shared/explicit-static-route-matcher.js +14 -13
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
- package/src/adapters/shared/file-route-middleware-pipeline.js +3 -11
- package/src/adapters/shared/fs-server-response-factory.d.ts +14 -10
- package/src/adapters/shared/fs-server-response-factory.js +11 -27
- package/src/adapters/shared/fs-server-response-matcher.d.ts +20 -16
- package/src/adapters/shared/fs-server-response-matcher.js +76 -45
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
- package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
- package/src/adapters/shared/hmr-html-response.d.ts +22 -0
- package/src/adapters/shared/hmr-html-response.js +32 -0
- package/src/adapters/shared/render-context.d.ts +4 -3
- package/src/adapters/shared/render-context.js +6 -3
- package/src/adapters/shared/runtime-bootstrap.d.ts +38 -0
- package/src/adapters/shared/runtime-bootstrap.js +43 -0
- package/src/adapters/shared/server-adapter.d.ts +33 -12
- package/src/adapters/shared/server-adapter.js +208 -132
- package/src/adapters/shared/server-route-handler.d.ts +5 -5
- package/src/adapters/shared/server-route-handler.js +7 -16
- package/src/adapters/shared/server-static-builder.d.ts +41 -8
- package/src/adapters/shared/server-static-builder.js +65 -11
- package/src/build/README.md +107 -0
- package/src/build/build-adapter.d.ts +168 -3
- package/src/build/build-adapter.js +604 -16
- package/src/build/build-manifest.d.ts +27 -0
- package/src/build/build-manifest.js +30 -0
- package/src/build/dev-build-coordinator.d.ts +72 -0
- package/src/build/dev-build-coordinator.js +154 -0
- package/src/build/esbuild-build-adapter.d.ts +15 -6
- package/src/build/esbuild-build-adapter.js +189 -74
- package/src/build/runtime-build-executor.d.ts +14 -0
- package/src/build/runtime-build-executor.js +22 -0
- package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
- package/src/build/runtime-specifier-alias-plugin.js +35 -0
- package/src/build/runtime-specifier-aliases.d.ts +5 -0
- package/src/build/runtime-specifier-aliases.js +95 -0
- package/src/config/README.md +36 -0
- package/src/config/config-builder.d.ts +54 -29
- package/src/config/config-builder.js +255 -49
- package/src/{constants.d.ts → config/constants.d.ts} +13 -0
- package/src/{constants.js → config/constants.js} +4 -0
- package/src/declarations.d.ts +19 -14
- package/src/dev/host-runtime.d.ts +10 -0
- package/src/dev/host-runtime.js +24 -0
- package/src/dev/sc-server.d.ts +1 -1
- package/src/dev/sc-server.js +1 -1
- package/src/eco/README.md +70 -16
- package/src/eco/eco.browser.d.ts +2 -0
- package/src/eco/eco.browser.js +83 -0
- package/src/eco/eco.js +32 -57
- package/src/eco/eco.types.d.ts +14 -6
- package/src/eco/eco.utils.d.ts +1 -40
- package/src/eco/eco.utils.js +5 -35
- package/src/eco/global-injector-map.d.ts +3 -3
- package/src/eco/global-injector-map.js +2 -2
- package/src/eco/lazy-injector-map.d.ts +2 -2
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -1
- package/src/hmr/README.md +26 -0
- package/src/hmr/client/hmr-runtime.d.ts +1 -6
- package/src/hmr/client/hmr-runtime.js +38 -7
- package/src/hmr/hmr-strategy.d.ts +16 -13
- package/src/hmr/hmr-strategy.js +22 -7
- package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
- package/src/hmr/hmr.postcss.test.e2e.js +31 -0
- package/src/hmr/hmr.test.e2e.js +26 -33
- package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
- package/src/hmr/strategies/default-hmr-strategy.js +1 -1
- package/src/hmr/strategies/js-hmr-strategy.d.ts +46 -48
- package/src/hmr/strategies/js-hmr-strategy.js +64 -74
- package/src/index.browser.d.ts +2 -2
- package/src/index.browser.js +1 -1
- package/src/index.d.ts +4 -3
- package/src/index.js +16 -5
- package/src/integrations/ghtml/ghtml-renderer.d.ts +3 -2
- package/src/integrations/ghtml/ghtml-renderer.js +27 -30
- package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
- package/src/integrations/ghtml/ghtml.constants.js +4 -0
- package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
- package/src/integrations/ghtml/ghtml.plugin.js +3 -4
- package/src/plugins/README.md +35 -0
- package/src/plugins/alias-resolver-plugin.js +17 -3
- package/src/plugins/eco-component-meta-plugin.d.ts +14 -1
- package/src/plugins/eco-component-meta-plugin.js +27 -22
- package/src/plugins/foreign-jsx-override-plugin.d.ts +31 -0
- package/src/plugins/foreign-jsx-override-plugin.js +35 -0
- package/src/plugins/integration-plugin.d.ts +142 -29
- package/src/plugins/integration-plugin.js +103 -14
- package/src/plugins/processor.d.ts +17 -2
- package/src/plugins/processor.js +22 -3
- package/src/plugins/runtime-capability.d.ts +9 -0
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/GRAPH.md +83 -325
- package/src/route-renderer/README.md +73 -90
- package/src/route-renderer/orchestration/component-render-context.d.ts +89 -0
- package/src/route-renderer/orchestration/component-render-context.js +147 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +108 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +206 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +516 -0
- package/src/route-renderer/orchestration/integration-renderer.js +909 -0
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
- package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
- package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
- package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +2 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +23 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +90 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +158 -0
- package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
- package/src/route-renderer/orchestration/render-output.utils.js +171 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +120 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.js +388 -0
- package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
- package/src/route-renderer/orchestration/template-serialization.js +45 -0
- package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
- package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
- package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
- package/src/route-renderer/{dependency-resolver.d.ts → page-loading/dependency-resolver.d.ts} +15 -4
- package/src/route-renderer/page-loading/dependency-resolver.js +115 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
- package/src/route-renderer/page-loading/page-module-loader.d.ts +90 -0
- package/src/route-renderer/{page-module-loader.js → page-loading/page-module-loader.js} +39 -14
- package/src/route-renderer/route-renderer.d.ts +57 -14
- package/src/route-renderer/route-renderer.js +30 -18
- package/src/router/README.md +94 -0
- package/src/router/client/link-intent.d.ts +53 -0
- package/src/router/client/link-intent.js +34 -0
- package/src/router/client/link-intent.test.browser.d.ts +1 -0
- package/src/router/client/link-intent.test.browser.js +43 -0
- package/src/router/client/navigation-coordinator.d.ts +169 -0
- package/src/router/client/navigation-coordinator.js +215 -0
- package/src/router/server/route-registry.d.ts +78 -0
- package/src/router/server/route-registry.js +262 -0
- package/src/services/README.md +28 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +103 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset-processing.service.js +124 -89
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.js +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.d.ts +16 -1
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +55 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +49 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
- package/src/services/assets/asset-processing-service/index.d.ts +6 -0
- package/src/services/assets/asset-processing-service/index.js +6 -0
- package/src/services/assets/asset-processing-service/page-package.d.ts +3 -0
- package/src/services/assets/asset-processing-service/page-package.js +74 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.js +11 -5
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +22 -0
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +136 -0
- package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
- package/src/services/assets/asset-processing-service/processors/index.js +5 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.d.ts +3 -2
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +119 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.d.ts +4 -3
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.js +28 -7
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.d.ts +3 -3
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.js +12 -7
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +59 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.js +9 -3
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
- package/src/services/assets/browser-bundle.service.d.ts +73 -0
- package/src/services/assets/browser-bundle.service.js +41 -0
- package/src/services/{page-request-cache-coordinator.service.d.ts → cache/page-request-cache-coordinator.service.d.ts} +2 -2
- package/src/services/{page-request-cache-coordinator.service.js → cache/page-request-cache-coordinator.service.js} +3 -1
- package/src/services/html/html-rewriter-provider.service.d.ts +37 -0
- package/src/services/html/html-rewriter-provider.service.js +68 -0
- package/src/services/html/html-transformer.service.d.ts +87 -0
- package/src/services/html/html-transformer.service.js +216 -0
- package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
- package/src/services/invalidation/development-invalidation.service.js +190 -0
- package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +24 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +115 -0
- package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
- package/src/services/module-loading/host-module-loader-registry.js +15 -0
- package/src/services/module-loading/module-loading-types.d.ts +2 -0
- package/src/services/module-loading/module-loading-types.js +0 -0
- package/src/services/module-loading/node-bootstrap-plugin.d.ts +42 -0
- package/src/services/module-loading/node-bootstrap-plugin.js +216 -0
- package/src/services/module-loading/page-module-import.service.d.ts +76 -0
- package/src/services/module-loading/page-module-import.service.js +170 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +63 -0
- package/src/services/module-loading/server-module-transpiler.service.js +64 -0
- package/src/services/module-loading/source-module-support.d.ts +5 -0
- package/src/services/module-loading/source-module-support.js +8 -0
- package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
- package/src/services/runtime-state/dev-graph.service.js +162 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
- package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
- package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
- package/src/services/{schema-validation-service.d.ts → validation/schema-validation-service.d.ts} +1 -1
- package/src/static-site-generator/README.md +26 -0
- package/src/static-site-generator/static-site-generator.d.ts +67 -20
- package/src/static-site-generator/static-site-generator.js +182 -138
- package/src/{internal-types.d.ts → types/internal-types.d.ts} +62 -30
- package/src/types/internal-types.js +0 -0
- package/src/{public-types.d.ts → types/public-types.d.ts} +201 -32
- package/src/types/public-types.js +0 -0
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +6 -0
- package/src/utils/locals-utils.d.ts +1 -1
- package/src/utils/parse-cli-args.d.ts +4 -1
- package/src/utils/parse-cli-args.js +16 -1
- package/src/utils/resolve-work-dir.d.ts +11 -0
- package/src/utils/resolve-work-dir.js +31 -0
- package/src/watchers/project-watcher.d.ts +40 -29
- package/src/watchers/project-watcher.js +126 -116
- package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
- package/src/watchers/project-watcher.test-helpers.js +6 -6
- package/src/adapters/abstract/application-adapter.ts +0 -337
- package/src/adapters/abstract/router-adapter.ts +0 -30
- package/src/adapters/abstract/server-adapter.ts +0 -79
- package/src/adapters/bun/client-bridge.ts +0 -62
- package/src/adapters/bun/create-app.ts +0 -189
- package/src/adapters/bun/define-api-handler.d.ts +0 -61
- package/src/adapters/bun/define-api-handler.ts +0 -114
- package/src/adapters/bun/hmr-manager.ts +0 -296
- package/src/adapters/bun/index.ts +0 -3
- package/src/adapters/bun/server-adapter.ts +0 -492
- package/src/adapters/bun/server-lifecycle.ts +0 -154
- package/src/adapters/index.ts +0 -6
- package/src/adapters/node/create-app.ts +0 -179
- package/src/adapters/node/index.d.ts +0 -4
- package/src/adapters/node/index.js +0 -8
- package/src/adapters/node/index.ts +0 -9
- package/src/adapters/node/node-client-bridge.ts +0 -79
- package/src/adapters/node/node-hmr-manager.ts +0 -289
- package/src/adapters/node/server-adapter.ts +0 -561
- package/src/adapters/node/static-content-server.ts +0 -203
- package/src/adapters/shared/api-response.ts +0 -104
- package/src/adapters/shared/application-adapter.ts +0 -199
- package/src/adapters/shared/explicit-static-route-matcher.ts +0 -134
- package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -123
- package/src/adapters/shared/fs-server-response-factory.ts +0 -118
- package/src/adapters/shared/fs-server-response-matcher.ts +0 -198
- package/src/adapters/shared/render-context.ts +0 -105
- package/src/adapters/shared/server-adapter.ts +0 -442
- package/src/adapters/shared/server-route-handler.ts +0 -166
- package/src/adapters/shared/server-static-builder.ts +0 -82
- package/src/build/build-adapter.ts +0 -132
- package/src/build/build-types.ts +0 -83
- package/src/build/esbuild-build-adapter.ts +0 -510
- package/src/config/config-builder.ts +0 -474
- package/src/constants.ts +0 -39
- package/src/create-app.ts +0 -87
- package/src/define-api-handler.js +0 -15
- package/src/define-api-handler.ts +0 -66
- package/src/dev/sc-server.ts +0 -143
- package/src/eco/component-render-context.d.ts +0 -105
- package/src/eco/component-render-context.js +0 -77
- package/src/eco/component-render-context.ts +0 -202
- package/src/eco/eco.ts +0 -221
- package/src/eco/eco.types.ts +0 -202
- package/src/eco/eco.utils.ts +0 -89
- package/src/eco/global-injector-map.ts +0 -112
- package/src/eco/lazy-injector-map.ts +0 -120
- package/src/eco/module-dependencies.ts +0 -75
- package/src/errors/http-error.ts +0 -72
- package/src/errors/index.ts +0 -2
- package/src/errors/locals-access-error.ts +0 -7
- package/src/global/app-logger.ts +0 -4
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-have-HMR-script-injected-in-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
- package/src/hmr/client/hmr-runtime.ts +0 -121
- package/src/hmr/hmr-strategy.ts +0 -172
- package/src/hmr/hmr.test.e2e.ts +0 -75
- package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
- package/src/hmr/strategies/js-hmr-strategy.ts +0 -320
- package/src/index.browser.ts +0 -3
- package/src/index.ts +0 -5
- package/src/integrations/ghtml/ghtml-renderer.ts +0 -93
- package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
- package/src/internal-types.ts +0 -212
- package/src/plugins/alias-resolver-plugin.ts +0 -45
- package/src/plugins/eco-component-meta-plugin.ts +0 -474
- package/src/plugins/integration-plugin.ts +0 -184
- package/src/plugins/processor.ts +0 -220
- package/src/public-types.ts +0 -1260
- package/src/route-renderer/component-graph-executor.d.ts +0 -32
- package/src/route-renderer/component-graph-executor.js +0 -31
- package/src/route-renderer/component-graph-executor.ts +0 -84
- package/src/route-renderer/component-graph.d.ts +0 -42
- package/src/route-renderer/component-graph.js +0 -72
- package/src/route-renderer/component-graph.ts +0 -159
- package/src/route-renderer/component-marker.d.ts +0 -52
- package/src/route-renderer/component-marker.js +0 -46
- package/src/route-renderer/component-marker.ts +0 -117
- package/src/route-renderer/dependency-resolver.js +0 -428
- package/src/route-renderer/dependency-resolver.ts +0 -596
- package/src/route-renderer/html-post-processing.service.d.ts +0 -40
- package/src/route-renderer/html-post-processing.service.js +0 -86
- package/src/route-renderer/html-post-processing.service.ts +0 -103
- package/src/route-renderer/integration-renderer.d.ts +0 -339
- package/src/route-renderer/integration-renderer.js +0 -526
- package/src/route-renderer/integration-renderer.ts +0 -696
- package/src/route-renderer/marker-graph-resolver.d.ts +0 -76
- package/src/route-renderer/marker-graph-resolver.js +0 -93
- package/src/route-renderer/marker-graph-resolver.ts +0 -153
- package/src/route-renderer/page-module-loader.d.ts +0 -61
- package/src/route-renderer/page-module-loader.ts +0 -153
- package/src/route-renderer/render-execution.service.d.ts +0 -69
- package/src/route-renderer/render-execution.service.js +0 -91
- package/src/route-renderer/render-execution.service.ts +0 -158
- package/src/route-renderer/render-preparation.service.d.ts +0 -112
- package/src/route-renderer/render-preparation.service.js +0 -243
- package/src/route-renderer/render-preparation.service.ts +0 -358
- package/src/route-renderer/route-renderer.ts +0 -80
- package/src/router/fs-router-scanner.d.ts +0 -41
- package/src/router/fs-router-scanner.js +0 -155
- package/src/router/fs-router-scanner.ts +0 -217
- package/src/router/fs-router.d.ts +0 -26
- package/src/router/fs-router.js +0 -100
- package/src/router/fs-router.ts +0 -122
- package/src/services/asset-processing-service/asset-processing.service.d.ts +0 -41
- package/src/services/asset-processing-service/asset-processing.service.ts +0 -306
- package/src/services/asset-processing-service/asset.factory.ts +0 -105
- package/src/services/asset-processing-service/assets.types.ts +0 -112
- package/src/services/asset-processing-service/index.d.ts +0 -3
- package/src/services/asset-processing-service/index.js +0 -3
- package/src/services/asset-processing-service/index.ts +0 -3
- package/src/services/asset-processing-service/processor.interface.ts +0 -27
- package/src/services/asset-processing-service/processor.registry.ts +0 -18
- package/src/services/asset-processing-service/processors/base/base-processor.ts +0 -76
- package/src/services/asset-processing-service/processors/base/base-script-processor.d.ts +0 -16
- package/src/services/asset-processing-service/processors/base/base-script-processor.js +0 -80
- package/src/services/asset-processing-service/processors/base/base-script-processor.ts +0 -105
- package/src/services/asset-processing-service/processors/index.d.ts +0 -5
- package/src/services/asset-processing-service/processors/index.js +0 -5
- package/src/services/asset-processing-service/processors/index.ts +0 -5
- package/src/services/asset-processing-service/processors/script/content-script.processor.js +0 -57
- package/src/services/asset-processing-service/processors/script/content-script.processor.ts +0 -66
- package/src/services/asset-processing-service/processors/script/file-script.processor.ts +0 -88
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.ts +0 -84
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -25
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
- package/src/services/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -77
- package/src/services/cache/cache.types.ts +0 -126
- package/src/services/cache/index.ts +0 -18
- package/src/services/cache/memory-cache-store.ts +0 -130
- package/src/services/cache/page-cache-service.ts +0 -202
- package/src/services/html-transformer.service.d.ts +0 -50
- package/src/services/html-transformer.service.js +0 -163
- package/src/services/html-transformer.service.ts +0 -217
- package/src/services/page-module-import.service.d.ts +0 -37
- package/src/services/page-module-import.service.js +0 -88
- package/src/services/page-module-import.service.ts +0 -129
- package/src/services/page-request-cache-coordinator.service.ts +0 -128
- package/src/services/schema-validation-service.ts +0 -204
- package/src/services/validation/standard-schema.types.ts +0 -68
- package/src/static-site-generator/static-site-generator.ts +0 -359
- package/src/utils/css.d.ts +0 -1
- package/src/utils/css.js +0 -7
- package/src/utils/css.ts +0 -5
- package/src/utils/deep-merge.ts +0 -47
- package/src/utils/hash.ts +0 -5
- package/src/utils/html.ts +0 -1
- package/src/utils/invariant.ts +0 -15
- package/src/utils/locals-utils.ts +0 -37
- package/src/utils/parse-cli-args.ts +0 -83
- package/src/utils/path-utils.module.ts +0 -14
- package/src/utils/runtime.ts +0 -44
- package/src/utils/server-utils.module.ts +0 -67
- package/src/watchers/project-watcher.test-helpers.ts +0 -41
- package/src/watchers/project-watcher.ts +0 -344
- /package/src/adapters/{bun → shared}/define-api-handler.js +0 -0
- /package/src/{internal-types.js → plugins/runtime-capability.js} +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.js +0 -0
- /package/src/{public-types.js → services/module-loading/app-module-loader.service.js} +0 -0
- /package/src/services/{schema-validation-service.js → validation/schema-validation-service.js} +0 -0
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
|
|
1
2
|
import { appLogger } from "../../global/app-logger.js";
|
|
2
3
|
import { HttpError } from "../../errors/http-error.js";
|
|
3
4
|
import { createRequire } from "../../utils/locals-utils.js";
|
|
4
5
|
import { fileSystem } from "@ecopages/file-system";
|
|
5
6
|
import { SharedServerAdapter } from "../shared/server-adapter.js";
|
|
6
7
|
import { ApiResponseBuilder } from "../shared/api-response.js";
|
|
8
|
+
import { installSharedRuntimeBuildExecutor } from "../shared/runtime-bootstrap.js";
|
|
9
|
+
import { StaticContentServer } from "../../dev/sc-server.js";
|
|
7
10
|
import { ServerRouteHandler } from "../shared/server-route-handler.js";
|
|
8
|
-
import { ServerStaticBuilder } from "../shared/server-static-builder";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
+
import { ServerStaticBuilder } from "../shared/server-static-builder.js";
|
|
12
|
+
import {
|
|
13
|
+
injectHmrRuntimeIntoHtmlResponse,
|
|
14
|
+
isHtmlResponse,
|
|
15
|
+
shouldInjectHmrHtmlResponse
|
|
16
|
+
} from "../shared/hmr-html-response.js";
|
|
17
|
+
import { ClientBridge } from "./client-bridge.js";
|
|
18
|
+
import { HmrManager } from "./hmr-manager.js";
|
|
11
19
|
import { ServerLifecycle } from "./server-lifecycle.js";
|
|
12
20
|
class BunServerAdapter extends SharedServerAdapter {
|
|
13
21
|
apiHandlers;
|
|
@@ -52,14 +60,13 @@ class BunServerAdapter extends SharedServerAdapter {
|
|
|
52
60
|
* Only injects in watch mode when HMR manager is enabled.
|
|
53
61
|
*/
|
|
54
62
|
shouldInjectHmrScript() {
|
|
55
|
-
return this.options?.watch === true
|
|
63
|
+
return shouldInjectHmrHtmlResponse(this.options?.watch === true, this.hmrManager);
|
|
56
64
|
}
|
|
57
65
|
/**
|
|
58
66
|
* Checks if a response contains HTML content.
|
|
59
67
|
*/
|
|
60
68
|
isHtmlResponse(response) {
|
|
61
|
-
|
|
62
|
-
return contentType !== null && contentType.startsWith("text/html");
|
|
69
|
+
return isHtmlResponse(response);
|
|
63
70
|
}
|
|
64
71
|
/**
|
|
65
72
|
* Injects HMR script into HTML responses in development mode.
|
|
@@ -67,16 +74,7 @@ class BunServerAdapter extends SharedServerAdapter {
|
|
|
67
74
|
*/
|
|
68
75
|
async maybeInjectHmrScript(response) {
|
|
69
76
|
if (this.shouldInjectHmrScript() && this.isHtmlResponse(response)) {
|
|
70
|
-
|
|
71
|
-
const hmrScript = `<script type="module">import '/_hmr_runtime.js';<\/script>`;
|
|
72
|
-
const updatedHtml = html.replace(/<\/html>/i, `${hmrScript}</html>`);
|
|
73
|
-
const headers = new Headers(response.headers);
|
|
74
|
-
headers.delete("Content-Length");
|
|
75
|
-
return new Response(updatedHtml, {
|
|
76
|
-
status: response.status,
|
|
77
|
-
statusText: response.statusText,
|
|
78
|
-
headers
|
|
79
|
-
});
|
|
77
|
+
return injectHmrRuntimeIntoHtmlResponse(response);
|
|
80
78
|
}
|
|
81
79
|
return response;
|
|
82
80
|
}
|
|
@@ -85,6 +83,9 @@ class BunServerAdapter extends SharedServerAdapter {
|
|
|
85
83
|
* Delegates to ServerLifecycle for setup.
|
|
86
84
|
*/
|
|
87
85
|
async initialize() {
|
|
86
|
+
installSharedRuntimeBuildExecutor(this.appConfig, {
|
|
87
|
+
development: this.options?.watch === true
|
|
88
|
+
});
|
|
88
89
|
this.bridge = this.bridgeFactory ?? new ClientBridge();
|
|
89
90
|
this.hmrManager = this.hmrManagerFactory ?? new HmrManager({ appConfig: this.appConfig, bridge: this.bridge });
|
|
90
91
|
this.lifecycle = this.lifecycleFactory ?? new ServerLifecycle({
|
|
@@ -97,7 +98,8 @@ class BunServerAdapter extends SharedServerAdapter {
|
|
|
97
98
|
const staticBuilderOptions = {
|
|
98
99
|
appConfig: this.appConfig,
|
|
99
100
|
staticSiteGenerator: this.staticSiteGenerator,
|
|
100
|
-
serveOptions: this.serveOptions
|
|
101
|
+
serveOptions: this.serveOptions,
|
|
102
|
+
apiHandlers: this.apiHandlers
|
|
101
103
|
};
|
|
102
104
|
this.staticBuilder = this.staticBuilderFactory ? this.staticBuilderFactory(staticBuilderOptions) : new ServerStaticBuilder(staticBuilderOptions);
|
|
103
105
|
await this.lifecycle.initializePlugins({ watch: this.options?.watch });
|
|
@@ -106,22 +108,23 @@ class BunServerAdapter extends SharedServerAdapter {
|
|
|
106
108
|
* Refreshes the router routes during watch mode.
|
|
107
109
|
*/
|
|
108
110
|
async refreshRouterRoutes() {
|
|
109
|
-
if (this.serverInstance
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
if (!this.serverInstance || typeof this.serverInstance.reload !== "function") {
|
|
112
|
+
appLogger.error("Server instance is not available for reloading");
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
await this.createSharedWatchRefreshCallback({
|
|
116
|
+
staticRoutes: this.staticRoutes,
|
|
117
|
+
hmrManager: this.hmrManager,
|
|
118
|
+
onRoutesReady: () => {
|
|
113
119
|
const options = this.getServerOptions({ enableHmr: true });
|
|
114
120
|
this.serverInstance.reload(options);
|
|
115
121
|
appLogger.debug("Server routes updated with dynamic routes");
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
122
|
+
},
|
|
123
|
+
onError: (error) => {
|
|
124
|
+
this.hmrManager.broadcast({ type: "error", message: error.message });
|
|
125
|
+
appLogger.error("Failed to refresh router routes:", error);
|
|
121
126
|
}
|
|
122
|
-
}
|
|
123
|
-
appLogger.error("Server instance is not available for reloading");
|
|
124
|
-
}
|
|
127
|
+
})();
|
|
125
128
|
}
|
|
126
129
|
async watch() {
|
|
127
130
|
await this.lifecycle.startWatching({
|
|
@@ -246,14 +249,34 @@ class BunServerAdapter extends SharedServerAdapter {
|
|
|
246
249
|
*/
|
|
247
250
|
async buildStatic(options) {
|
|
248
251
|
if (!this.fullyInitialized) {
|
|
249
|
-
await this.
|
|
250
|
-
|
|
252
|
+
await this.initializeSharedRouteHandling({
|
|
253
|
+
staticRoutes: this.staticRoutes,
|
|
254
|
+
hmrManager: this.hmrManager
|
|
255
|
+
});
|
|
251
256
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
257
|
+
const buildRuntimeOrigin = this.serverInstance ? `http://${this.serverInstance.hostname || DEFAULT_ECOPAGES_HOSTNAME}:${this.serverInstance.port || DEFAULT_ECOPAGES_PORT}` : void 0;
|
|
258
|
+
await this.staticBuilder.build(
|
|
259
|
+
{ ...options, preview: false, baseUrl: buildRuntimeOrigin },
|
|
260
|
+
{
|
|
261
|
+
router: this.router,
|
|
262
|
+
routeRendererFactory: this.routeRendererFactory,
|
|
263
|
+
staticRoutes: this.staticRoutes
|
|
264
|
+
}
|
|
265
|
+
);
|
|
266
|
+
if (!options?.preview) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const previewHostname = this.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME;
|
|
270
|
+
const previewPort = Number(this.serveOptions.port || DEFAULT_ECOPAGES_PORT);
|
|
271
|
+
const previewServer = StaticContentServer.createServer({
|
|
272
|
+
appConfig: this.appConfig,
|
|
273
|
+
options: { port: previewPort }
|
|
256
274
|
});
|
|
275
|
+
if (previewServer.server?.port) {
|
|
276
|
+
appLogger.info(`Preview running at http://${previewHostname}:${previewServer.server.port}`);
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
appLogger.error("Failed to start preview server");
|
|
257
280
|
}
|
|
258
281
|
/**
|
|
259
282
|
* Initializes the server with dynamic routes after server creation.
|
|
@@ -278,8 +301,10 @@ class BunServerAdapter extends SharedServerAdapter {
|
|
|
278
301
|
async _performInitialization(server) {
|
|
279
302
|
this.serverInstance = server;
|
|
280
303
|
appLogger.debug("Completing server initialization with dynamic routes");
|
|
281
|
-
await this.
|
|
282
|
-
|
|
304
|
+
await this.initializeSharedRouteHandling({
|
|
305
|
+
staticRoutes: this.staticRoutes,
|
|
306
|
+
hmrManager: this.hmrManager
|
|
307
|
+
});
|
|
283
308
|
this.fullyInitialized = true;
|
|
284
309
|
if (this.options?.watch) await this.watch();
|
|
285
310
|
if (server && typeof server.reload === "function") {
|
|
@@ -342,7 +367,7 @@ class BunServerAdapter extends SharedServerAdapter {
|
|
|
342
367
|
}
|
|
343
368
|
}
|
|
344
369
|
async function createBunServerAdapter(params) {
|
|
345
|
-
const runtimeOrigin = params.runtimeOrigin ?? `http://${params.serveOptions.hostname ||
|
|
370
|
+
const runtimeOrigin = params.runtimeOrigin ?? `http://${params.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME}:${params.serveOptions.port || DEFAULT_ECOPAGES_PORT}`;
|
|
346
371
|
const bridge = params.bridge ?? new ClientBridge();
|
|
347
372
|
const hmrManager = params.hmrManager ?? new HmrManager({ appConfig: params.appConfig, bridge });
|
|
348
373
|
const lifecycle = params.lifecycle ?? new ServerLifecycle({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { EcoPagesAppConfig } from '../../internal-types';
|
|
1
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
2
2
|
import type { EcoBuildPlugin } from '../../build/build-types.js';
|
|
3
|
-
import { StaticSiteGenerator } from '../../static-site-generator/static-site-generator';
|
|
4
|
-
import type { ClientBridge } from './client-bridge';
|
|
5
|
-
import type { HmrManager } from './hmr-manager';
|
|
3
|
+
import { StaticSiteGenerator } from '../../static-site-generator/static-site-generator.js';
|
|
4
|
+
import type { ClientBridge } from './client-bridge.js';
|
|
5
|
+
import type { HmrManager } from './hmr-manager.js';
|
|
6
6
|
export interface WatcherCallbacks {
|
|
7
7
|
refreshRouterRoutesCallback: () => Promise<void>;
|
|
8
8
|
}
|
|
@@ -13,7 +13,13 @@ export interface ServerLifecycleParams {
|
|
|
13
13
|
bridge: ClientBridge;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Coordinates Bun-runtime server startup side effects for one app instance.
|
|
17
|
+
*
|
|
18
|
+
* @remarks
|
|
19
|
+
* This class keeps runtime-only concerns together: build-runtime bootstrapping,
|
|
20
|
+
* Bun loader registration, public asset preparation, plugin setup, and file
|
|
21
|
+
* watching. Core config/build state is expected to already be finalized before
|
|
22
|
+
* this lifecycle runs.
|
|
17
23
|
*/
|
|
18
24
|
export declare class ServerLifecycle {
|
|
19
25
|
private readonly appConfig;
|
|
@@ -23,30 +29,35 @@ export declare class ServerLifecycle {
|
|
|
23
29
|
private staticSiteGenerator;
|
|
24
30
|
constructor({ appConfig, runtimeOrigin, hmrManager, bridge }: ServerLifecycleParams);
|
|
25
31
|
/**
|
|
26
|
-
* Initializes the
|
|
27
|
-
*
|
|
32
|
+
* Initializes the runtime services that Bun startup depends on.
|
|
33
|
+
*
|
|
34
|
+
* @returns The static-site generator instance reused by the adapter.
|
|
28
35
|
*/
|
|
29
36
|
initialize(): Promise<StaticSiteGenerator>;
|
|
30
37
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
38
|
+
* Registers config-owned build loaders with Bun's runtime plugin API.
|
|
39
|
+
*
|
|
40
|
+
* @remarks
|
|
41
|
+
* Bun remains responsible only for transport-level plugin registration here.
|
|
42
|
+
* Loader ownership and composition were already finalized during config build.
|
|
33
43
|
*/
|
|
34
44
|
setupLoaders(): void;
|
|
35
45
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Initializes processors and integrations.
|
|
42
|
-
* @param options.watch - Whether watch mode is enabled
|
|
46
|
+
* Runs runtime-only processor and integration setup for this Bun app session.
|
|
47
|
+
*
|
|
48
|
+
* @param options.watch Whether watch mode is enabled.
|
|
49
|
+
* @returns The browser build plugins visible to HMR after runtime setup.
|
|
43
50
|
*/
|
|
44
51
|
initializePlugins(options?: {
|
|
45
52
|
watch?: boolean;
|
|
46
53
|
}): Promise<EcoBuildPlugin[]>;
|
|
47
54
|
/**
|
|
48
|
-
* Starts file watching
|
|
55
|
+
* Starts file watching and wires change events back into the adapter refresh
|
|
56
|
+
* callback.
|
|
49
57
|
*/
|
|
50
58
|
startWatching(callbacks: WatcherCallbacks): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the static-site generator created during initialization.
|
|
61
|
+
*/
|
|
51
62
|
getStaticSiteGenerator(): StaticSiteGenerator;
|
|
52
63
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
1
|
import { getBunRuntime } from "../../utils/runtime.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
import { appLogger } from "../../global/app-logger.js";
|
|
3
|
+
import { StaticSiteGenerator } from "../../static-site-generator/static-site-generator.js";
|
|
4
|
+
import {
|
|
5
|
+
bindSharedRuntimeHmrManager,
|
|
6
|
+
initializeSharedRuntimePlugins,
|
|
7
|
+
prepareSharedRuntimePublicDir,
|
|
8
|
+
startSharedProjectWatching
|
|
9
|
+
} from "../shared/runtime-bootstrap.js";
|
|
9
10
|
class ServerLifecycle {
|
|
10
11
|
appConfig;
|
|
11
12
|
hmrManager;
|
|
@@ -19,98 +20,69 @@ class ServerLifecycle {
|
|
|
19
20
|
this.bridge = bridge;
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
22
|
-
* Initializes the
|
|
23
|
-
*
|
|
23
|
+
* Initializes the runtime services that Bun startup depends on.
|
|
24
|
+
*
|
|
25
|
+
* @returns The static-site generator instance reused by the adapter.
|
|
24
26
|
*/
|
|
25
27
|
async initialize() {
|
|
26
28
|
this.staticSiteGenerator = new StaticSiteGenerator({ appConfig: this.appConfig });
|
|
27
29
|
await this.hmrManager.buildRuntime();
|
|
28
30
|
this.setupLoaders();
|
|
29
|
-
this.
|
|
31
|
+
prepareSharedRuntimePublicDir(this.appConfig);
|
|
30
32
|
return this.staticSiteGenerator;
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
+
* Registers config-owned build loaders with Bun's runtime plugin API.
|
|
36
|
+
*
|
|
37
|
+
* @remarks
|
|
38
|
+
* Bun remains responsible only for transport-level plugin registration here.
|
|
39
|
+
* Loader ownership and composition were already finalized during config build.
|
|
35
40
|
*/
|
|
36
41
|
setupLoaders() {
|
|
37
42
|
const loaders = this.appConfig.loaders;
|
|
38
43
|
for (const loader of loaders.values()) {
|
|
39
|
-
defaultBuildAdapter.registerPlugin(loader);
|
|
40
44
|
getBunRuntime()?.plugin(loader);
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
try {
|
|
49
|
-
const srcPublicDir = path.join(this.appConfig.rootDir, this.appConfig.srcDir, this.appConfig.publicDir);
|
|
50
|
-
if (fileSystem.exists(srcPublicDir)) {
|
|
51
|
-
fileSystem.copyDir(srcPublicDir, path.join(this.appConfig.rootDir, this.appConfig.distDir));
|
|
52
|
-
}
|
|
53
|
-
fileSystem.ensureDir(path.join(this.appConfig.absolutePaths.distDir, RESOLVED_ASSETS_DIR));
|
|
54
|
-
} catch (error) {
|
|
55
|
-
appLogger.error(
|
|
56
|
-
`Failed to copy public directory: ${error instanceof Error ? error.message : String(error)}`
|
|
57
|
-
);
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Initializes processors and integrations.
|
|
63
|
-
* @param options.watch - Whether watch mode is enabled
|
|
48
|
+
* Runs runtime-only processor and integration setup for this Bun app session.
|
|
49
|
+
*
|
|
50
|
+
* @param options.watch Whether watch mode is enabled.
|
|
51
|
+
* @returns The browser build plugins visible to HMR after runtime setup.
|
|
64
52
|
*/
|
|
65
53
|
async initializePlugins(options) {
|
|
66
54
|
try {
|
|
67
55
|
const hmrEnabled = !!options?.watch;
|
|
68
56
|
this.hmrManager.setEnabled(hmrEnabled);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
defaultBuildAdapter.registerPlugin(plugin);
|
|
75
|
-
getBunRuntime()?.plugin(plugin);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (processor.buildPlugins) {
|
|
79
|
-
processorBuildPlugins.push(...processor.buildPlugins);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
const integrationPromises = this.appConfig.integrations.map(async (integration) => {
|
|
83
|
-
integration.setConfig(this.appConfig);
|
|
84
|
-
integration.setRuntimeOrigin(this.runtimeOrigin);
|
|
85
|
-
integration.setHmrManager(this.hmrManager);
|
|
86
|
-
await integration.setup();
|
|
87
|
-
for (const plugin of integration.plugins) {
|
|
88
|
-
defaultBuildAdapter.registerPlugin(plugin);
|
|
57
|
+
await initializeSharedRuntimePlugins({
|
|
58
|
+
appConfig: this.appConfig,
|
|
59
|
+
runtimeOrigin: this.runtimeOrigin,
|
|
60
|
+
hmrManager: this.hmrManager,
|
|
61
|
+
onRuntimePlugin: (plugin) => {
|
|
89
62
|
getBunRuntime()?.plugin(plugin);
|
|
90
63
|
}
|
|
91
64
|
});
|
|
92
|
-
|
|
93
|
-
const loaderPlugins = Array.from(this.appConfig.loaders.values());
|
|
94
|
-
const allBuildPlugins = [...loaderPlugins, ...processorBuildPlugins];
|
|
95
|
-
this.hmrManager.setPlugins(allBuildPlugins);
|
|
96
|
-
return allBuildPlugins;
|
|
65
|
+
return bindSharedRuntimeHmrManager(this.appConfig, this.hmrManager);
|
|
97
66
|
} catch (error) {
|
|
98
67
|
appLogger.error(`Failed to initialize plugins: ${error instanceof Error ? error.message : String(error)}`);
|
|
99
68
|
throw error;
|
|
100
69
|
}
|
|
101
70
|
}
|
|
102
71
|
/**
|
|
103
|
-
* Starts file watching
|
|
72
|
+
* Starts file watching and wires change events back into the adapter refresh
|
|
73
|
+
* callback.
|
|
104
74
|
*/
|
|
105
75
|
async startWatching(callbacks) {
|
|
106
|
-
|
|
107
|
-
|
|
76
|
+
await startSharedProjectWatching({
|
|
77
|
+
appConfig: this.appConfig,
|
|
108
78
|
refreshRouterRoutesCallback: callbacks.refreshRouterRoutesCallback,
|
|
109
79
|
hmrManager: this.hmrManager,
|
|
110
80
|
bridge: this.bridge
|
|
111
81
|
});
|
|
112
|
-
await watcherInstance.createWatcherSubscription();
|
|
113
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Returns the static-site generator created during initialization.
|
|
85
|
+
*/
|
|
114
86
|
getStaticSiteGenerator() {
|
|
115
87
|
return this.staticSiteGenerator;
|
|
116
88
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { SharedApplicationAdapter } from './
|
|
5
|
-
export
|
|
6
|
-
|
|
1
|
+
import type { EcoPagesAppConfig } from '../types/internal-types.js';
|
|
2
|
+
import { AbstractApplicationAdapter } from './abstract/application-adapter.js';
|
|
3
|
+
import type { ApplicationAdapterOptions } from './abstract/application-adapter.js';
|
|
4
|
+
import { SharedApplicationAdapter } from './shared/application-adapter.js';
|
|
5
|
+
export interface EcopagesAppOptions extends ApplicationAdapterOptions {
|
|
6
|
+
appConfig: EcoPagesAppConfig;
|
|
7
|
+
serverOptions?: Record<string, any>;
|
|
8
|
+
}
|
|
9
|
+
export type UniversalEcopagesApp = AbstractApplicationAdapter<EcopagesAppOptions, unknown, Request>;
|
|
7
10
|
export declare function createApp<WebSocketData = undefined>(options: EcopagesAppOptions): Promise<UniversalEcopagesApp>;
|
|
8
11
|
export declare class EcopagesApp extends SharedApplicationAdapter<EcopagesAppOptions, unknown, Request> {
|
|
9
12
|
private readonly appOptions;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { AbstractApplicationAdapter } from "./
|
|
2
|
-
import { SharedApplicationAdapter } from "./
|
|
1
|
+
import { AbstractApplicationAdapter } from "./abstract/application-adapter.js";
|
|
2
|
+
import { SharedApplicationAdapter } from "./shared/application-adapter.js";
|
|
3
3
|
async function createRuntimeApp(options) {
|
|
4
4
|
const bun = globalThis.Bun;
|
|
5
5
|
if (bun) {
|
|
6
|
-
const { createApp: createBunApp } = await import("./
|
|
6
|
+
const { createApp: createBunApp } = await import("./bun/create-app.js");
|
|
7
7
|
return await createBunApp(options);
|
|
8
8
|
}
|
|
9
|
-
const { createNodeApp } = await import("./
|
|
9
|
+
const { createApp: createNodeApp } = await import("./node/create-app.js");
|
|
10
10
|
return await createNodeApp(options);
|
|
11
11
|
}
|
|
12
12
|
async function createApp(options) {
|
package/src/adapters/index.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
export { EcopagesApp, createApp } from './
|
|
2
|
-
export { defineApiHandler, defineGroupHandler } from './
|
|
3
|
-
export { NodeServerAdapter, createNodeServerAdapter } from './node/server-adapter.js';
|
|
4
|
-
export { EcopagesApp as NodeAdapterEcopagesApp, createNodeApp } from './node/create-app.js';
|
|
5
|
-
export type { NodeServerAdapterParams, NodeServerAdapterResult } from './node/server-adapter.js';
|
|
6
|
-
export type { EcopagesAppOptions as NodeEcopagesAppOptions } from './node/create-app.js';
|
|
1
|
+
export { EcopagesApp, createApp } from './create-app.js';
|
|
2
|
+
export { defineApiHandler, defineGroupHandler, type GroupHandler } from './shared/define-api-handler.js';
|
package/src/adapters/index.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
import { EcopagesApp, createApp } from "./
|
|
2
|
-
import { defineApiHandler, defineGroupHandler } from "./
|
|
3
|
-
import { NodeServerAdapter, createNodeServerAdapter } from "./node/server-adapter.js";
|
|
4
|
-
import { EcopagesApp as EcopagesApp2, createNodeApp } from "./node/create-app.js";
|
|
1
|
+
import { EcopagesApp, createApp } from "./create-app.js";
|
|
2
|
+
import { defineApiHandler, defineGroupHandler } from "./shared/define-api-handler.js";
|
|
5
3
|
export {
|
|
6
4
|
EcopagesApp,
|
|
7
|
-
EcopagesApp2 as NodeAdapterEcopagesApp,
|
|
8
|
-
NodeServerAdapter,
|
|
9
5
|
createApp,
|
|
10
|
-
createNodeApp,
|
|
11
|
-
createNodeServerAdapter,
|
|
12
6
|
defineApiHandler,
|
|
13
7
|
defineGroupHandler
|
|
14
8
|
};
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { type Server as NodeServerInstance } from 'node:http';
|
|
2
|
-
import type { EcoPagesAppConfig } from '../../internal-types.js';
|
|
3
|
-
import { type ApplicationAdapterOptions } from '../abstract/application-adapter.js';
|
|
4
2
|
import { SharedApplicationAdapter } from '../shared/application-adapter.js';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
serverOptions?: Record<string, any>;
|
|
9
|
-
}
|
|
10
|
-
export declare class EcopagesApp extends SharedApplicationAdapter<EcopagesAppOptions, NodeServerInstance, Request> {
|
|
3
|
+
import type { EcopagesAppOptions } from '../create-app.js';
|
|
4
|
+
import { type NodeServerAdapterResult, createNodeServerAdapter } from './server-adapter.js';
|
|
5
|
+
export declare class NodeEcopagesApp extends SharedApplicationAdapter<EcopagesAppOptions, NodeServerInstance, Request> {
|
|
11
6
|
serverAdapter: NodeServerAdapterResult | undefined;
|
|
12
7
|
private server;
|
|
13
8
|
private runtimeOrigin;
|
|
9
|
+
protected createServerAdapter(params: Parameters<typeof createNodeServerAdapter>[0]): Promise<NodeServerAdapterResult>;
|
|
14
10
|
stop(force?: boolean): Promise<void>;
|
|
15
11
|
protected initializeServerAdapter(): Promise<NodeServerAdapterResult>;
|
|
16
12
|
start(): Promise<NodeServerInstance | void>;
|
|
@@ -18,4 +14,5 @@ export declare class EcopagesApp extends SharedApplicationAdapter<EcopagesAppOpt
|
|
|
18
14
|
private sendNodeResponse;
|
|
19
15
|
fetch(request: Request): Promise<Response>;
|
|
20
16
|
}
|
|
21
|
-
export declare function createNodeApp(options: EcopagesAppOptions): Promise<
|
|
17
|
+
export declare function createNodeApp(options: EcopagesAppOptions): Promise<NodeEcopagesApp>;
|
|
18
|
+
export declare function createApp(options: EcopagesAppOptions): Promise<NodeEcopagesApp>;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { createServer } from "node:http";
|
|
2
2
|
import { Readable } from "node:stream";
|
|
3
|
-
import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../constants.js";
|
|
3
|
+
import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
|
|
4
4
|
import { appLogger } from "../../global/app-logger.js";
|
|
5
|
-
import {} from "../abstract/application-adapter.js";
|
|
6
5
|
import { SharedApplicationAdapter } from "../shared/application-adapter.js";
|
|
7
6
|
import { createNodeServerAdapter } from "./server-adapter.js";
|
|
8
|
-
class
|
|
7
|
+
class NodeEcopagesApp extends SharedApplicationAdapter {
|
|
9
8
|
serverAdapter;
|
|
10
9
|
server = null;
|
|
11
10
|
runtimeOrigin = "";
|
|
11
|
+
createServerAdapter(params) {
|
|
12
|
+
return createNodeServerAdapter(params);
|
|
13
|
+
}
|
|
12
14
|
async stop(force = true) {
|
|
13
15
|
if (!this.server) {
|
|
14
16
|
return;
|
|
@@ -36,7 +38,7 @@ class EcopagesApp extends SharedApplicationAdapter {
|
|
|
36
38
|
const preferredPort = cliPort ?? (envPort ? Number(envPort) : void 0) ?? DEFAULT_ECOPAGES_PORT;
|
|
37
39
|
const preferredHostname = cliHostname ?? envHostname ?? DEFAULT_ECOPAGES_HOSTNAME;
|
|
38
40
|
this.runtimeOrigin = `http://${preferredHostname}:${preferredPort}`;
|
|
39
|
-
return
|
|
41
|
+
return this.createServerAdapter({
|
|
40
42
|
runtimeOrigin: this.runtimeOrigin,
|
|
41
43
|
appConfig: this.appConfig,
|
|
42
44
|
apiHandlers: this.apiHandlers,
|
|
@@ -135,9 +137,13 @@ class EcopagesApp extends SharedApplicationAdapter {
|
|
|
135
137
|
}
|
|
136
138
|
}
|
|
137
139
|
async function createNodeApp(options) {
|
|
138
|
-
return new
|
|
140
|
+
return new NodeEcopagesApp(options);
|
|
141
|
+
}
|
|
142
|
+
async function createApp(options) {
|
|
143
|
+
return createNodeApp(options);
|
|
139
144
|
}
|
|
140
145
|
export {
|
|
141
|
-
|
|
146
|
+
NodeEcopagesApp,
|
|
147
|
+
createApp,
|
|
142
148
|
createNodeApp
|
|
143
149
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { WebSocket } from 'ws';
|
|
2
|
-
import type { ClientBridgeEvent, IClientBridge } from '../../public-types.js';
|
|
2
|
+
import type { ClientBridgeEvent, IClientBridge } from '../../types/public-types.js';
|
|
3
3
|
export declare class NodeClientBridge implements IClientBridge {
|
|
4
4
|
private subscribers;
|
|
5
5
|
private heartbeatTimer;
|