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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/README.md +42 -13
  2. package/package.json +360 -57
  3. package/src/adapters/README.md +6 -2
  4. package/src/adapters/abstract/application-adapter.d.ts +57 -5
  5. package/src/adapters/abstract/application-adapter.js +261 -203
  6. package/src/adapters/abstract/router-adapter.js +12 -4
  7. package/src/adapters/abstract/segment-path-matcher.d.ts +6 -0
  8. package/src/adapters/abstract/segment-path-matcher.js +147 -0
  9. package/src/adapters/abstract/server-adapter.d.ts +13 -2
  10. package/src/adapters/abstract/server-adapter.js +22 -14
  11. package/src/adapters/abstract/ws-pattern-matcher.d.ts +2 -50
  12. package/src/adapters/abstract/ws-pattern-matcher.js +24 -57
  13. package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
  14. package/src/adapters/bun/client-bridge.js +51 -50
  15. package/src/adapters/bun/create-app.d.ts +4 -6
  16. package/src/adapters/bun/create-app.js +169 -154
  17. package/src/adapters/bun/hmr-manager.d.ts +2 -3
  18. package/src/adapters/bun/hmr-manager.js +62 -57
  19. package/src/adapters/bun/index.d.ts +1 -1
  20. package/src/adapters/bun/index.js +2 -8
  21. package/src/adapters/bun/runtime-host.d.ts +1 -1
  22. package/src/adapters/bun/runtime-host.js +61 -54
  23. package/src/adapters/bun/server-adapter.d.ts +34 -53
  24. package/src/adapters/bun/server-adapter.js +557 -637
  25. package/src/adapters/bun/static-preview-host.d.ts +1 -1
  26. package/src/adapters/bun/static-preview-host.js +43 -41
  27. package/src/adapters/create-app.d.ts +1 -12
  28. package/src/adapters/create-app.js +11 -72
  29. package/src/adapters/index.d.ts +2 -2
  30. package/src/adapters/index.js +2 -8
  31. package/src/adapters/node/create-app.d.ts +4 -3
  32. package/src/adapters/node/create-app.js +123 -98
  33. package/src/adapters/node/http-request-bridge.js +147 -106
  34. package/src/adapters/node/node-client-bridge.js +62 -64
  35. package/src/adapters/node/node-hmr-manager.d.ts +2 -3
  36. package/src/adapters/node/node-hmr-manager.js +58 -48
  37. package/src/adapters/node/runtime-host.d.ts +1 -1
  38. package/src/adapters/node/runtime-host.js +96 -89
  39. package/src/adapters/node/server-adapter-dependencies.js +18 -17
  40. package/src/adapters/node/server-adapter.d.ts +28 -8
  41. package/src/adapters/node/server-adapter.js +349 -302
  42. package/src/adapters/node/static-content-server.js +172 -186
  43. package/src/adapters/node/static-preview-host.d.ts +1 -1
  44. package/src/adapters/node/static-preview-host.js +88 -64
  45. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
  46. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
  47. package/src/adapters/shared/{hmr-html-response.d.ts → hmr/hmr-html-response.d.ts} +2 -2
  48. package/src/adapters/shared/hmr/hmr-html-response.js +50 -0
  49. package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +92 -0
  50. package/src/adapters/shared/hmr/shared-hmr-manager.js +446 -0
  51. package/src/adapters/shared/http/api-request-pipeline.d.ts +23 -0
  52. package/src/adapters/shared/http/api-request-pipeline.js +132 -0
  53. package/src/adapters/shared/{api-response.d.ts → http/api-response.d.ts} +1 -1
  54. package/src/adapters/shared/http/api-response.js +79 -0
  55. package/src/adapters/shared/http/create-body-response.d.ts +12 -0
  56. package/src/adapters/shared/http/create-body-response.js +26 -0
  57. package/src/adapters/shared/http/define-api-handler.d.ts +90 -0
  58. package/src/adapters/shared/http/define-api-handler.js +49 -0
  59. package/src/adapters/shared/{explicit-static-render-preparation.d.ts → http/explicit-static-render-preparation.d.ts} +3 -3
  60. package/src/adapters/shared/http/explicit-static-render-preparation.js +29 -0
  61. package/src/adapters/shared/{explicit-static-route-matcher.d.ts → http/explicit-static-route-matcher.d.ts} +3 -9
  62. package/src/adapters/shared/http/explicit-static-route-matcher.js +59 -0
  63. package/src/adapters/shared/{file-route-middleware-pipeline.d.ts → http/file-route-middleware-pipeline.d.ts} +2 -2
  64. package/src/adapters/shared/http/file-route-middleware-pipeline.js +84 -0
  65. package/src/adapters/shared/{fs-server-response-factory.d.ts → http/fs-server-response-factory.d.ts} +7 -2
  66. package/src/adapters/shared/http/fs-server-response-factory.js +106 -0
  67. package/src/adapters/shared/{fs-server-response-matcher.d.ts → http/fs-server-response-matcher.d.ts} +25 -5
  68. package/src/adapters/shared/http/fs-server-response-matcher.js +260 -0
  69. package/src/adapters/shared/http/run-middleware-chain.d.ts +5 -0
  70. package/src/adapters/shared/http/run-middleware-chain.js +17 -0
  71. package/src/adapters/shared/{application-adapter.d.ts → runtime/application-adapter.d.ts} +2 -2
  72. package/src/adapters/shared/runtime/application-adapter.js +75 -0
  73. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.d.ts +11 -0
  74. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.js +29 -0
  75. package/src/adapters/shared/runtime/copy-runtime-public-dir.js +27 -0
  76. package/src/adapters/shared/runtime/dev-static-route-prewarm.d.ts +16 -0
  77. package/src/adapters/shared/runtime/dev-static-route-prewarm.js +66 -0
  78. package/src/adapters/shared/runtime/port-manager.d.ts +116 -0
  79. package/src/adapters/shared/runtime/port-manager.js +226 -0
  80. package/src/adapters/shared/{render-context.d.ts → runtime/render-context.d.ts} +2 -2
  81. package/src/adapters/shared/runtime/render-context.js +99 -0
  82. package/src/adapters/shared/{runtime-app-bootstrap.d.ts → runtime/runtime-app-bootstrap.d.ts} +4 -2
  83. package/src/adapters/shared/runtime/runtime-app-bootstrap.js +38 -0
  84. package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +45 -0
  85. package/src/adapters/shared/runtime/runtime-server-lifecycle.js +71 -0
  86. package/src/adapters/shared/{server-adapter.d.ts → runtime/server-adapter.d.ts} +31 -50
  87. package/src/adapters/shared/runtime/server-adapter.js +301 -0
  88. package/src/adapters/shared/{server-route-handler.d.ts → runtime/server-route-handler.d.ts} +6 -33
  89. package/src/adapters/shared/runtime/server-route-handler.js +77 -0
  90. package/src/adapters/shared/{server-static-builder.d.ts → runtime/server-static-builder.d.ts} +26 -31
  91. package/src/adapters/shared/runtime/server-static-builder.js +172 -0
  92. package/src/adapters/shared/{static-preview-host.d.ts → runtime/static-preview-host.d.ts} +6 -1
  93. package/src/adapters/shared/{node-http-websocket-upgrades.d.ts → ws/node-http-websocket-upgrades.d.ts} +1 -1
  94. package/src/adapters/shared/ws/node-http-websocket-upgrades.js +109 -0
  95. package/src/adapters/shared/ws/websocket-lifecycle.d.ts +24 -0
  96. package/src/adapters/shared/ws/websocket-lifecycle.js +62 -0
  97. package/src/build/README.md +165 -45
  98. package/src/build/app-build-manifest-runtime.d.ts +39 -0
  99. package/src/build/app-build-manifest-runtime.js +145 -0
  100. package/src/build/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +4 -0
  101. package/src/build/browser/browser-runtime-manifest.js +65 -0
  102. package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +3 -5
  103. package/src/build/browser/browser-runtime-plugin-helpers.js +32 -0
  104. package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +12 -13
  105. package/src/build/browser/browser-runtime-plugin.js +218 -0
  106. package/src/build/browser/jsx-ownership-plugins.d.ts +24 -0
  107. package/src/build/browser/jsx-ownership-plugins.js +55 -0
  108. package/src/build/browser/lit-static-render-worker-context.d.ts +2 -0
  109. package/src/build/browser/lit-static-render-worker-context.js +4 -0
  110. package/src/build/build-adapter.d.ts +25 -355
  111. package/src/build/build-adapter.js +258 -265
  112. package/src/build/{build-input-fingerprint.d.ts → cache/build-input-fingerprint.d.ts} +3 -3
  113. package/src/build/cache/build-input-fingerprint.js +33 -0
  114. package/src/build/cache/cache-constants.d.ts +4 -0
  115. package/src/build/cache/cache-constants.js +4 -0
  116. package/src/build/cache/cache-keys.d.ts +22 -0
  117. package/src/build/cache/cache-keys.js +71 -0
  118. package/src/build/{pages-unified-graph-build.d.ts → cache/pages-unified-graph-build.d.ts} +1 -1
  119. package/src/build/cache/pages-unified-graph-build.js +199 -0
  120. package/src/build/cache/production-build-cache.d.ts +21 -0
  121. package/src/build/cache/production-build-cache.js +56 -0
  122. package/src/build/{server-entry-build-cache.d.ts → cache/server-entry-build-cache.d.ts} +3 -4
  123. package/src/build/cache/server-entry-build-cache.js +153 -0
  124. package/src/build/contracts/build-contracts.d.ts +96 -0
  125. package/src/build/contracts/build-contracts.js +1 -0
  126. package/src/build/contracts/build-manifest.d.ts +90 -0
  127. package/src/build/contracts/build-manifest.js +64 -0
  128. package/src/build/contracts/build-types.js +1 -0
  129. package/src/build/contracts/content-virtual-modules.d.ts +12 -0
  130. package/src/build/contracts/content-virtual-modules.js +29 -0
  131. package/src/build/{rolldown-adapter-helpers.d.ts → rolldown/rolldown-adapter-helpers.d.ts} +32 -9
  132. package/src/build/rolldown/rolldown-adapter-helpers.js +463 -0
  133. package/src/build/{rolldown-build-adapter.d.ts → rolldown/rolldown-build-adapter.d.ts} +3 -7
  134. package/src/build/rolldown/rolldown-build-adapter.js +57 -0
  135. package/src/build/{rolldown-build-invocation-metrics.d.ts → rolldown/rolldown-build-invocation-metrics.d.ts} +1 -1
  136. package/src/build/rolldown/rolldown-build-invocation-metrics.js +39 -0
  137. package/src/build/{rolldown-plugin-bridge.d.ts → rolldown/rolldown-plugin-bridge.d.ts} +7 -2
  138. package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
  139. package/src/build/{rolldown-source-transform-pass.d.ts → rolldown/rolldown-source-transform-pass.d.ts} +1 -1
  140. package/src/build/rolldown/rolldown-source-transform-pass.js +70 -0
  141. package/src/build/rolldown/runtime-build-output-normalizer.js +253 -0
  142. package/src/build/rolldown/server-side-css-shim-plugin.js +58 -0
  143. package/src/build/runtime/build-profile-options.d.ts +7 -0
  144. package/src/build/runtime/build-profile-options.js +37 -0
  145. package/src/build/runtime/build-request-identity.d.ts +17 -0
  146. package/src/build/runtime/build-request-identity.js +79 -0
  147. package/src/build/runtime/build-request-policy.d.ts +58 -0
  148. package/src/build/runtime/build-request-policy.js +84 -0
  149. package/src/build/runtime/build-runtime.d.ts +28 -0
  150. package/src/build/runtime/build-runtime.js +75 -0
  151. package/src/build/runtime/deduping-build-executor.d.ts +21 -0
  152. package/src/build/runtime/deduping-build-executor.js +40 -0
  153. package/src/build/{parallel-build-executor.d.ts → runtime/parallel-build-executor.d.ts} +1 -1
  154. package/src/build/runtime/parallel-build-executor.js +60 -0
  155. package/src/build/{serialized-build-executor.d.ts → runtime/serialized-build-executor.d.ts} +1 -1
  156. package/src/build/runtime/serialized-build-executor.js +79 -0
  157. package/src/cache/index.d.ts +2 -1
  158. package/src/cache/index.js +7 -6
  159. package/src/cache/module-parse-cache.d.ts +5 -0
  160. package/src/cache/module-parse-cache.js +122 -67
  161. package/src/cache/module-transform-profiler.d.ts +8 -0
  162. package/src/cache/module-transform-profiler.js +8 -0
  163. package/src/client/navigation-scripts/classification.d.ts +16 -0
  164. package/src/client/navigation-scripts/classification.js +49 -0
  165. package/src/client/navigation-scripts/index.d.ts +3 -0
  166. package/src/client/navigation-scripts/index.js +3 -0
  167. package/src/client/navigation-scripts/navigation-scripts.test.browser.d.ts +1 -0
  168. package/src/client/navigation-scripts/navigation-scripts.test.browser.js +61 -0
  169. package/src/client/navigation-scripts/registry.d.ts +11 -0
  170. package/src/client/navigation-scripts/registry.js +16 -0
  171. package/src/client/navigation-scripts/rerun-queue.d.ts +37 -0
  172. package/src/client/navigation-scripts/rerun-queue.js +90 -0
  173. package/src/client/scroll.d.ts +17 -0
  174. package/src/client/scroll.js +33 -0
  175. package/src/client/scroll.test.browser.d.ts +1 -0
  176. package/src/client/scroll.test.browser.js +31 -0
  177. package/src/client/view-transitions.d.ts +32 -0
  178. package/src/client/view-transitions.js +120 -0
  179. package/src/client/view-transitions.test.browser.d.ts +1 -0
  180. package/src/client/view-transitions.test.browser.js +56 -0
  181. package/src/config/README.md +1 -1
  182. package/src/config/config-builder.d.ts +40 -20
  183. package/src/config/config-builder.js +645 -610
  184. package/src/config/constants.d.ts +1 -0
  185. package/src/config/constants.js +44 -23
  186. package/src/declarations.d.ts +1 -0
  187. package/src/dev/README.md +24 -0
  188. package/src/dev/client-bridge-registry.d.ts +5 -0
  189. package/src/dev/client-bridge-registry.js +10 -0
  190. package/src/dev/dev-client-ownership.d.ts +7 -0
  191. package/src/dev/dev-client-ownership.js +8 -0
  192. package/src/dev/hmr-manager-registry.d.ts +8 -0
  193. package/src/dev/hmr-manager-registry.js +10 -0
  194. package/src/dev/host-runtime.d.ts +3 -0
  195. package/src/dev/host-runtime.js +25 -23
  196. package/src/dev/runtime-server-started-message.d.ts +2 -0
  197. package/src/dev/runtime-server-started-message.js +3 -0
  198. package/src/dev/sc-server.js +106 -103
  199. package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
  200. package/src/dev/transform-server/dev-transform-bundler.js +79 -0
  201. package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
  202. package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
  203. package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
  204. package/src/dev/transform-server/dev-transform-import-rewriter.js +127 -0
  205. package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
  206. package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
  207. package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
  208. package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
  209. package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
  210. package/src/dev/transform-server/dev-transform-server.js +191 -0
  211. package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
  212. package/src/dev/transform-server/dev-transform-url.js +58 -0
  213. package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +28 -0
  214. package/src/dev/transform-server/dev-transform-vendor-registry.js +166 -0
  215. package/src/dev/transform-server/index.d.ts +6 -0
  216. package/src/dev/transform-server/index.js +4 -0
  217. package/src/dev/transform-server/types.d.ts +15 -0
  218. package/src/dev/transform-server/types.js +1 -0
  219. package/src/dev-toolbar/README.md +52 -0
  220. package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
  221. package/src/dev-toolbar/define-dev-tool.js +9 -0
  222. package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
  223. package/src/dev-toolbar/dev-toolbar-config.js +19 -0
  224. package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
  225. package/src/dev-toolbar/dev-toolbar-host.js +117 -0
  226. package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
  227. package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
  228. package/src/dev-toolbar/dev-toolbar-manifest-contract.d.ts +22 -0
  229. package/src/dev-toolbar/dev-toolbar-manifest-contract.js +2 -0
  230. package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
  231. package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
  232. package/src/dev-toolbar/dev-toolbar-package.d.ts +34 -0
  233. package/src/dev-toolbar/dev-toolbar-package.js +78 -0
  234. package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
  235. package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
  236. package/src/diagnostics/request-build-dedupe.d.ts +18 -0
  237. package/src/diagnostics/request-build-dedupe.js +39 -0
  238. package/src/diagnostics/request-pipeline-metrics.d.ts +38 -0
  239. package/src/diagnostics/request-pipeline-metrics.js +121 -0
  240. package/src/diagnostics/startup-trace.d.ts +81 -0
  241. package/src/diagnostics/startup-trace.js +281 -0
  242. package/src/eco/README.md +17 -0
  243. package/src/eco/component-identity.d.ts +13 -0
  244. package/src/eco/component-identity.js +18 -0
  245. package/src/eco/eco-declared-component.d.ts +15 -0
  246. package/src/eco/eco-declared-component.js +23 -0
  247. package/src/eco/eco.browser.js +63 -70
  248. package/src/eco/eco.js +163 -97
  249. package/src/eco/eco.types.d.ts +47 -8
  250. package/src/eco/eco.types.js +5 -0
  251. package/src/eco/eco.utils.d.ts +1 -1
  252. package/src/eco/eco.utils.js +1 -10
  253. package/src/eco/global-injector-map.js +55 -41
  254. package/src/eco/lazy-injector-map.js +90 -60
  255. package/src/eco/module-dependencies.js +52 -44
  256. package/src/eco/page-layout-normalization.d.ts +21 -0
  257. package/src/eco/page-layout-normalization.js +69 -0
  258. package/src/env.d.ts +2 -0
  259. package/src/errors/http-error.d.ts +8 -0
  260. package/src/errors/http-error.js +66 -49
  261. package/src/errors/index.d.ts +1 -0
  262. package/src/errors/index.js +3 -6
  263. package/src/errors/locals-access-error.js +5 -8
  264. package/src/errors/undeclared-component-dependency-error.d.ts +11 -0
  265. package/src/errors/undeclared-component-dependency-error.js +17 -0
  266. package/src/global/app-logger.js +3 -6
  267. package/src/hmr/README.md +21 -0
  268. package/src/hmr/client/hmr-runtime.js +119 -110
  269. package/src/hmr/client/module-update.d.ts +13 -0
  270. package/src/hmr/client/module-update.js +39 -0
  271. package/src/hmr/hmr-asset-paths.d.ts +14 -0
  272. package/src/hmr/hmr-asset-paths.js +22 -0
  273. package/src/hmr/hmr-entrypoint-output.d.ts +21 -0
  274. package/src/hmr/hmr-entrypoint-output.js +34 -0
  275. package/src/hmr/hmr-file-change-prep.d.ts +10 -0
  276. package/src/hmr/hmr-file-change-prep.js +14 -0
  277. package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
  278. package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
  279. package/src/hmr/hmr-runtime-paths.d.ts +10 -0
  280. package/src/hmr/hmr-runtime-paths.js +13 -0
  281. package/src/hmr/hmr-strategy.d.ts +9 -0
  282. package/src/hmr/hmr-strategy.js +113 -42
  283. package/src/hmr/strategies/default-hmr-strategy.js +55 -33
  284. package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -97
  285. package/src/hmr/strategies/js-hmr-strategy.js +107 -167
  286. package/src/hmr/strategies/server-rendered-template-hmr-strategy.d.ts +17 -0
  287. package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +35 -0
  288. package/src/index.browser.d.ts +1 -0
  289. package/src/index.browser.js +2 -4
  290. package/src/index.d.ts +4 -1
  291. package/src/index.js +7 -21
  292. package/src/islands/README.md +25 -0
  293. package/src/islands/island-host.d.ts +37 -0
  294. package/src/islands/island-host.js +55 -0
  295. package/src/plugins/README.md +2 -1
  296. package/src/plugins/alias-resolver-cache.d.ts +6 -9
  297. package/src/plugins/alias-resolver-cache.js +114 -97
  298. package/src/plugins/alias-resolver-plugin.d.ts +3 -3
  299. package/src/plugins/alias-resolver-plugin.js +35 -62
  300. package/src/plugins/define-integration.d.ts +26 -0
  301. package/src/plugins/define-integration.js +20 -0
  302. package/src/plugins/eco-component-meta-plugin.d.ts +6 -102
  303. package/src/plugins/eco-component-meta-plugin.js +123 -162
  304. package/src/plugins/foreign-jsx-override-plugin.d.ts +1 -1
  305. package/src/plugins/foreign-jsx-override-plugin.js +49 -37
  306. package/src/plugins/integration-plugin.d.ts +24 -6
  307. package/src/plugins/integration-plugin.js +212 -195
  308. package/src/plugins/jsx-import-source.utils.d.ts +8 -0
  309. package/src/plugins/jsx-import-source.utils.js +21 -0
  310. package/src/plugins/package-specifier.d.ts +12 -0
  311. package/src/plugins/package-specifier.js +33 -0
  312. package/src/plugins/processor.d.ts +66 -12
  313. package/src/plugins/processor.js +168 -137
  314. package/src/plugins/runtime-capability.js +1 -0
  315. package/src/plugins/source-transform.d.ts +1 -1
  316. package/src/plugins/source-transform.js +109 -79
  317. package/src/plugins/tsconfig-import-resolver.d.ts +37 -0
  318. package/src/plugins/tsconfig-import-resolver.js +262 -0
  319. package/src/route-renderer/GRAPH.md +24 -30
  320. package/src/route-renderer/README.md +52 -32
  321. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.d.ts +107 -0
  322. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +155 -0
  323. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.d.ts +20 -0
  324. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +37 -0
  325. package/src/route-renderer/orchestration/{component-render-context.d.ts → foreign-child/component-render-context.d.ts} +8 -15
  326. package/src/route-renderer/orchestration/foreign-child/component-render-context.js +196 -0
  327. package/src/route-renderer/orchestration/{render-output.utils.d.ts → foreign-child/foreign-child-output.utils.d.ts} +20 -7
  328. package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +195 -0
  329. package/src/route-renderer/orchestration/{foreign-subtree-execution.service.d.ts → foreign-child/foreign-subtree-execution.service.d.ts} +64 -34
  330. package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +354 -0
  331. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.d.ts +19 -0
  332. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +36 -0
  333. package/src/route-renderer/orchestration/integration-renderer.d.ts +37 -153
  334. package/src/route-renderer/orchestration/integration-renderer.js +803 -1008
  335. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.d.ts +75 -0
  336. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +173 -0
  337. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.d.ts +10 -0
  338. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +132 -0
  339. package/src/route-renderer/orchestration/ownership-graph/component-graph.d.ts +34 -0
  340. package/src/route-renderer/orchestration/ownership-graph/component-graph.js +89 -0
  341. package/src/route-renderer/orchestration/{ownership-validation.service.d.ts → ownership-graph/ownership-validation.service.d.ts} +6 -2
  342. package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +77 -0
  343. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.d.ts +7 -0
  344. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +30 -0
  345. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.d.ts +15 -0
  346. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.js +9 -0
  347. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.d.ts +5 -0
  348. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.js +30 -0
  349. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.d.ts +12 -0
  350. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +32 -0
  351. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +126 -0
  352. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +542 -0
  353. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.d.ts +47 -0
  354. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +248 -0
  355. package/src/route-renderer/orchestration/{processed-asset-dedupe.d.ts → page-browser-graph/processed-asset-dedupe.d.ts} +1 -1
  356. package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +23 -0
  357. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.d.ts +29 -0
  358. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.js +54 -0
  359. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +38 -0
  360. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +26 -0
  361. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.d.ts +6 -0
  362. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +25 -0
  363. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.d.ts +15 -0
  364. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +43 -0
  365. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +25 -0
  366. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +44 -0
  367. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.d.ts +26 -0
  368. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +44 -0
  369. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.d.ts +4 -0
  370. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +30 -0
  371. package/src/route-renderer/orchestration/{route-render-orchestrator.d.ts → route-pipeline/route-render-orchestrator.d.ts} +24 -54
  372. package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +215 -0
  373. package/src/{integrations/ghtml/ghtml-renderer.d.ts → route-renderer/orchestration/string-markup-renderer.d.ts} +8 -10
  374. package/src/route-renderer/orchestration/string-markup-renderer.js +52 -0
  375. package/src/route-renderer/page-loading/component-dependency-collection.js +121 -121
  376. package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
  377. package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
  378. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +1 -0
  379. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +64 -51
  380. package/src/route-renderer/page-loading/file-scoped-dependency-components.d.ts +42 -0
  381. package/src/route-renderer/page-loading/file-scoped-dependency-components.js +94 -0
  382. package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
  383. package/src/route-renderer/page-loading/lazy-trigger-planning.js +47 -36
  384. package/src/route-renderer/page-loading/module-declaration-aggregation.js +39 -28
  385. package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
  386. package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
  387. package/src/route-renderer/page-loading/page-module-loader.d.ts +2 -1
  388. package/src/route-renderer/page-loading/page-module-loader.js +136 -124
  389. package/src/route-renderer/page-loading/resolved-page-dependencies.d.ts +12 -0
  390. package/src/route-renderer/page-loading/resolved-page-dependencies.js +38 -0
  391. package/src/route-renderer/route-renderer.js +74 -76
  392. package/src/router/README.md +31 -0
  393. package/src/router/client/link-intent.d.ts +11 -21
  394. package/src/router/client/link-intent.js +56 -30
  395. package/src/router/client/link-intent.test.browser.js +50 -39
  396. package/src/router/client/link-navigation-policy.d.ts +45 -0
  397. package/src/router/client/link-navigation-policy.js +122 -0
  398. package/src/router/client/link-navigation-policy.test.browser.d.ts +1 -0
  399. package/src/router/client/link-navigation-policy.test.browser.js +82 -0
  400. package/src/router/client/navigation-coordinator.d.ts +1 -1
  401. package/src/router/client/navigation-coordinator.js +235 -211
  402. package/src/router/client/navigation-lifecycle.d.ts +55 -0
  403. package/src/router/client/navigation-lifecycle.js +50 -0
  404. package/src/router/client/navigation-lifecycle.test.browser.d.ts +1 -0
  405. package/src/router/client/navigation-lifecycle.test.browser.js +118 -0
  406. package/src/router/server/route-registry.js +237 -242
  407. package/src/services/README.md +5 -0
  408. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +13 -0
  409. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -50
  410. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +12 -1
  411. package/src/services/assets/asset-processing-service/asset-processing.service.js +335 -268
  412. package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
  413. package/src/services/assets/asset-processing-service/assets.types.d.ts +1 -1
  414. package/src/services/assets/asset-processing-service/assets.types.js +1 -0
  415. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +1 -1
  416. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -46
  417. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.d.ts +52 -0
  418. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +115 -0
  419. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -58
  420. package/src/services/assets/asset-processing-service/finalize-processed-asset.d.ts +3 -0
  421. package/src/services/assets/asset-processing-service/finalize-processed-asset.js +5 -0
  422. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +2 -1
  423. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +85 -60
  424. package/src/services/assets/asset-processing-service/index.d.ts +2 -0
  425. package/src/services/assets/asset-processing-service/index.js +8 -6
  426. package/src/services/assets/asset-processing-service/inline-content-script-body.d.ts +11 -0
  427. package/src/services/assets/asset-processing-service/inline-content-script-body.js +23 -0
  428. package/src/services/assets/asset-processing-service/materialize-content-script-asset.d.ts +9 -0
  429. package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +22 -0
  430. package/src/services/assets/asset-processing-service/page-package.js +70 -72
  431. package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
  432. package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
  433. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
  434. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -2
  435. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -130
  436. package/src/services/assets/asset-processing-service/processors/index.js +5 -5
  437. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +8 -0
  438. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +111 -111
  439. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -1
  440. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -94
  441. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -135
  442. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -3
  443. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +26 -57
  444. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -3
  445. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +33 -67
  446. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.d.ts +2 -0
  447. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +44 -0
  448. package/src/services/assets/asset-processing-service/resolve-integration-plugin.d.ts +4 -0
  449. package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +15 -0
  450. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -1
  451. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -44
  452. package/src/services/assets/browser-bundle.service.d.ts +27 -31
  453. package/src/services/assets/browser-bundle.service.js +54 -49
  454. package/src/services/assets/browser-runtime-asset-generation.d.ts +17 -0
  455. package/src/services/assets/browser-runtime-asset-generation.js +28 -0
  456. package/src/services/cache/cache.types.d.ts +4 -2
  457. package/src/services/cache/cache.types.js +5 -0
  458. package/src/services/cache/html-page-cache-dependency-index.d.ts +34 -0
  459. package/src/services/cache/html-page-cache-dependency-index.js +88 -0
  460. package/src/services/cache/index.d.ts +2 -0
  461. package/src/services/cache/index.js +8 -7
  462. package/src/services/cache/memory-cache-store.js +101 -89
  463. package/src/services/cache/page-cache-service.d.ts +31 -1
  464. package/src/services/cache/page-cache-service.js +237 -150
  465. package/src/services/cache/page-request-cache-coordinator.service.d.ts +2 -1
  466. package/src/services/cache/page-request-cache-coordinator.service.js +112 -102
  467. package/src/services/html/html-rewriter-provider.service.js +61 -61
  468. package/src/services/html/html-transformer.service.js +249 -266
  469. package/src/services/invalidation/development-invalidation.service.d.ts +15 -1
  470. package/src/services/invalidation/development-invalidation.service.js +241 -204
  471. package/src/services/module-loading/README.md +9 -6
  472. package/src/services/module-loading/app-module-loader.service.js +1 -0
  473. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +8 -0
  474. package/src/services/module-loading/app-server-module-transpiler.service.js +104 -106
  475. package/src/services/module-loading/collection-server-module-build.service.d.ts +19 -0
  476. package/src/services/module-loading/collection-server-module-build.service.js +83 -0
  477. package/src/services/module-loading/host-module-loader-registry.js +6 -11
  478. package/src/services/module-loading/module-loading-types.js +1 -0
  479. package/src/services/module-loading/page-module-import.service.d.ts +7 -12
  480. package/src/services/module-loading/page-module-import.service.js +232 -206
  481. package/src/services/module-loading/route-module-build-cache-registry.d.ts +2 -0
  482. package/src/services/module-loading/route-module-build-cache-registry.js +59 -33
  483. package/src/services/module-loading/route-module-build-cache.js +3 -38
  484. package/src/services/module-loading/route-module-build-cache.store.d.ts +10 -0
  485. package/src/services/module-loading/route-module-build-cache.store.js +213 -196
  486. package/src/services/module-loading/route-module-build-manifest.d.ts +10 -14
  487. package/src/services/module-loading/route-module-build-manifest.js +54 -118
  488. package/src/services/module-loading/route-module-dependency-hasher.d.ts +2 -2
  489. package/src/services/module-loading/route-module-dependency-hasher.js +136 -109
  490. package/src/services/module-loading/server-module-transpiler.service.d.ts +1 -3
  491. package/src/services/module-loading/server-module-transpiler.service.js +65 -62
  492. package/src/services/module-loading/source-module-support.js +15 -7
  493. package/src/services/runtime-state/dev-graph.service.js +165 -157
  494. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
  495. package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
  496. package/src/services/validation/schema-validation-service.d.ts +1 -4
  497. package/src/services/validation/schema-validation-service.js +156 -95
  498. package/src/services/validation/standard-schema.types.d.ts +9 -62
  499. package/src/services/validation/standard-schema.types.js +1 -0
  500. package/src/services/validation/validate-standard-schema.d.ts +7 -0
  501. package/src/services/validation/validate-standard-schema.js +14 -0
  502. package/src/static-site-generator/README.md +10 -2
  503. package/src/static-site-generator/production-page-browser-graph-prebuild.d.ts +32 -0
  504. package/src/static-site-generator/production-page-browser-graph-prebuild.js +57 -0
  505. package/src/static-site-generator/sitemap-routes.d.ts +14 -0
  506. package/src/static-site-generator/sitemap-routes.js +36 -0
  507. package/src/static-site-generator/sitemap.d.ts +15 -0
  508. package/src/static-site-generator/sitemap.js +42 -0
  509. package/src/static-site-generator/static-build-invalidation.d.ts +2 -2
  510. package/src/static-site-generator/static-build-invalidation.js +33 -74
  511. package/src/static-site-generator/static-export-context.d.ts +9 -1
  512. package/src/static-site-generator/static-export-context.js +1 -0
  513. package/src/static-site-generator/static-site-generator.d.ts +27 -6
  514. package/src/static-site-generator/static-site-generator.js +528 -389
  515. package/src/types/internal-types.d.ts +55 -17
  516. package/src/types/internal-types.js +1 -0
  517. package/src/types/public-types.d.ts +236 -95
  518. package/src/types/public-types.js +1 -0
  519. package/src/utils/deep-merge.js +39 -26
  520. package/src/utils/ecopages-route-info.d.ts +26 -0
  521. package/src/utils/ecopages-route-info.js +30 -0
  522. package/src/utils/hash.js +3 -6
  523. package/src/utils/html-escaping.d.ts +7 -0
  524. package/src/utils/html-escaping.js +22 -5
  525. package/src/utils/invariant.js +11 -10
  526. package/src/utils/locals-utils.js +32 -22
  527. package/src/utils/parse-cli-args.d.ts +1 -0
  528. package/src/utils/parse-cli-args.js +73 -62
  529. package/src/utils/path-pattern.d.ts +23 -0
  530. package/src/utils/path-pattern.js +42 -0
  531. package/src/utils/path-utils.module.js +8 -11
  532. package/src/utils/resolve-entry-file.js +70 -38
  533. package/src/utils/resolve-work-dir.js +23 -27
  534. package/src/utils/runtime.js +24 -33
  535. package/src/utils/server-utils.module.d.ts +3 -2
  536. package/src/utils/server-utils.module.js +60 -53
  537. package/src/utils/static-file-extensions.d.ts +12 -0
  538. package/src/utils/static-file-extensions.js +54 -0
  539. package/src/watchers/project-watcher-ignore.d.ts +11 -0
  540. package/src/watchers/project-watcher-ignore.js +17 -0
  541. package/src/watchers/project-watcher.d.ts +21 -6
  542. package/src/watchers/project-watcher.js +402 -277
  543. package/src/watchers/project-watcher.test-helpers.js +45 -50
  544. package/src/adapters/shared/api-response.js +0 -96
  545. package/src/adapters/shared/application-adapter.js +0 -90
  546. package/src/adapters/shared/bun-user-websocket-lifecycle.js +0 -102
  547. package/src/adapters/shared/copy-runtime-public-dir.js +0 -24
  548. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  549. package/src/adapters/shared/define-api-handler.js +0 -15
  550. package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
  551. package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
  552. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
  553. package/src/adapters/shared/fs-server-response-factory.js +0 -81
  554. package/src/adapters/shared/fs-server-response-matcher.js +0 -186
  555. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  556. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  557. package/src/adapters/shared/hmr-html-response.js +0 -33
  558. package/src/adapters/shared/node-http-websocket-upgrades.js +0 -125
  559. package/src/adapters/shared/render-context.js +0 -93
  560. package/src/adapters/shared/runtime-app-bootstrap.js +0 -41
  561. package/src/adapters/shared/runtime-host.js +0 -0
  562. package/src/adapters/shared/server-adapter.js +0 -436
  563. package/src/adapters/shared/server-route-handler.js +0 -111
  564. package/src/adapters/shared/server-static-builder.js +0 -202
  565. package/src/adapters/shared/shared-hmr-manager.d.ts +0 -61
  566. package/src/adapters/shared/shared-hmr-manager.js +0 -273
  567. package/src/adapters/shared/static-preview-host.js +0 -0
  568. package/src/adapters/shared/websocket-lifecycle.d.ts +0 -3
  569. package/src/adapters/shared/websocket-lifecycle.js +0 -19
  570. package/src/build/browser-runtime-manifest.js +0 -61
  571. package/src/build/browser-runtime-plugin-helpers.js +0 -14
  572. package/src/build/browser-runtime-plugin.js +0 -173
  573. package/src/build/build-input-fingerprint.js +0 -31
  574. package/src/build/build-manifest.d.ts +0 -33
  575. package/src/build/build-manifest.js +0 -49
  576. package/src/build/build-types.js +0 -0
  577. package/src/build/jsx-ownership-plugins.d.ts +0 -10
  578. package/src/build/jsx-ownership-plugins.js +0 -17
  579. package/src/build/pages-unified-graph-build.js +0 -208
  580. package/src/build/parallel-build-executor.js +0 -52
  581. package/src/build/rolldown-adapter-helpers.js +0 -310
  582. package/src/build/rolldown-build-adapter.js +0 -67
  583. package/src/build/rolldown-build-invocation-metrics.js +0 -43
  584. package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
  585. package/src/build/rolldown-dev-build-adapter.js +0 -182
  586. package/src/build/rolldown-plugin-bridge.js +0 -211
  587. package/src/build/rolldown-source-transform-pass.js +0 -58
  588. package/src/build/runtime-build-executor.d.ts +0 -15
  589. package/src/build/runtime-build-executor.js +0 -43
  590. package/src/build/runtime-build-output-normalizer.js +0 -203
  591. package/src/build/serialized-build-executor.js +0 -63
  592. package/src/build/server-entry-build-cache.js +0 -169
  593. package/src/build/server-side-css-shim-plugin.js +0 -35
  594. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  595. package/src/hmr/hmr.test.e2e.js +0 -54
  596. package/src/integrations/ghtml/ghtml-renderer.js +0 -57
  597. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  598. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  599. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  600. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  601. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  602. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
  603. package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
  604. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -231
  605. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
  606. package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
  607. package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
  608. package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
  609. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
  610. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
  611. package/src/route-renderer/orchestration/render-output.utils.js +0 -175
  612. package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -578
  613. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  614. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  615. package/src/utils/html.d.ts +0 -1
  616. package/src/utils/html.js +0 -4
  617. /package/src/adapters/{shared → bun}/bun-user-websocket-lifecycle.d.ts +0 -0
  618. /package/src/adapters/shared/{copy-runtime-public-dir.d.ts → runtime/copy-runtime-public-dir.d.ts} +0 -0
  619. /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
  620. /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
  621. /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
  622. /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
  623. /package/src/build/{runtime-build-output-normalizer.d.ts → rolldown/runtime-build-output-normalizer.d.ts} +0 -0
  624. /package/src/build/{server-side-css-shim-plugin.d.ts → rolldown/server-side-css-shim-plugin.d.ts} +0 -0
