@ecopages/core 0.2.0-alpha.4 → 0.2.0-alpha.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +268 -14
- package/package.json +92 -110
- package/src/adapters/README.md +39 -0
- package/src/adapters/abstract/application-adapter.d.ts +28 -2
- package/src/adapters/abstract/application-adapter.js +14 -2
- package/src/adapters/abstract/router-adapter.d.ts +1 -1
- package/src/adapters/abstract/server-adapter.d.ts +2 -2
- package/src/adapters/bun/client-bridge.d.ts +1 -1
- package/src/adapters/bun/create-app.d.ts +12 -12
- package/src/adapters/bun/create-app.js +64 -41
- package/src/adapters/bun/hmr-manager.d.ts +30 -68
- package/src/adapters/bun/hmr-manager.js +30 -212
- package/src/adapters/bun/index.d.ts +2 -3
- package/src/adapters/bun/index.js +3 -3
- package/src/adapters/bun/runtime-host.d.ts +52 -0
- package/src/adapters/bun/runtime-host.js +56 -0
- package/src/adapters/bun/server-adapter.d.ts +93 -32
- package/src/adapters/bun/server-adapter.js +166 -89
- package/src/adapters/bun/static-preview-host.d.ts +28 -0
- package/src/adapters/bun/static-preview-host.js +45 -0
- package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
- package/src/{create-app.js → adapters/create-app.js} +4 -4
- package/src/adapters/index.d.ts +2 -6
- package/src/adapters/index.js +2 -8
- package/src/adapters/node/create-app.d.ts +15 -12
- package/src/adapters/node/create-app.js +34 -85
- package/src/adapters/node/http-request-bridge.d.ts +57 -0
- package/src/adapters/node/http-request-bridge.js +118 -0
- package/src/adapters/node/node-client-bridge.d.ts +1 -1
- package/src/adapters/node/node-hmr-manager.d.ts +38 -49
- package/src/adapters/node/node-hmr-manager.js +31 -219
- package/src/adapters/node/runtime-host.d.ts +57 -0
- package/src/adapters/node/runtime-host.js +92 -0
- package/src/adapters/node/server-adapter-dependencies.d.ts +19 -0
- package/src/adapters/node/server-adapter-dependencies.js +18 -0
- package/src/adapters/node/server-adapter.d.ts +20 -72
- package/src/adapters/node/server-adapter.js +99 -203
- package/src/adapters/node/static-content-server.d.ts +37 -1
- package/src/adapters/node/static-content-server.js +29 -1
- package/src/adapters/node/static-preview-host.d.ts +55 -0
- package/src/adapters/node/static-preview-host.js +68 -0
- package/src/adapters/shared/application-adapter.d.ts +1 -1
- package/src/{define-api-handler.d.ts → adapters/shared/define-api-handler.d.ts} +1 -1
- package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
- package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
- package/src/adapters/shared/explicit-static-route-matcher.d.ts +7 -4
- package/src/adapters/shared/explicit-static-route-matcher.js +14 -13
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
- package/src/adapters/shared/file-route-middleware-pipeline.js +3 -11
- package/src/adapters/shared/fs-server-response-factory.d.ts +14 -10
- package/src/adapters/shared/fs-server-response-factory.js +11 -27
- package/src/adapters/shared/fs-server-response-matcher.d.ts +20 -16
- package/src/adapters/shared/fs-server-response-matcher.js +76 -45
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
- package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
- package/src/adapters/shared/hmr-html-response.d.ts +22 -0
- package/src/adapters/shared/hmr-html-response.js +33 -0
- package/src/adapters/shared/render-context.d.ts +5 -3
- package/src/adapters/shared/render-context.js +27 -3
- package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
- package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
- package/src/adapters/shared/runtime-host.d.ts +12 -0
- package/src/adapters/shared/server-adapter.d.ts +33 -12
- package/src/adapters/shared/server-adapter.js +215 -132
- package/src/adapters/shared/server-route-handler.d.ts +5 -5
- package/src/adapters/shared/server-route-handler.js +7 -16
- package/src/adapters/shared/server-static-builder.d.ts +41 -8
- package/src/adapters/shared/server-static-builder.js +65 -11
- package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
- package/src/adapters/shared/shared-hmr-manager.js +240 -0
- package/src/adapters/shared/static-preview-host.d.ts +10 -0
- package/src/build/README.md +107 -0
- package/src/build/build-adapter.d.ts +176 -3
- package/src/build/build-adapter.js +619 -16
- package/src/build/build-manifest.d.ts +27 -0
- package/src/build/build-manifest.js +30 -0
- package/src/build/dev-build-coordinator.d.ts +72 -0
- package/src/build/dev-build-coordinator.js +154 -0
- package/src/build/esbuild-build-adapter.d.ts +16 -6
- package/src/build/esbuild-build-adapter.js +202 -74
- package/src/build/runtime-build-executor.d.ts +14 -0
- package/src/build/runtime-build-executor.js +22 -0
- package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
- package/src/build/runtime-specifier-alias-plugin.js +35 -0
- package/src/build/runtime-specifier-aliases.d.ts +5 -0
- package/src/build/runtime-specifier-aliases.js +95 -0
- package/src/config/README.md +36 -0
- package/src/config/config-builder.d.ts +54 -29
- package/src/config/config-builder.js +256 -50
- package/src/{constants.d.ts → config/constants.d.ts} +13 -0
- package/src/{constants.js → config/constants.js} +4 -0
- package/src/declarations.d.ts +19 -14
- package/src/dev/host-runtime.d.ts +10 -0
- package/src/dev/host-runtime.js +24 -0
- package/src/dev/sc-server.d.ts +1 -1
- package/src/dev/sc-server.js +1 -1
- package/src/eco/README.md +70 -16
- package/src/eco/eco.browser.d.ts +2 -0
- package/src/eco/eco.browser.js +88 -0
- package/src/eco/eco.js +63 -54
- package/src/eco/eco.types.d.ts +69 -6
- package/src/eco/eco.utils.d.ts +1 -40
- package/src/eco/eco.utils.js +5 -35
- package/src/eco/global-injector-map.d.ts +3 -3
- package/src/eco/global-injector-map.js +2 -2
- package/src/eco/lazy-injector-map.d.ts +2 -2
- package/src/errors/index.d.ts +1 -0
- package/src/errors/index.js +3 -1
- package/src/hmr/README.md +26 -0
- package/src/hmr/client/hmr-runtime.d.ts +1 -6
- package/src/hmr/client/hmr-runtime.js +38 -7
- package/src/hmr/hmr-strategy.d.ts +16 -13
- package/src/hmr/hmr-strategy.js +22 -7
- package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
- package/src/hmr/hmr.postcss.test.e2e.js +31 -0
- package/src/hmr/hmr.test.e2e.js +26 -33
- package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
- package/src/hmr/strategies/default-hmr-strategy.js +1 -1
- package/src/hmr/strategies/js-hmr-strategy.d.ts +46 -48
- package/src/hmr/strategies/js-hmr-strategy.js +60 -75
- package/src/index.browser.d.ts +2 -2
- package/src/index.browser.js +1 -1
- package/src/index.d.ts +4 -3
- package/src/index.js +16 -5
- package/src/integrations/ghtml/ghtml-renderer.d.ts +3 -2
- package/src/integrations/ghtml/ghtml-renderer.js +27 -30
- package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
- package/src/integrations/ghtml/ghtml.constants.js +4 -0
- package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
- package/src/integrations/ghtml/ghtml.plugin.js +3 -4
- package/src/plugins/README.md +35 -0
- package/src/plugins/alias-resolver-plugin.d.ts +1 -0
- package/src/plugins/alias-resolver-plugin.js +27 -5
- package/src/plugins/eco-component-meta-plugin.d.ts +14 -1
- package/src/plugins/eco-component-meta-plugin.js +42 -24
- package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
- package/src/plugins/foreign-jsx-override-plugin.js +41 -0
- package/src/plugins/integration-plugin.d.ts +147 -29
- package/src/plugins/integration-plugin.js +103 -14
- package/src/plugins/processor.d.ts +17 -2
- package/src/plugins/processor.js +22 -3
- package/src/plugins/runtime-capability.d.ts +9 -0
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/GRAPH.md +83 -325
- package/src/route-renderer/README.md +73 -90
- package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
- package/src/route-renderer/orchestration/component-render-context.js +147 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +534 -0
- package/src/route-renderer/orchestration/integration-renderer.js +986 -0
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
- package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
- package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
- package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
- package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
- package/src/route-renderer/orchestration/render-output.utils.js +171 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +134 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.js +442 -0
- package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
- package/src/route-renderer/orchestration/template-serialization.js +45 -0
- package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
- package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
- package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
- package/src/route-renderer/{dependency-resolver.d.ts → page-loading/dependency-resolver.d.ts} +15 -4
- package/src/route-renderer/page-loading/dependency-resolver.js +115 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
- package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
- package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
- package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
- package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
- package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
- package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
- package/src/route-renderer/page-loading/page-module-loader.d.ts +90 -0
- package/src/route-renderer/{page-module-loader.js → page-loading/page-module-loader.js} +39 -14
- package/src/route-renderer/route-renderer.d.ts +57 -14
- package/src/route-renderer/route-renderer.js +30 -18
- package/src/router/README.md +94 -0
- package/src/router/client/link-intent.d.ts +53 -0
- package/src/router/client/link-intent.js +34 -0
- package/src/router/client/link-intent.test.browser.d.ts +1 -0
- package/src/router/client/link-intent.test.browser.js +43 -0
- package/src/router/client/navigation-coordinator.d.ts +169 -0
- package/src/router/client/navigation-coordinator.js +215 -0
- package/src/router/server/route-registry.d.ts +78 -0
- package/src/router/server/route-registry.js +262 -0
- package/src/services/README.md +28 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
- package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
- package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +103 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset-processing.service.js +124 -89
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.js +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.d.ts +16 -1
- package/src/services/assets/asset-processing-service/assets.types.js +0 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +55 -0
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +49 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
- package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
- package/src/services/assets/asset-processing-service/index.d.ts +6 -0
- package/src/services/assets/asset-processing-service/index.js +6 -0
- package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
- package/src/services/assets/asset-processing-service/page-package.js +80 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.d.ts +1 -1
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.js +11 -5
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +22 -0
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +136 -0
- package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
- package/src/services/assets/asset-processing-service/processors/index.js +5 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.d.ts +3 -2
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +119 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.d.ts +4 -3
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.js +28 -7
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +42 -0
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +126 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +59 -0
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
- package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.js +9 -3
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
- package/src/services/assets/browser-bundle.service.d.ts +73 -0
- package/src/services/assets/browser-bundle.service.js +41 -0
- package/src/services/{page-request-cache-coordinator.service.d.ts → cache/page-request-cache-coordinator.service.d.ts} +2 -2
- package/src/services/{page-request-cache-coordinator.service.js → cache/page-request-cache-coordinator.service.js} +3 -1
- package/src/services/html/html-rewriter-provider.service.d.ts +40 -0
- package/src/services/html/html-rewriter-provider.service.js +68 -0
- package/src/services/html/html-transformer.service.d.ts +96 -0
- package/src/services/html/html-transformer.service.js +287 -0
- package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
- package/src/services/invalidation/development-invalidation.service.js +190 -0
- package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
- package/src/services/module-loading/app-module-loader.service.js +0 -0
- package/src/services/module-loading/app-server-module-transpiler.service.d.ts +24 -0
- package/src/services/module-loading/app-server-module-transpiler.service.js +151 -0
- package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
- package/src/services/module-loading/host-module-loader-registry.js +15 -0
- package/src/services/module-loading/module-loading-types.d.ts +2 -0
- package/src/services/module-loading/module-loading-types.js +0 -0
- package/src/services/module-loading/node-bootstrap-plugin.d.ts +42 -0
- package/src/services/module-loading/node-bootstrap-plugin.js +297 -0
- package/src/services/module-loading/page-module-import.service.d.ts +95 -0
- package/src/services/module-loading/page-module-import.service.js +191 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +63 -0
- package/src/services/module-loading/server-module-transpiler.service.js +64 -0
- package/src/services/module-loading/source-module-support.d.ts +5 -0
- package/src/services/module-loading/source-module-support.js +8 -0
- package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
- package/src/services/runtime-state/dev-graph.service.js +162 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
- package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
- package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
- package/src/services/{schema-validation-service.d.ts → validation/schema-validation-service.d.ts} +1 -1
- package/src/static-site-generator/README.md +26 -0
- package/src/static-site-generator/static-site-generator.d.ts +67 -20
- package/src/static-site-generator/static-site-generator.js +182 -138
- package/src/{internal-types.d.ts → types/internal-types.d.ts} +62 -30
- package/src/types/internal-types.js +0 -0
- package/src/{public-types.d.ts → types/public-types.d.ts} +239 -35
- package/src/types/public-types.js +0 -0
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +6 -0
- package/src/utils/locals-utils.d.ts +1 -1
- package/src/utils/parse-cli-args.d.ts +4 -1
- package/src/utils/parse-cli-args.js +16 -1
- package/src/utils/resolve-work-dir.d.ts +11 -0
- package/src/utils/resolve-work-dir.js +31 -0
- package/src/watchers/project-watcher.d.ts +40 -29
- package/src/watchers/project-watcher.js +126 -116
- package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
- package/src/watchers/project-watcher.test-helpers.js +6 -6
- package/CHANGELOG.md +0 -91
- package/src/adapters/abstract/application-adapter.ts +0 -337
- package/src/adapters/abstract/router-adapter.ts +0 -30
- package/src/adapters/abstract/server-adapter.ts +0 -79
- package/src/adapters/bun/client-bridge.ts +0 -62
- package/src/adapters/bun/create-app.ts +0 -189
- package/src/adapters/bun/define-api-handler.d.ts +0 -61
- package/src/adapters/bun/define-api-handler.ts +0 -114
- package/src/adapters/bun/hmr-manager.ts +0 -296
- package/src/adapters/bun/index.ts +0 -3
- package/src/adapters/bun/server-adapter.ts +0 -492
- package/src/adapters/bun/server-lifecycle.d.ts +0 -52
- package/src/adapters/bun/server-lifecycle.js +0 -120
- package/src/adapters/bun/server-lifecycle.ts +0 -154
- package/src/adapters/index.ts +0 -6
- package/src/adapters/node/create-app.ts +0 -179
- package/src/adapters/node/index.d.ts +0 -4
- package/src/adapters/node/index.js +0 -8
- package/src/adapters/node/index.ts +0 -9
- package/src/adapters/node/node-client-bridge.ts +0 -79
- package/src/adapters/node/node-hmr-manager.ts +0 -289
- package/src/adapters/node/server-adapter.ts +0 -561
- package/src/adapters/node/static-content-server.ts +0 -203
- package/src/adapters/shared/api-response.ts +0 -104
- package/src/adapters/shared/application-adapter.ts +0 -199
- package/src/adapters/shared/explicit-static-route-matcher.ts +0 -134
- package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -123
- package/src/adapters/shared/fs-server-response-factory.ts +0 -118
- package/src/adapters/shared/fs-server-response-matcher.ts +0 -198
- package/src/adapters/shared/render-context.ts +0 -105
- package/src/adapters/shared/server-adapter.ts +0 -442
- package/src/adapters/shared/server-route-handler.ts +0 -166
- package/src/adapters/shared/server-static-builder.ts +0 -82
- package/src/build/build-adapter.ts +0 -132
- package/src/build/build-types.ts +0 -83
- package/src/build/esbuild-build-adapter.ts +0 -510
- package/src/config/config-builder.ts +0 -474
- package/src/constants.ts +0 -39
- package/src/create-app.ts +0 -87
- package/src/define-api-handler.js +0 -15
- package/src/define-api-handler.ts +0 -66
- package/src/dev/sc-server.ts +0 -143
- package/src/eco/component-render-context.d.ts +0 -105
- package/src/eco/component-render-context.js +0 -77
- package/src/eco/component-render-context.ts +0 -202
- package/src/eco/eco.ts +0 -221
- package/src/eco/eco.types.ts +0 -202
- package/src/eco/eco.utils.ts +0 -89
- package/src/eco/global-injector-map.ts +0 -112
- package/src/eco/lazy-injector-map.ts +0 -120
- package/src/eco/module-dependencies.ts +0 -75
- package/src/errors/http-error.ts +0 -72
- package/src/errors/index.ts +0 -2
- package/src/errors/locals-access-error.ts +0 -7
- package/src/global/app-logger.ts +0 -4
- package/src/hmr/client/hmr-runtime.ts +0 -121
- package/src/hmr/hmr-strategy.ts +0 -172
- package/src/hmr/hmr.test.e2e.ts +0 -75
- package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
- package/src/hmr/strategies/js-hmr-strategy.ts +0 -320
- package/src/index.browser.ts +0 -3
- package/src/index.ts +0 -5
- package/src/integrations/ghtml/ghtml-renderer.ts +0 -93
- package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
- package/src/internal-types.ts +0 -212
- package/src/plugins/alias-resolver-plugin.ts +0 -45
- package/src/plugins/eco-component-meta-plugin.ts +0 -474
- package/src/plugins/integration-plugin.ts +0 -184
- package/src/plugins/processor.ts +0 -220
- package/src/public-types.ts +0 -1260
- package/src/route-renderer/component-graph-executor.d.ts +0 -32
- package/src/route-renderer/component-graph-executor.js +0 -31
- package/src/route-renderer/component-graph-executor.ts +0 -84
- package/src/route-renderer/component-graph.d.ts +0 -42
- package/src/route-renderer/component-graph.js +0 -72
- package/src/route-renderer/component-graph.ts +0 -159
- package/src/route-renderer/component-marker.d.ts +0 -52
- package/src/route-renderer/component-marker.js +0 -46
- package/src/route-renderer/component-marker.ts +0 -117
- package/src/route-renderer/dependency-resolver.js +0 -428
- package/src/route-renderer/dependency-resolver.ts +0 -596
- package/src/route-renderer/html-post-processing.service.d.ts +0 -40
- package/src/route-renderer/html-post-processing.service.js +0 -86
- package/src/route-renderer/html-post-processing.service.ts +0 -103
- package/src/route-renderer/integration-renderer.d.ts +0 -339
- package/src/route-renderer/integration-renderer.js +0 -526
- package/src/route-renderer/integration-renderer.ts +0 -696
- package/src/route-renderer/marker-graph-resolver.d.ts +0 -76
- package/src/route-renderer/marker-graph-resolver.js +0 -93
- package/src/route-renderer/marker-graph-resolver.ts +0 -153
- package/src/route-renderer/page-module-loader.d.ts +0 -61
- package/src/route-renderer/page-module-loader.ts +0 -153
- package/src/route-renderer/render-execution.service.d.ts +0 -69
- package/src/route-renderer/render-execution.service.js +0 -91
- package/src/route-renderer/render-execution.service.ts +0 -158
- package/src/route-renderer/render-preparation.service.d.ts +0 -112
- package/src/route-renderer/render-preparation.service.js +0 -243
- package/src/route-renderer/render-preparation.service.ts +0 -358
- package/src/route-renderer/route-renderer.ts +0 -80
- package/src/router/fs-router-scanner.d.ts +0 -41
- package/src/router/fs-router-scanner.js +0 -155
- package/src/router/fs-router-scanner.ts +0 -217
- package/src/router/fs-router.d.ts +0 -26
- package/src/router/fs-router.js +0 -100
- package/src/router/fs-router.ts +0 -122
- package/src/services/asset-processing-service/asset-processing.service.d.ts +0 -41
- package/src/services/asset-processing-service/asset-processing.service.ts +0 -306
- package/src/services/asset-processing-service/asset.factory.ts +0 -105
- package/src/services/asset-processing-service/assets.types.ts +0 -112
- package/src/services/asset-processing-service/index.d.ts +0 -3
- package/src/services/asset-processing-service/index.js +0 -3
- package/src/services/asset-processing-service/index.ts +0 -3
- package/src/services/asset-processing-service/processor.interface.ts +0 -27
- package/src/services/asset-processing-service/processor.registry.ts +0 -18
- package/src/services/asset-processing-service/processors/base/base-processor.ts +0 -76
- package/src/services/asset-processing-service/processors/base/base-script-processor.d.ts +0 -16
- package/src/services/asset-processing-service/processors/base/base-script-processor.js +0 -80
- package/src/services/asset-processing-service/processors/base/base-script-processor.ts +0 -105
- package/src/services/asset-processing-service/processors/index.d.ts +0 -5
- package/src/services/asset-processing-service/processors/index.js +0 -5
- package/src/services/asset-processing-service/processors/index.ts +0 -5
- package/src/services/asset-processing-service/processors/script/content-script.processor.js +0 -57
- package/src/services/asset-processing-service/processors/script/content-script.processor.ts +0 -66
- package/src/services/asset-processing-service/processors/script/file-script.processor.ts +0 -88
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -7
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.js +0 -74
- package/src/services/asset-processing-service/processors/script/node-module-script.processor.ts +0 -84
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -25
- package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
- package/src/services/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -77
- package/src/services/cache/cache.types.ts +0 -126
- package/src/services/cache/index.ts +0 -18
- package/src/services/cache/memory-cache-store.ts +0 -130
- package/src/services/cache/page-cache-service.ts +0 -202
- package/src/services/html-transformer.service.d.ts +0 -50
- package/src/services/html-transformer.service.js +0 -163
- package/src/services/html-transformer.service.ts +0 -217
- package/src/services/page-module-import.service.d.ts +0 -37
- package/src/services/page-module-import.service.js +0 -88
- package/src/services/page-module-import.service.ts +0 -129
- package/src/services/page-request-cache-coordinator.service.ts +0 -128
- package/src/services/schema-validation-service.ts +0 -204
- package/src/services/validation/standard-schema.types.ts +0 -68
- package/src/static-site-generator/static-site-generator.ts +0 -359
- package/src/utils/css.d.ts +0 -1
- package/src/utils/css.js +0 -7
- package/src/utils/css.ts +0 -5
- package/src/utils/deep-merge.ts +0 -47
- package/src/utils/hash.ts +0 -5
- package/src/utils/html.ts +0 -1
- package/src/utils/invariant.ts +0 -15
- package/src/utils/locals-utils.ts +0 -37
- package/src/utils/parse-cli-args.ts +0 -83
- package/src/utils/path-utils.module.ts +0 -14
- package/src/utils/runtime.ts +0 -44
- package/src/utils/server-utils.module.ts +0 -67
- package/src/watchers/project-watcher.test-helpers.ts +0 -41
- package/src/watchers/project-watcher.ts +0 -344
- /package/src/adapters/{bun → shared}/define-api-handler.js +0 -0
- /package/src/{internal-types.js → adapters/shared/runtime-host.js} +0 -0
- /package/src/{public-types.js → adapters/shared/static-preview-host.js} +0 -0
- /package/src/{services/asset-processing-service/assets.types.js → plugins/runtime-capability.js} +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.js +0 -0
- /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.js +0 -0
- /package/src/services/{schema-validation-service.js → validation/schema-validation-service.js} +0 -0
|
@@ -6,15 +6,40 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module ApplicationAdapter
|
|
8
8
|
*/
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
9
|
+
import type { SourceModuleLoader } from '../../services/module-loading/module-loading-types.js';
|
|
10
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
11
|
+
import type { ApiHandler, ApiHandlerContext, ErrorHandler, Middleware, RouteOptions, StaticRoute, ViewLoader } from '../../types/public-types.js';
|
|
11
12
|
import { type ReturnParseCliArgs } from '../../utils/parse-cli-args.js';
|
|
13
|
+
/**
|
|
14
|
+
* Runtime bootstrap options layered on top of the app config.
|
|
15
|
+
*
|
|
16
|
+
* These options let a host runtime embed Ecopages without mutating process
|
|
17
|
+
* globals or app runtime state before calling `createApp()`.
|
|
18
|
+
*/
|
|
19
|
+
export interface ApplicationRuntimeOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Forces the app into the embedded-runtime CLI mode used by host
|
|
22
|
+
* environments.
|
|
23
|
+
*
|
|
24
|
+
* When enabled and no explicit `hostModuleLoader` is provided, the
|
|
25
|
+
* adapter auto-detects a host module loader from the global scope.
|
|
26
|
+
*/
|
|
27
|
+
embedded?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Explicit source module loader for request-time imports.
|
|
30
|
+
*
|
|
31
|
+
* When omitted in embedded mode, the adapter attempts automatic
|
|
32
|
+
* detection from globals set by the host environment.
|
|
33
|
+
*/
|
|
34
|
+
hostModuleLoader?: SourceModuleLoader;
|
|
35
|
+
}
|
|
12
36
|
/**
|
|
13
37
|
* Configuration options for application adapters
|
|
14
38
|
*/
|
|
15
39
|
export interface ApplicationAdapterOptions {
|
|
16
40
|
appConfig: EcoPagesAppConfig;
|
|
17
41
|
serverOptions?: Record<string, any>;
|
|
42
|
+
runtime?: ApplicationRuntimeOptions;
|
|
18
43
|
/**
|
|
19
44
|
* Options for clearing the output directory before starting the server
|
|
20
45
|
* @default false
|
|
@@ -43,6 +68,7 @@ export declare abstract class AbstractApplicationAdapter<TOptions extends Applic
|
|
|
43
68
|
protected appConfig: EcoPagesAppConfig;
|
|
44
69
|
protected serverOptions: Record<string, any>;
|
|
45
70
|
protected cliArgs: ReturnParseCliArgs;
|
|
71
|
+
protected runtimeOptions: ApplicationRuntimeOptions;
|
|
46
72
|
protected apiHandlers: ApiHandler[];
|
|
47
73
|
protected staticRoutes: StaticRoute[];
|
|
48
74
|
protected errorHandler?: ErrorHandler;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { appLogger } from "../../global/app-logger.js";
|
|
2
|
+
import {
|
|
3
|
+
getAppModuleLoader,
|
|
4
|
+
setAppHostModuleLoader
|
|
5
|
+
} from "../../services/module-loading/app-server-module-transpiler.service.js";
|
|
6
|
+
import { getHostModuleLoader } from "../../services/module-loading/host-module-loader-registry.js";
|
|
2
7
|
import { invariant } from "../../utils/invariant.js";
|
|
3
8
|
import { fileSystem } from "@ecopages/file-system";
|
|
4
9
|
import { parseCliArgs } from "../../utils/parse-cli-args.js";
|
|
@@ -6,20 +11,27 @@ class AbstractApplicationAdapter {
|
|
|
6
11
|
appConfig;
|
|
7
12
|
serverOptions;
|
|
8
13
|
cliArgs;
|
|
14
|
+
runtimeOptions;
|
|
9
15
|
apiHandlers = [];
|
|
10
16
|
staticRoutes = [];
|
|
11
17
|
errorHandler;
|
|
12
18
|
constructor(options) {
|
|
13
19
|
this.appConfig = options.appConfig;
|
|
14
20
|
this.serverOptions = options.serverOptions || {};
|
|
15
|
-
this.
|
|
21
|
+
this.runtimeOptions = options.runtime ?? {};
|
|
22
|
+
this.cliArgs = parseCliArgs({ embeddedRuntime: this.runtimeOptions.embedded });
|
|
23
|
+
const hostModuleLoader = this.runtimeOptions.hostModuleLoader ?? (this.runtimeOptions.embedded ? getHostModuleLoader() : void 0);
|
|
24
|
+
if (hostModuleLoader) {
|
|
25
|
+
setAppHostModuleLoader(this.appConfig, hostModuleLoader);
|
|
26
|
+
}
|
|
27
|
+
getAppModuleLoader(this.appConfig);
|
|
16
28
|
if (options.clearOutput) {
|
|
17
29
|
this.clearDistFolder().catch((error) => {
|
|
18
30
|
appLogger.error("Error clearing dist folder", error);
|
|
19
31
|
});
|
|
20
32
|
}
|
|
21
33
|
}
|
|
22
|
-
async clearDistFolder(
|
|
34
|
+
async clearDistFolder() {
|
|
23
35
|
const distPath = this.appConfig.absolutePaths.distDir;
|
|
24
36
|
const distExists = fileSystem.exists(distPath);
|
|
25
37
|
if (!distExists) return;
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module ServerAdapter
|
|
8
8
|
*/
|
|
9
|
-
import type { EcoPagesAppConfig } from '../../internal-types.js';
|
|
10
|
-
import type { ApiHandler } from '../../public-types.js';
|
|
9
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
10
|
+
import type { ApiHandler } from '../../types/public-types.js';
|
|
11
11
|
/**
|
|
12
12
|
* Configuration options for all server adapters
|
|
13
13
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ServerWebSocket } from 'bun';
|
|
2
|
-
import type { ClientBridgeEvent, IClientBridge } from '../../public-types';
|
|
2
|
+
import type { ClientBridgeEvent, IClientBridge } from '../../types/public-types.js';
|
|
3
3
|
type BunSocket = ServerWebSocket<unknown>;
|
|
4
4
|
/**
|
|
5
5
|
* Manages WebSocket subscribers and broadcasts development events.
|
|
@@ -8,18 +8,12 @@
|
|
|
8
8
|
* @module EcopagesApp
|
|
9
9
|
*/
|
|
10
10
|
import type { Server } from 'bun';
|
|
11
|
-
import type {
|
|
12
|
-
import type { ApiHandlerContext, RouteGroupBuilder } from '../../public-types.js';
|
|
13
|
-
import { type ApplicationAdapterOptions } from '../abstract/application-adapter.js';
|
|
11
|
+
import type { ApiHandlerContext, RouteGroupBuilder } from '../../types/public-types.js';
|
|
14
12
|
import { SharedApplicationAdapter } from '../shared/application-adapter.js';
|
|
13
|
+
import type { RuntimeHost } from '../shared/runtime-host.js';
|
|
14
|
+
import type { StaticPreviewHost } from '../shared/static-preview-host.js';
|
|
15
|
+
import type { EcopagesAppOptions } from '../create-app.js';
|
|
15
16
|
import { type BunServerAdapterResult } from './server-adapter.js';
|
|
16
|
-
/**
|
|
17
|
-
* Configuration options for the Bun application adapter
|
|
18
|
-
*/
|
|
19
|
-
export interface EcopagesAppOptions extends ApplicationAdapterOptions {
|
|
20
|
-
appConfig: EcoPagesAppConfig;
|
|
21
|
-
serverOptions?: Record<string, any>;
|
|
22
|
-
}
|
|
23
17
|
/**
|
|
24
18
|
* Bun-specific route group builder that properly infers route params from path patterns.
|
|
25
19
|
* When you define a route like `/posts/:slug`, the handler context will have
|
|
@@ -34,9 +28,15 @@ export type BunRouteGroupBuilder<WebSocketData = undefined, TContext extends Api
|
|
|
34
28
|
* This class extends the {@link AbstractApplicationAdapter}
|
|
35
29
|
* and provides methods for handling HTTP requests and managing the server.
|
|
36
30
|
*/
|
|
37
|
-
export declare class
|
|
31
|
+
export declare class BunEcopagesApp<WebSocketData = undefined> extends SharedApplicationAdapter<EcopagesAppOptions, Server<WebSocketData>, Request> {
|
|
38
32
|
serverAdapter: BunServerAdapterResult | undefined;
|
|
39
33
|
private server;
|
|
34
|
+
private readonly runtimeHost;
|
|
35
|
+
private readonly previewHost;
|
|
36
|
+
constructor(options: EcopagesAppOptions, dependencies: {
|
|
37
|
+
runtimeHost: RuntimeHost<Server<WebSocketData>, Bun.Serve.Options<WebSocketData>>;
|
|
38
|
+
previewHost: StaticPreviewHost;
|
|
39
|
+
});
|
|
40
40
|
fetch(request: Request): Promise<Response>;
|
|
41
41
|
/**
|
|
42
42
|
* Complete the initialization of the server adapter by processing dynamic routes
|
|
@@ -57,4 +57,4 @@ export declare class EcopagesApp<WebSocketData = undefined> extends SharedApplic
|
|
|
57
57
|
/**
|
|
58
58
|
* Factory function to create a Bun application
|
|
59
59
|
*/
|
|
60
|
-
export declare function createApp<WebSocketData = undefined>(options: EcopagesAppOptions): Promise<
|
|
60
|
+
export declare function createApp<WebSocketData = undefined>(options: EcopagesAppOptions): Promise<BunEcopagesApp<WebSocketData>>;
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../constants.js";
|
|
1
|
+
import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
|
|
2
2
|
import { appLogger } from "../../global/app-logger.js";
|
|
3
|
-
import { getBunRuntime } from "../../utils/runtime.js";
|
|
4
|
-
import {} from "../abstract/application-adapter.js";
|
|
5
3
|
import { SharedApplicationAdapter } from "../shared/application-adapter.js";
|
|
4
|
+
import { resolveRuntimeBinding, resolveStaticRuntimeMode } from "../shared/runtime-app-bootstrap.js";
|
|
6
5
|
import { createBunServerAdapter } from "./server-adapter.js";
|
|
7
|
-
|
|
6
|
+
import { BunStaticPreviewHost } from "./static-preview-host.js";
|
|
7
|
+
import { BunRuntimeHost } from "./runtime-host.js";
|
|
8
|
+
class BunEcopagesApp extends SharedApplicationAdapter {
|
|
8
9
|
serverAdapter;
|
|
9
10
|
server = null;
|
|
11
|
+
runtimeHost;
|
|
12
|
+
previewHost;
|
|
13
|
+
constructor(options, dependencies) {
|
|
14
|
+
super(options);
|
|
15
|
+
this.runtimeHost = dependencies.runtimeHost;
|
|
16
|
+
this.previewHost = dependencies.previewHost;
|
|
17
|
+
}
|
|
10
18
|
async fetch(request) {
|
|
11
19
|
if (!this.serverAdapter) {
|
|
12
20
|
this.serverAdapter = await this.initializeServerAdapter();
|
|
@@ -28,34 +36,28 @@ class EcopagesApp extends SharedApplicationAdapter {
|
|
|
28
36
|
* Initialize the Bun server adapter
|
|
29
37
|
*/
|
|
30
38
|
async initializeServerAdapter() {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const preferredPort = cliPort ?? envPort ?? DEFAULT_ECOPAGES_PORT;
|
|
36
|
-
const preferredHostname = cliHostname ?? envHostname ?? DEFAULT_ECOPAGES_HOSTNAME;
|
|
39
|
+
const binding = resolveRuntimeBinding({
|
|
40
|
+
cliArgs: this.cliArgs,
|
|
41
|
+
serverOptions: this.serverOptions
|
|
42
|
+
});
|
|
37
43
|
appLogger.debug("initializeServerAdapter", {
|
|
38
|
-
dev,
|
|
39
|
-
cliPort,
|
|
40
|
-
cliHostname,
|
|
41
|
-
envPort,
|
|
42
|
-
envHostname,
|
|
43
|
-
preferredPort,
|
|
44
|
-
preferredHostname,
|
|
45
|
-
composedUrl:
|
|
44
|
+
dev: this.cliArgs.dev,
|
|
45
|
+
cliPort: this.cliArgs.port,
|
|
46
|
+
cliHostname: this.cliArgs.hostname,
|
|
47
|
+
envPort: process.env.ECOPAGES_PORT,
|
|
48
|
+
envHostname: process.env.ECOPAGES_HOSTNAME,
|
|
49
|
+
preferredPort: binding.preferredPort,
|
|
50
|
+
preferredHostname: binding.preferredHostname,
|
|
51
|
+
composedUrl: binding.runtimeOrigin
|
|
46
52
|
});
|
|
47
53
|
return await createBunServerAdapter({
|
|
48
|
-
runtimeOrigin:
|
|
54
|
+
runtimeOrigin: binding.runtimeOrigin,
|
|
49
55
|
appConfig: this.appConfig,
|
|
50
56
|
apiHandlers: this.apiHandlers,
|
|
51
57
|
staticRoutes: this.staticRoutes,
|
|
52
58
|
errorHandler: this.errorHandler,
|
|
53
|
-
options: { watch:
|
|
54
|
-
serveOptions:
|
|
55
|
-
port: preferredPort,
|
|
56
|
-
hostname: preferredHostname,
|
|
57
|
-
...this.serverOptions
|
|
58
|
-
}
|
|
59
|
+
options: { watch: binding.watch },
|
|
60
|
+
serveOptions: binding.serveOptions
|
|
59
61
|
});
|
|
60
62
|
}
|
|
61
63
|
/**
|
|
@@ -68,11 +70,11 @@ class EcopagesApp extends SharedApplicationAdapter {
|
|
|
68
70
|
this.serverAdapter = await this.initializeServerAdapter();
|
|
69
71
|
}
|
|
70
72
|
const { dev, preview, build } = this.cliArgs;
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (canBuildWithoutRuntimeServer) {
|
|
73
|
+
const staticRuntimeMode = resolveStaticRuntimeMode({
|
|
74
|
+
appConfig: this.appConfig,
|
|
75
|
+
cliArgs: this.cliArgs
|
|
76
|
+
});
|
|
77
|
+
if (staticRuntimeMode.canBuildWithoutRuntimeServer) {
|
|
76
78
|
appLogger.debugTime("Building static pages");
|
|
77
79
|
await this.serverAdapter.buildStatic({ preview });
|
|
78
80
|
appLogger.debugTimeEnd("Building static pages");
|
|
@@ -83,23 +85,41 @@ class EcopagesApp extends SharedApplicationAdapter {
|
|
|
83
85
|
}
|
|
84
86
|
const enableHmr = dev || !preview && !build;
|
|
85
87
|
const serverOptions = this.serverAdapter.getServerOptions({ enableHmr });
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
const configuredHostname = String(serverOptions.hostname ?? DEFAULT_ECOPAGES_HOSTNAME);
|
|
89
|
+
const configuredPort = Number(serverOptions.port ?? DEFAULT_ECOPAGES_PORT);
|
|
90
|
+
const runtimeServerOptions = (preview || build) && staticRuntimeMode.requiresFetchRuntime ? {
|
|
91
|
+
...serverOptions,
|
|
92
|
+
port: 0
|
|
93
|
+
} : serverOptions;
|
|
94
|
+
this.server = await this.runtimeHost.start({
|
|
95
|
+
serveOptions: runtimeServerOptions,
|
|
96
|
+
handleRequest: async () => new Response(null, { status: 500 }),
|
|
97
|
+
onError: async () => {
|
|
98
|
+
}
|
|
99
|
+
});
|
|
92
100
|
await this.serverAdapter.completeInitialization(this.server).catch((error) => {
|
|
93
101
|
appLogger.error(`Failed to complete initialization: ${error}`);
|
|
94
102
|
});
|
|
95
103
|
if (!this.server) {
|
|
96
104
|
throw new Error("Server failed to start");
|
|
97
105
|
}
|
|
98
|
-
appLogger.info(
|
|
106
|
+
appLogger.info(
|
|
107
|
+
`Server running at ${this.runtimeHost.getOrigin(this.server, runtimeServerOptions)}`
|
|
108
|
+
);
|
|
99
109
|
if (build || preview) {
|
|
100
110
|
appLogger.debugTime("Building static pages");
|
|
101
|
-
await this.serverAdapter.buildStatic({ preview });
|
|
102
|
-
this.
|
|
111
|
+
await this.serverAdapter.buildStatic({ preview: false });
|
|
112
|
+
await this.runtimeHost.stop(this.server, { force: true });
|
|
113
|
+
if (preview) {
|
|
114
|
+
const previewPort = await this.previewHost.start({
|
|
115
|
+
appConfig: this.appConfig,
|
|
116
|
+
hostname: configuredHostname,
|
|
117
|
+
port: configuredPort
|
|
118
|
+
});
|
|
119
|
+
if (previewPort) {
|
|
120
|
+
appLogger.info(`Preview running at http://${configuredHostname}:${previewPort}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
103
123
|
appLogger.debugTimeEnd("Building static pages");
|
|
104
124
|
if (build) {
|
|
105
125
|
process.exit(0);
|
|
@@ -109,9 +129,12 @@ class EcopagesApp extends SharedApplicationAdapter {
|
|
|
109
129
|
}
|
|
110
130
|
}
|
|
111
131
|
async function createApp(options) {
|
|
112
|
-
return new
|
|
132
|
+
return new BunEcopagesApp(options, {
|
|
133
|
+
runtimeHost: new BunRuntimeHost(),
|
|
134
|
+
previewHost: new BunStaticPreviewHost()
|
|
135
|
+
});
|
|
113
136
|
}
|
|
114
137
|
export {
|
|
115
|
-
|
|
138
|
+
BunEcopagesApp,
|
|
116
139
|
createApp
|
|
117
140
|
};
|
|
@@ -1,85 +1,47 @@
|
|
|
1
1
|
import type { WebSocketHandler } from 'bun';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type
|
|
5
|
-
import
|
|
6
|
-
import type { ClientBridgeEvent } from '../../public-types';
|
|
2
|
+
import type { EcoPagesAppConfig } from '../../types/internal-types.js';
|
|
3
|
+
import type { ClientBridge } from './client-bridge.js';
|
|
4
|
+
import { InMemoryEntrypointDependencyGraph, type EntrypointDependencyGraph } from '../../services/runtime-state/entrypoint-dependency-graph.service.js';
|
|
5
|
+
import { SharedHmrManager } from '../shared/shared-hmr-manager.js';
|
|
7
6
|
type BunSocketHandler = WebSocketHandler<unknown>;
|
|
8
7
|
export interface HmrManagerParams {
|
|
9
8
|
appConfig: EcoPagesAppConfig;
|
|
10
9
|
bridge: ClientBridge;
|
|
11
10
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
private distDir;
|
|
22
|
-
private plugins;
|
|
23
|
-
private enabled;
|
|
24
|
-
private strategies;
|
|
11
|
+
/**
|
|
12
|
+
* Bun development HMR manager.
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* Bun shares the same public contract as the Node manager: page entrypoints are
|
|
16
|
+
* strict integration-owned registrations, while generic script assets use their
|
|
17
|
+
* own explicit registration path.
|
|
18
|
+
*/
|
|
19
|
+
export declare class HmrManager extends SharedHmrManager {
|
|
25
20
|
private wsHandler;
|
|
26
|
-
constructor({ appConfig, bridge }: HmrManagerParams);
|
|
27
21
|
/**
|
|
28
|
-
*
|
|
22
|
+
* Creates the Bun HMR manager around the shared HMR orchestration pipeline.
|
|
29
23
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Initializes core HMR strategies.
|
|
36
|
-
* Strategies are evaluated in priority order (highest first).
|
|
24
|
+
* @remarks
|
|
25
|
+
* Bun delegates route watching, rebuild dispatch, and runtime bundle
|
|
26
|
+
* generation to `SharedHmrManager`. The Bun subclass only supplies the
|
|
27
|
+
* transport-specific dependency graph policy and websocket hook surface.
|
|
37
28
|
*/
|
|
38
|
-
|
|
29
|
+
constructor({ appConfig, bridge }: HmrManagerParams);
|
|
39
30
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* @param strategy - The HMR strategy to register
|
|
31
|
+
* Reuses the shared in-memory dependency graph when possible and otherwise
|
|
32
|
+
* creates the Bun-compatible default graph implementation.
|
|
43
33
|
*/
|
|
44
|
-
|
|
45
|
-
setPlugins(plugins: EcoBuildPlugin[]): void;
|
|
46
|
-
setEnabled(enabled: boolean): void;
|
|
47
|
-
isEnabled(): boolean;
|
|
34
|
+
protected createEntrypointDependencyGraph(existingEntrypointDependencyGraph: EntrypointDependencyGraph): InMemoryEntrypointDependencyGraph;
|
|
48
35
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* @
|
|
36
|
+
* Returns the Bun websocket hooks that attach and detach live HMR subscribers.
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* `SharedHmrManager` stores the bridge behind the transport-agnostic
|
|
40
|
+
* `IClientBridge` contract because most HMR coordination only needs broadcast
|
|
41
|
+
* behavior. Bun connection lifecycle wiring is the point where that abstraction
|
|
42
|
+
* intentionally narrows back to the concrete Bun bridge so websocket instances
|
|
43
|
+
* can be tracked directly.
|
|
52
44
|
*/
|
|
53
|
-
registerSpecifierMap(map: Record<string, string>): void;
|
|
54
45
|
getWebSocketHandler(): BunSocketHandler;
|
|
55
|
-
/**
|
|
56
|
-
* Builds the client-side HMR runtime script.
|
|
57
|
-
*/
|
|
58
|
-
buildRuntime(): Promise<void>;
|
|
59
|
-
getRuntimePath(): string;
|
|
60
|
-
broadcast(event: ClientBridgeEvent): void;
|
|
61
|
-
canHandleFileChange(filePath: string): boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Handles file changes using registered HMR strategies.
|
|
64
|
-
* Strategies are evaluated in priority order until one matches.
|
|
65
|
-
* @param filePath - Absolute path to the changed file
|
|
66
|
-
*/
|
|
67
|
-
handleFileChange(filePath: string): Promise<void>;
|
|
68
|
-
/**
|
|
69
|
-
* Registers a client entrypoint to be built and watched by Bun.
|
|
70
|
-
*/
|
|
71
|
-
getOutputUrl(entrypointPath: string): string | undefined;
|
|
72
|
-
getWatchedFiles(): Map<string, string>;
|
|
73
|
-
getSpecifierMap(): Map<string, string>;
|
|
74
|
-
getDistDir(): string;
|
|
75
|
-
getPlugins(): EcoBuildPlugin[];
|
|
76
|
-
getDefaultContext(): DefaultHmrContext;
|
|
77
|
-
registerEntrypoint(entrypointPath: string): Promise<string>;
|
|
78
|
-
/**
|
|
79
|
-
* Encodes dynamic route segments (brackets) in file paths.
|
|
80
|
-
* Converts `[slug]` to `_slug_` to avoid filesystem/URL issues.
|
|
81
|
-
*/
|
|
82
|
-
private encodeDynamicSegments;
|
|
83
|
-
stop(): void;
|
|
84
46
|
}
|
|
85
47
|
export {};
|