@ecopages/core 0.2.0-alpha.9 → 0.2.0-beta.1

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.
Files changed (473) hide show
  1. package/README.md +79 -28
  2. package/package.json +104 -116
  3. package/src/adapters/README.md +2 -2
  4. package/src/adapters/abstract/application-adapter.d.ts +28 -2
  5. package/src/adapters/abstract/application-adapter.js +14 -2
  6. package/src/adapters/abstract/router-adapter.d.ts +1 -1
  7. package/src/adapters/abstract/server-adapter.d.ts +2 -2
  8. package/src/adapters/bun/client-bridge.d.ts +1 -1
  9. package/src/adapters/bun/create-app.d.ts +12 -12
  10. package/src/adapters/bun/create-app.js +64 -41
  11. package/src/adapters/bun/hmr-manager.d.ts +19 -115
  12. package/src/adapters/bun/hmr-manager.js +25 -301
  13. package/src/adapters/bun/index.d.ts +1 -1
  14. package/src/adapters/bun/index.js +2 -2
  15. package/src/adapters/bun/runtime-host.d.ts +52 -0
  16. package/src/adapters/bun/runtime-host.js +56 -0
  17. package/src/adapters/bun/server-adapter.d.ts +100 -32
  18. package/src/adapters/bun/server-adapter.js +142 -65
  19. package/src/adapters/bun/static-preview-host.d.ts +28 -0
  20. package/src/adapters/bun/static-preview-host.js +45 -0
  21. package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
  22. package/src/{create-app.js → adapters/create-app.js} +4 -4
  23. package/src/adapters/index.d.ts +1 -5
  24. package/src/adapters/index.js +1 -7
  25. package/src/adapters/node/create-app.d.ts +15 -12
  26. package/src/adapters/node/create-app.js +34 -85
  27. package/src/adapters/node/http-request-bridge.d.ts +57 -0
  28. package/src/adapters/node/http-request-bridge.js +118 -0
  29. package/src/adapters/node/node-client-bridge.d.ts +1 -1
  30. package/src/adapters/node/node-hmr-manager.d.ts +22 -103
  31. package/src/adapters/node/node-hmr-manager.js +26 -289
  32. package/src/adapters/node/runtime-host.d.ts +57 -0
  33. package/src/adapters/node/runtime-host.js +92 -0
  34. package/src/adapters/node/server-adapter-dependencies.d.ts +19 -0
  35. package/src/adapters/node/server-adapter-dependencies.js +18 -0
  36. package/src/adapters/node/server-adapter.d.ts +19 -42
  37. package/src/adapters/node/server-adapter.js +94 -139
  38. package/src/adapters/node/static-content-server.d.ts +1 -1
  39. package/src/adapters/node/static-content-server.js +1 -1
  40. package/src/adapters/node/static-preview-host.d.ts +55 -0
  41. package/src/adapters/node/static-preview-host.js +68 -0
  42. package/src/adapters/shared/application-adapter.d.ts +1 -1
  43. package/src/adapters/shared/define-api-handler.d.ts +1 -1
  44. package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
  45. package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
  46. package/src/adapters/shared/explicit-static-route-matcher.d.ts +7 -4
  47. package/src/adapters/shared/explicit-static-route-matcher.js +14 -16
  48. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
  49. package/src/adapters/shared/file-route-middleware-pipeline.js +2 -11
  50. package/src/adapters/shared/fs-server-response-factory.d.ts +14 -10
  51. package/src/adapters/shared/fs-server-response-factory.js +11 -27
  52. package/src/adapters/shared/fs-server-response-matcher.d.ts +18 -18
  53. package/src/adapters/shared/fs-server-response-matcher.js +72 -46
  54. package/src/adapters/shared/hmr-entrypoint-registrar.js +1 -1
  55. package/src/adapters/shared/hmr-html-response.d.ts +1 -1
  56. package/src/adapters/shared/hmr-html-response.js +4 -3
  57. package/src/adapters/shared/render-context.d.ts +5 -3
  58. package/src/adapters/shared/render-context.js +24 -1
  59. package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
  60. package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
  61. package/src/adapters/shared/runtime-host.d.ts +12 -0
  62. package/src/adapters/shared/server-adapter.d.ts +22 -11
  63. package/src/adapters/shared/server-adapter.js +183 -133
  64. package/src/adapters/shared/server-route-handler.d.ts +5 -5
  65. package/src/adapters/shared/server-route-handler.js +4 -4
  66. package/src/adapters/shared/server-static-builder.d.ts +32 -8
  67. package/src/adapters/shared/server-static-builder.js +69 -6
  68. package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
  69. package/src/adapters/shared/shared-hmr-manager.js +241 -0
  70. package/src/adapters/shared/static-preview-host.d.ts +10 -0
  71. package/src/build/README.md +57 -67
  72. package/src/build/browser-runtime-manifest.d.ts +31 -0
  73. package/src/build/browser-runtime-manifest.js +61 -0
  74. package/src/build/browser-runtime-plugin-helpers.d.ts +26 -0
  75. package/src/build/browser-runtime-plugin-helpers.js +14 -0
  76. package/src/build/browser-runtime-plugin.d.ts +78 -0
  77. package/src/build/browser-runtime-plugin.js +173 -0
  78. package/src/build/build-adapter.d.ts +384 -63
  79. package/src/build/build-adapter.js +129 -54
  80. package/src/build/build-manifest.d.ts +6 -0
  81. package/src/build/build-manifest.js +21 -2
  82. package/src/build/build-types.d.ts +2 -2
  83. package/src/build/rolldown-adapter-helpers.d.ts +58 -0
  84. package/src/build/rolldown-adapter-helpers.js +265 -0
  85. package/src/build/rolldown-build-adapter.d.ts +28 -0
  86. package/src/build/rolldown-build-adapter.js +65 -0
  87. package/src/build/rolldown-dev-build-adapter.d.ts +82 -0
  88. package/src/build/rolldown-dev-build-adapter.js +166 -0
  89. package/src/build/rolldown-plugin-bridge.d.ts +59 -0
  90. package/src/build/rolldown-plugin-bridge.js +199 -0
  91. package/src/build/runtime-build-executor.d.ts +15 -7
  92. package/src/build/runtime-build-executor.js +8 -9
  93. package/src/build/runtime-build-output-normalizer.d.ts +3 -0
  94. package/src/build/runtime-build-output-normalizer.js +111 -0
  95. package/src/build/serialized-build-executor.d.ts +64 -0
  96. package/src/build/serialized-build-executor.js +63 -0
  97. package/src/build/server-side-css-shim-plugin.d.ts +41 -0
  98. package/src/build/server-side-css-shim-plugin.js +35 -0
  99. package/src/cache/index.d.ts +6 -0
  100. package/src/cache/index.js +6 -0
  101. package/src/cache/module-parse-cache.d.ts +65 -0
  102. package/src/cache/module-parse-cache.js +75 -0
  103. package/src/config/README.md +5 -2
  104. package/src/config/config-builder.d.ts +41 -13
  105. package/src/config/config-builder.js +62 -24
  106. package/src/declarations.d.ts +1 -1
  107. package/src/dev/host-runtime.d.ts +10 -0
  108. package/src/dev/host-runtime.js +24 -0
  109. package/src/dev/sc-server.d.ts +1 -1
  110. package/src/dev/sc-server.js +1 -1
  111. package/src/eco/eco.browser.d.ts +2 -0
  112. package/src/eco/eco.browser.js +88 -0
  113. package/src/eco/eco.js +50 -45
  114. package/src/eco/eco.types.d.ts +60 -8
  115. package/src/eco/eco.utils.d.ts +1 -40
  116. package/src/eco/eco.utils.js +5 -35
  117. package/src/eco/global-injector-map.d.ts +3 -3
  118. package/src/eco/global-injector-map.js +2 -2
  119. package/src/eco/lazy-injector-map.d.ts +2 -2
  120. package/src/errors/index.d.ts +1 -0
  121. package/src/errors/index.js +3 -1
  122. package/src/hmr/client/hmr-runtime.js +9 -1
  123. package/src/hmr/hmr-strategy.d.ts +16 -13
  124. package/src/hmr/hmr-strategy.js +22 -7
  125. package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
  126. package/src/hmr/strategies/default-hmr-strategy.js +1 -1
  127. package/src/hmr/strategies/js-hmr-strategy.d.ts +4 -9
  128. package/src/hmr/strategies/js-hmr-strategy.js +5 -10
  129. package/src/index.browser.d.ts +2 -2
  130. package/src/index.browser.js +1 -1
  131. package/src/index.d.ts +3 -2
  132. package/src/index.js +15 -4
  133. package/src/integrations/ghtml/ghtml-renderer.d.ts +2 -1
  134. package/src/integrations/ghtml/ghtml-renderer.js +24 -29
  135. package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
  136. package/src/integrations/ghtml/ghtml.constants.js +4 -0
  137. package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
  138. package/src/integrations/ghtml/ghtml.plugin.js +3 -4
  139. package/src/plugins/README.md +1 -0
  140. package/src/plugins/alias-resolver-cache.d.ts +68 -0
  141. package/src/plugins/alias-resolver-cache.js +106 -0
  142. package/src/plugins/alias-resolver-plugin.d.ts +5 -1
  143. package/src/plugins/alias-resolver-plugin.js +19 -7
  144. package/src/plugins/eco-component-meta-plugin.d.ts +12 -1
  145. package/src/plugins/eco-component-meta-plugin.js +43 -25
  146. package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
  147. package/src/plugins/foreign-jsx-override-plugin.js +41 -0
  148. package/src/plugins/integration-plugin.d.ts +136 -42
  149. package/src/plugins/integration-plugin.js +99 -31
  150. package/src/plugins/processor.d.ts +4 -2
  151. package/src/plugins/processor.js +8 -3
  152. package/src/plugins/source-transform.d.ts +46 -0
  153. package/src/plugins/source-transform.js +71 -0
  154. package/src/route-renderer/GRAPH.md +80 -318
  155. package/src/route-renderer/README.md +74 -78
  156. package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
  157. package/src/route-renderer/orchestration/component-render-context.js +147 -0
  158. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
  159. package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
  160. package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
  161. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
  162. package/src/route-renderer/orchestration/integration-renderer.d.ts +290 -128
  163. package/src/route-renderer/orchestration/integration-renderer.js +660 -258
  164. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
  165. package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
  166. package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
  167. package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
  168. package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
  169. package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
  170. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
  171. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
  172. package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
  173. package/src/route-renderer/orchestration/render-output.utils.js +171 -0
  174. package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +156 -0
  175. package/src/route-renderer/orchestration/route-render-orchestrator.js +577 -0
  176. package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
  177. package/src/route-renderer/orchestration/template-serialization.js +45 -0
  178. package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
  179. package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
  180. package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
  181. package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
  182. package/src/route-renderer/page-loading/dependency-resolver.d.ts +2 -2
  183. package/src/route-renderer/page-loading/dependency-resolver.js +27 -354
  184. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
  185. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
  186. package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
  187. package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
  188. package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
  189. package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
  190. package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
  191. package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
  192. package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
  193. package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
  194. package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
  195. package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
  196. package/src/route-renderer/page-loading/page-module-loader.d.ts +7 -4
  197. package/src/route-renderer/page-loading/page-module-loader.js +8 -5
  198. package/src/route-renderer/route-renderer.d.ts +31 -23
  199. package/src/route-renderer/route-renderer.js +17 -24
  200. package/src/router/README.md +76 -8
  201. package/src/router/client/navigation-coordinator.d.ts +20 -0
  202. package/src/router/client/navigation-coordinator.js +2 -2
  203. package/src/router/server/route-registry.d.ts +78 -0
  204. package/src/router/server/route-registry.js +262 -0
  205. package/src/services/README.md +1 -2
  206. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
  207. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
  208. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +3 -20
  209. package/src/services/assets/asset-processing-service/asset-processing.service.js +52 -98
  210. package/src/services/assets/asset-processing-service/asset.factory.d.ts +1 -1
  211. package/src/services/assets/asset-processing-service/asset.factory.js +2 -2
  212. package/src/services/assets/asset-processing-service/assets.types.d.ts +14 -0
  213. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +2 -0
  214. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +1 -0
  215. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
  216. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
  217. package/src/services/assets/asset-processing-service/index.d.ts +6 -5
  218. package/src/services/assets/asset-processing-service/index.js +6 -5
  219. package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
  220. package/src/services/assets/asset-processing-service/page-package.js +80 -0
  221. package/src/services/assets/asset-processing-service/processor.interface.d.ts +2 -2
  222. package/src/services/assets/asset-processing-service/processor.registry.d.ts +2 -2
  223. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +1 -1
  224. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +3 -2
  225. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +10 -5
  226. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +69 -5
  227. package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -5
  228. package/src/services/assets/asset-processing-service/processors/index.js +5 -5
  229. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +3 -2
  230. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +66 -3
  231. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +4 -3
  232. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +27 -6
  233. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +38 -3
  234. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +57 -6
  235. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
  236. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +39 -5
  237. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
  238. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +5 -2
  239. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
  240. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
  241. package/src/services/assets/browser-bundle.service.d.ts +44 -3
  242. package/src/services/assets/browser-bundle.service.js +15 -7
  243. package/src/services/html/html-rewriter-provider.service.d.ts +3 -0
  244. package/src/services/html/html-rewriter-provider.service.js +4 -1
  245. package/src/services/html/html-transformer.service.d.ts +22 -3
  246. package/src/services/html/html-transformer.service.js +101 -35
  247. package/src/services/invalidation/development-invalidation.service.d.ts +1 -1
  248. package/src/services/invalidation/development-invalidation.service.js +1 -0
  249. package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
  250. package/src/services/module-loading/app-module-loader.service.js +0 -0
  251. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +9 -1
  252. package/src/services/module-loading/app-server-module-transpiler.service.js +102 -6
  253. package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
  254. package/src/services/module-loading/host-module-loader-registry.js +15 -0
  255. package/src/services/module-loading/module-loading-types.d.ts +2 -0
  256. package/src/services/module-loading/module-loading-types.js +0 -0
  257. package/src/services/module-loading/page-module-import.service.d.ts +32 -8
  258. package/src/services/module-loading/page-module-import.service.js +83 -22
  259. package/src/services/module-loading/server-module-transpiler.service.d.ts +8 -14
  260. package/src/services/module-loading/server-module-transpiler.service.js +5 -2
  261. package/src/services/module-loading/source-module-support.d.ts +5 -0
  262. package/src/services/module-loading/source-module-support.js +8 -0
  263. package/src/services/runtime-state/dev-graph.service.d.ts +6 -6
  264. package/src/services/runtime-state/dev-graph.service.js +10 -10
  265. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +1 -1
  266. package/src/services/runtime-state/server-invalidation-state.service.d.ts +1 -1
  267. package/src/static-site-generator/static-site-generator.d.ts +23 -28
  268. package/src/static-site-generator/static-site-generator.js +119 -156
  269. package/src/{internal-types.d.ts → types/internal-types.d.ts} +34 -23
  270. package/src/types/internal-types.js +0 -0
  271. package/src/{public-types.d.ts → types/public-types.d.ts} +195 -37
  272. package/src/types/public-types.js +0 -0
  273. package/src/utils/html-escaping.d.ts +7 -0
  274. package/src/utils/html-escaping.js +6 -0
  275. package/src/utils/locals-utils.d.ts +1 -1
  276. package/src/utils/parse-cli-args.d.ts +4 -1
  277. package/src/utils/parse-cli-args.js +16 -1
  278. package/src/utils/resolve-entry-file.d.ts +72 -0
  279. package/src/utils/resolve-entry-file.js +41 -0
  280. package/src/utils/resolve-work-dir.js +1 -1
  281. package/src/watchers/project-watcher.d.ts +4 -4
  282. package/src/watchers/project-watcher.js +35 -41
  283. package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
  284. package/src/watchers/project-watcher.test-helpers.js +5 -5
  285. package/CHANGELOG.md +0 -31
  286. package/src/adapters/abstract/application-adapter.ts +0 -337
  287. package/src/adapters/abstract/router-adapter.ts +0 -30
  288. package/src/adapters/abstract/server-adapter.ts +0 -79
  289. package/src/adapters/bun/client-bridge.ts +0 -62
  290. package/src/adapters/bun/create-app.ts +0 -189
  291. package/src/adapters/bun/hmr-manager.ts +0 -409
  292. package/src/adapters/bun/index.ts +0 -2
  293. package/src/adapters/bun/server-adapter.ts +0 -499
  294. package/src/adapters/bun/server-lifecycle.d.ts +0 -63
  295. package/src/adapters/bun/server-lifecycle.js +0 -92
  296. package/src/adapters/bun/server-lifecycle.ts +0 -124
  297. package/src/adapters/index.ts +0 -6
  298. package/src/adapters/node/bootstrap-dependency-resolver.d.ts +0 -44
  299. package/src/adapters/node/bootstrap-dependency-resolver.js +0 -172
  300. package/src/adapters/node/bootstrap-dependency-resolver.ts +0 -301
  301. package/src/adapters/node/create-app.ts +0 -179
  302. package/src/adapters/node/index.d.ts +0 -6
  303. package/src/adapters/node/index.js +0 -11
  304. package/src/adapters/node/index.ts +0 -16
  305. package/src/adapters/node/node-client-bridge.ts +0 -79
  306. package/src/adapters/node/node-hmr-manager.ts +0 -381
  307. package/src/adapters/node/runtime-adapter.d.ts +0 -46
  308. package/src/adapters/node/runtime-adapter.js +0 -306
  309. package/src/adapters/node/runtime-adapter.ts +0 -439
  310. package/src/adapters/node/server-adapter.ts +0 -488
  311. package/src/adapters/node/static-content-server.ts +0 -239
  312. package/src/adapters/node/write-runtime-manifest.d.ts +0 -26
  313. package/src/adapters/node/write-runtime-manifest.js +0 -12
  314. package/src/adapters/node/write-runtime-manifest.ts +0 -38
  315. package/src/adapters/shared/api-response.ts +0 -104
  316. package/src/adapters/shared/application-adapter.ts +0 -199
  317. package/src/adapters/shared/define-api-handler.ts +0 -66
  318. package/src/adapters/shared/explicit-static-route-matcher.ts +0 -140
  319. package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -127
  320. package/src/adapters/shared/fs-server-response-factory.ts +0 -118
  321. package/src/adapters/shared/fs-server-response-matcher.ts +0 -205
  322. package/src/adapters/shared/hmr-entrypoint-registrar.ts +0 -149
  323. package/src/adapters/shared/hmr-html-response.ts +0 -52
  324. package/src/adapters/shared/render-context.ts +0 -120
  325. package/src/adapters/shared/runtime-bootstrap.d.ts +0 -38
  326. package/src/adapters/shared/runtime-bootstrap.js +0 -43
  327. package/src/adapters/shared/runtime-bootstrap.ts +0 -79
  328. package/src/adapters/shared/server-adapter.ts +0 -489
  329. package/src/adapters/shared/server-route-handler.ts +0 -153
  330. package/src/adapters/shared/server-static-builder.ts +0 -166
  331. package/src/build/build-adapter.ts +0 -361
  332. package/src/build/build-manifest.ts +0 -54
  333. package/src/build/build-types.ts +0 -83
  334. package/src/build/dev-build-coordinator.d.ts +0 -74
  335. package/src/build/dev-build-coordinator.js +0 -161
  336. package/src/build/dev-build-coordinator.ts +0 -221
  337. package/src/build/esbuild-build-adapter.d.ts +0 -72
  338. package/src/build/esbuild-build-adapter.js +0 -422
  339. package/src/build/esbuild-build-adapter.ts +0 -559
  340. package/src/build/runtime-build-executor.ts +0 -34
  341. package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
  342. package/src/build/runtime-specifier-alias-plugin.js +0 -31
  343. package/src/build/runtime-specifier-alias-plugin.ts +0 -58
  344. package/src/config/config-builder.ts +0 -706
  345. package/src/constants.ts +0 -54
  346. package/src/create-app.ts +0 -87
  347. package/src/dev/sc-server.ts +0 -143
  348. package/src/eco/component-render-context.d.ts +0 -105
  349. package/src/eco/component-render-context.js +0 -87
  350. package/src/eco/component-render-context.ts +0 -224
  351. package/src/eco/eco.ts +0 -242
  352. package/src/eco/eco.types.ts +0 -221
  353. package/src/eco/eco.utils.ts +0 -89
  354. package/src/eco/global-injector-map.ts +0 -112
  355. package/src/eco/lazy-injector-map.ts +0 -120
  356. package/src/eco/module-dependencies.ts +0 -75
  357. package/src/errors/http-error.ts +0 -72
  358. package/src/errors/index.ts +0 -2
  359. package/src/errors/locals-access-error.ts +0 -7
  360. package/src/global/app-logger.ts +0 -4
  361. package/src/hmr/client/hmr-runtime.ts +0 -152
  362. package/src/hmr/hmr-strategy.ts +0 -172
  363. package/src/hmr/hmr.postcss.test.e2e.ts +0 -41
  364. package/src/hmr/hmr.test.e2e.ts +0 -66
  365. package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
  366. package/src/hmr/strategies/js-hmr-strategy.ts +0 -320
  367. package/src/index.browser.ts +0 -3
  368. package/src/index.ts +0 -5
  369. package/src/integrations/ghtml/ghtml-renderer.ts +0 -96
  370. package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
  371. package/src/internal-types.ts +0 -232
  372. package/src/plugins/alias-resolver-plugin.ts +0 -63
  373. package/src/plugins/eco-component-meta-plugin.ts +0 -481
  374. package/src/plugins/integration-plugin.ts +0 -226
  375. package/src/plugins/processor.ts +0 -240
  376. package/src/plugins/runtime-capability.ts +0 -14
  377. package/src/public-types.ts +0 -1317
  378. package/src/route-renderer/component-graph/component-graph-executor.d.ts +0 -32
  379. package/src/route-renderer/component-graph/component-graph-executor.js +0 -31
  380. package/src/route-renderer/component-graph/component-graph-executor.ts +0 -84
  381. package/src/route-renderer/component-graph/component-graph.d.ts +0 -42
  382. package/src/route-renderer/component-graph/component-graph.js +0 -72
  383. package/src/route-renderer/component-graph/component-graph.ts +0 -159
  384. package/src/route-renderer/component-graph/component-marker.d.ts +0 -52
  385. package/src/route-renderer/component-graph/component-marker.js +0 -46
  386. package/src/route-renderer/component-graph/component-marker.ts +0 -117
  387. package/src/route-renderer/component-graph/component-reference.d.ts +0 -10
  388. package/src/route-renderer/component-graph/component-reference.js +0 -19
  389. package/src/route-renderer/component-graph/component-reference.ts +0 -29
  390. package/src/route-renderer/component-graph/marker-graph-resolver.d.ts +0 -77
  391. package/src/route-renderer/component-graph/marker-graph-resolver.js +0 -95
  392. package/src/route-renderer/component-graph/marker-graph-resolver.ts +0 -155
  393. package/src/route-renderer/orchestration/integration-renderer.ts +0 -790
  394. package/src/route-renderer/orchestration/render-execution.service.d.ts +0 -103
  395. package/src/route-renderer/orchestration/render-execution.service.js +0 -121
  396. package/src/route-renderer/orchestration/render-execution.service.ts +0 -230
  397. package/src/route-renderer/orchestration/render-preparation.service.d.ts +0 -121
  398. package/src/route-renderer/orchestration/render-preparation.service.js +0 -332
  399. package/src/route-renderer/orchestration/render-preparation.service.ts +0 -476
  400. package/src/route-renderer/page-loading/dependency-resolver.ts +0 -612
  401. package/src/route-renderer/page-loading/page-module-loader.ts +0 -181
  402. package/src/route-renderer/route-renderer.ts +0 -115
  403. package/src/router/client/link-intent.test.browser.ts +0 -51
  404. package/src/router/client/link-intent.ts +0 -92
  405. package/src/router/client/navigation-coordinator.ts +0 -433
  406. package/src/router/server/fs-router-scanner.d.ts +0 -41
  407. package/src/router/server/fs-router-scanner.js +0 -156
  408. package/src/router/server/fs-router-scanner.ts +0 -219
  409. package/src/router/server/fs-router.d.ts +0 -26
  410. package/src/router/server/fs-router.js +0 -100
  411. package/src/router/server/fs-router.ts +0 -122
  412. package/src/services/assets/asset-processing-service/asset-processing.service.ts +0 -401
  413. package/src/services/assets/asset-processing-service/asset.factory.ts +0 -105
  414. package/src/services/assets/asset-processing-service/assets.types.ts +0 -113
  415. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +0 -95
  416. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +0 -78
  417. package/src/services/assets/asset-processing-service/index.ts +0 -5
  418. package/src/services/assets/asset-processing-service/processor.interface.ts +0 -27
  419. package/src/services/assets/asset-processing-service/processor.registry.ts +0 -18
  420. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +0 -82
  421. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +0 -95
  422. package/src/services/assets/asset-processing-service/processors/index.ts +0 -5
  423. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +0 -66
  424. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +0 -88
  425. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +0 -85
  426. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
  427. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -80
  428. package/src/services/assets/browser-bundle.service.ts +0 -53
  429. package/src/services/cache/cache.types.ts +0 -126
  430. package/src/services/cache/index.ts +0 -18
  431. package/src/services/cache/memory-cache-store.ts +0 -130
  432. package/src/services/cache/page-cache-service.ts +0 -202
  433. package/src/services/cache/page-request-cache-coordinator.service.ts +0 -131
  434. package/src/services/html/html-rewriter-provider.service.ts +0 -103
  435. package/src/services/html/html-transformer.service.ts +0 -279
  436. package/src/services/invalidation/development-invalidation.service.ts +0 -261
  437. package/src/services/module-loading/app-server-module-transpiler.service.ts +0 -52
  438. package/src/services/module-loading/page-module-import.service.ts +0 -200
  439. package/src/services/module-loading/server-loader.service.d.ts +0 -96
  440. package/src/services/module-loading/server-loader.service.js +0 -32
  441. package/src/services/module-loading/server-loader.service.ts +0 -130
  442. package/src/services/module-loading/server-module-transpiler.service.ts +0 -105
  443. package/src/services/runtime-manifest/node-runtime-manifest.service.d.ts +0 -35
  444. package/src/services/runtime-manifest/node-runtime-manifest.service.js +0 -60
  445. package/src/services/runtime-manifest/node-runtime-manifest.service.ts +0 -101
  446. package/src/services/runtime-state/dev-graph.service.ts +0 -217
  447. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +0 -136
  448. package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +0 -69
  449. package/src/services/runtime-state/runtime-specifier-registry.service.js +0 -37
  450. package/src/services/runtime-state/runtime-specifier-registry.service.ts +0 -96
  451. package/src/services/runtime-state/server-invalidation-state.service.ts +0 -68
  452. package/src/services/validation/schema-validation-service.ts +0 -204
  453. package/src/services/validation/standard-schema.types.ts +0 -68
  454. package/src/static-site-generator/static-site-generator.ts +0 -462
  455. package/src/utils/css.d.ts +0 -1
  456. package/src/utils/css.js +0 -7
  457. package/src/utils/css.ts +0 -5
  458. package/src/utils/deep-merge.ts +0 -47
  459. package/src/utils/hash.ts +0 -5
  460. package/src/utils/html.ts +0 -1
  461. package/src/utils/invariant.ts +0 -15
  462. package/src/utils/locals-utils.ts +0 -37
  463. package/src/utils/parse-cli-args.ts +0 -83
  464. package/src/utils/path-utils.module.ts +0 -14
  465. package/src/utils/resolve-work-dir.ts +0 -45
  466. package/src/utils/runtime.ts +0 -44
  467. package/src/utils/server-utils.module.ts +0 -67
  468. package/src/watchers/project-watcher.test-helpers.ts +0 -41
  469. package/src/watchers/project-watcher.ts +0 -363
  470. /package/src/{internal-types.js → adapters/shared/runtime-host.js} +0 -0
  471. /package/src/{public-types.js → adapters/shared/static-preview-host.js} +0 -0
  472. /package/src/{constants.d.ts → config/constants.d.ts} +0 -0
  473. /package/src/{constants.js → config/constants.js} +0 -0
