@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,35 +0,0 @@
1
- import { existsSync, readFileSync } from "node:fs";
2
- import path from "node:path";
3
- const CSS_PATH = /\.css$/u;
4
- const CSS_QUERY = "?ecopages-css-shim";
5
- function stripShimQuery(id) {
6
- const queryIndex = id.indexOf("?");
7
- return queryIndex === -1 ? id : id.slice(0, queryIndex);
8
- }
9
- function createServerSideCssShimPlugin() {
10
- return {
11
- name: "ecopages:server-side-css-shim",
12
- async resolveId(source, importer) {
13
- if (!CSS_PATH.test(source)) {
14
- return null;
15
- }
16
- const resolved = importer ? path.resolve(path.dirname(importer), source) : path.resolve(source);
17
- return existsSync(resolved) ? `${resolved}${CSS_QUERY}` : null;
18
- },
19
- async load(id) {
20
- if (!id.endsWith(CSS_QUERY)) {
21
- return null;
22
- }
23
- const realPath = stripShimQuery(id);
24
- readFileSync(realPath, "utf-8");
25
- return {
26
- code: 'export default "";',
27
- moduleType: "js",
28
- moduleSideEffects: true
29
- };
30
- }
31
- };
32
- }
33
- export {
34
- createServerSideCssShimPlugin
35
- };
@@ -1,31 +0,0 @@
1
- import { test, expect } from "@playwright/test";
2
- import { readFileSync } from "node:fs";
3
- import { writeFile } from "node:fs/promises";
4
- import { resolve } from "node:path";
5
- const FIXTURE_DIR = resolve(process.cwd(), "packages/core/__fixtures__/app");
6
- const TEST_CSS_FILE = resolve(FIXTURE_DIR, "src/pages/postcss-hmr.css");
7
- test.describe("HMR E2E PostCSS", () => {
8
- test("should hot-update processor-owned CSS without a full page reload", async ({ page }) => {
9
- const originalCss = readFileSync(TEST_CSS_FILE, "utf-8");
10
- const title = page.locator(".postcss-title").first();
11
- try {
12
- await page.goto("/postcss-hmr", { waitUntil: "networkidle" });
13
- await expect(title).toBeVisible();
14
- const initialColor = await title.evaluate((el) => getComputedStyle(el).color);
15
- expect(initialColor).toBeTruthy();
16
- await page.evaluate(() => {
17
- window.__postcssReloadProbe = "before-change";
18
- });
19
- const modifiedCss = originalCss.replace(".postcss-title {", ".postcss-title {\n color: rgb(255, 0, 0);");
20
- await writeFile(TEST_CSS_FILE, modifiedCss, { flush: true });
21
- await expect.poll(async () => title.evaluate((el) => getComputedStyle(el).color), { timeout: 1e4 }).toBe("rgb(255, 0, 0)");
22
- await expect(
23
- page.evaluate(
24
- () => window.__postcssReloadProbe ?? null
25
- )
26
- ).resolves.toBe("before-change");
27
- } finally {
28
- await writeFile(TEST_CSS_FILE, originalCss, { flush: true });
29
- }
30
- });
31
- });
@@ -1,54 +0,0 @@
1
- import { test, expect } from "@playwright/test";
2
- import { readFileSync } from "node:fs";
3
- import { writeFile } from "node:fs/promises";
4
- import { resolve } from "node:path";
5
- const FIXTURE_DIR = resolve(process.cwd(), "packages/core/__fixtures__/app");
6
- const TEST_CSS_FILE = resolve(FIXTURE_DIR, "src/pages/index.css");
7
- async function readMainTitleColor(page) {
8
- return page.evaluate(() => {
9
- const element = document.querySelector(".main-title");
10
- if (!(element instanceof HTMLElement)) {
11
- return "";
12
- }
13
- return getComputedStyle(element).color;
14
- });
15
- }
16
- test.describe("HMR E2E", () => {
17
- test("should load page with .main-title element", async ({ page }) => {
18
- await page.goto("/", { waitUntil: "networkidle" });
19
- const title = page.locator(".main-title").first();
20
- await expect(title).toBeVisible();
21
- });
22
- test("should connect to HMR WebSocket", async ({ page }) => {
23
- const socketPromise = page.waitForEvent("websocket", {
24
- predicate: (socket2) => socket2.url().endsWith("/_hmr"),
25
- timeout: 1e4
26
- });
27
- await page.goto("/", { waitUntil: "networkidle" });
28
- const socket = await socketPromise;
29
- expect(socket.url()).toMatch(/\/_hmr$/);
30
- });
31
- test("should fall back to a full page reload when raw CSS file changes", async ({ page }) => {
32
- const originalCss = readFileSync(TEST_CSS_FILE, "utf-8");
33
- const title = page.locator(".main-title").first();
34
- try {
35
- await page.goto("/", { waitUntil: "domcontentloaded" });
36
- await expect(title).toBeVisible();
37
- await expect.poll(async () => readMainTitleColor(page), { timeout: 1e4 }).not.toBe("");
38
- const initialColor = await readMainTitleColor(page);
39
- expect(initialColor).toBeTruthy();
40
- const modifiedCss = originalCss.replace(".main-title {", ".main-title {\n color: rgb(255, 0, 0);");
41
- const reloadPromise = page.waitForEvent("framenavigated", {
42
- predicate: (frame) => frame === page.mainFrame(),
43
- timeout: 1e4
44
- });
45
- await writeFile(TEST_CSS_FILE, modifiedCss, { flush: true });
46
- await reloadPromise;
47
- await page.waitForLoadState("domcontentloaded");
48
- await expect(title).toBeVisible();
49
- await expect.poll(async () => readMainTitleColor(page), { timeout: 1e4 }).toBe("rgb(255, 0, 0)");
50
- } finally {
51
- await writeFile(TEST_CSS_FILE, originalCss, { flush: true });
52
- }
53
- });
54
- });
@@ -1,57 +0,0 @@
1
- import {
2
- IntegrationRenderer
3
- } from "../../route-renderer/orchestration/integration-renderer.js";
4
- import { GHTML_PLUGIN_NAME } from "./ghtml.constants.js";
5
- class GhtmlRenderer extends IntegrationRenderer {
6
- name = GHTML_PLUGIN_NAME;
7
- async renderComponent(input) {
8
- return this.renderStringComponentWithQueuedForeignSubtrees(
9
- input,
10
- input.component
11
- );
12
- }
13
- async render({
14
- params,
15
- query,
16
- props,
17
- locals,
18
- pageLocals,
19
- metadata,
20
- Page,
21
- Layout,
22
- HtmlTemplate
23
- }) {
24
- try {
25
- return await this.renderPageWithDocumentShell({
26
- page: {
27
- component: Page,
28
- props: { params, query, ...props, locals: pageLocals }
29
- },
30
- layout: Layout ? {
31
- component: Layout,
32
- props: locals ? { locals } : {}
33
- } : void 0,
34
- htmlTemplate: HtmlTemplate,
35
- metadata,
36
- pageProps: props ?? {}
37
- });
38
- } catch (error) {
39
- throw this.createRenderError("Error rendering page", error);
40
- }
41
- }
42
- async renderToResponse(view, props, ctx) {
43
- try {
44
- return await this.renderViewWithDocumentShell({
45
- view,
46
- props,
47
- ctx,
48
- layout: view.config?.layout
49
- });
50
- } catch (error) {
51
- throw this.createRenderError("Error rendering view", error);
52
- }
53
- }
54
- }
55
- export {
56
- GhtmlRenderer
57
- };
@@ -1 +0,0 @@
1
- export declare const GHTML_PLUGIN_NAME = "ghtml";
@@ -1,4 +0,0 @@
1
- const GHTML_PLUGIN_NAME = "ghtml";
2
- export {
3
- GHTML_PLUGIN_NAME
4
- };
@@ -1,16 +0,0 @@
1
- import { IntegrationPlugin, type IntegrationPluginConfig } from '../../plugins/integration-plugin.js';
2
- import { GhtmlRenderer } from './ghtml-renderer.js';
3
- /**
4
- * The Ghtml plugin class
5
- * This plugin provides support for ghtml components in Ecopages
6
- */
7
- export declare class GhtmlPlugin extends IntegrationPlugin {
8
- renderer: typeof GhtmlRenderer;
9
- constructor(options?: Omit<IntegrationPluginConfig, 'name'>);
10
- }
11
- /**
12
- * Factory function to create a Ghtml plugin instance
13
- * @param options Configuration options for the Ghtml plugin
14
- * @returns A new GhtmlPlugin instance
15
- */
16
- export declare function ghtmlPlugin(options?: Omit<IntegrationPluginConfig, 'name'>): GhtmlPlugin;
@@ -1,20 +0,0 @@
1
- import { IntegrationPlugin } from "../../plugins/integration-plugin.js";
2
- import { GhtmlRenderer } from "./ghtml-renderer.js";
3
- import { GHTML_PLUGIN_NAME } from "./ghtml.constants.js";
4
- class GhtmlPlugin extends IntegrationPlugin {
5
- renderer = GhtmlRenderer;
6
- constructor(options) {
7
- super({
8
- name: GHTML_PLUGIN_NAME,
9
- extensions: [".ghtml.ts", ".ghtml.tsx", ".ghtml"],
10
- ...options
11
- });
12
- }
13
- }
14
- function ghtmlPlugin(options) {
15
- return new GhtmlPlugin(options);
16
- }
17
- export {
18
- GhtmlPlugin,
19
- ghtmlPlugin
20
- };
@@ -1,147 +0,0 @@
1
- import { addTriggerAttribute, isThenable, wrapWithScriptsInjector } from "./render-output.utils.js";
2
- class ComponentRenderOutputRuntime {
3
- finalizeComponentRender(component, content) {
4
- const lazyTriggers = component.config?._resolvedLazyTriggers;
5
- if (lazyTriggers && lazyTriggers.length > 0) {
6
- return this.addTriggerToContent(content, lazyTriggers[0].triggerId);
7
- }
8
- const lazyGroups = component.config?._resolvedLazyScripts;
9
- if (lazyGroups && lazyGroups.length > 0) {
10
- return this.wrapContentWithScriptsInjector(content, lazyGroups);
11
- }
12
- return content;
13
- }
14
- addTriggerToContent(content, triggerId) {
15
- if (isThenable(content)) {
16
- return content.then((resolvedContent) => addTriggerAttribute(resolvedContent, triggerId));
17
- }
18
- return addTriggerAttribute(content, triggerId);
19
- }
20
- wrapContentWithScriptsInjector(content, lazyGroups) {
21
- if (isThenable(content)) {
22
- return content.then((resolvedContent) => wrapWithScriptsInjector(resolvedContent, lazyGroups));
23
- }
24
- return wrapWithScriptsInjector(content, lazyGroups);
25
- }
26
- }
27
- class ContextualComponentRenderRuntime extends ComponentRenderOutputRuntime {
28
- context;
29
- constructor(context) {
30
- super();
31
- this.context = context;
32
- }
33
- applyForeignChildInterceptionResult(result) {
34
- if (result.kind === "resolved") {
35
- return result;
36
- }
37
- return result.props ? result : void 0;
38
- }
39
- /**
40
- * Resolves one foreign-child interception through the active runtime.
41
- *
42
- * The runtime may choose inline rendering or immediate resolved output.
43
- */
44
- interceptForeignChild(input) {
45
- const foreignChildRuntimeInput = {
46
- currentIntegration: this.context.currentIntegration,
47
- targetIntegration: input.targetIntegration,
48
- component: input.component,
49
- props: input.props
50
- };
51
- const asyncInterception = this.context.foreignChildRuntime?.interceptForeignChild?.(foreignChildRuntimeInput);
52
- if (asyncInterception !== void 0) {
53
- if (isThenable(asyncInterception)) {
54
- return asyncInterception.then((result) => this.applyForeignChildInterceptionResult(result));
55
- }
56
- return this.applyForeignChildInterceptionResult(asyncInterception);
57
- }
58
- const syncInterception = this.context.foreignChildRuntime?.interceptForeignChildSync?.(foreignChildRuntimeInput);
59
- if (syncInterception === void 0) {
60
- return void 0;
61
- }
62
- return this.applyForeignChildInterceptionResult(syncInterception);
63
- }
64
- }
65
- const GLOBAL_COMPONENT_RENDER_CONTEXT_STATE_KEY = "__ECOPAGES_COMPONENT_RENDER_CONTEXT_STATE__";
66
- function getSharedContextScope() {
67
- const globalProcess = globalThis.process;
68
- if (globalProcess && typeof globalProcess === "object") {
69
- return globalProcess;
70
- }
71
- return globalThis;
72
- }
73
- function getComponentRenderContextState() {
74
- const sharedScope = getSharedContextScope();
75
- sharedScope[GLOBAL_COMPONENT_RENDER_CONTEXT_STATE_KEY] ??= {
76
- contextStack: [],
77
- nodeContextStorage: null,
78
- nodeContextStorageLoader: null
79
- };
80
- return sharedScope[GLOBAL_COMPONENT_RENDER_CONTEXT_STATE_KEY];
81
- }
82
- async function getContextStorage() {
83
- const state = getComponentRenderContextState();
84
- if (state.nodeContextStorage) {
85
- return state.nodeContextStorage;
86
- }
87
- if (state.nodeContextStorageLoader) {
88
- return state.nodeContextStorageLoader;
89
- }
90
- state.nodeContextStorageLoader = import("node:async_hooks").then((module) => {
91
- const storage = new module.AsyncLocalStorage();
92
- state.nodeContextStorage = {
93
- getStore: () => storage.getStore(),
94
- run: (store, callback) => storage.run(store, callback)
95
- };
96
- return state.nodeContextStorage;
97
- }).catch(() => {
98
- state.nodeContextStorage = null;
99
- return null;
100
- }).finally(() => {
101
- state.nodeContextStorageLoader = null;
102
- });
103
- return state.nodeContextStorageLoader;
104
- }
105
- function getComponentRenderContext() {
106
- const state = getComponentRenderContextState();
107
- return state.nodeContextStorage?.getStore() ?? state.contextStack[state.contextStack.length - 1];
108
- }
109
- const componentRenderOutputRuntime = new ComponentRenderOutputRuntime();
110
- function interceptForeignChild(input) {
111
- return getComponentRenderContext()?.interceptForeignChild(input);
112
- }
113
- function finalizeComponentRender(component, content) {
114
- const renderContext = getComponentRenderContext();
115
- return renderContext?.finalizeComponentRender(component, content) ?? componentRenderOutputRuntime.finalizeComponentRender(component, content);
116
- }
117
- async function runWithComponentRenderContext(input, render) {
118
- const context = {
119
- currentIntegration: input.currentIntegration,
120
- foreignChildRuntime: input.foreignChildRuntime
121
- };
122
- const runtime = new ContextualComponentRenderRuntime(context);
123
- context.interceptForeignChild = (deferredInput) => runtime.interceptForeignChild(deferredInput);
124
- context.finalizeComponentRender = (component, content) => runtime.finalizeComponentRender(component, content);
125
- const storage = await getContextStorage();
126
- let value;
127
- if (storage) {
128
- value = await storage.run(context, render);
129
- } else {
130
- const state = getComponentRenderContextState();
131
- state.contextStack.push(context);
132
- try {
133
- value = await render();
134
- } finally {
135
- state.contextStack.pop();
136
- }
137
- }
138
- return {
139
- value
140
- };
141
- }
142
- export {
143
- finalizeComponentRender,
144
- getComponentRenderContext,
145
- interceptForeignChild,
146
- runWithComponentRenderContext
147
- };
@@ -1,18 +0,0 @@
1
- import type { EcoComponent, OwnershipPlanNodeSource } from '../../types/public-types.js';
2
- export type DeclaredOwnershipRoot = {
3
- component: EcoComponent;
4
- source: Extract<OwnershipPlanNodeSource, 'page' | 'layout' | 'html-template'>;
5
- };
6
- export type DeclaredOwnershipNodeInput = {
7
- component: EcoComponent;
8
- source: Exclude<OwnershipPlanNodeSource, 'route'>;
9
- parentIntegrationName: string;
10
- integrationName: string;
11
- componentId: string;
12
- isForeignToParent: boolean;
13
- };
14
- export declare function mapDeclaredOwnershipGraph<T>(input: {
15
- roots: DeclaredOwnershipRoot[];
16
- currentIntegrationName: string;
17
- mapNode: (node: DeclaredOwnershipNodeInput, children: T[]) => T;
18
- }): T[];
@@ -1,34 +0,0 @@
1
- function mapDeclaredOwnershipGraph(input) {
2
- let nextSyntheticId = 0;
3
- const mapComponent = (component, source, parentIntegrationName, lineage) => {
4
- const integrationName = component.config?.integration ?? component.config?.__eco?.integration ?? parentIntegrationName;
5
- const componentMeta = component.config?.__eco;
6
- const isForeignToParent = integrationName !== parentIntegrationName;
7
- const componentId = componentMeta?.id ?? componentMeta?.file ?? `${source}:${nextSyntheticId += 1}`;
8
- const nextLineage = new Set(lineage);
9
- nextLineage.add(component);
10
- const children = (component.config?.dependencies?.components ?? []).flatMap((child) => {
11
- if (!child || nextLineage.has(child)) {
12
- return [];
13
- }
14
- return [mapComponent(child, "dependency", integrationName, nextLineage)];
15
- });
16
- return input.mapNode(
17
- {
18
- component,
19
- source,
20
- parentIntegrationName,
21
- integrationName,
22
- componentId,
23
- isForeignToParent
24
- },
25
- children
26
- );
27
- };
28
- return input.roots.map(
29
- ({ component, source }) => mapComponent(component, source, input.currentIntegrationName, /* @__PURE__ */ new Set())
30
- );
31
- }
32
- export {
33
- mapDeclaredOwnershipGraph
34
- };
@@ -1,231 +0,0 @@
1
- import {
2
- getComponentRenderContext,
3
- runWithComponentRenderContext
4
- } from "./component-render-context.js";
5
- import {
6
- QueuedForeignSubtreeResolutionService
7
- } from "./queued-foreign-subtree-resolution.service.js";
8
- import { isMarkupNodeLike } from "./render-output.utils.js";
9
- class ForeignSubtreeExecutionService {
10
- queuedForeignSubtreeResolutionService;
11
- constructor(queuedForeignSubtreeResolutionService = new QueuedForeignSubtreeResolutionService()) {
12
- this.queuedForeignSubtreeResolutionService = queuedForeignSubtreeResolutionService;
13
- }
14
- requiresForeignChildRuntime(input) {
15
- const children = input.children ?? input.props.children;
16
- if (children === void 0 || children === null) {
17
- return false;
18
- }
19
- if (typeof children === "string") {
20
- return false;
21
- }
22
- if (typeof children !== "object") {
23
- return false;
24
- }
25
- return !isMarkupNodeLike(children);
26
- }
27
- /**
28
- * Returns whether the current render pass must hand the child off to a foreign owner.
29
- */
30
- shouldDelegateForeignChild(input) {
31
- return !!input.targetIntegration && input.targetIntegration !== input.currentIntegration;
32
- }
33
- /**
34
- * Creates the base runtime used when a renderer has not supplied its own queueing runtime.
35
- *
36
- * The runtime allows same-integration children to continue inline and fails fast
37
- * when execution crosses into a foreign owner without a renderer-owned handoff.
38
- */
39
- createFailFastRuntime(rendererName) {
40
- const interceptForeignChild = (input) => {
41
- if (!this.shouldDelegateForeignChild(input)) {
42
- return {
43
- kind: "inline",
44
- props: "props" in input && input.props ? { ...input.props } : void 0
45
- };
46
- }
47
- throw new Error(
48
- `[ecopages] ${rendererName} renderer crossed into ${input.targetIntegration} without a renderer-owned foreign-child runtime. Override createForeignChildRuntime() to resolve foreign children inside the owning renderer.`
49
- );
50
- };
51
- return {
52
- interceptForeignChild,
53
- interceptForeignChildSync: interceptForeignChild
54
- };
55
- }
56
- getQueuedRuntimeContext(input, runtimeContextKey) {
57
- return this.queuedForeignSubtreeResolutionService.getRuntimeContext(input, runtimeContextKey);
58
- }
59
- createQueuedRuntime(options) {
60
- return this.queuedForeignSubtreeResolutionService.createRuntime({
61
- renderInput: options.renderInput,
62
- rendererCache: options.rendererCache,
63
- runtimeContextKey: options.runtimeContextKey,
64
- tokenPrefix: options.tokenPrefix,
65
- shouldQueueForeignChild: (input) => this.shouldDelegateForeignChild(input),
66
- createRuntimeContext: options.createRuntimeContext
67
- });
68
- }
69
- /**
70
- * Resolves a string-first renderer HTML fragment that may contain queued Foreign Subtree tokens.
71
- */
72
- async resolveStringQueuedHtml(options) {
73
- const runtimeContext = this.getQueuedRuntimeContext(options.renderInput, options.runtimeContextKey);
74
- return this.resolveQueuedHtml({
75
- currentIntegrationName: options.currentIntegrationName,
76
- html: options.html,
77
- runtimeContext,
78
- queueLabel: options.queueLabel,
79
- renderQueuedChildren: async (children, _runtimeContext, queuedResolutionsByToken, resolveToken) => {
80
- if (children === void 0) {
81
- return { assets: [], html: void 0 };
82
- }
83
- if (typeof children !== "string" && !isMarkupNodeLike(children)) {
84
- return { assets: [], children };
85
- }
86
- const html = await this.resolveQueuedTokens(
87
- typeof children === "string" ? children : children.outerHTML ?? String(children ?? ""),
88
- queuedResolutionsByToken,
89
- resolveToken
90
- );
91
- return { assets: [], html };
92
- },
93
- getOwningRenderer: options.getOwningRenderer,
94
- applyAttributesToFirstElement: options.applyAttributesToFirstElement,
95
- dedupeProcessedAssets: options.dedupeProcessedAssets
96
- });
97
- }
98
- async resolveQueuedHtml(options) {
99
- return this.queuedForeignSubtreeResolutionService.resolveQueuedHtml({
100
- html: options.html,
101
- runtimeContext: options.runtimeContext,
102
- queueLabel: options.queueLabel,
103
- renderQueuedChildren: options.renderQueuedChildren,
104
- resolveForeignSubtree: (input, rendererCache) => this.resolveForeignSubtreeInOwningRenderer({
105
- currentIntegrationName: options.currentIntegrationName,
106
- input,
107
- rendererCache,
108
- getOwningRenderer: options.getOwningRenderer
109
- }),
110
- applyAttributesToFirstElement: options.applyAttributesToFirstElement,
111
- dedupeProcessedAssets: options.dedupeProcessedAssets
112
- });
113
- }
114
- /**
115
- * Executes one component render with Foreign Child support under the current integration.
116
- */
117
- async executeComponentRender(options) {
118
- const rendererCache = this.getRendererCache(options.input.integrationContext) ?? /* @__PURE__ */ new Map();
119
- const delegatedForeignChildRender = await this.resolveForeignChildInOwningRenderer({
120
- currentIntegrationName: options.currentIntegrationName,
121
- input: options.input,
122
- rendererCache,
123
- getOwningRenderer: options.getOwningRenderer
124
- });
125
- if (delegatedForeignChildRender) {
126
- return delegatedForeignChildRender;
127
- }
128
- const hasForeignChildren = options.hasForeignChildDescendants(options.input.component) || this.requiresForeignChildRuntime(options.input);
129
- const activeRenderContext = getComponentRenderContext();
130
- if (!hasForeignChildren) {
131
- if (!activeRenderContext || activeRenderContext.currentIntegration === options.currentIntegrationName) {
132
- return options.normalizeComponentRenderOutput(await options.renderComponent(options.input));
133
- }
134
- const sameIntegrationExecution = await runWithComponentRenderContext(
135
- {
136
- currentIntegration: options.currentIntegrationName
137
- },
138
- async () => options.renderComponent(options.input)
139
- );
140
- return options.normalizeComponentRenderOutput(sameIntegrationExecution.value);
141
- }
142
- const execution = await runWithComponentRenderContext(
143
- {
144
- currentIntegration: options.currentIntegrationName,
145
- foreignChildRuntime: options.createForeignChildRuntime({
146
- renderInput: options.input,
147
- rendererCache
148
- })
149
- },
150
- async () => options.renderComponent(options.input)
151
- );
152
- return options.normalizeComponentRenderOutput(execution.value);
153
- }
154
- getRendererCache(integrationContext) {
155
- if (integrationContext?.rendererCache instanceof Map) {
156
- return integrationContext.rendererCache;
157
- }
158
- return void 0;
159
- }
160
- withRendererCache(input, rendererCache) {
161
- const integrationContext = input.integrationContext;
162
- const sharedRendererCache = rendererCache;
163
- return {
164
- ...input,
165
- integrationContext: integrationContext ? { ...integrationContext, rendererCache: sharedRendererCache } : { rendererCache: sharedRendererCache }
166
- };
167
- }
168
- /**
169
- * Returns the delegatable owning renderer integration for one component.
170
- *
171
- * The pseudo `html` integration marks document-shell ownership only and does
172
- * not participate in component-level foreign subtree execution.
173
- */
174
- getForeignOwnerIntegrationName(component, currentIntegrationName) {
175
- const integrationName = component.config?.integration ?? component.config?.__eco?.integration;
176
- if (!integrationName || integrationName === "html" || integrationName === currentIntegrationName) {
177
- return void 0;
178
- }
179
- return integrationName;
180
- }
181
- async resolveForeignChildInOwningRenderer(options) {
182
- return await this.runInForeignOwningRenderer({
183
- currentIntegrationName: options.currentIntegrationName,
184
- input: options.input,
185
- rendererCache: options.rendererCache,
186
- getOwningRenderer: options.getOwningRenderer,
187
- run: (owningRenderer, delegatedInput) => owningRenderer.renderComponentWithForeignChildren(delegatedInput)
188
- });
189
- }
190
- async resolveForeignSubtreeInOwningRenderer(options) {
191
- return await this.runInForeignOwningRenderer({
192
- currentIntegrationName: options.currentIntegrationName,
193
- input: options.input,
194
- rendererCache: options.rendererCache,
195
- getOwningRenderer: options.getOwningRenderer,
196
- run: (owningRenderer, delegatedInput) => owningRenderer.renderForeignSubtree(delegatedInput)
197
- });
198
- }
199
- async runInForeignOwningRenderer(options) {
200
- const foreignOwnerIntegrationName = this.getForeignOwnerIntegrationName(
201
- options.input.component,
202
- options.currentIntegrationName
203
- );
204
- if (!foreignOwnerIntegrationName) {
205
- return void 0;
206
- }
207
- const owningRenderer = options.getOwningRenderer(foreignOwnerIntegrationName, options.rendererCache);
208
- if (owningRenderer.name === options.currentIntegrationName) {
209
- return void 0;
210
- }
211
- const delegatedInputWithCache = this.withRendererCache(options.input, options.rendererCache);
212
- const delegatedChildren = delegatedInputWithCache.children ?? delegatedInputWithCache.props.children;
213
- return await options.run(owningRenderer, {
214
- ...delegatedInputWithCache,
215
- children: delegatedChildren
216
- });
217
- }
218
- async resolveQueuedTokens(html, queuedResolutionsByToken, resolveToken) {
219
- let resolvedHtml = html;
220
- for (const token of queuedResolutionsByToken.keys()) {
221
- if (!resolvedHtml.includes(token)) {
222
- continue;
223
- }
224
- resolvedHtml = resolvedHtml.split(token).join(await resolveToken(token));
225
- }
226
- return resolvedHtml;
227
- }
228
- }
229
- export {
230
- ForeignSubtreeExecutionService
231
- };
@@ -1,24 +0,0 @@
1
- import type { OwnershipPlan, OwnershipValidationError, EcoComponent } from '../../types/public-types.js';
2
- type OwnershipPlanBuildInput = {
3
- routeFile: string;
4
- currentIntegrationName: string;
5
- HtmlTemplate: EcoComponent;
6
- Layout?: EcoComponent;
7
- Page: EcoComponent;
8
- validationErrors?: OwnershipValidationError[];
9
- };
10
- /**
11
- * Builds a declared ownership plan from the component dependency graph.
12
- *
13
- * The plan reflects the declared component dependency graph for one route after
14
- * route-root ownership validation has already run. It records ownership shape,
15
- * foreign-edge counts, and any validation errors supplied by an earlier
16
- * validation pass.
17
- */
18
- export declare class OwnershipPlanningService {
19
- /**
20
- * Builds the structural ownership plan for one route render.
21
- */
22
- buildPlan(input: OwnershipPlanBuildInput): OwnershipPlan;
23
- }
24
- export {};