@ecopages/core 0.2.0-beta.8 → 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 (623) hide show
  1. package/README.md +42 -13
  2. package/package.json +361 -58
  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 +29 -340
  111. package/src/build/build-adapter.js +258 -260
  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} +16 -2
  138. package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
  139. package/src/build/rolldown/rolldown-source-transform-pass.d.ts +15 -0
  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 +42 -12
  183. package/src/config/config-builder.js +645 -600
  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 +32 -1
  316. package/src/plugins/source-transform.js +112 -60
  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 -30
  453. package/src/services/assets/browser-bundle.service.js +54 -46
  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 -309
  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 -199
  587. package/src/build/runtime-build-executor.d.ts +0 -15
  588. package/src/build/runtime-build-executor.js +0 -43
  589. package/src/build/runtime-build-output-normalizer.js +0 -203
  590. package/src/build/serialized-build-executor.js +0 -63
  591. package/src/build/server-entry-build-cache.js +0 -169
  592. package/src/build/server-side-css-shim-plugin.js +0 -35
  593. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  594. package/src/hmr/hmr.test.e2e.js +0 -54
  595. package/src/integrations/ghtml/ghtml-renderer.js +0 -57
  596. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  597. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  598. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  599. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  600. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  601. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
  602. package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
  603. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -231
  604. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
  605. package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
  606. package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
  607. package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
  608. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
  609. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
  610. package/src/route-renderer/orchestration/render-output.utils.js +0 -175
  611. package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -578
  612. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  613. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  614. package/src/utils/html.d.ts +0 -1
  615. package/src/utils/html.js +0 -4
  616. /package/src/adapters/{shared → bun}/bun-user-websocket-lifecycle.d.ts +0 -0
  617. /package/src/adapters/shared/{copy-runtime-public-dir.d.ts → runtime/copy-runtime-public-dir.d.ts} +0 -0
  618. /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
  619. /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
  620. /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
  621. /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
  622. /package/src/build/{runtime-build-output-normalizer.d.ts → rolldown/runtime-build-output-normalizer.d.ts} +0 -0
  623. /package/src/build/{server-side-css-shim-plugin.d.ts → rolldown/server-side-css-shim-plugin.d.ts} +0 -0
