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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/README.md +44 -14
  2. package/package.json +368 -57
  3. package/src/adapters/README.md +6 -2
  4. package/src/adapters/abstract/application-adapter.d.ts +57 -5
  5. package/src/adapters/abstract/application-adapter.js +261 -203
  6. package/src/adapters/abstract/router-adapter.js +12 -4
  7. package/src/adapters/abstract/segment-path-matcher.d.ts +6 -0
  8. package/src/adapters/abstract/segment-path-matcher.js +147 -0
  9. package/src/adapters/abstract/server-adapter.d.ts +13 -2
  10. package/src/adapters/abstract/server-adapter.js +22 -14
  11. package/src/adapters/abstract/ws-pattern-matcher.d.ts +2 -50
  12. package/src/adapters/abstract/ws-pattern-matcher.js +24 -57
  13. package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
  14. package/src/adapters/bun/client-bridge.js +51 -50
  15. package/src/adapters/bun/create-app.d.ts +5 -7
  16. package/src/adapters/bun/create-app.js +169 -154
  17. package/src/adapters/bun/hmr-manager.d.ts +2 -3
  18. package/src/adapters/bun/hmr-manager.js +62 -57
  19. package/src/adapters/bun/index.d.ts +1 -1
  20. package/src/adapters/bun/index.js +2 -8
  21. package/src/adapters/bun/runtime-host.d.ts +1 -1
  22. package/src/adapters/bun/runtime-host.js +61 -54
  23. package/src/adapters/bun/server-adapter.d.ts +34 -53
  24. package/src/adapters/bun/server-adapter.js +557 -637
  25. package/src/adapters/bun/static-preview-host.d.ts +1 -1
  26. package/src/adapters/bun/static-preview-host.js +43 -41
  27. package/src/adapters/create-app.d.ts +1 -12
  28. package/src/adapters/create-app.js +11 -72
  29. package/src/adapters/index.d.ts +2 -2
  30. package/src/adapters/index.js +2 -8
  31. package/src/adapters/node/create-app.d.ts +4 -3
  32. package/src/adapters/node/create-app.js +123 -98
  33. package/src/adapters/node/http-request-bridge.js +147 -106
  34. package/src/adapters/node/node-client-bridge.js +62 -64
  35. package/src/adapters/node/node-hmr-manager.d.ts +2 -3
  36. package/src/adapters/node/node-hmr-manager.js +58 -48
  37. package/src/adapters/node/runtime-host.d.ts +1 -1
  38. package/src/adapters/node/runtime-host.js +96 -89
  39. package/src/adapters/node/server-adapter-dependencies.js +18 -17
  40. package/src/adapters/node/server-adapter.d.ts +28 -8
  41. package/src/adapters/node/server-adapter.js +349 -302
  42. package/src/adapters/node/static-content-server.js +172 -186
  43. package/src/adapters/node/static-preview-host.d.ts +1 -1
  44. package/src/adapters/node/static-preview-host.js +88 -64
  45. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
  46. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
  47. package/src/adapters/shared/{hmr-html-response.d.ts → hmr/hmr-html-response.d.ts} +2 -2
  48. package/src/adapters/shared/hmr/hmr-html-response.js +50 -0
  49. package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +92 -0
  50. package/src/adapters/shared/hmr/shared-hmr-manager.js +446 -0
  51. package/src/adapters/shared/http/api-request-pipeline.d.ts +23 -0
  52. package/src/adapters/shared/http/api-request-pipeline.js +132 -0
  53. package/src/adapters/shared/{api-response.d.ts → http/api-response.d.ts} +1 -1
  54. package/src/adapters/shared/http/api-response.js +79 -0
  55. package/src/adapters/shared/http/create-body-response.d.ts +12 -0
  56. package/src/adapters/shared/http/create-body-response.js +26 -0
  57. package/src/adapters/shared/http/define-api-handler.d.ts +48 -0
  58. package/src/adapters/shared/http/define-api-handler.js +49 -0
  59. package/src/adapters/shared/{explicit-static-render-preparation.d.ts → http/explicit-static-render-preparation.d.ts} +3 -3
  60. package/src/adapters/shared/http/explicit-static-render-preparation.js +29 -0
  61. package/src/adapters/shared/{explicit-static-route-matcher.d.ts → http/explicit-static-route-matcher.d.ts} +3 -9
  62. package/src/adapters/shared/http/explicit-static-route-matcher.js +59 -0
  63. package/src/adapters/shared/{file-route-middleware-pipeline.d.ts → http/file-route-middleware-pipeline.d.ts} +2 -2
  64. package/src/adapters/shared/http/file-route-middleware-pipeline.js +84 -0
  65. package/src/adapters/shared/{fs-server-response-factory.d.ts → http/fs-server-response-factory.d.ts} +7 -2
  66. package/src/adapters/shared/http/fs-server-response-factory.js +106 -0
  67. package/src/adapters/shared/{fs-server-response-matcher.d.ts → http/fs-server-response-matcher.d.ts} +25 -5
  68. package/src/adapters/shared/http/fs-server-response-matcher.js +260 -0
  69. package/src/adapters/shared/http/run-middleware-chain.d.ts +5 -0
  70. package/src/adapters/shared/http/run-middleware-chain.js +17 -0
  71. package/src/adapters/shared/{application-adapter.d.ts → runtime/application-adapter.d.ts} +2 -2
  72. package/src/adapters/shared/runtime/application-adapter.js +75 -0
  73. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.d.ts +11 -0
  74. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.js +29 -0
  75. package/src/adapters/shared/runtime/copy-runtime-public-dir.js +27 -0
  76. package/src/adapters/shared/runtime/dev-static-route-prewarm.d.ts +16 -0
  77. package/src/adapters/shared/runtime/dev-static-route-prewarm.js +66 -0
  78. package/src/adapters/shared/runtime/port-manager.d.ts +116 -0
  79. package/src/adapters/shared/runtime/port-manager.js +226 -0
  80. package/src/adapters/shared/{render-context.d.ts → runtime/render-context.d.ts} +2 -2
  81. package/src/adapters/shared/runtime/render-context.js +99 -0
  82. package/src/adapters/shared/{runtime-app-bootstrap.d.ts → runtime/runtime-app-bootstrap.d.ts} +4 -2
  83. package/src/adapters/shared/runtime/runtime-app-bootstrap.js +38 -0
  84. package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +45 -0
  85. package/src/adapters/shared/runtime/runtime-server-lifecycle.js +71 -0
  86. package/src/adapters/shared/{server-adapter.d.ts → runtime/server-adapter.d.ts} +31 -50
  87. package/src/adapters/shared/runtime/server-adapter.js +301 -0
  88. package/src/adapters/shared/{server-route-handler.d.ts → runtime/server-route-handler.d.ts} +6 -33
  89. package/src/adapters/shared/runtime/server-route-handler.js +77 -0
  90. package/src/adapters/shared/{server-static-builder.d.ts → runtime/server-static-builder.d.ts} +26 -31
  91. package/src/adapters/shared/runtime/server-static-builder.js +172 -0
  92. package/src/adapters/shared/{static-preview-host.d.ts → runtime/static-preview-host.d.ts} +6 -1
  93. package/src/adapters/shared/{node-http-websocket-upgrades.d.ts → ws/node-http-websocket-upgrades.d.ts} +1 -1
  94. package/src/adapters/shared/ws/node-http-websocket-upgrades.js +109 -0
  95. package/src/adapters/shared/ws/websocket-lifecycle.d.ts +24 -0
  96. package/src/adapters/shared/ws/websocket-lifecycle.js +62 -0
  97. package/src/build/README.md +165 -45
  98. package/src/build/app-build-manifest-runtime.d.ts +39 -0
  99. package/src/build/app-build-manifest-runtime.js +145 -0
  100. package/src/build/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +4 -0
  101. package/src/build/browser/browser-runtime-manifest.js +65 -0
  102. package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +3 -5
  103. package/src/build/browser/browser-runtime-plugin-helpers.js +32 -0
  104. package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +12 -13
  105. package/src/build/browser/browser-runtime-plugin.js +218 -0
  106. package/src/build/browser/jsx-ownership-plugins.d.ts +24 -0
  107. package/src/build/browser/jsx-ownership-plugins.js +55 -0
  108. package/src/build/browser/lit-static-render-worker-context.d.ts +2 -0
  109. package/src/build/browser/lit-static-render-worker-context.js +4 -0
  110. package/src/build/build-adapter.d.ts +25 -355
  111. package/src/build/build-adapter.js +258 -265
  112. package/src/build/{build-input-fingerprint.d.ts → cache/build-input-fingerprint.d.ts} +3 -3
  113. package/src/build/cache/build-input-fingerprint.js +33 -0
  114. package/src/build/cache/cache-constants.d.ts +4 -0
  115. package/src/build/cache/cache-constants.js +4 -0
  116. package/src/build/cache/cache-keys.d.ts +22 -0
  117. package/src/build/cache/cache-keys.js +71 -0
  118. package/src/build/{pages-unified-graph-build.d.ts → cache/pages-unified-graph-build.d.ts} +1 -1
  119. package/src/build/cache/pages-unified-graph-build.js +199 -0
  120. package/src/build/cache/production-build-cache.d.ts +21 -0
  121. package/src/build/cache/production-build-cache.js +56 -0
  122. package/src/build/{server-entry-build-cache.d.ts → cache/server-entry-build-cache.d.ts} +3 -4
  123. package/src/build/cache/server-entry-build-cache.js +153 -0
  124. package/src/build/contracts/build-contracts.d.ts +96 -0
  125. package/src/build/contracts/build-contracts.js +1 -0
  126. package/src/build/contracts/build-manifest.d.ts +90 -0
  127. package/src/build/contracts/build-manifest.js +64 -0
  128. package/src/build/contracts/build-types.js +1 -0
  129. package/src/build/contracts/content-virtual-modules.d.ts +12 -0
  130. package/src/build/contracts/content-virtual-modules.js +29 -0
  131. package/src/build/{rolldown-adapter-helpers.d.ts → rolldown/rolldown-adapter-helpers.d.ts} +32 -9
  132. package/src/build/rolldown/rolldown-adapter-helpers.js +472 -0
  133. package/src/build/{rolldown-build-adapter.d.ts → rolldown/rolldown-build-adapter.d.ts} +3 -7
  134. package/src/build/rolldown/rolldown-build-adapter.js +57 -0
  135. package/src/build/{rolldown-build-invocation-metrics.d.ts → rolldown/rolldown-build-invocation-metrics.d.ts} +1 -1
  136. package/src/build/rolldown/rolldown-build-invocation-metrics.js +39 -0
  137. package/src/build/{rolldown-plugin-bridge.d.ts → rolldown/rolldown-plugin-bridge.d.ts} +7 -2
  138. package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
  139. package/src/build/{rolldown-source-transform-pass.d.ts → rolldown/rolldown-source-transform-pass.d.ts} +1 -1
  140. package/src/build/rolldown/rolldown-source-transform-pass.js +70 -0
  141. package/src/build/rolldown/runtime-build-output-normalizer.js +227 -0
  142. package/src/build/rolldown/server-side-css-shim-plugin.js +58 -0
  143. package/src/build/runtime/build-profile-options.d.ts +7 -0
  144. package/src/build/runtime/build-profile-options.js +37 -0
  145. package/src/build/runtime/build-request-identity.d.ts +17 -0
  146. package/src/build/runtime/build-request-identity.js +79 -0
  147. package/src/build/runtime/build-request-policy.d.ts +58 -0
  148. package/src/build/runtime/build-request-policy.js +84 -0
  149. package/src/build/runtime/build-runtime.d.ts +28 -0
  150. package/src/build/runtime/build-runtime.js +75 -0
  151. package/src/build/runtime/deduping-build-executor.d.ts +21 -0
  152. package/src/build/runtime/deduping-build-executor.js +40 -0
  153. package/src/build/{parallel-build-executor.d.ts → runtime/parallel-build-executor.d.ts} +1 -1
  154. package/src/build/runtime/parallel-build-executor.js +60 -0
  155. package/src/build/{serialized-build-executor.d.ts → runtime/serialized-build-executor.d.ts} +1 -1
  156. package/src/build/runtime/serialized-build-executor.js +79 -0
  157. package/src/cache/index.d.ts +2 -1
  158. package/src/cache/index.js +7 -6
  159. package/src/cache/module-parse-cache.d.ts +5 -0
  160. package/src/cache/module-parse-cache.js +122 -67
  161. package/src/cache/module-transform-profiler.d.ts +8 -0
  162. package/src/cache/module-transform-profiler.js +8 -0
  163. package/src/client/navigation-scripts/classification.d.ts +16 -0
  164. package/src/client/navigation-scripts/classification.js +49 -0
  165. package/src/client/navigation-scripts/index.d.ts +3 -0
  166. package/src/client/navigation-scripts/index.js +3 -0
  167. package/src/client/navigation-scripts/navigation-scripts.test.browser.d.ts +1 -0
  168. package/src/client/navigation-scripts/navigation-scripts.test.browser.js +61 -0
  169. package/src/client/navigation-scripts/registry.d.ts +11 -0
  170. package/src/client/navigation-scripts/registry.js +16 -0
  171. package/src/client/navigation-scripts/rerun-queue.d.ts +37 -0
  172. package/src/client/navigation-scripts/rerun-queue.js +90 -0
  173. package/src/client/scroll.d.ts +17 -0
  174. package/src/client/scroll.js +33 -0
  175. package/src/client/scroll.test.browser.d.ts +1 -0
  176. package/src/client/scroll.test.browser.js +31 -0
  177. package/src/client/view-transitions.d.ts +32 -0
  178. package/src/client/view-transitions.js +120 -0
  179. package/src/client/view-transitions.test.browser.d.ts +1 -0
  180. package/src/client/view-transitions.test.browser.js +56 -0
  181. package/src/config/README.md +1 -1
  182. package/src/config/config-builder.d.ts +40 -20
  183. package/src/config/config-builder.js +645 -610
  184. package/src/config/constants.d.ts +1 -0
  185. package/src/config/constants.js +44 -23
  186. package/src/declarations.d.ts +1 -0
  187. package/src/dev/README.md +24 -0
  188. package/src/dev/client-bridge-registry.d.ts +5 -0
  189. package/src/dev/client-bridge-registry.js +10 -0
  190. package/src/dev/dev-client-ownership.d.ts +7 -0
  191. package/src/dev/dev-client-ownership.js +8 -0
  192. package/src/dev/hmr-manager-registry.d.ts +8 -0
  193. package/src/dev/hmr-manager-registry.js +10 -0
  194. package/src/dev/host-runtime.d.ts +3 -0
  195. package/src/dev/host-runtime.js +25 -23
  196. package/src/dev/runtime-server-started-message.d.ts +2 -0
  197. package/src/dev/runtime-server-started-message.js +3 -0
  198. package/src/dev/sc-server.js +106 -103
  199. package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
  200. package/src/dev/transform-server/dev-transform-bundler.js +79 -0
  201. package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
  202. package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
  203. package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
  204. package/src/dev/transform-server/dev-transform-import-rewriter.js +127 -0
  205. package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
  206. package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
  207. package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
  208. package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
  209. package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
  210. package/src/dev/transform-server/dev-transform-server.js +191 -0
  211. package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
  212. package/src/dev/transform-server/dev-transform-url.js +58 -0
  213. package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +28 -0
  214. package/src/dev/transform-server/dev-transform-vendor-registry.js +166 -0
  215. package/src/dev/transform-server/index.d.ts +6 -0
  216. package/src/dev/transform-server/index.js +4 -0
  217. package/src/dev/transform-server/types.d.ts +15 -0
  218. package/src/dev/transform-server/types.js +1 -0
  219. package/src/dev-toolbar/README.md +52 -0
  220. package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
  221. package/src/dev-toolbar/define-dev-tool.js +9 -0
  222. package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
  223. package/src/dev-toolbar/dev-toolbar-config.js +19 -0
  224. package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
  225. package/src/dev-toolbar/dev-toolbar-host.js +117 -0
  226. package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
  227. package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
  228. package/src/dev-toolbar/dev-toolbar-manifest-contract.d.ts +22 -0
  229. package/src/dev-toolbar/dev-toolbar-manifest-contract.js +2 -0
  230. package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
  231. package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
  232. package/src/dev-toolbar/dev-toolbar-package.d.ts +34 -0
  233. package/src/dev-toolbar/dev-toolbar-package.js +78 -0
  234. package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
  235. package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
  236. package/src/diagnostics/request-build-dedupe.d.ts +18 -0
  237. package/src/diagnostics/request-build-dedupe.js +39 -0
  238. package/src/diagnostics/request-pipeline-metrics.d.ts +38 -0
  239. package/src/diagnostics/request-pipeline-metrics.js +121 -0
  240. package/src/diagnostics/startup-trace.d.ts +81 -0
  241. package/src/diagnostics/startup-trace.js +281 -0
  242. package/src/eco/README.md +17 -0
  243. package/src/eco/component-identity.d.ts +13 -0
  244. package/src/eco/component-identity.js +18 -0
  245. package/src/eco/eco-declared-component.d.ts +15 -0
  246. package/src/eco/eco-declared-component.js +23 -0
  247. package/src/eco/eco.browser.js +63 -70
  248. package/src/eco/eco.js +163 -97
  249. package/src/eco/eco.types.d.ts +47 -8
  250. package/src/eco/eco.types.js +5 -0
  251. package/src/eco/eco.utils.d.ts +1 -1
  252. package/src/eco/eco.utils.js +1 -10
  253. package/src/eco/global-injector-map.js +55 -41
  254. package/src/eco/lazy-injector-map.js +90 -60
  255. package/src/eco/module-dependencies.js +52 -44
  256. package/src/eco/page-layout-normalization.d.ts +21 -0
  257. package/src/eco/page-layout-normalization.js +69 -0
  258. package/src/env.d.ts +2 -0
  259. package/src/errors/http-error.d.ts +8 -0
  260. package/src/errors/http-error.js +66 -49
  261. package/src/errors/index.d.ts +1 -0
  262. package/src/errors/index.js +3 -6
  263. package/src/errors/locals-access-error.js +5 -8
  264. package/src/errors/undeclared-component-dependency-error.d.ts +11 -0
  265. package/src/errors/undeclared-component-dependency-error.js +17 -0
  266. package/src/global/app-logger.js +3 -6
  267. package/src/hmr/README.md +21 -0
  268. package/src/hmr/client/hmr-runtime.js +119 -110
  269. package/src/hmr/client/module-update.d.ts +13 -0
  270. package/src/hmr/client/module-update.js +39 -0
  271. package/src/hmr/hmr-asset-paths.d.ts +14 -0
  272. package/src/hmr/hmr-asset-paths.js +22 -0
  273. package/src/hmr/hmr-entrypoint-output.d.ts +21 -0
  274. package/src/hmr/hmr-entrypoint-output.js +34 -0
  275. package/src/hmr/hmr-file-change-prep.d.ts +10 -0
  276. package/src/hmr/hmr-file-change-prep.js +14 -0
  277. package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
  278. package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
  279. package/src/hmr/hmr-runtime-paths.d.ts +10 -0
  280. package/src/hmr/hmr-runtime-paths.js +13 -0
  281. package/src/hmr/hmr-strategy.d.ts +9 -0
  282. package/src/hmr/hmr-strategy.js +113 -42
  283. package/src/hmr/strategies/default-hmr-strategy.js +55 -33
  284. package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -97
  285. package/src/hmr/strategies/js-hmr-strategy.js +107 -167
  286. package/src/hmr/strategies/server-rendered-template-hmr-strategy.d.ts +17 -0
  287. package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +35 -0
  288. package/src/index.browser.d.ts +1 -0
  289. package/src/index.browser.js +2 -4
  290. package/src/index.d.ts +4 -1
  291. package/src/index.js +7 -21
  292. package/src/islands/README.md +25 -0
  293. package/src/islands/island-host.d.ts +37 -0
  294. package/src/islands/island-host.js +55 -0
  295. package/src/plugins/README.md +4 -2
  296. package/src/plugins/alias-resolver-cache.d.ts +6 -9
  297. package/src/plugins/alias-resolver-cache.js +114 -97
  298. package/src/plugins/alias-resolver-plugin.d.ts +3 -3
  299. package/src/plugins/alias-resolver-plugin.js +35 -62
  300. package/src/plugins/define-integration.d.ts +26 -0
  301. package/src/plugins/define-integration.js +20 -0
  302. package/src/plugins/eco-component-meta-plugin.d.ts +6 -102
  303. package/src/plugins/eco-component-meta-plugin.js +123 -162
  304. package/src/plugins/foreign-jsx-override-plugin.d.ts +1 -1
  305. package/src/plugins/foreign-jsx-override-plugin.js +49 -37
  306. package/src/plugins/integration-plugin.d.ts +28 -15
  307. package/src/plugins/integration-plugin.js +212 -195
  308. package/src/plugins/jsx-import-source.utils.d.ts +8 -0
  309. package/src/plugins/jsx-import-source.utils.js +21 -0
  310. package/src/plugins/package-specifier.d.ts +12 -0
  311. package/src/plugins/package-specifier.js +33 -0
  312. package/src/plugins/processor.d.ts +79 -12
  313. package/src/plugins/processor.js +188 -136
  314. package/src/plugins/runtime-capability.js +1 -0
  315. package/src/plugins/source-transform.d.ts +1 -1
  316. package/src/plugins/source-transform.js +109 -79
  317. package/src/plugins/tsconfig-import-resolver.d.ts +37 -0
  318. package/src/plugins/tsconfig-import-resolver.js +262 -0
  319. package/src/route-renderer/GRAPH.md +24 -30
  320. package/src/route-renderer/README.md +52 -32
  321. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.d.ts +107 -0
  322. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +155 -0
  323. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.d.ts +32 -0
  324. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +52 -0
  325. package/src/route-renderer/orchestration/{component-render-context.d.ts → foreign-child/component-render-context.d.ts} +8 -15
  326. package/src/route-renderer/orchestration/foreign-child/component-render-context.js +196 -0
  327. package/src/route-renderer/orchestration/{render-output.utils.d.ts → foreign-child/foreign-child-output.utils.d.ts} +20 -7
  328. package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +195 -0
  329. package/src/route-renderer/orchestration/{foreign-subtree-execution.service.d.ts → foreign-child/foreign-subtree-execution.service.d.ts} +64 -34
  330. package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +354 -0
  331. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.d.ts +19 -0
  332. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +36 -0
  333. package/src/route-renderer/orchestration/integration-renderer.d.ts +39 -153
  334. package/src/route-renderer/orchestration/integration-renderer.js +803 -1008
  335. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.d.ts +75 -0
  336. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +173 -0
  337. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.d.ts +10 -0
  338. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +132 -0
  339. package/src/route-renderer/orchestration/ownership-graph/component-graph.d.ts +34 -0
  340. package/src/route-renderer/orchestration/ownership-graph/component-graph.js +89 -0
  341. package/src/route-renderer/orchestration/{ownership-validation.service.d.ts → ownership-graph/ownership-validation.service.d.ts} +6 -2
  342. package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +77 -0
  343. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.d.ts +7 -0
  344. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +30 -0
  345. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.d.ts +15 -0
  346. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.js +9 -0
  347. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.d.ts +5 -0
  348. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.js +30 -0
  349. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.d.ts +12 -0
  350. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +32 -0
  351. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +126 -0
  352. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +542 -0
  353. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.d.ts +47 -0
  354. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +248 -0
  355. package/src/route-renderer/orchestration/{processed-asset-dedupe.d.ts → page-browser-graph/processed-asset-dedupe.d.ts} +1 -1
  356. package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +23 -0
  357. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.d.ts +29 -0
  358. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.js +54 -0
  359. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +38 -0
  360. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +26 -0
  361. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.d.ts +6 -0
  362. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +25 -0
  363. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.d.ts +15 -0
  364. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +43 -0
  365. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +25 -0
  366. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +44 -0
  367. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.d.ts +26 -0
  368. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +44 -0
  369. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.d.ts +4 -0
  370. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +30 -0
  371. package/src/route-renderer/orchestration/{route-render-orchestrator.d.ts → route-pipeline/route-render-orchestrator.d.ts} +24 -54
  372. package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +215 -0
  373. package/src/{integrations/ghtml/ghtml-renderer.d.ts → route-renderer/orchestration/string-markup-renderer.d.ts} +8 -10
  374. package/src/route-renderer/orchestration/string-markup-renderer.js +53 -0
  375. package/src/route-renderer/page-loading/component-dependency-collection.js +121 -121
  376. package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
  377. package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
  378. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +1 -0
  379. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +64 -51
  380. package/src/route-renderer/page-loading/file-scoped-dependency-components.d.ts +42 -0
  381. package/src/route-renderer/page-loading/file-scoped-dependency-components.js +94 -0
  382. package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
  383. package/src/route-renderer/page-loading/lazy-trigger-planning.js +47 -36
  384. package/src/route-renderer/page-loading/module-declaration-aggregation.js +39 -28
  385. package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
  386. package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
  387. package/src/route-renderer/page-loading/page-module-loader.d.ts +2 -1
  388. package/src/route-renderer/page-loading/page-module-loader.js +136 -124
  389. package/src/route-renderer/page-loading/resolved-page-dependencies.d.ts +12 -0
  390. package/src/route-renderer/page-loading/resolved-page-dependencies.js +38 -0
  391. package/src/route-renderer/route-renderer.js +74 -76
  392. package/src/router/README.md +31 -0
  393. package/src/router/client/link-intent.d.ts +11 -21
  394. package/src/router/client/link-intent.js +56 -30
  395. package/src/router/client/link-intent.test.browser.js +50 -39
  396. package/src/router/client/link-navigation-policy.d.ts +45 -0
  397. package/src/router/client/link-navigation-policy.js +122 -0
  398. package/src/router/client/link-navigation-policy.test.browser.d.ts +1 -0
  399. package/src/router/client/link-navigation-policy.test.browser.js +82 -0
  400. package/src/router/client/navigation-coordinator.d.ts +1 -1
  401. package/src/router/client/navigation-coordinator.js +235 -211
  402. package/src/router/client/navigation-lifecycle.d.ts +55 -0
  403. package/src/router/client/navigation-lifecycle.js +50 -0
  404. package/src/router/client/navigation-lifecycle.test.browser.d.ts +1 -0
  405. package/src/router/client/navigation-lifecycle.test.browser.js +118 -0
  406. package/src/router/server/route-registry.js +237 -242
  407. package/src/services/README.md +5 -0
  408. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +13 -0
  409. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -50
  410. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +12 -1
  411. package/src/services/assets/asset-processing-service/asset-processing.service.js +335 -268
  412. package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
  413. package/src/services/assets/asset-processing-service/assets.types.d.ts +1 -1
  414. package/src/services/assets/asset-processing-service/assets.types.js +1 -0
  415. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +1 -1
  416. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -46
  417. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.d.ts +52 -0
  418. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +115 -0
  419. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -58
  420. package/src/services/assets/asset-processing-service/finalize-processed-asset.d.ts +3 -0
  421. package/src/services/assets/asset-processing-service/finalize-processed-asset.js +5 -0
  422. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +2 -1
  423. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +85 -60
  424. package/src/services/assets/asset-processing-service/index.d.ts +2 -0
  425. package/src/services/assets/asset-processing-service/index.js +8 -6
  426. package/src/services/assets/asset-processing-service/inline-content-script-body.d.ts +11 -0
  427. package/src/services/assets/asset-processing-service/inline-content-script-body.js +23 -0
  428. package/src/services/assets/asset-processing-service/materialize-content-script-asset.d.ts +9 -0
  429. package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +22 -0
  430. package/src/services/assets/asset-processing-service/page-package.js +70 -72
  431. package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
  432. package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
  433. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
  434. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -2
  435. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -130
  436. package/src/services/assets/asset-processing-service/processors/index.js +5 -5
  437. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +8 -0
  438. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +111 -111
  439. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -1
  440. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -94
  441. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -135
  442. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -3
  443. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +26 -57
  444. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -3
  445. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +33 -67
  446. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.d.ts +2 -0
  447. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +44 -0
  448. package/src/services/assets/asset-processing-service/resolve-integration-plugin.d.ts +4 -0
  449. package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +15 -0
  450. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -1
  451. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -44
  452. package/src/services/assets/browser-bundle.service.d.ts +27 -31
  453. package/src/services/assets/browser-bundle.service.js +54 -49
  454. package/src/services/assets/browser-runtime-asset-generation.d.ts +17 -0
  455. package/src/services/assets/browser-runtime-asset-generation.js +28 -0
  456. package/src/services/cache/cache.types.d.ts +4 -2
  457. package/src/services/cache/cache.types.js +5 -0
  458. package/src/services/cache/html-page-cache-dependency-index.d.ts +34 -0
  459. package/src/services/cache/html-page-cache-dependency-index.js +88 -0
  460. package/src/services/cache/index.d.ts +2 -0
  461. package/src/services/cache/index.js +8 -7
  462. package/src/services/cache/memory-cache-store.js +101 -89
  463. package/src/services/cache/page-cache-service.d.ts +31 -1
  464. package/src/services/cache/page-cache-service.js +237 -150
  465. package/src/services/cache/page-request-cache-coordinator.service.d.ts +2 -1
  466. package/src/services/cache/page-request-cache-coordinator.service.js +112 -102
  467. package/src/services/html/html-rewriter-provider.service.js +61 -61
  468. package/src/services/html/html-transformer.service.js +249 -266
  469. package/src/services/invalidation/development-invalidation.service.d.ts +15 -1
  470. package/src/services/invalidation/development-invalidation.service.js +241 -204
  471. package/src/services/module-loading/README.md +9 -6
  472. package/src/services/module-loading/app-module-loader.service.js +1 -0
  473. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +8 -0
  474. package/src/services/module-loading/app-server-module-transpiler.service.js +104 -106
  475. package/src/services/module-loading/collection-server-module-build.service.d.ts +19 -0
  476. package/src/services/module-loading/collection-server-module-build.service.js +83 -0
  477. package/src/services/module-loading/host-module-loader-registry.js +6 -11
  478. package/src/services/module-loading/module-loading-types.js +1 -0
  479. package/src/services/module-loading/page-module-import.service.d.ts +7 -12
  480. package/src/services/module-loading/page-module-import.service.js +232 -206
  481. package/src/services/module-loading/route-module-build-cache-registry.d.ts +2 -0
  482. package/src/services/module-loading/route-module-build-cache-registry.js +59 -33
  483. package/src/services/module-loading/route-module-build-cache.js +3 -38
  484. package/src/services/module-loading/route-module-build-cache.store.d.ts +10 -0
  485. package/src/services/module-loading/route-module-build-cache.store.js +213 -196
  486. package/src/services/module-loading/route-module-build-manifest.d.ts +10 -14
  487. package/src/services/module-loading/route-module-build-manifest.js +54 -118
  488. package/src/services/module-loading/route-module-dependency-hasher.d.ts +2 -2
  489. package/src/services/module-loading/route-module-dependency-hasher.js +136 -109
  490. package/src/services/module-loading/server-module-transpiler.service.d.ts +1 -3
  491. package/src/services/module-loading/server-module-transpiler.service.js +65 -62
  492. package/src/services/module-loading/source-module-support.js +15 -7
  493. package/src/services/runtime-state/dev-graph.service.js +165 -157
  494. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
  495. package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
  496. package/src/services/validation/schema-validation-service.d.ts +1 -4
  497. package/src/services/validation/schema-validation-service.js +156 -95
  498. package/src/services/validation/standard-schema.types.d.ts +9 -62
  499. package/src/services/validation/standard-schema.types.js +1 -0
  500. package/src/services/validation/validate-standard-schema.d.ts +7 -0
  501. package/src/services/validation/validate-standard-schema.js +14 -0
  502. package/src/static-site-generator/README.md +10 -2
  503. package/src/static-site-generator/production-page-browser-graph-prebuild.d.ts +32 -0
  504. package/src/static-site-generator/production-page-browser-graph-prebuild.js +57 -0
  505. package/src/static-site-generator/sitemap-routes.d.ts +14 -0
  506. package/src/static-site-generator/sitemap-routes.js +36 -0
  507. package/src/static-site-generator/sitemap.d.ts +15 -0
  508. package/src/static-site-generator/sitemap.js +42 -0
  509. package/src/static-site-generator/static-build-invalidation.d.ts +2 -2
  510. package/src/static-site-generator/static-build-invalidation.js +33 -74
  511. package/src/static-site-generator/static-export-context.d.ts +9 -1
  512. package/src/static-site-generator/static-export-context.js +1 -0
  513. package/src/static-site-generator/static-site-generator.d.ts +27 -6
  514. package/src/static-site-generator/static-site-generator.js +528 -389
  515. package/src/types/internal-types.d.ts +55 -17
  516. package/src/types/internal-types.js +1 -0
  517. package/src/types/public-types.d.ts +236 -95
  518. package/src/types/public-types.js +1 -0
  519. package/src/utils/deep-merge.js +39 -26
  520. package/src/utils/ecopages-route-info.d.ts +26 -0
  521. package/src/utils/ecopages-route-info.js +30 -0
  522. package/src/utils/hash.js +3 -6
  523. package/src/utils/html-escaping.d.ts +7 -0
  524. package/src/utils/html-escaping.js +22 -5
  525. package/src/utils/invariant.js +11 -10
  526. package/src/utils/locals-utils.js +32 -22
  527. package/src/utils/parse-cli-args.d.ts +1 -0
  528. package/src/utils/parse-cli-args.js +73 -62
  529. package/src/utils/path-pattern.d.ts +23 -0
  530. package/src/utils/path-pattern.js +42 -0
  531. package/src/utils/path-utils.module.js +8 -11
  532. package/src/utils/resolve-entry-file.js +70 -38
  533. package/src/utils/resolve-work-dir.js +23 -27
  534. package/src/utils/runtime.js +24 -33
  535. package/src/utils/server-utils.module.d.ts +3 -2
  536. package/src/utils/server-utils.module.js +60 -53
  537. package/src/utils/static-file-extensions.d.ts +12 -0
  538. package/src/utils/static-file-extensions.js +54 -0
  539. package/src/watchers/project-watcher-ignore.d.ts +11 -0
  540. package/src/watchers/project-watcher-ignore.js +17 -0
  541. package/src/watchers/project-watcher.d.ts +21 -6
  542. package/src/watchers/project-watcher.js +402 -277
  543. package/src/watchers/project-watcher.test-helpers.js +45 -50
  544. package/src/adapters/shared/api-response.js +0 -96
  545. package/src/adapters/shared/application-adapter.js +0 -90
  546. package/src/adapters/shared/bun-user-websocket-lifecycle.js +0 -102
  547. package/src/adapters/shared/copy-runtime-public-dir.js +0 -24
  548. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  549. package/src/adapters/shared/define-api-handler.js +0 -15
  550. package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
  551. package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
  552. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
  553. package/src/adapters/shared/fs-server-response-factory.js +0 -81
  554. package/src/adapters/shared/fs-server-response-matcher.js +0 -186
  555. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  556. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  557. package/src/adapters/shared/hmr-html-response.js +0 -33
  558. package/src/adapters/shared/node-http-websocket-upgrades.js +0 -125
  559. package/src/adapters/shared/render-context.js +0 -93
  560. package/src/adapters/shared/runtime-app-bootstrap.js +0 -41
  561. package/src/adapters/shared/runtime-host.js +0 -0
  562. package/src/adapters/shared/server-adapter.js +0 -436
  563. package/src/adapters/shared/server-route-handler.js +0 -111
  564. package/src/adapters/shared/server-static-builder.js +0 -202
  565. package/src/adapters/shared/shared-hmr-manager.d.ts +0 -61
  566. package/src/adapters/shared/shared-hmr-manager.js +0 -273
  567. package/src/adapters/shared/static-preview-host.js +0 -0
  568. package/src/adapters/shared/websocket-lifecycle.d.ts +0 -3
  569. package/src/adapters/shared/websocket-lifecycle.js +0 -19
  570. package/src/build/browser-runtime-manifest.js +0 -61
  571. package/src/build/browser-runtime-plugin-helpers.js +0 -14
  572. package/src/build/browser-runtime-plugin.js +0 -173
  573. package/src/build/build-input-fingerprint.js +0 -31
  574. package/src/build/build-manifest.d.ts +0 -33
  575. package/src/build/build-manifest.js +0 -49
  576. package/src/build/build-types.js +0 -0
  577. package/src/build/jsx-ownership-plugins.d.ts +0 -10
  578. package/src/build/jsx-ownership-plugins.js +0 -17
  579. package/src/build/pages-unified-graph-build.js +0 -208
  580. package/src/build/parallel-build-executor.js +0 -52
  581. package/src/build/rolldown-adapter-helpers.js +0 -310
  582. package/src/build/rolldown-build-adapter.js +0 -67
  583. package/src/build/rolldown-build-invocation-metrics.js +0 -43
  584. package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
  585. package/src/build/rolldown-dev-build-adapter.js +0 -182
  586. package/src/build/rolldown-plugin-bridge.js +0 -211
  587. package/src/build/rolldown-source-transform-pass.js +0 -58
  588. package/src/build/runtime-build-executor.d.ts +0 -15
  589. package/src/build/runtime-build-executor.js +0 -43
  590. package/src/build/runtime-build-output-normalizer.js +0 -203
  591. package/src/build/serialized-build-executor.js +0 -63
  592. package/src/build/server-entry-build-cache.js +0 -169
  593. package/src/build/server-side-css-shim-plugin.js +0 -35
  594. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  595. package/src/hmr/hmr.test.e2e.js +0 -54
  596. package/src/integrations/ghtml/ghtml-renderer.js +0 -57
  597. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  598. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  599. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  600. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  601. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  602. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
  603. package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
  604. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -231
  605. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
  606. package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
  607. package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
  608. package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
  609. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
  610. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
  611. package/src/route-renderer/orchestration/render-output.utils.js +0 -175
  612. package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -578
  613. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  614. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  615. package/src/utils/html.d.ts +0 -1
  616. package/src/utils/html.js +0 -4
  617. /package/src/adapters/{shared → bun}/bun-user-websocket-lifecycle.d.ts +0 -0
  618. /package/src/adapters/shared/{copy-runtime-public-dir.d.ts → runtime/copy-runtime-public-dir.d.ts} +0 -0
  619. /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
  620. /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
  621. /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
  622. /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
  623. /package/src/build/{runtime-build-output-normalizer.d.ts → rolldown/runtime-build-output-normalizer.d.ts} +0 -0
  624. /package/src/build/{server-side-css-shim-plugin.d.ts → rolldown/server-side-css-shim-plugin.d.ts} +0 -0