@@ -1,74 +0,0 @@
1
- import { type BuildAdapter, type BuildExecutor, type BuildOptions, type BuildResult, EsbuildBuildAdapter } from './build-adapter.js';
2
- import type { EcoBuildPlugin } from './build-types.js';
3
- export declare function withBuildExecutorPlugins(executor: BuildExecutor, getPlugins: () => EcoBuildPlugin[]): BuildExecutor;
4
- /**
5
- * Serialized development build coordinator for the shared esbuild adapter.
6
- *
7
- * The underlying adapter remains responsible for plain build execution. This
8
- * coordinator owns the policy that must be shared across callers in dev mode:
9
- *
10
- * - serialized access to the shared esbuild service
11
- * - warm-service recycling for Node-target builds
12
- * - recovery from known esbuild worker protocol faults
13
- *
14
- * Unlike the previous design, the coordinator does not monkey-patch the adapter
15
- * or install process-level fault handlers. The owning app/runtime passes this
16
- * executor explicitly to build consumers that need coordinated development
17
- * 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
- * Node-target builds recycle the warmed esbuild service between requests to
29
- * avoid stale worker state accumulating across long-lived dev sessions.
30
- *
31
- * If an esbuild protocol fault is detected, the coordinator resets the queue,
32
- * stops the corrupted service, increments the module generation, and retries
33
- * the build once.
34
- */
35
- build(options: BuildOptions): Promise<BuildResult>;
36
- /**
37
- * Attempts recovery from a known esbuild worker protocol fault.
38
- *
39
- * Returns `true` only when the error matches the protocol-fault signature and
40
- * the coordinator successfully reset its shared state.
41
- */
42
- recoverFromProtocolFault(error: unknown): Promise<boolean>;
43
- /**
44
- * Clears internal coordinator state for isolated tests.
45
- */
46
- resetForTests(): void;
47
- /**
48
- * Overrides the internal queue promise for fault-recovery tests.
49
- */
50
- setBuildQueueForTests(queue: Promise<void>): void;
51
- /**
52
- * Returns the current internal queue promise for fault-recovery tests.
53
- */
54
- getBuildQueueForTests(): Promise<void>;
55
- private shouldRecycleEsbuildService;
56
- private runSerialized;
57
- }
58
- /**
59
- * Creates the appropriate build executor for one app/runtime instance.
60
- *
61
- * Development runtimes get a dedicated coordinator around the shared esbuild
62
- * adapter. Non-development runtimes use the adapter directly.
63
- */
64
- export declare function createAppBuildExecutor(options: {
65
- development: boolean;
66
- adapter?: BuildAdapter;
67
- getPlugins?: () => EcoBuildPlugin[];
68
- }): BuildExecutor;
69
- export declare function createOrReuseAppBuildExecutor(options: {
70
- development: boolean;
71
- adapter?: BuildAdapter;
72
- currentExecutor?: BuildExecutor;
73
- getPlugins?: () => EcoBuildPlugin[];
74
- }): BuildExecutor;
@@ -1,161 +0,0 @@
1
- import { appLogger } from "../global/app-logger.js";
2
- import {
3
- defaultBuildAdapter,
4
- EsbuildBuildAdapter
5
- } from "./build-adapter.js";
6
- import { mergeEcoBuildPlugins } from "./build-manifest.js";
7
- function mergeBuildPlugins(options, appPlugins) {
8
- if (appPlugins.length === 0) {
9
- return options;
10
- }
11
- return {
12
- ...options,
13
- plugins: mergeEcoBuildPlugins(options.plugins, appPlugins)
14
- };
15
- }
16
- class BuildExecutorWithPlugins {
17
- executor;
18
- getPlugins;
19
- constructor(executor, getPlugins) {
20
- this.executor = executor;
21
- this.getPlugins = getPlugins;
22
- }
23
- async build(options) {
24
- return await this.executor.build(mergeBuildPlugins(options, this.getPlugins()));
25
- }
26
- unwrap() {
27
- return this.executor;
28
- }
29
- }
30
- function unwrapBuildExecutor(executor) {
31
- if (executor instanceof BuildExecutorWithPlugins) {
32
- return unwrapBuildExecutor(executor.unwrap());
33
- }
34
- return executor;
35
- }
36
- function withBuildExecutorPlugins(executor, getPlugins) {
37
- return new BuildExecutorWithPlugins(executor, getPlugins);
38
- }
39
- class DevBuildCoordinator {
40
- buildQueue = Promise.resolve();
41
- esbuildSessionWarm = false;
42
- esbuildModuleGeneration = 0;
43
- adapter;
44
- constructor(adapter) {
45
- this.adapter = adapter;
46
- }
47
- /**
48
- * Executes a build through the serialized development queue.
49
- *
50
- * Node-target builds recycle the warmed esbuild service between requests to
51
- * avoid stale worker state accumulating across long-lived dev sessions.
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
- if (this.shouldRecycleEsbuildService(options)) {
61
- await this.adapter.stopEsbuildService(this.esbuildModuleGeneration);
62
- this.esbuildSessionWarm = false;
63
- }
64
- const result = await this.adapter.buildOrThrow(options, this.esbuildModuleGeneration);
65
- this.esbuildSessionWarm = true;
66
- return result;
67
- } catch (error) {
68
- if (await this.recoverFromProtocolFault(error)) {
69
- appLogger.warn("Recovered from esbuild protocol fault. Retrying build.");
70
- try {
71
- const retry = await this.adapter.buildOrThrow(options, this.esbuildModuleGeneration);
72
- this.esbuildSessionWarm = true;
73
- return retry;
74
- } catch (retryError) {
75
- return this.adapter.createFailureResult(retryError);
76
- }
77
- }
78
- return this.adapter.createFailureResult(error);
79
- }
80
- });
81
- }
82
- /**
83
- * Attempts recovery from a known esbuild worker protocol fault.
84
- *
85
- * Returns `true` only when the error matches the protocol-fault signature and
86
- * the coordinator successfully reset its shared state.
87
- */
88
- async recoverFromProtocolFault(error) {
89
- if (!this.adapter.isEsbuildProtocolError(error)) {
90
- return false;
91
- }
92
- this.buildQueue = Promise.resolve();
93
- this.esbuildSessionWarm = false;
94
- await this.adapter.stopEsbuildService(this.esbuildModuleGeneration);
95
- this.esbuildModuleGeneration += 1;
96
- return true;
97
- }
98
- /**
99
- * Clears internal coordinator state for isolated tests.
100
- */
101
- resetForTests() {
102
- this.buildQueue = Promise.resolve();
103
- this.esbuildSessionWarm = false;
104
- this.esbuildModuleGeneration = 0;
105
- }
106
- /**
107
- * Overrides the internal queue promise for fault-recovery tests.
108
- */
109
- setBuildQueueForTests(queue) {
110
- this.buildQueue = queue;
111
- }
112
- /**
113
- * Returns the current internal queue promise for fault-recovery tests.
114
- */
115
- getBuildQueueForTests() {
116
- return this.buildQueue;
117
- }
118
- shouldRecycleEsbuildService(options) {
119
- return process.env.NODE_ENV === "development" && options.target !== "browser" && this.esbuildSessionWarm;
120
- }
121
- async runSerialized(operation) {
122
- let releaseBuild;
123
- const currentBuild = new Promise((resolve) => {
124
- releaseBuild = resolve;
125
- });
126
- const previousBuild = this.buildQueue;
127
- this.buildQueue = previousBuild.catch(() => void 0).then(async () => await currentBuild);
128
- await previousBuild.catch(() => void 0);
129
- try {
130
- return await operation();
131
- } finally {
132
- releaseBuild?.();
133
- }
134
- }
135
- }
136
- function createAppBuildExecutor(options) {
137
- const adapter = options.adapter ?? defaultBuildAdapter;
138
- const baseExecutor = !options.development || !(adapter instanceof EsbuildBuildAdapter) ? adapter : new DevBuildCoordinator(adapter);
139
- if (!options.getPlugins) {
140
- return baseExecutor;
141
- }
142
- return new BuildExecutorWithPlugins(baseExecutor, options.getPlugins);
143
- }
144
- function createOrReuseAppBuildExecutor(options) {
145
- const adapter = options.adapter ?? defaultBuildAdapter;
146
- const currentBaseExecutor = options.currentExecutor ? unwrapBuildExecutor(options.currentExecutor) : void 0;
147
- const baseExecutor = options.development && currentBaseExecutor instanceof DevBuildCoordinator ? currentBaseExecutor : createAppBuildExecutor({
148
- development: options.development,
149
- adapter
150
- });
151
- if (!options.getPlugins) {
152
- return baseExecutor;
153
- }
154
- return withBuildExecutorPlugins(baseExecutor, options.getPlugins);
155
- }
156
- export {
157
- DevBuildCoordinator,
158
- createAppBuildExecutor,
159
- createOrReuseAppBuildExecutor,
160
- withBuildExecutorPlugins
161
- };
@@ -1,221 +0,0 @@
1
- import { appLogger } from '../global/app-logger.ts';
2
- import {
3
- defaultBuildAdapter,
4
- type BuildAdapter,
5
- type BuildExecutor,
6
- type BuildOptions,
7
- type BuildResult,
8
- EsbuildBuildAdapter,
9
- } from './build-adapter.ts';
10
- import { mergeEcoBuildPlugins } from './build-manifest.ts';
11
- import type { EcoBuildPlugin } from './build-types.ts';
12
-
13
- function mergeBuildPlugins(options: BuildOptions, appPlugins: EcoBuildPlugin[]): BuildOptions {
14
- if (appPlugins.length === 0) {
15
- return options;
16
- }
17
-
18
- return {
19
- ...options,
20
- plugins: mergeEcoBuildPlugins(options.plugins, appPlugins),
21
- };
22
- }
23
-
24
- class BuildExecutorWithPlugins implements BuildExecutor {
25
- private readonly executor: BuildExecutor;
26
- private readonly getPlugins: () => EcoBuildPlugin[];
27
-
28
- constructor(executor: BuildExecutor, getPlugins: () => EcoBuildPlugin[]) {
29
- this.executor = executor;
30
- this.getPlugins = getPlugins;
31
- }
32
-
33
- async build(options: BuildOptions): Promise<BuildResult> {
34
- return await this.executor.build(mergeBuildPlugins(options, this.getPlugins()));
35
- }
36
-
37
- unwrap(): BuildExecutor {
38
- return this.executor;
39
- }
40
- }
41
-
42
- function unwrapBuildExecutor(executor: BuildExecutor): BuildExecutor {
43
- if (executor instanceof BuildExecutorWithPlugins) {
44
- return unwrapBuildExecutor(executor.unwrap());
45
- }
46
-
47
- return executor;
48
- }
49
-
50
- export function withBuildExecutorPlugins(executor: BuildExecutor, getPlugins: () => EcoBuildPlugin[]): BuildExecutor {
51
- return new BuildExecutorWithPlugins(executor, getPlugins);
52
- }
53
-
54
- /**
55
- * Serialized development build coordinator for the shared esbuild adapter.
56
- *
57
- * The underlying adapter remains responsible for plain build execution. This
58
- * coordinator owns the policy that must be shared across callers in dev mode:
59
- *
60
- * - serialized access to the shared esbuild service
61
- * - warm-service recycling for Node-target builds
62
- * - recovery from known esbuild worker protocol faults
63
- *
64
- * Unlike the previous design, the coordinator does not monkey-patch the adapter
65
- * or install process-level fault handlers. The owning app/runtime passes this
66
- * executor explicitly to build consumers that need coordinated development
67
- * builds.
68
- */
69
- export class DevBuildCoordinator implements BuildExecutor {
70
- private buildQueue: Promise<void> = Promise.resolve();
71
- private esbuildSessionWarm = false;
72
- private esbuildModuleGeneration = 0;
73
- private readonly adapter: EsbuildBuildAdapter;
74
-
75
- constructor(adapter: EsbuildBuildAdapter) {
76
- this.adapter = adapter;
77
- }
78
-
79
- /**
80
- * Executes a build through the serialized development queue.
81
- *
82
- * Node-target builds recycle the warmed esbuild service between requests to
83
- * avoid stale worker state accumulating across long-lived dev sessions.
84
- *
85
- * If an esbuild protocol fault is detected, the coordinator resets the queue,
86
- * stops the corrupted service, increments the module generation, and retries
87
- * the build once.
88
- */
89
- async build(options: BuildOptions): Promise<BuildResult> {
90
- return this.runSerialized(async () => {
91
- try {
92
- if (this.shouldRecycleEsbuildService(options)) {
93
- await this.adapter.stopEsbuildService(this.esbuildModuleGeneration);
94
- this.esbuildSessionWarm = false;
95
- }
96
-
97
- const result = await this.adapter.buildOrThrow(options, this.esbuildModuleGeneration);
98
- this.esbuildSessionWarm = true;
99
- return result;
100
- } catch (error) {
101
- if (await this.recoverFromProtocolFault(error)) {
102
- appLogger.warn('Recovered from esbuild protocol fault. Retrying build.');
103
- try {
104
- const retry = await this.adapter.buildOrThrow(options, this.esbuildModuleGeneration);
105
- this.esbuildSessionWarm = true;
106
- return retry;
107
- } catch (retryError) {
108
- return this.adapter.createFailureResult(retryError);
109
- }
110
- }
111
- return this.adapter.createFailureResult(error);
112
- }
113
- });
114
- }
115
-
116
- /**
117
- * Attempts recovery from a known esbuild worker protocol fault.
118
- *
119
- * Returns `true` only when the error matches the protocol-fault signature and
120
- * the coordinator successfully reset its shared state.
121
- */
122
- async recoverFromProtocolFault(error: unknown): Promise<boolean> {
123
- if (!this.adapter.isEsbuildProtocolError(error)) {
124
- return false;
125
- }
126
- this.buildQueue = Promise.resolve();
127
- this.esbuildSessionWarm = false;
128
- await this.adapter.stopEsbuildService(this.esbuildModuleGeneration);
129
- this.esbuildModuleGeneration += 1;
130
- return true;
131
- }
132
-
133
- /**
134
- * Clears internal coordinator state for isolated tests.
135
- */
136
- resetForTests(): void {
137
- this.buildQueue = Promise.resolve();
138
- this.esbuildSessionWarm = false;
139
- this.esbuildModuleGeneration = 0;
140
- }
141
-
142
- /**
143
- * Overrides the internal queue promise for fault-recovery tests.
144
- */
145
- setBuildQueueForTests(queue: Promise<void>): void {
146
- this.buildQueue = queue;
147
- }
148
-
149
- /**
150
- * Returns the current internal queue promise for fault-recovery tests.
151
- */
152
- getBuildQueueForTests(): Promise<void> {
153
- return this.buildQueue;
154
- }
155
-
156
- private shouldRecycleEsbuildService(options: BuildOptions): boolean {
157
- return process.env.NODE_ENV === 'development' && options.target !== 'browser' && this.esbuildSessionWarm;
158
- }
159
-
160
- private async runSerialized<T>(operation: () => Promise<T>): Promise<T> {
161
- let releaseBuild: (() => void) | undefined;
162
- const currentBuild = new Promise<void>((resolve) => {
163
- releaseBuild = resolve;
164
- });
165
- const previousBuild = this.buildQueue;
166
-
167
- this.buildQueue = previousBuild.catch(() => undefined).then(async () => await currentBuild);
168
- await previousBuild.catch(() => undefined);
169
-
170
- try {
171
- return await operation();
172
- } finally {
173
- releaseBuild?.();
174
- }
175
- }
176
- }
177
-
178
- /**
179
- * Creates the appropriate build executor for one app/runtime instance.
180
- *
181
- * Development runtimes get a dedicated coordinator around the shared esbuild
182
- * adapter. Non-development runtimes use the adapter directly.
183
- */
184
- export function createAppBuildExecutor(options: {
185
- development: boolean;
186
- adapter?: BuildAdapter;
187
- getPlugins?: () => EcoBuildPlugin[];
188
- }): BuildExecutor {
189
- const adapter = options.adapter ?? defaultBuildAdapter;
190
- const baseExecutor =
191
- !options.development || !(adapter instanceof EsbuildBuildAdapter) ? adapter : new DevBuildCoordinator(adapter);
192
-
193
- if (!options.getPlugins) {
194
- return baseExecutor;
195
- }
196
-
197
- return new BuildExecutorWithPlugins(baseExecutor, options.getPlugins);
198
- }
199
-
200
- export function createOrReuseAppBuildExecutor(options: {
201
- development: boolean;
202
- adapter?: BuildAdapter;
203
- currentExecutor?: BuildExecutor;
204
- getPlugins?: () => EcoBuildPlugin[];
205
- }): BuildExecutor {
206
- const adapter = options.adapter ?? defaultBuildAdapter;
207
- const currentBaseExecutor = options.currentExecutor ? unwrapBuildExecutor(options.currentExecutor) : undefined;
208
- const baseExecutor =
209
- options.development && currentBaseExecutor instanceof DevBuildCoordinator
210
- ? currentBaseExecutor
211
- : createAppBuildExecutor({
212
- development: options.development,
213
- adapter,
214
- });
215
-
216
- if (!options.getPlugins) {
217
- return baseExecutor;
218
- }
219
-
220
- return withBuildExecutorPlugins(baseExecutor, options.getPlugins);
221
- }
@@ -1,72 +0,0 @@
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 class EsbuildBuildAdapter implements BuildAdapter {
9
- private escapeRegExp;
10
- private getPluginsForBuild;
11
- private normalizeEsbuildLoader;
12
- private inferEsbuildLoaderFromPath;
13
- private convertLoadResultToModuleSource;
14
- private convertPluginOnLoadResult;
15
- private resolvePluginPath;
16
- /**
17
- * Creates an esbuild plugin bridge compatible with the existing Ecopages
18
- * plugin API shape.
19
- *
20
- * **Plugin ordering is semantically significant.**
21
- *
22
- * Esbuild applies `onResolve` and `onLoad` hooks in the order they are
23
- * registered: the first handler whose filter matches wins for `onResolve`,
24
- * and the first handler that returns a non-`undefined` result wins for
25
- * `onLoad`. Because we call `plugin.setup(bridge)` sequentially here, the
26
- * position of each plugin in the `plugins` array determines its priority:
27
- *
28
- * - **Index 0** has the highest priority (its hooks run first).
29
- * - **Last index** has the lowest priority (its hooks only run if no earlier
30
- * plugin claimed the path).
31
- *
32
- * When adding new integrations or processors, ensure security-critical plugins
33
- * (e.g. `ecopages-client-graph-boundary`) are placed **before** general-purpose
34
- * loaders in the array so they always get first refusal on every source file.
35
- *
36
- * There is currently no priority system or validation — correct ordering is
37
- * the caller's responsibility.
38
- */
39
- private createEcoPluginBridge;
40
- private loadEsbuildModule;
41
- private isMockedEsbuildModule;
42
- /**
43
- * Detects the subset of runtime faults that indicate esbuild's worker
44
- * protocol is corrupted rather than a normal build error.
45
- */
46
- isEsbuildProtocolError(error: unknown): boolean;
47
- stopEsbuildService(moduleGeneration?: number): Promise<void>;
48
- buildOrThrow(options: BuildOptions, moduleGeneration?: number): Promise<BuildResult>;
49
- private mapEsbuildSourcemap;
50
- private mapEsbuildFormat;
51
- private hasTemplateTokens;
52
- private toEntryNamePattern;
53
- private normalizeMetafilePath;
54
- private extractDependencyGraph;
55
- /**
56
- * Normalizes esbuild errors into Ecopages `BuildLog` entries.
57
- */
58
- private toBuildLogs;
59
- createFailureResult(error: unknown): BuildResult;
60
- /**
61
- * Bundles entrypoints using esbuild for Node runtime builds.
62
- */
63
- build(options: BuildOptions): Promise<BuildResult>;
64
- /**
65
- * Resolves module specifiers from a project root.
66
- */
67
- resolve(importPath: string, rootDir: string): string;
68
- /**
69
- * Returns transpile defaults for a known transpile profile.
70
- */
71
- getTranspileOptions(profile: BuildTranspileProfile): BuildTranspileOptions;
72
- }