@@ -1,216 +1,242 @@
1
- import path from "node:path";
2
- import { pathToFileURL } from "node:url";
3
- import { fileSystem } from "@ecopages/file-system";
4
- import { build } from "../../build/build-adapter.js";
5
- import { normalizeNodeRuntimeBuildOutputFile } from "../../build/runtime-build-output-normalizer.js";
6
- import {
7
- importPagesUnifiedGraphModule,
8
- isPagesUnifiedGraphPage,
9
- shouldBuildPagesUnifiedGraph
10
- } from "../../build/pages-unified-graph-build.js";
11
- import { recordPageModuleBuildInvocation } from "../../build/rolldown-build-invocation-metrics.js";
12
- import {
13
- resolvePageModuleOutputFileName,
14
- createPluginCacheKey,
15
- createJsxCacheKey
16
- } from "./route-module-build-cache.js";
17
- import { getSharedRouteModuleBuildCache } from "./route-module-build-cache-registry.js";
18
- import { resolveRouteModuleDependencyPaths } from "./route-module-dependency-hasher.js";
19
- import { supportsSourceModuleLoading } from "./source-module-support.js";
20
- class PageModuleImportService {
21
- appConfig;
22
- dependencies;
23
- importCache = /* @__PURE__ */ new Map();
24
- developmentInvalidationVersion = 0;
25
- constructor(appConfig, dependencies) {
26
- this.appConfig = appConfig;
27
- this.dependencies = {
28
- hashFile: dependencies?.hashFile ?? ((filePath) => fileSystem.hash(filePath)),
29
- buildModule: dependencies?.buildModule ?? ((options, buildExecutor) => build(options, buildExecutor)),
30
- canLoadSourceModuleFromHost: dependencies?.canLoadSourceModuleFromHost ?? supportsSourceModuleLoading,
31
- getHostModuleLoader: dependencies?.getHostModuleLoader ?? (() => void 0)
32
- };
33
- }
34
- /**
35
- * Clears the shared import cache used by framework-owned page-module loads.
36
- */
37
- clearImportCache() {
38
- this.importCache.clear();
39
- }
40
- /**
41
- * Invalidates all previously imported modules in development by clearing the
42
- * import cache and incrementing the invalidation version included in cache keys.
43
- *
44
- * This forces all modules to be reloaded on the next import, even if their
45
- * source content hasn't changed. This is necessary to ensure that changes to
46
- * non-content aspects of modules (e.g. dependencies, transpilation output)
47
- * are picked up during development.
48
- */
49
- invalidateDevelopmentGraph() {
50
- this.clearImportCache();
51
- this.developmentInvalidationVersion += 1;
52
- }
53
- /**
54
- * Imports a page-like module from source.
55
- *
56
- * The caller controls the output directory and error wording so different
57
- * subsystems can reuse the same loading mechanism while preserving their
58
- * current diagnostics. Module identities stay stable for unchanged files and
59
- * roll forward automatically when the source hash changes during watch mode.
60
- *
61
- * @typeParam T Expected module shape.
62
- * @param options Runtime-specific import settings.
63
- * @returns The loaded module.
64
- */
65
- async importModule(options) {
66
- const { filePath } = options;
67
- const invalidationVersion = options.invalidationVersion ?? this.developmentInvalidationVersion;
68
- const { externalPackages, splitting } = options;
69
- const fileHash = this.dependencies.hashFile(filePath);
70
- const hostModuleLoader = typeof Bun === "undefined" && process.env.NODE_ENV === "development" && this.dependencies.canLoadSourceModuleFromHost(filePath) ? this.dependencies.getHostModuleLoader() : void 0;
71
- if (hostModuleLoader) {
72
- const sourceModuleUrl = createRuntimeModuleUrl(filePath, fileHash, invalidationVersion, options.cacheScope);
73
- return await hostModuleLoader(sourceModuleUrl.href);
1
+ import path from 'node:path';
2
+ import { pathToFileURL } from 'node:url';
3
+ import { fileSystem } from '@ecopages/file-system';
4
+ import { build } from '../../build/build-adapter.js';
5
+ import { createServerBuildRequest } from '../../build/runtime/build-request-policy.js';
6
+ import { resolveBuildProfileOptions } from '../../build/runtime/build-profile-options.js';
7
+ import { importPagesUnifiedGraphModule, isPagesUnifiedGraphPage, shouldBuildPagesUnifiedGraph, } from '../../build/cache/pages-unified-graph-build.js';
8
+ import { recordPageModuleBuildInvocation } from '../../build/rolldown/rolldown-build-invocation-metrics.js';
9
+ import { recordPageModuleLoad } from '../../diagnostics/request-pipeline-metrics.js';
10
+ import { createRouteModuleReuseIdentity, resolvePageModuleOutputFileName } from './route-module-build-manifest.js';
11
+ import { getSharedRouteModuleBuildCache } from './route-module-build-cache-registry.js';
12
+ import { RouteModuleDependencyHasher, resolveRouteModuleDependencyPaths, } from './route-module-dependency-hasher.js';
13
+ import { supportsSourceModuleLoading } from './source-module-support.js';
14
+ /**
15
+ * Loads page-like modules through the Ecopages build pipeline.
16
+ *
17
+ * This service centralizes the shared build-first import strategy used by route
18
+ * scanning, page data loading, and request-time page inspection. In Node
19
+ * development it can still delegate compatible source imports to the active
20
+ * host loader, but the public contract remains one transpile-targeted module
21
+ * loading path.
22
+ *
23
+ * Keeping this logic in one place prevents subtle drift in cache-busting,
24
+ * transpilation settings, and error semantics across the different callers.
25
+ */
26
+ export class PageModuleImportService {
27
+ appConfig;
28
+ dependencies;
29
+ dependencyHasher;
30
+ importCache = new Map();
31
+ developmentImportGeneration = 0;
32
+ constructor(appConfig, dependencies) {
33
+ this.appConfig = appConfig;
34
+ this.dependencies = {
35
+ hashFile: dependencies?.hashFile ?? ((filePath) => fileSystem.hash(filePath)),
36
+ buildModule: dependencies?.buildModule ?? ((options, buildExecutor) => build(options, buildExecutor)),
37
+ canLoadSourceModuleFromHost: dependencies?.canLoadSourceModuleFromHost ?? supportsSourceModuleLoading,
38
+ getHostModuleLoader: dependencies?.getHostModuleLoader ?? (() => undefined),
39
+ };
40
+ this.dependencyHasher = new RouteModuleDependencyHasher({
41
+ hashFile: (filePath) => this.dependencies.hashFile(filePath),
42
+ exists: (filePath) => fileSystem.exists(filePath),
43
+ });
74
44
  }
75
- if (options.bypassCache) {
76
- this.developmentInvalidationVersion += 1;
77
- return await this.loadModule({
78
- ...options,
79
- invalidationVersion: this.developmentInvalidationVersion,
80
- fileHash
81
- });
45
+ /**
46
+ * Clears the shared import cache used by framework-owned page-module loads.
47
+ */
48
+ clearImportCache() {
49
+ this.importCache.clear();
82
50
  }
83
- const runtime = typeof Bun !== "undefined" ? "bun" : "node-build";
84
- const cacheKey = [
85
- runtime,
86
- filePath,
87
- options.rootDir,
88
- path.resolve(options.outdir),
89
- splitting ?? "default",
90
- externalPackages ?? "default",
91
- options.cacheScope ?? "default",
92
- createJsxCacheKey(options.jsx),
93
- createPluginCacheKey(options.plugins),
94
- fileHash,
95
- invalidationVersion
96
- ].join("::");
97
- const cachedModule = this.importCache.get(cacheKey);
98
- if (cachedModule) {
99
- return await cachedModule;
51
+ /**
52
+ * Clears in-memory import promises and dependency-hash memoization so the next
53
+ * import revalidates against current source and transform identity.
54
+ */
55
+ invalidateDevelopmentGraph() {
56
+ this.developmentImportGeneration += 1;
57
+ this.clearImportCache();
58
+ this.dependencyHasher.clearMemo();
100
59
  }
101
- const importPromise = this.loadModule({
102
- ...options,
103
- fileHash
104
- });
105
- this.importCache.set(cacheKey, importPromise);
106
- try {
107
- return await importPromise;
108
- } catch (error) {
109
- this.importCache.delete(cacheKey);
110
- throw error;
60
+ /**
61
+ * Imports a page-like module from source.
62
+ *
63
+ * The caller controls the output directory and error wording so different
64
+ * subsystems can reuse the same loading mechanism while preserving their
65
+ * current diagnostics. Module identities stay stable for unchanged files and
66
+ * roll forward automatically when the source hash changes during watch mode.
67
+ *
68
+ * @typeParam T Expected module shape.
69
+ * @param options Runtime-specific import settings.
70
+ * @returns The loaded module.
71
+ */
72
+ async importModule(options) {
73
+ const { filePath } = options;
74
+ const fileHash = this.dependencies.hashFile(filePath);
75
+ const hostModuleLoader = typeof Bun === 'undefined' &&
76
+ process.env.NODE_ENV === 'development' &&
77
+ this.dependencies.canLoadSourceModuleFromHost(filePath)
78
+ ? this.dependencies.getHostModuleLoader()
79
+ : undefined;
80
+ if (hostModuleLoader) {
81
+ const sourceModuleUrl = createRuntimeModuleUrl(filePath, fileHash, this.developmentImportGeneration);
82
+ const loadedModule = (await hostModuleLoader(sourceModuleUrl.href));
83
+ recordPageModuleLoad('host-loader');
84
+ return loadedModule;
85
+ }
86
+ if (!options.bypassCache) {
87
+ const runtime = typeof Bun !== 'undefined' ? 'bun' : 'node-build';
88
+ const cacheKey = [
89
+ runtime,
90
+ filePath,
91
+ createRouteModuleReuseIdentity(options, options.sourceTransforms),
92
+ fileHash,
93
+ ].join('::');
94
+ const cachedModule = this.importCache.get(cacheKey);
95
+ if (cachedModule) {
96
+ if (!cachedModule.dependencyHashes) {
97
+ const loadedModule = (await cachedModule.promise);
98
+ recordPageModuleLoad('import-cache-hit');
99
+ return loadedModule;
100
+ }
101
+ if (this.dependencyHasher.matchesStoredHashes(cachedModule.dependencyHashes, filePath, fileHash)) {
102
+ const loadedModule = (await cachedModule.promise);
103
+ recordPageModuleLoad('import-cache-hit');
104
+ return loadedModule;
105
+ }
106
+ this.importCache.delete(cacheKey);
107
+ }
108
+ const importPromise = this.loadModule({
109
+ ...options,
110
+ fileHash,
111
+ importCacheKey: cacheKey,
112
+ });
113
+ this.importCache.set(cacheKey, { promise: importPromise });
114
+ try {
115
+ return await importPromise;
116
+ }
117
+ catch (error) {
118
+ this.importCache.delete(cacheKey);
119
+ throw error;
120
+ }
121
+ }
122
+ return await this.loadModule({
123
+ ...options,
124
+ fileHash,
125
+ });
111
126
  }
112
- }
113
- async loadModule(options) {
114
- const { filePath, invalidationVersion = this.developmentInvalidationVersion, cacheScope, fileHash } = options;
115
- const {
116
- rootDir,
117
- outdir,
118
- splitting,
119
- externalPackages,
120
- transpileErrorMessage = (details) => `Error transpiling page module: ${details}`,
121
- noOutputMessage = (targetFilePath) => `No transpiled output generated for page module: ${targetFilePath}`
122
- } = options;
123
- const outputFileName = resolvePageModuleOutputFileName({
124
- filePath,
125
- fileHash,
126
- cacheScope,
127
- invalidationVersion
128
- });
129
- const outputNamingTemplate = outputFileName.replace(/\.mjs$/u, ".[ext]");
130
- const preferredOutputPath = path.join(outdir, outputFileName);
131
- const routeModuleBuildCache = this.getRouteModuleBuildCache(outdir);
132
- const cachedBuild = routeModuleBuildCache.lookup({
133
- ...options,
134
- fileHash
135
- });
136
- if (cachedBuild) {
137
- return await import(
138
- /* @vite-ignore */
139
- pathToFileURL(cachedBuild.outputPath).href
140
- );
127
+ async loadModule(options) {
128
+ const { filePath, fileHash, importCacheKey } = options;
129
+ const { rootDir, outdir, splitting, externalPackages, transpileErrorMessage = (details) => `Error transpiling page module: ${details}`, noOutputMessage = (targetFilePath) => `No transpiled output generated for page module: ${targetFilePath}`, } = options;
130
+ const outputFileName = createRuntimeBuildOutputFileName(resolvePageModuleOutputFileName({ filePath, fileHash }), this.developmentImportGeneration);
131
+ const outputNamingTemplate = outputFileName.replace(/\.mjs$/u, '.[ext]');
132
+ const preferredOutputPath = path.join(outdir, outputFileName);
133
+ const buildOptions = this.appConfig
134
+ ? createServerBuildRequest(this.appConfig, {
135
+ profile: 'route-module',
136
+ entrypoints: [filePath],
137
+ outdir,
138
+ naming: outputNamingTemplate,
139
+ splitting: splitting ?? true,
140
+ jsx: options.jsx,
141
+ plugins: options.plugins,
142
+ root: rootDir,
143
+ ...(externalPackages !== undefined ? { externalPackages } : {}),
144
+ })
145
+ : {
146
+ ...resolveBuildProfileOptions('route-module', { rootDir }, {
147
+ entrypoints: [filePath],
148
+ outdir,
149
+ naming: outputNamingTemplate,
150
+ splitting: splitting ?? true,
151
+ jsx: options.jsx,
152
+ plugins: options.plugins,
153
+ ...(externalPackages !== undefined ? { externalPackages } : {}),
154
+ }),
155
+ root: rootDir,
156
+ entrypoints: [filePath],
157
+ };
158
+ const cacheBuildOptions = {
159
+ ...options,
160
+ rootDir: buildOptions.root ?? rootDir,
161
+ outdir: buildOptions.outdir ?? outdir,
162
+ splitting: buildOptions.splitting,
163
+ externalPackages: buildOptions.externalPackages,
164
+ jsx: buildOptions.jsx,
165
+ plugins: buildOptions.plugins,
166
+ sourceTransforms: buildOptions.sourceTransforms,
167
+ fileHash,
168
+ };
169
+ const routeModuleBuildCache = this.getRouteModuleBuildCache(outdir);
170
+ const cachedBuild = routeModuleBuildCache.lookup(cacheBuildOptions);
171
+ if (cachedBuild) {
172
+ const loadedModule = (await import(/* @vite-ignore */ pathToFileURL(cachedBuild.outputPath).href));
173
+ recordPageModuleLoad('disk-cache-hit');
174
+ return loadedModule;
175
+ }
176
+ if (shouldBuildPagesUnifiedGraph() && this.appConfig && isPagesUnifiedGraphPage(filePath, this.appConfig)) {
177
+ const graphModule = await importPagesUnifiedGraphModule(this.appConfig, filePath);
178
+ if (graphModule !== undefined) {
179
+ recordPageModuleLoad('unified-graph');
180
+ return graphModule;
181
+ }
182
+ }
183
+ recordPageModuleBuildInvocation();
184
+ const buildResult = await this.dependencies.buildModule(buildOptions, options.buildExecutor);
185
+ recordPageModuleLoad('cold-build', buildResult.outputs.length);
186
+ if (!buildResult.success) {
187
+ const details = buildResult.logs.map((log) => log.message).join(' | ');
188
+ throw new Error(transpileErrorMessage(details));
189
+ }
190
+ const compiledOutput = buildResult.outputs.find((output) => output.path === preferredOutputPath)?.path ??
191
+ buildResult.outputs.find((output) => /\.(?:[cm]?js)$/u.test(output.path))?.path;
192
+ if (!compiledOutput) {
193
+ throw new Error(noOutputMessage(filePath));
194
+ }
195
+ const dependencyModulePaths = resolveRouteModuleDependencyPaths(buildResult, filePath, rootDir);
196
+ const dependencyHashes = this.dependencyHasher.createDependencyHashes(dependencyModulePaths);
197
+ dependencyHashes[path.normalize(filePath)] = fileHash;
198
+ if (importCacheKey) {
199
+ const cacheEntry = this.importCache.get(importCacheKey);
200
+ if (cacheEntry) {
201
+ cacheEntry.dependencyHashes = dependencyHashes;
202
+ }
203
+ }
204
+ routeModuleBuildCache.recordBuild({
205
+ ...cacheBuildOptions,
206
+ outputPath: compiledOutput,
207
+ dependencyModulePaths,
208
+ });
209
+ const compiledOutputUrl = pathToFileURL(compiledOutput);
210
+ if (shouldAddRuntimeUpdateQuery()) {
211
+ compiledOutputUrl.searchParams.set('update', `${fileHash}-${this.developmentImportGeneration}`);
212
+ }
213
+ return (await import(/* @vite-ignore */ compiledOutputUrl.href));
141
214
  }
142
- if (!cacheScope && shouldBuildPagesUnifiedGraph() && this.appConfig && isPagesUnifiedGraphPage(filePath, this.appConfig)) {
143
- const graphModule = await importPagesUnifiedGraphModule(this.appConfig, filePath);
144
- if (graphModule !== void 0) {
145
- return graphModule;
146
- }
215
+ getRouteModuleBuildCache(outdir) {
216
+ return getSharedRouteModuleBuildCache(outdir, this.appConfig);
147
217
  }
148
- recordPageModuleBuildInvocation();
149
- const buildResult = await this.dependencies.buildModule(
150
- {
151
- entrypoints: [filePath],
152
- root: rootDir,
153
- outdir,
154
- target: "es2022",
155
- format: "esm",
156
- sourcemap: "none",
157
- splitting: splitting ?? true,
158
- minify: false,
159
- naming: outputNamingTemplate,
160
- externalPackages: true,
161
- jsx: options.jsx,
162
- plugins: options.plugins,
163
- ...externalPackages !== void 0 ? { externalPackages } : {}
164
- },
165
- options.buildExecutor
166
- );
167
- if (!buildResult.success) {
168
- const details = buildResult.logs.map((log) => log.message).join(" | ");
169
- throw new Error(transpileErrorMessage(details));
170
- }
171
- const compiledOutput = buildResult.outputs.find((output) => output.path === preferredOutputPath)?.path ?? buildResult.outputs.find((output) => /\.(?:[cm]?js)$/u.test(output.path))?.path;
172
- if (!compiledOutput) {
173
- throw new Error(noOutputMessage(filePath));
174
- }
175
- normalizeNodeRuntimeBuildOutputFile(compiledOutput, rootDir);
176
- routeModuleBuildCache.recordBuild({
177
- ...options,
178
- fileHash,
179
- outputPath: compiledOutput,
180
- dependencyModulePaths: resolveRouteModuleDependencyPaths(buildResult, filePath, rootDir)
181
- });
182
- const compiledOutputUrl = pathToFileURL(compiledOutput);
183
- if (shouldAddRuntimeUpdateQuery(invalidationVersion, cacheScope)) {
184
- compiledOutputUrl.searchParams.set(
185
- "update",
186
- [fileHash, invalidationVersion, cacheScope ? sanitizeCacheScope(cacheScope) : void 0].filter((value) => value !== void 0).join("-")
187
- );
188
- }
189
- return await import(
190
- /* @vite-ignore */
191
- compiledOutputUrl.href
192
- );
193
- }
194
- getRouteModuleBuildCache(outdir) {
195
- return getSharedRouteModuleBuildCache(outdir, this.appConfig);
196
- }
197
218
  }
198
- function createRuntimeModuleUrl(filePath, fileHash, invalidationVersion, cacheScope) {
199
- const moduleUrl = pathToFileURL(filePath);
200
- if (shouldAddRuntimeUpdateQuery(invalidationVersion, cacheScope)) {
201
- moduleUrl.searchParams.set(
202
- "update",
203
- [fileHash, invalidationVersion, cacheScope ? sanitizeCacheScope(cacheScope) : void 0].filter((value) => value !== void 0).join("-")
204
- );
205
- }
206
- return moduleUrl;
219
+ function createRuntimeModuleUrl(filePath, fileHash, developmentImportGeneration) {
220
+ const moduleUrl = pathToFileURL(filePath);
221
+ if (shouldAddRuntimeUpdateQuery()) {
222
+ moduleUrl.searchParams.set('update', `${fileHash}-${developmentImportGeneration}`);
223
+ }
224
+ return moduleUrl;
207
225
  }
208
- function shouldAddRuntimeUpdateQuery(invalidationVersion, cacheScope) {
209
- return process.env.NODE_ENV === "development" || invalidationVersion > 0 || !!cacheScope;
226
+ function shouldAddRuntimeUpdateQuery() {
227
+ return process.env.NODE_ENV === 'development';
210
228
  }
211
- function sanitizeCacheScope(cacheScope) {
212
- return cacheScope.replace(/[^a-zA-Z0-9_-]+/g, "-");
229
+ /**
230
+ * Gives Bun a distinct compiled module path after development invalidation.
231
+ *
232
+ * @remarks
233
+ * Bun does not reload an already-imported module when only its URL query changes.
234
+ * A dependency edit can leave the entrypoint source hash unchanged, so the output
235
+ * filename must include the import generation as well as the runtime query.
236
+ */
237
+ function createRuntimeBuildOutputFileName(outputFileName, developmentImportGeneration) {
238
+ if (typeof Bun === 'undefined' || !shouldAddRuntimeUpdateQuery()) {
239
+ return outputFileName;
240
+ }
241
+ return outputFileName.replace(/\.mjs$/u, `-${developmentImportGeneration}.mjs`);
213
242
  }
214
- export {
215
- PageModuleImportService
216
- };
@@ -22,3 +22,5 @@ export declare const getRouteModuleBuildCacheOutdir: typeof getServerModuleBuild
22
22
  * generation during the same build process.
23
23
  */
24
24
  export declare function getSharedRouteModuleBuildCache(outdir: string, appConfig?: EcoPagesAppConfig): RouteModuleBuildCache;
25
+ /** Clears route-module cache entries that can retain stale external server modules during development. */
26
+ export declare function clearAppDevelopmentRouteModuleBuildCaches(appConfig: EcoPagesAppConfig): void;
@@ -1,37 +1,63 @@
1
- import path from "node:path";
2
- import { resolveInternalExecutionDir } from "../../utils/resolve-work-dir.js";
3
- import { RouteModuleBuildCache } from "./route-module-build-cache.store.js";
4
- function getServerModuleBuildCacheOutdir(appConfig) {
5
- return path.join(resolveInternalExecutionDir(appConfig), ".server-modules");
1
+ import path from 'node:path';
2
+ import { resolveInternalExecutionDir } from '../../utils/resolve-work-dir.js';
3
+ import { RouteModuleBuildCache } from './route-module-build-cache.store.js';
4
+ /**
5
+ * Returns the outdir whose transpile cache backs incremental static generation.
6
+ *
7
+ * @remarks
8
+ * Static pages render through `.eco/.server-modules`. The manifest there carries
9
+ * import-graph hashes from transpile, so static-render reuse must read the same
10
+ * directory rather than `.server-route-modules`, which only serves route-registry
11
+ * scanning.
12
+ */
13
+ export function getServerModuleBuildCacheOutdir(appConfig) {
14
+ return path.join(resolveInternalExecutionDir(appConfig), '.server-modules');
6
15
  }
7
- const getRouteModuleBuildCacheOutdir = getServerModuleBuildCacheOutdir;
16
+ /**
17
+ * @deprecated Use {@link getServerModuleBuildCacheOutdir}.
18
+ */
19
+ export const getRouteModuleBuildCacheOutdir = getServerModuleBuildCacheOutdir;
8
20
  function getRouteModuleBuildCacheMap(appConfig) {
9
- const existing = appConfig.runtime?.routeModuleBuildCaches;
10
- if (existing) {
11
- return existing;
12
- }
13
- const routeModuleBuildCaches = /* @__PURE__ */ new Map();
14
- appConfig.runtime = {
15
- ...appConfig.runtime ?? {},
16
- routeModuleBuildCaches
17
- };
18
- return routeModuleBuildCaches;
21
+ const existing = appConfig.runtime?.routeModuleBuildCaches;
22
+ if (existing) {
23
+ return existing;
24
+ }
25
+ const routeModuleBuildCaches = new Map();
26
+ appConfig.runtime = {
27
+ ...(appConfig.runtime ?? {}),
28
+ routeModuleBuildCaches,
29
+ };
30
+ return routeModuleBuildCaches;
19
31
  }
20
- function getSharedRouteModuleBuildCache(outdir, appConfig) {
21
- if (!appConfig) {
22
- return new RouteModuleBuildCache(outdir);
23
- }
24
- const caches = getRouteModuleBuildCacheMap(appConfig);
25
- const existingCache = caches.get(outdir);
26
- if (existingCache) {
27
- return existingCache;
28
- }
29
- const routeModuleBuildCache = new RouteModuleBuildCache(outdir);
30
- caches.set(outdir, routeModuleBuildCache);
31
- return routeModuleBuildCache;
32
+ /**
33
+ * Returns the shared production build cache for one server-module outdir.
34
+ *
35
+ * @remarks
36
+ * One app-scoped instance prevents manifest drift between page imports and static
37
+ * generation during the same build process.
38
+ */
39
+ export function getSharedRouteModuleBuildCache(outdir, appConfig) {
40
+ if (!appConfig) {
41
+ return new RouteModuleBuildCache(outdir);
42
+ }
43
+ const caches = getRouteModuleBuildCacheMap(appConfig);
44
+ const existingCache = caches.get(outdir);
45
+ if (existingCache) {
46
+ return existingCache;
47
+ }
48
+ const routeModuleBuildCache = new RouteModuleBuildCache(outdir);
49
+ caches.set(outdir, routeModuleBuildCache);
50
+ return routeModuleBuildCache;
51
+ }
52
+ /** Clears route-module cache entries that can retain stale external server modules during development. */
53
+ export function clearAppDevelopmentRouteModuleBuildCaches(appConfig) {
54
+ const serverModuleCacheOutdir = getServerModuleBuildCacheOutdir(appConfig);
55
+ const caches = appConfig.runtime?.routeModuleBuildCaches;
56
+ const serverModuleCache = caches?.get(serverModuleCacheOutdir) ?? new RouteModuleBuildCache(serverModuleCacheOutdir);
57
+ serverModuleCache.clearDevelopmentEntries();
58
+ for (const cache of caches?.values() ?? []) {
59
+ if (cache !== serverModuleCache) {
60
+ cache.clearDevelopmentEntries();
61
+ }
62
+ }
32
63
  }
33
- export {
34
- getRouteModuleBuildCacheOutdir,
35
- getServerModuleBuildCacheOutdir,
36
- getSharedRouteModuleBuildCache
37
- };
@@ -1,38 +1,3 @@
1
- import {
2
- ROUTE_MODULE_BUILD_CACHE_FILENAME,
3
- createEmptyRouteModuleBuildCacheManifest,
4
- createPersistedRouteModuleBuildKey,
5
- createPluginCacheKey,
6
- createJsxCacheKey,
7
- hashPluginSetup,
8
- getCorePackageVersion,
9
- normalizeRouteModuleCachePath,
10
- readRouteModuleBuildCacheManifest,
11
- resolvePageModuleOutputFileName,
12
- shouldPersistRouteModuleBuildCache,
13
- writeRouteModuleBuildCacheManifest
14
- } from "./route-module-build-manifest.js";
15
- import { RouteModuleBuildCache } from "./route-module-build-cache.store.js";
16
- import {
17
- getRouteModuleBuildCacheOutdir,
18
- getServerModuleBuildCacheOutdir,
19
- getSharedRouteModuleBuildCache
20
- } from "./route-module-build-cache-registry.js";
21
- export {
22
- ROUTE_MODULE_BUILD_CACHE_FILENAME,
23
- RouteModuleBuildCache,
24
- createEmptyRouteModuleBuildCacheManifest,
25
- createJsxCacheKey,
26
- createPersistedRouteModuleBuildKey,
27
- createPluginCacheKey,
28
- getCorePackageVersion,
29
- getRouteModuleBuildCacheOutdir,
30
- getServerModuleBuildCacheOutdir,
31
- getSharedRouteModuleBuildCache,
32
- hashPluginSetup,
33
- normalizeRouteModuleCachePath,
34
- readRouteModuleBuildCacheManifest,
35
- resolvePageModuleOutputFileName,
36
- shouldPersistRouteModuleBuildCache,
37
- writeRouteModuleBuildCacheManifest
38
- };
1
+ export { ROUTE_MODULE_BUILD_CACHE_FILENAME, createEmptyRouteModuleBuildCacheManifest, createPersistedRouteModuleBuildKey, createPluginCacheKey, createJsxCacheKey, hashPluginSetup, getCorePackageVersion, normalizeRouteModuleCachePath, readRouteModuleBuildCacheManifest, resolvePageModuleOutputFileName, shouldPersistRouteModuleBuildCache, writeRouteModuleBuildCacheManifest, } from './route-module-build-manifest.js';
2
+ export { RouteModuleBuildCache } from './route-module-build-cache.store.js';
3
+ export { getRouteModuleBuildCacheOutdir, getServerModuleBuildCacheOutdir, getSharedRouteModuleBuildCache, } from './route-module-build-cache-registry.js';
@@ -51,6 +51,16 @@ export declare class RouteModuleBuildCache {
51
51
  context: RouteModuleStaticRenderCacheContext;
52
52
  }): void;
53
53
  resetMemory(): void;
54
+ /**
55
+ * Removes every persisted route-module entry after development invalidation.
56
+ *
57
+ * @remarks
58
+ * Server bundles may externalize generated modules whose source dependencies
59
+ * are not present in the route bundle's dependency graph. Keeping an entry
60
+ * after its server graph changes can therefore reload a route that still
61
+ * imports an obsolete external bundle.
62
+ */
63
+ clearDevelopmentEntries(): void;
54
64
  pruneStaleRenderedOutputs(activePathnames: ReadonlySet<string>): string[];
55
65
  private loadManifest;
56
66
  private persistManifest;