@ecopages/core 0.2.0-beta.9 → 0.2.0-rc.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 (624) hide show
  1. package/README.md +44 -14
  2. package/package.json +368 -57
  3. package/src/adapters/README.md +6 -2
  4. package/src/adapters/abstract/application-adapter.d.ts +57 -5
  5. package/src/adapters/abstract/application-adapter.js +261 -203
  6. package/src/adapters/abstract/router-adapter.js +12 -4
  7. package/src/adapters/abstract/segment-path-matcher.d.ts +6 -0
  8. package/src/adapters/abstract/segment-path-matcher.js +147 -0
  9. package/src/adapters/abstract/server-adapter.d.ts +13 -2
  10. package/src/adapters/abstract/server-adapter.js +22 -14
  11. package/src/adapters/abstract/ws-pattern-matcher.d.ts +2 -50
  12. package/src/adapters/abstract/ws-pattern-matcher.js +24 -57
  13. package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
  14. package/src/adapters/bun/client-bridge.js +51 -50
  15. package/src/adapters/bun/create-app.d.ts +5 -7
  16. package/src/adapters/bun/create-app.js +169 -154
  17. package/src/adapters/bun/hmr-manager.d.ts +2 -3
  18. package/src/adapters/bun/hmr-manager.js +62 -57
  19. package/src/adapters/bun/index.d.ts +1 -1
  20. package/src/adapters/bun/index.js +2 -8
  21. package/src/adapters/bun/runtime-host.d.ts +1 -1
  22. package/src/adapters/bun/runtime-host.js +61 -54
  23. package/src/adapters/bun/server-adapter.d.ts +34 -53
  24. package/src/adapters/bun/server-adapter.js +557 -637
  25. package/src/adapters/bun/static-preview-host.d.ts +1 -1
  26. package/src/adapters/bun/static-preview-host.js +43 -41
  27. package/src/adapters/create-app.d.ts +1 -12
  28. package/src/adapters/create-app.js +11 -72
  29. package/src/adapters/index.d.ts +2 -2
  30. package/src/adapters/index.js +2 -8
  31. package/src/adapters/node/create-app.d.ts +4 -3
  32. package/src/adapters/node/create-app.js +123 -98
  33. package/src/adapters/node/http-request-bridge.js +147 -106
  34. package/src/adapters/node/node-client-bridge.js +62 -64
  35. package/src/adapters/node/node-hmr-manager.d.ts +2 -3
  36. package/src/adapters/node/node-hmr-manager.js +58 -48
  37. package/src/adapters/node/runtime-host.d.ts +1 -1
  38. package/src/adapters/node/runtime-host.js +96 -89
  39. package/src/adapters/node/server-adapter-dependencies.js +18 -17
  40. package/src/adapters/node/server-adapter.d.ts +28 -8
  41. package/src/adapters/node/server-adapter.js +349 -302
  42. package/src/adapters/node/static-content-server.js +172 -186
  43. package/src/adapters/node/static-preview-host.d.ts +1 -1
  44. package/src/adapters/node/static-preview-host.js +88 -64
  45. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
  46. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
  47. package/src/adapters/shared/{hmr-html-response.d.ts → hmr/hmr-html-response.d.ts} +2 -2
  48. package/src/adapters/shared/hmr/hmr-html-response.js +50 -0
  49. package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +92 -0
  50. package/src/adapters/shared/hmr/shared-hmr-manager.js +446 -0
  51. package/src/adapters/shared/http/api-request-pipeline.d.ts +23 -0
  52. package/src/adapters/shared/http/api-request-pipeline.js +132 -0
  53. package/src/adapters/shared/{api-response.d.ts → http/api-response.d.ts} +1 -1
  54. package/src/adapters/shared/http/api-response.js +79 -0
  55. package/src/adapters/shared/http/create-body-response.d.ts +12 -0
  56. package/src/adapters/shared/http/create-body-response.js +26 -0
  57. package/src/adapters/shared/http/define-api-handler.d.ts +48 -0
  58. package/src/adapters/shared/http/define-api-handler.js +49 -0
  59. package/src/adapters/shared/{explicit-static-render-preparation.d.ts → http/explicit-static-render-preparation.d.ts} +3 -3
  60. package/src/adapters/shared/http/explicit-static-render-preparation.js +29 -0
  61. package/src/adapters/shared/{explicit-static-route-matcher.d.ts → http/explicit-static-route-matcher.d.ts} +3 -9
  62. package/src/adapters/shared/http/explicit-static-route-matcher.js +59 -0
  63. package/src/adapters/shared/{file-route-middleware-pipeline.d.ts → http/file-route-middleware-pipeline.d.ts} +2 -2
  64. package/src/adapters/shared/http/file-route-middleware-pipeline.js +84 -0
  65. package/src/adapters/shared/{fs-server-response-factory.d.ts → http/fs-server-response-factory.d.ts} +7 -2
  66. package/src/adapters/shared/http/fs-server-response-factory.js +106 -0
  67. package/src/adapters/shared/{fs-server-response-matcher.d.ts → http/fs-server-response-matcher.d.ts} +25 -5
  68. package/src/adapters/shared/http/fs-server-response-matcher.js +260 -0
  69. package/src/adapters/shared/http/run-middleware-chain.d.ts +5 -0
  70. package/src/adapters/shared/http/run-middleware-chain.js +17 -0
  71. package/src/adapters/shared/{application-adapter.d.ts → runtime/application-adapter.d.ts} +2 -2
  72. package/src/adapters/shared/runtime/application-adapter.js +75 -0
  73. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.d.ts +11 -0
  74. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.js +29 -0
  75. package/src/adapters/shared/runtime/copy-runtime-public-dir.js +27 -0
  76. package/src/adapters/shared/runtime/dev-static-route-prewarm.d.ts +16 -0
  77. package/src/adapters/shared/runtime/dev-static-route-prewarm.js +66 -0
  78. package/src/adapters/shared/runtime/port-manager.d.ts +116 -0
  79. package/src/adapters/shared/runtime/port-manager.js +226 -0
  80. package/src/adapters/shared/{render-context.d.ts → runtime/render-context.d.ts} +2 -2
  81. package/src/adapters/shared/runtime/render-context.js +99 -0
  82. package/src/adapters/shared/{runtime-app-bootstrap.d.ts → runtime/runtime-app-bootstrap.d.ts} +4 -2
  83. package/src/adapters/shared/runtime/runtime-app-bootstrap.js +38 -0
  84. package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +45 -0
  85. package/src/adapters/shared/runtime/runtime-server-lifecycle.js +71 -0
  86. package/src/adapters/shared/{server-adapter.d.ts → runtime/server-adapter.d.ts} +31 -50
  87. package/src/adapters/shared/runtime/server-adapter.js +301 -0
  88. package/src/adapters/shared/{server-route-handler.d.ts → runtime/server-route-handler.d.ts} +6 -33
  89. package/src/adapters/shared/runtime/server-route-handler.js +77 -0
  90. package/src/adapters/shared/{server-static-builder.d.ts → runtime/server-static-builder.d.ts} +26 -31
  91. package/src/adapters/shared/runtime/server-static-builder.js +172 -0
  92. package/src/adapters/shared/{static-preview-host.d.ts → runtime/static-preview-host.d.ts} +6 -1
  93. package/src/adapters/shared/{node-http-websocket-upgrades.d.ts → ws/node-http-websocket-upgrades.d.ts} +1 -1
  94. package/src/adapters/shared/ws/node-http-websocket-upgrades.js +109 -0
  95. package/src/adapters/shared/ws/websocket-lifecycle.d.ts +24 -0
  96. package/src/adapters/shared/ws/websocket-lifecycle.js +62 -0
  97. package/src/build/README.md +165 -45
  98. package/src/build/app-build-manifest-runtime.d.ts +39 -0
  99. package/src/build/app-build-manifest-runtime.js +145 -0
  100. package/src/build/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +4 -0
  101. package/src/build/browser/browser-runtime-manifest.js +65 -0
  102. package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +3 -5
  103. package/src/build/browser/browser-runtime-plugin-helpers.js +32 -0
  104. package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +12 -13
  105. package/src/build/browser/browser-runtime-plugin.js +218 -0
  106. package/src/build/browser/jsx-ownership-plugins.d.ts +24 -0
  107. package/src/build/browser/jsx-ownership-plugins.js +55 -0
  108. package/src/build/browser/lit-static-render-worker-context.d.ts +2 -0
  109. package/src/build/browser/lit-static-render-worker-context.js +4 -0
  110. package/src/build/build-adapter.d.ts +25 -355
  111. package/src/build/build-adapter.js +258 -265
  112. package/src/build/{build-input-fingerprint.d.ts → cache/build-input-fingerprint.d.ts} +3 -3
  113. package/src/build/cache/build-input-fingerprint.js +33 -0
  114. package/src/build/cache/cache-constants.d.ts +4 -0
  115. package/src/build/cache/cache-constants.js +4 -0
  116. package/src/build/cache/cache-keys.d.ts +22 -0
  117. package/src/build/cache/cache-keys.js +71 -0
  118. package/src/build/{pages-unified-graph-build.d.ts → cache/pages-unified-graph-build.d.ts} +1 -1
  119. package/src/build/cache/pages-unified-graph-build.js +199 -0
  120. package/src/build/cache/production-build-cache.d.ts +21 -0
  121. package/src/build/cache/production-build-cache.js +56 -0
  122. package/src/build/{server-entry-build-cache.d.ts → cache/server-entry-build-cache.d.ts} +3 -4
  123. package/src/build/cache/server-entry-build-cache.js +153 -0
  124. package/src/build/contracts/build-contracts.d.ts +96 -0
  125. package/src/build/contracts/build-contracts.js +1 -0
  126. package/src/build/contracts/build-manifest.d.ts +90 -0
  127. package/src/build/contracts/build-manifest.js +64 -0
  128. package/src/build/contracts/build-types.js +1 -0
  129. package/src/build/contracts/content-virtual-modules.d.ts +12 -0
  130. package/src/build/contracts/content-virtual-modules.js +29 -0
  131. package/src/build/{rolldown-adapter-helpers.d.ts → rolldown/rolldown-adapter-helpers.d.ts} +32 -9
  132. package/src/build/rolldown/rolldown-adapter-helpers.js +472 -0
  133. package/src/build/{rolldown-build-adapter.d.ts → rolldown/rolldown-build-adapter.d.ts} +3 -7
  134. package/src/build/rolldown/rolldown-build-adapter.js +57 -0
  135. package/src/build/{rolldown-build-invocation-metrics.d.ts → rolldown/rolldown-build-invocation-metrics.d.ts} +1 -1
  136. package/src/build/rolldown/rolldown-build-invocation-metrics.js +39 -0
  137. package/src/build/{rolldown-plugin-bridge.d.ts → rolldown/rolldown-plugin-bridge.d.ts} +7 -2
  138. package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
  139. package/src/build/{rolldown-source-transform-pass.d.ts → rolldown/rolldown-source-transform-pass.d.ts} +1 -1
  140. package/src/build/rolldown/rolldown-source-transform-pass.js +70 -0
  141. package/src/build/rolldown/runtime-build-output-normalizer.js +227 -0
  142. package/src/build/rolldown/server-side-css-shim-plugin.js +58 -0
  143. package/src/build/runtime/build-profile-options.d.ts +7 -0
  144. package/src/build/runtime/build-profile-options.js +37 -0
  145. package/src/build/runtime/build-request-identity.d.ts +17 -0
  146. package/src/build/runtime/build-request-identity.js +79 -0
  147. package/src/build/runtime/build-request-policy.d.ts +58 -0
  148. package/src/build/runtime/build-request-policy.js +84 -0
  149. package/src/build/runtime/build-runtime.d.ts +28 -0
  150. package/src/build/runtime/build-runtime.js +75 -0
  151. package/src/build/runtime/deduping-build-executor.d.ts +21 -0
  152. package/src/build/runtime/deduping-build-executor.js +40 -0
  153. package/src/build/{parallel-build-executor.d.ts → runtime/parallel-build-executor.d.ts} +1 -1
  154. package/src/build/runtime/parallel-build-executor.js +60 -0
  155. package/src/build/{serialized-build-executor.d.ts → runtime/serialized-build-executor.d.ts} +1 -1
  156. package/src/build/runtime/serialized-build-executor.js +79 -0
  157. package/src/cache/index.d.ts +2 -1
  158. package/src/cache/index.js +7 -6
  159. package/src/cache/module-parse-cache.d.ts +5 -0
  160. package/src/cache/module-parse-cache.js +122 -67
  161. package/src/cache/module-transform-profiler.d.ts +8 -0
  162. package/src/cache/module-transform-profiler.js +8 -0
  163. package/src/client/navigation-scripts/classification.d.ts +16 -0
  164. package/src/client/navigation-scripts/classification.js +49 -0
  165. package/src/client/navigation-scripts/index.d.ts +3 -0
  166. package/src/client/navigation-scripts/index.js +3 -0
  167. package/src/client/navigation-scripts/navigation-scripts.test.browser.d.ts +1 -0
  168. package/src/client/navigation-scripts/navigation-scripts.test.browser.js +61 -0
  169. package/src/client/navigation-scripts/registry.d.ts +11 -0
  170. package/src/client/navigation-scripts/registry.js +16 -0
  171. package/src/client/navigation-scripts/rerun-queue.d.ts +37 -0
  172. package/src/client/navigation-scripts/rerun-queue.js +90 -0
  173. package/src/client/scroll.d.ts +17 -0
  174. package/src/client/scroll.js +33 -0
  175. package/src/client/scroll.test.browser.d.ts +1 -0
  176. package/src/client/scroll.test.browser.js +31 -0
  177. package/src/client/view-transitions.d.ts +32 -0
  178. package/src/client/view-transitions.js +120 -0
  179. package/src/client/view-transitions.test.browser.d.ts +1 -0
  180. package/src/client/view-transitions.test.browser.js +56 -0
  181. package/src/config/README.md +1 -1
  182. package/src/config/config-builder.d.ts +40 -20
  183. package/src/config/config-builder.js +645 -610
  184. package/src/config/constants.d.ts +1 -0
  185. package/src/config/constants.js +44 -23
  186. package/src/declarations.d.ts +1 -0
  187. package/src/dev/README.md +24 -0
  188. package/src/dev/client-bridge-registry.d.ts +5 -0
  189. package/src/dev/client-bridge-registry.js +10 -0
  190. package/src/dev/dev-client-ownership.d.ts +7 -0
  191. package/src/dev/dev-client-ownership.js +8 -0
  192. package/src/dev/hmr-manager-registry.d.ts +8 -0
  193. package/src/dev/hmr-manager-registry.js +10 -0
  194. package/src/dev/host-runtime.d.ts +3 -0
  195. package/src/dev/host-runtime.js +25 -23
  196. package/src/dev/runtime-server-started-message.d.ts +2 -0
  197. package/src/dev/runtime-server-started-message.js +3 -0
  198. package/src/dev/sc-server.js +106 -103
  199. package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
  200. package/src/dev/transform-server/dev-transform-bundler.js +79 -0
  201. package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
  202. package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
  203. package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
  204. package/src/dev/transform-server/dev-transform-import-rewriter.js +127 -0
  205. package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
  206. package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
  207. package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
  208. package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
  209. package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
  210. package/src/dev/transform-server/dev-transform-server.js +191 -0
  211. package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
  212. package/src/dev/transform-server/dev-transform-url.js +58 -0
  213. package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +28 -0
  214. package/src/dev/transform-server/dev-transform-vendor-registry.js +166 -0
  215. package/src/dev/transform-server/index.d.ts +6 -0
  216. package/src/dev/transform-server/index.js +4 -0
  217. package/src/dev/transform-server/types.d.ts +15 -0
  218. package/src/dev/transform-server/types.js +1 -0
  219. package/src/dev-toolbar/README.md +52 -0
  220. package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
  221. package/src/dev-toolbar/define-dev-tool.js +9 -0
  222. package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
  223. package/src/dev-toolbar/dev-toolbar-config.js +19 -0
  224. package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
  225. package/src/dev-toolbar/dev-toolbar-host.js +117 -0
  226. package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
  227. package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
  228. package/src/dev-toolbar/dev-toolbar-manifest-contract.d.ts +22 -0
  229. package/src/dev-toolbar/dev-toolbar-manifest-contract.js +2 -0
  230. package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
  231. package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
  232. package/src/dev-toolbar/dev-toolbar-package.d.ts +34 -0
  233. package/src/dev-toolbar/dev-toolbar-package.js +78 -0
  234. package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
  235. package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
  236. package/src/diagnostics/request-build-dedupe.d.ts +18 -0
  237. package/src/diagnostics/request-build-dedupe.js +39 -0
  238. package/src/diagnostics/request-pipeline-metrics.d.ts +38 -0
  239. package/src/diagnostics/request-pipeline-metrics.js +121 -0
  240. package/src/diagnostics/startup-trace.d.ts +81 -0
  241. package/src/diagnostics/startup-trace.js +281 -0
  242. package/src/eco/README.md +17 -0
  243. package/src/eco/component-identity.d.ts +13 -0
  244. package/src/eco/component-identity.js +18 -0
  245. package/src/eco/eco-declared-component.d.ts +15 -0
  246. package/src/eco/eco-declared-component.js +23 -0
  247. package/src/eco/eco.browser.js +63 -70
  248. package/src/eco/eco.js +163 -97
  249. package/src/eco/eco.types.d.ts +47 -8
  250. package/src/eco/eco.types.js +5 -0
  251. package/src/eco/eco.utils.d.ts +1 -1
  252. package/src/eco/eco.utils.js +1 -10
  253. package/src/eco/global-injector-map.js +55 -41
  254. package/src/eco/lazy-injector-map.js +90 -60
  255. package/src/eco/module-dependencies.js +52 -44
  256. package/src/eco/page-layout-normalization.d.ts +21 -0
  257. package/src/eco/page-layout-normalization.js +69 -0
  258. package/src/env.d.ts +2 -0
  259. package/src/errors/http-error.d.ts +8 -0
  260. package/src/errors/http-error.js +66 -49
  261. package/src/errors/index.d.ts +1 -0
  262. package/src/errors/index.js +3 -6
  263. package/src/errors/locals-access-error.js +5 -8
  264. package/src/errors/undeclared-component-dependency-error.d.ts +11 -0
  265. package/src/errors/undeclared-component-dependency-error.js +17 -0
  266. package/src/global/app-logger.js +3 -6
  267. package/src/hmr/README.md +21 -0
  268. package/src/hmr/client/hmr-runtime.js +119 -110
  269. package/src/hmr/client/module-update.d.ts +13 -0
  270. package/src/hmr/client/module-update.js +39 -0
  271. package/src/hmr/hmr-asset-paths.d.ts +14 -0
  272. package/src/hmr/hmr-asset-paths.js +22 -0
  273. package/src/hmr/hmr-entrypoint-output.d.ts +21 -0
  274. package/src/hmr/hmr-entrypoint-output.js +34 -0
  275. package/src/hmr/hmr-file-change-prep.d.ts +10 -0
  276. package/src/hmr/hmr-file-change-prep.js +14 -0
  277. package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
  278. package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
  279. package/src/hmr/hmr-runtime-paths.d.ts +10 -0
  280. package/src/hmr/hmr-runtime-paths.js +13 -0
  281. package/src/hmr/hmr-strategy.d.ts +9 -0
  282. package/src/hmr/hmr-strategy.js +113 -42
  283. package/src/hmr/strategies/default-hmr-strategy.js +55 -33
  284. package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -97
  285. package/src/hmr/strategies/js-hmr-strategy.js +107 -167
  286. package/src/hmr/strategies/server-rendered-template-hmr-strategy.d.ts +17 -0
  287. package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +35 -0
  288. package/src/index.browser.d.ts +1 -0
  289. package/src/index.browser.js +2 -4
  290. package/src/index.d.ts +4 -1
  291. package/src/index.js +7 -21
  292. package/src/islands/README.md +25 -0
  293. package/src/islands/island-host.d.ts +37 -0
  294. package/src/islands/island-host.js +55 -0
  295. package/src/plugins/README.md +4 -2
  296. package/src/plugins/alias-resolver-cache.d.ts +6 -9
  297. package/src/plugins/alias-resolver-cache.js +114 -97
  298. package/src/plugins/alias-resolver-plugin.d.ts +3 -3
  299. package/src/plugins/alias-resolver-plugin.js +35 -62
  300. package/src/plugins/define-integration.d.ts +26 -0
  301. package/src/plugins/define-integration.js +20 -0
  302. package/src/plugins/eco-component-meta-plugin.d.ts +6 -102
  303. package/src/plugins/eco-component-meta-plugin.js +123 -162
  304. package/src/plugins/foreign-jsx-override-plugin.d.ts +1 -1
  305. package/src/plugins/foreign-jsx-override-plugin.js +49 -37
  306. package/src/plugins/integration-plugin.d.ts +28 -15
  307. package/src/plugins/integration-plugin.js +212 -195
  308. package/src/plugins/jsx-import-source.utils.d.ts +8 -0
  309. package/src/plugins/jsx-import-source.utils.js +21 -0
  310. package/src/plugins/package-specifier.d.ts +12 -0
  311. package/src/plugins/package-specifier.js +33 -0
  312. package/src/plugins/processor.d.ts +79 -12
  313. package/src/plugins/processor.js +188 -136
  314. package/src/plugins/runtime-capability.js +1 -0
  315. package/src/plugins/source-transform.d.ts +1 -1
  316. package/src/plugins/source-transform.js +109 -79
  317. package/src/plugins/tsconfig-import-resolver.d.ts +37 -0
  318. package/src/plugins/tsconfig-import-resolver.js +262 -0
  319. package/src/route-renderer/GRAPH.md +24 -30
  320. package/src/route-renderer/README.md +52 -32
  321. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.d.ts +107 -0
  322. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +155 -0
  323. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.d.ts +32 -0
  324. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +52 -0
  325. package/src/route-renderer/orchestration/{component-render-context.d.ts → foreign-child/component-render-context.d.ts} +8 -15
  326. package/src/route-renderer/orchestration/foreign-child/component-render-context.js +196 -0
  327. package/src/route-renderer/orchestration/{render-output.utils.d.ts → foreign-child/foreign-child-output.utils.d.ts} +20 -7
  328. package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +195 -0
  329. package/src/route-renderer/orchestration/{foreign-subtree-execution.service.d.ts → foreign-child/foreign-subtree-execution.service.d.ts} +64 -34
  330. package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +354 -0
  331. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.d.ts +19 -0
  332. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +36 -0
  333. package/src/route-renderer/orchestration/integration-renderer.d.ts +39 -153
  334. package/src/route-renderer/orchestration/integration-renderer.js +803 -1008
  335. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.d.ts +75 -0
  336. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +173 -0
  337. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.d.ts +10 -0
  338. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +132 -0
  339. package/src/route-renderer/orchestration/ownership-graph/component-graph.d.ts +34 -0
  340. package/src/route-renderer/orchestration/ownership-graph/component-graph.js +89 -0
  341. package/src/route-renderer/orchestration/{ownership-validation.service.d.ts → ownership-graph/ownership-validation.service.d.ts} +6 -2
  342. package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +77 -0
  343. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.d.ts +7 -0
  344. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +30 -0
  345. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.d.ts +15 -0
  346. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.js +9 -0
  347. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.d.ts +5 -0
  348. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.js +30 -0
  349. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.d.ts +12 -0
  350. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +32 -0
  351. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +126 -0
  352. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +542 -0
  353. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.d.ts +47 -0
  354. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +248 -0
  355. package/src/route-renderer/orchestration/{processed-asset-dedupe.d.ts → page-browser-graph/processed-asset-dedupe.d.ts} +1 -1
  356. package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +23 -0
  357. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.d.ts +29 -0
  358. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.js +54 -0
  359. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +38 -0
  360. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +26 -0
  361. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.d.ts +6 -0
  362. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +25 -0
  363. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.d.ts +15 -0
  364. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +43 -0
  365. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +25 -0
  366. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +44 -0
  367. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.d.ts +26 -0
  368. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +44 -0
  369. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.d.ts +4 -0
  370. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +30 -0
  371. package/src/route-renderer/orchestration/{route-render-orchestrator.d.ts → route-pipeline/route-render-orchestrator.d.ts} +24 -54
  372. package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +215 -0
  373. package/src/{integrations/ghtml/ghtml-renderer.d.ts → route-renderer/orchestration/string-markup-renderer.d.ts} +8 -10
  374. package/src/route-renderer/orchestration/string-markup-renderer.js +53 -0
  375. package/src/route-renderer/page-loading/component-dependency-collection.js +121 -121
  376. package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
  377. package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
  378. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +1 -0
  379. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +64 -51
  380. package/src/route-renderer/page-loading/file-scoped-dependency-components.d.ts +42 -0
  381. package/src/route-renderer/page-loading/file-scoped-dependency-components.js +94 -0
  382. package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
  383. package/src/route-renderer/page-loading/lazy-trigger-planning.js +47 -36
  384. package/src/route-renderer/page-loading/module-declaration-aggregation.js +39 -28
  385. package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
  386. package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
  387. package/src/route-renderer/page-loading/page-module-loader.d.ts +2 -1
  388. package/src/route-renderer/page-loading/page-module-loader.js +136 -124
  389. package/src/route-renderer/page-loading/resolved-page-dependencies.d.ts +12 -0
  390. package/src/route-renderer/page-loading/resolved-page-dependencies.js +38 -0
  391. package/src/route-renderer/route-renderer.js +74 -76
  392. package/src/router/README.md +31 -0
  393. package/src/router/client/link-intent.d.ts +11 -21
  394. package/src/router/client/link-intent.js +56 -30
  395. package/src/router/client/link-intent.test.browser.js +50 -39
  396. package/src/router/client/link-navigation-policy.d.ts +45 -0
  397. package/src/router/client/link-navigation-policy.js +122 -0
  398. package/src/router/client/link-navigation-policy.test.browser.d.ts +1 -0
  399. package/src/router/client/link-navigation-policy.test.browser.js +82 -0
  400. package/src/router/client/navigation-coordinator.d.ts +1 -1
  401. package/src/router/client/navigation-coordinator.js +235 -211
  402. package/src/router/client/navigation-lifecycle.d.ts +55 -0
  403. package/src/router/client/navigation-lifecycle.js +50 -0
  404. package/src/router/client/navigation-lifecycle.test.browser.d.ts +1 -0
  405. package/src/router/client/navigation-lifecycle.test.browser.js +118 -0
  406. package/src/router/server/route-registry.js +237 -242
  407. package/src/services/README.md +5 -0
  408. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +13 -0
  409. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -50
  410. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +12 -1
  411. package/src/services/assets/asset-processing-service/asset-processing.service.js +335 -268
  412. package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
  413. package/src/services/assets/asset-processing-service/assets.types.d.ts +1 -1
  414. package/src/services/assets/asset-processing-service/assets.types.js +1 -0
  415. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +1 -1
  416. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -46
  417. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.d.ts +52 -0
  418. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +115 -0
  419. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -58
  420. package/src/services/assets/asset-processing-service/finalize-processed-asset.d.ts +3 -0
  421. package/src/services/assets/asset-processing-service/finalize-processed-asset.js +5 -0
  422. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +2 -1
  423. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +85 -60
  424. package/src/services/assets/asset-processing-service/index.d.ts +2 -0
  425. package/src/services/assets/asset-processing-service/index.js +8 -6
  426. package/src/services/assets/asset-processing-service/inline-content-script-body.d.ts +11 -0
  427. package/src/services/assets/asset-processing-service/inline-content-script-body.js +23 -0
  428. package/src/services/assets/asset-processing-service/materialize-content-script-asset.d.ts +9 -0
  429. package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +22 -0
  430. package/src/services/assets/asset-processing-service/page-package.js +70 -72
  431. package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
  432. package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
  433. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
  434. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -2
  435. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -130
  436. package/src/services/assets/asset-processing-service/processors/index.js +5 -5
  437. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +8 -0
  438. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +111 -111
  439. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -1
  440. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -94
  441. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -135
  442. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -3
  443. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +26 -57
  444. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -3
  445. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +33 -67
  446. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.d.ts +2 -0
  447. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +44 -0
  448. package/src/services/assets/asset-processing-service/resolve-integration-plugin.d.ts +4 -0
  449. package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +15 -0
  450. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -1
  451. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -44
  452. package/src/services/assets/browser-bundle.service.d.ts +27 -31
  453. package/src/services/assets/browser-bundle.service.js +54 -49
  454. package/src/services/assets/browser-runtime-asset-generation.d.ts +17 -0
  455. package/src/services/assets/browser-runtime-asset-generation.js +28 -0
  456. package/src/services/cache/cache.types.d.ts +4 -2
  457. package/src/services/cache/cache.types.js +5 -0
  458. package/src/services/cache/html-page-cache-dependency-index.d.ts +34 -0
  459. package/src/services/cache/html-page-cache-dependency-index.js +88 -0
  460. package/src/services/cache/index.d.ts +2 -0
  461. package/src/services/cache/index.js +8 -7
  462. package/src/services/cache/memory-cache-store.js +101 -89
  463. package/src/services/cache/page-cache-service.d.ts +31 -1
  464. package/src/services/cache/page-cache-service.js +237 -150
  465. package/src/services/cache/page-request-cache-coordinator.service.d.ts +2 -1
  466. package/src/services/cache/page-request-cache-coordinator.service.js +112 -102
  467. package/src/services/html/html-rewriter-provider.service.js +61 -61
  468. package/src/services/html/html-transformer.service.js +249 -266
  469. package/src/services/invalidation/development-invalidation.service.d.ts +15 -1
  470. package/src/services/invalidation/development-invalidation.service.js +241 -204
  471. package/src/services/module-loading/README.md +9 -6
  472. package/src/services/module-loading/app-module-loader.service.js +1 -0
  473. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +8 -0
  474. package/src/services/module-loading/app-server-module-transpiler.service.js +104 -106
  475. package/src/services/module-loading/collection-server-module-build.service.d.ts +19 -0
  476. package/src/services/module-loading/collection-server-module-build.service.js +83 -0
  477. package/src/services/module-loading/host-module-loader-registry.js +6 -11
  478. package/src/services/module-loading/module-loading-types.js +1 -0
  479. package/src/services/module-loading/page-module-import.service.d.ts +7 -12
  480. package/src/services/module-loading/page-module-import.service.js +232 -206
  481. package/src/services/module-loading/route-module-build-cache-registry.d.ts +2 -0
  482. package/src/services/module-loading/route-module-build-cache-registry.js +59 -33
  483. package/src/services/module-loading/route-module-build-cache.js +3 -38
  484. package/src/services/module-loading/route-module-build-cache.store.d.ts +10 -0
  485. package/src/services/module-loading/route-module-build-cache.store.js +213 -196
  486. package/src/services/module-loading/route-module-build-manifest.d.ts +10 -14
  487. package/src/services/module-loading/route-module-build-manifest.js +54 -118
  488. package/src/services/module-loading/route-module-dependency-hasher.d.ts +2 -2
  489. package/src/services/module-loading/route-module-dependency-hasher.js +136 -109
  490. package/src/services/module-loading/server-module-transpiler.service.d.ts +1 -3
  491. package/src/services/module-loading/server-module-transpiler.service.js +65 -62
  492. package/src/services/module-loading/source-module-support.js +15 -7
  493. package/src/services/runtime-state/dev-graph.service.js +165 -157
  494. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
  495. package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
  496. package/src/services/validation/schema-validation-service.d.ts +1 -4
  497. package/src/services/validation/schema-validation-service.js +156 -95
  498. package/src/services/validation/standard-schema.types.d.ts +9 -62
  499. package/src/services/validation/standard-schema.types.js +1 -0
  500. package/src/services/validation/validate-standard-schema.d.ts +7 -0
  501. package/src/services/validation/validate-standard-schema.js +14 -0
  502. package/src/static-site-generator/README.md +10 -2
  503. package/src/static-site-generator/production-page-browser-graph-prebuild.d.ts +32 -0
  504. package/src/static-site-generator/production-page-browser-graph-prebuild.js +57 -0
  505. package/src/static-site-generator/sitemap-routes.d.ts +14 -0
  506. package/src/static-site-generator/sitemap-routes.js +36 -0
  507. package/src/static-site-generator/sitemap.d.ts +15 -0
  508. package/src/static-site-generator/sitemap.js +42 -0
  509. package/src/static-site-generator/static-build-invalidation.d.ts +2 -2
  510. package/src/static-site-generator/static-build-invalidation.js +33 -74
  511. package/src/static-site-generator/static-export-context.d.ts +9 -1
  512. package/src/static-site-generator/static-export-context.js +1 -0
  513. package/src/static-site-generator/static-site-generator.d.ts +27 -6
  514. package/src/static-site-generator/static-site-generator.js +528 -389
  515. package/src/types/internal-types.d.ts +55 -17
  516. package/src/types/internal-types.js +1 -0
  517. package/src/types/public-types.d.ts +236 -95
  518. package/src/types/public-types.js +1 -0
  519. package/src/utils/deep-merge.js +39 -26
  520. package/src/utils/ecopages-route-info.d.ts +26 -0
  521. package/src/utils/ecopages-route-info.js +30 -0
  522. package/src/utils/hash.js +3 -6
  523. package/src/utils/html-escaping.d.ts +7 -0
  524. package/src/utils/html-escaping.js +22 -5
  525. package/src/utils/invariant.js +11 -10
  526. package/src/utils/locals-utils.js +32 -22
  527. package/src/utils/parse-cli-args.d.ts +1 -0
  528. package/src/utils/parse-cli-args.js +73 -62
  529. package/src/utils/path-pattern.d.ts +23 -0
  530. package/src/utils/path-pattern.js +42 -0
  531. package/src/utils/path-utils.module.js +8 -11
  532. package/src/utils/resolve-entry-file.js +70 -38
  533. package/src/utils/resolve-work-dir.js +23 -27
  534. package/src/utils/runtime.js +24 -33
  535. package/src/utils/server-utils.module.d.ts +3 -2
  536. package/src/utils/server-utils.module.js +60 -53
  537. package/src/utils/static-file-extensions.d.ts +12 -0
  538. package/src/utils/static-file-extensions.js +54 -0
  539. package/src/watchers/project-watcher-ignore.d.ts +11 -0
  540. package/src/watchers/project-watcher-ignore.js +17 -0
  541. package/src/watchers/project-watcher.d.ts +21 -6
  542. package/src/watchers/project-watcher.js +402 -277
  543. package/src/watchers/project-watcher.test-helpers.js +45 -50
  544. package/src/adapters/shared/api-response.js +0 -96
  545. package/src/adapters/shared/application-adapter.js +0 -90
  546. package/src/adapters/shared/bun-user-websocket-lifecycle.js +0 -102
  547. package/src/adapters/shared/copy-runtime-public-dir.js +0 -24
  548. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  549. package/src/adapters/shared/define-api-handler.js +0 -15
  550. package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
  551. package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
  552. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
  553. package/src/adapters/shared/fs-server-response-factory.js +0 -81
  554. package/src/adapters/shared/fs-server-response-matcher.js +0 -186
  555. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  556. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  557. package/src/adapters/shared/hmr-html-response.js +0 -33
  558. package/src/adapters/shared/node-http-websocket-upgrades.js +0 -125
  559. package/src/adapters/shared/render-context.js +0 -93
  560. package/src/adapters/shared/runtime-app-bootstrap.js +0 -41
  561. package/src/adapters/shared/runtime-host.js +0 -0
  562. package/src/adapters/shared/server-adapter.js +0 -436
  563. package/src/adapters/shared/server-route-handler.js +0 -111
  564. package/src/adapters/shared/server-static-builder.js +0 -202
  565. package/src/adapters/shared/shared-hmr-manager.d.ts +0 -61
  566. package/src/adapters/shared/shared-hmr-manager.js +0 -273
  567. package/src/adapters/shared/static-preview-host.js +0 -0
  568. package/src/adapters/shared/websocket-lifecycle.d.ts +0 -3
  569. package/src/adapters/shared/websocket-lifecycle.js +0 -19
  570. package/src/build/browser-runtime-manifest.js +0 -61
  571. package/src/build/browser-runtime-plugin-helpers.js +0 -14
  572. package/src/build/browser-runtime-plugin.js +0 -173
  573. package/src/build/build-input-fingerprint.js +0 -31
  574. package/src/build/build-manifest.d.ts +0 -33
  575. package/src/build/build-manifest.js +0 -49
  576. package/src/build/build-types.js +0 -0
  577. package/src/build/jsx-ownership-plugins.d.ts +0 -10
  578. package/src/build/jsx-ownership-plugins.js +0 -17
  579. package/src/build/pages-unified-graph-build.js +0 -208
  580. package/src/build/parallel-build-executor.js +0 -52
  581. package/src/build/rolldown-adapter-helpers.js +0 -310
  582. package/src/build/rolldown-build-adapter.js +0 -67
  583. package/src/build/rolldown-build-invocation-metrics.js +0 -43
  584. package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
  585. package/src/build/rolldown-dev-build-adapter.js +0 -182
  586. package/src/build/rolldown-plugin-bridge.js +0 -211
  587. package/src/build/rolldown-source-transform-pass.js +0 -58
  588. package/src/build/runtime-build-executor.d.ts +0 -15
  589. package/src/build/runtime-build-executor.js +0 -43
  590. package/src/build/runtime-build-output-normalizer.js +0 -203
  591. package/src/build/serialized-build-executor.js +0 -63
  592. package/src/build/server-entry-build-cache.js +0 -169
  593. package/src/build/server-side-css-shim-plugin.js +0 -35
  594. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  595. package/src/hmr/hmr.test.e2e.js +0 -54
  596. package/src/integrations/ghtml/ghtml-renderer.js +0 -57
  597. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  598. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  599. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  600. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  601. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  602. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
  603. package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
  604. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -231
  605. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
  606. package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
  607. package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
  608. package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
  609. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
  610. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
  611. package/src/route-renderer/orchestration/render-output.utils.js +0 -175
  612. package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -578
  613. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  614. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  615. package/src/utils/html.d.ts +0 -1
  616. package/src/utils/html.js +0 -4
  617. /package/src/adapters/{shared → bun}/bun-user-websocket-lifecycle.d.ts +0 -0
  618. /package/src/adapters/shared/{copy-runtime-public-dir.d.ts → runtime/copy-runtime-public-dir.d.ts} +0 -0
  619. /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
  620. /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
  621. /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
  622. /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
  623. /package/src/build/{runtime-build-output-normalizer.d.ts → rolldown/runtime-build-output-normalizer.d.ts} +0 -0
  624. /package/src/build/{server-side-css-shim-plugin.d.ts → rolldown/server-side-css-shim-plugin.d.ts} +0 -0
