@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,132 +1,132 @@
1
- import path from "node:path";
2
- import { AssetFactory } from "../../services/assets/asset-processing-service/index.js";
3
- import { extractEcopagesVirtualImports } from "./ecopages-virtual-imports.js";
4
- import { collectDeclaredAssetEntries } from "./declared-asset-collection.js";
5
- import { getLazyTriggerKey } from "./lazy-trigger-planning.js";
6
- import { collectLazyScriptEntries } from "./lazy-entry-collection.js";
7
- import {
8
- createModuleScriptName,
9
- createNamedImportModuleSource,
10
- createNamespaceImportModuleSource
11
- } from "./module-declaration-scripts.js";
12
- import { collectModuleDeclarations } from "./module-declaration-aggregation.js";
1
+ import path from 'node:path';
2
+ import { assertEcoDeclaredComponent } from '../../eco/eco-declared-component.js';
3
+ import { getComponentIdentity } from '../../eco/component-identity.js';
4
+ import { AssetFactory } from '../../services/assets/asset-processing-service/index.js';
5
+ import { extractEcopagesVirtualImports } from './ecopages-virtual-imports.js';
6
+ import { collectDeclaredAssetEntries } from './declared-asset-collection.js';
7
+ import { getLazyTriggerKey } from './lazy-trigger-planning.js';
8
+ import { collectLazyScriptEntries } from './lazy-entry-collection.js';
9
+ import { createModuleScriptName, createNamedImportModuleSource, createNamespaceImportModuleSource, } from './module-declaration-scripts.js';
10
+ import { collectModuleDeclarations } from './module-declaration-aggregation.js';
13
11
  const MODULE_SCRIPT_ATTRIBUTES = {
14
- type: "module",
15
- defer: ""
12
+ type: 'module',
13
+ defer: '',
16
14
  };
17
15
  function createModuleScriptAttributes(attributes) {
18
- return {
19
- ...MODULE_SCRIPT_ATTRIBUTES,
20
- ...attributes
21
- };
16
+ return {
17
+ ...MODULE_SCRIPT_ATTRIBUTES,
18
+ ...attributes,
19
+ };
22
20
  }
23
21
  function pushUniqueDependency(keys, key, dependencies, dependency) {
24
- if (keys.has(key)) {
25
- return false;
26
- }
27
- keys.add(key);
28
- dependencies.push(dependency);
29
- return true;
22
+ if (keys.has(key)) {
23
+ return false;
24
+ }
25
+ keys.add(key);
26
+ dependencies.push(dependency);
27
+ return true;
30
28
  }
31
29
  function resolveDependencyPath(componentDir, pathUrl) {
32
- return path.join(componentDir, pathUrl);
30
+ return path.join(componentDir, pathUrl);
33
31
  }
