@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,111 +0,0 @@
|
|
|
1
|
-
import { appLogger } from "../../global/app-logger.js";
|
|
2
|
-
import { HttpError } from "../../errors/http-error.js";
|
|
3
|
-
import { injectHmrRuntimeIntoHtmlResponse, isHtmlResponse, shouldInjectHmrHtmlResponse } from "./hmr-html-response.js";
|
|
4
|
-
class ServerRouteHandler {
|
|
5
|
-
router;
|
|
6
|
-
fileSystemResponseMatcher;
|
|
7
|
-
explicitStaticRouteMatcher;
|
|
8
|
-
watch;
|
|
9
|
-
hmrManager;
|
|
10
|
-
/**
|
|
11
|
-
* Creates a new ServerRouteHandler instance.
|
|
12
|
-
*
|
|
13
|
-
* @param params - Configuration parameters
|
|
14
|
-
*/
|
|
15
|
-
constructor({
|
|
16
|
-
router,
|
|
17
|
-
fileSystemResponseMatcher,
|
|
18
|
-
explicitStaticRouteMatcher,
|
|
19
|
-
watch = false,
|
|
20
|
-
hmrManager
|
|
21
|
-
}) {
|
|
22
|
-
this.router = router;
|
|
23
|
-
this.fileSystemResponseMatcher = fileSystemResponseMatcher;
|
|
24
|
-
this.explicitStaticRouteMatcher = explicitStaticRouteMatcher;
|
|
25
|
-
this.watch = watch;
|
|
26
|
-
this.hmrManager = hmrManager;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Determines if HMR script should be injected.
|
|
30
|
-
*
|
|
31
|
-
* @returns true if in watch mode and HMR manager is enabled
|
|
32
|
-
*/
|
|
33
|
-
shouldInjectHmrScript() {
|
|
34
|
-
return shouldInjectHmrHtmlResponse(this.watch, this.hmrManager);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Checks if a response contains HTML content.
|
|
38
|
-
*
|
|
39
|
-
* @param response - The HTTP response to check
|
|
40
|
-
* @returns true if Content-Type header starts with 'text/html'
|
|
41
|
-
*/
|
|
42
|
-
isHtmlResponse(response) {
|
|
43
|
-
return isHtmlResponse(response);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Handles HTTP requests from the router adapter.
|
|
47
|
-
*
|
|
48
|
-
* Priority-based routing flow:
|
|
49
|
-
* 1. Check explicit static routes first (e.g., /sitemap.xml, /image.webp from plugins)
|
|
50
|
-
* 2. Match file-based routes without extensions (application routes)
|
|
51
|
-
* 3. Fall back to static file serving from disk
|
|
52
|
-
*
|
|
53
|
-
* @param request - The incoming HTTP request
|
|
54
|
-
* @returns HTTP response, potentially with injected HMR script in dev mode
|
|
55
|
-
*/
|
|
56
|
-
async handleResponse(request) {
|
|
57
|
-
const pathname = new URL(request.url).pathname;
|
|
58
|
-
const explicitMatch = this.explicitStaticRouteMatcher?.match(request.url);
|
|
59
|
-
if (explicitMatch) {
|
|
60
|
-
const response2 = await this.explicitStaticRouteMatcher.handleMatch(explicitMatch);
|
|
61
|
-
return this.maybeInjectHmrScript(response2);
|
|
62
|
-
}
|
|
63
|
-
const fsMatch = !pathname.includes(".") && this.router.matchRequest(request.url);
|
|
64
|
-
const response = await (fsMatch ? this.fileSystemResponseMatcher.handleMatch(fsMatch, request) : this.handleNoMatch(request));
|
|
65
|
-
return this.maybeInjectHmrScript(response);
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Injects HMR script into HTML responses in development mode.
|
|
69
|
-
*
|
|
70
|
-
* The script is inserted before the closing </html> tag to enable
|
|
71
|
-
* hot module reloading without full page refreshes.
|
|
72
|
-
*
|
|
73
|
-
* @param response - The HTTP response to potentially modify
|
|
74
|
-
* @returns Original response or modified response with HMR script
|
|
75
|
-
*/
|
|
76
|
-
async maybeInjectHmrScript(response) {
|
|
77
|
-
if (this.shouldInjectHmrScript() && this.isHtmlResponse(response)) {
|
|
78
|
-
return injectHmrRuntimeIntoHtmlResponse(response);
|
|
79
|
-
}
|
|
80
|
-
return response;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Handles requests that do not match any routes.
|
|
84
|
-
*
|
|
85
|
-
* This is the final fallback that attempts to serve static files from disk.
|
|
86
|
-
* If the requested path corresponds to an HTML file or no file is found,
|
|
87
|
-
* a custom 404 response is returned.
|
|
88
|
-
*
|
|
89
|
-
* @param request - The HTTP request to handle
|
|
90
|
-
* @returns Response from file system or error response
|
|
91
|
-
* @throws HttpError for standard HTTP errors
|
|
92
|
-
*/
|
|
93
|
-
async handleNoMatch(request) {
|
|
94
|
-
try {
|
|
95
|
-
const pathname = new URL(request.url).pathname;
|
|
96
|
-
return await this.fileSystemResponseMatcher.handleNoMatch(pathname);
|
|
97
|
-
} catch (error) {
|
|
98
|
-
if (error instanceof HttpError) {
|
|
99
|
-
return error.toResponse();
|
|
100
|
-
}
|
|
101
|
-
if (error instanceof Error) {
|
|
102
|
-
this.hmrManager?.broadcast({ type: "error", message: error.message });
|
|
103
|
-
appLogger.error("Error handling no match:", error);
|
|
104
|
-
}
|
|
105
|
-
return new Response("Internal Server Error", { status: 500 });
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
export {
|
|
110
|
-
ServerRouteHandler
|
|
111
|
-
};
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
2
|
-
import type { ApiHandler, StaticRoute } from '../../types/public-types.js';
|
|
3
|
-
import type { RouteRegistry } from '../../router/server/route-registry.js';
|
|
4
|
-
import type { StaticSiteGenerator } from '../../static-site-generator/static-site-generator.js';
|
|
5
|
-
import type { StaticGenerationRendererResolver } from '../../route-renderer/route-renderer.js';
|
|
6
|
-
export interface StaticBuildOptions {
|
|
7
|
-
preview?: boolean;
|
|
8
|
-
baseUrl?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface ServeOptions {
|
|
11
|
-
hostname?: string;
|
|
12
|
-
port?: number | string;
|
|
13
|
-
}
|
|
14
|
-
export interface ServerStaticBuilderParams {
|
|
15
|
-
appConfig: EcoPagesAppConfig;
|
|
16
|
-
staticSiteGenerator: StaticSiteGenerator;
|
|
17
|
-
serveOptions: ServeOptions;
|
|
18
|
-
apiHandlers?: ApiHandler[];
|
|
19
|
-
logger?: ServerStaticBuilderLogger;
|
|
20
|
-
previewServerFactory?: ServerStaticPreviewServerFactory;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Minimal logger dependency used by the static builder.
|
|
24
|
-
*/
|
|
25
|
-
export interface ServerStaticBuilderLogger {
|
|
26
|
-
warn(message: string, detail?: string): unknown;
|
|
27
|
-
info(message: string): unknown;
|
|
28
|
-
error(message: string): unknown;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Preview server factory dependency used when static preview mode is enabled.
|
|
32
|
-
*/
|
|
33
|
-
export interface ServerStaticPreviewServerFactory {
|
|
34
|
-
createServer(args: {
|
|
35
|
-
appConfig: EcoPagesAppConfig;
|
|
36
|
-
options: {
|
|
37
|
-
port: number;
|
|
38
|
-
};
|
|
39
|
-
}): {
|
|
40
|
-
server?: {
|
|
41
|
-
port?: number;
|
|
42
|
-
} | null;
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Handles static site generation and previews.
|
|
47
|
-
*/
|
|
48
|
-
export declare class ServerStaticBuilder {
|
|
49
|
-
private readonly appConfig;
|
|
50
|
-
private readonly staticSiteGenerator;
|
|
51
|
-
private readonly serveOptions;
|
|
52
|
-
private readonly apiHandlers;
|
|
53
|
-
private readonly logger;
|
|
54
|
-
private readonly previewServerFactory;
|
|
55
|
-
constructor({ appConfig, staticSiteGenerator, serveOptions, apiHandlers, logger, previewServerFactory, }: ServerStaticBuilderParams);
|
|
56
|
-
private warnApiHandlersUnavailableInStaticMode;
|
|
57
|
-
private prepareExportDirectory;
|
|
58
|
-
private refreshRuntimeAssets;
|
|
59
|
-
/**
|
|
60
|
-
* Generates a static build of the site for deployment.
|
|
61
|
-
* @param options.preview - If true, starts a preview server after build
|
|
62
|
-
* @param dependencies.router - The initialized router
|
|
63
|
-
* @param dependencies.routeRendererFactory - The route renderer factory
|
|
64
|
-
* @param dependencies.staticRoutes - Explicit static routes registered via app.static()
|
|
65
|
-
*/
|
|
66
|
-
build(options: StaticBuildOptions | undefined, dependencies: {
|
|
67
|
-
router: RouteRegistry;
|
|
68
|
-
routeRendererFactory: StaticGenerationRendererResolver;
|
|
69
|
-
staticRoutes?: StaticRoute[];
|
|
70
|
-
}): Promise<void>;
|
|
71
|
-
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { fileSystem } from "@ecopages/file-system";
|
|
3
|
-
import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
|
|
4
|
-
import { StaticContentServer } from "../../dev/sc-server.js";
|
|
5
|
-
import { appLogger } from "../../global/app-logger.js";
|
|
6
|
-
class ServerStaticBuilder {
|
|
7
|
-
appConfig;
|
|
8
|
-
staticSiteGenerator;
|
|
9
|
-
serveOptions;
|
|
10
|
-
apiHandlers;
|
|
11
|
-
logger;
|
|
12
|
-
previewServerFactory;
|
|
13
|
-
constructor({
|
|
14
|
-
appConfig,
|
|
15
|
-
staticSiteGenerator,
|
|
16
|
-
serveOptions,
|
|
17
|
-
apiHandlers,
|
|
18
|
-
logger,
|
|
19
|
-
previewServerFactory
|
|
20
|
-
}) {
|
|
21
|
-
this.appConfig = appConfig;
|
|
22
|
-
this.staticSiteGenerator = staticSiteGenerator;
|
|
23
|
-
this.serveOptions = serveOptions;
|
|
24
|
-
this.apiHandlers = apiHandlers ?? [];
|
|
25
|
-
this.logger = logger ?? appLogger;
|
|
26
|
-
this.previewServerFactory = previewServerFactory ?? StaticContentServer;
|
|
27
|
-
}
|
|
28
|
-
warnApiHandlersUnavailableInStaticMode() {
|
|
29
|
-
if (this.apiHandlers.length === 0) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const uniqueHandlers = Array.from(
|
|
33
|
-
new Set(this.apiHandlers.map((handler) => `${handler.method} ${handler.path}`))
|
|
34
|
-
);
|
|
35
|
-
const visibleHandlers = uniqueHandlers.slice(0, 5).join(", ");
|
|
36
|
-
const remainingCount = uniqueHandlers.length - Math.min(uniqueHandlers.length, 5);
|
|
37
|
-
const summary = remainingCount > 0 ? `${visibleHandlers}, +${remainingCount} more` : visibleHandlers;
|
|
38
|
-
this.logger.warn(
|
|
39
|
-
"Registered API endpoints are not available in static build or preview modes because no server runtime is started. They are excluded from the generated output.\n",
|
|
40
|
-
`\u27A4 ${summary}`
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
prepareExportDirectory() {
|
|
44
|
-
const exportDir = this.appConfig.absolutePaths?.distDir ?? path.join(this.appConfig.rootDir, this.appConfig.distDir);
|
|
45
|
-
fileSystem.ensureDir(exportDir, true);
|
|
46
|
-
const srcPublicDir = path.join(
|
|
47
|
-
this.appConfig.rootDir,
|
|
48
|
-
this.appConfig.srcDir ?? "src",
|
|
49
|
-
this.appConfig.publicDir ?? "public"
|
|
50
|
-
);
|
|
51
|
-
if (fileSystem.exists(srcPublicDir)) {
|
|
52
|
-
fileSystem.copyDir(srcPublicDir, exportDir);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
async refreshRuntimeAssets() {
|
|
56
|
-
for (const processor of this.appConfig.processors.values()) {
|
|
57
|
-
await processor.setup();
|
|
58
|
-
}
|
|
59
|
-
for (const integration of this.appConfig.integrations) {
|
|
60
|
-
await integration.setup();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Generates a static build of the site for deployment.
|
|
65
|
-
* @param options.preview - If true, starts a preview server after build
|
|
66
|
-
* @param dependencies.router - The initialized router
|
|
67
|
-
* @param dependencies.routeRendererFactory - The route renderer factory
|
|
68
|
-
* @param dependencies.staticRoutes - Explicit static routes registered via app.static()
|
|
69
|
-
*/
|
|
70
|
-
async build(options, dependencies) {
|
|
71
|
-
const { preview = false, baseUrl: explicitBaseUrl } = options ?? {};
|
|
72
|
-
const baseUrl = explicitBaseUrl ?? `http://${this.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME}:${this.serveOptions.port || DEFAULT_ECOPAGES_PORT}`;
|
|
73
|
-
this.warnApiHandlersUnavailableInStaticMode();
|
|
74
|
-
this.prepareExportDirectory();
|
|
75
|
-
await this.refreshRuntimeAssets();
|
|
76
|
-
await this.staticSiteGenerator.run({
|
|
77
|
-
router: dependencies.router,
|
|
78
|
-
baseUrl,
|
|
79
|
-
routeRendererFactory: dependencies.routeRendererFactory,
|
|
80
|
-
staticRoutes: dependencies.staticRoutes
|
|
81
|
-
});
|
|
82
|
-
if (!preview) {
|
|
83
|
-
this.logger.info("Build completed");
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
const previewPort = this.serveOptions.port || DEFAULT_ECOPAGES_PORT;
|
|
87
|
-
const { server } = this.previewServerFactory.createServer({
|
|
88
|
-
appConfig: this.appConfig,
|
|
89
|
-
options: { port: Number(previewPort) }
|
|
90
|
-
});
|
|
91
|
-
if (server?.port) {
|
|
92
|
-
this.logger.info(`Preview running at http://localhost:${server.port}`);
|
|
93
|
-
} else {
|
|
94
|
-
this.logger.error("Failed to start preview server");
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
export {
|
|
99
|
-
ServerStaticBuilder
|
|
100
|
-
};
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import type { DefaultHmrContext, EcoPagesAppConfig, IHmrManager, IClientBridge } from '../../types/internal-types.js';
|
|
3
|
-
import type { EcoBuildPlugin } from '../../build/build-types.js';
|
|
4
|
-
import { type HmrStrategy } from '../../hmr/hmr-strategy.js';
|
|
5
|
-
import type { ClientBridgeEvent } from '../../types/public-types.js';
|
|
6
|
-
import { HmrEntrypointRegistrar } from './hmr-entrypoint-registrar.js';
|
|
7
|
-
import { BrowserBundleService } from '../../services/assets/browser-bundle.service.js';
|
|
8
|
-
import { type EntrypointDependencyGraph } from '../../services/runtime-state/entrypoint-dependency-graph.service.js';
|
|
9
|
-
import type { ServerModuleTranspiler } from '../../services/module-loading/server-module-transpiler.service.js';
|
|
10
|
-
type HandleFileChangeOptions = {
|
|
11
|
-
broadcast?: boolean;
|
|
12
|
-
};
|
|
13
|
-
type SharedHmrManagerParams = {
|
|
14
|
-
appConfig: EcoPagesAppConfig;
|
|
15
|
-
bridge: IClientBridge;
|
|
16
|
-
registrationTimeoutMs?: number;
|
|
17
|
-
};
|
|
18
|
-
export declare abstract class SharedHmrManager implements IHmrManager {
|
|
19
|
-
readonly appConfig: EcoPagesAppConfig;
|
|
20
|
-
protected readonly bridge: IClientBridge;
|
|
21
|
-
protected watchers: Map<string, fs.FSWatcher>;
|
|
22
|
-
protected watchedFiles: Map<string, string>;
|
|
23
|
-
protected entrypointRegistrations: Map<string, Promise<string>>;
|
|
24
|
-
protected distDir: string;
|
|
25
|
-
protected plugins: EcoBuildPlugin[];
|
|
26
|
-
protected enabled: boolean;
|
|
27
|
-
protected strategies: HmrStrategy[];
|
|
28
|
-
protected readonly entrypointRegistrar: HmrEntrypointRegistrar;
|
|
29
|
-
protected readonly browserBundleService: BrowserBundleService;
|
|
30
|
-
protected readonly entrypointDependencyGraph: EntrypointDependencyGraph;
|
|
31
|
-
protected readonly serverModuleTranspiler: ServerModuleTranspiler;
|
|
32
|
-
constructor({ appConfig, bridge, registrationTimeoutMs }: SharedHmrManagerParams);
|
|
33
|
-
protected abstract createEntrypointDependencyGraph(existingEntrypointDependencyGraph: EntrypointDependencyGraph): EntrypointDependencyGraph;
|
|
34
|
-
protected shouldSkipMissingFileChange(_filePath: string): boolean;
|
|
35
|
-
protected onRuntimeBundleFailure(error: unknown): void;
|
|
36
|
-
protected ensureDistDir(): void;
|
|
37
|
-
protected shouldJsStrategyProcessEntrypoint(entrypointPath: string): boolean;
|
|
38
|
-
protected initializeStrategies(): void;
|
|
39
|
-
registerStrategy(strategy: HmrStrategy): void;
|
|
40
|
-
setPlugins(plugins: EcoBuildPlugin[]): void;
|
|
41
|
-
setEnabled(enabled: boolean): void;
|
|
42
|
-
isEnabled(): boolean;
|
|
43
|
-
buildRuntime(): Promise<void>;
|
|
44
|
-
getRuntimePath(): string;
|
|
45
|
-
broadcast(event: ClientBridgeEvent): void;
|
|
46
|
-
handleFileChange(filePath: string, options?: HandleFileChangeOptions): Promise<void>;
|
|
47
|
-
getOutputUrl(entrypointPath: string): string | undefined;
|
|
48
|
-
getWatchedFiles(): Map<string, string>;
|
|
49
|
-
getDistDir(): string;
|
|
50
|
-
getPlugins(): EcoBuildPlugin[];
|
|
51
|
-
getDefaultContext(): DefaultHmrContext;
|
|
52
|
-
protected clearFailedEntrypointRegistration(entrypointPath: string): void;
|
|
53
|
-
registerEntrypoint(entrypointPath: string): Promise<string>;
|
|
54
|
-
registerScriptEntrypoint(entrypointPath: string): Promise<string>;
|
|
55
|
-
protected emitStrictEntrypoint(entrypointPath: string): Promise<void>;
|
|
56
|
-
protected emitScriptEntrypoint(entrypointPath: string, outputPath: string): Promise<void>;
|
|
57
|
-
stop(): void;
|
|
58
|
-
}
|
|
59
|
-
export {};
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { RESOLVED_ASSETS_DIR } from "../../config/constants.js";
|
|
5
|
-
import { getAppBuildExecutor } from "../../build/build-adapter.js";
|
|
6
|
-
import { fileSystem } from "@ecopages/file-system";
|
|
7
|
-
import { HmrStrategyType } from "../../hmr/hmr-strategy.js";
|
|
8
|
-
import { DefaultHmrStrategy } from "../../hmr/strategies/default-hmr-strategy.js";
|
|
9
|
-
import { JsHmrStrategy } from "../../hmr/strategies/js-hmr-strategy.js";
|
|
10
|
-
import { appLogger } from "../../global/app-logger.js";
|
|
11
|
-
import { HmrEntrypointRegistrar } from "./hmr-entrypoint-registrar.js";
|
|
12
|
-
import { BrowserBundleService } from "../../services/assets/browser-bundle.service.js";
|
|
13
|
-
import { getAppServerModuleTranspiler } from "../../services/module-loading/app-server-module-transpiler.service.js";
|
|
14
|
-
import {
|
|
15
|
-
getAppEntrypointDependencyGraph,
|
|
16
|
-
setAppEntrypointDependencyGraph
|
|
17
|
-
} from "../../services/runtime-state/entrypoint-dependency-graph.service.js";
|
|
18
|
-
import { resolveInternalExecutionDir, resolveInternalWorkDir } from "../../utils/resolve-work-dir.js";
|
|
19
|
-
class SharedHmrManager {
|
|
20
|
-
appConfig;
|
|
21
|
-
bridge;
|
|
22
|
-
watchers = /* @__PURE__ */ new Map();
|
|
23
|
-
watchedFiles = /* @__PURE__ */ new Map();
|
|
24
|
-
entrypointRegistrations = /* @__PURE__ */ new Map();
|
|
25
|
-
distDir;
|
|
26
|
-
plugins = [];
|
|
27
|
-
enabled = true;
|
|
28
|
-
strategies = [];
|
|
29
|
-
entrypointRegistrar;
|
|
30
|
-
browserBundleService;
|
|
31
|
-
entrypointDependencyGraph;
|
|
32
|
-
serverModuleTranspiler;
|
|
33
|
-
constructor({ appConfig, bridge, registrationTimeoutMs = 4e3 }) {
|
|
34
|
-
this.appConfig = appConfig;
|
|
35
|
-
this.bridge = bridge;
|
|
36
|
-
this.distDir = path.join(resolveInternalWorkDir(this.appConfig), RESOLVED_ASSETS_DIR, "_hmr");
|
|
37
|
-
this.entrypointRegistrar = new HmrEntrypointRegistrar({
|
|
38
|
-
srcDir: this.appConfig.absolutePaths.srcDir,
|
|
39
|
-
distDir: this.distDir,
|
|
40
|
-
entrypointRegistrations: this.entrypointRegistrations,
|
|
41
|
-
watchedFiles: this.watchedFiles,
|
|
42
|
-
clearFailedRegistration: (entrypointPath) => this.clearFailedEntrypointRegistration(entrypointPath),
|
|
43
|
-
registrationTimeoutMs
|
|
44
|
-
});
|
|
45
|
-
this.browserBundleService = new BrowserBundleService(appConfig);
|
|
46
|
-
this.entrypointDependencyGraph = this.createEntrypointDependencyGraph(
|
|
47
|
-
getAppEntrypointDependencyGraph(appConfig)
|
|
48
|
-
);
|
|
49
|
-
setAppEntrypointDependencyGraph(this.appConfig, this.entrypointDependencyGraph);
|
|
50
|
-
this.serverModuleTranspiler = getAppServerModuleTranspiler(this.appConfig);
|
|
51
|
-
this.ensureDistDir();
|
|
52
|
-
this.initializeStrategies();
|
|
53
|
-
}
|
|
54
|
-
shouldSkipMissingFileChange(_filePath) {
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
onRuntimeBundleFailure(error) {
|
|
58
|
-
appLogger.error("[HMR] Failed to build runtime script:", error);
|
|
59
|
-
}
|
|
60
|
-
ensureDistDir() {
|
|
61
|
-
fileSystem.ensureDir(this.distDir);
|
|
62
|
-
}
|
|
63
|
-
shouldJsStrategyProcessEntrypoint(entrypointPath) {
|
|
64
|
-
return !this.strategies.some((strategy) => {
|
|
65
|
-
if (strategy.type !== HmrStrategyType.INTEGRATION || strategy.priority <= HmrStrategyType.SCRIPT) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
try {
|
|
69
|
-
return strategy.matches(entrypointPath);
|
|
70
|
-
} catch (error) {
|
|
71
|
-
appLogger.error(error);
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
initializeStrategies() {
|
|
77
|
-
const jsContext = {
|
|
78
|
-
getWatchedFiles: () => this.watchedFiles,
|
|
79
|
-
getDistDir: () => this.distDir,
|
|
80
|
-
getPlugins: () => this.plugins,
|
|
81
|
-
getSrcDir: () => this.appConfig.absolutePaths.srcDir,
|
|
82
|
-
getPagesDir: () => this.appConfig.absolutePaths.pagesDir,
|
|
83
|
-
getLayoutsDir: () => this.appConfig.absolutePaths.layoutsDir,
|
|
84
|
-
getTemplateExtensions: () => this.appConfig.templatesExt,
|
|
85
|
-
getBrowserBundleService: () => this.browserBundleService,
|
|
86
|
-
getEntrypointDependencyGraph: () => this.entrypointDependencyGraph,
|
|
87
|
-
shouldProcessEntrypoint: (entrypointPath) => this.shouldJsStrategyProcessEntrypoint(entrypointPath)
|
|
88
|
-
};
|
|
89
|
-
this.strategies = [new JsHmrStrategy(jsContext), new DefaultHmrStrategy()];
|
|
90
|
-
}
|
|
91
|
-
registerStrategy(strategy) {
|
|
92
|
-
this.strategies.push(strategy);
|
|
93
|
-
}
|
|
94
|
-
setPlugins(plugins) {
|
|
95
|
-
this.plugins = [...plugins];
|
|
96
|
-
}
|
|
97
|
-
setEnabled(enabled) {
|
|
98
|
-
this.enabled = enabled;
|
|
99
|
-
}
|
|
100
|
-
isEnabled() {
|
|
101
|
-
return this.enabled;
|
|
102
|
-
}
|
|
103
|
-
async buildRuntime() {
|
|
104
|
-
const runtimeSource = fileURLToPath(import.meta.resolve("@ecopages/core/hmr/client/hmr-runtime"));
|
|
105
|
-
try {
|
|
106
|
-
const result = await this.browserBundleService.bundle({
|
|
107
|
-
profile: "hmr-runtime",
|
|
108
|
-
entrypoints: [runtimeSource],
|
|
109
|
-
outdir: this.distDir,
|
|
110
|
-
naming: "_hmr_runtime.js",
|
|
111
|
-
minify: false,
|
|
112
|
-
plugins: this.plugins
|
|
113
|
-
});
|
|
114
|
-
if (!result.success) {
|
|
115
|
-
this.onRuntimeBundleFailure(result.logs);
|
|
116
|
-
}
|
|
117
|
-
} catch (error) {
|
|
118
|
-
this.onRuntimeBundleFailure(error);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
getRuntimePath() {
|
|
122
|
-
return path.join(this.distDir, "_hmr_runtime.js");
|
|
123
|
-
}
|
|
124
|
-
broadcast(event) {
|
|
125
|
-
appLogger.debug(
|
|
126
|
-
`[HMR] Broadcasting ${event.type} event, path=${event.path || "all"}, subscribers=${this.bridge.subscriberCount}`
|
|
127
|
-
);
|
|
128
|
-
this.bridge.broadcast(event);
|
|
129
|
-
}
|
|
130
|
-
async handleFileChange(filePath, options = {}) {
|
|
131
|
-
if (this.shouldSkipMissingFileChange(filePath) && !fileSystem.exists(filePath)) {
|
|
132
|
-
appLogger.debug(`[${this.constructor.name}] Skipping missing file change: ${filePath}`);
|
|
133
|
-
this.clearFailedEntrypointRegistration(filePath);
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
const sorted = [...this.strategies].sort((a, b) => b.priority - a.priority);
|
|
137
|
-
const strategy = sorted.find((candidate) => {
|
|
138
|
-
try {
|
|
139
|
-
return candidate.matches(filePath);
|
|
140
|
-
} catch (error) {
|
|
141
|
-
appLogger.error(error);
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
if (!strategy) {
|
|
146
|
-
appLogger.warn(`[HMR] No strategy found for ${filePath}`);
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
appLogger.debug(`[${this.constructor.name}] Selected strategy: ${strategy.constructor.name}`);
|
|
150
|
-
const action = await strategy.process(filePath);
|
|
151
|
-
const shouldBroadcast = options.broadcast ?? true;
|
|
152
|
-
if (shouldBroadcast && action.type === "broadcast" && action.events) {
|
|
153
|
-
for (const event of action.events) {
|
|
154
|
-
this.broadcast(event);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
getOutputUrl(entrypointPath) {
|
|
159
|
-
return this.watchedFiles.get(entrypointPath);
|
|
160
|
-
}
|
|
161
|
-
getWatchedFiles() {
|
|
162
|
-
return this.watchedFiles;
|
|
163
|
-
}
|
|
164
|
-
getDistDir() {
|
|
165
|
-
return this.distDir;
|
|
166
|
-
}
|
|
167
|
-
getPlugins() {
|
|
168
|
-
return this.plugins;
|
|
169
|
-
}
|
|
170
|
-
getDefaultContext() {
|
|
171
|
-
return {
|
|
172
|
-
getWatchedFiles: () => this.watchedFiles,
|
|
173
|
-
getDistDir: () => this.distDir,
|
|
174
|
-
getPlugins: () => this.plugins,
|
|
175
|
-
getSrcDir: () => this.appConfig.absolutePaths.srcDir,
|
|
176
|
-
getLayoutsDir: () => this.appConfig.absolutePaths.layoutsDir,
|
|
177
|
-
getPagesDir: () => this.appConfig.absolutePaths.pagesDir,
|
|
178
|
-
getBuildExecutor: () => getAppBuildExecutor(this.appConfig),
|
|
179
|
-
getBrowserBundleService: () => this.browserBundleService,
|
|
180
|
-
getEntrypointDependencyGraph: () => this.entrypointDependencyGraph,
|
|
181
|
-
importServerModule: async (filePath) => await this.serverModuleTranspiler.importModule({
|
|
182
|
-
filePath,
|
|
183
|
-
outdir: path.join(resolveInternalExecutionDir(this.appConfig), ".server-modules"),
|
|
184
|
-
externalPackages: true
|
|
185
|
-
})
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
clearFailedEntrypointRegistration(entrypointPath) {
|
|
189
|
-
this.watchedFiles.delete(entrypointPath);
|
|
190
|
-
this.entrypointDependencyGraph.clearEntrypointDependencies(entrypointPath);
|
|
191
|
-
}
|
|
192
|
-
async registerEntrypoint(entrypointPath) {
|
|
193
|
-
return await this.entrypointRegistrar.registerEntrypoint(entrypointPath, {
|
|
194
|
-
emit: async (normalizedEntrypoint) => await this.emitStrictEntrypoint(normalizedEntrypoint),
|
|
195
|
-
getMissingOutputError: (normalizedEntrypoint, outputPath) => new Error(
|
|
196
|
-
`[HMR] Integration failed to emit entrypoint ${normalizedEntrypoint} to ${outputPath}. Page entrypoints must be produced by their owning integration.`
|
|
197
|
-
)
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
async registerScriptEntrypoint(entrypointPath) {
|
|
201
|
-
return await this.entrypointRegistrar.registerEntrypoint(entrypointPath, {
|
|
202
|
-
emit: async (normalizedEntrypoint, outputPath) => await this.emitScriptEntrypoint(normalizedEntrypoint, outputPath),
|
|
203
|
-
getMissingOutputError: (normalizedEntrypoint) => new Error(`[HMR] Failed to register script entrypoint: ${normalizedEntrypoint}`)
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
async emitStrictEntrypoint(entrypointPath) {
|
|
207
|
-
await this.handleFileChange(entrypointPath, { broadcast: false });
|
|
208
|
-
}
|
|
209
|
-
async emitScriptEntrypoint(entrypointPath, outputPath) {
|
|
210
|
-
const naming = path.relative(this.distDir, outputPath).split(path.sep).join("/");
|
|
211
|
-
const buildResult = await this.browserBundleService.bundle({
|
|
212
|
-
profile: "hmr-entrypoint",
|
|
213
|
-
entrypoints: [entrypointPath],
|
|
214
|
-
outdir: this.distDir,
|
|
215
|
-
naming,
|
|
216
|
-
minify: false,
|
|
217
|
-
plugins: this.plugins
|
|
218
|
-
});
|
|
219
|
-
if (!buildResult.success) {
|
|
220
|
-
appLogger.error(`[HMR] Generic script entrypoint build failed for ${entrypointPath}:`, buildResult.logs);
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
const entrypointDependencies = buildResult.dependencyGraph?.entrypoints?.[entrypointPath];
|
|
224
|
-
if (entrypointDependencies) {
|
|
225
|
-
this.entrypointDependencyGraph.setEntrypointDependencies(entrypointPath, entrypointDependencies);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
stop() {
|
|
229
|
-
this.entrypointRegistrations.clear();
|
|
230
|
-
for (const watcher of this.watchers.values()) {
|
|
231
|
-
watcher.close();
|
|
232
|
-
}
|
|
233
|
-
this.watchers.clear();
|
|
234
|
-
this.watchedFiles.clear();
|
|
235
|
-
this.entrypointDependencyGraph.reset();
|
|
236
|
-
this.plugins = [];
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
export {
|
|
240
|
-
SharedHmrManager
|
|
241
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
2
|
-
export interface StaticPreviewHost {
|
|
3
|
-
start(options: StaticPreviewHostStartOptions): Promise<number | null>;
|
|
4
|
-
stop(force?: boolean): Promise<void>;
|
|
5
|
-
}
|
|
6
|
-
export interface StaticPreviewHostStartOptions {
|
|
7
|
-
appConfig: EcoPagesAppConfig;
|
|
8
|
-
hostname: string;
|
|
9
|
-
port: number;
|
|
10
|
-
}
|
|
File without changes
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { EcoBuildPlugin } from './build-types.js';
|
|
2
|
-
import { type BrowserRuntimeManifest } from './browser-runtime-manifest.js';
|
|
3
|
-
export declare const DEFAULT_BROWSER_RUNTIME_IMPORT_REWRITE_PLUGIN_NAME = "browser-runtime-import-rewrite";
|
|
4
|
-
export type CreateBrowserRuntimeImportRewritePluginOptions = {
|
|
5
|
-
/** Stable build plugin name used for deduplication and selective exclusion. */
|
|
6
|
-
name?: string;
|
|
7
|
-
/** Manifest containing specifier-to-public-URL runtime asset mappings. */
|
|
8
|
-
manifest: BrowserRuntimeManifest;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Rewrites static ESM import/export specifiers and string-literal dynamic imports
|
|
12
|
-
* from manifest-owned runtime specifiers to concrete browser public URLs.
|
|
13
|
-
*/
|
|
14
|
-
export declare function rewriteBrowserRuntimeImports(code: string, specifierMap: ReadonlyMap<string, string>, filePath?: string): string;
|
|
15
|
-
export declare function getBrowserRuntimeImportRewriteMap(plugin: EcoBuildPlugin): ReadonlyMap<string, string> | undefined;
|
|
16
|
-
export declare function collectBrowserRuntimeImportRewriteMap(plugins: EcoBuildPlugin[] | undefined): ReadonlyMap<string, string>;
|
|
17
|
-
/**
|
|
18
|
-
* Creates a build plugin that applies browser runtime manifest import rewrites
|
|
19
|
-
* before the bundler resolves source modules.
|
|
20
|
-
*
|
|
21
|
-
* @remarks
|
|
22
|
-
* This is the migration path away from browser import-map-style runtime aliases:
|
|
23
|
-
* generated and authored browser modules can keep importing manifest-owned
|
|
24
|
-
* specifiers, while the build turns those specifiers into concrete public URLs.
|
|
25
|
-
*/
|
|
26
|
-
export declare function createBrowserRuntimeImportRewritePlugin(options: CreateBrowserRuntimeImportRewritePluginOptions): EcoBuildPlugin | null;
|