@ecopages/core 0.2.0-beta.4 → 0.2.0-beta.41

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 (611) hide show
  1. package/README.md +40 -9
  2. package/package.json +371 -33
  3. package/src/adapters/README.md +6 -2
  4. package/src/adapters/abstract/application-adapter.d.ts +115 -6
  5. package/src/adapters/abstract/application-adapter.js +261 -120
  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 +16 -2
  10. package/src/adapters/abstract/server-adapter.js +22 -14
  11. package/src/adapters/abstract/ws-pattern-matcher.d.ts +12 -0
  12. package/src/adapters/abstract/ws-pattern-matcher.js +28 -0
  13. package/src/adapters/bun/bun-user-websocket-lifecycle.d.ts +22 -0
  14. package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
  15. package/src/adapters/bun/client-bridge.d.ts +1 -0
  16. package/src/adapters/bun/client-bridge.js +51 -47
  17. package/src/adapters/bun/create-app.d.ts +9 -6
  18. package/src/adapters/bun/create-app.js +171 -130
  19. package/src/adapters/bun/hmr-manager.d.ts +1 -1
  20. package/src/adapters/bun/hmr-manager.js +62 -57
  21. package/src/adapters/bun/index.d.ts +1 -1
  22. package/src/adapters/bun/index.js +2 -8
  23. package/src/adapters/bun/runtime-host.d.ts +1 -1
  24. package/src/adapters/bun/runtime-host.js +61 -54
  25. package/src/adapters/bun/server-adapter.d.ts +91 -41
  26. package/src/adapters/bun/server-adapter.js +566 -426
  27. package/src/adapters/bun/static-preview-host.d.ts +1 -1
  28. package/src/adapters/bun/static-preview-host.js +43 -41
  29. package/src/adapters/create-app.d.ts +13 -11
  30. package/src/adapters/create-app.js +11 -63
  31. package/src/adapters/index.d.ts +2 -2
  32. package/src/adapters/index.js +2 -8
  33. package/src/adapters/node/create-app.d.ts +8 -3
  34. package/src/adapters/node/create-app.js +126 -84
  35. package/src/adapters/node/http-request-bridge.js +147 -106
  36. package/src/adapters/node/node-client-bridge.d.ts +1 -0
  37. package/src/adapters/node/node-client-bridge.js +62 -61
  38. package/src/adapters/node/node-hmr-manager.d.ts +1 -1
  39. package/src/adapters/node/node-hmr-manager.js +58 -48
  40. package/src/adapters/node/runtime-host.d.ts +1 -1
  41. package/src/adapters/node/runtime-host.js +96 -89
  42. package/src/adapters/node/server-adapter-dependencies.js +18 -17
  43. package/src/adapters/node/server-adapter.d.ts +63 -23
  44. package/src/adapters/node/server-adapter.js +346 -297
  45. package/src/adapters/node/static-content-server.d.ts +1 -0
  46. package/src/adapters/node/static-content-server.js +172 -183
  47. package/src/adapters/node/static-preview-host.d.ts +1 -1
  48. package/src/adapters/node/static-preview-host.js +88 -64
  49. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
  50. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
  51. package/src/adapters/shared/{hmr-html-response.d.ts → hmr/hmr-html-response.d.ts} +2 -2
  52. package/src/adapters/shared/hmr/hmr-html-response.js +50 -0
  53. package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +92 -0
  54. package/src/adapters/shared/hmr/shared-hmr-manager.js +446 -0
  55. package/src/adapters/shared/http/api-request-pipeline.d.ts +23 -0
  56. package/src/adapters/shared/http/api-request-pipeline.js +132 -0
  57. package/src/adapters/shared/{api-response.d.ts → http/api-response.d.ts} +1 -1
  58. package/src/adapters/shared/http/api-response.js +79 -0
  59. package/src/adapters/shared/http/create-body-response.d.ts +12 -0
  60. package/src/adapters/shared/http/create-body-response.js +26 -0
  61. package/src/adapters/shared/http/define-api-handler.d.ts +90 -0
  62. package/src/adapters/shared/http/define-api-handler.js +49 -0
  63. package/src/adapters/shared/{explicit-static-render-preparation.d.ts → http/explicit-static-render-preparation.d.ts} +3 -3
  64. package/src/adapters/shared/http/explicit-static-render-preparation.js +29 -0
  65. package/src/adapters/shared/{explicit-static-route-matcher.d.ts → http/explicit-static-route-matcher.d.ts} +3 -9
  66. package/src/adapters/shared/http/explicit-static-route-matcher.js +59 -0
  67. package/src/adapters/shared/{file-route-middleware-pipeline.d.ts → http/file-route-middleware-pipeline.d.ts} +2 -2
  68. package/src/adapters/shared/http/file-route-middleware-pipeline.js +84 -0
  69. package/src/adapters/shared/{fs-server-response-factory.d.ts → http/fs-server-response-factory.d.ts} +7 -2
  70. package/src/adapters/shared/http/fs-server-response-factory.js +106 -0
  71. package/src/adapters/shared/{fs-server-response-matcher.d.ts → http/fs-server-response-matcher.d.ts} +25 -5
  72. package/src/adapters/shared/http/fs-server-response-matcher.js +258 -0
  73. package/src/adapters/shared/http/run-middleware-chain.d.ts +5 -0
  74. package/src/adapters/shared/http/run-middleware-chain.js +17 -0
  75. package/src/adapters/shared/{application-adapter.d.ts → runtime/application-adapter.d.ts} +2 -2
  76. package/src/adapters/shared/runtime/application-adapter.js +75 -0
  77. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.d.ts +11 -0
  78. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.js +29 -0
  79. package/src/adapters/shared/runtime/copy-runtime-public-dir.d.ts +6 -0
  80. package/src/adapters/shared/runtime/copy-runtime-public-dir.js +27 -0
  81. package/src/adapters/shared/runtime/dev-static-route-prewarm.d.ts +16 -0
  82. package/src/adapters/shared/runtime/dev-static-route-prewarm.js +66 -0
  83. package/src/adapters/shared/runtime/port-manager.d.ts +116 -0
  84. package/src/adapters/shared/runtime/port-manager.js +226 -0
  85. package/src/adapters/shared/{render-context.d.ts → runtime/render-context.d.ts} +2 -2
  86. package/src/adapters/shared/runtime/render-context.js +99 -0
  87. package/src/adapters/shared/{runtime-app-bootstrap.d.ts → runtime/runtime-app-bootstrap.d.ts} +4 -3
  88. package/src/adapters/shared/runtime/runtime-app-bootstrap.js +38 -0
  89. package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +45 -0
  90. package/src/adapters/shared/runtime/runtime-server-lifecycle.js +71 -0
  91. package/src/adapters/shared/{server-adapter.d.ts → runtime/server-adapter.d.ts} +31 -50
  92. package/src/adapters/shared/runtime/server-adapter.js +301 -0
  93. package/src/adapters/shared/{server-route-handler.d.ts → runtime/server-route-handler.d.ts} +6 -33
  94. package/src/adapters/shared/runtime/server-route-handler.js +77 -0
  95. package/src/adapters/shared/{server-static-builder.d.ts → runtime/server-static-builder.d.ts} +27 -35
  96. package/src/adapters/shared/runtime/server-static-builder.js +172 -0
  97. package/src/adapters/shared/{static-preview-host.d.ts → runtime/static-preview-host.d.ts} +6 -1
  98. package/src/adapters/shared/ws/node-http-websocket-upgrades.d.ts +21 -0
  99. package/src/adapters/shared/ws/node-http-websocket-upgrades.js +109 -0
  100. package/src/adapters/shared/ws/websocket-lifecycle.d.ts +24 -0
  101. package/src/adapters/shared/ws/websocket-lifecycle.js +62 -0
  102. package/src/build/README.md +191 -31
  103. package/src/build/app-build-manifest-runtime.d.ts +39 -0
  104. package/src/build/app-build-manifest-runtime.js +145 -0
  105. package/src/build/browser/browser-runtime-manifest.js +58 -0
  106. package/src/build/browser/browser-runtime-plugin-helpers.js +34 -0
  107. package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +1 -1
  108. package/src/build/browser/browser-runtime-plugin.js +216 -0
  109. package/src/build/browser/jsx-ownership-plugins.d.ts +24 -0
  110. package/src/build/browser/jsx-ownership-plugins.js +55 -0
  111. package/src/build/browser/lit-static-render-worker-context.d.ts +2 -0
  112. package/src/build/browser/lit-static-render-worker-context.js +4 -0
  113. package/src/build/build-adapter.d.ts +29 -334
  114. package/src/build/build-adapter.js +273 -237
  115. package/src/build/cache/build-input-fingerprint.d.ts +28 -0
  116. package/src/build/cache/build-input-fingerprint.js +33 -0
  117. package/src/build/cache/cache-constants.d.ts +4 -0
  118. package/src/build/cache/cache-constants.js +4 -0
  119. package/src/build/cache/cache-keys.d.ts +22 -0
  120. package/src/build/cache/cache-keys.js +71 -0
  121. package/src/build/cache/pages-unified-graph-build.d.ts +31 -0
  122. package/src/build/cache/pages-unified-graph-build.js +199 -0
  123. package/src/build/cache/production-build-cache.d.ts +21 -0
  124. package/src/build/cache/production-build-cache.js +56 -0
  125. package/src/build/cache/server-entry-build-cache.d.ts +43 -0
  126. package/src/build/cache/server-entry-build-cache.js +153 -0
  127. package/src/build/contracts/build-contracts.d.ts +96 -0
  128. package/src/build/contracts/build-contracts.js +1 -0
  129. package/src/build/contracts/build-manifest.d.ts +90 -0
  130. package/src/build/contracts/build-manifest.js +64 -0
  131. package/src/build/contracts/build-types.js +1 -0
  132. package/src/build/contracts/content-virtual-modules.d.ts +12 -0
  133. package/src/build/contracts/content-virtual-modules.js +29 -0
  134. package/src/build/{rolldown-adapter-helpers.d.ts → rolldown/rolldown-adapter-helpers.d.ts} +32 -9
  135. package/src/build/rolldown/rolldown-adapter-helpers.js +458 -0
  136. package/src/build/{rolldown-build-adapter.d.ts → rolldown/rolldown-build-adapter.d.ts} +3 -7
  137. package/src/build/rolldown/rolldown-build-adapter.js +57 -0
  138. package/src/build/rolldown/rolldown-build-invocation-metrics.d.ts +12 -0
  139. package/src/build/rolldown/rolldown-build-invocation-metrics.js +39 -0
  140. package/src/build/{rolldown-plugin-bridge.d.ts → rolldown/rolldown-plugin-bridge.d.ts} +16 -2
  141. package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
  142. package/src/build/rolldown/rolldown-source-transform-pass.d.ts +15 -0
  143. package/src/build/rolldown/rolldown-source-transform-pass.js +70 -0
  144. package/src/build/rolldown/runtime-build-output-normalizer.d.ts +10 -0
  145. package/src/build/rolldown/runtime-build-output-normalizer.js +253 -0
  146. package/src/build/rolldown/server-side-css-shim-plugin.js +58 -0
  147. package/src/build/runtime/build-profile-options.d.ts +7 -0
  148. package/src/build/runtime/build-profile-options.js +37 -0
  149. package/src/build/runtime/build-request-identity.d.ts +17 -0
  150. package/src/build/runtime/build-request-identity.js +79 -0
  151. package/src/build/runtime/build-request-policy.d.ts +58 -0
  152. package/src/build/runtime/build-request-policy.js +84 -0
  153. package/src/build/runtime/build-runtime.d.ts +28 -0
  154. package/src/build/runtime/build-runtime.js +75 -0
  155. package/src/build/runtime/deduping-build-executor.d.ts +21 -0
  156. package/src/build/runtime/deduping-build-executor.js +40 -0
  157. package/src/build/runtime/parallel-build-executor.d.ts +21 -0
  158. package/src/build/runtime/parallel-build-executor.js +60 -0
  159. package/src/build/{serialized-build-executor.d.ts → runtime/serialized-build-executor.d.ts} +1 -1
  160. package/src/build/runtime/serialized-build-executor.js +79 -0
  161. package/src/cache/index.d.ts +2 -1
  162. package/src/cache/index.js +7 -6
  163. package/src/cache/module-parse-cache.d.ts +5 -0
  164. package/src/cache/module-parse-cache.js +122 -67
  165. package/src/cache/module-transform-profiler.d.ts +8 -0
  166. package/src/cache/module-transform-profiler.js +8 -0
  167. package/src/client/navigation-scripts/classification.d.ts +16 -0
  168. package/src/client/navigation-scripts/classification.js +49 -0
  169. package/src/client/navigation-scripts/index.d.ts +3 -0
  170. package/src/client/navigation-scripts/index.js +3 -0
  171. package/src/client/navigation-scripts/navigation-scripts.test.browser.d.ts +1 -0
  172. package/src/client/navigation-scripts/navigation-scripts.test.browser.js +61 -0
  173. package/src/client/navigation-scripts/registry.d.ts +11 -0
  174. package/src/client/navigation-scripts/registry.js +16 -0
  175. package/src/client/navigation-scripts/rerun-queue.d.ts +37 -0
  176. package/src/client/navigation-scripts/rerun-queue.js +90 -0
  177. package/src/client/scroll.d.ts +17 -0
  178. package/src/client/scroll.js +33 -0
  179. package/src/client/scroll.test.browser.d.ts +1 -0
  180. package/src/client/scroll.test.browser.js +31 -0
  181. package/src/client/view-transitions.d.ts +32 -0
  182. package/src/client/view-transitions.js +120 -0
  183. package/src/client/view-transitions.test.browser.d.ts +1 -0
  184. package/src/client/view-transitions.test.browser.js +56 -0
  185. package/src/config/config-builder.d.ts +40 -10
  186. package/src/config/config-builder.js +647 -600
  187. package/src/config/constants.d.ts +1 -0
  188. package/src/config/constants.js +44 -23
  189. package/src/declarations.d.ts +1 -0
  190. package/src/dev/README.md +24 -0
  191. package/src/dev/client-bridge-registry.d.ts +5 -0
  192. package/src/dev/client-bridge-registry.js +10 -0
  193. package/src/dev/dev-client-ownership.d.ts +7 -0
  194. package/src/dev/dev-client-ownership.js +8 -0
  195. package/src/dev/hmr-manager-registry.d.ts +8 -0
  196. package/src/dev/hmr-manager-registry.js +10 -0
  197. package/src/dev/host-runtime.d.ts +3 -0
  198. package/src/dev/host-runtime.js +25 -23
  199. package/src/dev/runtime-server-started-message.d.ts +2 -0
  200. package/src/dev/runtime-server-started-message.js +3 -0
  201. package/src/dev/sc-server.js +106 -103
  202. package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
  203. package/src/dev/transform-server/dev-transform-bundler.js +79 -0
  204. package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
  205. package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
  206. package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
  207. package/src/dev/transform-server/dev-transform-import-rewriter.js +126 -0
  208. package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
  209. package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
  210. package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
  211. package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
  212. package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
  213. package/src/dev/transform-server/dev-transform-server.js +191 -0
  214. package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
  215. package/src/dev/transform-server/dev-transform-url.js +58 -0
  216. package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +28 -0
  217. package/src/dev/transform-server/dev-transform-vendor-registry.js +158 -0
  218. package/src/dev/transform-server/index.d.ts +6 -0
  219. package/src/dev/transform-server/index.js +4 -0
  220. package/src/dev/transform-server/types.d.ts +15 -0
  221. package/src/dev/transform-server/types.js +1 -0
  222. package/src/dev-toolbar/README.md +52 -0
  223. package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
  224. package/src/dev-toolbar/define-dev-tool.js +9 -0
  225. package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
  226. package/src/dev-toolbar/dev-toolbar-config.js +19 -0
  227. package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
  228. package/src/dev-toolbar/dev-toolbar-host.js +117 -0
  229. package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
  230. package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
  231. package/src/dev-toolbar/dev-toolbar-manifest-contract.d.ts +22 -0
  232. package/src/dev-toolbar/dev-toolbar-manifest-contract.js +2 -0
  233. package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
  234. package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
  235. package/src/dev-toolbar/dev-toolbar-package.d.ts +34 -0
  236. package/src/dev-toolbar/dev-toolbar-package.js +78 -0
  237. package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
  238. package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
  239. package/src/diagnostics/request-build-dedupe.d.ts +18 -0
  240. package/src/diagnostics/request-build-dedupe.js +39 -0
  241. package/src/diagnostics/request-pipeline-metrics.d.ts +38 -0
  242. package/src/diagnostics/request-pipeline-metrics.js +121 -0
  243. package/src/diagnostics/startup-trace.d.ts +81 -0
  244. package/src/diagnostics/startup-trace.js +281 -0
  245. package/src/eco/README.md +17 -0
  246. package/src/eco/component-identity.d.ts +13 -0
  247. package/src/eco/component-identity.js +18 -0
  248. package/src/eco/eco-declared-component.d.ts +15 -0
  249. package/src/eco/eco-declared-component.js +23 -0
  250. package/src/eco/eco.browser.js +63 -70
  251. package/src/eco/eco.js +163 -97
  252. package/src/eco/eco.types.d.ts +47 -8
  253. package/src/eco/eco.types.js +5 -0
  254. package/src/eco/eco.utils.d.ts +1 -1
  255. package/src/eco/eco.utils.js +1 -10
  256. package/src/eco/global-injector-map.js +55 -41
  257. package/src/eco/lazy-injector-map.js +90 -60
  258. package/src/eco/module-dependencies.js +52 -44
  259. package/src/eco/page-layout-normalization.d.ts +21 -0
  260. package/src/eco/page-layout-normalization.js +69 -0
  261. package/src/env.d.ts +2 -0
  262. package/src/errors/http-error.d.ts +8 -0
  263. package/src/errors/http-error.js +66 -49
  264. package/src/errors/index.d.ts +1 -0
  265. package/src/errors/index.js +3 -6
  266. package/src/errors/locals-access-error.js +5 -8
  267. package/src/errors/undeclared-component-dependency-error.d.ts +11 -0
  268. package/src/errors/undeclared-component-dependency-error.js +17 -0
  269. package/src/global/app-logger.js +3 -6
  270. package/src/hmr/README.md +21 -0
  271. package/src/hmr/client/hmr-runtime.js +119 -110
  272. package/src/hmr/client/module-update.d.ts +13 -0
  273. package/src/hmr/client/module-update.js +39 -0
  274. package/src/hmr/hmr-asset-paths.d.ts +14 -0
  275. package/src/hmr/hmr-asset-paths.js +22 -0
  276. package/src/hmr/hmr-entrypoint-output.d.ts +21 -0
  277. package/src/hmr/hmr-entrypoint-output.js +34 -0
  278. package/src/hmr/hmr-file-change-prep.d.ts +10 -0
  279. package/src/hmr/hmr-file-change-prep.js +14 -0
  280. package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
  281. package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
  282. package/src/hmr/hmr-runtime-paths.d.ts +10 -0
  283. package/src/hmr/hmr-runtime-paths.js +13 -0
  284. package/src/hmr/hmr-strategy.d.ts +9 -0
  285. package/src/hmr/hmr-strategy.js +113 -42
  286. package/src/hmr/strategies/default-hmr-strategy.js +55 -33
  287. package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -97
  288. package/src/hmr/strategies/js-hmr-strategy.js +107 -167
  289. package/src/hmr/strategies/server-rendered-template-hmr-strategy.d.ts +17 -0
  290. package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +35 -0
  291. package/src/index.browser.d.ts +1 -0
  292. package/src/index.browser.js +2 -4
  293. package/src/index.d.ts +4 -1
  294. package/src/index.js +7 -21
  295. package/src/integrations/ghtml/ghtml-renderer.d.ts +2 -6
  296. package/src/integrations/ghtml/ghtml-renderer.js +12 -56
  297. package/src/integrations/ghtml/ghtml.constants.js +1 -4
  298. package/src/integrations/ghtml/ghtml.plugin.d.ts +3 -16
  299. package/src/integrations/ghtml/ghtml.plugin.js +10 -20
  300. package/src/islands/README.md +25 -0
  301. package/src/islands/island-host.d.ts +37 -0
  302. package/src/islands/island-host.js +55 -0
  303. package/src/plugins/README.md +2 -1
  304. package/src/plugins/alias-resolver-cache.d.ts +6 -9
  305. package/src/plugins/alias-resolver-cache.js +114 -97
  306. package/src/plugins/alias-resolver-plugin.d.ts +3 -3
  307. package/src/plugins/alias-resolver-plugin.js +35 -62
  308. package/src/plugins/define-integration.d.ts +26 -0
  309. package/src/plugins/define-integration.js +20 -0
  310. package/src/plugins/eco-component-meta-plugin.d.ts +6 -102
  311. package/src/plugins/eco-component-meta-plugin.js +120 -162
  312. package/src/plugins/foreign-jsx-override-plugin.d.ts +1 -1
  313. package/src/plugins/foreign-jsx-override-plugin.js +49 -37
  314. package/src/plugins/integration-plugin.d.ts +43 -14
  315. package/src/plugins/integration-plugin.js +212 -190
  316. package/src/plugins/jsx-import-source.utils.d.ts +8 -0
  317. package/src/plugins/jsx-import-source.utils.js +21 -0
  318. package/src/plugins/processor.d.ts +71 -12
  319. package/src/plugins/processor.js +168 -130
  320. package/src/plugins/runtime-capability.js +1 -0
  321. package/src/plugins/source-transform.d.ts +32 -1
  322. package/src/plugins/source-transform.js +112 -60
  323. package/src/plugins/tsconfig-import-resolver.d.ts +35 -0
  324. package/src/plugins/tsconfig-import-resolver.js +235 -0
  325. package/src/route-renderer/GRAPH.md +26 -32
  326. package/src/route-renderer/README.md +54 -33
  327. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.d.ts +107 -0
  328. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +155 -0
  329. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.d.ts +20 -0
  330. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +37 -0
  331. package/src/route-renderer/orchestration/{component-render-context.d.ts → foreign-child/component-render-context.d.ts} +8 -15
  332. package/src/route-renderer/orchestration/foreign-child/component-render-context.js +196 -0
  333. package/src/route-renderer/orchestration/{render-output.utils.d.ts → foreign-child/foreign-child-output.utils.d.ts} +17 -7
  334. package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +191 -0
  335. package/src/route-renderer/orchestration/{foreign-subtree-execution.service.d.ts → foreign-child/foreign-subtree-execution.service.d.ts} +64 -34
  336. package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +354 -0
  337. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.d.ts +19 -0
  338. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +36 -0
  339. package/src/route-renderer/orchestration/integration-renderer.d.ts +41 -151
  340. package/src/route-renderer/orchestration/integration-renderer.js +798 -988
  341. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.d.ts +75 -0
  342. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +173 -0
  343. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.d.ts +10 -0
  344. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +132 -0
  345. package/src/route-renderer/orchestration/ownership-graph/component-graph.d.ts +34 -0
  346. package/src/route-renderer/orchestration/ownership-graph/component-graph.js +89 -0
  347. package/src/route-renderer/orchestration/{ownership-validation.service.d.ts → ownership-graph/ownership-validation.service.d.ts} +6 -2
  348. package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +77 -0
  349. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.d.ts +7 -0
  350. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +30 -0
  351. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.d.ts +15 -0
  352. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.js +9 -0
  353. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.d.ts +5 -0
  354. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.js +30 -0
  355. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.d.ts +12 -0
  356. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +32 -0
  357. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +126 -0
  358. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +542 -0
  359. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.d.ts +47 -0
  360. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +232 -0
  361. package/src/route-renderer/orchestration/{processed-asset-dedupe.d.ts → page-browser-graph/processed-asset-dedupe.d.ts} +1 -1
  362. package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +23 -0
  363. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.d.ts +29 -0
  364. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.js +54 -0
  365. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +38 -0
  366. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +26 -0
  367. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.d.ts +6 -0
  368. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +25 -0
  369. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.d.ts +15 -0
  370. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +43 -0
  371. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +25 -0
  372. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +44 -0
  373. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.d.ts +26 -0
  374. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +49 -0
  375. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.d.ts +4 -0
  376. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +30 -0
  377. package/src/route-renderer/orchestration/{route-render-orchestrator.d.ts → route-pipeline/route-render-orchestrator.d.ts} +24 -54
  378. package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +215 -0
  379. package/src/route-renderer/orchestration/string-markup-renderer.d.ts +14 -0
  380. package/src/route-renderer/orchestration/string-markup-renderer.js +52 -0
  381. package/src/route-renderer/page-loading/component-dependency-collection.js +121 -121
  382. package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
  383. package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
  384. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +1 -0
  385. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +64 -51
  386. package/src/route-renderer/page-loading/file-scoped-dependency-components.d.ts +42 -0
  387. package/src/route-renderer/page-loading/file-scoped-dependency-components.js +94 -0
  388. package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
  389. package/src/route-renderer/page-loading/lazy-trigger-planning.js +47 -36
  390. package/src/route-renderer/page-loading/module-declaration-aggregation.js +39 -28
  391. package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
  392. package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
  393. package/src/route-renderer/page-loading/page-module-loader.d.ts +2 -1
  394. package/src/route-renderer/page-loading/page-module-loader.js +136 -124
  395. package/src/route-renderer/page-loading/resolved-page-dependencies.d.ts +12 -0
  396. package/src/route-renderer/page-loading/resolved-page-dependencies.js +38 -0
  397. package/src/route-renderer/route-renderer.js +74 -76
  398. package/src/router/README.md +31 -0
  399. package/src/router/client/link-intent.d.ts +11 -21
  400. package/src/router/client/link-intent.js +56 -30
  401. package/src/router/client/link-intent.test.browser.js +50 -39
  402. package/src/router/client/link-navigation-policy.d.ts +45 -0
  403. package/src/router/client/link-navigation-policy.js +122 -0
  404. package/src/router/client/link-navigation-policy.test.browser.d.ts +1 -0
  405. package/src/router/client/link-navigation-policy.test.browser.js +82 -0
  406. package/src/router/client/navigation-coordinator.d.ts +1 -1
  407. package/src/router/client/navigation-coordinator.js +235 -201
  408. package/src/router/client/navigation-lifecycle.d.ts +55 -0
  409. package/src/router/client/navigation-lifecycle.js +50 -0
  410. package/src/router/client/navigation-lifecycle.test.browser.d.ts +1 -0
  411. package/src/router/client/navigation-lifecycle.test.browser.js +118 -0
  412. package/src/router/server/route-registry.js +237 -242
  413. package/src/services/README.md +5 -0
  414. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +13 -0
  415. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -50
  416. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +7 -1
  417. package/src/services/assets/asset-processing-service/asset-processing.service.js +308 -268
  418. package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
  419. package/src/services/assets/asset-processing-service/assets.types.d.ts +1 -1
  420. package/src/services/assets/asset-processing-service/assets.types.js +1 -0
  421. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +2 -1
  422. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -45
  423. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.d.ts +52 -0
  424. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +115 -0
  425. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +4 -2
  426. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -38
  427. package/src/services/assets/asset-processing-service/finalize-processed-asset.d.ts +3 -0
  428. package/src/services/assets/asset-processing-service/finalize-processed-asset.js +5 -0
  429. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +2 -1
  430. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +85 -60
  431. package/src/services/assets/asset-processing-service/index.d.ts +2 -0
  432. package/src/services/assets/asset-processing-service/index.js +8 -6
  433. package/src/services/assets/asset-processing-service/inline-content-script-body.d.ts +11 -0
  434. package/src/services/assets/asset-processing-service/inline-content-script-body.js +23 -0
  435. package/src/services/assets/asset-processing-service/materialize-content-script-asset.d.ts +9 -0
  436. package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +22 -0
  437. package/src/services/assets/asset-processing-service/page-package.js +70 -72
  438. package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
  439. package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
  440. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
  441. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -2
  442. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -130
  443. package/src/services/assets/asset-processing-service/processors/index.js +5 -5
  444. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +8 -0
  445. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +111 -111
  446. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -1
  447. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -94
  448. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -121
  449. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -3
  450. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +26 -57
  451. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -3
  452. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +33 -67
  453. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.d.ts +2 -0
  454. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +44 -0
  455. package/src/services/assets/asset-processing-service/resolve-integration-plugin.d.ts +4 -0
  456. package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +15 -0
  457. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -1
  458. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -44
  459. package/src/services/assets/browser-bundle.service.d.ts +28 -30
  460. package/src/services/assets/browser-bundle.service.js +54 -40
  461. package/src/services/cache/cache.types.d.ts +4 -2
  462. package/src/services/cache/cache.types.js +5 -0
  463. package/src/services/cache/html-page-cache-dependency-index.d.ts +34 -0
  464. package/src/services/cache/html-page-cache-dependency-index.js +88 -0
  465. package/src/services/cache/index.d.ts +2 -0
  466. package/src/services/cache/index.js +8 -7
  467. package/src/services/cache/memory-cache-store.js +101 -89
  468. package/src/services/cache/page-cache-service.d.ts +31 -1
  469. package/src/services/cache/page-cache-service.js +237 -150
  470. package/src/services/cache/page-request-cache-coordinator.service.js +106 -102
  471. package/src/services/html/html-rewriter-provider.service.js +61 -61
  472. package/src/services/html/html-transformer.service.d.ts +1 -1
  473. package/src/services/html/html-transformer.service.js +249 -266
  474. package/src/services/invalidation/development-invalidation.service.d.ts +25 -2
  475. package/src/services/invalidation/development-invalidation.service.js +239 -175
  476. package/src/services/module-loading/README.md +52 -0
  477. package/src/services/module-loading/app-module-loader.service.js +1 -0
  478. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +8 -0
  479. package/src/services/module-loading/app-server-module-transpiler.service.js +103 -118
  480. package/src/services/module-loading/collection-server-module-build.service.d.ts +19 -0
  481. package/src/services/module-loading/collection-server-module-build.service.js +83 -0
  482. package/src/services/module-loading/host-module-loader-registry.js +6 -11
  483. package/src/services/module-loading/module-loading-types.js +1 -0
  484. package/src/services/module-loading/page-module-import.service.d.ts +11 -13
  485. package/src/services/module-loading/page-module-import.service.js +222 -184
  486. package/src/services/module-loading/route-module-build-cache-registry.d.ts +24 -0
  487. package/src/services/module-loading/route-module-build-cache-registry.js +51 -0
  488. package/src/services/module-loading/route-module-build-cache.d.ts +4 -0
  489. package/src/services/module-loading/route-module-build-cache.js +3 -0
  490. package/src/services/module-loading/route-module-build-cache.store.d.ts +57 -0
  491. package/src/services/module-loading/route-module-build-cache.store.js +202 -0
  492. package/src/services/module-loading/route-module-build-manifest.d.ts +57 -0
  493. package/src/services/module-loading/route-module-build-manifest.js +60 -0
  494. package/src/services/module-loading/route-module-dependency-hasher.d.ts +81 -0
  495. package/src/services/module-loading/route-module-dependency-hasher.js +148 -0
  496. package/src/services/module-loading/server-module-transpiler.service.d.ts +1 -3
  497. package/src/services/module-loading/server-module-transpiler.service.js +65 -62
  498. package/src/services/module-loading/source-module-support.js +15 -7
  499. package/src/services/runtime-state/dev-graph.service.js +165 -157
  500. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
  501. package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
  502. package/src/services/validation/schema-validation-service.d.ts +1 -4
  503. package/src/services/validation/schema-validation-service.js +156 -95
  504. package/src/services/validation/standard-schema.types.d.ts +9 -62
  505. package/src/services/validation/standard-schema.types.js +1 -0
  506. package/src/services/validation/validate-standard-schema.d.ts +7 -0
  507. package/src/services/validation/validate-standard-schema.js +14 -0
  508. package/src/static-site-generator/README.md +41 -0
  509. package/src/static-site-generator/production-page-browser-graph-prebuild.d.ts +32 -0
  510. package/src/static-site-generator/production-page-browser-graph-prebuild.js +57 -0
  511. package/src/static-site-generator/sitemap-routes.d.ts +14 -0
  512. package/src/static-site-generator/sitemap-routes.js +36 -0
  513. package/src/static-site-generator/sitemap.d.ts +15 -0
  514. package/src/static-site-generator/sitemap.js +42 -0
  515. package/src/static-site-generator/static-build-invalidation.d.ts +10 -0
  516. package/src/static-site-generator/static-build-invalidation.js +37 -0
  517. package/src/static-site-generator/static-export-context.d.ts +30 -0
  518. package/src/static-site-generator/static-export-context.js +1 -0
  519. package/src/static-site-generator/static-site-generator.d.ts +43 -25
  520. package/src/static-site-generator/static-site-generator.js +536 -294
  521. package/src/types/internal-types.d.ts +59 -13
  522. package/src/types/internal-types.js +1 -0
  523. package/src/types/public-types.d.ts +310 -95
  524. package/src/types/public-types.js +1 -0
  525. package/src/utils/deep-merge.js +39 -26
  526. package/src/utils/ecopages-route-info.d.ts +26 -0
  527. package/src/utils/ecopages-route-info.js +30 -0
  528. package/src/utils/hash.js +3 -6
  529. package/src/utils/html-escaping.d.ts +7 -0
  530. package/src/utils/html-escaping.js +22 -5
  531. package/src/utils/html.js +1 -4
  532. package/src/utils/invariant.js +11 -10
  533. package/src/utils/locals-utils.js +32 -22
  534. package/src/utils/parse-cli-args.d.ts +2 -0
  535. package/src/utils/parse-cli-args.js +73 -59
  536. package/src/utils/path-pattern.d.ts +23 -0
  537. package/src/utils/path-pattern.js +42 -0
  538. package/src/utils/path-utils.module.js +8 -11
  539. package/src/utils/resolve-entry-file.js +70 -38
  540. package/src/utils/resolve-work-dir.js +23 -27
  541. package/src/utils/runtime.js +24 -33
  542. package/src/utils/server-utils.module.d.ts +3 -2
  543. package/src/utils/server-utils.module.js +60 -53
  544. package/src/utils/static-file-extensions.d.ts +12 -0
  545. package/src/utils/static-file-extensions.js +54 -0
  546. package/src/watchers/project-watcher-ignore.d.ts +11 -0
  547. package/src/watchers/project-watcher-ignore.js +17 -0
  548. package/src/watchers/project-watcher.d.ts +29 -6
  549. package/src/watchers/project-watcher.js +402 -257
  550. package/src/watchers/project-watcher.test-helpers.js +45 -50
  551. package/src/adapters/shared/api-response.js +0 -96
  552. package/src/adapters/shared/application-adapter.js +0 -90
  553. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  554. package/src/adapters/shared/define-api-handler.js +0 -15
  555. package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
  556. package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
  557. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
  558. package/src/adapters/shared/fs-server-response-factory.js +0 -81
  559. package/src/adapters/shared/fs-server-response-matcher.js +0 -186
  560. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  561. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  562. package/src/adapters/shared/hmr-html-response.js +0 -33
  563. package/src/adapters/shared/render-context.js +0 -93
  564. package/src/adapters/shared/runtime-app-bootstrap.js +0 -46
  565. package/src/adapters/shared/runtime-host.js +0 -0
  566. package/src/adapters/shared/server-adapter.js +0 -436
  567. package/src/adapters/shared/server-route-handler.js +0 -111
  568. package/src/adapters/shared/server-static-builder.js +0 -162
  569. package/src/adapters/shared/shared-hmr-manager.d.ts +0 -59
  570. package/src/adapters/shared/shared-hmr-manager.js +0 -241
  571. package/src/adapters/shared/static-preview-host.js +0 -0
  572. package/src/build/browser-runtime-manifest.js +0 -61
  573. package/src/build/browser-runtime-plugin-helpers.js +0 -14
  574. package/src/build/browser-runtime-plugin.js +0 -173
  575. package/src/build/build-manifest.d.ts +0 -33
  576. package/src/build/build-manifest.js +0 -49
  577. package/src/build/build-types.js +0 -0
  578. package/src/build/rolldown-adapter-helpers.js +0 -265
  579. package/src/build/rolldown-build-adapter.js +0 -65
  580. package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
  581. package/src/build/rolldown-dev-build-adapter.js +0 -166
  582. package/src/build/rolldown-plugin-bridge.js +0 -199
  583. package/src/build/runtime-build-executor.d.ts +0 -21
  584. package/src/build/runtime-build-executor.js +0 -19
  585. package/src/build/runtime-build-output-normalizer.d.ts +0 -3
  586. package/src/build/runtime-build-output-normalizer.js +0 -111
  587. package/src/build/serialized-build-executor.js +0 -63
  588. package/src/build/server-side-css-shim-plugin.js +0 -35
  589. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  590. package/src/hmr/hmr.test.e2e.js +0 -43
  591. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  592. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
  593. package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
  594. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -233
  595. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
  596. package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
  597. package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
  598. package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
  599. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
  600. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
  601. package/src/route-renderer/orchestration/render-output.utils.js +0 -171
  602. package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -577
  603. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  604. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  605. /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
  606. /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
  607. /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
  608. /package/src/build/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +0 -0
  609. /package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +0 -0
  610. /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
  611. /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
  *