34
- function collectComponentDependencies(options) {
35
- const {
36
- components,
37
- integrationName,
38
- resolveLazyScripts,
39
- createEcopagesJsxLazyEntryName,
40
- isEcopagesJsxIntegration,
41
- errors
42
- } = options;
43
- const dependencies = [];
44
- const lazyScriptsByConfig = /* @__PURE__ */ new Map();
45
- const lazyDependencyKeys = /* @__PURE__ */ new Set();
46
- for (const component of components) {
47
- if (!component) continue;
48
- const componentFile = component.config?.__eco?.file;
49
- if (!componentFile) continue;
50
- const stylesheetDependencyKeys = /* @__PURE__ */ new Set();
51
- const scriptDependencyKeys = /* @__PURE__ */ new Set();
52
- const modulesMap = /* @__PURE__ */ new Map();
53
- const collect = (config) => {
54
- if (!config) return;
55
- const file = config.__eco?.file;
56
- if (!file) return;
57
- const dir = path.dirname(file);
58
- const dependenciesConfig = config.dependencies;
59
- const registerLazyScript = ({
60
- lazy,
61
- lazyKey,
62
- fallbackUrl
63
- }) => {
64
- let grouped = lazyScriptsByConfig.get(config);
65
- if (!grouped) {
66
- grouped = /* @__PURE__ */ new Map();
67
- lazyScriptsByConfig.set(config, grouped);
68
- }
69
- const triggerKey = getLazyTriggerKey(lazy);
70
- const existing = grouped.get(triggerKey) ?? { lazy, scripts: [] };
71
- existing.scripts.push({ lazyKey, fallbackUrl });
72
- grouped.set(triggerKey, existing);
73
- };
74
- collectDeclaredAssetEntries({
75
- stylesheetEntries: dependenciesConfig?.stylesheets ?? [],
76
- scriptEntries: dependenciesConfig?.scripts ?? [],
77
- componentDir: dir,
78
- dependencies,
79
- stylesheetDependencyKeys,
80
- scriptDependencyKeys,
81
- resolveDependencyPath,
82
- createModuleScriptAttributes,
83
- pushUniqueDependency,
84
- getInvalidStylesheetEntryMessage: () => errors.invalidStylesheetEntry,
85
- getInvalidScriptEntryMessage: () => errors.invalidScriptEntry
86
- });
87
- collectModuleDeclarations(modulesMap, dependenciesConfig?.modules, extractEcopagesVirtualImports(file));
88
- collectLazyScriptEntries({
89
- scriptEntries: dependenciesConfig?.scripts ?? [],
90
- componentFile: file,
91
- componentDir: dir,
92
- integrationName,
32
+ /**
33
+ * Walks component dependency trees and collects declared assets, module declarations,
34
+ * and lazy-script group metadata in one pass.
35
+ *
36
+ * The returned structures intentionally preserve both the flat asset list used by
37
+ * asset processing and the grouped lazy-trigger data used later during render output.
38
+ */
39
+ export function collectComponentDependencies(options) {
40
+ const { components, integrationName, resolveLazyScripts, createEcopagesJsxLazyEntryName, isEcopagesJsxIntegration, errors, } = options;
41
+ const dependencies = [];
42
+ const lazyScriptsByConfig = new Map();
43
+ const lazyDependencyKeys = new Set();
44
+ for (const component of components) {
45
+ if (!component)
46
+ continue;
47
+ const componentFile = getComponentIdentity(component)?.file;
48
+ if (!componentFile)
49
+ continue;
50
+ const stylesheetDependencyKeys = new Set();
51
+ const scriptDependencyKeys = new Set();
52
+ const modulesMap = new Map();
53
+ /**
54
+ * Recursively visits one component config and its declared child dependencies.
55
+ */
56
+ const collect = (config) => {
57
+ if (!config)
58
+ return;
59
+ const file = getComponentIdentity(config)?.file;
60
+ if (!file)
61
+ return;
62
+ const dir = path.dirname(file);
63
+ const dependenciesConfig = config.dependencies;
64
+ const registerLazyScript = ({ lazy, lazyKey, fallbackUrl, }) => {
65
+ let grouped = lazyScriptsByConfig.get(config);
66
+ if (!grouped) {
67
+ grouped = new Map();
68
+ lazyScriptsByConfig.set(config, grouped);
69
+ }
70
+ const triggerKey = getLazyTriggerKey(lazy);
71
+ const existing = grouped.get(triggerKey) ?? { lazy, scripts: [] };
72
+ existing.scripts.push({ lazyKey, fallbackUrl });
73
+ grouped.set(triggerKey, existing);
74
+ };
75
+ collectDeclaredAssetEntries({
76
+ stylesheetEntries: dependenciesConfig?.stylesheets ?? [],
77
+ scriptEntries: dependenciesConfig?.scripts ?? [],
78
+ componentDir: dir,
79
+ dependencies,
80
+ stylesheetDependencyKeys,
81
+ scriptDependencyKeys,
82
+ resolveDependencyPath,
83
+ createModuleScriptAttributes,
84
+ pushUniqueDependency,
85
+ getInvalidStylesheetEntryMessage: () => errors.invalidStylesheetEntry,
86
+ getInvalidScriptEntryMessage: () => errors.invalidScriptEntry,
87
+ });
88
+ collectModuleDeclarations(modulesMap, dependenciesConfig?.modules, extractEcopagesVirtualImports(file));
89
+ collectLazyScriptEntries({
90
+ scriptEntries: dependenciesConfig?.scripts ?? [],
91
+ componentFile: file,
92
+ componentDir: dir,
93
+ integrationName,
94
+ dependencies,
95
+ lazyDependencyKeys,
96
+ registerLazyScript,
97
+ resolveDependencyPath,
98
+ resolveLazyScripts,
99
+ createModuleScriptAttributes,
100
+ createEcopagesJsxLazyEntryName,
101
+ pushUniqueDependency,
102
+ getLazyScriptMissingSrcMessage: () => errors.lazyScriptMissingSrc,
103
+ isEcopagesJsxIntegration,
104
+ });
105
+ if (dependenciesConfig?.components) {
106
+ for (const nestedComponent of dependenciesConfig.components) {
107
+ if (!nestedComponent) {
108
+ continue;
109
+ }
110
+ assertEcoDeclaredComponent(nestedComponent, { parentComponentFile: file });
111
+ collect(nestedComponent.config);
112
+ }
113
+ }
114
+ };
115
+ collect(component.config);
116
+ dependencies.push(...Array.from(modulesMap.entries()).map(([from, importsSet]) => {
117
+ const imports = importsSet ? Array.from(importsSet) : undefined;
118
+ return AssetFactory.createContentScript({
119
+ position: 'head',
120
+ name: createModuleScriptName(from, imports),
121
+ content: imports && imports.length > 0
122
+ ? createNamedImportModuleSource(from, imports)
123
+ : createNamespaceImportModuleSource(from),
124
+ attributes: createModuleScriptAttributes(),
125
+ });
126
+ }));
127
+ }
128
+ return {
93
129
  dependencies,
94
- lazyDependencyKeys,
95
- registerLazyScript,
96
- resolveDependencyPath,
97
- resolveLazyScripts,
98
- createModuleScriptAttributes,
99
- createEcopagesJsxLazyEntryName,
100
- pushUniqueDependency,
101
- getLazyScriptMissingSrcMessage: () => errors.lazyScriptMissingSrc,
102
- isEcopagesJsxIntegration
103
- });
104
- if (dependenciesConfig?.components) {
105
- for (const nestedComponent of dependenciesConfig.components) {
106
- if (nestedComponent?.config) {
107
- collect(nestedComponent.config);
108
- }
109
- }
110
- }
130
+ lazyScriptsByConfig,
111
131
  };
112
- collect(component.config);
113
- dependencies.push(
114
- ...Array.from(modulesMap.entries()).map(([from, importsSet]) => {
115
- const imports = importsSet ? Array.from(importsSet) : void 0;
116
- return AssetFactory.createContentScript({
117
- position: "head",
118
- name: createModuleScriptName(from, imports),
119
- content: imports && imports.length > 0 ? createNamedImportModuleSource(from, imports) : createNamespaceImportModuleSource(from),
120
- attributes: createModuleScriptAttributes()
121
- });
122
- })
123
- );
124
- }
125
- return {
126
- dependencies,
127
- lazyScriptsByConfig
128
- };
129
132
  }
130
- export {
131
- collectComponentDependencies
132
- };
@@ -1,106 +1,78 @@
1
- import { AssetFactory } from "../../services/assets/asset-processing-service/index.js";
1
+ import { AssetFactory } from '../../services/assets/asset-processing-service/index.js';
2
2
  function isDependencyEntryObject(entry) {
3
- return typeof entry === "object" && entry !== null;
3
+ return typeof entry === 'object' && entry !== null;
4
4
  }
5
5
  function getDependencyEntrySrc(entry) {
6
- return isDependencyEntryObject(entry) ? entry.src : entry;
6
+ return isDependencyEntryObject(entry) ? entry.src : entry;
7
7
  }
8
8
  function getDependencyEntryContent(entry) {
9
- return isDependencyEntryObject(entry) ? entry.content : void 0;
9
+ return isDependencyEntryObject(entry) ? entry.content : undefined;
10
10
  }
11
11
  function getDependencyEntryAttributes(entry) {
12
- return isDependencyEntryObject(entry) ? entry.attributes : void 0;
12
+ return isDependencyEntryObject(entry) ? entry.attributes : undefined;
13
13
  }
14
- function collectDeclaredAssetEntries(options) {
15
- const {
16
- stylesheetEntries,
17
- scriptEntries,
18
- componentDir,
19
- dependencies,
20
- stylesheetDependencyKeys,
21
- scriptDependencyKeys,
22
- resolveDependencyPath,
23
- createModuleScriptAttributes,
24
- pushUniqueDependency,
25
- getInvalidStylesheetEntryMessage,
26
- getInvalidScriptEntryMessage
27
- } = options;
28
- for (const style of stylesheetEntries) {
29
- const content = getDependencyEntryContent(style);
30
- const src = getDependencyEntrySrc(style);
31
- const attributes = getDependencyEntryAttributes(style);
32
- if (content) {
33
- const depKey2 = `style:content:${content}:${JSON.stringify(attributes ?? {})}`;
34
- pushUniqueDependency(
35
- stylesheetDependencyKeys,
36
- depKey2,
37
- dependencies,
38
- AssetFactory.createContentStylesheet({
39
- content,
40
- position: "head",
41
- attributes
42
- })
43
- );
44
- continue;
45
- }
46
- if (!src) {
47
- throw new Error(getInvalidStylesheetEntryMessage());
48
- }
49
- const resolvedPath = resolveDependencyPath(componentDir, src);
50
- const depKey = `style:file:${resolvedPath}:${JSON.stringify(attributes ?? {})}`;
51
- pushUniqueDependency(
52
- stylesheetDependencyKeys,
53
- depKey,
54
- dependencies,
55
- AssetFactory.createFileStylesheet({
56
- filepath: resolvedPath,
57
- position: "head",
58
- attributes: {
59
- rel: "stylesheet",
60
- ...attributes
14
+ /**
15
+ * Normalizes non-lazy stylesheet and script declarations into asset definitions.
16
+ *
17
+ * Duplicate declarations are filtered through the provided key sets so callers can
18
+ * compose this helper into larger recursive collection passes without re-emitting
19
+ * the same asset multiple times.
20
+ */
21
+ export function collectDeclaredAssetEntries(options) {
22
+ const { stylesheetEntries, scriptEntries, componentDir, dependencies, stylesheetDependencyKeys, scriptDependencyKeys, resolveDependencyPath, createModuleScriptAttributes, pushUniqueDependency, getInvalidStylesheetEntryMessage, getInvalidScriptEntryMessage, } = options;
23
+ for (const style of stylesheetEntries) {
24
+ const content = getDependencyEntryContent(style);
25
+ const src = getDependencyEntrySrc(style);
26
+ const attributes = getDependencyEntryAttributes(style);
27
+ if (content) {
28
+ const depKey = `style:content:${content}:${JSON.stringify(attributes ?? {})}`;
29
+ pushUniqueDependency(stylesheetDependencyKeys, depKey, dependencies, AssetFactory.createContentStylesheet({
30
+ content,
31
+ position: 'head',
32
+ attributes,
33
+ }));
34
+ continue;
61
35
  }
62
- })
63
- );
64
- }
65
- for (const script of scriptEntries) {
66
- if (isDependencyEntryObject(script) && "lazy" in script && script.lazy) {
67
- continue;
68
- }
69
- const content = getDependencyEntryContent(script);
70
- const src = getDependencyEntrySrc(script);
71
- const attributes = getDependencyEntryAttributes(script);
72
- if (content) {
73
- const depKey2 = `script:content:${content}:${JSON.stringify(attributes ?? {})}`;
74
- pushUniqueDependency(
75
- scriptDependencyKeys,
76
- depKey2,
77
- dependencies,
78
- AssetFactory.createInlineContentScript({
79
- position: "head",
80
- content,
81
- bundle: false,
82
- attributes
83
- })
84
- );
85
- continue;
36
+ if (!src) {
37
+ throw new Error(getInvalidStylesheetEntryMessage());
38
+ }
39
+ const resolvedPath = resolveDependencyPath(componentDir, src);
40
+ const depKey = `style:file:${resolvedPath}:${JSON.stringify(attributes ?? {})}`;
41
+ pushUniqueDependency(stylesheetDependencyKeys, depKey, dependencies, AssetFactory.createFileStylesheet({
42
+ filepath: resolvedPath,
43
+ position: 'head',
44
+ attributes: {
45
+ rel: 'stylesheet',
46
+ ...attributes,
47
+ },
48
+ }));
86
49
  }
87
- if (!src) {
88
- throw new Error(getInvalidScriptEntryMessage());
50
+ for (const script of scriptEntries) {
51
+ if (isDependencyEntryObject(script) && 'lazy' in script && script.lazy) {
52
+ continue;
53
+ }
54
+ const content = getDependencyEntryContent(script);
55
+ const src = getDependencyEntrySrc(script);
56
+ const attributes = getDependencyEntryAttributes(script);
57
+ if (content) {
58
+ const depKey = `script:content:${content}:${JSON.stringify(attributes ?? {})}`;
59
+ pushUniqueDependency(scriptDependencyKeys, depKey, dependencies, AssetFactory.createInlineContentScript({
60
+ position: 'head',
61
+ content,
62
+ bundle: false,
63
+ attributes,
64
+ }));
65
+ continue;
66
+ }
67
+ if (!src) {
68
+ throw new Error(getInvalidScriptEntryMessage());
69
+ }
70
+ const resolvedPath = resolveDependencyPath(componentDir, src);
71
+ const depKey = `script:file:${resolvedPath}:${JSON.stringify(attributes ?? {})}`;
72
+ pushUniqueDependency(scriptDependencyKeys, depKey, dependencies, AssetFactory.createFileScript({
73
+ filepath: resolvedPath,
74
+ position: 'head',
75
+ attributes: createModuleScriptAttributes(attributes),
76
+ }));
89
77
  }
90
- const resolvedPath = resolveDependencyPath(componentDir, src);
91
- const depKey = `script:file:${resolvedPath}:${JSON.stringify(attributes ?? {})}`;
92
- pushUniqueDependency(
93
- scriptDependencyKeys,
94
- depKey,
95
- dependencies,
96
- AssetFactory.createFileScript({
97
- filepath: resolvedPath,
98
- position: "head",
99
- attributes: createModuleScriptAttributes(attributes)
100
- })
101
- );
102
- }
103
78
  }
104
- export {
105
- collectDeclaredAssetEntries
106
- };
@@ -1,115 +1,112 @@
1
- import path from "node:path";
2
- import { rapidhash } from "../../utils/hash.js";
3
- import { AssetFactory } from "../../services/assets/asset-processing-service/index.js";
4
- import { buildResolvedLazyTriggers } from "./lazy-trigger-planning.js";
5
- import { collectComponentDependencies } from "./component-dependency-collection.js";
6
- import { packagePageDependencies } from "./page-dependency-bundling.js";
7
- const DEPENDENCY_ERRORS = {
8
- INVALID_STYLESHEET_ENTRY: "Invalid stylesheet dependency entry: expected src or content",
9
- INVALID_SCRIPT_ENTRY: "Invalid script dependency entry: expected src or content",
10
- LAZY_SCRIPT_MISSING_SRC: "Lazy script dependency entry in dependencies.scripts requires a src value"
1
+ import path from 'node:path';
2
+ import { rapidhash } from '../../utils/hash.js';
3
+ import { AssetFactory } from '../../services/assets/asset-processing-service/index.js';
4
+ import { buildResolvedLazyTriggers } from './lazy-trigger-planning.js';
5
+ import { collectComponentDependencies } from './component-dependency-collection.js';
6
+ import { packagePageDependencies } from './page-dependency-bundling.js';
7
+ export const DEPENDENCY_ERRORS = {
8
+ INVALID_STYLESHEET_ENTRY: 'Invalid stylesheet dependency entry: expected src or content',
9
+ INVALID_SCRIPT_ENTRY: 'Invalid script dependency entry: expected src or content',
10
+ LAZY_SCRIPT_MISSING_SRC: 'Lazy script dependency entry in dependencies.scripts requires a src value',
11
11
  };
12
12
  function resolveLazyScripts(appConfig, componentDir, scripts) {
13
- const getSafeFileName = (filepath) => {
14
- const EXTENSIONS_TO_JS = ["ts", "tsx"];
15
- const safe = filepath.replace(new RegExp(`\\.(${EXTENSIONS_TO_JS.join("|")})$`), ".js");
16
- return safe.startsWith("./") ? safe.slice(2) : safe;
17
- };
18
- const baseDir = componentDir.split(appConfig.srcDir)[1] ?? "";
19
- const resolvedPaths = scripts.map((script) => {
20
- const relativePath = [AssetFactory.RESOLVED_ASSETS_DIR, baseDir, getSafeFileName(script)].filter(Boolean).join("/").replace(/\/+/g, "/");
21
- return `/${relativePath.replace(/^\/+/, "")}`;
22
- });
23
- return resolvedPaths.join(",");
13
+ const getSafeFileName = (filepath) => {
14
+ const EXTENSIONS_TO_JS = ['ts', 'tsx'];
15
+ const safe = filepath.replace(new RegExp(`\\.(${EXTENSIONS_TO_JS.join('|')})$`), '.js');
16
+ return safe.startsWith('./') ? safe.slice(2) : safe;
17
+ };
18
+ const baseDir = componentDir.split(appConfig.srcDir)[1] ?? '';
19
+ const resolvedPaths = scripts.map((script) => {
20
+ const relativePath = [AssetFactory.RESOLVED_ASSETS_DIR, baseDir, getSafeFileName(script)]
21
+ .filter(Boolean)
22
+ .join('/')
23
+ .replace(/\/+/g, '/');
24
+ return `/${relativePath.replace(/^\/+/, '')}`;
25
+ });
26
+ return resolvedPaths.join(',');
24
27
  }
25
- const ECOPAGES_JSX_INTEGRATION_NAME = "ecopages-jsx";
28
+ const ECOPAGES_JSX_INTEGRATION_NAME = 'ecopages-jsx';
26
29
  function isEcopagesJsxIntegration(integrationName) {
27
- return integrationName === ECOPAGES_JSX_INTEGRATION_NAME;
30
+ return integrationName === ECOPAGES_JSX_INTEGRATION_NAME;
28
31
  }
29
32
  function createEcopagesJsxLazyEntryName(integrationName, key) {
30
- return `ecopages-${integrationName}-lazy-${rapidhash(key).toString(16)}`;
33
+ return `ecopages-${integrationName}-lazy-${rapidhash(key).toString(16)}`;
31
34
  }
32
- class DependencyResolverService {
33
- appConfig;
34
- assetProcessingService;
35
- /**
36
- * Creates the dependency resolver used by route and component rendering.
37
- *
38
- * @remarks
39
- * The resolver stays intentionally separate from HTML rendering so component
40
- * dependency collection, lazy trigger grouping, and processed-asset generation
41
- * can evolve without changing renderer implementations.
42
- */
43
- constructor(appConfig, assetProcessingService) {
44
- this.appConfig = appConfig;
45
- this.assetProcessingService = assetProcessingService;
46
- }
47
- /**
48
- * Resolves one dependency path relative to the component that declared it.
49
- */
50
- resolveDependencyPath(componentDir, pathUrl) {
51
- return path.join(componentDir, pathUrl);
52
- }
53
- /**
54
- * Maps lazy script source entries to deterministic fallback public URLs
55
- * used when bundling output URLs are unavailable.
56
- */
57
- resolveLazyScripts(componentDir, scripts) {
58
- return resolveLazyScripts(this.appConfig, componentDir, scripts);
59
- }
60
- /**
61
- * Collects and processes component dependencies (styles, scripts, modules, lazy scripts).
62
- * Lazy dependencies are always resolved into global-injector trigger maps.
63
- */
64
- async processComponentDependencies(components, integrationName) {
65
- if (!this.assetProcessingService?.processDependencies) return [];
66
- const { dependencies, lazyScriptsByConfig } = collectComponentDependencies({
67
- components,
68
- integrationName,
69
- resolveLazyScripts: (componentDir, scripts) => this.resolveLazyScripts(componentDir, scripts),
70
- createEcopagesJsxLazyEntryName,
71
- isEcopagesJsxIntegration,
72
- errors: {
73
- invalidStylesheetEntry: DEPENDENCY_ERRORS.INVALID_STYLESHEET_ENTRY,
74
- invalidScriptEntry: DEPENDENCY_ERRORS.INVALID_SCRIPT_ENTRY,
75
- lazyScriptMissingSrc: DEPENDENCY_ERRORS.LAZY_SCRIPT_MISSING_SRC
76
- }
77
- });
78
- const packagedDependencies = packagePageDependencies(dependencies, integrationName);
79
- const hasLazyDependencies = packagedDependencies.some(
80
- (dep) => dep.kind === "script" && dep.excludeFromHtml === true
81
- );
82
- const processedDependencies = await this.assetProcessingService.processDependencies(
83
- packagedDependencies,
84
- integrationName
85
- );
86
- const lazyKeyToOutputUrl = /* @__PURE__ */ new Map();
87
- for (const dependency of processedDependencies) {
88
- if (dependency.kind === "script" && dependency.srcUrl) {
89
- const lazyKey = dependency.attributes?.["data-eco-lazy-key"];
90
- if (lazyKey) {
91
- lazyKeyToOutputUrl.set(lazyKey, dependency.srcUrl);
92
- }
93
- }
35
+ export class DependencyResolverService {
36
+ appConfig;
37
+ assetProcessingService;
38
+ /**
39
+ * Creates the dependency resolver used by route and component rendering.
40
+ *
41
+ * @remarks
42
+ * The resolver stays intentionally separate from HTML rendering so component
43
+ * dependency collection, lazy trigger grouping, and processed-asset generation
44
+ * can evolve without changing renderer implementations.
45
+ */
46
+ constructor(appConfig, assetProcessingService) {
47
+ this.appConfig = appConfig;
48
+ this.assetProcessingService = assetProcessingService;
49
+ }
50
+ /**
51
+ * Resolves one dependency path relative to the component that declared it.
52
+ */
53
+ resolveDependencyPath(componentDir, pathUrl) {
54
+ return path.join(componentDir, pathUrl);
94
55
  }
95
- for (const [config, lazyGroupsMap] of lazyScriptsByConfig.entries()) {
96
- const rawGroups = [];
97
- for (const group of lazyGroupsMap.values()) {
98
- const resolvedUrls = group.scripts.map(({ lazyKey, fallbackUrl }) => lazyKeyToOutputUrl.get(lazyKey) ?? fallbackUrl).filter((url) => Boolean(url && url.length > 0));
99
- if (resolvedUrls.length === 0) {
100
- continue;
56
+ /**
57
+ * Maps lazy script source entries to deterministic fallback public URLs
58
+ * used when bundling output URLs are unavailable.
59
+ */
60
+ resolveLazyScripts(componentDir, scripts) {
61
+ return resolveLazyScripts(this.appConfig, componentDir, scripts);
62
+ }
63
+ /**
64
+ * Collects and processes component dependencies (styles, scripts, modules, lazy scripts).
65
+ * Lazy dependencies are always resolved into global-injector trigger maps.
66
+ */
67
+ async processComponentDependencies(components, integrationName) {
68
+ if (!this.assetProcessingService?.processDependencies)
69
+ return [];
70
+ const { dependencies, lazyScriptsByConfig } = collectComponentDependencies({
71
+ components,
72
+ integrationName,
73
+ resolveLazyScripts: (componentDir, scripts) => this.resolveLazyScripts(componentDir, scripts),
74
+ createEcopagesJsxLazyEntryName,
75
+ isEcopagesJsxIntegration,
76
+ errors: {
77
+ invalidStylesheetEntry: DEPENDENCY_ERRORS.INVALID_STYLESHEET_ENTRY,
78
+ invalidScriptEntry: DEPENDENCY_ERRORS.INVALID_SCRIPT_ENTRY,
79
+ lazyScriptMissingSrc: DEPENDENCY_ERRORS.LAZY_SCRIPT_MISSING_SRC,
80
+ },
81
+ });
82
+ const packagedDependencies = packagePageDependencies(dependencies, integrationName);
83
+ const hasLazyDependencies = packagedDependencies.some((dep) => dep.kind === 'script' && dep.excludeFromHtml === true);
84
+ const processedDependencies = await this.assetProcessingService.processDependencies(packagedDependencies, integrationName);
85
+ const lazyKeyToOutputUrl = new Map();
86
+ for (const dependency of processedDependencies) {
87
+ if (dependency.kind === 'script' && dependency.srcUrl) {
88
+ const lazyKey = dependency.attributes?.['data-eco-lazy-key'];
89
+ if (lazyKey) {
90
+ lazyKeyToOutputUrl.set(lazyKey, dependency.srcUrl);
91
+ }
92
+ }
93
+ }
94
+ for (const [config, lazyGroupsMap] of lazyScriptsByConfig.entries()) {
95
+ const rawGroups = [];
96
+ for (const group of lazyGroupsMap.values()) {
97
+ const resolvedUrls = group.scripts
98
+ .map(({ lazyKey, fallbackUrl }) => lazyKeyToOutputUrl.get(lazyKey) ?? fallbackUrl)
99
+ .filter((url) => Boolean(url && url.length > 0));
100
+ if (resolvedUrls.length === 0) {
101
+ continue;
102
+ }
103
+ rawGroups.push({ lazy: group.lazy, scripts: Array.from(new Set(resolvedUrls)) });
104
+ }
105
+ if (hasLazyDependencies) {
106
+ config._resolvedLazyTriggers = buildResolvedLazyTriggers(config, rawGroups);
107
+ config._resolvedLazyScripts = undefined;
108
+ }
101
109
  }
102
- rawGroups.push({ lazy: group.lazy, scripts: Array.from(new Set(resolvedUrls)) });
103
- }
104
- if (hasLazyDependencies) {
105
- config._resolvedLazyTriggers = buildResolvedLazyTriggers(config, rawGroups);
106
- config._resolvedLazyScripts = void 0;
107
- }
110
+ return processedDependencies;
108
111
  }
109
- return processedDependencies;
110
- }
111
112
  }
112
- export {
113
- DEPENDENCY_ERRORS,
114
- DependencyResolverService
115
- };
@@ -2,6 +2,7 @@ export type EcopagesVirtualImport = {
2
2
  from: string;
3
3
  imports: string[] | undefined;
4
4
  };
5
+ export declare function isBrowserEcopagesVirtualImport(specifier: string): boolean;
5
6
  /**
6
7
  * Extracts runtime `ecopages:` virtual-module imports from a component source file.
7
8
  *