@ecopages/core 0.2.0-alpha.27 → 0.2.0-alpha.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +91 -0
- package/package.json +162 -72
- package/src/adapters/abstract/application-adapter.d.ts +194 -0
- package/src/adapters/abstract/application-adapter.js +121 -0
- package/src/adapters/abstract/router-adapter.d.ts +26 -0
- package/src/adapters/abstract/router-adapter.js +5 -0
- package/src/adapters/abstract/server-adapter.d.ts +69 -0
- package/src/adapters/abstract/server-adapter.js +15 -0
- package/src/adapters/bun/client-bridge.d.ts +34 -0
- package/src/adapters/bun/client-bridge.js +48 -0
- package/src/adapters/bun/create-app.d.ts +53 -0
- package/src/adapters/bun/create-app.js +153 -0
- package/src/adapters/bun/hmr-manager.d.ts +131 -0
- package/src/adapters/bun/hmr-manager.js +312 -0
- package/src/adapters/bun/index.d.ts +2 -0
- package/src/adapters/bun/index.js +8 -0
- package/src/adapters/bun/server-adapter.d.ts +155 -0
- package/src/adapters/bun/server-adapter.js +393 -0
- package/src/adapters/bun/server-lifecycle.d.ts +63 -0
- package/src/adapters/bun/server-lifecycle.js +92 -0
- package/src/adapters/create-app.d.ts +20 -0
- package/src/adapters/create-app.js +66 -0
- package/src/adapters/index.d.ts +2 -0
- package/src/adapters/index.js +8 -0
- package/src/adapters/node/create-app.d.ts +18 -0
- package/src/adapters/node/create-app.js +149 -0
- package/src/adapters/node/node-client-bridge.d.ts +26 -0
- package/src/adapters/node/node-client-bridge.js +66 -0
- package/src/adapters/node/node-hmr-manager.d.ts +121 -0
- package/src/adapters/node/node-hmr-manager.js +290 -0
- package/src/adapters/node/server-adapter.d.ts +162 -0
- package/src/adapters/node/server-adapter.js +368 -0
- package/src/adapters/node/static-content-server.d.ts +60 -0
- package/src/adapters/node/static-content-server.js +194 -0
- package/src/adapters/shared/api-response.d.ts +52 -0
- package/src/adapters/shared/api-response.js +96 -0
- package/src/adapters/shared/application-adapter.d.ts +18 -0
- package/src/adapters/shared/application-adapter.js +90 -0
- package/src/adapters/shared/define-api-handler.d.ts +25 -0
- package/src/adapters/shared/define-api-handler.js +15 -0
- 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 +41 -0
- package/src/adapters/shared/explicit-static-route-matcher.js +101 -0
- package/src/adapters/shared/file-route-middleware-pipeline.d.ts +62 -0
- package/src/adapters/shared/file-route-middleware-pipeline.js +90 -0
- package/src/adapters/shared/fs-server-response-factory.d.ts +23 -0
- package/src/adapters/shared/fs-server-response-factory.js +81 -0
- package/src/adapters/shared/fs-server-response-matcher.d.ts +75 -0
- package/src/adapters/shared/fs-server-response-matcher.js +186 -0
- package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
- package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
- package/src/adapters/shared/hmr-html-response.d.ts +22 -0
- package/src/adapters/shared/hmr-html-response.js +32 -0
- package/src/adapters/shared/render-context.d.ts +15 -0
- package/src/adapters/shared/render-context.js +72 -0
- package/src/adapters/shared/runtime-bootstrap.d.ts +38 -0
- package/src/adapters/shared/runtime-bootstrap.js +43 -0
- package/src/adapters/shared/server-adapter.d.ts +108 -0
- package/src/adapters/shared/server-adapter.js +429 -0
- package/src/adapters/shared/server-route-handler.d.ts +89 -0
- package/src/adapters/shared/server-route-handler.js +111 -0
- package/src/adapters/shared/server-static-builder.d.ts +71 -0
- package/src/adapters/shared/server-static-builder.js +100 -0
- package/src/build/build-adapter.d.ts +239 -0
- package/src/build/build-adapter.js +642 -0
- package/src/build/build-manifest.d.ts +27 -0
- package/src/build/build-manifest.js +30 -0
- package/src/build/build-types.d.ts +57 -0
- package/src/build/build-types.js +0 -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 +78 -0
- package/src/build/esbuild-build-adapter.js +505 -0
- 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/config-builder.d.ts +252 -0
- package/src/config/config-builder.js +598 -0
- package/src/config/{constants.ts → constants.d.ts} +13 -22
- package/src/config/constants.js +25 -0
- package/src/dev/host-runtime.d.ts +10 -0
- package/src/dev/host-runtime.js +24 -0
- package/src/dev/sc-server.d.ts +30 -0
- package/src/dev/sc-server.js +111 -0
- package/src/eco/eco.browser.d.ts +2 -0
- package/src/eco/eco.browser.js +83 -0
- package/src/eco/eco.d.ts +9 -0
- package/src/eco/eco.js +85 -0
- package/src/eco/eco.types.d.ts +178 -0
- package/src/eco/eco.types.js +0 -0
- package/src/eco/eco.utils.d.ts +1 -0
- package/src/eco/eco.utils.js +10 -0
- package/src/eco/global-injector-map.d.ts +16 -0
- package/src/eco/global-injector-map.js +80 -0
- package/src/eco/lazy-injector-map.d.ts +8 -0
- package/src/eco/lazy-injector-map.js +70 -0
- package/src/eco/module-dependencies.d.ts +18 -0
- package/src/eco/module-dependencies.js +49 -0
- package/src/errors/http-error.d.ts +31 -0
- package/src/errors/http-error.js +50 -0
- package/src/errors/index.d.ts +3 -0
- package/src/errors/index.js +6 -0
- package/src/errors/locals-access-error.d.ts +4 -0
- package/src/errors/locals-access-error.js +9 -0
- package/src/global/app-logger.d.ts +2 -0
- package/src/global/app-logger.js +6 -0
- package/src/hmr/client/hmr-runtime.d.ts +5 -0
- package/src/hmr/client/hmr-runtime.js +117 -0
- package/src/hmr/hmr-strategy.d.ts +162 -0
- package/src/hmr/hmr-strategy.js +44 -0
- 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.d.ts +1 -0
- package/src/hmr/hmr.test.e2e.js +43 -0
- package/src/hmr/strategies/default-hmr-strategy.d.ts +43 -0
- package/src/hmr/strategies/default-hmr-strategy.js +34 -0
- package/src/hmr/strategies/js-hmr-strategy.d.ts +134 -0
- package/src/hmr/strategies/js-hmr-strategy.js +178 -0
- package/src/index.browser.d.ts +3 -0
- package/src/index.browser.js +4 -0
- package/src/index.d.ts +6 -0
- package/src/index.js +21 -0
- package/src/integrations/ghtml/ghtml-renderer.d.ts +16 -0
- package/src/integrations/ghtml/ghtml-renderer.js +57 -0
- 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 +16 -0
- package/src/integrations/ghtml/ghtml.plugin.js +20 -0
- package/src/plugins/alias-resolver-plugin.d.ts +2 -0
- package/src/plugins/alias-resolver-plugin.js +53 -0
- package/src/plugins/eco-component-meta-plugin.d.ts +108 -0
- package/src/plugins/eco-component-meta-plugin.js +162 -0
- package/src/plugins/foreign-jsx-override-plugin.d.ts +31 -0
- package/src/plugins/foreign-jsx-override-plugin.js +35 -0
- package/src/plugins/integration-plugin.d.ts +215 -0
- package/src/plugins/integration-plugin.js +189 -0
- package/src/plugins/processor.d.ts +97 -0
- package/src/plugins/processor.js +141 -0
- package/src/plugins/{runtime-capability.ts → runtime-capability.d.ts} +3 -8
- package/src/plugins/runtime-capability.js +0 -0
- package/src/plugins/source-transform.d.ts +46 -0
- package/src/plugins/source-transform.js +71 -0
- package/src/route-renderer/orchestration/component-render-context.d.ts +89 -0
- package/src/route-renderer/orchestration/component-render-context.js +147 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
- package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +108 -0
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +206 -0
- package/src/route-renderer/orchestration/integration-renderer.d.ts +516 -0
- package/src/route-renderer/orchestration/integration-renderer.js +909 -0
- package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
- package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
- package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
- package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +2 -0
- package/src/route-renderer/orchestration/processed-asset-dedupe.js +23 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +90 -0
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +158 -0
- package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
- package/src/route-renderer/orchestration/render-output.utils.js +171 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +120 -0
- package/src/route-renderer/orchestration/route-render-orchestrator.js +388 -0
- package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
- package/src/route-renderer/orchestration/template-serialization.js +45 -0
- package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
- package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
- package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
- package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
- package/src/route-renderer/page-loading/dependency-resolver.d.ts +35 -0
- 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-loading/page-module-loader.js +127 -0
- package/src/route-renderer/route-renderer.d.ts +69 -0
- package/src/route-renderer/route-renderer.js +80 -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/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/assets/asset-processing-service/asset-processing.service.js +285 -0
- package/src/services/assets/asset-processing-service/asset.factory.d.ts +17 -0
- package/src/services/assets/asset-processing-service/asset.factory.js +82 -0
- package/src/services/assets/asset-processing-service/assets.types.d.ts +103 -0
- 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 +3 -0
- package/src/services/assets/asset-processing-service/page-package.js +74 -0
- package/src/services/assets/asset-processing-service/{processor.interface.ts → processor.interface.d.ts} +5 -10
- package/src/services/assets/asset-processing-service/processor.interface.js +6 -0
- package/src/services/assets/asset-processing-service/processor.registry.d.ts +8 -0
- package/src/services/assets/asset-processing-service/processor.registry.js +15 -0
- package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +24 -0
- package/src/services/assets/asset-processing-service/processors/base/base-processor.js +65 -0
- 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/assets/asset-processing-service/processors/script/content-script.processor.d.ts +6 -0
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +119 -0
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +9 -0
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +97 -0
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +7 -0
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +79 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +8 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +59 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +9 -0
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +69 -0
- 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/cache/cache.types.d.ts +107 -0
- package/src/services/cache/cache.types.js +0 -0
- package/src/services/cache/index.d.ts +7 -0
- package/src/services/cache/index.js +7 -0
- package/src/services/cache/memory-cache-store.d.ts +42 -0
- package/src/services/cache/memory-cache-store.js +98 -0
- package/src/services/cache/page-cache-service.d.ts +70 -0
- package/src/services/cache/page-cache-service.js +152 -0
- package/src/services/cache/page-request-cache-coordinator.service.d.ts +75 -0
- package/src/services/cache/page-request-cache-coordinator.service.js +109 -0
- package/src/services/html/html-rewriter-provider.service.d.ts +37 -0
- package/src/services/html/html-rewriter-provider.service.js +68 -0
- package/src/services/html/html-transformer.service.d.ts +87 -0
- package/src/services/html/html-transformer.service.js +216 -0
- package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
- package/src/services/invalidation/development-invalidation.service.js +190 -0
- package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
- package/src/services/module-loading/app-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 +115 -0
- package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
- package/src/services/module-loading/host-module-loader-registry.js +15 -0
- package/src/services/module-loading/{module-loading-types.ts → module-loading-types.d.ts} +0 -1
- package/src/services/module-loading/module-loading-types.js +0 -0
- package/src/services/module-loading/node-bootstrap-plugin.d.ts +42 -0
- package/src/services/module-loading/node-bootstrap-plugin.js +216 -0
- package/src/services/module-loading/page-module-import.service.d.ts +76 -0
- package/src/services/module-loading/page-module-import.service.js +170 -0
- package/src/services/module-loading/server-module-transpiler.service.d.ts +63 -0
- package/src/services/module-loading/server-module-transpiler.service.js +64 -0
- package/src/services/module-loading/source-module-support.d.ts +5 -0
- package/src/services/module-loading/source-module-support.js +8 -0
- package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
- package/src/services/runtime-state/dev-graph.service.js +162 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
- package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
- package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
- package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
- package/src/services/validation/schema-validation-service.d.ts +122 -0
- package/src/services/validation/schema-validation-service.js +101 -0
- package/src/services/validation/{standard-schema.types.ts → standard-schema.types.d.ts} +17 -20
- package/src/services/validation/standard-schema.types.js +0 -0
- package/src/static-site-generator/static-site-generator.d.ts +104 -0
- package/src/static-site-generator/static-site-generator.js +316 -0
- package/src/types/internal-types.d.ts +232 -0
- package/src/types/internal-types.js +0 -0
- package/src/types/public-types.d.ts +1267 -0
- package/src/types/public-types.js +0 -0
- package/src/utils/deep-merge.d.ts +14 -0
- package/src/utils/deep-merge.js +32 -0
- package/src/utils/hash.d.ts +1 -0
- package/src/utils/hash.js +7 -0
- package/src/utils/html-escaping.d.ts +7 -0
- package/src/utils/html-escaping.js +6 -0
- package/src/utils/html.js +4 -0
- package/src/utils/invariant.d.ts +5 -0
- package/src/utils/invariant.js +11 -0
- package/src/utils/locals-utils.d.ts +15 -0
- package/src/utils/locals-utils.js +24 -0
- package/src/utils/parse-cli-args.d.ts +27 -0
- package/src/utils/parse-cli-args.js +62 -0
- package/src/utils/path-utils.module.d.ts +5 -0
- package/src/utils/path-utils.module.js +14 -0
- package/src/utils/resolve-work-dir.d.ts +11 -0
- package/src/utils/resolve-work-dir.js +31 -0
- package/src/utils/runtime.d.ts +11 -0
- package/src/utils/runtime.js +40 -0
- package/src/utils/server-utils.module.d.ts +19 -0
- package/src/utils/server-utils.module.js +56 -0
- package/src/watchers/project-watcher.d.ts +136 -0
- package/src/watchers/project-watcher.js +275 -0
- package/src/watchers/project-watcher.test-helpers.d.ts +4 -0
- package/src/watchers/project-watcher.test-helpers.js +52 -0
- package/src/adapters/abstract/application-adapter.test.ts +0 -172
- package/src/adapters/abstract/application-adapter.ts +0 -379
- 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 -232
- package/src/adapters/bun/hmr-manager.test.ts +0 -265
- package/src/adapters/bun/hmr-manager.ts +0 -383
- package/src/adapters/bun/index.ts +0 -2
- package/src/adapters/bun/server-adapter.ts +0 -526
- package/src/adapters/bun/server-lifecycle.ts +0 -124
- package/src/adapters/create-app.test.ts +0 -10
- package/src/adapters/create-app.ts +0 -91
- package/src/adapters/index.ts +0 -2
- package/src/adapters/node/create-app.test.ts +0 -53
- package/src/adapters/node/create-app.ts +0 -183
- package/src/adapters/node/node-client-bridge.test.ts +0 -198
- package/src/adapters/node/node-client-bridge.ts +0 -79
- package/src/adapters/node/node-hmr-manager.test.ts +0 -320
- package/src/adapters/node/node-hmr-manager.ts +0 -355
- package/src/adapters/node/server-adapter.ts +0 -502
- package/src/adapters/node/static-content-server.test.ts +0 -60
- package/src/adapters/node/static-content-server.ts +0 -239
- package/src/adapters/shared/api-response.test.ts +0 -97
- package/src/adapters/shared/api-response.ts +0 -104
- package/src/adapters/shared/application-adapter.ts +0 -199
- package/src/adapters/shared/define-api-handler.ts +0 -66
- package/src/adapters/shared/explicit-static-render-preparation.ts +0 -58
- package/src/adapters/shared/explicit-static-route-matcher.test.ts +0 -381
- package/src/adapters/shared/explicit-static-route-matcher.ts +0 -131
- package/src/adapters/shared/file-route-middleware-pipeline.test.ts +0 -85
- package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -118
- package/src/adapters/shared/fs-server-response-factory.test.ts +0 -176
- package/src/adapters/shared/fs-server-response-factory.ts +0 -96
- package/src/adapters/shared/fs-server-response-matcher.test.ts +0 -311
- package/src/adapters/shared/fs-server-response-matcher.ts +0 -240
- package/src/adapters/shared/hmr-entrypoint-registrar.ts +0 -149
- package/src/adapters/shared/hmr-html-response.ts +0 -52
- package/src/adapters/shared/hmr-manager.contract.test.ts +0 -228
- package/src/adapters/shared/hmr-manager.dispatch.test.ts +0 -220
- package/src/adapters/shared/render-context.test.ts +0 -150
- package/src/adapters/shared/render-context.ts +0 -123
- package/src/adapters/shared/runtime-bootstrap.ts +0 -79
- package/src/adapters/shared/server-adapter.test.ts +0 -130
- package/src/adapters/shared/server-adapter.ts +0 -562
- package/src/adapters/shared/server-route-handler.test.ts +0 -111
- package/src/adapters/shared/server-route-handler.ts +0 -153
- package/src/adapters/shared/server-static-builder.test.ts +0 -338
- package/src/adapters/shared/server-static-builder.ts +0 -170
- package/src/build/build-adapter-serialization.test.ts +0 -281
- package/src/build/build-adapter.test.ts +0 -1240
- package/src/build/build-adapter.ts +0 -1012
- package/src/build/build-manifest.ts +0 -54
- package/src/build/build-types.ts +0 -83
- package/src/build/dev-build-coordinator.ts +0 -220
- package/src/build/esbuild-build-adapter.ts +0 -660
- package/src/build/runtime-build-executor.test.ts +0 -81
- package/src/build/runtime-build-executor.ts +0 -40
- package/src/build/runtime-specifier-alias-plugin.test.ts +0 -67
- package/src/build/runtime-specifier-alias-plugin.ts +0 -62
- package/src/build/runtime-specifier-aliases.ts +0 -135
- package/src/config/config-builder.test.ts +0 -442
- package/src/config/config-builder.ts +0 -737
- package/src/config/config-builder.typecheck.test.ts +0 -96
- package/src/dev/host-runtime.ts +0 -34
- package/src/dev/sc-server.ts +0 -143
- package/src/eco/eco.browser.test.ts +0 -43
- package/src/eco/eco.browser.ts +0 -118
- package/src/eco/eco.test.ts +0 -654
- package/src/eco/eco.ts +0 -205
- package/src/eco/eco.types.ts +0 -221
- package/src/eco/eco.utils.test.ts +0 -219
- package/src/eco/eco.utils.ts +0 -5
- package/src/eco/global-injector-map.test.ts +0 -42
- package/src/eco/global-injector-map.ts +0 -112
- package/src/eco/lazy-injector-map.test.ts +0 -66
- package/src/eco/lazy-injector-map.ts +0 -120
- package/src/eco/module-dependencies.test.ts +0 -30
- package/src/eco/module-dependencies.ts +0 -75
- package/src/errors/http-error.test.ts +0 -134
- package/src/errors/http-error.ts +0 -72
- package/src/errors/index.ts +0 -3
- package/src/errors/locals-access-error.ts +0 -7
- package/src/global/app-logger.ts +0 -4
- package/src/global/utils.test.ts +0 -12
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-have-HMR-script-injected-in-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
- package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
- package/src/hmr/client/hmr-runtime.ts +0 -162
- package/src/hmr/hmr-strategy.test.ts +0 -124
- package/src/hmr/hmr-strategy.ts +0 -177
- package/src/hmr/hmr.postcss.test.e2e.ts +0 -41
- package/src/hmr/hmr.test.e2e.ts +0 -66
- package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
- package/src/hmr/strategies/js-hmr-strategy.test.ts +0 -334
- package/src/hmr/strategies/js-hmr-strategy.ts +0 -314
- package/src/index.browser.ts +0 -3
- package/src/index.ts +0 -15
- package/src/integrations/ghtml/ghtml-renderer.test.ts +0 -253
- package/src/integrations/ghtml/ghtml-renderer.ts +0 -87
- package/src/integrations/ghtml/ghtml.constants.ts +0 -1
- package/src/integrations/ghtml/ghtml.plugin.ts +0 -28
- package/src/plugins/alias-resolver-plugin.test.ts +0 -41
- package/src/plugins/alias-resolver-plugin.ts +0 -63
- package/src/plugins/eco-component-meta-plugin.test.ts +0 -406
- package/src/plugins/eco-component-meta-plugin.ts +0 -494
- package/src/plugins/foreign-jsx-override-plugin.test.ts +0 -65
- package/src/plugins/foreign-jsx-override-plugin.ts +0 -67
- package/src/plugins/integration-plugin.test.ts +0 -151
- package/src/plugins/integration-plugin.ts +0 -323
- package/src/plugins/processor.test.ts +0 -148
- package/src/plugins/processor.ts +0 -257
- package/src/plugins/source-transform.test.ts +0 -82
- package/src/plugins/source-transform.ts +0 -123
- package/src/route-renderer/orchestration/component-render-context.ts +0 -325
- package/src/route-renderer/orchestration/declared-ownership-graph.ts +0 -62
- package/src/route-renderer/orchestration/foreign-subtree-execution.service.ts +0 -383
- package/src/route-renderer/orchestration/integration-renderer.test.ts +0 -2085
- package/src/route-renderer/orchestration/integration-renderer.ts +0 -1244
- package/src/route-renderer/orchestration/ownership-planning.service.ts +0 -97
- package/src/route-renderer/orchestration/ownership-validation.service.ts +0 -76
- package/src/route-renderer/orchestration/processed-asset-dedupe.ts +0 -25
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.test.ts +0 -324
- package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.ts +0 -294
- package/src/route-renderer/orchestration/render-output.utils.ts +0 -310
- package/src/route-renderer/orchestration/route-render-orchestrator.prepare-render-options.test.ts +0 -644
- package/src/route-renderer/orchestration/route-render-orchestrator.test.ts +0 -265
- package/src/route-renderer/orchestration/route-render-orchestrator.ts +0 -592
- package/src/route-renderer/orchestration/template-serialization.test.ts +0 -110
- package/src/route-renderer/orchestration/template-serialization.ts +0 -117
- package/src/route-renderer/page-loading/component-dependency-collection.ts +0 -202
- package/src/route-renderer/page-loading/declared-asset-collection.ts +0 -153
- package/src/route-renderer/page-loading/dependency-resolver.test.ts +0 -761
- package/src/route-renderer/page-loading/dependency-resolver.ts +0 -144
- package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +0 -75
- package/src/route-renderer/page-loading/lazy-entry-collection.ts +0 -167
- package/src/route-renderer/page-loading/lazy-trigger-planning.ts +0 -74
- package/src/route-renderer/page-loading/module-declaration-aggregation.ts +0 -60
- package/src/route-renderer/page-loading/module-declaration-scripts.ts +0 -16
- package/src/route-renderer/page-loading/page-dependency-bundling.ts +0 -244
- package/src/route-renderer/page-loading/page-module-loader.test.ts +0 -183
- package/src/route-renderer/page-loading/page-module-loader.ts +0 -184
- package/src/route-renderer/route-renderer.ts +0 -133
- package/src/router/client/link-intent.test.browser.ts +0 -51
- package/src/router/client/link-intent.ts +0 -92
- package/src/router/client/navigation-coordinator.test.ts +0 -237
- package/src/router/client/navigation-coordinator.ts +0 -453
- package/src/router/server/route-registry.test.ts +0 -176
- package/src/router/server/route-registry.ts +0 -382
- package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +0 -66
- package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +0 -473
- package/src/services/assets/asset-processing-service/asset-processing.service.ts +0 -344
- package/src/services/assets/asset-processing-service/asset.factory.test.ts +0 -63
- package/src/services/assets/asset-processing-service/asset.factory.ts +0 -105
- package/src/services/assets/asset-processing-service/assets.types.ts +0 -128
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +0 -74
- package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +0 -96
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +0 -67
- package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +0 -78
- package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +0 -104
- package/src/services/assets/asset-processing-service/index.ts +0 -6
- package/src/services/assets/asset-processing-service/page-package.test.ts +0 -100
- package/src/services/assets/asset-processing-service/page-package.ts +0 -93
- package/src/services/assets/asset-processing-service/processor.registry.ts +0 -18
- package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +0 -59
- package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +0 -83
- package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +0 -173
- package/src/services/assets/asset-processing-service/processors/index.ts +0 -5
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +0 -195
- package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +0 -137
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +0 -326
- package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +0 -116
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +0 -227
- package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +0 -89
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +0 -261
- package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -72
- package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -83
- package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +0 -65
- package/src/services/assets/browser-bundle.service.test.ts +0 -66
- package/src/services/assets/browser-bundle.service.ts +0 -109
- package/src/services/cache/cache.types.ts +0 -126
- package/src/services/cache/index.ts +0 -18
- package/src/services/cache/memory-cache-store.test.ts +0 -225
- package/src/services/cache/memory-cache-store.ts +0 -130
- package/src/services/cache/page-cache-service.test.ts +0 -175
- package/src/services/cache/page-cache-service.ts +0 -202
- package/src/services/cache/page-request-cache-coordinator.service.test.ts +0 -79
- package/src/services/cache/page-request-cache-coordinator.service.ts +0 -131
- package/src/services/html/html-rewriter-provider.service.test.ts +0 -183
- package/src/services/html/html-rewriter-provider.service.ts +0 -104
- package/src/services/html/html-transformer.service.test.ts +0 -476
- package/src/services/html/html-transformer.service.ts +0 -275
- package/src/services/invalidation/development-invalidation.service.test.ts +0 -87
- package/src/services/invalidation/development-invalidation.service.ts +0 -262
- package/src/services/module-loading/app-module-loader.service.ts +0 -9
- package/src/services/module-loading/app-server-module-transpiler.service.test.ts +0 -130
- package/src/services/module-loading/app-server-module-transpiler.service.ts +0 -141
- package/src/services/module-loading/host-module-loader-registry.ts +0 -15
- package/src/services/module-loading/node-bootstrap-plugin.test.ts +0 -335
- package/src/services/module-loading/node-bootstrap-plugin.ts +0 -311
- package/src/services/module-loading/page-module-import.service.test.ts +0 -504
- package/src/services/module-loading/page-module-import.service.ts +0 -251
- package/src/services/module-loading/server-module-transpiler.service.test.ts +0 -243
- package/src/services/module-loading/server-module-transpiler.service.ts +0 -104
- package/src/services/module-loading/source-module-support.ts +0 -19
- package/src/services/runtime-state/dev-graph.service.ts +0 -217
- package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +0 -136
- package/src/services/runtime-state/server-invalidation-state.service.ts +0 -68
- package/src/services/validation/schema-validation-service.test.ts +0 -223
- package/src/services/validation/schema-validation-service.ts +0 -204
- package/src/static-site-generator/static-site-generator.test.ts +0 -408
- package/src/static-site-generator/static-site-generator.ts +0 -445
- package/src/types/internal-types.ts +0 -243
- package/src/types/public-types.ts +0 -1459
- package/src/utils/deep-merge.test.ts +0 -114
- package/src/utils/deep-merge.ts +0 -47
- package/src/utils/hash.ts +0 -5
- package/src/utils/html-escaping.ts +0 -9
- package/src/utils/invariant.test.ts +0 -22
- package/src/utils/invariant.ts +0 -15
- package/src/utils/locals-utils.ts +0 -37
- package/src/utils/parse-cli-args.test.ts +0 -69
- package/src/utils/parse-cli-args.ts +0 -105
- package/src/utils/path-utils.module.ts +0 -14
- package/src/utils/path-utils.test.ts +0 -15
- package/src/utils/resolve-work-dir.ts +0 -45
- package/src/utils/runtime.ts +0 -44
- package/src/utils/server-utils.module.ts +0 -67
- package/src/utils/server-utils.test.ts +0 -38
- package/src/watchers/project-watcher.integration.test.ts +0 -337
- package/src/watchers/project-watcher.test-helpers.ts +0 -42
- package/src/watchers/project-watcher.test.ts +0 -768
- package/src/watchers/project-watcher.ts +0 -357
- /package/src/utils/{html.ts → html.d.ts} +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arguments passed to a build plugin `onResolve` callback.
|
|
3
|
+
*/
|
|
4
|
+
export type EcoBuildOnResolveArgs = {
|
|
5
|
+
path: string;
|
|
6
|
+
importer?: string;
|
|
7
|
+
namespace?: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Result returned by a build plugin `onResolve` callback.
|
|
11
|
+
*/
|
|
12
|
+
export type EcoBuildOnResolveResult = {
|
|
13
|
+
path?: string;
|
|
14
|
+
namespace?: string;
|
|
15
|
+
external?: boolean;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Arguments passed to a build plugin `onLoad` callback.
|
|
19
|
+
*/
|
|
20
|
+
export type EcoBuildOnLoadArgs = {
|
|
21
|
+
path: string;
|
|
22
|
+
namespace?: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Loader kinds supported across Bun/esbuild bridge points.
|
|
26
|
+
*/
|
|
27
|
+
export type EcoBuildLoader = 'base64' | 'binary' | 'copy' | 'css' | 'dataurl' | 'empty' | 'file' | 'global-css' | 'js' | 'json' | 'jsx' | 'local-css' | 'object' | 'text' | 'ts' | 'tsx';
|
|
28
|
+
/**
|
|
29
|
+
* Result returned by a build plugin `onLoad` callback.
|
|
30
|
+
*/
|
|
31
|
+
export type EcoBuildOnLoadResult = {
|
|
32
|
+
contents?: string | Uint8Array;
|
|
33
|
+
loader?: EcoBuildLoader;
|
|
34
|
+
exports?: Record<string, unknown>;
|
|
35
|
+
resolveDir?: string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Shared plugin builder contract used by Ecopages across Bun and esbuild.
|
|
39
|
+
*/
|
|
40
|
+
export interface EcoBuildPluginBuilder {
|
|
41
|
+
onResolve(options: {
|
|
42
|
+
filter: RegExp;
|
|
43
|
+
namespace?: string;
|
|
44
|
+
}, callback: (args: EcoBuildOnResolveArgs) => EcoBuildOnResolveResult | undefined | Promise<EcoBuildOnResolveResult | undefined>): void;
|
|
45
|
+
onLoad(options: {
|
|
46
|
+
filter: RegExp;
|
|
47
|
+
namespace?: string;
|
|
48
|
+
}, callback: (args: EcoBuildOnLoadArgs) => EcoBuildOnLoadResult | undefined | Promise<EcoBuildOnLoadResult | undefined>): void;
|
|
49
|
+
module(specifier: string, callback: () => EcoBuildOnLoadResult | Promise<EcoBuildOnLoadResult>): void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Runtime-agnostic build plugin contract consumed by Ecopages processors/loaders.
|
|
53
|
+
*/
|
|
54
|
+
export type EcoBuildPlugin = {
|
|
55
|
+
name: string;
|
|
56
|
+
setup: (build: EcoBuildPluginBuilder) => void | Promise<void>;
|
|
57
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type BuildAdapter, type BuildExecutor, type BuildOptions, type BuildResult } from './build-adapter.js';
|
|
2
|
+
import { EsbuildBuildAdapter } from './esbuild-build-adapter.js';
|
|
3
|
+
import type { EcoBuildPlugin } from './build-types.js';
|
|
4
|
+
export declare function withBuildExecutorPlugins(executor: BuildExecutor, getPlugins: () => EcoBuildPlugin[]): BuildExecutor;
|
|
5
|
+
/**
|
|
6
|
+
* Serialized build coordinator for the shared esbuild adapter.
|
|
7
|
+
*
|
|
8
|
+
* The underlying adapter remains responsible for plain build execution. This
|
|
9
|
+
* coordinator owns the policy that must be shared across callers while Bun-native
|
|
10
|
+
* execution still uses the shared esbuild compatibility backend:
|
|
11
|
+
*
|
|
12
|
+
* - serialized access to the shared esbuild service
|
|
13
|
+
* - recovery from known esbuild worker protocol faults
|
|
14
|
+
*
|
|
15
|
+
* Unlike the previous design, the coordinator does not monkey-patch the adapter
|
|
16
|
+
* or install process-level fault handlers. The owning app/runtime passes this
|
|
17
|
+
* executor explicitly to build consumers that need coordinated builds.
|
|
18
|
+
*/
|
|
19
|
+
export declare class DevBuildCoordinator implements BuildExecutor {
|
|
20
|
+
private buildQueue;
|
|
21
|
+
private esbuildSessionWarm;
|
|
22
|
+
private esbuildModuleGeneration;
|
|
23
|
+
private readonly adapter;
|
|
24
|
+
constructor(adapter: EsbuildBuildAdapter);
|
|
25
|
+
/**
|
|
26
|
+
* Executes a build through the serialized development queue.
|
|
27
|
+
*
|
|
28
|
+
* If an esbuild protocol fault is detected, the coordinator resets the queue,
|
|
29
|
+
* stops the corrupted service, increments the module generation, and retries
|
|
30
|
+
* the build once.
|
|
31
|
+
*/
|
|
32
|
+
build(options: BuildOptions): Promise<BuildResult>;
|
|
33
|
+
/**
|
|
34
|
+
* Attempts recovery from a known esbuild worker protocol fault.
|
|
35
|
+
*
|
|
36
|
+
* Returns `true` only when the error matches the protocol-fault signature and
|
|
37
|
+
* the coordinator successfully reset its shared state.
|
|
38
|
+
*/
|
|
39
|
+
recoverFromProtocolFault(error: unknown): Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Clears internal coordinator state for isolated tests.
|
|
42
|
+
*/
|
|
43
|
+
resetForTests(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Overrides the internal queue promise for fault-recovery tests.
|
|
46
|
+
*/
|
|
47
|
+
setBuildQueueForTests(queue: Promise<void>): void;
|
|
48
|
+
/**
|
|
49
|
+
* Returns the current internal queue promise for fault-recovery tests.
|
|
50
|
+
*/
|
|
51
|
+
getBuildQueueForTests(): Promise<void>;
|
|
52
|
+
private runSerialized;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates the appropriate build executor for one app/runtime instance.
|
|
56
|
+
*
|
|
57
|
+
* Bun-native esbuild execution always uses the compatibility coordinator so
|
|
58
|
+
* preview/static generation and development flows share the same serialized
|
|
59
|
+
* access and protocol-fault recovery policy. Host-owned execution stays on the
|
|
60
|
+
* plain adapter boundary.
|
|
61
|
+
*/
|
|
62
|
+
export declare function createAppBuildExecutor(options: {
|
|
63
|
+
development: boolean;
|
|
64
|
+
adapter?: BuildAdapter;
|
|
65
|
+
getPlugins?: () => EcoBuildPlugin[];
|
|
66
|
+
}): BuildExecutor;
|
|
67
|
+
export declare function createOrReuseAppBuildExecutor(options: {
|
|
68
|
+
development: boolean;
|
|
69
|
+
adapter?: BuildAdapter;
|
|
70
|
+
currentExecutor?: BuildExecutor;
|
|
71
|
+
getPlugins?: () => EcoBuildPlugin[];
|
|
72
|
+
}): BuildExecutor;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { appLogger } from "../global/app-logger.js";
|
|
2
|
+
import {
|
|
3
|
+
defaultBunBuildAdapter
|
|
4
|
+
} from "./build-adapter.js";
|
|
5
|
+
import { EsbuildBuildAdapter, ESBUILD_ADAPTER_BRAND } from "./esbuild-build-adapter.js";
|
|
6
|
+
import { mergeEcoBuildPlugins } from "./build-manifest.js";
|
|
7
|
+
function isEsbuildBuildAdapter(adapter) {
|
|
8
|
+
return adapter instanceof EsbuildBuildAdapter || typeof adapter === "object" && adapter !== null && adapter[ESBUILD_ADAPTER_BRAND] === true;
|
|
9
|
+
}
|
|
10
|
+
function mergeBuildPlugins(options, appPlugins) {
|
|
11
|
+
if (appPlugins.length === 0) {
|
|
12
|
+
return options;
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
...options,
|
|
16
|
+
plugins: mergeEcoBuildPlugins(options.plugins, appPlugins)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
class BuildExecutorWithPlugins {
|
|
20
|
+
executor;
|
|
21
|
+
getPlugins;
|
|
22
|
+
constructor(executor, getPlugins) {
|
|
23
|
+
this.executor = executor;
|
|
24
|
+
this.getPlugins = getPlugins;
|
|
25
|
+
}
|
|
26
|
+
async build(options) {
|
|
27
|
+
return await this.executor.build(mergeBuildPlugins(options, this.getPlugins()));
|
|
28
|
+
}
|
|
29
|
+
unwrap() {
|
|
30
|
+
return this.executor;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function unwrapBuildExecutor(executor) {
|
|
34
|
+
if (executor instanceof BuildExecutorWithPlugins) {
|
|
35
|
+
return unwrapBuildExecutor(executor.unwrap());
|
|
36
|
+
}
|
|
37
|
+
return executor;
|
|
38
|
+
}
|
|
39
|
+
function withBuildExecutorPlugins(executor, getPlugins) {
|
|
40
|
+
return new BuildExecutorWithPlugins(executor, getPlugins);
|
|
41
|
+
}
|
|
42
|
+
class DevBuildCoordinator {
|
|
43
|
+
buildQueue = Promise.resolve();
|
|
44
|
+
esbuildSessionWarm = false;
|
|
45
|
+
esbuildModuleGeneration = 0;
|
|
46
|
+
adapter;
|
|
47
|
+
constructor(adapter) {
|
|
48
|
+
this.adapter = adapter;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Executes a build through the serialized development queue.
|
|
52
|
+
*
|
|
53
|
+
* If an esbuild protocol fault is detected, the coordinator resets the queue,
|
|
54
|
+
* stops the corrupted service, increments the module generation, and retries
|
|
55
|
+
* the build once.
|
|
56
|
+
*/
|
|
57
|
+
async build(options) {
|
|
58
|
+
return this.runSerialized(async () => {
|
|
59
|
+
try {
|
|
60
|
+
const result = await this.adapter.buildOrThrow(options, this.esbuildModuleGeneration);
|
|
61
|
+
this.esbuildSessionWarm = true;
|
|
62
|
+
return result;
|
|
63
|
+
} catch (error) {
|
|
64
|
+
if (await this.recoverFromProtocolFault(error)) {
|
|
65
|
+
appLogger.warn("Recovered from esbuild protocol fault. Retrying build.");
|
|
66
|
+
try {
|
|
67
|
+
const retry = await this.adapter.buildOrThrow(options, this.esbuildModuleGeneration);
|
|
68
|
+
this.esbuildSessionWarm = true;
|
|
69
|
+
return retry;
|
|
70
|
+
} catch (retryError) {
|
|
71
|
+
return this.adapter.createFailureResult(retryError);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return this.adapter.createFailureResult(error);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Attempts recovery from a known esbuild worker protocol fault.
|
|
80
|
+
*
|
|
81
|
+
* Returns `true` only when the error matches the protocol-fault signature and
|
|
82
|
+
* the coordinator successfully reset its shared state.
|
|
83
|
+
*/
|
|
84
|
+
async recoverFromProtocolFault(error) {
|
|
85
|
+
if (!this.adapter.isEsbuildProtocolError(error)) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
this.buildQueue = Promise.resolve();
|
|
89
|
+
this.esbuildSessionWarm = false;
|
|
90
|
+
await this.adapter.stopEsbuildService(this.esbuildModuleGeneration);
|
|
91
|
+
this.esbuildModuleGeneration += 1;
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Clears internal coordinator state for isolated tests.
|
|
96
|
+
*/
|
|
97
|
+
resetForTests() {
|
|
98
|
+
this.buildQueue = Promise.resolve();
|
|
99
|
+
this.esbuildSessionWarm = false;
|
|
100
|
+
this.esbuildModuleGeneration = 0;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Overrides the internal queue promise for fault-recovery tests.
|
|
104
|
+
*/
|
|
105
|
+
setBuildQueueForTests(queue) {
|
|
106
|
+
this.buildQueue = queue;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Returns the current internal queue promise for fault-recovery tests.
|
|
110
|
+
*/
|
|
111
|
+
getBuildQueueForTests() {
|
|
112
|
+
return this.buildQueue;
|
|
113
|
+
}
|
|
114
|
+
async runSerialized(operation) {
|
|
115
|
+
let releaseBuild;
|
|
116
|
+
const currentBuild = new Promise((resolve) => {
|
|
117
|
+
releaseBuild = resolve;
|
|
118
|
+
});
|
|
119
|
+
const previousBuild = this.buildQueue;
|
|
120
|
+
this.buildQueue = previousBuild.catch(() => void 0).then(async () => await currentBuild);
|
|
121
|
+
await previousBuild.catch(() => void 0);
|
|
122
|
+
try {
|
|
123
|
+
return await operation();
|
|
124
|
+
} finally {
|
|
125
|
+
releaseBuild?.();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function createAppBuildExecutor(options) {
|
|
130
|
+
const adapter = options.adapter ?? defaultBunBuildAdapter;
|
|
131
|
+
const baseExecutor = isEsbuildBuildAdapter(adapter) ? new DevBuildCoordinator(adapter) : adapter;
|
|
132
|
+
if (!options.getPlugins) {
|
|
133
|
+
return baseExecutor;
|
|
134
|
+
}
|
|
135
|
+
return new BuildExecutorWithPlugins(baseExecutor, options.getPlugins);
|
|
136
|
+
}
|
|
137
|
+
function createOrReuseAppBuildExecutor(options) {
|
|
138
|
+
const adapter = options.adapter ?? defaultBunBuildAdapter;
|
|
139
|
+
const currentBaseExecutor = options.currentExecutor ? unwrapBuildExecutor(options.currentExecutor) : void 0;
|
|
140
|
+
const baseExecutor = options.development && currentBaseExecutor instanceof DevBuildCoordinator ? currentBaseExecutor : createAppBuildExecutor({
|
|
141
|
+
development: options.development,
|
|
142
|
+
adapter
|
|
143
|
+
});
|
|
144
|
+
if (!options.getPlugins) {
|
|
145
|
+
return baseExecutor;
|
|
146
|
+
}
|
|
147
|
+
return withBuildExecutorPlugins(baseExecutor, options.getPlugins);
|
|
148
|
+
}
|
|
149
|
+
export {
|
|
150
|
+
DevBuildCoordinator,
|
|
151
|
+
createAppBuildExecutor,
|
|
152
|
+
createOrReuseAppBuildExecutor,
|
|
153
|
+
withBuildExecutorPlugins
|
|
154
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { BuildAdapter, BuildOptions, BuildResult, BuildTranspileOptions, BuildTranspileProfile } from './build-adapter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Node build adapter backed by esbuild.
|
|
4
|
+
*
|
|
5
|
+
* This adapter keeps Ecopages build plugin compatibility (`onResolve`, `onLoad`,
|
|
6
|
+
* and `module`) while delegating bundling and TypeScript/decorator transforms to esbuild.
|
|
7
|
+
*/
|
|
8
|
+
export declare const ESBUILD_ADAPTER_BRAND: unique symbol;
|
|
9
|
+
export declare class EsbuildBuildAdapter implements BuildAdapter {
|
|
10
|
+
readonly ownership: "bun-native";
|
|
11
|
+
readonly [ESBUILD_ADAPTER_BRAND] = true;
|
|
12
|
+
private collectWorkspaceNodePaths;
|
|
13
|
+
private getFallbackNodePaths;
|
|
14
|
+
private rewriteAliasedRuntimeSpecifiers;
|
|
15
|
+
private escapeRegExp;
|
|
16
|
+
private getPluginsForBuild;
|
|
17
|
+
private normalizeEsbuildLoader;
|
|
18
|
+
private inferEsbuildLoaderFromPath;
|
|
19
|
+
private convertLoadResultToModuleSource;
|
|
20
|
+
private convertPluginOnLoadResult;
|
|
21
|
+
private resolvePluginPath;
|
|
22
|
+
/**
|
|
23
|
+
* Creates an esbuild plugin bridge compatible with the existing Ecopages
|
|
24
|
+
* plugin API shape.
|
|
25
|
+
*
|
|
26
|
+
* **Plugin ordering is semantically significant.**
|
|
27
|
+
*
|
|
28
|
+
* Esbuild applies `onResolve` and `onLoad` hooks in the order they are
|
|
29
|
+
* registered: the first handler whose filter matches wins for `onResolve`,
|
|
30
|
+
* and the first handler that returns a non-`undefined` result wins for
|
|
31
|
+
* `onLoad`. Because we call `plugin.setup(bridge)` sequentially here, the
|
|
32
|
+
* position of each plugin in the `plugins` array determines its priority:
|
|
33
|
+
*
|
|
34
|
+
* - **Index 0** has the highest priority (its hooks run first).
|
|
35
|
+
* - **Last index** has the lowest priority (its hooks only run if no earlier
|
|
36
|
+
* plugin claimed the path).
|
|
37
|
+
*
|
|
38
|
+
* When adding new integrations or processors, ensure security-critical plugins
|
|
39
|
+
* (e.g. `ecopages-client-graph-boundary`) are placed **before** general-purpose
|
|
40
|
+
* loaders in the array so they always get first refusal on every source file.
|
|
41
|
+
*
|
|
42
|
+
* There is currently no priority system or validation — correct ordering is
|
|
43
|
+
* the caller's responsibility.
|
|
44
|
+
*/
|
|
45
|
+
private createEcoPluginBridge;
|
|
46
|
+
private loadEsbuildModule;
|
|
47
|
+
private isMockedEsbuildModule;
|
|
48
|
+
/**
|
|
49
|
+
* Detects the subset of runtime faults that indicate esbuild's worker
|
|
50
|
+
* protocol is corrupted rather than a normal build error.
|
|
51
|
+
*/
|
|
52
|
+
isEsbuildProtocolError(error: unknown): boolean;
|
|
53
|
+
stopEsbuildService(moduleGeneration?: number): Promise<void>;
|
|
54
|
+
buildOrThrow(options: BuildOptions, moduleGeneration?: number): Promise<BuildResult>;
|
|
55
|
+
private mapEsbuildSourcemap;
|
|
56
|
+
private mapEsbuildFormat;
|
|
57
|
+
private hasTemplateTokens;
|
|
58
|
+
private toEntryNamePattern;
|
|
59
|
+
private normalizeMetafilePath;
|
|
60
|
+
private extractDependencyGraph;
|
|
61
|
+
/**
|
|
62
|
+
* Normalizes esbuild errors into Ecopages `BuildLog` entries.
|
|
63
|
+
*/
|
|
64
|
+
private toBuildLogs;
|
|
65
|
+
createFailureResult(error: unknown): BuildResult;
|
|
66
|
+
/**
|
|
67
|
+
* Bundles entrypoints using esbuild for Node runtime builds.
|
|
68
|
+
*/
|
|
69
|
+
build(options: BuildOptions): Promise<BuildResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Resolves module specifiers from a project root.
|
|
72
|
+
*/
|
|
73
|
+
resolve(importPath: string, rootDir: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* Returns transpile defaults for a known transpile profile.
|
|
76
|
+
*/
|
|
77
|
+
getTranspileOptions(profile: BuildTranspileProfile): BuildTranspileOptions;
|
|
78
|
+
}
|