@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,69 +1,35 @@
1
- import path from "node:path";
2
- import { fileSystem } from "@ecopages/file-system";
3
- import { BaseProcessor } from "../base/base-processor.js";
4
- class FileStylesheetProcessor extends BaseProcessor {
5
- static PROCESSABLE_STYLESHEET_EXTENSIONS = /* @__PURE__ */ new Set([".css", ".scss", ".sass", ".less"]);
6
- getStyleContent = (srcUrl) => {
7
- return fileSystem.readFileAsBuffer(srcUrl);
8
- };
9
- isProcessableStylesheet(filepath) {
10
- return FileStylesheetProcessor.PROCESSABLE_STYLESHEET_EXTENSIONS.has(path.extname(filepath));
11
- }
12
- async applyStylesheetProcessors(content, filepath) {
13
- if (!this.isProcessableStylesheet(filepath)) {
14
- return content;
1
+ import path from 'node:path';
2
+ import { fileSystem } from '@ecopages/file-system';
3
+ import { BaseProcessor } from '../base/base-processor.js';
4
+ import { applyStylesheetProcessors } from './stylesheet-processor-pipeline.js';
5
+ export class FileStylesheetProcessor extends BaseProcessor {
6
+ getStyleContent = (srcUrl) => {
7
+ return fileSystem.readFileAsBuffer(srcUrl);
8
+ };
9
+ async process(dep) {
10
+ const buffer = this.getStyleContent(dep.filepath);
11
+ const rawContent = buffer.toString();
12
+ const processedContent = await applyStylesheetProcessors(this.appConfig, rawContent, dep.filepath);
13
+ const hash = this.generateHash(processedContent);
14
+ const cachekey = this.buildCacheKey(dep.filepath, hash, dep);
15
+ return this.getOrProcess(cachekey, () => {
16
+ const filepath = path.join(this.getAssetsDir(), path.relative(this.appConfig.absolutePaths.srcDir, dep.filepath));
17
+ const outputBuffer = Buffer.from(processedContent);
18
+ if (!dep.inline) {
19
+ fileSystem.ensureDir(path.dirname(filepath));
20
+ fileSystem.write(filepath, outputBuffer);
21
+ }
22
+ return {
23
+ filepath: filepath,
24
+ sourceFilepath: dep.filepath,
25
+ content: dep.inline ? processedContent : undefined,
26
+ kind: 'stylesheet',
27
+ position: dep.position,
28
+ attributes: dep.attributes,
29
+ inline: dep.inline,
30
+ packageRole: dep.packageRole,
31
+ bundledSourceFilepaths: dep.bundledSourceFilepaths,
32
+ };
33
+ });
15
34
  }
16
- let transformedContent = content;
17
- for (const processor of this.appConfig.processors.values()) {
18
- const hasCapabilities = processor.getAssetCapabilities().length > 0;
19
- const canProcessStylesheet = processor.canProcessAsset("stylesheet", filepath);
20
- if (!canProcessStylesheet && (hasCapabilities || !processor.getName().includes("postcss"))) {
21
- continue;
22
- }
23
- if (!processor.matchesFileFilter(filepath)) {
24
- continue;
25
- }
26
- const result = await processor.process(transformedContent, filepath);
27
- if (typeof result === "string") {
28
- transformedContent = result;
29
- continue;
30
- }
31
- if (result instanceof Buffer) {
32
- transformedContent = result.toString();
33
- }
34
- }
35
- return transformedContent;
36
- }
37
- async process(dep) {
38
- const buffer = this.getStyleContent(dep.filepath);
39
- const rawContent = buffer.toString();
40
- const processedContent = await this.applyStylesheetProcessors(rawContent, dep.filepath);
41
- const hash = this.generateHash(processedContent);
42
- const cachekey = this.buildCacheKey(dep.filepath, hash, dep);
43
- return this.getOrProcess(cachekey, () => {
44
- const filepath = path.join(
45
- this.getAssetsDir(),
46
- path.relative(this.appConfig.absolutePaths.srcDir, dep.filepath)
47
- );
48
- const outputBuffer = Buffer.from(processedContent);
49
- if (!dep.inline) {
50
- fileSystem.ensureDir(path.dirname(filepath));
51
- fileSystem.write(filepath, outputBuffer);
52
- }
53
- return {
54
- filepath,
55
- sourceFilepath: dep.filepath,
56
- content: dep.inline ? processedContent : void 0,
57
- kind: "stylesheet",
58
- position: dep.position,
59
- attributes: dep.attributes,
60
- inline: dep.inline,
61
- packageRole: dep.packageRole,
62
- bundledSourceFilepaths: dep.bundledSourceFilepaths
63
- };
64
- });
65
- }
66
35
  }
67
- export {
68
- FileStylesheetProcessor
69
- };
@@ -0,0 +1,2 @@
1
+ import type { EcoPagesAppConfig } from '../../../../../types/internal-types.js';
2
+ export declare function applyStylesheetProcessors(appConfig: EcoPagesAppConfig, content: string, filepath: string): Promise<string>;
@@ -0,0 +1,44 @@
1
+ import path from 'node:path';
2
+ const PROCESSABLE_STYLESHEET_EXTENSIONS = new Set(['.css', '.scss', '.sass', '.less']);
3
+ function isProcessableStylesheet(filepath) {
4
+ return PROCESSABLE_STYLESHEET_EXTENSIONS.has(path.extname(filepath));
5
+ }
6
+ /**
7
+ * Legacy fallback for processors that transform stylesheets without declaring
8
+ * capabilities (notably PostCSS before capability metadata was required).
9
+ */
10
+ function shouldRunStylesheetProcessor(processor, filepath) {
11
+ const hasCapabilities = processor.getAssetCapabilities().length > 0;
12
+ const canProcessStylesheet = processor.canProcessAsset('stylesheet', filepath);
13
+ if (canProcessStylesheet) {
14
+ return true;
15
+ }
16
+ if (hasCapabilities) {
17
+ return false;
18
+ }
19
+ return processor.getName().includes('postcss');
20
+ }
21
+ export async function applyStylesheetProcessors(appConfig, content, filepath) {
22
+ if (!isProcessableStylesheet(filepath)) {
23
+ return content;
24
+ }
25
+ let transformedContent = content;
26
+ const processors = appConfig.processors ? Array.from(appConfig.processors.values()) : [];
27
+ for (const processor of processors) {
28
+ if (!shouldRunStylesheetProcessor(processor, filepath)) {
29
+ continue;
30
+ }
31
+ if (!processor.matchesFileFilter(filepath)) {
32
+ continue;
33
+ }
34
+ const result = await processor.process(transformedContent, filepath);
35
+ if (typeof result === 'string') {
36
+ transformedContent = result;
37
+ continue;
38
+ }
39
+ if (result instanceof Buffer) {
40
+ transformedContent = result.toString();
41
+ }
42
+ }
43
+ return transformedContent;
44
+ }
@@ -0,0 +1,4 @@
1
+ import type { AnyIntegrationPlugin } from '../../../plugins/integration-plugin.js';
2
+ import type { EcoPagesAppConfig } from '../../../types/internal-types.js';
3
+ /** Resolves the integration plugin that owns one asset-processing batch key. */
4
+ export declare function resolveIntegrationPluginForProcessingKey(appConfig: EcoPagesAppConfig, processingKey: string): AnyIntegrationPlugin | undefined;
@@ -0,0 +1,15 @@
1
+ /** Resolves the integration plugin that owns one asset-processing batch key. */
2
+ export function resolveIntegrationPluginForProcessingKey(appConfig, processingKey) {
3
+ if (!appConfig.integrations?.length) {
4
+ return undefined;
5
+ }
6
+ const exactMatch = appConfig.integrations.find((integration) => integration.name === processingKey);
7
+ if (exactMatch) {
8
+ return exactMatch;
9
+ }
10
+ const baseName = processingKey.split(':')[0];
11
+ if (!baseName || baseName === processingKey) {
12
+ return undefined;
13
+ }
14
+ return appConfig.integrations.find((integration) => integration.name === baseName);
15
+ }
@@ -2,7 +2,6 @@ import type { AssetProcessor } from './processor.interface.js';
2
2
  import type { AssetDefinition, ProcessedAsset } from './assets.types.js';
3
3
  type ProcessUngroupedDependencyOptions = {
4
4
  dep: AssetDefinition;
5
- key: string;
6
5
  depKey: string;
7
6
  getCachedAsset: (dep: AssetDefinition, depKey: string) => ProcessedAsset | null;
8
7
  getProcessor: (dep: AssetDefinition) => AssetProcessor | undefined;
@@ -1,45 +1,28 @@
1
- import { fileSystem } from "@ecopages/file-system";
2
- async function processUngroupedDependency(options) {
3
- const {
4
- dep,
5
- key,
6
- depKey,
7
- getCachedAsset,
8
- getProcessor,
9
- resolveProcessedAssetSrcUrl,
10
- setCachedAsset,
11
- logMissingProcessor,
12
- logMissingFile,
13
- logProcessingError
14
- } = options;
15
- const cached = getCachedAsset(dep, depKey);
16
- if (cached) {
17
- return { key, ...cached };
18
- }
19
- const processor = getProcessor(dep);
20
- if (!processor) {
21
- logMissingProcessor(dep);
22
- return null;
23
- }
24
- if (dep.source === "file" && "filepath" in dep && !fileSystem.exists(dep.filepath)) {
25
- logMissingFile(dep);
26
- return null;
27
- }
28
- try {
29
- const processed = await processor.process(dep);
30
- const srcUrl = resolveProcessedAssetSrcUrl(processed);
31
- const processedWithKey = {
32
- key,
33
- ...processed,
34
- srcUrl
35
- };
36
- setCachedAsset(dep, depKey, processedWithKey);
37
- return processedWithKey;
38
- } catch (error) {
39
- logProcessingError(dep, error);
40
- return null;
41
- }
1
+ import { fileSystem } from '@ecopages/file-system';
2
+ import { finalizeProcessedAsset } from './finalize-processed-asset.js';
3
+ export async function processUngroupedDependency(options) {
4
+ const { dep, depKey, getCachedAsset, getProcessor, resolveProcessedAssetSrcUrl, setCachedAsset, logMissingProcessor, logMissingFile, logProcessingError, } = options;
5
+ const cached = getCachedAsset(dep, depKey);
6
+ if (cached) {
7
+ return finalizeProcessedAsset(cached, resolveProcessedAssetSrcUrl);
8
+ }
9
+ const processor = getProcessor(dep);
10
+ if (!processor) {
11
+ logMissingProcessor(dep);
12
+ return null;
13
+ }
14
+ if (dep.source === 'file' && 'filepath' in dep && !fileSystem.exists(dep.filepath)) {
15
+ logMissingFile(dep);
16
+ return null;
17
+ }
18
+ try {
19
+ const processed = await processor.process(dep);
20
+ const finalized = finalizeProcessedAsset(processed, resolveProcessedAssetSrcUrl);
21
+ setCachedAsset(dep, depKey, finalized);
22
+ return finalized;
23
+ }
24
+ catch (error) {
25
+ logProcessingError(dep, error);
26
+ return null;
27
+ }
42
28
  }
43
- export {
44
- processUngroupedDependency
45
- };
@@ -1,6 +1,24 @@
1
- import type { BuildResult, BuildTranspileProfile } from '../../build/build-adapter.js';
2
- import type { EcoBuildPlugin } from '../../build/build-types.js';
1
+ import type { BuildResult } from '../../build/build-adapter.js';
2
+ import type { BuildTranspileProfile } from '../../build/build-adapter.js';
3
+ import type { EcoBuildPlugin } from '../../build/contracts/build-types.js';
3
4
  import type { EcoPagesAppConfig } from '../../types/internal-types.js';
5
+ /**
6
+ * Browser-oriented build request accepted by {@link BrowserBundleService}.
7
+ *
8
+ * @remarks
9
+ * `profile` is a {@link BuildTranspileProfile} (transpile settings only).
10
+ * `executor` selects the {@link BuildRuntime} concurrency slot:
11
+ * - `'hmr'` + (`hmr-entrypoint` | `hmr-runtime`) → `'browser-hmr'`
12
+ * - everything else (including `browser-script`, and `'build'`) → `'route-module'`
13
+ *
14
+ * Defaults `executor` to `'hmr'`. Request options are always assembled with
15
+ * browser-hmr *defaults* via {@link createBrowserBuildRequest}; only the
16
+ * concurrency/dedupe wrapper differs.
17
+ *
18
+ * Uses request-scope {@link requestBuildDedupe} plus in-flight
19
+ * {@link DedupingBuildExecutor} coalescing; both key on
20
+ * {@link createBuildRequestIdentity}.
21
+ */
4
22
  export type BrowserBundleOptions = {
5
23
  entrypoints: string[] | Record<string, string>;
6
24
  outdir?: string;
@@ -16,28 +34,11 @@ export type BrowserBundleOptions = {
16
34
  externalPackages?: boolean;
17
35
  external?: string[];
18
36
  plugins?: EcoBuildPlugin[];
19
- [key: string]: unknown;
20
- profile: BuildTranspileProfile;
21
- excludeAppBuildPlugins?: string[];
22
- };
23
- type BrowserBundleGroupedOptions = {
24
- outdir?: string;
25
- outbase?: string;
26
- naming?: string;
27
- conditions?: string[];
28
- define?: Record<string, string>;
29
- minify?: boolean;
30
- treeshaking?: boolean;
31
- splitting?: boolean;
32
- root?: string;
33
- bundle?: boolean;
34
- externalPackages?: boolean;
35
- external?: string[];
36
- plugins?: EcoBuildPlugin[];
37
- [key: string]: unknown;
37
+ executor?: 'build' | 'hmr';
38
38
  profile: BuildTranspileProfile;
39
39
  excludeAppBuildPlugins?: string[];
40
40
  };
41
+ type BrowserBundleGroupedOptions = Omit<BrowserBundleOptions, 'entrypoints'>;
41
42
  export interface BrowserBundleExecutor {
42
43
  bundle(options: BrowserBundleOptions): Promise<BuildResult>;
43
44
  }
@@ -49,23 +50,20 @@ export type BrowserBundleGroupedEntry = {
49
50
  * App-owned boundary for browser-oriented bundle work.
50
51
  *
51
52
  * @remarks
52
- * This service owns the shared browser transpile defaults and ensures browser
53
- * builds always run through the app-owned executor rather than direct backend
54
- * calls scattered across HMR and asset processing paths.
53
+ * Owns shared browser transpile defaults and ensures browser builds run through
54
+ * the app-owned executor rather than direct backend calls. Assembles a complete
55
+ * request via {@link createBrowserBuildRequest} before scheduling.
55
56
  */
56
57
  export declare class BrowserBundleService implements BrowserBundleExecutor {
57
58
  private readonly appConfig;
58
- /**
59
- * Creates the browser bundle boundary for one finalized app instance.
60
- */
61
59
  constructor(appConfig: EcoPagesAppConfig);
62
60
  /**
63
61
  * Runs one browser-targeted build through the app-owned executor.
64
62
  *
65
63
  * @remarks
66
- * Browser defaults and app-owned browser build plugins are applied here so HMR
67
- * and runtime asset generation do not have to recreate that policy at each call
68
- * site.
64
+ * Browser defaults, app-owned browser plugins, and
65
+ * {@link getAppSourceTransforms | app source transforms} are applied here
66
+ * so HMR and asset generation do not recreate that policy at each call site.
69
67
  */
70
68
  bundle(options: BrowserBundleOptions): Promise<BuildResult>;
71
69
  bundleGroupedEntries(entries: BrowserBundleGroupedEntry[], options: BrowserBundleGroupedOptions): Promise<BuildResult>;
@@ -1,41 +1,55 @@
1
- import { getAppBrowserBuildPlugins, getAppBuildExecutor, getAppTranspileOptions } from "../../build/build-adapter.js";
2
- import { mergeEcoBuildPlugins } from "../../build/build-manifest.js";
3
- class BrowserBundleService {
4
- appConfig;
5
- /**
6
- * Creates the browser bundle boundary for one finalized app instance.
7
- */
8
- constructor(appConfig) {
9
- this.appConfig = appConfig;
10
- }
11
- /**
12
- * Runs one browser-targeted build through the app-owned executor.
13
- *
14
- * @remarks
15
- * Browser defaults and app-owned browser build plugins are applied here so HMR
16
- * and runtime asset generation do not have to recreate that policy at each call
17
- * site.
18
- */
19
- async bundle(options) {
20
- const { profile, excludeAppBuildPlugins, plugins, ...rawBuildOptions } = options;
21
- const appBrowserPlugins = getAppBrowserBuildPlugins(this.appConfig);
22
- const filteredAppBrowserPlugins = excludeAppBuildPlugins && excludeAppBuildPlugins.length > 0 ? appBrowserPlugins.filter((plugin) => !excludeAppBuildPlugins.includes(plugin.name)) : appBrowserPlugins;
23
- const request = {
24
- ...rawBuildOptions,
25
- entrypoints: options.entrypoints,
26
- ...getAppTranspileOptions(this.appConfig, profile),
27
- plugins: mergeEcoBuildPlugins(plugins, filteredAppBrowserPlugins)
28
- };
29
- return await getAppBuildExecutor(this.appConfig).build(request);
30
- }
31
- async bundleGroupedEntries(entries, options) {
32
- const request = {
33
- ...options,
34
- entrypoints: entries.map((entry) => entry.entrypoint)
35
- };
36
- return this.bundle(request);
37
- }
1
+ import { createBrowserBuildRequest } from '../../build/runtime/build-request-policy.js';
2
+ import { requireBuildRuntime } from '../../build/runtime/build-runtime.js';
3
+ import { startupTrace } from '../../diagnostics/startup-trace.js';
4
+ import { requestBuildDedupe } from '../../diagnostics/request-build-dedupe.js';
5
+ import { createBuildRequestIdentity } from '../../build/runtime/build-request-identity.js';
6
+ function resolveBrowserBundleExecutor(appConfig, profile, executor) {
7
+ const buildRuntime = requireBuildRuntime(appConfig);
8
+ if (executor === 'hmr' && (profile === 'hmr-entrypoint' || profile === 'hmr-runtime')) {
9
+ return buildRuntime.getProfile('browser-hmr');
10
+ }
11
+ return buildRuntime.getProfile('route-module');
12
+ }
13
+ /**
14
+ * App-owned boundary for browser-oriented bundle work.
15
+ *
16
+ * @remarks
17
+ * Owns shared browser transpile defaults and ensures browser builds run through
18
+ * the app-owned executor rather than direct backend calls. Assembles a complete
19
+ * request via {@link createBrowserBuildRequest} before scheduling.
20
+ */
21
+ export class BrowserBundleService {
22
+ appConfig;
23
+ constructor(appConfig) {
24
+ this.appConfig = appConfig;
25
+ }
26
+ /**
27
+ * Runs one browser-targeted build through the app-owned executor.
28
+ *
29
+ * @remarks
30
+ * Browser defaults, app-owned browser plugins, and
31
+ * {@link getAppSourceTransforms | app source transforms} are applied here
32
+ * so HMR and asset generation do not recreate that policy at each call site.
33
+ */
34
+ async bundle(options) {
35
+ const { profile, executor = 'hmr', ...requestInput } = options;
36
+ const request = createBrowserBuildRequest(this.appConfig, {
37
+ ...requestInput,
38
+ profile,
39
+ });
40
+ const buildExecutor = resolveBrowserBundleExecutor(this.appConfig, profile, executor);
41
+ const dedupeKey = createBuildRequestIdentity(request);
42
+ return requestBuildDedupe.dedupeBuild(dedupeKey, async () => {
43
+ const result = await buildExecutor.build(request);
44
+ startupTrace.recordBrowserBundle(result.outputs);
45
+ return result;
46
+ });
47
+ }
48
+ async bundleGroupedEntries(entries, options) {
49
+ const request = {
50
+ ...options,
51
+ entrypoints: Object.fromEntries(entries.map((entry) => [entry.entryName, entry.entrypoint])),
52
+ };
53
+ return this.bundle(request);
54
+ }
38
55
  }
39
- export {
40
- BrowserBundleService
41
- };
@@ -8,6 +8,8 @@
8
8
  export interface RenderResult {
9
9
  html: string;
10
10
  strategy: CacheStrategy;
11
+ /** Source paths that contributed to this render; used for selective HTML cache invalidation. */
12
+ sourceDependencyPaths?: readonly string[];
11
13
  }
12
14
  /**
13
15
  * Render strategy configuration for pages.
@@ -83,8 +85,8 @@ export interface CacheConfig {
83
85
  defaultStrategy?: CacheStrategy;
84
86
  /**
85
87
  * Whether caching is enabled.
86
- * Automatically disabled in dev mode unless explicitly set.
87
- * @default true (production), false (development)
88
+ * In watch mode, defaults to `false` unless explicitly enabled.
89
+ * @default true in production builds, false in watch when omitted
88
90
  */
89
91
  enabled?: boolean;
90
92
  /**
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Cache types and interfaces for page caching and ISR
3
+ * @module
4
+ */
5
+ export {};
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Maps source dependency paths to rendered HTML cache keys for selective invalidation.
3
+ */
4
+ export declare class HtmlPageCacheDependencyIndex {
5
+ private readonly sourcePathToCacheKeys;
6
+ private readonly cacheKeyToSourcePaths;
7
+ /**
8
+ * Records which source paths contributed to one cached HTML entry.
9
+ */
10
+ register(cacheKey: string, sourcePaths: readonly string[]): void;
11
+ /**
12
+ * Removes dependency metadata for one cache key.
13
+ */
14
+ unregister(cacheKey: string): void;
15
+ /**
16
+ * Returns cache keys that depend on any of the given source paths.
17
+ */
18
+ resolveCacheKeysForSourcePaths(sourcePaths: readonly string[]): string[];
19
+ clear(): void;
20
+ }
21
+ type CollectHtmlCacheSourceDependencyPathsInput = {
22
+ routeFile: string;
23
+ processedAssets: readonly {
24
+ sourceFilepath?: string;
25
+ bundledSourceFilepaths?: readonly string[];
26
+ }[];
27
+ graphDependencyPaths?: ReadonlySet<string>;
28
+ additionalSourcePaths?: readonly string[];
29
+ };
30
+ /**
31
+ * Merges route, graph, processed-asset, and caller-supplied source paths for HTML cache invalidation.
32
+ */
33
+ export declare function collectHtmlCacheSourceDependencyPaths(input: CollectHtmlCacheSourceDependencyPathsInput): string[];
34
+ export {};
@@ -0,0 +1,88 @@
1
+ import path from 'node:path';
2
+ /**
3
+ * Maps source dependency paths to rendered HTML cache keys for selective invalidation.
4
+ */
5
+ export class HtmlPageCacheDependencyIndex {
6
+ sourcePathToCacheKeys = new Map();
7
+ cacheKeyToSourcePaths = new Map();
8
+ /**
9
+ * Records which source paths contributed to one cached HTML entry.
10
+ */
11
+ register(cacheKey, sourcePaths) {
12
+ this.unregister(cacheKey);
13
+ if (sourcePaths.length === 0) {
14
+ return;
15
+ }
16
+ const normalizedSourcePaths = new Set(sourcePaths.map((sourcePath) => normalizeSourcePath(sourcePath)));
17
+ this.cacheKeyToSourcePaths.set(cacheKey, normalizedSourcePaths);
18
+ for (const sourcePath of normalizedSourcePaths) {
19
+ const cacheKeys = this.sourcePathToCacheKeys.get(sourcePath) ?? new Set();
20
+ cacheKeys.add(cacheKey);
21
+ this.sourcePathToCacheKeys.set(sourcePath, cacheKeys);
22
+ }
23
+ }
24
+ /**
25
+ * Removes dependency metadata for one cache key.
26
+ */
27
+ unregister(cacheKey) {
28
+ const sourcePaths = this.cacheKeyToSourcePaths.get(cacheKey);
29
+ if (!sourcePaths) {
30
+ return;
31
+ }
32
+ for (const sourcePath of sourcePaths) {
33
+ const cacheKeys = this.sourcePathToCacheKeys.get(sourcePath);
34
+ cacheKeys?.delete(cacheKey);
35
+ if (cacheKeys?.size === 0) {
36
+ this.sourcePathToCacheKeys.delete(sourcePath);
37
+ }
38
+ }
39
+ this.cacheKeyToSourcePaths.delete(cacheKey);
40
+ }
41
+ /**
42
+ * Returns cache keys that depend on any of the given source paths.
43
+ */
44
+ resolveCacheKeysForSourcePaths(sourcePaths) {
45
+ const cacheKeys = new Set();
46
+ for (const sourcePath of sourcePaths) {
47
+ const normalizedSourcePath = normalizeSourcePath(sourcePath);
48
+ const matches = this.sourcePathToCacheKeys.get(normalizedSourcePath);
49
+ if (!matches) {
50
+ continue;
51
+ }
52
+ for (const cacheKey of matches) {
53
+ cacheKeys.add(cacheKey);
54
+ }
55
+ }
56
+ return [...cacheKeys];
57
+ }
58
+ clear() {
59
+ this.sourcePathToCacheKeys.clear();
60
+ this.cacheKeyToSourcePaths.clear();
61
+ }
62
+ }
63
+ function normalizeSourcePath(sourcePath) {
64
+ return path.resolve(sourcePath);
65
+ }
66
+ /**
67
+ * Merges route, graph, processed-asset, and caller-supplied source paths for HTML cache invalidation.
68
+ */
69
+ export function collectHtmlCacheSourceDependencyPaths(input) {
70
+ const sourcePaths = new Set([normalizeSourcePath(input.routeFile)]);
71
+ for (const additionalPath of input.additionalSourcePaths ?? []) {
72
+ sourcePaths.add(normalizeSourcePath(additionalPath));
73
+ }
74
+ if (input.graphDependencyPaths) {
75
+ for (const graphPath of input.graphDependencyPaths) {
76
+ sourcePaths.add(normalizeSourcePath(graphPath));
77
+ }
78
+ }
79
+ for (const asset of input.processedAssets) {
80
+ if (asset.sourceFilepath) {
81
+ sourcePaths.add(normalizeSourcePath(asset.sourceFilepath));
82
+ }
83
+ for (const bundledSourceFilepath of asset.bundledSourceFilepaths ?? []) {
84
+ sourcePaths.add(normalizeSourcePath(bundledSourceFilepath));
85
+ }
86
+ }
87
+ return [...sourcePaths];
88
+ }
@@ -4,4 +4,6 @@
4
4
  */
5
5
  export type { CacheConfig, CacheEntry, CacheResult, CacheStats, CacheStore, CacheStrategy, RenderResult, } from './cache.types.js';
6
6
  export { MemoryCacheStore, type MemoryCacheStoreOptions } from './memory-cache-store.js';
7
+ export { HtmlPageCacheDependencyIndex } from './html-page-cache-dependency-index.js';
7
8
  export { getCacheControlHeader, PageCacheService, type PageCacheServiceOptions } from './page-cache-service.js';
9
+ export { clearAppPageCache, getAppPageCacheService, invalidateAppPageCacheBySourcePaths, registerAppPageCacheService, } from './page-cache-service.js';
@@ -1,7 +1,8 @@
1
- import { MemoryCacheStore } from "./memory-cache-store.js";
2
- import { getCacheControlHeader, PageCacheService } from "./page-cache-service.js";
3
- export {
4
- MemoryCacheStore,
5
- PageCacheService,
6
- getCacheControlHeader
7
- };
1
+ /**
2
+ * Cache services exports
3
+ * @module
4
+ */
5
+ export { MemoryCacheStore } from './memory-cache-store.js';
6
+ export { HtmlPageCacheDependencyIndex } from './html-page-cache-dependency-index.js';
7
+ export { getCacheControlHeader, PageCacheService } from './page-cache-service.js';
8
+ export { clearAppPageCache, getAppPageCacheService, invalidateAppPageCacheBySourcePaths, registerAppPageCacheService, } from './page-cache-service.js';