@@ -1,285 +1,352 @@
1
- import path from "node:path";
2
- import { RESOLVED_ASSETS_DIR } from "../../../config/constants.js";
3
- import { appLogger } from "../../../global/app-logger.js";
4
- import { fileSystem } from "@ecopages/file-system";
5
- import { deduplicateAssetDependencies, getAssetDependencyKey } from "./asset-dependency-keys.js";
6
- import {
7
- partitionGroupedContentScriptDependencies,
8
- processGroupedDependencyBundles
9
- } from "./grouped-content-bundles.js";
10
- import { isHmrAware } from "./processor.interface.js";
11
- import { ProcessorRegistry } from "./processor.registry.js";
12
- import { processUngroupedDependency } from "./ungrouped-dependency-processing.js";
13
- import {
14
- ContentScriptProcessor,
15
- ContentStylesheetProcessor,
16
- FileScriptProcessor,
17
- FileStylesheetProcessor,
18
- NodeModuleScriptProcessor
19
- } from "./processors/index.js";
20
- class AssetProcessingService {
21
- static RESOLVED_ASSETS_DIR = RESOLVED_ASSETS_DIR;
22
- registry = new ProcessorRegistry();
23
- hmrManager;
24
- cache = /* @__PURE__ */ new Map();
25
- config;
26
- /**
27
- * Creates the asset-processing service bound to one finalized app config.
28
- */
29
- constructor(config) {
30
- this.config = config;
31
- }
32
- /**
33
- * Set the HMR manager for the asset processing service.
34
- * @param hmrManager The HMR manager to set.
35
- */
36
- setHmrManager(hmrManager) {
37
- this.hmrManager = hmrManager;
38
- for (const processor of this.registry.getAllProcessors().values()) {
39
- if (isHmrAware(processor)) {
40
- processor.setHmrManager(hmrManager);
41
- }
1
+ import path from 'node:path';
2
+ import { RESOLVED_ASSETS_DIR } from '../../../config/constants.js';
3
+ import { appLogger } from '../../../global/app-logger.js';
4
+ import { fileSystem } from '@ecopages/file-system';
5
+ import { deduplicateAssetDependencies, getAssetDependencyKey } from './asset-dependency-keys.js';
6
+ import { ensureGroupedContentScriptsBundle, partitionGroupedContentScriptDependencies, processGroupedDependencyBundles, } from './grouped-content-bundles.js';
7
+ import { resolveIntegrationPluginForProcessingKey } from './resolve-integration-plugin.js';
8
+ import { isHmrAware } from './processor.interface.js';
9
+ import { ProcessorRegistry } from './processor.registry.js';
10
+ import { processUngroupedDependency } from './ungrouped-dependency-processing.js';
11
+ import { materializeContentScriptAsset } from './materialize-content-script-asset.js';
12
+ import { bumpBrowserRuntimeAssetGeneration } from '../browser-runtime-asset-generation.js';
13
+ import { ContentScriptProcessor, ContentStylesheetProcessor, FileScriptProcessor, FileStylesheetProcessor, NodeModuleScriptProcessor, } from './processors/index.js';
14
+ /**
15
+ * Processes declared component and page asset dependencies for one app instance.
16
+ *
17
+ * @remarks
18
+ * This service is the shared bridge between dependency declarations and emitted
19
+ * runtime-ready assets. It owns deduplication, processor dispatch, cache reuse,
20
+ * output URL normalization, and production gzip preparation so route rendering
21
+ * and HMR flows do not need to understand processor-specific behavior.
22
+ */
23
+ export class AssetProcessingService {
24
+ static RESOLVED_ASSETS_DIR = RESOLVED_ASSETS_DIR;
25
+ registry = new ProcessorRegistry();
26
+ hmrManager;
27
+ cache = new Map();
28
+ config;
29
+ /**
30
+ * Creates the asset-processing service bound to one finalized app config.
31
+ */
32
+ constructor(config) {
33
+ this.config = config;
42
34
  }
43
- }
44
- getHmrManager() {
45
- return this.hmrManager;
46
- }
47
- /**
48
- * Register a processor for a specific asset kind and source.
49
- * @param kind The asset kind.
50
- * @param variant The asset source.
51
- * @param processor The processor to register.
52
- */
53
- registerProcessor(kind, variant, processor) {
54
- if (this.hmrManager && isHmrAware(processor)) {
55
- processor.setHmrManager(this.hmrManager);
35
+ /**
36
+ * Set the HMR manager for the asset processing service.
37
+ * @param hmrManager The HMR manager to set.
38
+ */
39
+ setHmrManager(hmrManager) {
40
+ this.hmrManager = hmrManager;
41
+ for (const processor of this.registry.getAllProcessors().values()) {
42
+ if (isHmrAware(processor)) {
43
+ processor.setHmrManager(hmrManager);
44
+ }
45
+ }
46
+ }
47
+ getHmrManager() {
48
+ return this.hmrManager;
56
49
  }
57
- this.registry.register(kind, variant, processor);
58
- }
59
- /**
60
- * Processes one dependency list into normalized emitted assets.
61
- *
62
- * @remarks
63
- * Dependencies are deduplicated before processor execution so repeated
64
- * declarations across the render tree reuse the same emitted outputs and cache
65
- * entries.
66
- */
67
- async processDependencies(deps, key) {
68
- const depsDir = path.join(this.config.absolutePaths.distDir, RESOLVED_ASSETS_DIR);
69
- fileSystem.ensureDir(depsDir);
70
- const dedupedDeps = deduplicateAssetDependencies(deps);
71
- const results = await this.processDependenciesParallel(dedupedDeps, key);
72
- await this.optimizeDependencies(results);
73
- return results;
74
- }
75
- /**
76
- * Processes deduplicated dependencies grouped by processor type.
77
- *
78
- * @remarks
79
- * Grouping keeps cache and processor behavior isolated by asset kind/source
80
- * pair, while still allowing the overall dependency set to resolve in
81
- * parallel.
82
- */
83
- async processDependenciesParallel(deps, key) {
84
- const grouped = this.groupDependenciesByType(deps);
85
- const groupPromises = Object.entries(grouped).map(async ([, typeDeps]) => {
86
- const { groupedBundleDeps, ungroupedDeps } = partitionGroupedContentScriptDependencies(typeDeps);
87
- const typePromises = ungroupedDeps.map(
88
- (dep) => processUngroupedDependency({
89
- dep,
90
- key,
91
- depKey: getAssetDependencyKey(dep),
92
- getCachedAsset: (assetDep, depKey) => this.getCachedAsset(assetDep, depKey),
93
- getProcessor: (assetDep) => this.registry.getProcessor(assetDep.kind, assetDep.source),
94
- resolveProcessedAssetSrcUrl: (processed) => this.resolveProcessedAssetSrcUrl(processed),
95
- setCachedAsset: (assetDep, depKey, processed) => this.setCachedAsset(assetDep, depKey, processed),
96
- logMissingProcessor: (assetDep) => {
97
- appLogger.error(`No processor found for ${assetDep.kind}/${assetDep.source}`);
98
- },
99
- logMissingFile: (assetDep) => {
100
- appLogger.warn(`Skipping missing ${assetDep.kind} file: ${assetDep.filepath}`);
101
- },
102
- logProcessingError: (assetDep, error) => {
103
- appLogger.error(
104
- `Failed to process dependency: ${error instanceof Error ? error.message : String(error)} for ${assetDep.kind}/${assetDep.source}`
105
- );
106
- appLogger.debug(error);
107
- }
108
- })
109
- );
110
- const groupedResults = await processGroupedDependencyBundles({
111
- bundles: Array.from(groupedBundleDeps.values()),
112
- key,
113
- getCachedAsset: (dep, depKey) => this.getCachedAsset(dep, depKey),
114
- getDependencyKey: getAssetDependencyKey,
115
- getGroupedProcessor: () => this.registry.getProcessor("script", "content"),
116
- resolveProcessedAssetSrcUrl: (processed) => this.resolveProcessedAssetSrcUrl(processed),
117
- setCachedAsset: (dep, depKey, processed) => this.setCachedAsset(dep, depKey, processed),
118
- logError: (error) => {
119
- appLogger.error(
120
- `Failed to process grouped dependency bundle: ${error instanceof Error ? error.message : String(error)}`
121
- );
122
- appLogger.debug(error);
50
+ /**
51
+ * Register a processor for a specific asset kind and source.
52
+ * @param kind The asset kind.
53
+ * @param variant The asset source.
54
+ * @param processor The processor to register.
55
+ */
56
+ registerProcessor(kind, variant, processor) {
57
+ if (this.hmrManager && isHmrAware(processor)) {
58
+ processor.setHmrManager(this.hmrManager);
123
59
  }
124
- });
125
- const typeResults = await Promise.all(typePromises);
126
- const processedTypeResults = typeResults.flatMap((result) => {
127
- if (!result) {
128
- return [];
60
+ this.registry.register(kind, variant, processor);
61
+ }
62
+ /**
63
+ * Processes one dependency list into normalized emitted assets.
64
+ *
65
+ * @remarks
66
+ * Dependencies are deduplicated before processor execution so repeated
67
+ * declarations across the render tree reuse the same emitted outputs and cache
68
+ * entries. Returned asset order is unspecified — consumers must re-associate
69
+ * outputs with inputs via dependency metadata such as `groupedBundle`, not by
70
+ * array index alignment with the input list.
71
+ */
72
+ async processDependencies(deps, key) {
73
+ const depsDir = path.join(this.config.absolutePaths.distDir, RESOLVED_ASSETS_DIR);
74
+ fileSystem.ensureDir(depsDir);
75
+ const dedupedDeps = deduplicateAssetDependencies(deps);
76
+ const preparedDeps = this.prepareDependenciesForProcessing(dedupedDeps, key);
77
+ ensureGroupedContentScriptsBundle(preparedDeps);
78
+ const results = await this.processDependenciesParallel(preparedDeps);
79
+ await this.optimizeDependencies(results);
80
+ return results;
81
+ }
82
+ prepareDependenciesForProcessing(deps, processingKey) {
83
+ const plugin = resolveIntegrationPluginForProcessingKey(this.config, processingKey);
84
+ return plugin?.prepareAssetDependencies?.(deps) ?? deps;
85
+ }
86
+ /**
87
+ * Processes deduplicated dependencies grouped by processor type.
88
+ *
89
+ * @remarks
90
+ * Grouping keeps cache and processor behavior isolated by asset kind/source
91
+ * pair, while still allowing the overall dependency set to resolve in
92
+ * parallel.
93
+ */
94
+ async processDependenciesParallel(deps) {
95
+ const grouped = this.groupDependenciesByType(deps);
96
+ const groupPromises = Object.entries(grouped).map(async ([, typeDeps]) => {
97
+ const { groupedBundleDeps, ungroupedDeps } = partitionGroupedContentScriptDependencies(typeDeps);
98
+ const typePromises = ungroupedDeps.map((dep) => processUngroupedDependency({
99
+ dep,
100
+ depKey: getAssetDependencyKey(dep),
101
+ getCachedAsset: (assetDep, depKey) => this.getCachedAsset(assetDep, depKey),
102
+ getProcessor: (assetDep) => this.registry.getProcessor(assetDep.kind, assetDep.source),
103
+ resolveProcessedAssetSrcUrl: (processed) => this.resolveProcessedAssetSrcUrl(processed),
104
+ setCachedAsset: (assetDep, depKey, processed) => this.setCachedAsset(assetDep, depKey, processed),
105
+ logMissingProcessor: (assetDep) => {
106
+ appLogger.error(`No processor found for ${assetDep.kind}/${assetDep.source}`);
107
+ },
108
+ logMissingFile: (assetDep) => {
109
+ appLogger.warn(`Skipping missing ${assetDep.kind} file: ${assetDep.filepath}`);
110
+ },
111
+ logProcessingError: (assetDep, error) => {
112
+ appLogger.error(`Failed to process dependency: ${error instanceof Error ? error.message : String(error)} for ${assetDep.kind}/${assetDep.source}`);
113
+ appLogger.debug(error);
114
+ },
115
+ }));
116
+ const groupedResults = await processGroupedDependencyBundles({
117
+ bundles: Array.from(groupedBundleDeps.values()),
118
+ getCachedAsset: (dep, depKey) => this.getCachedAsset(dep, depKey),
119
+ getDependencyKey: getAssetDependencyKey,
120
+ getGroupedProcessor: () => this.registry.getProcessor('script', 'content'),
121
+ resolveProcessedAssetSrcUrl: (processed) => this.resolveProcessedAssetSrcUrl(processed),
122
+ setCachedAsset: (dep, depKey, processed) => this.setCachedAsset(dep, depKey, processed),
123
+ logError: (error) => {
124
+ appLogger.error(`Failed to process grouped dependency bundle: ${error instanceof Error ? error.message : String(error)}`);
125
+ appLogger.debug(error);
126
+ },
127
+ });
128
+ const typeResults = await Promise.all(typePromises);
129
+ const processedTypeResults = typeResults.flatMap((result) => {
130
+ if (!result) {
131
+ return [];
132
+ }
133
+ return Array.isArray(result) ? result : [result];
134
+ });
135
+ return [...processedTypeResults, ...groupedResults];
136
+ });
137
+ const allTypeResults = await Promise.all(groupPromises);
138
+ return allTypeResults.flat();
139
+ }
140
+ /**
141
+ * Groups dependencies by processor bucket.
142
+ */
143
+ groupDependenciesByType(deps) {
144
+ return deps.reduce((acc, dep) => {
145
+ const key = `${dep.kind}_${dep.source}`;
146
+ if (!acc[key])
147
+ acc[key] = [];
148
+ acc[key].push(dep);
149
+ return acc;
150
+ }, {});
151
+ }
152
+ /**
153
+ * Converts a dist-local file path into its public URL.
154
+ */
155
+ getSrcUrl(filepath) {
156
+ const distDir = this.config.absolutePaths.distDir;
157
+ if (!filepath.startsWith(distDir))
158
+ return undefined;
159
+ const relativePath = filepath.slice(distDir.length);
160
+ const urlPath = relativePath.startsWith('/') ? relativePath : `/${relativePath}`;
161
+ return urlPath.replace(/\\/g, '/');
162
+ }
163
+ /**
164
+ * Normalizes the public source URL for one processed asset.
165
+ */
166
+ resolveProcessedAssetSrcUrl(processed) {
167
+ if (processed.srcUrl) {
168
+ if (this.isFilesystemPath(processed.srcUrl)) {
169
+ const srcUrlFromPath = this.getSrcUrl(processed.srcUrl);
170
+ if (srcUrlFromPath)
171
+ return srcUrlFromPath;
172
+ }
173
+ else {
174
+ return processed.srcUrl;
175
+ }
129
176
  }
130
- return Array.isArray(result) ? result : [result];
131
- });
132
- return [...processedTypeResults, ...groupedResults];
133
- });
134
- const allTypeResults = await Promise.all(groupPromises);
135
- return allTypeResults.flat();
136
- }
137
- /**
138
- * Groups dependencies by processor bucket.
139
- */
140
- groupDependenciesByType(deps) {
141
- return deps.reduce(
142
- (acc, dep) => {
143
- const key = `${dep.kind}_${dep.source}`;
144
- if (!acc[key]) acc[key] = [];
145
- acc[key].push(dep);
146
- return acc;
147
- },
148
- {}
149
- );
150
- }
151
- /**
152
- * Converts a dist-local file path into its public URL.
153
- */
154
- getSrcUrl(filepath) {
155
- const distDir = this.config.absolutePaths.distDir;
156
- if (!filepath.startsWith(distDir)) return void 0;
157
- const relativePath = filepath.slice(distDir.length);
158
- const urlPath = relativePath.startsWith("/") ? relativePath : `/${relativePath}`;
159
- return urlPath.replace(/\\/g, "/");
160
- }
161
- /**
162
- * Normalizes the public source URL for one processed asset.
163
- */
164
- resolveProcessedAssetSrcUrl(processed) {
165
- if (processed.srcUrl) {
166
- if (this.isFilesystemPath(processed.srcUrl)) {
167
- const srcUrlFromPath = this.getSrcUrl(processed.srcUrl);
168
- if (srcUrlFromPath) return srcUrlFromPath;
169
- } else {
170
- return processed.srcUrl;
171
- }
177
+ if (processed.filepath) {
178
+ return this.getSrcUrl(processed.filepath);
179
+ }
180
+ return undefined;
172
181
  }
173
- if (processed.filepath) {
174
- return this.getSrcUrl(processed.filepath);
182
+ /**
183
+ * Returns whether a value should be interpreted as a filesystem path instead
184
+ * of an already-public URL.
185
+ */
186
+ isFilesystemPath(value) {
187
+ if (value.startsWith('http://') || value.startsWith('https://') || value.startsWith('//')) {
188
+ return false;
189
+ }
190
+ if (value.startsWith(this.config.absolutePaths.distDir)) {
191
+ return true;
192
+ }
193
+ const rootDir = this.config.rootDir;
194
+ if (rootDir && value.startsWith(rootDir)) {
195
+ return true;
196
+ }
197
+ return /^[A-Za-z]:\\/.test(value);
198
+ }
199
+ /**
200
+ * Applies post-processing for emitted production assets.
201
+ *
202
+ * @remarks
203
+ * Current optimization is intentionally conservative: only generated CSS and
204
+ * JavaScript files inside the app dist directory are gzipped.
205
+ */
206
+ async optimizeDependencies(processedAssets) {
207
+ if (process.env.NODE_ENV !== 'production') {
208
+ return;
209
+ }
210
+ const filesToGzip = new Set();
211
+ for (const asset of processedAssets) {
212
+ if (!asset.filepath) {
213
+ continue;
214
+ }
215
+ if (!asset.filepath.startsWith(this.config.absolutePaths.distDir)) {
216
+ continue;
217
+ }
218
+ const extension = path.extname(asset.filepath).slice(1);
219
+ if (extension === 'css' || extension === 'js') {
220
+ filesToGzip.add(asset.filepath);
221
+ }
222
+ }
223
+ for (const filePath of filesToGzip) {
224
+ if (fileSystem.exists(filePath)) {
225
+ fileSystem.gzipFile(filePath);
226
+ }
227
+ }
175
228
  }
176
- return void 0;
177
- }
178
- /**
179
- * Returns whether a value should be interpreted as a filesystem path instead
180
- * of an already-public URL.
181
- */
182
- isFilesystemPath(value) {
183
- if (value.startsWith("http://") || value.startsWith("https://") || value.startsWith("//")) {
184
- return false;
229
+ /**
230
+ * Returns the cached processed asset for a dependency key when available.
231
+ */
232
+ getCachedAsset(dep, depKey) {
233
+ if (dep.kind === 'script' && dep.source === 'content') {
234
+ return this.getCachedContentScriptAsset(dep, depKey);
235
+ }
236
+ const sourceHash = this.getFileSourceHash(dep);
237
+ if (dep.source === 'file' && sourceHash === undefined) {
238
+ this.invalidateCachedAsset(depKey);
239
+ return null;
240
+ }
241
+ const cached = this.cache.get(depKey);
242
+ if (!cached) {
243
+ return null;
244
+ }
245
+ if (cached.sourceHash !== sourceHash) {
246
+ this.invalidateCachedAsset(depKey);
247
+ return null;
248
+ }
249
+ if (cached.asset.filepath && !fileSystem.exists(cached.asset.filepath)) {
250
+ this.invalidateCachedAsset(depKey);
251
+ return null;
252
+ }
253
+ return cached.asset;
185
254
  }
186
- if (value.startsWith(this.config.absolutePaths.distDir)) {
187
- return true;
255
+ getCachedContentScriptAsset(dep, depKey) {
256
+ const filepath = this.resolveCachedContentScriptFilepath(depKey);
257
+ if (!filepath) {
258
+ return null;
259
+ }
260
+ const materialized = materializeContentScriptAsset(dep, filepath);
261
+ this.cache.set(depKey, { asset: materialized });
262
+ return materialized;
188
263
  }
189
- const rootDir = this.config.rootDir;
190
- if (rootDir && value.startsWith(rootDir)) {
191
- return true;
264
+ resolveCachedContentScriptFilepath(depKey) {
265
+ const cached = this.cache.get(depKey);
266
+ if (!cached?.asset.filepath) {
267
+ return undefined;
268
+ }
269
+ if (!fileSystem.exists(cached.asset.filepath)) {
270
+ this.cache.delete(depKey);
271
+ return undefined;
272
+ }
273
+ return cached.asset.filepath;
192
274
  }
193
- return /^[A-Za-z]:\\/.test(value);
194
- }
195
- /**
196
- * Applies post-processing for emitted production assets.
197
- *
198
- * @remarks
199
- * Current optimization is intentionally conservative: only generated CSS and
200
- * JavaScript files inside the app dist directory are gzipped.
201
- */
202
- async optimizeDependencies(processedAssets) {
203
- if (process.env.NODE_ENV !== "production") {
204
- return;
275
+ /**
276
+ * Stores one processed asset in the dependency cache.
277
+ */
278
+ setCachedAsset(dep, depKey, asset) {
279
+ const previous = this.cache.get(depKey)?.asset;
280
+ const tracksBrowserRuntimeGeneration = dep.packageRole === 'runtime' || dep.packageRole === 'page-script';
281
+ this.cache.set(depKey, {
282
+ asset,
283
+ sourceHash: this.getFileSourceHash(dep),
284
+ });
285
+ if (tracksBrowserRuntimeGeneration && previous !== undefined && previous.filepath !== asset.filepath) {
286
+ void bumpBrowserRuntimeAssetGeneration(this.config);
287
+ }
205
288
  }
206
- const filesToGzip = /* @__PURE__ */ new Set();
207
- for (const asset of processedAssets) {
208
- if (!asset.filepath) {
209
- continue;
210
- }
211
- if (!asset.filepath.startsWith(this.config.absolutePaths.distDir)) {
212
- continue;
213
- }
214
- const extension = path.extname(asset.filepath).slice(1);
215
- if (extension === "css" || extension === "js") {
216
- filesToGzip.add(asset.filepath);
217
- }
289
+ /**
290
+ * Removes a cached asset and advances the development HTML cache generation
291
+ * when the removed asset can determine browser runtime URLs.
292
+ */
293
+ invalidateCachedAsset(depKey) {
294
+ const cached = this.cache.get(depKey);
295
+ this.cache.delete(depKey);
296
+ if (cached?.asset.packageRole === 'runtime' || cached?.asset.packageRole === 'page-script') {
297
+ void bumpBrowserRuntimeAssetGeneration(this.config);
298
+ }
218
299
  }
219
- for (const filePath of filesToGzip) {
220
- if (fileSystem.exists(filePath)) {
221
- fileSystem.gzipFile(filePath);
222
- }
300
+ getFileSourceHash(dep) {
301
+ if (dep.source !== 'file' || !('filepath' in dep) || !fileSystem.exists(dep.filepath)) {
302
+ return undefined;
303
+ }
304
+ return fileSystem.hash(dep.filepath);
223
305
  }
224
- }
225
- /**
226
- * Returns the cached processed asset for a dependency key when available.
227
- */
228
- getCachedAsset(dep, depKey) {
229
- if (process.env.NODE_ENV !== "production" && dep.source === "file" && dep.kind === "stylesheet") {
230
- return null;
306
+ /**
307
+ * Clears all cached processed assets.
308
+ */
309
+ clearCache() {
310
+ const invalidatesBrowserRuntime = Array.from(this.cache.values()).some(({ asset }) => asset.packageRole === 'runtime' || asset.packageRole === 'page-script');
311
+ this.cache.clear();
312
+ if (invalidatesBrowserRuntime) {
313
+ void bumpBrowserRuntimeAssetGeneration(this.config);
314
+ }
231
315
  }
232
- const cached = this.cache.get(depKey);
233
- if (!cached) {
234
- return null;
316
+ /**
317
+ * Removes cached assets that were produced from the given file path.
318
+ */
319
+ invalidateCacheForFile(filepath) {
320
+ let invalidatesBrowserRuntime = false;
321
+ for (const [key, value] of this.cache.entries()) {
322
+ if (value.asset.filepath === filepath ||
323
+ value.asset.sourceFilepath === filepath ||
324
+ value.asset.bundledSourceFilepaths?.includes(filepath)) {
325
+ invalidatesBrowserRuntime ||=
326
+ value.asset.packageRole === 'runtime' || value.asset.packageRole === 'page-script';
327
+ this.cache.delete(key);
328
+ }
329
+ }
330
+ if (invalidatesBrowserRuntime) {
331
+ void bumpBrowserRuntimeAssetGeneration(this.config);
332
+ }
235
333
  }
236
- if (cached.asset.filepath && !fileSystem.exists(cached.asset.filepath)) {
237
- this.cache.delete(depKey);
238
- return null;
334
+ /**
335
+ * Creates a service prewired with the default core processors.
336
+ */
337
+ static createWithDefaultProcessors(appConfig) {
338
+ const service = new AssetProcessingService(appConfig);
339
+ service.registerProcessor('script', 'content', new ContentScriptProcessor({ appConfig }));
340
+ service.registerProcessor('script', 'file', new FileScriptProcessor({ appConfig }));
341
+ service.registerProcessor('script', 'node-module', new NodeModuleScriptProcessor({ appConfig }));
342
+ service.registerProcessor('stylesheet', 'content', new ContentStylesheetProcessor({ appConfig }));
343
+ service.registerProcessor('stylesheet', 'file', new FileStylesheetProcessor({ appConfig }));
344
+ return service;
239
345
  }
240
- return cached.asset;
241
- }
242
- /**
243
- * Stores one processed asset in the dependency cache.
244
- */
245
- setCachedAsset(dep, depKey, asset) {
246
- this.cache.set(depKey, { asset });
247
- }
248
- /**
249
- * Clears all cached processed assets.
250
- */
251
- clearCache() {
252
- this.cache.clear();
253
- }
254
- /**
255
- * Removes cached assets that were produced from the given file path.
256
- */
257
- invalidateCacheForFile(filepath) {
258
- for (const [key, value] of this.cache.entries()) {
259
- if (value.asset.filepath === filepath) {
260
- this.cache.delete(key);
261
- }
346
+ /**
347
+ * Returns the processor registry owned by this service.
348
+ */
349
+ getRegistry() {
350
+ return this.registry;
262
351
  }
263
- }
264
- /**
265
- * Creates a service prewired with the default core processors.
266
- */
267
- static createWithDefaultProcessors(appConfig) {
268
- const service = new AssetProcessingService(appConfig);
269
- service.registerProcessor("script", "content", new ContentScriptProcessor({ appConfig }));
270
- service.registerProcessor("script", "file", new FileScriptProcessor({ appConfig }));
271
- service.registerProcessor("script", "node-module", new NodeModuleScriptProcessor({ appConfig }));
272
- service.registerProcessor("stylesheet", "content", new ContentStylesheetProcessor({ appConfig }));
273
- service.registerProcessor("stylesheet", "file", new FileStylesheetProcessor({ appConfig }));
274
- return service;
275
- }
276
- /**
277
- * Returns the processor registry owned by this service.
278
- */
279
- getRegistry() {
280
- return this.registry;
281
- }
282
352
  }
283
- export {
284
- AssetProcessingService
285
- };