@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,166 +1,181 @@
1
- import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
2
- import { appLogger } from "../../global/app-logger.js";
3
- import { SharedApplicationAdapter } from "../shared/application-adapter.js";
4
- import { resolveRuntimeBinding, resolveStaticRuntimeMode } from "../shared/runtime-app-bootstrap.js";
5
- import { createBunServerAdapter } from "./server-adapter.js";
6
- import { BunStaticPreviewHost } from "./static-preview-host.js";
7
- import { BunRuntimeHost } from "./runtime-host.js";
8
- class BunEcopagesApp extends SharedApplicationAdapter {
9
- serverAdapter;
10
- server = null;
11
- stopped = false;
12
- runtimeHost;
13
- previewHost;
14
- constructor(options, dependencies) {
15
- super(options);
16
- this.runtimeHost = dependencies.runtimeHost;
17
- this.previewHost = dependencies.previewHost;
18
- }
19
- async fetch(request) {
20
- if (!this.serverAdapter) {
21
- this.serverAdapter = await this.initializeServerAdapter();
1
+ /**
2
+ * This file contains the implementation of the Bun application adapter for EcoPages.
3
+ * It extends the AbstractApplicationAdapter class and provides methods for handling
4
+ * HTTP requests, initializing the server adapter, and starting the Bun application server.
5
+ * The adapter is designed to work with the Bun runtime and provides a way to create
6
+ * EcoPages applications using Bun's features.
7
+ *
8
+ * @module EcopagesApp
9
+ */
10
+ import { appLogger } from '../../global/app-logger.js';
11
+ import { SharedApplicationAdapter } from '../shared/runtime/application-adapter.js';
12
+ import { resolveRuntimeBinding, resolveStaticRuntimeMode } from '../shared/runtime/runtime-app-bootstrap.js';
13
+ import { startupTrace } from '../../diagnostics/startup-trace.js';
14
+ import { createBunServerAdapter } from './server-adapter.js';
15
+ import { BunRuntimeHost } from './runtime-host.js';
16
+ import { hostOwnsDevClient } from '../../dev/dev-client-ownership.js';
17
+ import { resolveAppStartRoutes } from '../../utils/ecopages-route-info.js';
18
+ /**
19
+ * Bun-specific application adapter implementation
20
+ * This class extends the {@link AbstractApplicationAdapter}
21
+ * and provides methods for handling HTTP requests and managing the server.
22
+ */
23
+ export class BunEcopagesApp extends SharedApplicationAdapter {
24
+ serverAdapter;
25
+ server = null;
26
+ stopped = false;
27
+ runtimeHost;
28
+ constructor(options, dependencies) {
29
+ super(options, 'Bun');
30
+ this.runtimeHost = dependencies.runtimeHost;
22
31
  }
23
- await this.serverAdapter.completeInitialization(this.server);
24
- return this.serverAdapter.handleRequest(request);
25
- }
26
- async attachWebSocketUpgrades(httpServer, options) {
27
- if (!this.serverAdapter) {
28
- this.serverAdapter = await this.initializeServerAdapter();
29
- }
30
- this.serverAdapter.attachUserWebSocketUpgrades(httpServer, options);
31
- }
32
- /**
33
- * Complete the initialization of the server adapter by processing dynamic routes
34
- * @param server The Bun server instance
35
- */
36
- async completeInitialization(server) {
37
- if (!this.serverAdapter) {
38
- throw new Error("Server adapter not initialized. Call start() first.");
39
- }
40
- await this.serverAdapter.completeInitialization(server);
41
- }
42
- /**
43
- * Initialize the Bun server adapter
44
- */
45
- async initializeServerAdapter() {
46
- const binding = resolveRuntimeBinding({
47
- cliArgs: this.cliArgs,
48
- serverOptions: this.serverOptions
49
- });
50
- appLogger.debug("initializeServerAdapter", {
51
- dev: this.cliArgs.dev,
52
- cliPort: this.cliArgs.port,
53
- cliHostname: this.cliArgs.hostname,
54
- envPort: process.env.ECOPAGES_PORT,
55
- envHostname: process.env.ECOPAGES_HOSTNAME,
56
- preferredPort: binding.preferredPort,
57
- preferredHostname: binding.preferredHostname,
58
- composedUrl: binding.runtimeOrigin
59
- });
60
- return createBunServerAdapter({
61
- runtimeOrigin: binding.runtimeOrigin,
62
- appConfig: this.appConfig,
63
- apiHandlers: this.apiHandlers,
64
- staticRoutes: this.staticRoutes,
65
- errorHandler: this.errorHandler,
66
- websocketHandlers: this.websocketHandlers.size > 0 ? this.websocketHandlers : void 0,
67
- options: { watch: binding.watch },
68
- serveOptions: binding.serveOptions
69
- });
70
- }
71
- /**
72
- * Start the Bun application server
73
- * @param options Optional settings
74
- * @param options.autoCompleteInitialization Whether to automatically complete initialization with dynamic routes after server start (defaults to true)
75
- */
76
- async start() {
77
- if (this.stopped) {
78
- this.serverAdapter = void 0;
79
- this.stopped = false;
32
+ async fetch(request) {
33
+ if (!this.serverAdapter) {
34
+ this.serverAdapter = await this.initializeServerAdapter();
35
+ }
36
+ await this.serverAdapter.completeInitialization(this.server);
37
+ return this.serverAdapter.handleRequest(request);
80
38
  }
81
- if (!this.serverAdapter) {
82
- this.serverAdapter = await this.initializeServerAdapter();
39
+ async attachWebSocketUpgrades(httpServer, options) {
40
+ if (!this.serverAdapter) {
41
+ this.serverAdapter = await this.initializeServerAdapter();
42
+ }
43
+ this.serverAdapter.attachUserWebSocketUpgrades(httpServer, options);
83
44
  }
84
- const { dev, preview, build, force } = this.cliArgs;
85
- const staticRuntimeMode = resolveStaticRuntimeMode({
86
- appConfig: this.appConfig,
87
- cliArgs: this.cliArgs
88
- });
89
- if (staticRuntimeMode.canBuildWithoutRuntimeServer) {
90
- appLogger.debugTime("Building static pages");
91
- await this.serverAdapter.buildStatic({ preview, force });
92
- appLogger.debugTimeEnd("Building static pages");
93
- if (build) {
94
- process.exit(0);
95
- }
96
- return;
45
+ /**
46
+ * Complete the initialization of the server adapter by processing dynamic routes
47
+ * @param server The Bun server instance
48
+ */
49
+ async completeInitialization(server) {
50
+ if (!this.serverAdapter) {
51
+ throw new Error('Server adapter not initialized. Call start() first.');
52
+ }
53
+ await this.serverAdapter.completeInitialization(server);
97
54
  }
98
- const enableHmr = dev || !preview && !build;
99
- const serverOptions = this.serverAdapter.getServerOptions({ enableHmr });
100
- const configuredHostname = String(serverOptions.hostname ?? DEFAULT_ECOPAGES_HOSTNAME);
101
- const configuredPort = Number(serverOptions.port ?? DEFAULT_ECOPAGES_PORT);
102
- const runtimeServerOptions = serverOptions;
103
- this.server = await this.runtimeHost.start({
104
- serveOptions: runtimeServerOptions,
105
- handleRequest: async () => new Response(null, { status: 500 }),
106
- onError: async () => {
107
- }
108
- });
109
- await this.serverAdapter.completeInitialization(this.server).catch((error) => {
110
- appLogger.error(`Failed to complete initialization: ${error}`);
111
- });
112
- if (!this.server) {
113
- throw new Error("Server failed to start");
55
+ /**
56
+ * Initialize the Bun server adapter
57
+ */
58
+ async initializeServerAdapter() {
59
+ const binding = resolveRuntimeBinding({
60
+ cliArgs: this.cliArgs,
61
+ serverOptions: this.serverOptions,
62
+ });
63
+ return createBunServerAdapter({
64
+ runtimeOrigin: binding.runtimeOrigin,
65
+ appConfig: this.appConfig,
66
+ apiHandlers: this.apiHandlers,
67
+ staticRoutes: this.staticRoutes,
68
+ errorHandler: this.errorHandler,
69
+ websocketHandlers: this.websocketHandlers.size > 0 ? this.websocketHandlers : undefined,
70
+ options: { watch: binding.watch },
71
+ serveOptions: binding.serveOptions,
72
+ hostOwnsDevClient: hostOwnsDevClient(this.runtimeOptions),
73
+ deferRuntimeAssetSetup: resolveStaticRuntimeMode({
74
+ appConfig: this.appConfig,
75
+ cliArgs: this.cliArgs,
76
+ }).canBuildWithoutRuntimeServer,
77
+ allowPortFallback: binding.allowPortFallback,
78
+ });
114
79
  }
115
- appLogger.info(
116
- `Server running at ${this.runtimeHost.getOrigin(this.server, runtimeServerOptions)}`
117
- );
118
- if (build || preview) {
119
- appLogger.debugTime("Building static pages");
120
- await this.serverAdapter.buildStatic({ preview: false, force });
121
- const buildRuntimeServer = this.server;
122
- this.server = null;
123
- await this.runtimeHost.stop(buildRuntimeServer, { force: true });
124
- if (preview) {
125
- const previewPort = await this.previewHost.start({
126
- appConfig: this.appConfig,
127
- hostname: configuredHostname,
128
- port: configuredPort
80
+ /**
81
+ * Start the Bun application server
82
+ * @param options Optional settings
83
+ * @param options.autoCompleteInitialization Whether to automatically complete initialization with dynamic routes after server start (defaults to true)
84
+ */
85
+ async bootServer() {
86
+ if (this.stopped) {
87
+ this.serverAdapter = undefined;
88
+ this.stopped = false;
89
+ }
90
+ if (!this.serverAdapter) {
91
+ this.serverAdapter = await this.initializeServerAdapter();
92
+ }
93
+ const { dev, preview, build, force, serveOnly } = this.cliArgs;
94
+ const staticRuntimeMode = resolveStaticRuntimeMode({
95
+ appConfig: this.appConfig,
96
+ cliArgs: this.cliArgs,
129
97
  });
130
- if (previewPort) {
131
- appLogger.info(`Preview running at http://${configuredHostname}:${previewPort}`);
98
+ if (preview && serveOnly) {
99
+ const previewOrigin = await this.serverAdapter.servePreviewOnly();
100
+ if (previewOrigin) {
101
+ await this.notifyListening(previewOrigin);
102
+ }
103
+ return;
132
104
  }
133
- }
134
- appLogger.debugTimeEnd("Building static pages");
135
- if (build) {
136
- process.exit(0);
137
- }
138
- }
139
- return this.server ?? void 0;
140
- }
141
- async stop(force = true) {
142
- if (this.stopped) {
143
- return;
105
+ if (staticRuntimeMode.canBuildWithoutRuntimeServer) {
106
+ appLogger.debugTime('Building static pages');
107
+ const previewOrigin = await this.serverAdapter.buildStatic({ preview, force });
108
+ appLogger.debugTimeEnd('Building static pages');
109
+ if (preview && previewOrigin) {
110
+ await this.notifyListening(previewOrigin);
111
+ }
112
+ if (build) {
113
+ process.exit(0);
114
+ }
115
+ return;
116
+ }
117
+ const enableHmr = dev || (!preview && !build);
118
+ const serverOptions = this.serverAdapter.getServerOptions({ enableHmr });
119
+ const runtimeServerOptions = serverOptions;
120
+ startupTrace.beginServerListen();
121
+ this.server = await this.runtimeHost.start({
122
+ serveOptions: runtimeServerOptions,
123
+ handleRequest: async () => new Response(null, { status: 500 }),
124
+ onError: async () => { },
125
+ });
126
+ await this.serverAdapter.completeInitialization(this.server).catch((error) => {
127
+ appLogger.error(`Failed to complete initialization: ${error}`);
128
+ });
129
+ if (!this.server) {
130
+ throw new Error('Server failed to start');
131
+ }
132
+ const runtimeOrigin = this.runtimeHost.getOrigin(this.server, runtimeServerOptions);
133
+ let previewOrigin;
134
+ if (build || preview) {
135
+ appLogger.debugTime('Building static pages');
136
+ previewOrigin = await this.serverAdapter.buildStatic({ preview, force });
137
+ const buildRuntimeServer = this.server;
138
+ this.server = null;
139
+ await this.runtimeHost.stop(buildRuntimeServer, { force: true });
140
+ appLogger.debugTimeEnd('Building static pages');
141
+ if (build) {
142
+ process.exit(0);
143
+ }
144
+ }
145
+ else {
146
+ await this.notifyListening(runtimeOrigin);
147
+ }
148
+ if (preview && previewOrigin) {
149
+ await this.notifyListening(previewOrigin);
150
+ }
151
+ return this.server ?? undefined;
144
152
  }
145
- if (this.server) {
146
- const activeServer = this.server;
147
- this.server = null;
148
- await this.runtimeHost.stop(activeServer, { force });
153
+ async stop(force = true) {
154
+ if (this.stopped) {
155
+ return;
156
+ }
157
+ if (this.server) {
158
+ const activeServer = this.server;
159
+ this.server = null;
160
+ await this.runtimeHost.stop(activeServer, { force });
161
+ }
162
+ if (this.serverAdapter) {
163
+ await this.serverAdapter.dispose();
164
+ }
165
+ this.stopped = true;
149
166
  }
150
- await this.previewHost.stop();
151
- if (this.serverAdapter) {
152
- await this.serverAdapter.dispose();
167
+ async resolveAppRoutes() {
168
+ return resolveAppStartRoutes({
169
+ listStaticGenerationRoutes: this.serverAdapter?.listStaticGenerationRoutes,
170
+ runtimeOrigin: this.appConfig.baseUrl,
171
+ });
153
172
  }
154
- this.stopped = true;
155
- }
156
173
  }
157
- async function createApp(options) {
158
- return new BunEcopagesApp(options, {
159
- runtimeHost: new BunRuntimeHost(),
160
- previewHost: new BunStaticPreviewHost()
161
- });
174
+ /**
175
+ * Factory function to create a Bun application
176
+ */
177
+ export async function createApp(options) {
178
+ return new BunEcopagesApp(options, {
179
+ runtimeHost: new BunRuntimeHost(),
180
+ });
162
181
  }
163
- export {
164
- BunEcopagesApp,
165
- createApp
166
- };
@@ -2,12 +2,11 @@ import type { WebSocketHandler } from 'bun';
2
2
  import type { EcoPagesAppConfig } from '../../types/internal-types.js';
3
3
  import type { ClientBridge } from './client-bridge.js';
4
4
  import { InMemoryEntrypointDependencyGraph, type EntrypointDependencyGraph } from '../../services/runtime-state/entrypoint-dependency-graph.service.js';
5
- import { SharedHmrManager } from '../shared/shared-hmr-manager.js';
5
+ import { SharedHmrManager } from '../shared/hmr/shared-hmr-manager.js';
6
6
  type BunSocketHandler = WebSocketHandler<unknown>;
7
7
  export interface HmrManagerParams {
8
8
  appConfig: EcoPagesAppConfig;
9
9
  bridge: ClientBridge;
10
- registrationTimeoutMs?: number;
11
10
  }
12
11
  /**
13
12
  * Bun development HMR manager.
@@ -27,7 +26,7 @@ export declare class HmrManager extends SharedHmrManager {
27
26
  * generation to `SharedHmrManager`. The Bun subclass only supplies the
28
27
  * transport-specific dependency graph policy and websocket hook surface.
29
28
  */
30
- constructor({ appConfig, bridge, registrationTimeoutMs }: HmrManagerParams);
29
+ constructor({ appConfig, bridge }: HmrManagerParams);
31
30
  /**
32
31
  * Reuses the shared in-memory dependency graph when possible and otherwise
33
32
  * creates the Bun-compatible default graph implementation.
@@ -1,58 +1,63 @@
1
- import { appLogger } from "../../global/app-logger.js";
2
- import {
3
- InMemoryEntrypointDependencyGraph
4
- } from "../../services/runtime-state/entrypoint-dependency-graph.service.js";
5
- import { SharedHmrManager } from "../shared/shared-hmr-manager.js";
6
- class HmrManager extends SharedHmrManager {
7
- wsHandler;
8
- /**
9
- * Creates the Bun HMR manager around the shared HMR orchestration pipeline.
10
- *
11
- * @remarks
12
- * Bun delegates route watching, rebuild dispatch, and runtime bundle
13
- * generation to `SharedHmrManager`. The Bun subclass only supplies the
14
- * transport-specific dependency graph policy and websocket hook surface.
15
- */
16
- constructor({ appConfig, bridge, registrationTimeoutMs }) {
17
- super({ appConfig, bridge, registrationTimeoutMs });
18
- }
19
- /**
20
- * Reuses the shared in-memory dependency graph when possible and otherwise
21
- * creates the Bun-compatible default graph implementation.
22
- */
23
- createEntrypointDependencyGraph(existingEntrypointDependencyGraph) {
24
- return existingEntrypointDependencyGraph instanceof InMemoryEntrypointDependencyGraph ? existingEntrypointDependencyGraph : new InMemoryEntrypointDependencyGraph();
25
- }
26
- /**
27
- * Returns the Bun websocket hooks that attach and detach live HMR subscribers.
28
- *
29
- * @remarks
30
- * `SharedHmrManager` stores the bridge behind the transport-agnostic
31
- * `IClientBridge` contract because most HMR coordination only needs broadcast
32
- * behavior. Bun connection lifecycle wiring is the point where that abstraction
33
- * intentionally narrows back to the concrete Bun bridge so websocket instances
34
- * can be tracked directly.
35
- */
36
- getWebSocketHandler() {
37
- const bridge = this.bridge;
38
- const open = (ws) => {
39
- bridge.subscribe(ws);
40
- appLogger.debug(`[HmrManager] Connection opened. Subscribers: ${bridge.subscriberCount}`);
41
- };
42
- const close = (ws) => {
43
- bridge.unsubscribe(ws);
44
- appLogger.debug(`[HmrManager] Connection closed. Subscribers: ${bridge.subscriberCount}`);
45
- };
46
- this.wsHandler = { open, close };
47
- return {
48
- open: this.wsHandler.open,
49
- close: this.wsHandler.close,
50
- message: (_ws, message) => {
51
- appLogger.debug("[HMR] Received message from client:", message);
52
- }
53
- };
54
- }
1
+ import { appLogger } from '../../global/app-logger.js';
2
+ import { InMemoryEntrypointDependencyGraph, } from '../../services/runtime-state/entrypoint-dependency-graph.service.js';
3
+ import { SharedHmrManager } from '../shared/hmr/shared-hmr-manager.js';
4
+ /**
5
+ * Bun development HMR manager.
6
+ *
7
+ * @remarks
8
+ * Bun shares the same public contract as the Node manager: page entrypoints are
9
+ * strict integration-owned registrations, while generic script assets use their
10
+ * own explicit registration path.
11
+ */
12
+ export class HmrManager extends SharedHmrManager {
13
+ wsHandler;
14
+ /**
15
+ * Creates the Bun HMR manager around the shared HMR orchestration pipeline.
16
+ *
17
+ * @remarks
18
+ * Bun delegates route watching, rebuild dispatch, and runtime bundle
19
+ * generation to `SharedHmrManager`. The Bun subclass only supplies the
20
+ * transport-specific dependency graph policy and websocket hook surface.
21
+ */
22
+ constructor({ appConfig, bridge }) {
23
+ super({ appConfig, bridge });
24
+ }
25
+ /**
26
+ * Reuses the shared in-memory dependency graph when possible and otherwise
27
+ * creates the Bun-compatible default graph implementation.
28
+ */
29
+ createEntrypointDependencyGraph(existingEntrypointDependencyGraph) {
30
+ return existingEntrypointDependencyGraph instanceof InMemoryEntrypointDependencyGraph
31
+ ? existingEntrypointDependencyGraph
32
+ : new InMemoryEntrypointDependencyGraph();
33
+ }
34
+ /**
35
+ * Returns the Bun websocket hooks that attach and detach live HMR subscribers.
36
+ *
37
+ * @remarks
38
+ * `SharedHmrManager` stores the bridge behind the transport-agnostic
39
+ * `IClientBridge` contract because most HMR coordination only needs broadcast
40
+ * behavior. Bun connection lifecycle wiring is the point where that abstraction
41
+ * intentionally narrows back to the concrete Bun bridge so websocket instances
42
+ * can be tracked directly.
43
+ */
44
+ getWebSocketHandler() {
45
+ const bridge = this.bridge;
46
+ const open = (ws) => {
47
+ bridge.subscribe(ws);
48
+ appLogger.debug(`[HmrManager] Connection opened. Subscribers: ${bridge.subscriberCount}`);
49
+ };
50
+ const close = (ws) => {
51
+ bridge.unsubscribe(ws);
52
+ appLogger.debug(`[HmrManager] Connection closed. Subscribers: ${bridge.subscriberCount}`);
53
+ };
54
+ this.wsHandler = { open, close };
55
+ return {
56
+ open: this.wsHandler.open,
57
+ close: this.wsHandler.close,
58
+ message: (_ws, message) => {
59
+ appLogger.debug('[HMR] Received message from client:', message);
60
+ },
61
+ };
62
+ }
55
63
  }
56
- export {
57
- HmrManager
58
- };
@@ -1,2 +1,2 @@
1
1
  export { BunEcopagesApp, createApp } from './create-app.js';
2
- export { defineApiHandler, defineGroupHandler, type GroupHandler } from '../shared/define-api-handler.js';
2
+ export { defineApiHandler, defineGroupHandler, defineGet, definePost, definePut, defineDelete, definePatch, defineOptions, defineHead, json, html, redirect, type GroupHandler, } from '../shared/http/define-api-handler.js';
@@ -1,8 +1,2 @@
1
- import { BunEcopagesApp, createApp } from "./create-app.js";
2
- import { defineApiHandler, defineGroupHandler } from "../shared/define-api-handler.js";
3
- export {
4
- BunEcopagesApp,
5
- createApp,
6
- defineApiHandler,
7
- defineGroupHandler
8
- };
1
+ export { BunEcopagesApp, createApp } from './create-app.js';
2
+ export { defineApiHandler, defineGroupHandler, defineGet, definePost, definePut, defineDelete, definePatch, defineOptions, defineHead, json, html, redirect, } from '../shared/http/define-api-handler.js';
@@ -1,5 +1,5 @@
1
1
  import type { Server } from 'bun';
2
- import type { RuntimeHost, RuntimeHostStartOptions } from '../shared/runtime-host.js';
2
+ import type { RuntimeHost, RuntimeHostStartOptions } from '../shared/runtime/runtime-host.js';
3
3
  type BunRuntimeProvider = {
4
4
  serve(options: Bun.Serve.Options<unknown>): Server<unknown>;
5
5
  };
@@ -1,56 +1,63 @@
1
- import { getBunRuntime } from "../../utils/runtime.js";
2
- import { resolveServeRuntimeOrigin } from "../shared/runtime-app-bootstrap.js";
3
- class BunRuntimeHost {
4
- /**
5
- * Creates a Bun runtime host with an injectable runtime lookup.
6
- *
7
- * @remarks
8
- * Production code uses the default `getBunRuntime()` lookup. Tests may inject a
9
- * fake provider that either supplies a `serve()` implementation or returns
10
- * `null` to verify the runtime-required failure path.
11
- */
12
- constructor(runtimeProvider = () => getBunRuntime() ?? null) {
13
- this.runtimeProvider = runtimeProvider;
14
- }
15
- runtimeProvider;
16
- /**
17
- * Starts the Bun server using the already-composed serve options from the
18
- * shared application bootstrap.
19
- */
20
- async start(options) {
21
- const bun = this.runtimeProvider();
22
- if (!bun) {
23
- throw new Error("Bun runtime is required for the Bun adapter");
1
+ import { getBunRuntime } from '../../utils/runtime.js';
2
+ import { resolveServeRuntimeOrigin } from '../shared/runtime/runtime-app-bootstrap.js';
3
+ /**
4
+ * Bun runtime host that adapts the shared runtime lifecycle contract onto
5
+ * `Bun.serve()`.
6
+ *
7
+ * @remarks
8
+ * The injected runtime provider exists so tests and non-Bun call sites can
9
+ * construct the host without assuming `globalThis.Bun` is present. The provider
10
+ * returns `null` instead of `undefined` to keep that absence explicit at the
11
+ * host boundary.
12
+ */
13
+ export class BunRuntimeHost {
14
+ runtimeProvider;
15
+ /**
16
+ * Creates a Bun runtime host with an injectable runtime lookup.
17
+ *
18
+ * @remarks
19
+ * Production code uses the default `getBunRuntime()` lookup. Tests may inject a
20
+ * fake provider that either supplies a `serve()` implementation or returns
21
+ * `null` to verify the runtime-required failure path.
22
+ */
23
+ constructor(runtimeProvider = () => getBunRuntime() ?? null) {
24
+ this.runtimeProvider = runtimeProvider;
25
+ }
26
+ /**
27
+ * Starts the Bun server using the already-composed serve options from the
28
+ * shared application bootstrap.
29
+ */
30
+ async start(options) {
31
+ const bun = this.runtimeProvider();
32
+ if (!bun) {
33
+ throw new Error('Bun runtime is required for the Bun adapter');
34
+ }
35
+ return bun.serve(options.serveOptions);
36
+ }
37
+ /**
38
+ * Stops the active Bun server immediately.
39
+ *
40
+ * @remarks
41
+ * The shared runtime-host contract accepts optional stop options, but Bun's
42
+ * server API already models the shutdown behavior directly. This host always
43
+ * uses Bun's forceful stop path so preview and embedded runtime shutdowns do
44
+ * not linger on open connections.
45
+ */
46
+ async stop(server) {
47
+ server.stop(true);
48
+ }
49
+ /**
50
+ * Resolves the externally reported runtime origin from the active server.
51
+ *
52
+ * @remarks
53
+ * Bun may finalize the hostname or port differently from the requested serve
54
+ * options. This method prefers the live server binding and only falls back to
55
+ * the requested options when Bun leaves a field unset.
56
+ */
57
+ getOrigin(server, fallbackServeOptions) {
58
+ return resolveServeRuntimeOrigin({
59
+ hostname: server.hostname ?? fallbackServeOptions.hostname,
60
+ port: server.port ?? fallbackServeOptions.port,
61
+ });
24
62
  }
25
- return bun.serve(options.serveOptions);
26
- }
27
- /**
28
- * Stops the active Bun server immediately.
29
- *
30
- * @remarks
31
- * The shared runtime-host contract accepts optional stop options, but Bun's
32
- * server API already models the shutdown behavior directly. This host always
33
- * uses Bun's forceful stop path so preview and embedded runtime shutdowns do
34
- * not linger on open connections.
35
- */
36
- async stop(server) {
37
- server.stop(true);
38
- }
39
- /**
40
- * Resolves the externally reported runtime origin from the active server.
41
- *
42
- * @remarks
43
- * Bun may finalize the hostname or port differently from the requested serve
44
- * options. This method prefers the live server binding and only falls back to
45
- * the requested options when Bun leaves a field unset.
46
- */
47
- getOrigin(server, fallbackServeOptions) {
48
- return resolveServeRuntimeOrigin({
49
- hostname: server.hostname ?? fallbackServeOptions.hostname,
50
- port: server.port ?? fallbackServeOptions.port
51
- });
52
- }
53
63
  }
54
- export {
55
- BunRuntimeHost
56
- };