@@ -1,211 +0,0 @@
1
- import path from "node:path";
2
- import { finalizeLoadResultWithSourceTransforms } from "./rolldown-source-transform-pass.js";
3
- import { escapeRegExp } from "./browser-runtime-plugin-helpers.js";
4
- const NAMESPACE_SEPARATOR = ":";
5
- function joinNamespace(namespace, value) {
6
- return namespace ? `${namespace}${NAMESPACE_SEPARATOR}${value}` : value;
7
- }
8
- function splitNamespace(id) {
9
- const separatorIndex = id.indexOf(NAMESPACE_SEPARATOR);
10
- if (separatorIndex <= 0) {
11
- return { namespace: void 0, path: id };
12
- }
13
- return {
14
- namespace: id.slice(0, separatorIndex),
15
- path: id.slice(separatorIndex + 1)
16
- };
17
- }
18
- function inferRolldownModuleTypeFromPath(filePath) {
19
- const extension = path.extname(filePath).toLowerCase();
20
- switch (extension) {
21
- case ".ts":
22
- return "ts";
23
- case ".tsx":
24
- return "tsx";
25
- case ".jsx":
26
- return "jsx";
27
- case ".json":
28
- return "json";
29
- case ".css":
30
- return "css";
31
- default:
32
- return "js";
33
- }
34
- }
35
- function normalizeRolldownModuleType(loader) {
36
- switch (loader) {
37
- case "js":
38
- case "jsx":
39
- case "ts":
40
- case "tsx":
41
- case "json":
42
- case "css":
43
- case "text":
44
- case "base64":
45
- case "dataurl":
46
- case "binary":
47
- case "empty":
48
- return loader;
49
- case "global-css":
50
- case "local-css":
51
- return "css";
52
- case "file":
53
- case "copy":
54
- return "asset";
55
- default:
56
- return void 0;
57
- }
58
- }
59
- function convertLoadResultToModuleSource(result) {
60
- if (result.loader === "object" && result.exports && typeof result.exports === "object") {
61
- return Object.entries(result.exports).map(
62
- ([key, value]) => key === "default" ? `export default ${JSON.stringify(value)};` : `export const ${key} = ${JSON.stringify(value)};`
63
- ).join("\n");
64
- }
65
- return void 0;
66
- }
67
- function buildIdFilter(filter, namespace) {
68
- if (!namespace) {
69
- return filter;
70
- }
71
- return new RegExp(`^${escapeRegExp(namespace)}${NAMESPACE_SEPARATOR}${filter.source.slice(1)}`);
72
- }
73
- function resolvePluginPath(value, importer, contextRoot) {
74
- if (path.isAbsolute(value)) {
75
- return value;
76
- }
77
- if (value.startsWith(".") || value.startsWith("..")) {
78
- const baseDir = importer ? path.dirname(importer) : contextRoot;
79
- return path.resolve(baseDir, value);
80
- }
81
- return value;
82
- }
83
- function convertPluginOnLoadResult(args, result) {
84
- if (!result || typeof result !== "object") {
85
- return void 0;
86
- }
87
- const candidate = result;
88
- const { path: sourcePath } = splitNamespace(args.id);
89
- const sourceFromExports = convertLoadResultToModuleSource(candidate);
90
- if (sourceFromExports) {
91
- const description = {
92
- code: sourceFromExports,
93
- moduleType: "js"
94
- };
95
- return description;
96
- }
97
- if (typeof candidate.contents === "string" || candidate.contents instanceof Uint8Array) {
98
- const code = typeof candidate.contents === "string" ? candidate.contents : new TextDecoder().decode(candidate.contents);
99
- const description = {
100
- code,
101
- moduleType: normalizeRolldownModuleType(candidate.loader) ?? inferRolldownModuleTypeFromPath(sourcePath)
102
- };
103
- return description;
104
- }
105
- return void 0;
106
- }
107
- function convertPluginOnResolveResult(result, importer, contextRoot) {
108
- if (!result || typeof result !== "object") {
109
- return void 0;
110
- }
111
- const candidate = result;
112
- if (typeof candidate.path !== "string" && typeof candidate.namespace !== "string") {
113
- if (typeof candidate.external !== "boolean") {
114
- return void 0;
115
- }
116
- }
117
- const partial = { id: "" };
118
- if (typeof candidate.path === "string") {
119
- partial.id = joinNamespace(candidate.namespace, resolvePluginPath(candidate.path, importer, contextRoot));
120
- } else if (typeof candidate.namespace === "string") {
121
- partial.id = joinNamespace(candidate.namespace, "");
122
- }
123
- if (typeof candidate.external === "boolean") {
124
- partial.external = candidate.external;
125
- }
126
- return partial;
127
- }
128
- function createRolldownPluginBridge(plugins, contextRoot, sourceTransforms = []) {
129
- if (plugins.length === 0) {
130
- return [];
131
- }
132
- const moduleCounter = { value: 0 };
133
- const resolveRegistrations = [];
134
- const loadRegistrations = [];
135
- const registerResolve = (filter, callback) => {
136
- resolveRegistrations.push({ filter, callback });
137
- };
138
- const registerLoad = (filter, callback) => {
139
- loadRegistrations.push({ filter, callback });
140
- };
141
- const resolveIdHandler = async (source, importer, _extraOptions) => {
142
- for (const { filter, callback } of resolveRegistrations) {
143
- if (!filter.test(source)) {
144
- continue;
145
- }
146
- const { namespace, path: sourcePath } = splitNamespace(source);
147
- const result = await callback({ path: sourcePath, importer, namespace });
148
- const converted = convertPluginOnResolveResult(result, importer, contextRoot);
149
- if (converted !== void 0) {
150
- return converted;
151
- }
152
- }
153
- return void 0;
154
- };
155
- const loadHandler = async (id) => {
156
- let loadResult;
157
- for (const { filter, callback } of loadRegistrations) {
158
- if (!filter.test(id)) {
159
- continue;
160
- }
161
- const { namespace: namespace2, path: sourcePath2 } = splitNamespace(id);
162
- const result = await callback({ path: sourcePath2, namespace: namespace2 });
163
- const converted = convertPluginOnLoadResult({ id }, result);
164
- if (converted !== void 0) {
165
- loadResult = converted;
166
- break;
167
- }
168
- }
169
- const { namespace, path: sourcePath } = splitNamespace(id);
170
- return finalizeLoadResultWithSourceTransforms({
171
- id,
172
- namespace,
173
- sourcePath,
174
- loadResult,
175
- sourceTransforms,
176
- contextRoot,
177
- inferModuleTypeFromPath: (filePath) => inferRolldownModuleTypeFromPath(filePath)
178
- });
179
- };
180
- const plugin = {
181
- name: "ecopages-plugin-bridge",
182
- buildStart: async () => {
183
- for (const ecoPlugin of plugins) {
184
- const bridge = {
185
- onResolve: (options, callback) => {
186
- registerResolve(buildIdFilter(options.filter, options.namespace), callback);
187
- },
188
- onLoad: (options, callback) => {
189
- registerLoad(buildIdFilter(options.filter, options.namespace), callback);
190
- },
191
- module: (specifier, callback) => {
192
- const namespace = `ecopages-module-${moduleCounter.value}`;
193
- moduleCounter.value += 1;
194
- const filter = new RegExp(`^${escapeRegExp(specifier)}$`);
195
- registerResolve(filter, async () => ({
196
- path: joinNamespace(namespace, specifier)
197
- }));
198
- registerLoad(buildIdFilter(/.*/, namespace), async () => callback());
199
- }
200
- };
201
- await ecoPlugin.setup(bridge);
202
- }
203
- },
204
- resolveId: resolveIdHandler,
205
- load: loadHandler
206
- };
207
- return [plugin];
208
- }
209
- export {
210
- createRolldownPluginBridge
211
- };
@@ -1,58 +0,0 @@
1
- import path from "node:path";
2
- import { fileSystem } from "@ecopages/file-system";
3
- import { applySourceTransforms, normalizeTransformId } from "../plugins/source-transform.js";
4
- const TRANSFORMABLE_SOURCE_EXTENSIONS = /* @__PURE__ */ new Set([".ts", ".tsx", ".js", ".jsx", ".mdx"]);
5
- function shouldApplySourceTransforms(namespace, sourcePath) {
6
- if (namespace !== void 0) {
7
- return false;
8
- }
9
- const normalizedPath = normalizeTransformId(sourcePath);
10
- return TRANSFORMABLE_SOURCE_EXTENSIONS.has(path.extname(normalizedPath).toLowerCase());
11
- }
12
- function shouldTransformLoadedModule(moduleType) {
13
- return moduleType !== "css" && moduleType !== "asset";
14
- }
15
- function applyTransformsToLoadedSource(sourceTransforms, id, sourcePath, code) {
16
- if (sourceTransforms.length === 0) {
17
- return code;
18
- }
19
- return applySourceTransforms(sourceTransforms, code, sourcePath);
20
- }
21
- async function finalizeLoadResultWithSourceTransforms(options) {
22
- const { id, namespace, sourcePath, loadResult, sourceTransforms, contextRoot, inferModuleTypeFromPath } = options;
23
- if (!shouldApplySourceTransforms(namespace, sourcePath)) {
24
- return loadResult;
25
- }
26
- if (typeof loadResult === "object" && loadResult !== null && "code" in loadResult && typeof loadResult.code === "string") {
27
- if (!shouldTransformLoadedModule(loadResult.moduleType)) {
28
- return loadResult;
29
- }
30
- const transformedCode2 = applyTransformsToLoadedSource(sourceTransforms, id, sourcePath, loadResult.code);
31
- if (transformedCode2 === loadResult.code) {
32
- return loadResult;
33
- }
34
- return {
35
- code: transformedCode2,
36
- moduleType: loadResult.moduleType
37
- };
38
- }
39
- if (loadResult !== void 0 || sourceTransforms.length === 0) {
40
- return loadResult;
41
- }
42
- const normalizedPath = path.isAbsolute(sourcePath) ? sourcePath : path.resolve(contextRoot, sourcePath);
43
- if (!fileSystem.exists(normalizedPath)) {
44
- return loadResult;
45
- }
46
- const originalCode = fileSystem.readFileSync(normalizedPath);
47
- const transformedCode = applyTransformsToLoadedSource(sourceTransforms, id, sourcePath, originalCode);
48
- if (transformedCode === originalCode) {
49
- return loadResult;
50
- }
51
- return {
52
- code: transformedCode,
53
- moduleType: inferModuleTypeFromPath(normalizedPath)
54
- };
55
- }
56
- export {
57
- finalizeLoadResultWithSourceTransforms
58
- };
@@ -1,15 +0,0 @@
1
- import type { EcoPagesAppConfig } from '../types/internal-types.js';
2
- import { type BuildExecutor } from './build-adapter.js';
3
- /**
4
- * Installs the app-owned runtime build executors for one app instance.
5
- *
6
- * @remarks
7
- * Route-module and HMR browser builds run through a {@link ParallelBuildExecutor}
8
- * so independent compiles can overlap. Server-entry bundling continues to call
9
- * the raw adapter directly and stays single-flight by design.
10
- *
11
- * Idempotent across calls: re-invoking replaces the existing executors on
12
- * `appConfig.runtime` with fresh wrappers.
13
- */
14
- export declare function installAppRuntimeBuildExecutor(appConfig: EcoPagesAppConfig): BuildExecutor;
15
- export declare function getInstalledServerEntryBuildExecutor(appConfig: EcoPagesAppConfig): BuildExecutor;
@@ -1,43 +0,0 @@
1
- import { availableParallelism } from "node:os";
2
- import {
3
- getAppBuildAdapter,
4
- getAppServerBuildPlugins,
5
- setAppBuildExecutor,
6
- setAppHmrBuildExecutor,
7
- setAppRouteModuleBuildExecutor,
8
- withBuildExecutorPlugins
9
- } from "./build-adapter.js";
10
- import { ParallelBuildExecutor } from "./parallel-build-executor.js";
11
- import { SerializedBuildExecutor } from "./serialized-build-executor.js";
12
- function createPluginWrappedExecutor(appConfig) {
13
- return withBuildExecutorPlugins(getAppBuildAdapter(appConfig), () => getAppServerBuildPlugins(appConfig));
14
- }
15
- function resolveParallelismLimit() {
16
- return Math.max(1, availableParallelism() - 1);
17
- }
18
- function installAppRuntimeBuildExecutor(appConfig) {
19
- const pluginWrappedExecutor = createPluginWrappedExecutor(appConfig);
20
- const parallelismLimit = resolveParallelismLimit();
21
- const routeModuleBuildExecutor = new ParallelBuildExecutor(pluginWrappedExecutor, parallelismLimit);
22
- const hmrBuildExecutor = new ParallelBuildExecutor(pluginWrappedExecutor, Math.min(3, parallelismLimit));
23
- setAppRouteModuleBuildExecutor(appConfig, routeModuleBuildExecutor);
24
- setAppHmrBuildExecutor(appConfig, hmrBuildExecutor);
25
- setAppBuildExecutor(appConfig, routeModuleBuildExecutor);
26
- return routeModuleBuildExecutor;
27
- }
28
- function getInstalledServerEntryBuildExecutor(appConfig) {
29
- const existing = appConfig.runtime?.serverEntryBuildExecutor;
30
- if (existing) {
31
- return existing;
32
- }
33
- const serverEntryBuildExecutor = new SerializedBuildExecutor(createPluginWrappedExecutor(appConfig));
34
- appConfig.runtime = {
35
- ...appConfig.runtime ?? {},
36
- serverEntryBuildExecutor
37
- };
38
- return serverEntryBuildExecutor;
39
- }
40
- export {
41
- getInstalledServerEntryBuildExecutor,
42
- installAppRuntimeBuildExecutor
43
- };
@@ -1,203 +0,0 @@
1
- import { createRequire } from "node:module";
2
- import { readFileSync } from "node:fs";
3
- import path from "node:path";
4
- import { pathToFileURL } from "node:url";
5
- const corePackageRequire = createRequire(new URL("../../package.json", import.meta.url));
6
- const appDeclaredPackageCache = /* @__PURE__ */ new Map();
7
- const appWorkspacePackageCache = /* @__PURE__ */ new Map();
8
- const CORE_RUNTIME_BARE_SPECIFIER_PACKAGES = /* @__PURE__ */ new Set(["ws"]);
9
- function tryResolveRuntimeImport(specifier, resolver) {
10
- try {
11
- return resolver.resolve(specifier);
12
- } catch {
13
- return void 0;
14
- }
15
- }
16
- function isBareRuntimeImport(specifier) {
17
- return !specifier.startsWith(".") && !path.isAbsolute(specifier) && !specifier.startsWith("/") && !specifier.startsWith("node:") && !specifier.startsWith("@/") && !specifier.startsWith("~/") && !specifier.startsWith("#") && !specifier.includes(":");
18
- }
19
- function extractPackageNameFromFileUrl(specifier) {
20
- if (!specifier.startsWith("file://")) {
21
- return void 0;
22
- }
23
- const lastNodeModulesIndex = specifier.lastIndexOf("/node_modules/");
24
- if (lastNodeModulesIndex === -1) {
25
- return void 0;
26
- }
27
- const afterNodeModules = specifier.slice(lastNodeModulesIndex + "/node_modules/".length);
28
- const parts = afterNodeModules.split("/");
29
- if (parts.length === 0) {
30
- return void 0;
31
- }
32
- if (parts[0]?.startsWith("@") && parts.length > 1) {
33
- return `${parts[0]}/${parts[1]}`;
34
- }
35
- return parts[0];
36
- }
37
- function getPackageNameFromSpecifier(specifier) {
38
- if (specifier.startsWith("@")) {
39
- return specifier.split("/").slice(0, 2).join("/");
40
- }
41
- return specifier.split("/")[0] ?? specifier;
42
- }
43
- function getDeclaredAppPackages(rootDir) {
44
- const cacheKey = path.resolve(rootDir);
45
- const cached = appDeclaredPackageCache.get(cacheKey);
46
- if (cached) {
47
- return cached;
48
- }
49
- const packageJsonPath = path.resolve(rootDir, "package.json");
50
- const declaredPackages = /* @__PURE__ */ new Set();
51
- try {
52
- const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
53
- for (const field of ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"]) {
54
- const entries = packageJson[field];
55
- if (!entries || typeof entries !== "object") {
56
- continue;
57
- }
58
- for (const packageName of Object.keys(entries)) {
59
- declaredPackages.add(packageName);
60
- }
61
- }
62
- } catch {
63
- appDeclaredPackageCache.set(cacheKey, declaredPackages);
64
- return declaredPackages;
65
- }
66
- appDeclaredPackageCache.set(cacheKey, declaredPackages);
67
- return declaredPackages;
68
- }
69
- function getWorkspacePackages(rootDir) {
70
- const cacheKey = path.resolve(rootDir);
71
- const cached = appWorkspacePackageCache.get(cacheKey);
72
- if (cached) {
73
- return cached;
74
- }
75
- const packageJsonPath = path.resolve(rootDir, "package.json");
76
- const workspacePackages = /* @__PURE__ */ new Set();
77
- try {
78
- const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
79
- for (const field of ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"]) {
80
- const entries = packageJson[field];
81
- if (!entries || typeof entries !== "object") {
82
- continue;
83
- }
84
- for (const [packageName, version] of Object.entries(entries)) {
85
- if (typeof version === "string" && version.startsWith("workspace:")) {
86
- workspacePackages.add(packageName);
87
- }
88
- }
89
- }
90
- } catch {
91
- appWorkspacePackageCache.set(cacheKey, workspacePackages);
92
- return workspacePackages;
93
- }
94
- appWorkspacePackageCache.set(cacheKey, workspacePackages);
95
- return workspacePackages;
96
- }
97
- function isWorkspacePackageImport(specifier, rootDir) {
98
- return getWorkspacePackages(rootDir).has(getPackageNameFromSpecifier(specifier));
99
- }
100
- function isDeclaredAppPackageImport(specifier, rootDir) {
101
- return getDeclaredAppPackages(rootDir).has(getPackageNameFromSpecifier(specifier));
102
- }
103
- function isDeclaredInResolutionChain(specifier, rootDir) {
104
- const packageName = getPackageNameFromSpecifier(specifier);
105
- if (CORE_RUNTIME_BARE_SPECIFIER_PACKAGES.has(packageName)) {
106
- return true;
107
- }
108
- return isDeclaredAppPackageImport(specifier, rootDir);
109
- }
110
- function rewriteRuntimeImportSpecifier(specifier, quote, rootDir) {
111
- if (!isBareRuntimeImport(specifier)) {
112
- return void 0;
113
- }
114
- if (isDeclaredInResolutionChain(specifier, rootDir)) {
115
- return void 0;
116
- }
117
- const resolvedPath = tryResolveRuntimeImport(specifier, corePackageRequire);
118
- if (!resolvedPath || !/\.(?:[cm]?[jt]s|tsx|jsx)$/u.test(resolvedPath)) {
119
- return void 0;
120
- }
121
- return `${quote}${pathToFileURL(resolvedPath).href}${quote}`;
122
- }
123
- function rewriteRuntimeBuildOutputImports(code, rootDir) {
124
- const rewriteSpecifier = (prefix, quote, specifier) => {
125
- const rewrittenSpecifier = rewriteRuntimeImportSpecifier(specifier, quote, rootDir);
126
- return `${prefix}${rewrittenSpecifier ?? `${quote}${specifier}${quote}`}`;
127
- };
128
- const rewriteFileUrl = (prefix, quote, specifier) => {
129
- const packageName = extractPackageNameFromFileUrl(specifier);
130
- if (!packageName) {
131
- return `${prefix}${quote}${specifier}${quote}`;
132
- }
133
- if (!isDeclaredInResolutionChain(packageName, rootDir)) {
134
- return `${prefix}${quote}${specifier}${quote}`;
135
- }
136
- const lastNodeModulesIndex = specifier.lastIndexOf("/node_modules/");
137
- if (lastNodeModulesIndex === -1) {
138
- return `${prefix}${quote}${specifier}${quote}`;
139
- }
140
- const afterNodeModules = specifier.slice(lastNodeModulesIndex + "/node_modules/".length);
141
- const afterPackage = afterNodeModules.slice(packageName.length);
142
- const bareSpecifier = packageName + afterPackage;
143
- return `${prefix}${quote}${bareSpecifier}${quote}`;
144
- };
145
- const withResolvedPackages = code.replace(
146
- /(\bfrom\s+)(['"])([^'"\\]+)\2/g,
147
- (_match, prefix, quote, specifier) => rewriteSpecifier(prefix, quote, specifier)
148
- ).replace(
149
- /(\bimport\s+)(['"])([^'"\\]+)\2/g,
150
- (_match, prefix, quote, specifier) => rewriteSpecifier(prefix, quote, specifier)
151
- ).replace(
152
- /(\bimport\s*\(\s*)(['"])([^'"\\]+)\2/g,
153
- (_match, prefix, quote, specifier) => rewriteSpecifier(prefix, quote, specifier)
154
- );
155
- const withBareSpecifiers = withResolvedPackages.replace(
156
- /(\bfrom\s+)(['"])(file:\/\/[^'"\\]+)\2/g,
157
- (_match, prefix, quote, specifier) => rewriteFileUrl(prefix, quote, specifier)
158
- ).replace(
159
- /(\bimport\s+)(['"])(file:\/\/[^'"\\]+)\2/g,
160
- (_match, prefix, quote, specifier) => rewriteFileUrl(prefix, quote, specifier)
161
- ).replace(
162
- /(\bimport\s*\(\s*)(['"])(file:\/\/[^'"\\]+)\2/g,
163
- (_match, prefix, quote, specifier) => rewriteFileUrl(prefix, quote, specifier)
164
- );
165
- return withBareSpecifiers.replace(
166
- /(['"])(@oxc-project\/runtime\/(?:helpers(?:\/esm)?\/[^'"\\]+))\1/g,
167
- (match, quote, specifier) => {
168
- const resolvedPath = tryResolveRuntimeImport(specifier, corePackageRequire);
169
- return resolvedPath ? `${quote}${pathToFileURL(resolvedPath).href}${quote}` : match;
170
- }
171
- );
172
- }
173
- function normalizeNodeRuntimeBuildOutputFile(filePath, rootDir) {
174
- if (process.env.ECOPAGES_LOGGER_DEBUG === "true") {
175
- console.log(`[normalizeNodeRuntimeBuildOutputFile] Checking ${filePath}`);
176
- }
177
- if (!/\.(?:[cm]?js)$/u.test(filePath)) {
178
- return;
179
- }
180
- const fileSystem = corePackageRequire("node:fs");
181
- if (!fileSystem.existsSync(filePath)) {
182
- return;
183
- }
184
- const code = fileSystem.readFileSync(filePath, "utf-8");
185
- const rewritten = rewriteRuntimeBuildOutputImports(code, rootDir);
186
- if (rewritten !== code) {
187
- if (process.env.ECOPAGES_LOGGER_DEBUG === "true") {
188
- console.log(`[normalizeNodeRuntimeBuildOutputFile] Rewriting ${filePath}`);
189
- }
190
- fileSystem.writeFileSync(filePath, rewritten);
191
- }
192
- }
193
- function normalizeNodeRuntimeBuildOutputs(outputPaths, rootDir) {
194
- for (const outputPath of outputPaths) {
195
- normalizeNodeRuntimeBuildOutputFile(outputPath, rootDir);
196
- }
197
- }
198
- export {
199
- isDeclaredAppPackageImport,
200
- isWorkspacePackageImport,
201
- normalizeNodeRuntimeBuildOutputFile,
202
- normalizeNodeRuntimeBuildOutputs
203
- };
@@ -1,63 +0,0 @@
1
- class SerializedBuildExecutor {
2
- inner;
3
- tail = Promise.resolve();
4
- constructor(inner) {
5
- this.inner = inner;
6
- }
7
- /**
8
- * Run a build through the serialized queue. The returned promise
9
- * resolves with the inner executor's `BuildResult`. A rejected
10
- * inner build does not block the queue — the next caller can
11
- * proceed.
12
- */
13
- build(options) {
14
- return this.run(() => this.inner.build(options));
15
- }
16
- /**
17
- * Run an arbitrary async operation through the serialized queue.
18
- *
19
- * Use this when the work is not a `build()` call against a wrapped
20
- * executor (e.g. when composing with a coordinator that needs to
21
- * inject recovery around the inner call). The returned promise
22
- * resolves with the operation's result. A rejected operation does
23
- * not block the queue.
24
- */
25
- run(operation) {
26
- const next = this.tail.catch(() => void 0).then(() => operation());
27
- this.tail = next.catch(() => void 0);
28
- return next;
29
- }
30
- /**
31
- * Returns the wrapped executor. Tests use this to assert the
32
- * delegation chain.
33
- */
34
- unwrap() {
35
- return this.inner;
36
- }
37
- /**
38
- * Reset the queue to an empty state. Tests use this to recover
39
- * from a poisoned tail.
40
- */
41
- resetForTests() {
42
- this.tail = Promise.resolve();
43
- }
44
- /**
45
- * Overrides the internal queue tail for fault-recovery tests. The
46
- * supplied promise is awaited before the next enqueued operation
47
- * starts.
48
- */
49
- setBuildQueueForTests(queue) {
50
- this.tail = queue;
51
- }
52
- /**
53
- * Returns the current internal queue tail for fault-recovery
54
- * tests. Tests await this to assert that recovery has cleared a
55
- * wedged queue.
56
- */
57
- getBuildQueueForTests() {
58
- return this.tail;
59
- }
60
- }
61
- export {
62
- SerializedBuildExecutor
63
- };