@ecopages/core 0.2.0-beta.9 → 0.2.0-rc.0

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 +42 -13
  2. package/package.json +360 -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 +4 -6
  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 +90 -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 +463 -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 +253 -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 +2 -1
  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 +24 -6
  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 +66 -12
  313. package/src/plugins/processor.js +168 -137
  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 +20 -0
  324. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +37 -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 +37 -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 +52 -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,310 +0,0 @@
1
- import { createRequire } from "node:module";
2
- import { readFileSync } from "node:fs";
3
- import path from "node:path";
4
- import { collectBrowserRuntimeImportRewriteMap, rewriteBrowserRuntimeImports } from "./browser-runtime-plugin.js";
5
- import { createServerSideCssShimPlugin } from "./server-side-css-shim-plugin.js";
6
- import { createRolldownPluginBridge } from "./rolldown-plugin-bridge.js";
7
- import {
8
- isDeclaredAppPackageImport,
9
- isWorkspacePackageImport,
10
- normalizeNodeRuntimeBuildOutputs
11
- } from "./runtime-build-output-normalizer.js";
12
- const corePackageRequire = createRequire(new URL("../../package.json", import.meta.url));
13
- let corePackageNames;
14
- function getCorePackageNames() {
15
- if (corePackageNames) {
16
- return corePackageNames;
17
- }
18
- const packageJsonPath = new URL("../../package.json", import.meta.url);
19
- corePackageNames = /* @__PURE__ */ new Set();
20
- try {
21
- const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
22
- for (const field of ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"]) {
23
- const entries = packageJson[field];
24
- if (!entries || typeof entries !== "object") {
25
- continue;
26
- }
27
- for (const name of Object.keys(entries)) {
28
- corePackageNames.add(name);
29
- }
30
- }
31
- } catch {
32
- }
33
- return corePackageNames;
34
- }
35
- function isCoreDeclaredPackageImport(specifier) {
36
- const name = specifier.startsWith("@") ? specifier.split("/").slice(0, 2).join("/") : specifier.split("/")[0] ?? specifier;
37
- return getCorePackageNames().has(name);
38
- }
39
- function transpileProfileToOptions(profile) {
40
- switch (profile) {
41
- case "browser-script":
42
- case "hmr-runtime":
43
- case "hmr-entrypoint":
44
- return {
45
- target: "browser",
46
- format: "esm",
47
- sourcemap: "none"
48
- };
49
- }
50
- }
51
- function isPackageImport(id) {
52
- return !id.startsWith(".") && !path.isAbsolute(id) && !id.startsWith("/") && !id.startsWith("node:") && !id.startsWith("@/") && !id.startsWith("~/") && !id.startsWith("#") && !id.includes(":");
53
- }
54
- function tryResolveModule(id, resolver) {
55
- try {
56
- return resolver.resolve(id);
57
- } catch {
58
- return void 0;
59
- }
60
- }
61
- function getAppRootRequire(cache, contextRoot) {
62
- const cacheKey = path.resolve(contextRoot);
63
- let req = cache.get(cacheKey);
64
- if (!req) {
65
- req = createRequire(path.join(cacheKey, "package.json"));
66
- cache.set(cacheKey, req);
67
- }
68
- return req;
69
- }
70
- function shouldBundlePackageImport(id, contextRoot, appRootRequireCache) {
71
- if (isWorkspacePackageImport(id, contextRoot)) {
72
- return true;
73
- }
74
- if (isDeclaredAppPackageImport(id, contextRoot)) {
75
- const appRootRequire = getAppRootRequire(appRootRequireCache, contextRoot);
76
- const appResolvedPath = tryResolveModule(id, appRootRequire);
77
- return Boolean(appResolvedPath && /\.(?:[cm]?ts|tsx|jsx)$/u.test(appResolvedPath));
78
- }
79
- if (isCoreDeclaredPackageImport(id)) {
80
- const coreResolvedPath = tryResolveModule(id, corePackageRequire);
81
- if (coreResolvedPath && !/\.(?:[cm]?ts|tsx|jsx)$/u.test(coreResolvedPath)) {
82
- return false;
83
- }
84
- }
85
- return true;
86
- }
87
- function createExternalMatcher(options, appRootRequireCache) {
88
- const explicitExternals = new Set(options.external ?? []);
89
- const externalPackages = options.externalPackages === true;
90
- const contextRoot = options.root ? path.resolve(options.root) : process.cwd();
91
- return (id) => {
92
- if (explicitExternals.has(id)) {
93
- return true;
94
- }
95
- if (!externalPackages || !isPackageImport(id)) {
96
- return false;
97
- }
98
- return !shouldBundlePackageImport(id, contextRoot, appRootRequireCache);
99
- };
100
- }
101
- function mapRolldownFormat(value) {
102
- switch (value) {
103
- case "cjs":
104
- return "cjs";
105
- case "iife":
106
- return "iife";
107
- default:
108
- return "esm";
109
- }
110
- }
111
- function mapRolldownPlatform(value) {
112
- if (value === "browser") return "browser";
113
- if (value === "node") return "node";
114
- if (value && /^(?:es\d+|chrome\d+|edge\d+|firefox\d+|safari\d+|hermes|deno\d+|ios\d+)$/.test(value)) {
115
- return "node";
116
- }
117
- return "neutral";
118
- }
119
- function mapRolldownSourcemap(value) {
120
- switch (value) {
121
- case "none":
122
- return false;
123
- case "inline":
124
- return "inline";
125
- case "external":
126
- case "linked":
127
- return "hidden";
128
- default:
129
- return true;
130
- }
131
- }
132
- function mapRolldownJsx(jsx) {
133
- const { factory, fragment, ...rest } = jsx;
134
- const out = { ...rest };
135
- if (factory !== void 0) {
136
- out.pragma = factory;
137
- }
138
- if (fragment !== void 0) {
139
- out.pragmaFrag = fragment;
140
- }
141
- return out;
142
- }
143
- function toEntryFileNamesPattern(value) {
144
- if (!value) {
145
- return void 0;
146
- }
147
- const literal = !/\[[^\]]+\]/u.test(value);
148
- const stripped = value.replaceAll(/\.?\[ext\]/g, "");
149
- if (stripped.length === 0) {
150
- return void 0;
151
- }
152
- return { pattern: stripped, literal };
153
- }
154
- function getJavaScriptOutExtension(options, literal) {
155
- if (literal) {
156
- return void 0;
157
- }
158
- if (options.target === "browser") {
159
- return ".js";
160
- }
161
- if (options.format === "cjs") {
162
- return ".cjs";
163
- }
164
- return ".mjs";
165
- }
166
- function normalizeOutputPath(outputPath, outdir) {
167
- return path.isAbsolute(outputPath) ? path.normalize(outputPath) : path.normalize(path.join(outdir, outputPath));
168
- }
169
- function normalizeModulePath(modulePath, contextRoot) {
170
- return path.isAbsolute(modulePath) ? path.normalize(modulePath) : path.normalize(path.resolve(contextRoot, modulePath));
171
- }
172
- function extractDependencyGraph(chunks, contextRoot) {
173
- const entrypoints = {};
174
- for (const chunk of chunks) {
175
- if (!chunk.facadeModuleId) {
176
- continue;
177
- }
178
- const entrypointPath = normalizeModulePath(chunk.facadeModuleId, contextRoot);
179
- entrypoints[entrypointPath] = Array.from(
180
- /* @__PURE__ */ new Set([entrypointPath, ...chunk.moduleIds.map((id) => normalizeModulePath(id, contextRoot))])
181
- );
182
- }
183
- return { entrypoints };
184
- }
185
- function toBuildLogs(error) {
186
- if (error instanceof Error) {
187
- return [{ message: error.message }];
188
- }
189
- return [{ message: "Unknown build error" }];
190
- }
191
- function resolveRolldownOptions(options, contextRoot, outdir, appRootRequireCache) {
192
- const external = createExternalMatcher(options, appRootRequireCache);
193
- const transformOptions = {};
194
- if (options.define) {
195
- transformOptions.define = options.define;
196
- }
197
- if (options.jsx) {
198
- transformOptions.jsx = mapRolldownJsx(options.jsx);
199
- }
200
- if (options.target && /^(?:es|chrome|edge|firefox|safari|hermes|deno|ios)/.test(options.target)) {
201
- transformOptions.target = options.target;
202
- }
203
- const bundlePlugins = options.plugins ?? [];
204
- const sourceTransforms = options.target === "browser" ? options.sourceTransforms ?? [] : [];
205
- const appPlugins = createRolldownPluginBridge(bundlePlugins, contextRoot, sourceTransforms);
206
- const allPlugins = [...options.target !== "browser" ? [createServerSideCssShimPlugin()] : [], ...appPlugins];
207
- const inputOptions = {
208
- input: options.entrypoints,
209
- cwd: contextRoot,
210
- external,
211
- platform: mapRolldownPlatform(options.target),
212
- transform: Object.keys(transformOptions).length > 0 ? transformOptions : void 0,
213
- resolve: options.conditions ? { conditionNames: options.conditions } : void 0,
214
- treeshake: typeof options.treeshaking === "boolean" ? options.treeshaking : true,
215
- ...process.env.ECOPAGES_PROFILE_BUILD === "1" ? {} : {
216
- checks: {
217
- pluginTimings: false
218
- }
219
- },
220
- experimental: {
221
- nativeMagicString: true
222
- },
223
- plugins: allPlugins
224
- };
225
- const entryFileNames = toEntryFileNamesPattern(options.naming);
226
- const jsExtension = getJavaScriptOutExtension(options, entryFileNames?.literal ?? false);
227
- const finalEntryFileNames = entryFileNames ? jsExtension ? `${entryFileNames.pattern}${jsExtension}` : entryFileNames.pattern : jsExtension ? `[name]${jsExtension}` : "[name]";
228
- const outputOptions = {
229
- dir: outdir,
230
- format: mapRolldownFormat(options.format),
231
- minify: !!options.minify,
232
- entryFileNames: finalEntryFileNames,
233
- chunkFileNames: "[name]-[hash].js",
234
- assetFileNames: "[name]-[hash][extname]",
235
- sourcemap: mapRolldownSourcemap(options.sourcemap)
236
- };
237
- return { inputOptions, outputOptions };
238
- }
239
- function rewriteBrowserRuntimeImportsInOutputs(result, contextRoot, plugins) {
240
- if (!result.success || result.outputs.length === 0) {
241
- return result;
242
- }
243
- const specifierMap = collectBrowserRuntimeImportRewriteMap(plugins);
244
- if (specifierMap.size === 0) {
245
- return result;
246
- }
247
- const moduleRequireFromContext = createRequire(path.join(contextRoot, "package.json"));
248
- const fs = moduleRequireFromContext("node:fs");
249
- const cacheFingerprint = `${Array.from(specifierMap.entries()).sort().join("|")}`;
250
- for (const output of result.outputs) {
251
- if (!/\.(?:[cm]?js)$/u.test(output.path)) {
252
- continue;
253
- }
254
- const code = fs.readFileSync(output.path, "utf-8");
255
- const contentKey = `${cacheFingerprint}::${output.path}::${djb2(code)}`;
256
- if (rewriteCache.has(contentKey)) {
257
- continue;
258
- }
259
- const rewritten = rewriteBrowserRuntimeImports(code, specifierMap, output.path);
260
- if (rewritten !== code) {
261
- fs.writeFileSync(output.path, rewritten);
262
- }
263
- rewriteCache.add(contentKey);
264
- }
265
- return result;
266
- }
267
- const rewriteCache = /* @__PURE__ */ new Set();
268
- function djb2(input) {
269
- let hash = 5381;
270
- for (let i = 0; i < input.length; i++) {
271
- hash = (hash << 5) + hash + input.charCodeAt(i) | 0;
272
- }
273
- return hash.toString(36);
274
- }
275
- function clearRewriteCacheForTests() {
276
- rewriteCache.clear();
277
- }
278
- function rewriteNodeRuntimeImportsInOutputs(result, contextRoot) {
279
- if (!result.success || result.outputs.length === 0) {
280
- return result;
281
- }
282
- normalizeNodeRuntimeBuildOutputs(
283
- result.outputs.map((output) => output.path),
284
- contextRoot
285
- );
286
- return result;
287
- }
288
- function buildResultFromRolldownOutput(output, outdir, contextRoot) {
289
- const outputs = output.output.map((entry) => ({
290
- path: normalizeOutputPath(entry.fileName, outdir)
291
- }));
292
- const entryChunks = output.output.filter((entry) => entry.type === "chunk" && entry.isEntry);
293
- const dependencyGraph = entryChunks.length > 0 ? extractDependencyGraph(entryChunks, contextRoot) : void 0;
294
- return {
295
- success: true,
296
- logs: [],
297
- outputs,
298
- dependencyGraph
299
- };
300
- }
301
- export {
302
- buildResultFromRolldownOutput,
303
- clearRewriteCacheForTests,
304
- extractDependencyGraph,
305
- resolveRolldownOptions,
306
- rewriteBrowserRuntimeImportsInOutputs,
307
- rewriteNodeRuntimeImportsInOutputs,
308
- toBuildLogs,
309
- transpileProfileToOptions
310
- };
@@ -1,67 +0,0 @@
1
- import { createRequire } from "node:module";
2
- import path from "node:path";
3
- import { rolldown } from "rolldown";
4
- import {
5
- buildResultFromRolldownOutput,
6
- resolveRolldownOptions,
7
- rewriteBrowserRuntimeImportsInOutputs,
8
- rewriteNodeRuntimeImportsInOutputs,
9
- toBuildLogs,
10
- transpileProfileToOptions
11
- } from "./rolldown-adapter-helpers.js";
12
- import { recordRolldownBuildInvocation } from "./rolldown-build-invocation-metrics.js";
13
- const moduleRequire = createRequire(import.meta.url);
14
- class RolldownBuildAdapter {
15
- ownership = "rolldown";
16
- /** Per-adapter require cache, keyed on resolved context root. */
17
- appRootRequireCache = /* @__PURE__ */ new Map();
18
- /**
19
- * Issues one build. Creates a fresh `rolldown()` bundler per call,
20
- * so no module-graph reuse. For repeated rebuilds on the same
21
- * entrypoints, use {@link RolldownDevBuildAdapter}.
22
- */
23
- async buildOrThrow(options) {
24
- recordRolldownBuildInvocation("rolldown");
25
- const contextRoot = options.root ? path.resolve(options.root) : process.cwd();
26
- const outdir = path.resolve(options.outdir ?? "dist/assets");
27
- const plugins = options.plugins ?? [];
28
- const { inputOptions, outputOptions } = resolveRolldownOptions(
29
- options,
30
- contextRoot,
31
- outdir,
32
- this.appRootRequireCache
33
- );
34
- const bundle = await rolldown(inputOptions);
35
- const output = await bundle.write(outputOptions);
36
- await bundle.close();
37
- const baseResult = buildResultFromRolldownOutput(output, outdir, contextRoot);
38
- return rewriteNodeRuntimeImportsInOutputs(
39
- rewriteBrowserRuntimeImportsInOutputs(baseResult, contextRoot, plugins),
40
- contextRoot
41
- );
42
- }
43
- async build(options) {
44
- try {
45
- return await this.buildOrThrow(options);
46
- } catch (error) {
47
- return {
48
- success: false,
49
- logs: toBuildLogs(error),
50
- outputs: []
51
- };
52
- }
53
- }
54
- resolve(importPath, rootDir) {
55
- return moduleRequire.resolve(importPath, { paths: [rootDir] });
56
- }
57
- getTranspileOptions(profile) {
58
- return transpileProfileToOptions(profile);
59
- }
60
- }
61
- function createRolldownBuildAdapter() {
62
- return new RolldownBuildAdapter();
63
- }
64
- export {
65
- RolldownBuildAdapter,
66
- createRolldownBuildAdapter
67
- };
@@ -1,43 +0,0 @@
1
- const invocationCounts = /* @__PURE__ */ new Map();
2
- let pageModuleBuildInvocations = 0;
3
- function isRolldownBuildMetricsEnabled() {
4
- return process.env.ECOPAGES_ROLLDOWN_BUILD_METRICS === "1" || process.env.ECOPAGES_LOGGER_DEBUG === "true";
5
- }
6
- function recordRolldownBuildInvocation(adapter = "rolldown") {
7
- if (!isRolldownBuildMetricsEnabled()) {
8
- return;
9
- }
10
- invocationCounts.set(adapter, (invocationCounts.get(adapter) ?? 0) + 1);
11
- }
12
- function getRolldownBuildInvocationCounts() {
13
- return Object.fromEntries(invocationCounts);
14
- }
15
- function resetRolldownBuildInvocationCounts() {
16
- invocationCounts.clear();
17
- pageModuleBuildInvocations = 0;
18
- }
19
- function recordPageModuleBuildInvocation() {
20
- if (!isRolldownBuildMetricsEnabled()) {
21
- return;
22
- }
23
- pageModuleBuildInvocations += 1;
24
- }
25
- function getPageModuleRolldownBuildInvocations() {
26
- return pageModuleBuildInvocations;
27
- }
28
- function getTotalRolldownBuildInvocations() {
29
- let total = 0;
30
- for (const count of invocationCounts.values()) {
31
- total += count;
32
- }
33
- return total;
34
- }
35
- export {
36
- getPageModuleRolldownBuildInvocations,
37
- getRolldownBuildInvocationCounts,
38
- getTotalRolldownBuildInvocations,
39
- isRolldownBuildMetricsEnabled,
40
- recordPageModuleBuildInvocation,
41
- recordRolldownBuildInvocation,
42
- resetRolldownBuildInvocationCounts
43
- };
@@ -1,82 +0,0 @@
1
- /**
2
- * DevEngine-backed build adapter for cached incremental rebuilds.
3
- *
4
- * @remarks
5
- * Wraps Rolldown's experimental `DevEngine` to provide cached incremental
6
- * rebuilds. Unlike the standard `RolldownBuildAdapter` which creates a new
7
- * bundler for every build, this adapter keeps a `DevEngine` instance alive
8
- * and reuses the internal module graph, resolver cache, and transform cache
9
- * across builds.
10
- *
11
- * The adapter is designed for the HMR rebuild path where the same entrypoints
12
- * are rebuilt repeatedly with small changes. For one-off production builds,
13
- * use `RolldownBuildAdapter` instead.
14
- *
15
- * The first build creates the engine and runs it. Subsequent builds with the
16
- * same plugin/target/format triple reuse the cached engine and call
17
- * `triggerFullBuild()`. The cache key incorporates the context root, plugin
18
- * names, target, and format; when any of those change, the cached engine is
19
- * closed and a new one is created.
20
- *
21
- * Call `close()` to release the cached engine and free resources.
22
- *
23
- * @module
24
- */
25
- import type { BuildAdapter, BuildOptions, BuildResult, BuildTranspileOptions, BuildTranspileProfile } from './build-adapter.js';
26
- /**
27
- * Build adapter backed by Rolldown's DevEngine for cached incremental rebuilds.
28
- */
29
- export declare class RolldownDevBuildAdapter implements BuildAdapter {
30
- /**
31
- * `'rolldown-dev'` (not `'rolldown'`) so {@link getBuildAdapterOwnership}
32
- * round-trips correctly and `createBuildAdapter({ ownership })` can
33
- * re-select this class.
34
- */
35
- readonly ownership: "rolldown-dev";
36
- private cachedEngine;
37
- private engineInstanceCount;
38
- private readonly pendingBuilds;
39
- private readonly appRootRequireCache;
40
- /**
41
- * Stable key over the inputs that affect the engine configuration.
42
- * Output paths and entrypoints must participate — HMR registers many
43
- * distinct script entrypoints with literal naming under the same outdir.
44
- */
45
- private getCacheKey;
46
- /**
47
- * Returns the cached engine, creating a new one when the cache
48
- * key changes. On a cache miss the prior engine is closed and
49
- * {@link engineInstanceCount} is incremented.
50
- */
51
- private getOrCreateEngine;
52
- /**
53
- * Triggers a build on the cached engine and returns the next
54
- * `RolldownOutput` delivered to `onOutput`.
55
- *
56
- * First call after engine creation invokes `engine.run`; subsequent
57
- * calls invoke `engine.triggerFullBuild` and reuse the cached
58
- * module graph, resolver, and transform caches.
59
- *
60
- * If the trigger itself throws, the queued build is removed so
61
- * the next `build()` does not consume a stale slot.
62
- */
63
- private runBuild;
64
- /** Throws on error; see {@link build} for the no-throw variant. */
65
- buildOrThrow(options: BuildOptions): Promise<BuildResult>;
66
- build(options: BuildOptions): Promise<BuildResult>;
67
- resolve(importPath: string, rootDir: string): string;
68
- getTranspileOptions(profile: BuildTranspileProfile): BuildTranspileOptions;
69
- /**
70
- * Closes the cached DevEngine and rejects any in-flight builds
71
- * with `'DevBuildAdapter closed'`.
72
- *
73
- * @remarks
74
- * Not on the {@link BuildAdapter} interface, so it is only
75
- * reachable through the concrete class. The adapter is meant to
76
- * live for the process lifetime; this is for explicit teardown.
77
- */
78
- close(): Promise<void>;
79
- /** Test-only: number of engines created over the adapter's lifetime. */
80
- getEngineInstanceCountForTests(): number;
81
- }
82
- export declare function createRolldownDevBuildAdapter(): RolldownDevBuildAdapter;
@@ -1,182 +0,0 @@
1
- import { createRequire } from "node:module";
2
- import path from "node:path";
3
- import { dev } from "rolldown/experimental";
4
- import {
5
- buildResultFromRolldownOutput,
6
- resolveRolldownOptions,
7
- rewriteBrowserRuntimeImportsInOutputs,
8
- toBuildLogs,
9
- transpileProfileToOptions
10
- } from "./rolldown-adapter-helpers.js";
11
- import { recordRolldownBuildInvocation } from "./rolldown-build-invocation-metrics.js";
12
- const moduleRequire = createRequire(import.meta.url);
13
- function normalizeEntrypointList(entrypoints) {
14
- if (Array.isArray(entrypoints)) {
15
- return entrypoints.map((entrypoint) => path.resolve(entrypoint)).sort();
16
- }
17
- if (entrypoints && typeof entrypoints === "object") {
18
- return Object.values(entrypoints).map((entrypoint) => path.resolve(entrypoint)).sort();
19
- }
20
- return [];
21
- }
22
- class RolldownDevBuildAdapter {
23
- /**
24
- * `'rolldown-dev'` (not `'rolldown'`) so {@link getBuildAdapterOwnership}
25
- * round-trips correctly and `createBuildAdapter({ ownership })` can
26
- * re-select this class.
27
- */
28
- ownership = "rolldown-dev";
29
- cachedEngine;
30
- engineInstanceCount = 0;
31
- pendingBuilds = [];
32
- appRootRequireCache = /* @__PURE__ */ new Map();
33
- /**
34
- * Stable key over the inputs that affect the engine configuration.
35
- * Output paths and entrypoints must participate — HMR registers many
36
- * distinct script entrypoints with literal naming under the same outdir.
37
- */
38
- getCacheKey(options, contextRoot) {
39
- const pluginNames = (options.plugins ?? []).map((plugin) => plugin.name).sort().join(":");
40
- const outdir = path.resolve(options.outdir ?? "dist/assets");
41
- const entrypoints = normalizeEntrypointList(options.entrypoints).join("|");
42
- return [
43
- contextRoot,
44
- pluginNames,
45
- options.target ?? "default",
46
- options.format ?? "esm",
47
- outdir,
48
- options.naming ?? "[name]",
49
- entrypoints
50
- ].join("::");
51
- }
52
- /**
53
- * Returns the cached engine, creating a new one when the cache
54
- * key changes. On a cache miss the prior engine is closed and
55
- * {@link engineInstanceCount} is incremented.
56
- */
57
- async getOrCreateEngine(options, contextRoot) {
58
- const bundlePlugins = options.plugins ?? [];
59
- const cacheKey = this.getCacheKey(options, contextRoot);
60
- if (this.cachedEngine) {
61
- if (this.cachedEngine.cacheKey === cacheKey) {
62
- return this.cachedEngine;
63
- }
64
- await this.cachedEngine.engine.close();
65
- this.cachedEngine = void 0;
66
- }
67
- const outdir = path.resolve(options.outdir ?? "dist/assets");
68
- const { inputOptions, outputOptions } = resolveRolldownOptions(
69
- options,
70
- contextRoot,
71
- outdir,
72
- this.appRootRequireCache
73
- );
74
- const engine = await dev(inputOptions, outputOptions, {
75
- rebuildStrategy: "never",
76
- onOutput: (result) => {
77
- if (result instanceof Error) {
78
- return;
79
- }
80
- const next = this.pendingBuilds.shift();
81
- if (next) {
82
- next.resolve(result);
83
- }
84
- }
85
- });
86
- this.cachedEngine = {
87
- engine,
88
- engineStarted: false,
89
- contextRoot,
90
- bundlePlugins,
91
- cacheKey
92
- };
93
- this.engineInstanceCount += 1;
94
- return this.cachedEngine;
95
- }
96
- /**
97
- * Triggers a build on the cached engine and returns the next
98
- * `RolldownOutput` delivered to `onOutput`.
99
- *
100
- * First call after engine creation invokes `engine.run`; subsequent
101
- * calls invoke `engine.triggerFullBuild` and reuse the cached
102
- * module graph, resolver, and transform caches.
103
- *
104
- * If the trigger itself throws, the queued build is removed so
105
- * the next `build()` does not consume a stale slot.
106
- */
107
- async runBuild(cached) {
108
- const outputPromise = new Promise((resolve, reject) => {
109
- this.pendingBuilds.push({ resolve, reject });
110
- });
111
- try {
112
- if (!cached.engineStarted) {
113
- cached.engineStarted = true;
114
- await cached.engine.run();
115
- } else {
116
- cached.engine.triggerFullBuild();
117
- }
118
- } catch (error) {
119
- this.pendingBuilds.shift();
120
- throw error;
121
- }
122
- return outputPromise;
123
- }
124
- /** Throws on error; see {@link build} for the no-throw variant. */
125
- async buildOrThrow(options) {
126
- recordRolldownBuildInvocation("rolldown-dev");
127
- const contextRoot = options.root ? path.resolve(options.root) : process.cwd();
128
- const outdir = path.resolve(options.outdir ?? "dist/assets");
129
- const plugins = options.plugins ?? [];
130
- const cached = await this.getOrCreateEngine(options, contextRoot);
131
- const output = await this.runBuild(cached);
132
- const baseResult = buildResultFromRolldownOutput(output, outdir, contextRoot);
133
- return rewriteBrowserRuntimeImportsInOutputs(baseResult, contextRoot, plugins);
134
- }
135
- async build(options) {
136
- try {
137
- return await this.buildOrThrow(options);
138
- } catch (error) {
139
- return {
140
- success: false,
141
- logs: toBuildLogs(error),
142
- outputs: []
143
- };
144
- }
145
- }
146
- resolve(importPath, rootDir) {
147
- return moduleRequire.resolve(importPath, { paths: [rootDir] });
148
- }
149
- getTranspileOptions(profile) {
150
- return transpileProfileToOptions(profile);
151
- }
152
- /**
153
- * Closes the cached DevEngine and rejects any in-flight builds
154
- * with `'DevBuildAdapter closed'`.
155
- *
156
- * @remarks
157
- * Not on the {@link BuildAdapter} interface, so it is only
158
- * reachable through the concrete class. The adapter is meant to
159
- * live for the process lifetime; this is for explicit teardown.
160
- */
161
- async close() {
162
- if (this.cachedEngine) {
163
- await this.cachedEngine.engine.close();
164
- this.cachedEngine = void 0;
165
- }
166
- while (this.pendingBuilds.length > 0) {
167
- const pending = this.pendingBuilds.shift();
168
- pending?.reject(new Error("DevBuildAdapter closed"));
169
- }
170
- }
171
- /** Test-only: number of engines created over the adapter's lifetime. */
172
- getEngineInstanceCountForTests() {
173
- return this.engineInstanceCount;
174
- }
175
- }
176
- function createRolldownDevBuildAdapter() {
177
- return new RolldownDevBuildAdapter();
178
- }
179
- export {
180
- RolldownDevBuildAdapter,
181
- createRolldownDevBuildAdapter
182
- };