@@ -1,206 +1,223 @@
1
- import { createBrowserRuntimeManifest } from "../build/browser-runtime-manifest.js";
2
- import { AssetProcessingService } from "../services/assets/asset-processing-service/asset-processing.service.js";
3
- import { deepMerge } from "../utils/deep-merge.js";
4
- import { invariant } from "../utils/invariant.js";
5
- const INTEGRATION_PLUGIN_ERRORS = {
6
- NOT_INITIALIZED_WITH_APP_CONFIG: "Plugin not initialized with app config",
7
- NOT_INITIALIZED_WITH_ASSET_SERVICE: "Plugin not initialized with asset dependency service"
1
+ import { createBrowserRuntimeManifest, } from '../build/browser/browser-runtime-manifest.js';
2
+ import { AssetProcessingService } from '../services/assets/asset-processing-service/asset-processing.service.js';
3
+ import { deepMerge } from '../utils/deep-merge.js';
4
+ import { invariant } from '../utils/invariant.js';
5
+ export const INTEGRATION_PLUGIN_ERRORS = {
6
+ NOT_INITIALIZED_WITH_APP_CONFIG: 'Plugin not initialized with app config',
7
+ NOT_INITIALIZED_WITH_ASSET_SERVICE: 'Plugin not initialized with asset dependency service',
8
8
  };
9
- function mergeIntegrationOptions(defaults, overrides) {
10
- return deepMerge(defaults, overrides);
9
+ export function mergeIntegrationOptions(defaults, overrides) {
10
+ return deepMerge(defaults, overrides);
11
11
  }
12
- function assertIntegrationInvariant(condition, message) {
13
- invariant(condition, message);
12
+ export function assertIntegrationInvariant(condition, message) {
13
+ invariant(condition, message);
14
14
  }
15
- class IntegrationPlugin {
16
- name;
17
- extensions;
18
- runtimeCapability;
19
- jsxImportSource;
20
- integrationDependencies;
21
- resolvedIntegrationDependencies = [];
22
- options;
23
- appConfig;
24
- assetProcessingService;
25
- hmrManager;
26
- get plugins() {
27
- return [];
28
- }
29
- /**
30
- * Returns build plugins that should only apply to browser-oriented bundles.
31
- *
32
- * @remarks
33
- * Browser-only transforms such as runtime import aliasing belong here so they
34
- * do not affect server bundles or static-page module generation.
35
- */
36
- get browserBuildPlugins() {
37
- return [];
38
- }
39
- /**
40
- * Returns shared browser runtime asset declarations owned by this integration.
41
- *
42
- * @remarks
43
- * Core seals these declarations into the app build manifest so app-owned browser
44
- * bundle paths can rewrite manifest-owned imports even when a specific build
45
- * request does not install an integration-local runtime rewrite plugin.
46
- */
47
- get browserRuntimeManifest() {
48
- return createBrowserRuntimeManifest();
49
- }
50
- /**
51
- * Creates the integration with static declaration-only configuration.
52
- *
53
- * @remarks
54
- * Constructors are expected to stay side-effect free. Build-manifest
55
- * contributions belong in `prepareBuildContributions()` and runtime-only setup
56
- * belongs in `setup()`.
57
- */
58
- constructor(config) {
59
- this.name = config.name;
60
- this.extensions = config.extensions;
61
- this.integrationDependencies = config.integrationDependencies || [];
62
- this.runtimeCapability = config.runtimeCapability;
63
- this.jsxImportSource = config.jsxImportSource;
64
- }
65
- /**
66
- * Attaches the finalized app config to the integration.
67
- *
68
- * Core calls this during config finalization before runtime setup so the
69
- * integration can resolve asset paths and other app-owned services later.
70
- */
71
- setConfig(appConfig) {
72
- this.appConfig = appConfig;
73
- this.initializeAssetDefinitionService();
74
- }
75
- /**
76
- * Records the runtime origin used for page-module loading and renderer setup.
77
- */
78
- setRuntimeOrigin(runtimeOrigin) {
79
- this.runtimeOrigin = runtimeOrigin;
80
- }
81
- /**
82
- * Attaches the shared HMR manager and registers integration-owned development hooks.
83
- *
84
- * @remarks
85
- * The default implementation registers the optional integration HMR strategy.
86
- * Integrations should override this only when they need to extend that shared
87
- * behavior rather than replace it.
88
- */
89
- setHmrManager(hmrManager) {
90
- this.hmrManager = hmrManager;
91
- const strategy = this.getHmrStrategy?.();
92
- if (strategy) {
93
- hmrManager.registerStrategy(strategy);
15
+ /**
16
+ * Base class for framework integrations.
17
+ *
18
+ * @remarks
19
+ * An integration owns three main concerns:
20
+ * - which file extensions it claims
21
+ * - which renderer class turns those files into HTML
22
+ * - which build-time or runtime contributions must be registered for that framework
23
+ *
24
+ * Core owns lifecycle ordering. Integrations declare contributions through the
25
+ * hooks on this class, while `ConfigBuilder.build()` and app startup decide when
26
+ * those hooks run. Build plugins map to {@link AppBuildManifest} buckets:
27
+ * `plugins` → `runtimePlugins`, `browserBuildPlugins` → `browserBundlePlugins`,
28
+ * `browserRuntimeManifest` → client import rewrite map. For page-browser and
29
+ * document shaping, integrations should prefer the contribution contracts
30
+ * re-exported from this module:
31
+ * `PageBrowserGraphContribution` / `PageBrowserGraphContributionContext` and
32
+ * `HtmlDocumentContribution` / `HtmlDocumentContributionContext`.
33
+ */
34
+ export class IntegrationPlugin {
35
+ name;
36
+ extensions;
37
+ runtimeCapability;
38
+ jsxImportSource;
39
+ integrationDependencies;
40
+ resolvedIntegrationDependencies = [];
41
+ options;
42
+ appConfig;
43
+ assetProcessingService;
44
+ hmrManager;
45
+ /**
46
+ * Returns build plugins shared by server-oriented and browser-oriented builds.
47
+ *
48
+ * @remarks
49
+ * Collected into {@link AppBuildManifest.runtimePlugins} during config finalization.
50
+ * MDX loaders, virtual-module resolvers, and other transforms that must run during
51
+ * route-module transpile belong here—not in {@link browserBuildPlugins}.
52
+ */
53
+ get plugins() {
54
+ return [];
94
55
  }
95
- if (this.assetProcessingService) {
96
- this.assetProcessingService.setHmrManager(hmrManager);
56
+ /**
57
+ * Returns build plugins that should only apply to browser-oriented bundles.
58
+ *
59
+ * @remarks
60
+ * Browser-only transforms such as runtime import aliasing belong here so they
61
+ * do not affect server bundles or static-page module generation.
62
+ */
63
+ get browserBuildPlugins() {
64
+ return [];
97
65
  }
98
- }
99
- /**
100
- * Creates the asset-processing service used for global integration dependencies.
101
- */
102
- initializeAssetDefinitionService() {
103
- if (!this.appConfig) throw new Error(INTEGRATION_PLUGIN_ERRORS.NOT_INITIALIZED_WITH_APP_CONFIG);
104
- this.assetProcessingService = AssetProcessingService.createWithDefaultProcessors(this.appConfig);
105
- if (this.hmrManager) {
106
- this.assetProcessingService.setHmrManager(this.hmrManager);
66
+ /**
67
+ * Returns shared browser runtime asset declarations owned by this integration.
68
+ *
69
+ * @remarks
70
+ * Core seals these declarations into the app build manifest so app-owned browser
71
+ * bundle paths can rewrite manifest-owned imports even when a specific build
72
+ * request does not install an integration-local runtime rewrite plugin.
73
+ */
74
+ get browserRuntimeManifest() {
75
+ return createBrowserRuntimeManifest();
107
76
  }
108
- }
109
- /**
110
- * Returns processed global assets resolved during `setup()`.
111
- */
112
- getResolvedIntegrationDependencies() {
113
- return this.resolvedIntegrationDependencies;
114
- }
115
- /**
116
- * Creates the shared renderer options owned by core lifecycle setup.
117
- */
118
- createRendererOptions(options) {
119
- if (!this.appConfig) {
120
- throw new Error(INTEGRATION_PLUGIN_ERRORS.NOT_INITIALIZED_WITH_APP_CONFIG);
77
+ /**
78
+ * Creates the integration with static declaration-only configuration.
79
+ *
80
+ * @remarks
81
+ * Constructors are expected to stay side-effect free. Build-manifest
82
+ * contributions belong in `prepareBuildContributions()` and runtime-only setup
83
+ * belongs in `setup()`.
84
+ */
85
+ constructor(config) {
86
+ this.name = config.name;
87
+ this.extensions = config.extensions;
88
+ this.integrationDependencies = config.integrationDependencies || [];
89
+ this.runtimeCapability = config.runtimeCapability;
90
+ this.jsxImportSource = config.jsxImportSource;
121
91
  }
122
- const assetProcessingService = AssetProcessingService.createWithDefaultProcessors(this.appConfig);
123
- if (this.hmrManager) {
124
- assetProcessingService.setHmrManager(this.hmrManager);
92
+ /**
93
+ * Attaches the finalized app config to the integration.
94
+ *
95
+ * Core calls this during config finalization before runtime setup so the
96
+ * integration can resolve asset paths and other app-owned services later.
97
+ */
98
+ setConfig(appConfig) {
99
+ this.appConfig = appConfig;
100
+ this.initializeAssetDefinitionService();
125
101
  }
126
- return {
127
- appConfig: this.appConfig,
128
- assetProcessingService,
129
- resolvedIntegrationDependencies: this.resolvedIntegrationDependencies,
130
- rendererModules: options?.rendererModules,
131
- runtimeOrigin: this.runtimeOrigin
132
- };
133
- }
134
- /**
135
- * Attaches runtime-only services after a renderer instance has been created.
136
- */
137
- attachRendererRuntimeServices(renderer) {
138
- if (typeof renderer.name !== "string" || renderer.name.length === 0) {
139
- renderer.name = this.name;
102
+ /**
103
+ * Records the runtime origin used for page-module loading and renderer setup.
104
+ */
105
+ setRuntimeOrigin(runtimeOrigin) {
106
+ this.runtimeOrigin = runtimeOrigin;
140
107
  }
141
- if (this.hmrManager) {
142
- renderer.setHmrManager(this.hmrManager);
108
+ /**
109
+ * Attaches the shared HMR manager and registers integration-owned development hooks.
110
+ *
111
+ * @remarks
112
+ * The default implementation registers the optional integration HMR strategy.
113
+ * Integrations should override this only when they need to extend that shared
114
+ * behavior rather than replace it.
115
+ */
116
+ setHmrManager(hmrManager) {
117
+ this.hmrManager = hmrManager;
118
+ const strategy = this.getHmrStrategy?.();
119
+ if (strategy) {
120
+ hmrManager.registerStrategy(strategy);
121
+ }
122
+ if (this.assetProcessingService) {
123
+ this.assetProcessingService.setHmrManager(hmrManager);
124
+ }
143
125
  }
144
- return renderer;
145
- }
146
- /**
147
- * Instantiates the integration renderer with app-owned services.
148
- *
149
- * @remarks
150
- * Renderers are cheap runtime objects. They receive the finalized app config,
151
- * a fresh asset-processing service, integration-global processed assets, and
152
- * any renderer module context supplied by the active runtime.
153
- renderer.name ||= this.name;
154
- */
155
- initializeRenderer(options) {
156
- const renderer = new this.renderer(this.createRendererOptions(options));
157
- renderer.name ||= this.name;
158
- return this.attachRendererRuntimeServices(renderer);
159
- }
160
- /**
161
- * Prepares build-facing contributions before the app build manifest is sealed.
162
- *
163
- * @remarks
164
- * Integrations can override this when runtime or build plugin declarations must
165
- * be materialized ahead of runtime startup. Runtime-only side effects stay in
166
- * `setup()`.
167
- */
168
- async prepareBuildContributions() {
169
- }
170
- /**
171
- * Reports whether this integration's build inputs changed since the last
172
- * incremental static build.
173
- */
174
- didChange() {
175
- return false;
176
- }
177
- /**
178
- * Performs runtime-only integration setup after config build has already
179
- * sealed manifest contributions.
180
- */
181
- async setup() {
182
- if (this.integrationDependencies.length === 0) return;
183
- if (!this.assetProcessingService) throw new Error(INTEGRATION_PLUGIN_ERRORS.NOT_INITIALIZED_WITH_ASSET_SERVICE);
184
- this.resolvedIntegrationDependencies = await this.assetProcessingService.processDependencies(
185
- this.integrationDependencies,
186
- this.name
187
- );
188
- this.initializeRenderer();
189
- }
190
- /**
191
- * Releases runtime resources owned by the integration.
192
- *
193
- * @remarks
194
- * Most integrations do not need custom teardown. Override this only for
195
- * explicit cleanup such as watchers, compiler handles, or runtime registries
196
- * that outlive individual requests.
197
- */
198
- async teardown() {
199
- }
126
+ /**
127
+ * Creates the asset-processing service used for global integration dependencies.
128
+ */
129
+ initializeAssetDefinitionService() {
130
+ if (!this.appConfig)
131
+ throw new Error(INTEGRATION_PLUGIN_ERRORS.NOT_INITIALIZED_WITH_APP_CONFIG);
132
+ this.assetProcessingService = AssetProcessingService.createWithDefaultProcessors(this.appConfig);
133
+ if (this.hmrManager) {
134
+ this.assetProcessingService.setHmrManager(this.hmrManager);
135
+ }
136
+ }
137
+ /**
138
+ * Returns processed global assets resolved during `setup()`.
139
+ */
140
+ getResolvedIntegrationDependencies() {
141
+ return this.resolvedIntegrationDependencies;
142
+ }
143
+ /**
144
+ * Creates the shared renderer options owned by core lifecycle setup.
145
+ */
146
+ createRendererOptions(options) {
147
+ if (!this.appConfig) {
148
+ throw new Error(INTEGRATION_PLUGIN_ERRORS.NOT_INITIALIZED_WITH_APP_CONFIG);
149
+ }
150
+ const assetProcessingService = AssetProcessingService.createWithDefaultProcessors(this.appConfig);
151
+ if (this.hmrManager) {
152
+ assetProcessingService.setHmrManager(this.hmrManager);
153
+ }
154
+ return {
155
+ appConfig: this.appConfig,
156
+ assetProcessingService,
157
+ resolvedIntegrationDependencies: this.resolvedIntegrationDependencies,
158
+ rendererModules: options?.rendererModules,
159
+ runtimeOrigin: this.runtimeOrigin,
160
+ };
161
+ }
162
+ /**
163
+ * Attaches runtime-only services after a renderer instance has been created.
164
+ */
165
+ attachRendererRuntimeServices(renderer) {
166
+ if (typeof renderer.name !== 'string' || renderer.name.length === 0) {
167
+ renderer.name = this.name;
168
+ }
169
+ if (this.hmrManager) {
170
+ renderer.setHmrManager(this.hmrManager);
171
+ }
172
+ return renderer;
173
+ }
174
+ /**
175
+ * Instantiates the integration renderer with app-owned services.
176
+ *
177
+ * @remarks
178
+ * Renderers are cheap runtime objects. They receive the finalized app config,
179
+ * a fresh asset-processing service, integration-global processed assets, and
180
+ * any renderer module context supplied by the active runtime.
181
+ */
182
+ initializeRenderer(options) {
183
+ const renderer = new this.renderer(this.createRendererOptions(options));
184
+ renderer.name ||= this.name;
185
+ return this.attachRendererRuntimeServices(renderer);
186
+ }
187
+ /**
188
+ * Prepares build-facing contributions before the app build manifest is sealed.
189
+ *
190
+ * @remarks
191
+ * Integrations can override this when runtime or build plugin declarations must
192
+ * be materialized ahead of runtime startup. Runtime-only side effects stay in
193
+ * `setup()`.
194
+ */
195
+ async prepareBuildContributions() { }
196
+ /**
197
+ * Reports whether this integration's build inputs changed since the last
198
+ * incremental static build.
199
+ */
200
+ didChange() {
201
+ return false;
202
+ }
203
+ /**
204
+ * Performs runtime-only integration setup after config build has already
205
+ * sealed manifest contributions.
206
+ */
207
+ async setup() {
208
+ if (this.integrationDependencies.length === 0)
209
+ return;
210
+ if (!this.assetProcessingService)
211
+ throw new Error(INTEGRATION_PLUGIN_ERRORS.NOT_INITIALIZED_WITH_ASSET_SERVICE);
212
+ this.resolvedIntegrationDependencies = await this.assetProcessingService.processDependencies(this.integrationDependencies, this.name);
213
+ }
214
+ /**
215
+ * Releases runtime resources owned by the integration.
216
+ *
217
+ * @remarks
218
+ * Most integrations do not need custom teardown. Override this only for
219
+ * explicit cleanup such as watchers, compiler handles, or runtime registries
220
+ * that outlive individual requests.
221
+ */
222
+ async teardown() { }
200
223
  }
201
- export {
202
- INTEGRATION_PLUGIN_ERRORS,
203
- IntegrationPlugin,
204
- assertIntegrationInvariant,
205
- mergeIntegrationOptions
206
- };
@@ -0,0 +1,8 @@
1
+ import type { EcoPagesAppConfig } from '../types/internal-types.js';
2
+ export declare function createJsxImportSourcePragma(jsxImportSource: string): string;
3
+ export declare function prependJsxImportSourceIfMissing(code: string, jsxImportSource: string | undefined): string;
4
+ export declare function isJsxSourceExtension(extension: string): boolean;
5
+ export declare function filterJsxSourceExtensions(extensions: string[]): string[];
6
+ export declare function collectJsxExtensions(integrations: NonNullable<EcoPagesAppConfig['integrations']>, options?: {
7
+ excludeIntegrationName?: string;
8
+ }): string[];
@@ -0,0 +1,21 @@
1
+ export function createJsxImportSourcePragma(jsxImportSource) {
2
+ return `/** @jsxImportSource ${jsxImportSource} */\n`;
3
+ }
4
+ export function prependJsxImportSourceIfMissing(code, jsxImportSource) {
5
+ if (!jsxImportSource || code.includes('@jsxImportSource')) {
6
+ return code;
7
+ }
8
+ return createJsxImportSourcePragma(jsxImportSource) + code;
9
+ }
10
+ export function isJsxSourceExtension(extension) {
11
+ return extension.endsWith('.tsx') || extension.endsWith('.jsx');
12
+ }
13
+ export function filterJsxSourceExtensions(extensions) {
14
+ return extensions.filter(isJsxSourceExtension);
15
+ }
16
+ export function collectJsxExtensions(integrations, options) {
17
+ return integrations
18
+ .filter((integration) => integration.jsxImportSource)
19
+ .filter((integration) => integration.name !== options?.excludeIntegrationName)
20
+ .flatMap((integration) => filterJsxSourceExtensions(integration.extensions));
21
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Normalizes bare npm import specifiers to their package root.
3
+ *
4
+ * @example
5
+ * toPackageRootSpecifier('@scope/pkg/sub/file') -> '@scope/pkg'
6
+ * toPackageRootSpecifier('lodash/debounce') -> 'lodash'
7
+ */
8
+ export declare function toPackageRootSpecifier(specifier: string): string;
9
+ /**
10
+ * Returns true when `specifier` is a subpath import of `packageRoot`.
11
+ */
12
+ export declare function isSubpathOfPackageRoot(specifier: string, packageRoot: string): boolean;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Normalizes bare npm import specifiers to their package root.
3
+ *
4
+ * @example
5
+ * toPackageRootSpecifier('@scope/pkg/sub/file') -> '@scope/pkg'
6
+ * toPackageRootSpecifier('lodash/debounce') -> 'lodash'
7
+ */
8
+ export function toPackageRootSpecifier(specifier) {
9
+ if (specifier.startsWith('.') ||
10
+ specifier.startsWith('/') ||
11
+ specifier.startsWith('node:') ||
12
+ specifier.includes('://')) {
13
+ return specifier;
14
+ }
15
+ if (specifier.startsWith('@')) {
16
+ const [scope, name, ...rest] = specifier.split('/');
17
+ if (!scope || !name) {
18
+ return specifier;
19
+ }
20
+ return rest.length > 0 ? `${scope}/${name}` : specifier;
21
+ }
22
+ const [name] = specifier.split('/');
23
+ return name ?? specifier;
24
+ }
25
+ /**
26
+ * Returns true when `specifier` is a subpath import of `packageRoot`.
27
+ */
28
+ export function isSubpathOfPackageRoot(specifier, packageRoot) {
29
+ if (specifier === packageRoot) {
30
+ return false;
31
+ }
32
+ return specifier.startsWith(`${packageRoot}/`);
33
+ }
@@ -1,19 +1,45 @@
1
- import type { EcoBuildPlugin } from '../build/build-types.js';
1
+ import type { EcoBuildPlugin } from '../build/contracts/build-types.js';
2
2
  import type { EcoPagesAppConfig, IClientBridge } from '../types/internal-types.js';
3
- import type { AssetDefinition } from '../services/assets/asset-processing-service/assets.types.js';
3
+ import { GENERATED_BASE_PATHS } from '../config/constants.js';
4
4
  import type { RuntimeCapabilityDeclaration } from './runtime-capability.js';
5
5
  export type { RuntimeCapabilityDeclaration, RuntimeCapabilityTag } from './runtime-capability.js';
6
- export type { EcoBuildLoader, EcoBuildOnLoadArgs, EcoBuildOnLoadResult, EcoBuildOnResolveArgs, EcoBuildOnResolveResult, EcoBuildPlugin, EcoBuildPluginBuilder, } from '../build/build-types.js';
6
+ export type { EcoBuildLoader, EcoBuildOnLoadArgs, EcoBuildOnLoadResult, EcoBuildOnResolveArgs, EcoBuildOnResolveResult, EcoBuildPlugin, EcoBuildPluginBuilder, } from '../build/contracts/build-types.js';
7
7
  export declare const PROCESSOR_ERRORS: {
8
8
  readonly CACHE_DIRECTORY_NOT_SET: "Cache directory not set in context";
9
9
  };
10
10
  export declare function mergeProcessorOptions<TDefaults, TOverrides>(defaults: TDefaults, overrides: TOverrides): TDefaults & TOverrides;
11
+ export declare function resolveGeneratedPath(type: keyof typeof GENERATED_BASE_PATHS, options: {
12
+ root: string;
13
+ module: string;
14
+ subPath?: string;
15
+ }): string;
16
+ /**
17
+ * Serializes the TypeScript `@types` package manifest for generated virtual-module declarations.
18
+ */
19
+ export declare function serializeGeneratedTypesPackage(packageName: string): string;
20
+ /**
21
+ * Writes the generated `@types` package manifest that TypeScript auto-loads from `node_modules`.
22
+ */
23
+ export declare function writeGeneratedTypesPackage(options: {
24
+ root: string;
25
+ module: string;
26
+ packageName: string;
27
+ writeFile: (filePath: string, content: string) => void;
28
+ }): void;
11
29
  export interface ProcessorWatchContext {
12
30
  path: string;
13
31
  bridge: IClientBridge;
14
32
  }
15
33
  export interface ProcessorWatchConfig {
16
34
  paths: string[];
35
+ /**
36
+ * File extensions that trigger watch callbacks (`onCreate`, `onChange`, `onDelete`).
37
+ *
38
+ * @remarks
39
+ * Watch extensions drive notifications only. They do not declare asset ownership.
40
+ * Ownership requires {@link ProcessorConfig.capabilities} and controls whether dev
41
+ * invalidation skips server modules and HMR for processor-handled assets.
42
+ */
17
43
  extensions?: string[];
18
44
  onCreate?: (ctx: ProcessorWatchContext) => Promise<void>;
19
45
  onChange?: (ctx: ProcessorWatchContext) => Promise<void>;
@@ -52,22 +78,41 @@ export interface ProcessorContext {
52
78
  cache?: string;
53
79
  }
54
80
  /**
55
- * Interface for processor build plugins
56
- * This is used to pass plugins to the build process directly from the processor
57
- * For instance it can become very handy when dealing with virtual modules that needs to be recognized by the bundler
58
- * i.e. @ecopages/image-processor
81
+ * Base class for content and asset processors that contribute build plugins.
82
+ *
83
+ * @remarks
84
+ * Processors declare plugins through two getters that map to
85
+ * {@link AppBuildManifest} buckets (names differ from integrations):
86
+ *
87
+ * - `plugins` → `runtimePlugins` (server **and** browser builds)
88
+ * - `buildPlugins` → `browserBundlePlugins` (browser bundles only)
89
+ *
90
+ * Virtual modules that must resolve during route-module transpile belong in
91
+ * `plugins`. Browser-only bundler hooks belong in `buildPlugins`.
59
92
  */
60
93
  export declare abstract class Processor<TOptions = Record<string, unknown>> {
61
94
  readonly name: string;
62
- protected dependencies: AssetDefinition[];
63
95
  protected context?: ProcessorContext;
64
96
  protected options?: TOptions;
65
97
  protected watchConfig?: ProcessorWatchConfig;
66
98
  protected capabilities: ProcessorAssetCapability[];
67
99
  readonly runtimeCapability?: RuntimeCapabilityDeclaration;
68
- /** Plugins that are only used during the build process */
100
+ /**
101
+ * Browser-bundle-only plugins.
102
+ *
103
+ * @remarks
104
+ * Maps to {@link AppBuildManifest.browserBundlePlugins}. Integrations name the
105
+ * same bucket `browserBuildPlugins`.
106
+ */
69
107
  abstract buildPlugins?: EcoBuildPlugin[];
70
- /** Plugins that are used during runtime for file processing */
108
+ /**
109
+ * Shared build plugins for server-oriented and browser-oriented work.
110
+ *
111
+ * @remarks
112
+ * Maps to {@link AppBuildManifest.runtimePlugins}. Despite the name, these are
113
+ * bundler plugins—not dev-server file processors. Runtime-only setup stays in
114
+ * {@link setup}.
115
+ */
71
116
  abstract plugins?: EcoBuildPlugin[];
72
117
  constructor(config: ProcessorConfig<TOptions>);
73
118
  setContext(appConfig: EcoPagesAppConfig): void;
@@ -80,19 +125,41 @@ export declare abstract class Processor<TOptions = Record<string, unknown>> {
80
125
  * warming or watcher registration should stay in `setup()`.
81
126
  */
82
127
  prepareBuildContributions(): Promise<void>;
128
+ /**
129
+ * Declares watch-mode SSR prewarm pathnames and readiness for core.
130
+ *
131
+ * @remarks
132
+ * Processors return paths and readiness only; core owns parallel rendering and page cache population.
133
+ */
134
+ collectDevPrewarmPlan(): Promise<{
135
+ pathnames: readonly string[];
136
+ readiness: 'background' | 'beforeReady';
137
+ }>;
83
138
  /**
84
139
  * Reports whether this processor's build inputs changed since the last
85
140
  * incremental static build.
141
+ *
142
+ * @remarks
143
+ * No shipped processor overrides this today. Integrations and processors can
144
+ * opt in when they own build inputs that should invalidate incremental static
145
+ * exports without a full rebuild.
86
146
  */
87
147
  didChange(): boolean;
88
148
  abstract setup(): Promise<void>;
89
- abstract teardown(): Promise<void>;
90
149
  abstract process(input: unknown, filePath?: string): Promise<unknown>;
150
+ /**
151
+ * Releases runtime resources owned by the processor.
152
+ *
153
+ * @remarks
154
+ * Core does not call this hook today. Override only when a processor owns
155
+ * watchers, compiler handles, or other resources that outlive individual
156
+ * requests.
157
+ */
158
+ teardown(): Promise<void>;
91
159
  protected getCachePath(key: string): string;
92
160
  protected readCache<T>(key: string): Promise<T | null>;
93
161
  protected writeCache<T>(key: string, data: T): Promise<void>;
94
162
  getWatchConfig(): ProcessorWatchConfig | undefined;
95
- getDependencies(): AssetDefinition[];
96
163
  getName(): string;
97
164
  getAssetCapabilities(): ProcessorAssetCapability[];
98
165
  matchesFileFilter(_filepath: string): boolean;