@ecopages/core 0.2.0-alpha.52 → 0.2.0-alpha.54
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 +2 -3
- package/package.json +97 -182
- package/src/adapters/abstract/application-adapter.test.ts +218 -0
- package/src/adapters/abstract/application-adapter.ts +379 -0
- package/src/adapters/abstract/router-adapter.ts +30 -0
- package/src/adapters/abstract/server-adapter.ts +79 -0
- package/src/adapters/bun/client-bridge.ts +62 -0
- package/src/adapters/bun/create-app.ts +214 -0
- package/src/adapters/bun/hmr-manager.test.ts +265 -0
- package/src/adapters/bun/hmr-manager.ts +88 -0
- package/src/adapters/bun/index.ts +2 -0
- package/src/adapters/bun/runtime-host.ts +76 -0
- package/src/adapters/bun/server-adapter.ts +605 -0
- package/src/adapters/bun/static-preview-host.ts +70 -0
- package/src/adapters/create-app.test.ts +10 -0
- package/src/adapters/create-app.ts +91 -0
- package/src/adapters/index.ts +2 -0
- package/src/adapters/node/create-app.test.ts +76 -0
- package/src/adapters/node/create-app.ts +116 -0
- package/src/adapters/node/http-request-bridge.test.ts +146 -0
- package/src/adapters/node/http-request-bridge.ts +176 -0
- package/src/adapters/node/node-client-bridge.test.ts +198 -0
- package/src/adapters/node/node-client-bridge.ts +79 -0
- package/src/adapters/node/node-hmr-manager.test.ts +374 -0
- package/src/adapters/node/node-hmr-manager.ts +72 -0
- package/src/adapters/node/runtime-host.test.ts +49 -0
- package/src/adapters/node/runtime-host.ts +113 -0
- package/src/adapters/node/server-adapter-dependencies.ts +28 -0
- package/src/adapters/node/server-adapter.test.ts +84 -0
- package/src/adapters/node/server-adapter.ts +423 -0
- package/src/adapters/node/static-content-server.test.ts +60 -0
- package/src/adapters/node/static-content-server.ts +239 -0
- package/src/adapters/node/static-preview-host.test.ts +89 -0
- package/src/adapters/node/static-preview-host.ts +101 -0
- package/src/adapters/shared/api-response.test.ts +97 -0
- package/src/adapters/shared/api-response.ts +104 -0
- package/src/adapters/shared/application-adapter.ts +199 -0
- package/src/adapters/shared/define-api-handler.ts +66 -0
- package/src/adapters/shared/explicit-static-render-preparation.ts +58 -0
- package/src/adapters/shared/explicit-static-route-matcher.test.ts +381 -0
- package/src/adapters/shared/explicit-static-route-matcher.ts +131 -0
- package/src/adapters/shared/file-route-middleware-pipeline.test.ts +85 -0
- package/src/adapters/shared/file-route-middleware-pipeline.ts +118 -0
- package/src/adapters/shared/fs-server-response-factory.test.ts +176 -0
- package/src/adapters/shared/fs-server-response-factory.ts +96 -0
- package/src/adapters/shared/fs-server-response-matcher.test.ts +311 -0
- package/src/adapters/shared/fs-server-response-matcher.ts +240 -0
- package/src/adapters/shared/hmr-entrypoint-registrar.ts +149 -0
- package/src/adapters/shared/hmr-html-response.ts +54 -0
- package/src/adapters/shared/hmr-manager.contract.test.ts +228 -0
- package/src/adapters/shared/hmr-manager.dispatch.test.ts +229 -0
- package/src/adapters/shared/render-context.test.ts +244 -0
- package/src/adapters/shared/render-context.ts +161 -0
- package/src/adapters/shared/runtime-app-bootstrap.test.ts +96 -0
- package/src/adapters/shared/runtime-app-bootstrap.ts +72 -0
- package/src/adapters/shared/runtime-host.ts +11 -0
- package/src/adapters/shared/server-adapter.test.ts +130 -0
- package/src/adapters/shared/server-adapter.ts +571 -0
- package/src/adapters/shared/server-route-handler.test.ts +112 -0
- package/src/adapters/shared/server-route-handler.ts +153 -0
- package/src/adapters/shared/server-static-builder.test.ts +338 -0
- package/src/adapters/shared/server-static-builder.ts +170 -0
- package/src/adapters/shared/shared-hmr-manager.ts +298 -0
- package/src/adapters/shared/static-preview-host.ts +12 -0
- package/src/build/README.md +57 -73
- package/src/build/browser-runtime-manifest.test.ts +121 -0
- package/src/build/browser-runtime-manifest.ts +105 -0
- package/src/build/browser-runtime-plugin-helpers.test.ts +49 -0
- package/src/build/browser-runtime-plugin-helpers.ts +37 -0
- package/src/build/browser-runtime-plugin.test.ts +256 -0
- package/src/build/browser-runtime-plugin.ts +306 -0
- package/src/build/build-adapter.test.ts +463 -0
- package/src/build/build-adapter.ts +788 -0
- package/src/build/build-manifest.ts +79 -0
- package/src/build/build-types.ts +83 -0
- package/src/build/rolldown-build-adapter.test.ts +352 -0
- package/src/build/rolldown-build-adapter.ts +363 -0
- package/src/build/rolldown-plugin-bridge.test.ts +256 -0
- package/src/build/rolldown-plugin-bridge.ts +309 -0
- package/src/build/runtime-build-executor.test.ts +130 -0
- package/src/build/runtime-build-executor.ts +37 -0
- package/src/build/runtime-build-output-normalizer.ts +137 -0
- package/src/build/serialized-build-executor.test.ts +96 -0
- package/src/build/serialized-build-executor.ts +90 -0
- package/src/build/server-side-css-shim-plugin.ts +77 -0
- package/src/cache/index.ts +6 -0
- package/src/cache/module-parse-cache.test.ts +73 -0
- package/src/cache/module-parse-cache.ts +137 -0
- package/src/config/README.md +1 -1
- package/src/config/config-builder.test.ts +456 -0
- package/src/config/config-builder.ts +728 -0
- package/src/config/config-builder.typecheck.test.ts +96 -0
- package/src/config/{constants.d.ts → constants.ts} +22 -13
- package/src/dev/host-runtime.ts +34 -0
- package/src/dev/sc-server.ts +143 -0
- package/src/eco/eco.browser.test.ts +43 -0
- package/src/eco/eco.browser.ts +137 -0
- package/src/eco/eco.test.ts +781 -0
- package/src/eco/eco.ts +262 -0
- package/src/eco/eco.types.ts +293 -0
- package/src/eco/eco.utils.test.ts +219 -0
- package/src/eco/eco.utils.ts +5 -0
- package/src/eco/global-injector-map.test.ts +42 -0
- package/src/eco/global-injector-map.ts +112 -0
- package/src/eco/lazy-injector-map.test.ts +66 -0
- package/src/eco/lazy-injector-map.ts +120 -0
- package/src/eco/module-dependencies.test.ts +30 -0
- package/src/eco/module-dependencies.ts +75 -0
- package/src/errors/http-error.test.ts +134 -0
- package/src/errors/http-error.ts +72 -0
- package/src/errors/index.ts +3 -0
- package/src/errors/locals-access-error.ts +7 -0
- package/src/global/app-logger.ts +4 -0
- package/src/global/utils.test.ts +12 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-have-HMR-script-injected-in-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
- package/src/hmr/client/hmr-runtime.ts +162 -0
- package/src/hmr/hmr-strategy.test.ts +124 -0
- package/src/hmr/hmr-strategy.ts +177 -0
- package/src/hmr/hmr.postcss.test.e2e.ts +41 -0
- package/src/hmr/hmr.test.e2e.ts +66 -0
- package/src/hmr/strategies/default-hmr-strategy.ts +60 -0
- package/src/hmr/strategies/js-hmr-strategy.test.ts +344 -0
- package/src/hmr/strategies/js-hmr-strategy.ts +307 -0
- package/src/index.browser.ts +3 -0
- package/src/index.ts +15 -0
- package/src/integrations/ghtml/ghtml-renderer.test.ts +253 -0
- package/src/integrations/ghtml/ghtml-renderer.ts +87 -0
- package/src/integrations/ghtml/ghtml.constants.ts +1 -0
- package/src/integrations/ghtml/ghtml.plugin.ts +28 -0
- package/src/plugins/alias-resolver-cache.test.ts +110 -0
- package/src/plugins/alias-resolver-cache.ts +145 -0
- package/src/plugins/alias-resolver-plugin.test.ts +41 -0
- package/src/plugins/alias-resolver-plugin.ts +75 -0
- package/src/plugins/eco-component-meta-plugin.test.ts +421 -0
- package/src/plugins/eco-component-meta-plugin.ts +518 -0
- package/src/plugins/foreign-jsx-override-plugin.test.ts +65 -0
- package/src/plugins/foreign-jsx-override-plugin.ts +76 -0
- package/src/plugins/integration-plugin.test.ts +151 -0
- package/src/plugins/integration-plugin.ts +344 -0
- package/src/plugins/processor.test.ts +148 -0
- package/src/plugins/processor.ts +257 -0
- package/src/plugins/{runtime-capability.d.ts → runtime-capability.ts} +8 -3
- package/src/plugins/source-transform.test.ts +82 -0
- package/src/plugins/source-transform.ts +123 -0
- package/src/route-renderer/orchestration/component-render-context.ts +338 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.ts +62 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.ts +431 -0
- package/src/route-renderer/orchestration/integration-renderer.test.ts +2251 -0
- package/src/route-renderer/orchestration/integration-renderer.ts +1384 -0
- package/src/route-renderer/orchestration/ownership-planning.service.ts +97 -0
- package/src/route-renderer/orchestration/ownership-validation.service.ts +76 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.ts +29 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.test.ts +435 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.ts +310 -0
- package/src/route-renderer/orchestration/render-output.utils.ts +310 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.prepare-render-options.test.ts +1365 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.test.ts +267 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.ts +879 -0
- package/src/route-renderer/orchestration/template-serialization.test.ts +110 -0
- package/src/route-renderer/orchestration/template-serialization.ts +117 -0
- package/src/route-renderer/page-loading/component-dependency-collection.ts +202 -0
- package/src/route-renderer/page-loading/declared-asset-collection.ts +153 -0
- package/src/route-renderer/page-loading/dependency-resolver.test.ts +761 -0
- package/src/route-renderer/page-loading/dependency-resolver.ts +144 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +75 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.ts +167 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.ts +74 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.ts +60 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.ts +16 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.ts +244 -0
- package/src/route-renderer/page-loading/page-module-loader.test.ts +183 -0
- package/src/route-renderer/page-loading/page-module-loader.ts +184 -0
- package/src/route-renderer/route-renderer.ts +133 -0
- package/src/router/client/link-intent.test.browser.ts +51 -0
- package/src/router/client/link-intent.ts +92 -0
- package/src/router/client/navigation-coordinator.test.ts +237 -0
- package/src/router/client/navigation-coordinator.ts +453 -0
- package/src/router/server/route-registry.test.ts +176 -0
- package/src/router/server/route-registry.ts +382 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +66 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +473 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.ts +344 -0
- package/src/services/assets/asset-processing-service/asset.factory.test.ts +63 -0
- package/src/services/assets/asset-processing-service/asset.factory.ts +105 -0
- package/src/services/assets/asset-processing-service/assets.types.ts +128 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +74 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +98 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +67 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +78 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +104 -0
- package/src/services/assets/asset-processing-service/index.ts +6 -0
- package/src/services/assets/asset-processing-service/page-package.test.ts +135 -0
- package/src/services/assets/asset-processing-service/page-package.ts +103 -0
- package/src/services/assets/asset-processing-service/{processor.interface.d.ts → processor.interface.ts} +10 -5
- package/src/services/assets/asset-processing-service/processor.registry.ts +18 -0
- package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +59 -0
- package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +83 -0
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +173 -0
- package/src/services/assets/asset-processing-service/processors/index.ts +5 -0
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +188 -0
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +138 -0
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +326 -0
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +116 -0
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +270 -0
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +145 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +261 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +72 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +83 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +65 -0
- package/src/services/assets/browser-bundle.service.test.ts +66 -0
- package/src/services/assets/browser-bundle.service.ts +109 -0
- package/src/services/cache/cache.types.ts +126 -0
- package/src/services/cache/index.ts +18 -0
- package/src/services/cache/memory-cache-store.test.ts +225 -0
- package/src/services/cache/memory-cache-store.ts +130 -0
- package/src/services/cache/page-cache-service.test.ts +175 -0
- package/src/services/cache/page-cache-service.ts +202 -0
- package/src/services/cache/page-request-cache-coordinator.service.test.ts +79 -0
- package/src/services/cache/page-request-cache-coordinator.service.ts +131 -0
- package/src/services/html/html-rewriter-provider.service.test.ts +183 -0
- package/src/services/html/html-rewriter-provider.service.ts +105 -0
- package/src/services/html/html-transformer.service.test.ts +544 -0
- package/src/services/html/html-transformer.service.ts +369 -0
- package/src/services/invalidation/development-invalidation.service.test.ts +87 -0
- package/src/services/invalidation/development-invalidation.service.ts +262 -0
- package/src/services/module-loading/app-module-loader.service.ts +9 -0
- package/src/services/module-loading/app-server-module-transpiler.service.test.ts +297 -0
- package/src/services/module-loading/app-server-module-transpiler.service.ts +168 -0
- package/src/services/module-loading/host-module-loader-registry.ts +15 -0
- package/src/services/module-loading/{module-loading-types.d.ts → module-loading-types.ts} +1 -0
- package/src/services/module-loading/page-module-import.service.test.ts +652 -0
- package/src/services/module-loading/page-module-import.service.ts +302 -0
- package/src/services/module-loading/server-module-transpiler.service.test.ts +242 -0
- package/src/services/module-loading/server-module-transpiler.service.ts +104 -0
- package/src/services/module-loading/source-module-support.ts +19 -0
- package/src/services/runtime-state/dev-graph.service.ts +217 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +136 -0
- package/src/services/runtime-state/server-invalidation-state.service.ts +68 -0
- package/src/services/validation/schema-validation-service.test.ts +223 -0
- package/src/services/validation/schema-validation-service.ts +204 -0
- package/src/services/validation/{standard-schema.types.d.ts → standard-schema.types.ts} +20 -17
- package/src/static-site-generator/static-site-generator.test.ts +408 -0
- package/src/static-site-generator/static-site-generator.ts +445 -0
- package/src/types/internal-types.ts +243 -0
- package/src/types/public-types.ts +1508 -0
- package/src/utils/deep-merge.test.ts +114 -0
- package/src/utils/deep-merge.ts +47 -0
- package/src/utils/hash.ts +5 -0
- package/src/utils/html-escaping.ts +9 -0
- package/src/utils/invariant.test.ts +22 -0
- package/src/utils/invariant.ts +15 -0
- package/src/utils/locals-utils.ts +37 -0
- package/src/utils/parse-cli-args.test.ts +69 -0
- package/src/utils/parse-cli-args.ts +105 -0
- package/src/utils/path-utils.module.ts +14 -0
- package/src/utils/path-utils.test.ts +15 -0
- package/src/utils/resolve-work-dir.ts +45 -0
- package/src/utils/runtime.ts +44 -0
- package/src/utils/server-utils.module.ts +67 -0
- package/src/utils/server-utils.test.ts +38 -0
- package/src/watchers/project-watcher.integration.test.ts +337 -0
- package/src/watchers/project-watcher.test-helpers.ts +42 -0
- package/src/watchers/project-watcher.test.ts +768 -0
- package/src/watchers/project-watcher.ts +357 -0
- package/src/adapters/abstract/application-adapter.d.ts +0 -194
- package/src/adapters/abstract/application-adapter.js +0 -121
- package/src/adapters/abstract/router-adapter.d.ts +0 -26
- package/src/adapters/abstract/router-adapter.js +0 -5
- package/src/adapters/abstract/server-adapter.d.ts +0 -69
- package/src/adapters/abstract/server-adapter.js +0 -15
- package/src/adapters/bun/client-bridge.d.ts +0 -34
- package/src/adapters/bun/client-bridge.js +0 -48
- package/src/adapters/bun/create-app.d.ts +0 -60
- package/src/adapters/bun/create-app.js +0 -140
- package/src/adapters/bun/hmr-manager.d.ts +0 -47
- package/src/adapters/bun/hmr-manager.js +0 -58
- package/src/adapters/bun/index.d.ts +0 -2
- package/src/adapters/bun/index.js +0 -8
- package/src/adapters/bun/runtime-host.d.ts +0 -52
- package/src/adapters/bun/runtime-host.js +0 -56
- package/src/adapters/bun/server-adapter.d.ts +0 -216
- package/src/adapters/bun/server-adapter.js +0 -445
- package/src/adapters/bun/static-preview-host.d.ts +0 -28
- package/src/adapters/bun/static-preview-host.js +0 -45
- package/src/adapters/create-app.d.ts +0 -20
- package/src/adapters/create-app.js +0 -66
- package/src/adapters/index.d.ts +0 -2
- package/src/adapters/index.js +0 -8
- package/src/adapters/node/create-app.d.ts +0 -24
- package/src/adapters/node/create-app.js +0 -92
- package/src/adapters/node/http-request-bridge.d.ts +0 -57
- package/src/adapters/node/http-request-bridge.js +0 -118
- package/src/adapters/node/node-client-bridge.d.ts +0 -26
- package/src/adapters/node/node-client-bridge.js +0 -66
- package/src/adapters/node/node-hmr-manager.d.ts +0 -52
- package/src/adapters/node/node-hmr-manager.js +0 -49
- package/src/adapters/node/runtime-host.d.ts +0 -57
- package/src/adapters/node/runtime-host.js +0 -92
- package/src/adapters/node/server-adapter-dependencies.d.ts +0 -19
- package/src/adapters/node/server-adapter-dependencies.js +0 -18
- package/src/adapters/node/server-adapter.d.ts +0 -138
- package/src/adapters/node/server-adapter.js +0 -315
- package/src/adapters/node/static-content-server.d.ts +0 -60
- package/src/adapters/node/static-content-server.js +0 -194
- package/src/adapters/node/static-preview-host.d.ts +0 -55
- package/src/adapters/node/static-preview-host.js +0 -68
- package/src/adapters/shared/api-response.d.ts +0 -52
- package/src/adapters/shared/api-response.js +0 -96
- package/src/adapters/shared/application-adapter.d.ts +0 -18
- package/src/adapters/shared/application-adapter.js +0 -90
- package/src/adapters/shared/define-api-handler.d.ts +0 -25
- package/src/adapters/shared/define-api-handler.js +0 -15
- package/src/adapters/shared/explicit-static-render-preparation.d.ts +0 -25
- package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +0 -41
- package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +0 -62
- package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
- package/src/adapters/shared/fs-server-response-factory.d.ts +0 -23
- package/src/adapters/shared/fs-server-response-factory.js +0 -81
- package/src/adapters/shared/fs-server-response-matcher.d.ts +0 -75
- package/src/adapters/shared/fs-server-response-matcher.js +0 -186
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
- package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
- package/src/adapters/shared/hmr-html-response.d.ts +0 -22
- package/src/adapters/shared/hmr-html-response.js +0 -33
- package/src/adapters/shared/render-context.d.ts +0 -16
- package/src/adapters/shared/render-context.js +0 -93
- package/src/adapters/shared/runtime-app-bootstrap.d.ts +0 -26
- package/src/adapters/shared/runtime-app-bootstrap.js +0 -46
- package/src/adapters/shared/runtime-host.d.ts +0 -12
- package/src/adapters/shared/runtime-host.js +0 -0
- package/src/adapters/shared/server-adapter.d.ts +0 -108
- package/src/adapters/shared/server-adapter.js +0 -436
- package/src/adapters/shared/server-route-handler.d.ts +0 -89
- package/src/adapters/shared/server-route-handler.js +0 -111
- package/src/adapters/shared/server-static-builder.d.ts +0 -71
- package/src/adapters/shared/server-static-builder.js +0 -100
- package/src/adapters/shared/shared-hmr-manager.d.ts +0 -59
- package/src/adapters/shared/shared-hmr-manager.js +0 -241
- package/src/adapters/shared/static-preview-host.d.ts +0 -10
- package/src/adapters/shared/static-preview-host.js +0 -0
- package/src/build/browser-runtime-import-rewrite-plugin.d.ts +0 -26
- package/src/build/browser-runtime-import-rewrite-plugin.js +0 -165
- package/src/build/browser-runtime-manifest.d.ts +0 -31
- package/src/build/browser-runtime-manifest.js +0 -61
- package/src/build/build-adapter.d.ts +0 -247
- package/src/build/build-adapter.js +0 -671
- package/src/build/build-manifest.d.ts +0 -33
- package/src/build/build-manifest.js +0 -52
- package/src/build/build-types.d.ts +0 -57
- package/src/build/build-types.js +0 -0
- package/src/build/dev-build-coordinator.d.ts +0 -72
- package/src/build/dev-build-coordinator.js +0 -154
- package/src/build/esbuild-build-adapter.d.ts +0 -79
- package/src/build/esbuild-build-adapter.js +0 -521
- package/src/build/runtime-build-executor.d.ts +0 -14
- package/src/build/runtime-build-executor.js +0 -22
- package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
- package/src/build/runtime-specifier-alias-plugin.js +0 -31
- package/src/config/config-builder.d.ts +0 -252
- package/src/config/config-builder.js +0 -598
- package/src/config/constants.js +0 -25
- package/src/dev/host-runtime.d.ts +0 -10
- package/src/dev/host-runtime.js +0 -24
- package/src/dev/sc-server.d.ts +0 -30
- package/src/dev/sc-server.js +0 -111
- package/src/eco/eco.browser.d.ts +0 -2
- package/src/eco/eco.browser.js +0 -88
- package/src/eco/eco.d.ts +0 -9
- package/src/eco/eco.js +0 -119
- package/src/eco/eco.types.d.ts +0 -233
- package/src/eco/eco.types.js +0 -0
- package/src/eco/eco.utils.d.ts +0 -1
- package/src/eco/eco.utils.js +0 -10
- package/src/eco/global-injector-map.d.ts +0 -16
- package/src/eco/global-injector-map.js +0 -80
- package/src/eco/lazy-injector-map.d.ts +0 -8
- package/src/eco/lazy-injector-map.js +0 -70
- package/src/eco/module-dependencies.d.ts +0 -18
- package/src/eco/module-dependencies.js +0 -49
- package/src/errors/http-error.d.ts +0 -31
- package/src/errors/http-error.js +0 -50
- package/src/errors/index.d.ts +0 -3
- package/src/errors/index.js +0 -6
- package/src/errors/locals-access-error.d.ts +0 -4
- package/src/errors/locals-access-error.js +0 -9
- package/src/global/app-logger.d.ts +0 -2
- package/src/global/app-logger.js +0 -6
- package/src/hmr/client/hmr-runtime.d.ts +0 -5
- package/src/hmr/client/hmr-runtime.js +0 -117
- package/src/hmr/hmr-strategy.d.ts +0 -162
- package/src/hmr/hmr-strategy.js +0 -44
- package/src/hmr/hmr.postcss.test.e2e.d.ts +0 -1
- package/src/hmr/hmr.postcss.test.e2e.js +0 -31
- package/src/hmr/hmr.test.e2e.d.ts +0 -1
- package/src/hmr/hmr.test.e2e.js +0 -43
- package/src/hmr/strategies/default-hmr-strategy.d.ts +0 -43
- package/src/hmr/strategies/default-hmr-strategy.js +0 -34
- package/src/hmr/strategies/js-hmr-strategy.d.ts +0 -134
- package/src/hmr/strategies/js-hmr-strategy.js +0 -173
- package/src/index.browser.d.ts +0 -3
- package/src/index.browser.js +0 -4
- package/src/index.d.ts +0 -6
- package/src/index.js +0 -21
- package/src/integrations/ghtml/ghtml-renderer.d.ts +0 -16
- package/src/integrations/ghtml/ghtml-renderer.js +0 -57
- package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
- package/src/integrations/ghtml/ghtml.constants.js +0 -4
- package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
- package/src/integrations/ghtml/ghtml.plugin.js +0 -20
- package/src/plugins/alias-resolver-plugin.d.ts +0 -3
- package/src/plugins/alias-resolver-plugin.js +0 -61
- package/src/plugins/eco-component-meta-plugin.d.ts +0 -108
- package/src/plugins/eco-component-meta-plugin.js +0 -175
- package/src/plugins/foreign-jsx-override-plugin.d.ts +0 -33
- package/src/plugins/foreign-jsx-override-plugin.js +0 -41
- package/src/plugins/integration-plugin.d.ts +0 -230
- package/src/plugins/integration-plugin.js +0 -201
- package/src/plugins/processor.d.ts +0 -97
- package/src/plugins/processor.js +0 -141
- package/src/plugins/runtime-capability.js +0 -0
- package/src/plugins/source-transform.d.ts +0 -46
- package/src/plugins/source-transform.js +0 -71
- package/src/route-renderer/orchestration/component-render-context.d.ts +0 -97
- package/src/route-renderer/orchestration/component-render-context.js +0 -147
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
- package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +0 -110
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -233
- package/src/route-renderer/orchestration/integration-renderer.d.ts +0 -534
- package/src/route-renderer/orchestration/integration-renderer.js +0 -991
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
- package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
- package/src/route-renderer/orchestration/ownership-validation.service.d.ts +0 -29
- package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
- package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +0 -3
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
- package/src/route-renderer/orchestration/render-output.utils.d.ts +0 -66
- package/src/route-renderer/orchestration/render-output.utils.js +0 -171
- package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +0 -156
- package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -577
- package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
- package/src/route-renderer/orchestration/template-serialization.js +0 -45
- package/src/route-renderer/page-loading/component-dependency-collection.d.ts +0 -37
- package/src/route-renderer/page-loading/component-dependency-collection.js +0 -132
- package/src/route-renderer/page-loading/declared-asset-collection.d.ts +0 -24
- package/src/route-renderer/page-loading/declared-asset-collection.js +0 -106
- package/src/route-renderer/page-loading/dependency-resolver.d.ts +0 -35
- package/src/route-renderer/page-loading/dependency-resolver.js +0 -115
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +0 -11
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +0 -57
- package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +0 -45
- package/src/route-renderer/page-loading/lazy-entry-collection.js +0 -105
- package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +0 -19
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +0 -40
- package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +0 -5
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +0 -33
- package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +0 -3
- package/src/route-renderer/page-loading/module-declaration-scripts.js +0 -18
- package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +0 -13
- package/src/route-renderer/page-loading/page-dependency-bundling.js +0 -137
- package/src/route-renderer/page-loading/page-module-loader.d.ts +0 -90
- package/src/route-renderer/page-loading/page-module-loader.js +0 -127
- package/src/route-renderer/route-renderer.d.ts +0 -69
- package/src/route-renderer/route-renderer.js +0 -80
- package/src/router/client/link-intent.js +0 -34
- package/src/router/client/link-intent.test.browser.d.ts +0 -1
- package/src/router/client/link-intent.test.browser.js +0 -43
- package/src/router/client/navigation-coordinator.d.ts +0 -169
- package/src/router/client/navigation-coordinator.js +0 -215
- package/src/router/server/route-registry.d.ts +0 -78
- package/src/router/server/route-registry.js +0 -262
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +0 -3
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +0 -56
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +0 -103
- package/src/services/assets/asset-processing-service/asset-processing.service.js +0 -285
- package/src/services/assets/asset-processing-service/asset.factory.d.ts +0 -17
- package/src/services/assets/asset-processing-service/asset.factory.js +0 -82
- package/src/services/assets/asset-processing-service/assets.types.d.ts +0 -103
- 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 +0 -57
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +0 -49
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +0 -20
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +0 -41
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +0 -30
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +0 -65
- package/src/services/assets/asset-processing-service/index.d.ts +0 -6
- package/src/services/assets/asset-processing-service/index.js +0 -6
- package/src/services/assets/asset-processing-service/page-package.d.ts +0 -6
- package/src/services/assets/asset-processing-service/page-package.js +0 -80
- package/src/services/assets/asset-processing-service/processor.interface.js +0 -6
- package/src/services/assets/asset-processing-service/processor.registry.d.ts +0 -8
- package/src/services/assets/asset-processing-service/processor.registry.js +0 -15
- package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +0 -24
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +0 -65
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -22
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +0 -136
- package/src/services/assets/asset-processing-service/processors/index.d.ts +0 -5
- package/src/services/assets/asset-processing-service/processors/index.js +0 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +0 -6
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +0 -120
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -9
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +0 -97
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -42
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +0 -126
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -8
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -59
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -9
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +0 -69
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -18
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +0 -45
- package/src/services/assets/browser-bundle.service.d.ts +0 -73
- package/src/services/assets/browser-bundle.service.js +0 -41
- package/src/services/cache/cache.types.d.ts +0 -107
- package/src/services/cache/cache.types.js +0 -0
- package/src/services/cache/index.d.ts +0 -7
- package/src/services/cache/index.js +0 -7
- package/src/services/cache/memory-cache-store.d.ts +0 -42
- package/src/services/cache/memory-cache-store.js +0 -98
- package/src/services/cache/page-cache-service.d.ts +0 -70
- package/src/services/cache/page-cache-service.js +0 -152
- package/src/services/cache/page-request-cache-coordinator.service.d.ts +0 -75
- package/src/services/cache/page-request-cache-coordinator.service.js +0 -109
- package/src/services/html/html-rewriter-provider.service.d.ts +0 -40
- package/src/services/html/html-rewriter-provider.service.js +0 -68
- package/src/services/html/html-transformer.service.d.ts +0 -96
- package/src/services/html/html-transformer.service.js +0 -287
- package/src/services/invalidation/development-invalidation.service.d.ts +0 -74
- package/src/services/invalidation/development-invalidation.service.js +0 -190
- package/src/services/module-loading/app-module-loader.service.d.ts +0 -7
- package/src/services/module-loading/app-module-loader.service.js +0 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +0 -24
- package/src/services/module-loading/app-server-module-transpiler.service.js +0 -151
- package/src/services/module-loading/host-module-loader-registry.d.ts +0 -4
- package/src/services/module-loading/host-module-loader-registry.js +0 -15
- package/src/services/module-loading/module-loading-types.js +0 -0
- package/src/services/module-loading/node-bootstrap-plugin.d.ts +0 -38
- package/src/services/module-loading/node-bootstrap-plugin.js +0 -215
- package/src/services/module-loading/page-module-import.service.d.ts +0 -95
- package/src/services/module-loading/page-module-import.service.js +0 -191
- package/src/services/module-loading/server-module-transpiler.service.d.ts +0 -63
- package/src/services/module-loading/server-module-transpiler.service.js +0 -64
- package/src/services/module-loading/source-module-support.d.ts +0 -5
- package/src/services/module-loading/source-module-support.js +0 -8
- package/src/services/runtime-state/dev-graph.service.d.ts +0 -118
- package/src/services/runtime-state/dev-graph.service.js +0 -162
- package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +0 -41
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +0 -85
- package/src/services/runtime-state/server-invalidation-state.service.d.ts +0 -26
- package/src/services/runtime-state/server-invalidation-state.service.js +0 -35
- package/src/services/validation/schema-validation-service.d.ts +0 -122
- package/src/services/validation/schema-validation-service.js +0 -101
- package/src/services/validation/standard-schema.types.js +0 -0
- package/src/static-site-generator/static-site-generator.d.ts +0 -104
- package/src/static-site-generator/static-site-generator.js +0 -316
- package/src/types/internal-types.d.ts +0 -232
- package/src/types/internal-types.js +0 -0
- package/src/types/public-types.d.ts +0 -1307
- package/src/types/public-types.js +0 -0
- package/src/utils/deep-merge.d.ts +0 -14
- package/src/utils/deep-merge.js +0 -32
- package/src/utils/hash.d.ts +0 -1
- package/src/utils/hash.js +0 -7
- package/src/utils/html-escaping.d.ts +0 -7
- package/src/utils/html-escaping.js +0 -6
- package/src/utils/html.js +0 -4
- package/src/utils/invariant.d.ts +0 -5
- package/src/utils/invariant.js +0 -11
- package/src/utils/locals-utils.d.ts +0 -15
- package/src/utils/locals-utils.js +0 -24
- package/src/utils/parse-cli-args.d.ts +0 -27
- package/src/utils/parse-cli-args.js +0 -62
- package/src/utils/path-utils.module.d.ts +0 -5
- package/src/utils/path-utils.module.js +0 -14
- package/src/utils/resolve-work-dir.d.ts +0 -11
- package/src/utils/resolve-work-dir.js +0 -31
- package/src/utils/runtime.d.ts +0 -11
- package/src/utils/runtime.js +0 -40
- package/src/utils/server-utils.module.d.ts +0 -19
- package/src/utils/server-utils.module.js +0 -56
- package/src/watchers/project-watcher.d.ts +0 -136
- package/src/watchers/project-watcher.js +0 -275
- package/src/watchers/project-watcher.test-helpers.d.ts +0 -4
- package/src/watchers/project-watcher.test-helpers.js +0 -52
- /package/src/utils/{html.d.ts → html.ts} +0 -0
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import type { Server, WebSocketHandler } from 'bun';
|
|
2
|
-
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
3
|
-
import type { ApiHandler, ErrorHandler, StaticRoute } from '../../types/public-types.js';
|
|
4
|
-
import { SharedServerAdapter } from '../shared/server-adapter.js';
|
|
5
|
-
import type { ServerAdapterResult } from '../abstract/server-adapter.js';
|
|
6
|
-
import type { StaticPreviewHost } from '../shared/static-preview-host.js';
|
|
7
|
-
import { ClientBridge } from './client-bridge.js';
|
|
8
|
-
import { HmrManager } from './hmr-manager.js';
|
|
9
|
-
type BunServerInstance = Server<unknown>;
|
|
10
|
-
type BunNativeServeOptions = Bun.Serve.Options<unknown>;
|
|
11
|
-
export type BunServerRoutes = Bun.Serve.Routes<unknown, string>;
|
|
12
|
-
export type BunServeAdapterServerOptions = Partial<Omit<BunNativeServeOptions, 'fetch'> & {
|
|
13
|
-
fetch(this: BunServerInstance, request: Request): Promise<void | Response>;
|
|
14
|
-
}>;
|
|
15
|
-
export type BunServeOptions = Omit<BunNativeServeOptions, 'fetch'> & {
|
|
16
|
-
fetch?: (this: BunServerInstance, request: Request, server: BunServerInstance) => Promise<void | Response>;
|
|
17
|
-
websocket?: WebSocketHandler<unknown>;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Construction parameters for the Bun server adapter.
|
|
21
|
-
*
|
|
22
|
-
* @remarks
|
|
23
|
-
* Callers normally provide only the app-facing fields such as routes, handlers,
|
|
24
|
-
* and `serveOptions`. The transport collaborators remain optional here because
|
|
25
|
-
* `createBunServerAdapter()` fills in Bun-specific defaults before the concrete
|
|
26
|
-
* adapter instance is created.
|
|
27
|
-
*/
|
|
28
|
-
export interface BunServerAdapterParams {
|
|
29
|
-
appConfig: EcoPagesAppConfig;
|
|
30
|
-
runtimeOrigin: string;
|
|
31
|
-
serveOptions: BunServeAdapterServerOptions;
|
|
32
|
-
apiHandlers?: ApiHandler<string, Request, BunServerInstance>[];
|
|
33
|
-
staticRoutes?: StaticRoute[];
|
|
34
|
-
errorHandler?: ErrorHandler;
|
|
35
|
-
options?: {
|
|
36
|
-
watch?: boolean;
|
|
37
|
-
};
|
|
38
|
-
hmrManager?: HmrManager;
|
|
39
|
-
bridge?: ClientBridge;
|
|
40
|
-
previewHost?: StaticPreviewHost;
|
|
41
|
-
}
|
|
42
|
-
export interface BunServerAdapterResult extends ServerAdapterResult {
|
|
43
|
-
getServerOptions: (options?: {
|
|
44
|
-
enableHmr?: boolean;
|
|
45
|
-
}) => BunServeOptions;
|
|
46
|
-
buildStatic: (options?: {
|
|
47
|
-
preview?: boolean;
|
|
48
|
-
}) => Promise<void>;
|
|
49
|
-
completeInitialization: (server?: BunServerInstance | null) => Promise<void>;
|
|
50
|
-
handleRequest: (request: Request) => Promise<Response>;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Bun transport adapter that wires shared Ecopages request handling onto a live
|
|
54
|
-
* `Bun.serve()` runtime.
|
|
55
|
-
*
|
|
56
|
-
* @remarks
|
|
57
|
-
* The adapter owns Bun-specific concerns that do not exist in the shared server
|
|
58
|
-
* abstraction: websocket-backed HMR transport, runtime plugin registration, and
|
|
59
|
-
* preview-host startup for static builds. Routing, rendering, and response
|
|
60
|
-
* composition still delegate to the shared server adapter base.
|
|
61
|
-
*/
|
|
62
|
-
export declare class BunServerAdapter extends SharedServerAdapter<BunServerAdapterParams, BunServerAdapterResult> {
|
|
63
|
-
appConfig: EcoPagesAppConfig;
|
|
64
|
-
options: BunServerAdapterParams['options'];
|
|
65
|
-
serveOptions: BunServeAdapterServerOptions;
|
|
66
|
-
protected apiHandlers: ApiHandler<string, Request, BunServerInstance>[];
|
|
67
|
-
protected staticRoutes: StaticRoute[];
|
|
68
|
-
protected errorHandler?: ErrorHandler;
|
|
69
|
-
private bridge;
|
|
70
|
-
hmrManager: HmrManager;
|
|
71
|
-
private initializationPromise;
|
|
72
|
-
private fullyInitialized;
|
|
73
|
-
serverInstance: BunServerInstance | null;
|
|
74
|
-
private readonly previewHost;
|
|
75
|
-
/**
|
|
76
|
-
* Creates a Bun server adapter with already-resolved runtime collaborators.
|
|
77
|
-
*
|
|
78
|
-
* @remarks
|
|
79
|
-
* The public params interface keeps `hmrManager`, `bridge`, and `previewHost`
|
|
80
|
-
* optional so factory callers can omit them. By the time the concrete adapter
|
|
81
|
-
* is constructed, those collaborators are mandatory because the adapter cannot
|
|
82
|
-
* initialize Bun HMR or preview flows without them.
|
|
83
|
-
*/
|
|
84
|
-
constructor({ appConfig, runtimeOrigin, serveOptions, apiHandlers, staticRoutes, errorHandler, options, hmrManager, bridge, previewHost, }: BunServerAdapterParams & {
|
|
85
|
-
hmrManager: HmrManager;
|
|
86
|
-
bridge: ClientBridge;
|
|
87
|
-
previewHost: StaticPreviewHost;
|
|
88
|
-
});
|
|
89
|
-
/**
|
|
90
|
-
* Returns whether adapter-level HTML responses still need HMR runtime injection.
|
|
91
|
-
*
|
|
92
|
-
* @remarks
|
|
93
|
-
* Filesystem-routed pages are wrapped later in the shared route layer. This
|
|
94
|
-
* adapter-level check exists for explicit API handlers that return HTML and
|
|
95
|
-
* would otherwise bypass the route wrapper entirely.
|
|
96
|
-
*/
|
|
97
|
-
private shouldInjectHmrScript;
|
|
98
|
-
/**
|
|
99
|
-
* Delegates the HTML-response test to the shared response helper used by both
|
|
100
|
-
* adapters.
|
|
101
|
-
*/
|
|
102
|
-
private isHtmlResponse;
|
|
103
|
-
/**
|
|
104
|
-
* Injects HMR script into HTML responses in development mode.
|
|
105
|
-
* Ensures explicit API handlers that return HTML get auto-reload capability.
|
|
106
|
-
*/
|
|
107
|
-
private maybeInjectHmrScript;
|
|
108
|
-
/**
|
|
109
|
-
* Initializes the server adapter's core runtime components.
|
|
110
|
-
*/
|
|
111
|
-
initialize(): Promise<void>;
|
|
112
|
-
/**
|
|
113
|
-
* Copies the source `public` directory into the runtime output and ensures the
|
|
114
|
-
* HMR assets directory exists before any runtime bundles are emitted.
|
|
115
|
-
*/
|
|
116
|
-
private prepareRuntimePublicDir;
|
|
117
|
-
/**
|
|
118
|
-
* Registers runtime plugins and propagates the final HMR manager into each
|
|
119
|
-
* integration.
|
|
120
|
-
*
|
|
121
|
-
* @remarks
|
|
122
|
-
* This is where Bun's runtime-plugin registration path meets the integration
|
|
123
|
-
* lifecycle. A failure here leaves the runtime partially bootstrapped, so the
|
|
124
|
-
* method logs the underlying error and rethrows instead of trying to limp on.
|
|
125
|
-
*/
|
|
126
|
-
private initializeRuntimePlugins;
|
|
127
|
-
/**
|
|
128
|
-
* Rebuilds the shared routing state and hot-reloads the live Bun server when a
|
|
129
|
-
* watched route file changes.
|
|
130
|
-
*/
|
|
131
|
-
private refreshRouterRoutes;
|
|
132
|
-
private watch;
|
|
133
|
-
/**
|
|
134
|
-
* Builds the `Bun.serve()` options for the current adapter state.
|
|
135
|
-
*
|
|
136
|
-
* @remarks
|
|
137
|
-
* The HMR-enabled variant wraps the base fetch handler so one Bun server can
|
|
138
|
-
* serve normal requests, accept HMR websocket upgrades, and expose the HMR
|
|
139
|
-
* runtime asset without splitting responsibility across separate listeners.
|
|
140
|
-
*/
|
|
141
|
-
getServerOptions({ enableHmr }?: {
|
|
142
|
-
enableHmr?: boolean | undefined;
|
|
143
|
-
}): BunServeOptions;
|
|
144
|
-
/**
|
|
145
|
-
* Helper method to retrieve and parse the request body.
|
|
146
|
-
* Handles JSON and plain text content types.
|
|
147
|
-
* For FormData (multipart/form-data, x-www-form-urlencoded), use ctx.request.formData() directly.
|
|
148
|
-
* Returns undefined for unsupported content types.
|
|
149
|
-
*/
|
|
150
|
-
private retrieveBodyFromRequest;
|
|
151
|
-
/**
|
|
152
|
-
* Composes the base Bun server settings that all runtime modes build from.
|
|
153
|
-
*
|
|
154
|
-
* @remarks
|
|
155
|
-
* This method centralizes the Bun-specific error boundary. It preserves the
|
|
156
|
-
* shared route pipeline while still allowing adapter-level custom error-handler
|
|
157
|
-
* execution and `HttpError` passthrough.
|
|
158
|
-
*/
|
|
159
|
-
private buildServerSettings;
|
|
160
|
-
/**
|
|
161
|
-
* Generates a static build of the site for deployment.
|
|
162
|
-
* @param options.preview - If true, starts a preview server after build
|
|
163
|
-
*/
|
|
164
|
-
buildStatic(options?: {
|
|
165
|
-
preview?: boolean;
|
|
166
|
-
}): Promise<void>;
|
|
167
|
-
/**
|
|
168
|
-
* Initializes the server with dynamic routes after server creation.
|
|
169
|
-
* Must be called before handling any requests.
|
|
170
|
-
* @param server - The Bun server instance
|
|
171
|
-
*/
|
|
172
|
-
completeInitialization(server?: BunServerInstance | null): Promise<void>;
|
|
173
|
-
/**
|
|
174
|
-
* Performs the one-time post-bind initialization path for Bun servers.
|
|
175
|
-
*
|
|
176
|
-
* @remarks
|
|
177
|
-
* This is intentionally split from `initialize()` because shared route handling
|
|
178
|
-
* and file watching need the live server instance to exist before Bun can
|
|
179
|
-
* reload updated route handlers in place.
|
|
180
|
-
*/
|
|
181
|
-
private _performInitialization;
|
|
182
|
-
/**
|
|
183
|
-
* Creates and initializes the Bun server adapter.
|
|
184
|
-
* @returns Configured adapter with server methods
|
|
185
|
-
*/
|
|
186
|
-
createAdapter(): Promise<BunServerAdapterResult>;
|
|
187
|
-
/**
|
|
188
|
-
* Handles HTTP requests by passing them securely to the shared core router adapter.
|
|
189
|
-
*/
|
|
190
|
-
handleRequest(request: Request): Promise<Response>;
|
|
191
|
-
/**
|
|
192
|
-
* Ensures server initialization completes before request handling.
|
|
193
|
-
* Prevents race conditions during startup.
|
|
194
|
-
*/
|
|
195
|
-
private waitForInitialization;
|
|
196
|
-
/**
|
|
197
|
-
* Handles HTTP requests from the router adapter.
|
|
198
|
-
*/
|
|
199
|
-
handleResponse(request: Request): Promise<Response>;
|
|
200
|
-
/**
|
|
201
|
-
* Handles requests that do not match any routes.
|
|
202
|
-
*/
|
|
203
|
-
private handleNoMatch;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Creates the Bun server adapter and fills in the runtime-specific collaborators
|
|
207
|
-
* that Bun callers usually leave implicit.
|
|
208
|
-
*
|
|
209
|
-
* @remarks
|
|
210
|
-
* This is the canonical entry point for Bun server-adapter construction. It
|
|
211
|
-
* guarantees that the concrete adapter receives a Bun websocket bridge, HMR
|
|
212
|
-
* manager, and preview host even though those dependencies are optional on the
|
|
213
|
-
* public params type.
|
|
214
|
-
*/
|
|
215
|
-
export declare function createBunServerAdapter(params: BunServerAdapterParams): Promise<BunServerAdapterResult>;
|
|
216
|
-
export {};
|
|
@@ -1,445 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
|
|
3
|
-
import { RESOLVED_ASSETS_DIR } from "../../config/constants.js";
|
|
4
|
-
import { appLogger } from "../../global/app-logger.js";
|
|
5
|
-
import { HttpError } from "../../errors/http-error.js";
|
|
6
|
-
import { createRequire } from "../../utils/locals-utils.js";
|
|
7
|
-
import { fileSystem } from "@ecopages/file-system";
|
|
8
|
-
import { getAppBrowserBuildPlugins, setupAppRuntimePlugins } from "../../build/build-adapter.js";
|
|
9
|
-
import { installAppRuntimeBuildExecutor } from "../../build/runtime-build-executor.js";
|
|
10
|
-
import { StaticSiteGenerator } from "../../static-site-generator/static-site-generator.js";
|
|
11
|
-
import { ProjectWatcher } from "../../watchers/project-watcher.js";
|
|
12
|
-
import { SharedServerAdapter } from "../shared/server-adapter.js";
|
|
13
|
-
import { ApiResponseBuilder } from "../shared/api-response.js";
|
|
14
|
-
import { ServerStaticBuilder } from "../shared/server-static-builder.js";
|
|
15
|
-
import {
|
|
16
|
-
injectHmrRuntimeIntoHtmlResponse,
|
|
17
|
-
isHtmlResponse,
|
|
18
|
-
shouldInjectHmrHtmlResponse
|
|
19
|
-
} from "../shared/hmr-html-response.js";
|
|
20
|
-
import { resolveServeRuntimeOrigin } from "../shared/runtime-app-bootstrap.js";
|
|
21
|
-
import { ClientBridge } from "./client-bridge.js";
|
|
22
|
-
import { HmrManager } from "./hmr-manager.js";
|
|
23
|
-
import { BunStaticPreviewHost } from "./static-preview-host.js";
|
|
24
|
-
class BunServerAdapter extends SharedServerAdapter {
|
|
25
|
-
apiHandlers;
|
|
26
|
-
staticRoutes;
|
|
27
|
-
errorHandler;
|
|
28
|
-
bridge;
|
|
29
|
-
hmrManager;
|
|
30
|
-
initializationPromise = null;
|
|
31
|
-
fullyInitialized = false;
|
|
32
|
-
previewHost;
|
|
33
|
-
/**
|
|
34
|
-
* Creates a Bun server adapter with already-resolved runtime collaborators.
|
|
35
|
-
*
|
|
36
|
-
* @remarks
|
|
37
|
-
* The public params interface keeps `hmrManager`, `bridge`, and `previewHost`
|
|
38
|
-
* optional so factory callers can omit them. By the time the concrete adapter
|
|
39
|
-
* is constructed, those collaborators are mandatory because the adapter cannot
|
|
40
|
-
* initialize Bun HMR or preview flows without them.
|
|
41
|
-
*/
|
|
42
|
-
constructor({
|
|
43
|
-
appConfig,
|
|
44
|
-
runtimeOrigin,
|
|
45
|
-
serveOptions,
|
|
46
|
-
apiHandlers,
|
|
47
|
-
staticRoutes,
|
|
48
|
-
errorHandler,
|
|
49
|
-
options,
|
|
50
|
-
hmrManager,
|
|
51
|
-
bridge,
|
|
52
|
-
previewHost
|
|
53
|
-
}) {
|
|
54
|
-
super({ appConfig, runtimeOrigin, serveOptions, options });
|
|
55
|
-
this.apiHandlers = apiHandlers || [];
|
|
56
|
-
this.staticRoutes = staticRoutes || [];
|
|
57
|
-
this.errorHandler = errorHandler;
|
|
58
|
-
this.bridge = bridge;
|
|
59
|
-
this.hmrManager = hmrManager;
|
|
60
|
-
this.previewHost = previewHost;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Returns whether adapter-level HTML responses still need HMR runtime injection.
|
|
64
|
-
*
|
|
65
|
-
* @remarks
|
|
66
|
-
* Filesystem-routed pages are wrapped later in the shared route layer. This
|
|
67
|
-
* adapter-level check exists for explicit API handlers that return HTML and
|
|
68
|
-
* would otherwise bypass the route wrapper entirely.
|
|
69
|
-
*/
|
|
70
|
-
shouldInjectHmrScript() {
|
|
71
|
-
return shouldInjectHmrHtmlResponse(this.options?.watch === true, this.hmrManager);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Delegates the HTML-response test to the shared response helper used by both
|
|
75
|
-
* adapters.
|
|
76
|
-
*/
|
|
77
|
-
isHtmlResponse(response) {
|
|
78
|
-
return isHtmlResponse(response);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Injects HMR script into HTML responses in development mode.
|
|
82
|
-
* Ensures explicit API handlers that return HTML get auto-reload capability.
|
|
83
|
-
*/
|
|
84
|
-
async maybeInjectHmrScript(response) {
|
|
85
|
-
if (this.shouldInjectHmrScript() && this.isHtmlResponse(response)) {
|
|
86
|
-
return injectHmrRuntimeIntoHtmlResponse(response);
|
|
87
|
-
}
|
|
88
|
-
return response;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Initializes the server adapter's core runtime components.
|
|
92
|
-
*/
|
|
93
|
-
async initialize() {
|
|
94
|
-
installAppRuntimeBuildExecutor(this.appConfig, {
|
|
95
|
-
development: this.options?.watch === true
|
|
96
|
-
});
|
|
97
|
-
this.staticSiteGenerator = new StaticSiteGenerator({ appConfig: this.appConfig });
|
|
98
|
-
await this.hmrManager.buildRuntime();
|
|
99
|
-
this.prepareRuntimePublicDir();
|
|
100
|
-
const staticBuilderOptions = {
|
|
101
|
-
appConfig: this.appConfig,
|
|
102
|
-
staticSiteGenerator: this.staticSiteGenerator,
|
|
103
|
-
serveOptions: this.serveOptions,
|
|
104
|
-
apiHandlers: this.apiHandlers
|
|
105
|
-
};
|
|
106
|
-
this.staticBuilder = new ServerStaticBuilder(staticBuilderOptions);
|
|
107
|
-
await this.initializeRuntimePlugins({ watch: this.options?.watch });
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Copies the source `public` directory into the runtime output and ensures the
|
|
111
|
-
* HMR assets directory exists before any runtime bundles are emitted.
|
|
112
|
-
*/
|
|
113
|
-
prepareRuntimePublicDir() {
|
|
114
|
-
const srcPublicDir = path.join(this.appConfig.rootDir, this.appConfig.srcDir, this.appConfig.publicDir);
|
|
115
|
-
if (fileSystem.exists(srcPublicDir)) {
|
|
116
|
-
fileSystem.copyDir(srcPublicDir, path.join(this.appConfig.rootDir, this.appConfig.distDir));
|
|
117
|
-
}
|
|
118
|
-
fileSystem.ensureDir(path.join(this.appConfig.absolutePaths.distDir, RESOLVED_ASSETS_DIR));
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Registers runtime plugins and propagates the final HMR manager into each
|
|
122
|
-
* integration.
|
|
123
|
-
*
|
|
124
|
-
* @remarks
|
|
125
|
-
* This is where Bun's runtime-plugin registration path meets the integration
|
|
126
|
-
* lifecycle. A failure here leaves the runtime partially bootstrapped, so the
|
|
127
|
-
* method logs the underlying error and rethrows instead of trying to limp on.
|
|
128
|
-
*/
|
|
129
|
-
async initializeRuntimePlugins(options) {
|
|
130
|
-
try {
|
|
131
|
-
this.hmrManager.setEnabled(Boolean(options?.watch));
|
|
132
|
-
await setupAppRuntimePlugins({
|
|
133
|
-
appConfig: this.appConfig,
|
|
134
|
-
runtimeOrigin: this.runtimeOrigin,
|
|
135
|
-
hmrManager: this.hmrManager,
|
|
136
|
-
onRuntimePlugin: (plugin) => {
|
|
137
|
-
Bun.plugin(plugin);
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
const browserBuildPlugins = getAppBrowserBuildPlugins(this.appConfig);
|
|
141
|
-
this.hmrManager.setPlugins(browserBuildPlugins);
|
|
142
|
-
for (const integration of this.appConfig.integrations) {
|
|
143
|
-
integration.setHmrManager(this.hmrManager);
|
|
144
|
-
}
|
|
145
|
-
} catch (error) {
|
|
146
|
-
appLogger.error(`Failed to initialize plugins: ${error instanceof Error ? error.message : String(error)}`);
|
|
147
|
-
throw error;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Rebuilds the shared routing state and hot-reloads the live Bun server when a
|
|
152
|
-
* watched route file changes.
|
|
153
|
-
*/
|
|
154
|
-
async refreshRouterRoutes() {
|
|
155
|
-
if (!this.serverInstance || typeof this.serverInstance.reload !== "function") {
|
|
156
|
-
appLogger.error("Server instance is not available for reloading");
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
await this.createSharedWatchRefreshCallback({
|
|
160
|
-
staticRoutes: this.staticRoutes,
|
|
161
|
-
hmrManager: this.hmrManager,
|
|
162
|
-
onRoutesReady: () => {
|
|
163
|
-
const options = this.getServerOptions({ enableHmr: true });
|
|
164
|
-
this.serverInstance.reload(options);
|
|
165
|
-
appLogger.debug("Server routes updated with dynamic routes");
|
|
166
|
-
},
|
|
167
|
-
onError: (error) => {
|
|
168
|
-
this.hmrManager.broadcast({ type: "error", message: error.message });
|
|
169
|
-
appLogger.error("Failed to refresh router routes:", error);
|
|
170
|
-
}
|
|
171
|
-
})();
|
|
172
|
-
}
|
|
173
|
-
async watch() {
|
|
174
|
-
const watcher = new ProjectWatcher({
|
|
175
|
-
config: this.appConfig,
|
|
176
|
-
refreshRouterRoutesCallback: this.refreshRouterRoutes.bind(this),
|
|
177
|
-
hmrManager: this.hmrManager,
|
|
178
|
-
bridge: this.bridge
|
|
179
|
-
});
|
|
180
|
-
await watcher.createWatcherSubscription();
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Builds the `Bun.serve()` options for the current adapter state.
|
|
184
|
-
*
|
|
185
|
-
* @remarks
|
|
186
|
-
* The HMR-enabled variant wraps the base fetch handler so one Bun server can
|
|
187
|
-
* serve normal requests, accept HMR websocket upgrades, and expose the HMR
|
|
188
|
-
* runtime asset without splitting responsibility across separate listeners.
|
|
189
|
-
*/
|
|
190
|
-
getServerOptions({ enableHmr = false } = {}) {
|
|
191
|
-
appLogger.debug(`[BunServerAdapter] getServerOptions called with enableHmr: ${enableHmr}`);
|
|
192
|
-
const serverOptions = this.buildServerSettings();
|
|
193
|
-
if (enableHmr) {
|
|
194
|
-
const originalFetch = serverOptions.fetch;
|
|
195
|
-
const hmrHandler = this.hmrManager.getWebSocketHandler();
|
|
196
|
-
const hmrManager = this.hmrManager;
|
|
197
|
-
serverOptions.development = true;
|
|
198
|
-
serverOptions.websocket = hmrHandler;
|
|
199
|
-
serverOptions.fetch = async function(request, _server) {
|
|
200
|
-
const url = new URL(request.url);
|
|
201
|
-
appLogger.debug(`[HMR] Request: ${url.pathname}`);
|
|
202
|
-
if (url.pathname === "/_hmr") {
|
|
203
|
-
const success = this.upgrade(request, {
|
|
204
|
-
data: void 0
|
|
205
|
-
});
|
|
206
|
-
if (success) return;
|
|
207
|
-
return new Response("WebSocket upgrade failed", { status: 400 });
|
|
208
|
-
}
|
|
209
|
-
if (url.pathname === "/_hmr_runtime.js") {
|
|
210
|
-
appLogger.debug(`[HMR] Serving runtime from ${hmrManager.getRuntimePath()}`);
|
|
211
|
-
return new Response(fileSystem.readFileAsBuffer(hmrManager.getRuntimePath()), {
|
|
212
|
-
headers: { "Content-Type": "application/javascript" }
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
let response;
|
|
216
|
-
if (originalFetch) {
|
|
217
|
-
const res = await originalFetch.call(this, request, this);
|
|
218
|
-
response = res instanceof Response ? res : new Response("Not Found", { status: 404 });
|
|
219
|
-
} else {
|
|
220
|
-
response = new Response("Not Found", { status: 404 });
|
|
221
|
-
}
|
|
222
|
-
return response;
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
return serverOptions;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Helper method to retrieve and parse the request body.
|
|
229
|
-
* Handles JSON and plain text content types.
|
|
230
|
-
* For FormData (multipart/form-data, x-www-form-urlencoded), use ctx.request.formData() directly.
|
|
231
|
-
* Returns undefined for unsupported content types.
|
|
232
|
-
*/
|
|
233
|
-
async retrieveBodyFromRequest(request) {
|
|
234
|
-
const contentType = request.headers.get("Content-Type") || "";
|
|
235
|
-
if (contentType.includes("application/json")) {
|
|
236
|
-
return await request.json();
|
|
237
|
-
}
|
|
238
|
-
if (contentType.includes("text/plain")) {
|
|
239
|
-
return await request.text();
|
|
240
|
-
}
|
|
241
|
-
return void 0;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Composes the base Bun server settings that all runtime modes build from.
|
|
245
|
-
*
|
|
246
|
-
* @remarks
|
|
247
|
-
* This method centralizes the Bun-specific error boundary. It preserves the
|
|
248
|
-
* shared route pipeline while still allowing adapter-level custom error-handler
|
|
249
|
-
* execution and `HttpError` passthrough.
|
|
250
|
-
*/
|
|
251
|
-
buildServerSettings() {
|
|
252
|
-
const serverOptions = { ...this.serveOptions };
|
|
253
|
-
const handleNoMatch = this.handleNoMatch.bind(this);
|
|
254
|
-
const waitForInit = this.waitForInitialization.bind(this);
|
|
255
|
-
const handleReq = this.handleRequest.bind(this);
|
|
256
|
-
const errorHandler = this.errorHandler;
|
|
257
|
-
const getCacheService = () => this.getCacheService();
|
|
258
|
-
const getRenderContext = () => this.getRenderContext();
|
|
259
|
-
appLogger.debug(`[BunServerAdapter] Building server settings`);
|
|
260
|
-
const finalOptions = {
|
|
261
|
-
...serverOptions,
|
|
262
|
-
async fetch(request, _server) {
|
|
263
|
-
try {
|
|
264
|
-
await waitForInit();
|
|
265
|
-
return await handleReq(request);
|
|
266
|
-
} catch (error) {
|
|
267
|
-
if (error instanceof Response) return error;
|
|
268
|
-
if (errorHandler) {
|
|
269
|
-
try {
|
|
270
|
-
const locals = {};
|
|
271
|
-
const context = {
|
|
272
|
-
request,
|
|
273
|
-
params: {},
|
|
274
|
-
response: new ApiResponseBuilder(),
|
|
275
|
-
server: _server,
|
|
276
|
-
locals,
|
|
277
|
-
require: createRequire(() => locals),
|
|
278
|
-
services: {
|
|
279
|
-
cache: getCacheService()
|
|
280
|
-
},
|
|
281
|
-
...getRenderContext()
|
|
282
|
-
};
|
|
283
|
-
return await errorHandler(error, context);
|
|
284
|
-
} catch (handlerError) {
|
|
285
|
-
appLogger.error(`[ecopages] Error in custom error handler: ${handlerError}`);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
if (error instanceof HttpError) return error.toResponse();
|
|
289
|
-
appLogger.error(`[ecopages] Error handling request: ${error}`);
|
|
290
|
-
return new Response("Internal Server Error", { status: 500 });
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
error(error) {
|
|
294
|
-
appLogger.error(`[ecopages] Error handling request: ${error}`);
|
|
295
|
-
return handleNoMatch(new Request("http://localhost"));
|
|
296
|
-
}
|
|
297
|
-
};
|
|
298
|
-
return finalOptions;
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Generates a static build of the site for deployment.
|
|
302
|
-
* @param options.preview - If true, starts a preview server after build
|
|
303
|
-
*/
|
|
304
|
-
async buildStatic(options) {
|
|
305
|
-
if (!this.fullyInitialized) {
|
|
306
|
-
await this.initializeSharedRouteHandling({
|
|
307
|
-
staticRoutes: this.staticRoutes,
|
|
308
|
-
hmrManager: this.hmrManager
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
const buildRuntimeOrigin = this.serverInstance ? `http://${this.serverInstance.hostname || DEFAULT_ECOPAGES_HOSTNAME}:${this.serverInstance.port || DEFAULT_ECOPAGES_PORT}` : void 0;
|
|
312
|
-
await this.staticBuilder.build(
|
|
313
|
-
{ ...options, preview: false, baseUrl: buildRuntimeOrigin },
|
|
314
|
-
{
|
|
315
|
-
router: this.router,
|
|
316
|
-
routeRendererFactory: this.routeRendererFactory,
|
|
317
|
-
staticRoutes: this.staticRoutes
|
|
318
|
-
}
|
|
319
|
-
);
|
|
320
|
-
if (!options?.preview) {
|
|
321
|
-
return;
|
|
322
|
-
}
|
|
323
|
-
const previewHostname = this.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME;
|
|
324
|
-
const previewPort = Number(this.serveOptions.port || DEFAULT_ECOPAGES_PORT);
|
|
325
|
-
const activePreviewPort = await this.previewHost.start({
|
|
326
|
-
appConfig: this.appConfig,
|
|
327
|
-
hostname: String(previewHostname),
|
|
328
|
-
port: previewPort
|
|
329
|
-
});
|
|
330
|
-
if (activePreviewPort) {
|
|
331
|
-
appLogger.info(`Preview running at http://${previewHostname}:${activePreviewPort}`);
|
|
332
|
-
return;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
/**
|
|
336
|
-
* Initializes the server with dynamic routes after server creation.
|
|
337
|
-
* Must be called before handling any requests.
|
|
338
|
-
* @param server - The Bun server instance
|
|
339
|
-
*/
|
|
340
|
-
async completeInitialization(server) {
|
|
341
|
-
if (this.fullyInitialized) {
|
|
342
|
-
if (server && !this.serverInstance) {
|
|
343
|
-
this.serverInstance = server;
|
|
344
|
-
}
|
|
345
|
-
return;
|
|
346
|
-
}
|
|
347
|
-
if (!this.initializationPromise) {
|
|
348
|
-
this.initializationPromise = this._performInitialization(server ?? null);
|
|
349
|
-
}
|
|
350
|
-
return this.initializationPromise;
|
|
351
|
-
}
|
|
352
|
-
/**
|
|
353
|
-
* Performs the one-time post-bind initialization path for Bun servers.
|
|
354
|
-
*
|
|
355
|
-
* @remarks
|
|
356
|
-
* This is intentionally split from `initialize()` because shared route handling
|
|
357
|
-
* and file watching need the live server instance to exist before Bun can
|
|
358
|
-
* reload updated route handlers in place.
|
|
359
|
-
*/
|
|
360
|
-
async _performInitialization(server) {
|
|
361
|
-
this.serverInstance = server;
|
|
362
|
-
appLogger.debug("Completing server initialization with dynamic routes");
|
|
363
|
-
await this.initializeSharedRouteHandling({
|
|
364
|
-
staticRoutes: this.staticRoutes,
|
|
365
|
-
hmrManager: this.hmrManager
|
|
366
|
-
});
|
|
367
|
-
this.fullyInitialized = true;
|
|
368
|
-
if (this.options?.watch) await this.watch();
|
|
369
|
-
if (server && typeof server.reload === "function") {
|
|
370
|
-
const updatedOptions = this.getServerOptions(this.options?.watch ? { enableHmr: true } : void 0);
|
|
371
|
-
server.reload(updatedOptions);
|
|
372
|
-
appLogger.debug("Server routes updated with dynamic routes");
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* Creates and initializes the Bun server adapter.
|
|
377
|
-
* @returns Configured adapter with server methods
|
|
378
|
-
*/
|
|
379
|
-
async createAdapter() {
|
|
380
|
-
await this.initialize();
|
|
381
|
-
return {
|
|
382
|
-
getServerOptions: this.getServerOptions.bind(this),
|
|
383
|
-
buildStatic: this.buildStatic.bind(this),
|
|
384
|
-
completeInitialization: this.completeInitialization.bind(this),
|
|
385
|
-
handleRequest: this.handleRequest.bind(this)
|
|
386
|
-
};
|
|
387
|
-
}
|
|
388
|
-
/**
|
|
389
|
-
* Handles HTTP requests by passing them securely to the shared core router adapter.
|
|
390
|
-
*/
|
|
391
|
-
async handleRequest(request) {
|
|
392
|
-
const response = await this.handleSharedRequest(request, {
|
|
393
|
-
apiHandlers: this.apiHandlers,
|
|
394
|
-
errorHandler: this.errorHandler,
|
|
395
|
-
serverInstance: this.serverInstance,
|
|
396
|
-
hmrManager: this.hmrManager
|
|
397
|
-
});
|
|
398
|
-
return await this.maybeInjectHmrScript(response);
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* Ensures server initialization completes before request handling.
|
|
402
|
-
* Prevents race conditions during startup.
|
|
403
|
-
*/
|
|
404
|
-
async waitForInitialization() {
|
|
405
|
-
if (this.fullyInitialized) {
|
|
406
|
-
return;
|
|
407
|
-
}
|
|
408
|
-
if (this.initializationPromise) {
|
|
409
|
-
return this.initializationPromise;
|
|
410
|
-
}
|
|
411
|
-
throw new Error("Server not initialized. Call completeInitialization() first.");
|
|
412
|
-
}
|
|
413
|
-
/**
|
|
414
|
-
* Handles HTTP requests from the router adapter.
|
|
415
|
-
*/
|
|
416
|
-
async handleResponse(request) {
|
|
417
|
-
await this.waitForInitialization();
|
|
418
|
-
return this.routeHandler.handleResponse(request);
|
|
419
|
-
}
|
|
420
|
-
/**
|
|
421
|
-
* Handles requests that do not match any routes.
|
|
422
|
-
*/
|
|
423
|
-
async handleNoMatch(request) {
|
|
424
|
-
await this.waitForInitialization();
|
|
425
|
-
return this.routeHandler.handleNoMatch(request);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
async function createBunServerAdapter(params) {
|
|
429
|
-
const runtimeOrigin = params.runtimeOrigin ?? resolveServeRuntimeOrigin(params.serveOptions);
|
|
430
|
-
const bridge = params.bridge ?? new ClientBridge();
|
|
431
|
-
const hmrManager = params.hmrManager ?? new HmrManager({ appConfig: params.appConfig, bridge });
|
|
432
|
-
const previewHost = params.previewHost ?? new BunStaticPreviewHost();
|
|
433
|
-
const adapter = new BunServerAdapter({
|
|
434
|
-
...params,
|
|
435
|
-
runtimeOrigin,
|
|
436
|
-
bridge,
|
|
437
|
-
hmrManager,
|
|
438
|
-
previewHost
|
|
439
|
-
});
|
|
440
|
-
return adapter.createAdapter();
|
|
441
|
-
}
|
|
442
|
-
export {
|
|
443
|
-
BunServerAdapter,
|
|
444
|
-
createBunServerAdapter
|
|
445
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
2
|
-
import type { StaticPreviewHost, StaticPreviewHostStartOptions } from '../shared/static-preview-host.js';
|
|
3
|
-
type BunStaticPreviewServer = {
|
|
4
|
-
server: {
|
|
5
|
-
port?: number;
|
|
6
|
-
} | null;
|
|
7
|
-
stop(): void;
|
|
8
|
-
};
|
|
9
|
-
type BunStaticPreviewServerFactory = {
|
|
10
|
-
createServer(args: {
|
|
11
|
-
appConfig: EcoPagesAppConfig;
|
|
12
|
-
options: {
|
|
13
|
-
port: number;
|
|
14
|
-
};
|
|
15
|
-
}): BunStaticPreviewServer;
|
|
16
|
-
};
|
|
17
|
-
type BunStaticPreviewLogger = {
|
|
18
|
-
error(message: string): unknown;
|
|
19
|
-
};
|
|
20
|
-
export declare class BunStaticPreviewHost implements StaticPreviewHost {
|
|
21
|
-
private readonly previewServerFactory;
|
|
22
|
-
private readonly logger;
|
|
23
|
-
private previewServer;
|
|
24
|
-
constructor(previewServerFactory?: BunStaticPreviewServerFactory, logger?: BunStaticPreviewLogger);
|
|
25
|
-
start(options: StaticPreviewHostStartOptions): Promise<number | null>;
|
|
26
|
-
stop(): Promise<void>;
|
|
27
|
-
}
|
|
28
|
-
export {};
|