@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,281 +1,279 @@
1
- import { mergeBrowserRuntimeManifests } from "./browser-runtime-manifest.js";
2
- import { normalizeNodeRuntimeBuildOutputs } from "./runtime-build-output-normalizer.js";
3
- import {
4
- createAppBuildManifest,
5
- getBrowserBuildPlugins,
6
- getServerBuildPlugins
7
- } from "./build-manifest.js";
8
- import { getJsxOwnershipPlugins } from "./jsx-ownership-plugins.js";
9
- import { createRolldownBuildAdapter } from "./rolldown-build-adapter.js";
10
- import { createRolldownDevBuildAdapter } from "./rolldown-dev-build-adapter.js";
11
- import { appLogger } from "../global/app-logger.js";
12
- function mergeBuildExecutorPlugins(existing, appPlugins) {
13
- if (!existing || existing.length === 0) {
14
- return appPlugins;
15
- }
16
- const byName = /* @__PURE__ */ new Map();
17
- for (const plugin of existing) {
18
- byName.set(plugin.name, plugin);
19
- }
20
- for (const plugin of appPlugins) {
21
- byName.set(plugin.name, plugin);
22
- }
23
- return Array.from(byName.values());
24
- }
25
- function withBuildExecutorPlugins(executor, getPlugins) {
26
- return {
27
- async build(options) {
28
- const appPlugins = getPlugins();
29
- if (appPlugins.length === 0) {
30
- return executor.build(options);
31
- }
32
- return executor.build({
33
- ...options,
34
- plugins: mergeBuildExecutorPlugins(options.plugins, appPlugins)
35
- });
36
- }
37
- };
1
+ /**
2
+ * Build pipeline contracts and app-owned adapter wiring.
3
+ *
4
+ * @remarks
5
+ * The build layer exposes three concentric shapes:
6
+ *
7
+ * - `BuildAdapter` — the low-level backend contract. Two implementations
8
+ * exist: a bundler-backed adapter (the real backend) and
9
+ * {@link ViteHostBuildAdapter} (a host-owned boundary marker that throws
10
+ * on direct use, for host runtimes that own their own build pipeline).
11
+ * - `BuildExecutor` the runtime-facing facade stored on
12
+ * `appConfig.runtime.buildRuntime` via profile-based accessors.
13
+ * - App-owned helpers (`getAppBuildAdapter` and the `set*` counterparts)
14
+ * the supported way for runtime code to read and mutate the active adapter
15
+ * per `EcoPagesAppConfig`. Profile executors live on
16
+ * `appConfig.runtime.buildRuntime`.
17
+ */
18
+ import {} from './contracts/build-contracts.js';
19
+ import { createAppBuildManifest, getBrowserBuildPlugins, getServerBuildPlugins, } from './contracts/build-manifest.js';
20
+ import { getAppSourceTransforms } from '../plugins/source-transform.js';
21
+ import { createAliasResolverPlugin } from '../plugins/alias-resolver-plugin.js';
22
+ import { getJsxOwnershipPlugins } from './browser/jsx-ownership-plugins.js';
23
+ import { createRolldownBuildAdapter } from './rolldown/rolldown-build-adapter.js';
24
+ /**
25
+ * @remarks
26
+ * All runtime-bag setters funnel through here so `appConfig.runtime` is patched
27
+ * in one place instead of repeating the spread-merge at every call site.
28
+ */
29
+ function patchAppRuntime(appConfig, patch) {
30
+ appConfig.runtime = {
31
+ ...(appConfig.runtime ?? {}),
32
+ ...patch,
33
+ };
38
34
  }
39
35
  function createHostOwnedBuildError(methodName) {
40
- return new Error(
41
- `Vite-hosted builds are owned by the host runtime. Core cannot ${methodName} through the host-owned compatibility adapter.`
42
- );
43
- }
44
- class ViteHostBuildAdapter {
45
- ownership = "vite-host";
46
- async build(_options) {
47
- throw createHostOwnedBuildError("build");
48
- }
49
- resolve(_importPath, _rootDir) {
50
- throw createHostOwnedBuildError("resolve imports");
51
- }
52
- getTranspileOptions(_profile) {
53
- throw createHostOwnedBuildError("derive transpile options");
54
- }
55
- }
56
- function createViteHostBuildAdapter() {
57
- return new ViteHostBuildAdapter();
58
- }
59
- function createBuildAdapter(options) {
60
- switch (options?.ownership ?? "rolldown") {
61
- case "vite-host":
62
- return createViteHostBuildAdapter();
63
- case "rolldown-dev":
64
- return createRolldownDevBuildAdapter();
65
- case "rolldown":
66
- default:
67
- return createRolldownBuildAdapter();
68
- }
69
- }
70
- const defaultRolldownBuildAdapter = createBuildAdapter({ ownership: "rolldown" });
71
- const defaultViteHostBuildAdapter = createBuildAdapter({ ownership: "vite-host" });
72
- const defaultBuildAdapter = defaultRolldownBuildAdapter;
73
- function getDefaultBuildAdapter(ownership = "rolldown") {
74
- return ownership === "vite-host" ? defaultViteHostBuildAdapter : defaultRolldownBuildAdapter;
36
+ return new Error(`Vite-hosted builds are owned by the host runtime. Core cannot ${methodName} through the host-owned compatibility adapter.`);
75
37
  }
76
- function getBuildAdapterOwnership(buildAdapter) {
77
- return buildAdapter?.ownership ?? "rolldown";
78
- }
79
- function getAppBuildOwnership(appConfig) {
80
- return appConfig.runtime?.buildOwnership ?? getBuildAdapterOwnership(appConfig.runtime?.buildAdapter);
81
- }
82
- function setAppBuildOwnership(appConfig, buildOwnership) {
83
- appConfig.runtime = {
84
- ...appConfig.runtime ?? {},
85
- buildOwnership
86
- };
87
- }
88
- function getAppBuildAdapter(appConfig) {
89
- return appConfig.runtime?.buildAdapter ?? getDefaultBuildAdapter(getAppBuildOwnership(appConfig));
90
- }
91
- function setAppBuildAdapter(appConfig, buildAdapter) {
92
- appConfig.runtime = {
93
- ...appConfig.runtime ?? {},
94
- buildOwnership: getBuildAdapterOwnership(buildAdapter),
95
- buildAdapter
96
- };
38
+ /**
39
+ * Boundary-marker adapter for Vite-host ownership.
40
+ *
41
+ * @remarks
42
+ * This is not a real backend. It exists so `appConfig.runtime.buildAdapter`
43
+ * can carry the `'vite-host'` ownership without falling back to a
44
+ * framework-owned bundler path. Every method throws a
45
+ * {@link createHostOwnedBuildError} so misrouted calls fail loudly
46
+ * with a clear message instead of silently executing under a
47
+ * different backend.
48
+ *
49
+ * The class stays in the public surface for host runtimes that own
50
+ * their build pipeline (e.g. Nitro) and for app code that wants to
51
+ * opt into host-owned ownership before its host wires up the build.
52
+ */
53
+ export class ViteHostBuildAdapter {
54
+ ownership = 'vite-host';
55
+ async build(_options) {
56
+ throw createHostOwnedBuildError('build');
57
+ }
58
+ resolve(_importPath, _rootDir) {
59
+ throw createHostOwnedBuildError('resolve imports');
60
+ }
61
+ getTranspileOptions(_profile) {
62
+ throw createHostOwnedBuildError('derive transpile options');
63
+ }
97
64
  }
98
- function getAppBuildManifest(appConfig) {
99
- return appConfig.runtime?.buildManifest ?? createAppBuildManifest({
100
- loaderPlugins: Array.from(appConfig.loaders?.values() ?? [])
101
- });
65
+ /**
66
+ * Constructs a {@link ViteHostBuildAdapter}. Use only in code paths
67
+ * that explicitly opt into the host-owned boundary.
68
+ */
69
+ export function createViteHostBuildAdapter() {
70
+ return new ViteHostBuildAdapter();
102
71
  }
103
- function setAppBuildManifest(appConfig, buildManifest) {
104
- appConfig.runtime = {
105
- ...appConfig.runtime ?? {},
106
- buildManifest
107
- };
72
+ /**
73
+ * Constructs a build adapter for the given ownership.
74
+ *
75
+ * @param options - When `options.ownership` is omitted, the default is
76
+ * `'rolldown'`. The Vite-host path is opt-in.
77
+ */
78
+ export function createBuildAdapter(options) {
79
+ switch (options?.ownership ?? 'rolldown') {
80
+ case 'vite-host':
81
+ return createViteHostBuildAdapter();
82
+ case 'rolldown':
83
+ default:
84
+ return createRolldownBuildAdapter();
85
+ }
108
86
  }
109
- function createConfiguredAppBuildManifest(appConfig, input) {
110
- return createAppBuildManifest({
111
- loaderPlugins: input?.loaderPlugins ?? Array.from(appConfig.loaders.values()),
112
- runtimePlugins: input?.runtimePlugins,
113
- browserBundlePlugins: input?.browserBundlePlugins,
114
- browserRuntimeManifest: input?.browserRuntimeManifest
115
- });
87
+ /** The shared default-bundler backend instance. Use {@link getAppBuildAdapter} in app-aware code. */
88
+ export const defaultRolldownBuildAdapter = createBuildAdapter({ ownership: 'rolldown' });
89
+ /** The shared Vite-host boundary instance. Use {@link getAppBuildAdapter} in app-aware code. */
90
+ export const defaultViteHostBuildAdapter = createBuildAdapter({ ownership: 'vite-host' });
91
+ /**
92
+ * Global default build adapter.
93
+ *
94
+ * @remarks
95
+ * Resolves to the bundled default-bundler adapter. New app-aware
96
+ * code should prefer {@link getAppBuildAdapter}.
97
+ */
98
+ export const defaultBuildAdapter = defaultRolldownBuildAdapter;
99
+ /**
100
+ * Resolves the default build adapter for an ownership value.
101
+ *
102
+ * @param ownership - Defaults to `'rolldown'`. Returns the
103
+ * {@link ViteHostBuildAdapter} only when the caller explicitly asks
104
+ * for `'vite-host'`.
105
+ */
106
+ export function getDefaultBuildAdapter(ownership = 'rolldown') {
107
+ return ownership === 'vite-host' ? defaultViteHostBuildAdapter : defaultRolldownBuildAdapter;
116
108
  }
117
- function updateAppBuildManifest(appConfig, input) {
118
- setAppBuildManifest(appConfig, createConfiguredAppBuildManifest(appConfig, input));
109
+ /**
110
+ * Reads the {@link BuildOwnership} declared on a {@link BuildAdapter}.
111
+ *
112
+ * @param buildAdapter - When `undefined`, defaults to `'rolldown'`.
113
+ */
114
+ export function getBuildAdapterOwnership(buildAdapter) {
115
+ return buildAdapter?.ownership ?? 'rolldown';
119
116
  }
120
- async function collectConfiguredAppBuildManifestContributions(appConfig) {
121
- const runtimePlugins = [];
122
- const browserBundlePlugins = [];
123
- const browserRuntimeManifests = [];
124
- for (const processor of appConfig.processors.values()) {
125
- await processor.prepareBuildContributions();
126
- if (processor.plugins) {
127
- runtimePlugins.push(...processor.plugins);
128
- }
129
- if (processor.buildPlugins) {
130
- browserBundlePlugins.push(...processor.buildPlugins);
131
- }
132
- }
133
- for (const integration of appConfig.integrations) {
134
- integration.setConfig(appConfig);
135
- await integration.prepareBuildContributions();
136
- runtimePlugins.push(...integration.plugins ?? []);
137
- browserBundlePlugins.push(...integration.browserBuildPlugins ?? []);
138
- browserRuntimeManifests.push(integration.browserRuntimeManifest);
139
- }
140
- return {
141
- runtimePlugins,
142
- browserBundlePlugins,
143
- browserRuntimeManifest: mergeBrowserRuntimeManifests(...browserRuntimeManifests)
144
- };
117
+ /**
118
+ * Resolves the build ownership of an app config.
119
+ *
120
+ * @remarks
121
+ * Resolution order: `appConfig.runtime.buildOwnership` (explicit), then
122
+ * the ownership declared on `appConfig.runtime.buildAdapter`, then the
123
+ * default `'rolldown'`.
124
+ */
125
+ export function getAppBuildOwnership(appConfig) {
126
+ return appConfig.runtime?.buildOwnership ?? getBuildAdapterOwnership(appConfig.runtime?.buildAdapter);
145
127
  }
146
- async function setupAppRuntimePlugins(options) {
147
- if (options.appConfig.runtime?.runtimeAssetsPrepared) {
148
- appLogger.debug("Skipped setupAppRuntimePlugins: runtime assets already prepared");
149
- for (const loader of options.appConfig.loaders.values()) {
150
- options.onRuntimePlugin?.(loader);
151
- }
152
- for (const processor of options.appConfig.processors.values()) {
153
- if (processor.plugins) {
154
- for (const plugin of processor.plugins) {
155
- options.onRuntimePlugin?.(plugin);
156
- }
157
- }
158
- }
159
- for (const integration of options.appConfig.integrations) {
160
- for (const plugin of integration.plugins) {
161
- options.onRuntimePlugin?.(plugin);
162
- }
163
- }
164
- return;
165
- }
166
- appLogger.debugTime("setupAppRuntimePlugins");
167
- try {
168
- for (const loader of options.appConfig.loaders.values()) {
169
- options.onRuntimePlugin?.(loader);
170
- }
171
- for (const processor of options.appConfig.processors.values()) {
172
- await processor.setup();
173
- if (processor.plugins) {
174
- for (const plugin of processor.plugins) {
175
- options.onRuntimePlugin?.(plugin);
176
- }
177
- }
178
- }
179
- for (const integration of options.appConfig.integrations) {
180
- integration.setConfig(options.appConfig);
181
- integration.setRuntimeOrigin(options.runtimeOrigin);
182
- if (options.hmrManager) {
183
- integration.setHmrManager(options.hmrManager);
184
- }
185
- await integration.setup();
186
- for (const plugin of integration.plugins) {
187
- options.onRuntimePlugin?.(plugin);
188
- }
189
- }
190
- options.appConfig.runtime = {
191
- ...options.appConfig.runtime ?? {},
192
- runtimeAssetsPrepared: true
193
- };
194
- } finally {
195
- appLogger.debugTimeEnd("setupAppRuntimePlugins");
196
- }
128
+ /**
129
+ * Sets the explicit build ownership on an app config.
130
+ *
131
+ * @remarks
132
+ * The `ConfigBuilder` uses this when the caller calls
133
+ * `setBuildOwnership`. App code that needs a different ownership
134
+ * should call this directly with a new value; passing the same
135
+ * value is a no-op.
136
+ */
137
+ export function setAppBuildOwnership(appConfig, buildOwnership) {
138
+ patchAppRuntime(appConfig, { buildOwnership });
197
139
  }
198
- function getAppServerBuildPlugins(appConfig) {
199
- return getServerBuildPlugins(getAppBuildManifest(appConfig));
140
+ /**
141
+ * Returns the adapter owned by an app/runtime instance.
142
+ *
143
+ * @remarks
144
+ * Falls back through `appConfig.runtime.buildAdapter` →
145
+ * {@link getDefaultBuildAdapter} on the resolved ownership. Throws
146
+ * never; a missing adapter resolves to the global default.
147
+ */
148
+ export function getAppBuildAdapter(appConfig) {
149
+ return appConfig.runtime?.buildAdapter ?? getDefaultBuildAdapter(getAppBuildOwnership(appConfig));
200
150
  }
201
- function getAppBrowserBuildPlugins(appConfig) {
202
- const manifest = getAppBuildManifest(appConfig);
203
- return [...getBrowserBuildPlugins(manifest), ...getJsxOwnershipPlugins(appConfig)];
151
+ /**
152
+ * Installs the adapter that should serve future builds for one app
153
+ * instance, and aligns the ownership field to the new adapter's
154
+ * declared ownership.
155
+ */
156
+ export function setAppBuildAdapter(appConfig, buildAdapter) {
157
+ patchAppRuntime(appConfig, {
158
+ buildOwnership: getBuildAdapterOwnership(buildAdapter),
159
+ buildAdapter,
160
+ });
204
161
  }
205
- function getAppBuildExecutor(appConfig) {
206
- return appConfig.runtime?.routeModuleBuildExecutor ?? appConfig.runtime?.buildExecutor ?? getAppBuildAdapter(appConfig);
162
+ /**
163
+ * Returns the build manifest owned by an app/runtime instance.
164
+ *
165
+ * @remarks
166
+ * Falls back to a fresh manifest seeded from the config's loaders when
167
+ * the app config has no manifest yet. This is the supported way to
168
+ * read the manifest across the source-loading and asset-processing
169
+ * services.
170
+ */
171
+ export function getAppBuildManifest(appConfig) {
172
+ return (appConfig.runtime?.buildManifest ??
173
+ createAppBuildManifest({
174
+ loaderPlugins: Array.from(appConfig.loaders?.values() ?? []),
175
+ }));
207
176
  }
208
- function getAppHmrBuildExecutor(appConfig) {
209
- return appConfig.runtime?.hmrBuildExecutor ?? getAppBuildExecutor(appConfig);
177
+ /** Installs the build manifest that should be visible to one app instance.
178
+ *
179
+ * @remarks
180
+ * Production apps are sealed via {@link updateAppBuildManifest} during
181
+ * {@link ConfigBuilder.build}. Call `setAppBuildManifest` directly only in tests or
182
+ * when replacing the entire manifest object; partial updates should use
183
+ * {@link updateAppBuildManifest}.
184
+ */
185
+ export function setAppBuildManifest(appConfig, buildManifest) {
186
+ patchAppRuntime(appConfig, { buildManifest });
210
187
  }
211
- function getAppRouteModuleBuildExecutor(appConfig) {
212
- return appConfig.runtime?.routeModuleBuildExecutor ?? getAppBuildExecutor(appConfig);
188
+ /**
189
+ * Builds a fresh app manifest from the config's loaders plus optional
190
+ * caller-supplied runtime/browser contributions.
191
+ *
192
+ * @remarks
193
+ * Loader plugins are always taken from the config; runtime and
194
+ * browser-bundle plugins are passed through from the caller when
195
+ * supplied, otherwise left empty for later population by
196
+ * {@link collectConfiguredAppBuildManifestContributions}.
197
+ */
198
+ export function createConfiguredAppBuildManifest(appConfig, input) {
199
+ return createAppBuildManifest({
200
+ loaderPlugins: input?.loaderPlugins ?? Array.from(appConfig.loaders.values()),
201
+ runtimePlugins: input?.runtimePlugins,
202
+ browserBundlePlugins: input?.browserBundlePlugins,
203
+ browserRuntimeManifest: input?.browserRuntimeManifest,
204
+ });
213
205
  }
214
- function setAppBuildExecutor(appConfig, buildExecutor) {
215
- appConfig.runtime = {
216
- ...appConfig.runtime ?? {},
217
- buildExecutor
218
- };
206
+ /**
207
+ * Replaces the app-owned manifest using config-owned loaders and the
208
+ * caller-supplied contribution input.
209
+ *
210
+ * @remarks
211
+ * Primary production entry: `ConfigBuilder.build()` passes the return value of
212
+ * {@link collectConfiguredAppBuildManifestContributions} here to seal
213
+ * `appConfig.runtime.buildManifest` before startup.
214
+ */
215
+ export function updateAppBuildManifest(appConfig, input) {
216
+ setAppBuildManifest(appConfig, createConfiguredAppBuildManifest(appConfig, input));
219
217
  }
220
- function setAppHmrBuildExecutor(appConfig, buildExecutor) {
221
- appConfig.runtime = {
222
- ...appConfig.runtime ?? {},
223
- hmrBuildExecutor: buildExecutor
224
- };
218
+ export { collectConfiguredAppBuildManifestContributions, ensureIntegrationRuntimeReady, setupAppRuntimePlugins, } from './app-build-manifest-runtime.js';
219
+ /**
220
+ * Returns the server-bundle plugin list for one app/runtime instance.
221
+ *
222
+ * @remarks
223
+ * Reads from the app's sealed build manifest; the manifest itself is
224
+ * the source of truth for which plugins participate in the server
225
+ * bundle.
226
+ */
227
+ export function getAppServerBuildPlugins(appConfig) {
228
+ const projectDir = appConfig.absolutePaths?.projectDir;
229
+ const aliasPlugin = projectDir ? [createAliasResolverPlugin(projectDir)] : [];
230
+ return [...aliasPlugin, ...getServerBuildPlugins(getAppBuildManifest(appConfig))];
225
231
  }
226
- function setAppRouteModuleBuildExecutor(appConfig, buildExecutor) {
227
- appConfig.runtime = {
228
- ...appConfig.runtime ?? {},
229
- routeModuleBuildExecutor: buildExecutor,
230
- buildExecutor
231
- };
232
+ /**
233
+ * Returns the browser-bundle plugin list for one app/runtime instance.
234
+ *
235
+ * @remarks
236
+ * Reads from the app's sealed build manifest. The browser-bundle
237
+ * manifest is the source of truth for which plugins participate in the
238
+ * browser bundle.
239
+ *
240
+ * Plugins whose `name` matches a registered {@link EcoSourceTransform} are
241
+ * excluded here because browser builds run those transforms via the Rolldown
242
+ * bridge post-load pass instead of as competing `onLoad` handlers.
243
+ */
244
+ export function getAppBrowserBuildPlugins(appConfig) {
245
+ const manifest = getAppBuildManifest(appConfig);
246
+ const sourceTransformNames = new Set(getAppSourceTransforms(appConfig).map((transform) => transform.name));
247
+ const browserPlugins = getBrowserBuildPlugins(manifest).filter((plugin) => !sourceTransformNames.has(plugin.name));
248
+ const projectDir = appConfig.absolutePaths?.projectDir;
249
+ const aliasPlugin = projectDir ? [createAliasResolverPlugin(projectDir)] : [];
250
+ return [...aliasPlugin, ...browserPlugins, ...getJsxOwnershipPlugins(appConfig)];
232
251
  }
233
- function build(options, executor = defaultRolldownBuildAdapter) {
234
- return executor.build(options).then((result) => {
235
- if (result.success) {
236
- normalizeNodeRuntimeBuildOutputs(
237
- result.outputs.map((output) => output.path),
238
- options.root ?? process.cwd()
239
- );
240
- }
241
- return result;
242
- });
252
+ /**
253
+ * Runs a build through the active pipeline.
254
+ *
255
+ * @remarks
256
+ * `executor` defaults to the default-bundler adapter for non-app-aware
257
+ * callsites. App-aware code should pass a profile executor from
258
+ * {@link requireBuildRuntime} to honor the per-app pipeline.
259
+ */
260
+ export function build(options, executor = defaultRolldownBuildAdapter) {
261
+ return executor.build(options);
243
262
  }
244
- function getTranspileOptions(profile) {
245
- return defaultRolldownBuildAdapter.getTranspileOptions(profile);
263
+ /**
264
+ * Default transpile-options helper for callsites without app runtime
265
+ * context.
266
+ *
267
+ * @remarks
268
+ * New app-aware code should prefer {@link getAppTranspileOptions}.
269
+ */
270
+ export function getTranspileOptions(profile) {
271
+ return defaultRolldownBuildAdapter.getTranspileOptions(profile);
246
272
  }
247
- function getAppTranspileOptions(appConfig, profile) {
248
- return getAppBuildAdapter(appConfig).getTranspileOptions(profile);
273
+ /**
274
+ * Resolves transpile options for one app/runtime instance by asking
275
+ * the app's adapter.
276
+ */
277
+ export function getAppTranspileOptions(appConfig, profile) {
278
+ return getAppBuildAdapter(appConfig).getTranspileOptions(profile);
249
279
  }
250
- export {
251
- ViteHostBuildAdapter,
252
- build,
253
- collectConfiguredAppBuildManifestContributions,
254
- createBuildAdapter,
255
- createConfiguredAppBuildManifest,
256
- createViteHostBuildAdapter,
257
- defaultBuildAdapter,
258
- defaultRolldownBuildAdapter,
259
- defaultViteHostBuildAdapter,
260
- getAppBrowserBuildPlugins,
261
- getAppBuildAdapter,
262
- getAppBuildExecutor,
263
- getAppBuildManifest,
264
- getAppBuildOwnership,
265
- getAppHmrBuildExecutor,
266
- getAppRouteModuleBuildExecutor,
267
- getAppServerBuildPlugins,
268
- getAppTranspileOptions,
269
- getBuildAdapterOwnership,
270
- getDefaultBuildAdapter,
271
- getTranspileOptions,
272
- setAppBuildAdapter,
273
- setAppBuildExecutor,
274
- setAppBuildManifest,
275
- setAppBuildOwnership,
276
- setAppHmrBuildExecutor,
277
- setAppRouteModuleBuildExecutor,
278
- setupAppRuntimePlugins,
279
- updateAppBuildManifest,
280
- withBuildExecutorPlugins
281
- };
@@ -1,6 +1,6 @@
1
- import type { IntegrationPlugin } from '../plugins/integration-plugin.js';
2
- import type { Processor } from '../plugins/processor.js';
3
- import type { EcoPagesAppConfig } from '../types/internal-types.js';
1
+ import type { IntegrationPlugin } from '../../plugins/integration-plugin.js';
2
+ import type { Processor } from '../../plugins/processor.js';
3
+ import type { EcoPagesAppConfig } from '../../types/internal-types.js';
4
4
  /**
5
5
  * Optional contributor surface for build-time cache invalidation.
6
6
  *
@@ -0,0 +1,33 @@
1
+ import { fileSystem } from '@ecopages/file-system';
2
+ /** Returns whether a processor or integration signals changed build inputs. */
3
+ export function didBuildInputContributorChange(contributor) {
4
+ return contributor.didChange?.() === true;
5
+ }
6
+ /** Hashes the app's eco.config.ts file when present. */
7
+ export function hashAppConfigFile(appConfig) {
8
+ const configPath = appConfig.absolutePaths?.config;
9
+ if (!configPath || !fileSystem.exists(configPath)) {
10
+ return 'missing';
11
+ }
12
+ return fileSystem.hash(configPath);
13
+ }
14
+ /** Fingerprints processor/integration build-input state for cache invalidation. */
15
+ export function createBuildInputsFingerprint(appConfig) {
16
+ const changedContributors = [
17
+ ...Array.from(appConfig.processors?.values() ?? [])
18
+ .filter((processor) => didBuildInputContributorChange(processor))
19
+ .map((processor) => `processor:${processor.getName()}`),
20
+ ...(appConfig.integrations ?? [])
21
+ .filter((integration) => didBuildInputContributorChange(integration))
22
+ .map((integration) => `integration:${integration.name}`),
23
+ ];
24
+ return changedContributors.length > 0 ? changedContributors.sort().join('|') : 'stable';
25
+ }
26
+ /** Returns true when any processor or integration reports changed build inputs. */
27
+ export function haveBuildInputsChanged(appConfig) {
28
+ return createBuildInputsFingerprint(appConfig) !== 'stable';
29
+ }
30
+ /** Collects every processor and integration that can invalidate incremental builds. */
31
+ export function collectBuildInputContributors(appConfig) {
32
+ return [...Array.from(appConfig.processors?.values() ?? []), ...(appConfig.integrations ?? [])];
33
+ }
@@ -0,0 +1,4 @@
1
+ /** Filename written beside persisted production build artifacts that store incremental metadata. */
2
+ export declare const ROUTE_MODULE_BUILD_CACHE_FILENAME = ".build-cache.json";
3
+ /** @deprecated Use {@link ROUTE_MODULE_BUILD_CACHE_FILENAME}; server-entry caches share the same filename. */
4
+ export declare const SERVER_ENTRY_BUILD_CACHE_FILENAME = ".build-cache.json";
@@ -0,0 +1,4 @@
1
+ /** Filename written beside persisted production build artifacts that store incremental metadata. */
2
+ export const ROUTE_MODULE_BUILD_CACHE_FILENAME = '.build-cache.json';
3
+ /** @deprecated Use {@link ROUTE_MODULE_BUILD_CACHE_FILENAME}; server-entry caches share the same filename. */
4
+ export const SERVER_ENTRY_BUILD_CACHE_FILENAME = ROUTE_MODULE_BUILD_CACHE_FILENAME;
@@ -0,0 +1,22 @@
1
+ import type { EcoBuildPlugin } from '../contracts/build-types.js';
2
+ import type { BuildOptions } from '../contracts/build-contracts.js';
3
+ /**
4
+ * Returns the installed `@ecopages/core` package version for cache invalidation.
5
+ */
6
+ export declare function getCorePackageVersion(): string;
7
+ /** Stable fingerprint for JSX options used in build and disk cache keys. */
8
+ export declare function createJsxCacheKey(jsx: BuildOptions['jsx']): string;
9
+ /** Stable fingerprint for ordered build plugins. */
10
+ export declare function createPluginCacheKey(plugins?: EcoBuildPlugin[]): string;
11
+ /** Stable fingerprint for ordered source transforms. */
12
+ export declare function createSourceTransformCacheKey(sourceTransforms: BuildOptions['sourceTransforms']): string;
13
+ /**
14
+ * Stable fingerprint of a function body for cache and request identity keys.
15
+ *
16
+ * @remarks
17
+ * Hashes `fn.toString()`. Suitable for in-process and persisted keys that must
18
+ * agree within one install; not stable across minifiers or renames.
19
+ */
20
+ export declare function hashFunctionIdentity(fn: (...args: never[]) => unknown): string;
21
+ /** @deprecated Use {@link hashFunctionIdentity}. */
22
+ export declare const hashPluginSetup: typeof hashFunctionIdentity;