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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/README.md +42 -13
  2. package/package.json +361 -58
  3. package/src/adapters/README.md +6 -2
  4. package/src/adapters/abstract/application-adapter.d.ts +57 -5
  5. package/src/adapters/abstract/application-adapter.js +261 -203
  6. package/src/adapters/abstract/router-adapter.js +12 -4
  7. package/src/adapters/abstract/segment-path-matcher.d.ts +6 -0
  8. package/src/adapters/abstract/segment-path-matcher.js +147 -0
  9. package/src/adapters/abstract/server-adapter.d.ts +13 -2
  10. package/src/adapters/abstract/server-adapter.js +22 -14
  11. package/src/adapters/abstract/ws-pattern-matcher.d.ts +2 -50
  12. package/src/adapters/abstract/ws-pattern-matcher.js +24 -57
  13. package/src/adapters/bun/bun-user-websocket-lifecycle.js +93 -0
  14. package/src/adapters/bun/client-bridge.js +51 -50
  15. package/src/adapters/bun/create-app.d.ts +4 -6
  16. package/src/adapters/bun/create-app.js +169 -154
  17. package/src/adapters/bun/hmr-manager.d.ts +2 -3
  18. package/src/adapters/bun/hmr-manager.js +62 -57
  19. package/src/adapters/bun/index.d.ts +1 -1
  20. package/src/adapters/bun/index.js +2 -8
  21. package/src/adapters/bun/runtime-host.d.ts +1 -1
  22. package/src/adapters/bun/runtime-host.js +61 -54
  23. package/src/adapters/bun/server-adapter.d.ts +34 -53
  24. package/src/adapters/bun/server-adapter.js +557 -637
  25. package/src/adapters/bun/static-preview-host.d.ts +1 -1
  26. package/src/adapters/bun/static-preview-host.js +43 -41
  27. package/src/adapters/create-app.d.ts +1 -12
  28. package/src/adapters/create-app.js +11 -72
  29. package/src/adapters/index.d.ts +2 -2
  30. package/src/adapters/index.js +2 -8
  31. package/src/adapters/node/create-app.d.ts +4 -3
  32. package/src/adapters/node/create-app.js +123 -98
  33. package/src/adapters/node/http-request-bridge.js +147 -106
  34. package/src/adapters/node/node-client-bridge.js +62 -64
  35. package/src/adapters/node/node-hmr-manager.d.ts +2 -3
  36. package/src/adapters/node/node-hmr-manager.js +58 -48
  37. package/src/adapters/node/runtime-host.d.ts +1 -1
  38. package/src/adapters/node/runtime-host.js +96 -89
  39. package/src/adapters/node/server-adapter-dependencies.js +18 -17
  40. package/src/adapters/node/server-adapter.d.ts +28 -8
  41. package/src/adapters/node/server-adapter.js +349 -302
  42. package/src/adapters/node/static-content-server.js +172 -186
  43. package/src/adapters/node/static-preview-host.d.ts +1 -1
  44. package/src/adapters/node/static-preview-host.js +88 -64
  45. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.d.ts +16 -0
  46. package/src/adapters/shared/hmr/dev-transform-entrypoint-registry.js +32 -0
  47. package/src/adapters/shared/{hmr-html-response.d.ts → hmr/hmr-html-response.d.ts} +2 -2
  48. package/src/adapters/shared/hmr/hmr-html-response.js +50 -0
  49. package/src/adapters/shared/hmr/shared-hmr-manager.d.ts +92 -0
  50. package/src/adapters/shared/hmr/shared-hmr-manager.js +446 -0
  51. package/src/adapters/shared/http/api-request-pipeline.d.ts +23 -0
  52. package/src/adapters/shared/http/api-request-pipeline.js +132 -0
  53. package/src/adapters/shared/{api-response.d.ts → http/api-response.d.ts} +1 -1
  54. package/src/adapters/shared/http/api-response.js +79 -0
  55. package/src/adapters/shared/http/create-body-response.d.ts +12 -0
  56. package/src/adapters/shared/http/create-body-response.js +26 -0
  57. package/src/adapters/shared/http/define-api-handler.d.ts +90 -0
  58. package/src/adapters/shared/http/define-api-handler.js +49 -0
  59. package/src/adapters/shared/{explicit-static-render-preparation.d.ts → http/explicit-static-render-preparation.d.ts} +3 -3
  60. package/src/adapters/shared/http/explicit-static-render-preparation.js +29 -0
  61. package/src/adapters/shared/{explicit-static-route-matcher.d.ts → http/explicit-static-route-matcher.d.ts} +3 -9
  62. package/src/adapters/shared/http/explicit-static-route-matcher.js +59 -0
  63. package/src/adapters/shared/{file-route-middleware-pipeline.d.ts → http/file-route-middleware-pipeline.d.ts} +2 -2
  64. package/src/adapters/shared/http/file-route-middleware-pipeline.js +84 -0
  65. package/src/adapters/shared/{fs-server-response-factory.d.ts → http/fs-server-response-factory.d.ts} +7 -2
  66. package/src/adapters/shared/http/fs-server-response-factory.js +106 -0
  67. package/src/adapters/shared/{fs-server-response-matcher.d.ts → http/fs-server-response-matcher.d.ts} +25 -5
  68. package/src/adapters/shared/http/fs-server-response-matcher.js +260 -0
  69. package/src/adapters/shared/http/run-middleware-chain.d.ts +5 -0
  70. package/src/adapters/shared/http/run-middleware-chain.js +17 -0
  71. package/src/adapters/shared/{application-adapter.d.ts → runtime/application-adapter.d.ts} +2 -2
  72. package/src/adapters/shared/runtime/application-adapter.js +75 -0
  73. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.d.ts +11 -0
  74. package/src/adapters/shared/runtime/collect-dev-prewarm-plan.js +29 -0
  75. package/src/adapters/shared/runtime/copy-runtime-public-dir.js +27 -0
  76. package/src/adapters/shared/runtime/dev-static-route-prewarm.d.ts +16 -0
  77. package/src/adapters/shared/runtime/dev-static-route-prewarm.js +66 -0
  78. package/src/adapters/shared/runtime/port-manager.d.ts +116 -0
  79. package/src/adapters/shared/runtime/port-manager.js +226 -0
  80. package/src/adapters/shared/{render-context.d.ts → runtime/render-context.d.ts} +2 -2
  81. package/src/adapters/shared/runtime/render-context.js +99 -0
  82. package/src/adapters/shared/{runtime-app-bootstrap.d.ts → runtime/runtime-app-bootstrap.d.ts} +4 -2
  83. package/src/adapters/shared/runtime/runtime-app-bootstrap.js +38 -0
  84. package/src/adapters/shared/runtime/runtime-server-lifecycle.d.ts +45 -0
  85. package/src/adapters/shared/runtime/runtime-server-lifecycle.js +71 -0
  86. package/src/adapters/shared/{server-adapter.d.ts → runtime/server-adapter.d.ts} +31 -50
  87. package/src/adapters/shared/runtime/server-adapter.js +301 -0
  88. package/src/adapters/shared/{server-route-handler.d.ts → runtime/server-route-handler.d.ts} +6 -33
  89. package/src/adapters/shared/runtime/server-route-handler.js +77 -0
  90. package/src/adapters/shared/{server-static-builder.d.ts → runtime/server-static-builder.d.ts} +26 -31
  91. package/src/adapters/shared/runtime/server-static-builder.js +172 -0
  92. package/src/adapters/shared/{static-preview-host.d.ts → runtime/static-preview-host.d.ts} +6 -1
  93. package/src/adapters/shared/{node-http-websocket-upgrades.d.ts → ws/node-http-websocket-upgrades.d.ts} +1 -1
  94. package/src/adapters/shared/ws/node-http-websocket-upgrades.js +109 -0
  95. package/src/adapters/shared/ws/websocket-lifecycle.d.ts +24 -0
  96. package/src/adapters/shared/ws/websocket-lifecycle.js +62 -0
  97. package/src/build/README.md +165 -45
  98. package/src/build/app-build-manifest-runtime.d.ts +39 -0
  99. package/src/build/app-build-manifest-runtime.js +145 -0
  100. package/src/build/{browser-runtime-manifest.d.ts → browser/browser-runtime-manifest.d.ts} +4 -0
  101. package/src/build/browser/browser-runtime-manifest.js +65 -0
  102. package/src/build/{browser-runtime-plugin-helpers.d.ts → browser/browser-runtime-plugin-helpers.d.ts} +3 -5
  103. package/src/build/browser/browser-runtime-plugin-helpers.js +32 -0
  104. package/src/build/{browser-runtime-plugin.d.ts → browser/browser-runtime-plugin.d.ts} +12 -13
  105. package/src/build/browser/browser-runtime-plugin.js +218 -0
  106. package/src/build/browser/jsx-ownership-plugins.d.ts +24 -0
  107. package/src/build/browser/jsx-ownership-plugins.js +55 -0
  108. package/src/build/browser/lit-static-render-worker-context.d.ts +2 -0
  109. package/src/build/browser/lit-static-render-worker-context.js +4 -0
  110. package/src/build/build-adapter.d.ts +29 -340
  111. package/src/build/build-adapter.js +258 -260
  112. package/src/build/{build-input-fingerprint.d.ts → cache/build-input-fingerprint.d.ts} +3 -3
  113. package/src/build/cache/build-input-fingerprint.js +33 -0
  114. package/src/build/cache/cache-constants.d.ts +4 -0
  115. package/src/build/cache/cache-constants.js +4 -0
  116. package/src/build/cache/cache-keys.d.ts +22 -0
  117. package/src/build/cache/cache-keys.js +71 -0
  118. package/src/build/{pages-unified-graph-build.d.ts → cache/pages-unified-graph-build.d.ts} +1 -1
  119. package/src/build/cache/pages-unified-graph-build.js +199 -0
  120. package/src/build/cache/production-build-cache.d.ts +21 -0
  121. package/src/build/cache/production-build-cache.js +56 -0
  122. package/src/build/{server-entry-build-cache.d.ts → cache/server-entry-build-cache.d.ts} +3 -4
  123. package/src/build/cache/server-entry-build-cache.js +153 -0
  124. package/src/build/contracts/build-contracts.d.ts +96 -0
  125. package/src/build/contracts/build-contracts.js +1 -0
  126. package/src/build/contracts/build-manifest.d.ts +90 -0
  127. package/src/build/contracts/build-manifest.js +64 -0
  128. package/src/build/contracts/build-types.js +1 -0
  129. package/src/build/contracts/content-virtual-modules.d.ts +12 -0
  130. package/src/build/contracts/content-virtual-modules.js +29 -0
  131. package/src/build/{rolldown-adapter-helpers.d.ts → rolldown/rolldown-adapter-helpers.d.ts} +32 -9
  132. package/src/build/rolldown/rolldown-adapter-helpers.js +463 -0
  133. package/src/build/{rolldown-build-adapter.d.ts → rolldown/rolldown-build-adapter.d.ts} +3 -7
  134. package/src/build/rolldown/rolldown-build-adapter.js +57 -0
  135. package/src/build/{rolldown-build-invocation-metrics.d.ts → rolldown/rolldown-build-invocation-metrics.d.ts} +1 -1
  136. package/src/build/rolldown/rolldown-build-invocation-metrics.js +39 -0
  137. package/src/build/{rolldown-plugin-bridge.d.ts → rolldown/rolldown-plugin-bridge.d.ts} +16 -2
  138. package/src/build/rolldown/rolldown-plugin-bridge.js +284 -0
  139. package/src/build/rolldown/rolldown-source-transform-pass.d.ts +15 -0
  140. package/src/build/rolldown/rolldown-source-transform-pass.js +70 -0
  141. package/src/build/rolldown/runtime-build-output-normalizer.js +253 -0
  142. package/src/build/rolldown/server-side-css-shim-plugin.js +58 -0
  143. package/src/build/runtime/build-profile-options.d.ts +7 -0
  144. package/src/build/runtime/build-profile-options.js +37 -0
  145. package/src/build/runtime/build-request-identity.d.ts +17 -0
  146. package/src/build/runtime/build-request-identity.js +79 -0
  147. package/src/build/runtime/build-request-policy.d.ts +58 -0
  148. package/src/build/runtime/build-request-policy.js +84 -0
  149. package/src/build/runtime/build-runtime.d.ts +28 -0
  150. package/src/build/runtime/build-runtime.js +75 -0
  151. package/src/build/runtime/deduping-build-executor.d.ts +21 -0
  152. package/src/build/runtime/deduping-build-executor.js +40 -0
  153. package/src/build/{parallel-build-executor.d.ts → runtime/parallel-build-executor.d.ts} +1 -1
  154. package/src/build/runtime/parallel-build-executor.js +60 -0
  155. package/src/build/{serialized-build-executor.d.ts → runtime/serialized-build-executor.d.ts} +1 -1
  156. package/src/build/runtime/serialized-build-executor.js +79 -0
  157. package/src/cache/index.d.ts +2 -1
  158. package/src/cache/index.js +7 -6
  159. package/src/cache/module-parse-cache.d.ts +5 -0
  160. package/src/cache/module-parse-cache.js +122 -67
  161. package/src/cache/module-transform-profiler.d.ts +8 -0
  162. package/src/cache/module-transform-profiler.js +8 -0
  163. package/src/client/navigation-scripts/classification.d.ts +16 -0
  164. package/src/client/navigation-scripts/classification.js +49 -0
  165. package/src/client/navigation-scripts/index.d.ts +3 -0
  166. package/src/client/navigation-scripts/index.js +3 -0
  167. package/src/client/navigation-scripts/navigation-scripts.test.browser.d.ts +1 -0
  168. package/src/client/navigation-scripts/navigation-scripts.test.browser.js +61 -0
  169. package/src/client/navigation-scripts/registry.d.ts +11 -0
  170. package/src/client/navigation-scripts/registry.js +16 -0
  171. package/src/client/navigation-scripts/rerun-queue.d.ts +37 -0
  172. package/src/client/navigation-scripts/rerun-queue.js +90 -0
  173. package/src/client/scroll.d.ts +17 -0
  174. package/src/client/scroll.js +33 -0
  175. package/src/client/scroll.test.browser.d.ts +1 -0
  176. package/src/client/scroll.test.browser.js +31 -0
  177. package/src/client/view-transitions.d.ts +32 -0
  178. package/src/client/view-transitions.js +120 -0
  179. package/src/client/view-transitions.test.browser.d.ts +1 -0
  180. package/src/client/view-transitions.test.browser.js +56 -0
  181. package/src/config/README.md +1 -1
  182. package/src/config/config-builder.d.ts +42 -12
  183. package/src/config/config-builder.js +645 -600
  184. package/src/config/constants.d.ts +1 -0
  185. package/src/config/constants.js +44 -23
  186. package/src/declarations.d.ts +1 -0
  187. package/src/dev/README.md +24 -0
  188. package/src/dev/client-bridge-registry.d.ts +5 -0
  189. package/src/dev/client-bridge-registry.js +10 -0
  190. package/src/dev/dev-client-ownership.d.ts +7 -0
  191. package/src/dev/dev-client-ownership.js +8 -0
  192. package/src/dev/hmr-manager-registry.d.ts +8 -0
  193. package/src/dev/hmr-manager-registry.js +10 -0
  194. package/src/dev/host-runtime.d.ts +3 -0
  195. package/src/dev/host-runtime.js +25 -23
  196. package/src/dev/runtime-server-started-message.d.ts +2 -0
  197. package/src/dev/runtime-server-started-message.js +3 -0
  198. package/src/dev/sc-server.js +106 -103
  199. package/src/dev/transform-server/dev-transform-bundler.d.ts +24 -0
  200. package/src/dev/transform-server/dev-transform-bundler.js +79 -0
  201. package/src/dev/transform-server/dev-transform-externalize-plugin.d.ts +12 -0
  202. package/src/dev/transform-server/dev-transform-externalize-plugin.js +29 -0
  203. package/src/dev/transform-server/dev-transform-import-rewriter.d.ts +16 -0
  204. package/src/dev/transform-server/dev-transform-import-rewriter.js +127 -0
  205. package/src/dev/transform-server/dev-transform-module-kind.d.ts +13 -0
  206. package/src/dev/transform-server/dev-transform-module-kind.js +17 -0
  207. package/src/dev/transform-server/dev-transform-runtime-specifiers.d.ts +5 -0
  208. package/src/dev/transform-server/dev-transform-runtime-specifiers.js +16 -0
  209. package/src/dev/transform-server/dev-transform-server.d.ts +41 -0
  210. package/src/dev/transform-server/dev-transform-server.js +191 -0
  211. package/src/dev/transform-server/dev-transform-url.d.ts +13 -0
  212. package/src/dev/transform-server/dev-transform-url.js +58 -0
  213. package/src/dev/transform-server/dev-transform-vendor-registry.d.ts +28 -0
  214. package/src/dev/transform-server/dev-transform-vendor-registry.js +166 -0
  215. package/src/dev/transform-server/index.d.ts +6 -0
  216. package/src/dev/transform-server/index.js +4 -0
  217. package/src/dev/transform-server/types.d.ts +15 -0
  218. package/src/dev/transform-server/types.js +1 -0
  219. package/src/dev-toolbar/README.md +52 -0
  220. package/src/dev-toolbar/define-dev-tool.d.ts +21 -0
  221. package/src/dev-toolbar/define-dev-tool.js +9 -0
  222. package/src/dev-toolbar/dev-toolbar-config.d.ts +25 -0
  223. package/src/dev-toolbar/dev-toolbar-config.js +19 -0
  224. package/src/dev-toolbar/dev-toolbar-host.d.ts +49 -0
  225. package/src/dev-toolbar/dev-toolbar-host.js +117 -0
  226. package/src/dev-toolbar/dev-toolbar-html-response.d.ts +11 -0
  227. package/src/dev-toolbar/dev-toolbar-html-response.js +14 -0
  228. package/src/dev-toolbar/dev-toolbar-manifest-contract.d.ts +22 -0
  229. package/src/dev-toolbar/dev-toolbar-manifest-contract.js +2 -0
  230. package/src/dev-toolbar/dev-toolbar-manifest.d.ts +15 -0
  231. package/src/dev-toolbar/dev-toolbar-manifest.js +52 -0
  232. package/src/dev-toolbar/dev-toolbar-package.d.ts +34 -0
  233. package/src/dev-toolbar/dev-toolbar-package.js +78 -0
  234. package/src/dev-toolbar/dev-toolbar-runtime-paths.d.ts +10 -0
  235. package/src/dev-toolbar/dev-toolbar-runtime-paths.js +13 -0
  236. package/src/diagnostics/request-build-dedupe.d.ts +18 -0
  237. package/src/diagnostics/request-build-dedupe.js +39 -0
  238. package/src/diagnostics/request-pipeline-metrics.d.ts +38 -0
  239. package/src/diagnostics/request-pipeline-metrics.js +121 -0
  240. package/src/diagnostics/startup-trace.d.ts +81 -0
  241. package/src/diagnostics/startup-trace.js +281 -0
  242. package/src/eco/README.md +17 -0
  243. package/src/eco/component-identity.d.ts +13 -0
  244. package/src/eco/component-identity.js +18 -0
  245. package/src/eco/eco-declared-component.d.ts +15 -0
  246. package/src/eco/eco-declared-component.js +23 -0
  247. package/src/eco/eco.browser.js +63 -70
  248. package/src/eco/eco.js +163 -97
  249. package/src/eco/eco.types.d.ts +47 -8
  250. package/src/eco/eco.types.js +5 -0
  251. package/src/eco/eco.utils.d.ts +1 -1
  252. package/src/eco/eco.utils.js +1 -10
  253. package/src/eco/global-injector-map.js +55 -41
  254. package/src/eco/lazy-injector-map.js +90 -60
  255. package/src/eco/module-dependencies.js +52 -44
  256. package/src/eco/page-layout-normalization.d.ts +21 -0
  257. package/src/eco/page-layout-normalization.js +69 -0
  258. package/src/env.d.ts +2 -0
  259. package/src/errors/http-error.d.ts +8 -0
  260. package/src/errors/http-error.js +66 -49
  261. package/src/errors/index.d.ts +1 -0
  262. package/src/errors/index.js +3 -6
  263. package/src/errors/locals-access-error.js +5 -8
  264. package/src/errors/undeclared-component-dependency-error.d.ts +11 -0
  265. package/src/errors/undeclared-component-dependency-error.js +17 -0
  266. package/src/global/app-logger.js +3 -6
  267. package/src/hmr/README.md +21 -0
  268. package/src/hmr/client/hmr-runtime.js +119 -110
  269. package/src/hmr/client/module-update.d.ts +13 -0
  270. package/src/hmr/client/module-update.js +39 -0
  271. package/src/hmr/hmr-asset-paths.d.ts +14 -0
  272. package/src/hmr/hmr-asset-paths.js +22 -0
  273. package/src/hmr/hmr-entrypoint-output.d.ts +21 -0
  274. package/src/hmr/hmr-entrypoint-output.js +34 -0
  275. package/src/hmr/hmr-file-change-prep.d.ts +10 -0
  276. package/src/hmr/hmr-file-change-prep.js +14 -0
  277. package/src/hmr/hmr-registered-entrypoints-context.d.ts +7 -0
  278. package/src/hmr/hmr-registered-entrypoints-context.js +1 -0
  279. package/src/hmr/hmr-runtime-paths.d.ts +10 -0
  280. package/src/hmr/hmr-runtime-paths.js +13 -0
  281. package/src/hmr/hmr-strategy.d.ts +9 -0
  282. package/src/hmr/hmr-strategy.js +113 -42
  283. package/src/hmr/strategies/default-hmr-strategy.js +55 -33
  284. package/src/hmr/strategies/js-hmr-strategy.d.ts +6 -97
  285. package/src/hmr/strategies/js-hmr-strategy.js +107 -167
  286. package/src/hmr/strategies/server-rendered-template-hmr-strategy.d.ts +17 -0
  287. package/src/hmr/strategies/server-rendered-template-hmr-strategy.js +35 -0
  288. package/src/index.browser.d.ts +1 -0
  289. package/src/index.browser.js +2 -4
  290. package/src/index.d.ts +4 -1
  291. package/src/index.js +7 -21
  292. package/src/islands/README.md +25 -0
  293. package/src/islands/island-host.d.ts +37 -0
  294. package/src/islands/island-host.js +55 -0
  295. package/src/plugins/README.md +2 -1
  296. package/src/plugins/alias-resolver-cache.d.ts +6 -9
  297. package/src/plugins/alias-resolver-cache.js +114 -97
  298. package/src/plugins/alias-resolver-plugin.d.ts +3 -3
  299. package/src/plugins/alias-resolver-plugin.js +35 -62
  300. package/src/plugins/define-integration.d.ts +26 -0
  301. package/src/plugins/define-integration.js +20 -0
  302. package/src/plugins/eco-component-meta-plugin.d.ts +6 -102
  303. package/src/plugins/eco-component-meta-plugin.js +123 -162
  304. package/src/plugins/foreign-jsx-override-plugin.d.ts +1 -1
  305. package/src/plugins/foreign-jsx-override-plugin.js +49 -37
  306. package/src/plugins/integration-plugin.d.ts +24 -6
  307. package/src/plugins/integration-plugin.js +212 -195
  308. package/src/plugins/jsx-import-source.utils.d.ts +8 -0
  309. package/src/plugins/jsx-import-source.utils.js +21 -0
  310. package/src/plugins/package-specifier.d.ts +12 -0
  311. package/src/plugins/package-specifier.js +33 -0
  312. package/src/plugins/processor.d.ts +66 -12
  313. package/src/plugins/processor.js +168 -137
  314. package/src/plugins/runtime-capability.js +1 -0
  315. package/src/plugins/source-transform.d.ts +32 -1
  316. package/src/plugins/source-transform.js +112 -60
  317. package/src/plugins/tsconfig-import-resolver.d.ts +37 -0
  318. package/src/plugins/tsconfig-import-resolver.js +262 -0
  319. package/src/route-renderer/GRAPH.md +24 -30
  320. package/src/route-renderer/README.md +52 -32
  321. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.d.ts +107 -0
  322. package/src/route-renderer/orchestration/document-shell/document-shell-render.service.js +155 -0
  323. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.d.ts +20 -0
  324. package/src/route-renderer/orchestration/document-shell/layout-shell-props.service.js +37 -0
  325. package/src/route-renderer/orchestration/{component-render-context.d.ts → foreign-child/component-render-context.d.ts} +8 -15
  326. package/src/route-renderer/orchestration/foreign-child/component-render-context.js +196 -0
  327. package/src/route-renderer/orchestration/{render-output.utils.d.ts → foreign-child/foreign-child-output.utils.d.ts} +20 -7
  328. package/src/route-renderer/orchestration/foreign-child/foreign-child-output.utils.js +195 -0
  329. package/src/route-renderer/orchestration/{foreign-subtree-execution.service.d.ts → foreign-child/foreign-subtree-execution.service.d.ts} +64 -34
  330. package/src/route-renderer/orchestration/foreign-child/foreign-subtree-execution.service.js +354 -0
  331. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.d.ts +19 -0
  332. package/src/route-renderer/orchestration/foreign-child/owning-renderer-resolution.js +36 -0
  333. package/src/route-renderer/orchestration/integration-renderer.d.ts +37 -153
  334. package/src/route-renderer/orchestration/integration-renderer.js +803 -1008
  335. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.d.ts +75 -0
  336. package/src/route-renderer/orchestration/integration-renderer.test-fixtures.js +173 -0
  337. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.d.ts +10 -0
  338. package/src/route-renderer/orchestration/ownership-graph/component-graph-collectors.js +132 -0
  339. package/src/route-renderer/orchestration/ownership-graph/component-graph.d.ts +34 -0
  340. package/src/route-renderer/orchestration/ownership-graph/component-graph.js +89 -0
  341. package/src/route-renderer/orchestration/{ownership-validation.service.d.ts → ownership-graph/ownership-validation.service.d.ts} +6 -2
  342. package/src/route-renderer/orchestration/ownership-graph/ownership-validation.service.js +77 -0
  343. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.d.ts +7 -0
  344. package/src/route-renderer/orchestration/page-browser-graph/global-injector-assets.service.js +30 -0
  345. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.d.ts +15 -0
  346. package/src/route-renderer/orchestration/page-browser-graph/grouped-graph-build-plan.js +9 -0
  347. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.d.ts +5 -0
  348. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-contribution.merge.js +30 -0
  349. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.d.ts +12 -0
  350. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-merge.utils.js +32 -0
  351. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.d.ts +126 -0
  352. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph-session.js +542 -0
  353. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.d.ts +47 -0
  354. package/src/route-renderer/orchestration/page-browser-graph/page-browser-graph.service.js +248 -0
  355. package/src/route-renderer/orchestration/{processed-asset-dedupe.d.ts → page-browser-graph/processed-asset-dedupe.d.ts} +1 -1
  356. package/src/route-renderer/orchestration/page-browser-graph/processed-asset-dedupe.js +23 -0
  357. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.d.ts +29 -0
  358. package/src/route-renderer/orchestration/page-browser-graph/route-instance-key.js +54 -0
  359. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.d.ts +38 -0
  360. package/src/route-renderer/orchestration/route-pipeline/integration-route-render-adapter.js +26 -0
  361. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.d.ts +6 -0
  362. package/src/route-renderer/orchestration/route-pipeline/marker-artifact.utils.js +25 -0
  363. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.d.ts +15 -0
  364. package/src/route-renderer/orchestration/route-pipeline/robots-meta.contribution.js +43 -0
  365. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.d.ts +25 -0
  366. package/src/route-renderer/orchestration/route-pipeline/route-html-finalization.service.js +44 -0
  367. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.d.ts +26 -0
  368. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.builder.js +44 -0
  369. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.d.ts +4 -0
  370. package/src/route-renderer/orchestration/route-pipeline/route-prepared-options.utils.js +30 -0
  371. package/src/route-renderer/orchestration/{route-render-orchestrator.d.ts → route-pipeline/route-render-orchestrator.d.ts} +24 -54
  372. package/src/route-renderer/orchestration/route-pipeline/route-render-orchestrator.js +215 -0
  373. package/src/{integrations/ghtml/ghtml-renderer.d.ts → route-renderer/orchestration/string-markup-renderer.d.ts} +8 -10
  374. package/src/route-renderer/orchestration/string-markup-renderer.js +52 -0
  375. package/src/route-renderer/page-loading/component-dependency-collection.js +121 -121
  376. package/src/route-renderer/page-loading/declared-asset-collection.js +66 -94
  377. package/src/route-renderer/page-loading/dependency-resolver.js +101 -104
  378. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +1 -0
  379. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +64 -51
  380. package/src/route-renderer/page-loading/file-scoped-dependency-components.d.ts +42 -0
  381. package/src/route-renderer/page-loading/file-scoped-dependency-components.js +94 -0
  382. package/src/route-renderer/page-loading/lazy-entry-collection.js +75 -98
  383. package/src/route-renderer/page-loading/lazy-trigger-planning.js +47 -36
  384. package/src/route-renderer/page-loading/module-declaration-aggregation.js +39 -28
  385. package/src/route-renderer/page-loading/module-declaration-scripts.js +10 -15
  386. package/src/route-renderer/page-loading/page-dependency-bundling.js +156 -113
  387. package/src/route-renderer/page-loading/page-module-loader.d.ts +2 -1
  388. package/src/route-renderer/page-loading/page-module-loader.js +136 -124
  389. package/src/route-renderer/page-loading/resolved-page-dependencies.d.ts +12 -0
  390. package/src/route-renderer/page-loading/resolved-page-dependencies.js +38 -0
  391. package/src/route-renderer/route-renderer.js +74 -76
  392. package/src/router/README.md +31 -0
  393. package/src/router/client/link-intent.d.ts +11 -21
  394. package/src/router/client/link-intent.js +56 -30
  395. package/src/router/client/link-intent.test.browser.js +50 -39
  396. package/src/router/client/link-navigation-policy.d.ts +45 -0
  397. package/src/router/client/link-navigation-policy.js +122 -0
  398. package/src/router/client/link-navigation-policy.test.browser.d.ts +1 -0
  399. package/src/router/client/link-navigation-policy.test.browser.js +82 -0
  400. package/src/router/client/navigation-coordinator.d.ts +1 -1
  401. package/src/router/client/navigation-coordinator.js +235 -211
  402. package/src/router/client/navigation-lifecycle.d.ts +55 -0
  403. package/src/router/client/navigation-lifecycle.js +50 -0
  404. package/src/router/client/navigation-lifecycle.test.browser.d.ts +1 -0
  405. package/src/router/client/navigation-lifecycle.test.browser.js +118 -0
  406. package/src/router/server/route-registry.js +237 -242
  407. package/src/services/README.md +5 -0
  408. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +13 -0
  409. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +64 -50
  410. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +12 -1
  411. package/src/services/assets/asset-processing-service/asset-processing.service.js +335 -268
  412. package/src/services/assets/asset-processing-service/asset.factory.js +78 -81
  413. package/src/services/assets/asset-processing-service/assets.types.d.ts +1 -1
  414. package/src/services/assets/asset-processing-service/assets.types.js +1 -0
  415. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +1 -1
  416. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +57 -46
  417. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.d.ts +52 -0
  418. package/src/services/assets/asset-processing-service/browser-runtime-entry-resolution.js +115 -0
  419. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +53 -58
  420. package/src/services/assets/asset-processing-service/finalize-processed-asset.d.ts +3 -0
  421. package/src/services/assets/asset-processing-service/finalize-processed-asset.js +5 -0
  422. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +2 -1
  423. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +85 -60
  424. package/src/services/assets/asset-processing-service/index.d.ts +2 -0
  425. package/src/services/assets/asset-processing-service/index.js +8 -6
  426. package/src/services/assets/asset-processing-service/inline-content-script-body.d.ts +11 -0
  427. package/src/services/assets/asset-processing-service/inline-content-script-body.js +23 -0
  428. package/src/services/assets/asset-processing-service/materialize-content-script-asset.d.ts +9 -0
  429. package/src/services/assets/asset-processing-service/materialize-content-script-asset.js +22 -0
  430. package/src/services/assets/asset-processing-service/page-package.js +70 -72
  431. package/src/services/assets/asset-processing-service/processor.interface.js +7 -5
  432. package/src/services/assets/asset-processing-service/processor.registry.js +11 -14
  433. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +59 -62
  434. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -2
  435. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +102 -130
  436. package/src/services/assets/asset-processing-service/processors/index.js +5 -5
  437. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +8 -0
  438. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +111 -111
  439. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -1
  440. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +95 -94
  441. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +136 -135
  442. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -3
  443. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +26 -57
  444. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -3
  445. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +33 -67
  446. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.d.ts +2 -0
  447. package/src/services/assets/asset-processing-service/processors/stylesheet/stylesheet-processor-pipeline.js +44 -0
  448. package/src/services/assets/asset-processing-service/resolve-integration-plugin.d.ts +4 -0
  449. package/src/services/assets/asset-processing-service/resolve-integration-plugin.js +15 -0
  450. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -1
  451. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +27 -44
  452. package/src/services/assets/browser-bundle.service.d.ts +27 -30
  453. package/src/services/assets/browser-bundle.service.js +54 -46
  454. package/src/services/assets/browser-runtime-asset-generation.d.ts +17 -0
  455. package/src/services/assets/browser-runtime-asset-generation.js +28 -0
  456. package/src/services/cache/cache.types.d.ts +4 -2
  457. package/src/services/cache/cache.types.js +5 -0
  458. package/src/services/cache/html-page-cache-dependency-index.d.ts +34 -0
  459. package/src/services/cache/html-page-cache-dependency-index.js +88 -0
  460. package/src/services/cache/index.d.ts +2 -0
  461. package/src/services/cache/index.js +8 -7
  462. package/src/services/cache/memory-cache-store.js +101 -89
  463. package/src/services/cache/page-cache-service.d.ts +31 -1
  464. package/src/services/cache/page-cache-service.js +237 -150
  465. package/src/services/cache/page-request-cache-coordinator.service.d.ts +2 -1
  466. package/src/services/cache/page-request-cache-coordinator.service.js +112 -102
  467. package/src/services/html/html-rewriter-provider.service.js +61 -61
  468. package/src/services/html/html-transformer.service.js +249 -266
  469. package/src/services/invalidation/development-invalidation.service.d.ts +15 -1
  470. package/src/services/invalidation/development-invalidation.service.js +241 -204
  471. package/src/services/module-loading/README.md +9 -6
  472. package/src/services/module-loading/app-module-loader.service.js +1 -0
  473. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +8 -0
  474. package/src/services/module-loading/app-server-module-transpiler.service.js +104 -106
  475. package/src/services/module-loading/collection-server-module-build.service.d.ts +19 -0
  476. package/src/services/module-loading/collection-server-module-build.service.js +83 -0
  477. package/src/services/module-loading/host-module-loader-registry.js +6 -11
  478. package/src/services/module-loading/module-loading-types.js +1 -0
  479. package/src/services/module-loading/page-module-import.service.d.ts +7 -12
  480. package/src/services/module-loading/page-module-import.service.js +232 -206
  481. package/src/services/module-loading/route-module-build-cache-registry.d.ts +2 -0
  482. package/src/services/module-loading/route-module-build-cache-registry.js +59 -33
  483. package/src/services/module-loading/route-module-build-cache.js +3 -38
  484. package/src/services/module-loading/route-module-build-cache.store.d.ts +10 -0
  485. package/src/services/module-loading/route-module-build-cache.store.js +213 -196
  486. package/src/services/module-loading/route-module-build-manifest.d.ts +10 -14
  487. package/src/services/module-loading/route-module-build-manifest.js +54 -118
  488. package/src/services/module-loading/route-module-dependency-hasher.d.ts +2 -2
  489. package/src/services/module-loading/route-module-dependency-hasher.js +136 -109
  490. package/src/services/module-loading/server-module-transpiler.service.d.ts +1 -3
  491. package/src/services/module-loading/server-module-transpiler.service.js +65 -62
  492. package/src/services/module-loading/source-module-support.js +15 -7
  493. package/src/services/runtime-state/dev-graph.service.js +165 -157
  494. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -76
  495. package/src/services/runtime-state/server-invalidation-state.service.js +38 -30
  496. package/src/services/validation/schema-validation-service.d.ts +1 -4
  497. package/src/services/validation/schema-validation-service.js +156 -95
  498. package/src/services/validation/standard-schema.types.d.ts +9 -62
  499. package/src/services/validation/standard-schema.types.js +1 -0
  500. package/src/services/validation/validate-standard-schema.d.ts +7 -0
  501. package/src/services/validation/validate-standard-schema.js +14 -0
  502. package/src/static-site-generator/README.md +10 -2
  503. package/src/static-site-generator/production-page-browser-graph-prebuild.d.ts +32 -0
  504. package/src/static-site-generator/production-page-browser-graph-prebuild.js +57 -0
  505. package/src/static-site-generator/sitemap-routes.d.ts +14 -0
  506. package/src/static-site-generator/sitemap-routes.js +36 -0
  507. package/src/static-site-generator/sitemap.d.ts +15 -0
  508. package/src/static-site-generator/sitemap.js +42 -0
  509. package/src/static-site-generator/static-build-invalidation.d.ts +2 -2
  510. package/src/static-site-generator/static-build-invalidation.js +33 -74
  511. package/src/static-site-generator/static-export-context.d.ts +9 -1
  512. package/src/static-site-generator/static-export-context.js +1 -0
  513. package/src/static-site-generator/static-site-generator.d.ts +27 -6
  514. package/src/static-site-generator/static-site-generator.js +528 -389
  515. package/src/types/internal-types.d.ts +55 -17
  516. package/src/types/internal-types.js +1 -0
  517. package/src/types/public-types.d.ts +236 -95
  518. package/src/types/public-types.js +1 -0
  519. package/src/utils/deep-merge.js +39 -26
  520. package/src/utils/ecopages-route-info.d.ts +26 -0
  521. package/src/utils/ecopages-route-info.js +30 -0
  522. package/src/utils/hash.js +3 -6
  523. package/src/utils/html-escaping.d.ts +7 -0
  524. package/src/utils/html-escaping.js +22 -5
  525. package/src/utils/invariant.js +11 -10
  526. package/src/utils/locals-utils.js +32 -22
  527. package/src/utils/parse-cli-args.d.ts +1 -0
  528. package/src/utils/parse-cli-args.js +73 -62
  529. package/src/utils/path-pattern.d.ts +23 -0
  530. package/src/utils/path-pattern.js +42 -0
  531. package/src/utils/path-utils.module.js +8 -11
  532. package/src/utils/resolve-entry-file.js +70 -38
  533. package/src/utils/resolve-work-dir.js +23 -27
  534. package/src/utils/runtime.js +24 -33
  535. package/src/utils/server-utils.module.d.ts +3 -2
  536. package/src/utils/server-utils.module.js +60 -53
  537. package/src/utils/static-file-extensions.d.ts +12 -0
  538. package/src/utils/static-file-extensions.js +54 -0
  539. package/src/watchers/project-watcher-ignore.d.ts +11 -0
  540. package/src/watchers/project-watcher-ignore.js +17 -0
  541. package/src/watchers/project-watcher.d.ts +21 -6
  542. package/src/watchers/project-watcher.js +402 -277
  543. package/src/watchers/project-watcher.test-helpers.js +45 -50
  544. package/src/adapters/shared/api-response.js +0 -96
  545. package/src/adapters/shared/application-adapter.js +0 -90
  546. package/src/adapters/shared/bun-user-websocket-lifecycle.js +0 -102
  547. package/src/adapters/shared/copy-runtime-public-dir.js +0 -24
  548. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  549. package/src/adapters/shared/define-api-handler.js +0 -15
  550. package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
  551. package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
  552. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
  553. package/src/adapters/shared/fs-server-response-factory.js +0 -81
  554. package/src/adapters/shared/fs-server-response-matcher.js +0 -186
  555. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  556. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  557. package/src/adapters/shared/hmr-html-response.js +0 -33
  558. package/src/adapters/shared/node-http-websocket-upgrades.js +0 -125
  559. package/src/adapters/shared/render-context.js +0 -93
  560. package/src/adapters/shared/runtime-app-bootstrap.js +0 -41
  561. package/src/adapters/shared/runtime-host.js +0 -0
  562. package/src/adapters/shared/server-adapter.js +0 -436
  563. package/src/adapters/shared/server-route-handler.js +0 -111
  564. package/src/adapters/shared/server-static-builder.js +0 -202
  565. package/src/adapters/shared/shared-hmr-manager.d.ts +0 -61
  566. package/src/adapters/shared/shared-hmr-manager.js +0 -273
  567. package/src/adapters/shared/static-preview-host.js +0 -0
  568. package/src/adapters/shared/websocket-lifecycle.d.ts +0 -3
  569. package/src/adapters/shared/websocket-lifecycle.js +0 -19
  570. package/src/build/browser-runtime-manifest.js +0 -61
  571. package/src/build/browser-runtime-plugin-helpers.js +0 -14
  572. package/src/build/browser-runtime-plugin.js +0 -173
  573. package/src/build/build-input-fingerprint.js +0 -31
  574. package/src/build/build-manifest.d.ts +0 -33
  575. package/src/build/build-manifest.js +0 -49
  576. package/src/build/build-types.js +0 -0
  577. package/src/build/jsx-ownership-plugins.d.ts +0 -10
  578. package/src/build/jsx-ownership-plugins.js +0 -17
  579. package/src/build/pages-unified-graph-build.js +0 -208
  580. package/src/build/parallel-build-executor.js +0 -52
  581. package/src/build/rolldown-adapter-helpers.js +0 -309
  582. package/src/build/rolldown-build-adapter.js +0 -67
  583. package/src/build/rolldown-build-invocation-metrics.js +0 -43
  584. package/src/build/rolldown-dev-build-adapter.d.ts +0 -82
  585. package/src/build/rolldown-dev-build-adapter.js +0 -182
  586. package/src/build/rolldown-plugin-bridge.js +0 -199
  587. package/src/build/runtime-build-executor.d.ts +0 -15
  588. package/src/build/runtime-build-executor.js +0 -43
  589. package/src/build/runtime-build-output-normalizer.js +0 -203
  590. package/src/build/serialized-build-executor.js +0 -63
  591. package/src/build/server-entry-build-cache.js +0 -169
  592. package/src/build/server-side-css-shim-plugin.js +0 -35
  593. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  594. package/src/hmr/hmr.test.e2e.js +0 -54
  595. package/src/integrations/ghtml/ghtml-renderer.js +0 -57
  596. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  597. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  598. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  599. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  600. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  601. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
  602. package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
  603. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -231
  604. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
  605. package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
  606. package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
  607. package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
  608. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
  609. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
  610. package/src/route-renderer/orchestration/render-output.utils.js +0 -175
  611. package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -578
  612. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  613. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  614. package/src/utils/html.d.ts +0 -1
  615. package/src/utils/html.js +0 -4
  616. /package/src/adapters/{shared → bun}/bun-user-websocket-lifecycle.d.ts +0 -0
  617. /package/src/adapters/shared/{copy-runtime-public-dir.d.ts → runtime/copy-runtime-public-dir.d.ts} +0 -0
  618. /package/src/adapters/shared/{runtime-host.d.ts → runtime/runtime-host.d.ts} +0 -0
  619. /package/src/{hmr/hmr.postcss.test.e2e.d.ts → adapters/shared/runtime/runtime-host.js} +0 -0
  620. /package/src/{hmr/hmr.test.e2e.d.ts → adapters/shared/runtime/static-preview-host.js} +0 -0
  621. /package/src/build/{build-types.d.ts → contracts/build-types.d.ts} +0 -0
  622. /package/src/build/{runtime-build-output-normalizer.d.ts → rolldown/runtime-build-output-normalizer.d.ts} +0 -0
  623. /package/src/build/{server-side-css-shim-plugin.d.ts → rolldown/server-side-css-shim-plugin.d.ts} +0 -0
@@ -7,6 +7,7 @@
7
7
  */
8
8
  export declare const STATUS_MESSAGE: {
9
9
  404: string;
10
+ 500: string;
10
11
  };
11
12
  /**
12
13
  *Variables used to determine if the app is running on Bun
@@ -1,25 +1,46 @@
1
- const STATUS_MESSAGE = {
2
- 404: "404 Not Found"
1
+ /**
2
+ * This file contains constants used throughout the project.
3
+ * @module constants
4
+ **/
5
+ /**
6
+ * Collection of status messages used in the application.
7
+ */
8
+ export const STATUS_MESSAGE = {
9
+ 404: '404 Not Found',
10
+ 500: 'Internal Server Error',
3
11
  };
4
- const IS_BUN = typeof Bun !== "undefined";
5
- const RESOLVED_ASSETS_DIR = "assets";
6
- const RESOLVED_ASSETS_VENDORS_DIR = `${RESOLVED_ASSETS_DIR}/vendors`;
7
- const GENERATED_BASE_PATHS = {
8
- types: "node_modules/@types",
9
- cache: "cache"
10
- };
11
- const DEFAULT_ECOPAGES_PORT = 3e3;
12
- const DEFAULT_ECOPAGES_HOSTNAME = "localhost";
13
- const DEFAULT_ECOPAGES_DIST_DIR = "dist";
14
- const DEFAULT_ECOPAGES_WORK_DIR = ".eco";
15
- export {
16
- DEFAULT_ECOPAGES_DIST_DIR,
17
- DEFAULT_ECOPAGES_HOSTNAME,
18
- DEFAULT_ECOPAGES_PORT,
19
- DEFAULT_ECOPAGES_WORK_DIR,
20
- GENERATED_BASE_PATHS,
21
- IS_BUN,
22
- RESOLVED_ASSETS_DIR,
23
- RESOLVED_ASSETS_VENDORS_DIR,
24
- STATUS_MESSAGE
12
+ /**
13
+ *Variables used to determine if the app is running on Bun
14
+ */
15
+ export const IS_BUN = typeof Bun !== 'undefined';
16
+ /**
17
+ * Directory used for storing assets.
18
+ */
19
+ export const RESOLVED_ASSETS_DIR = 'assets';
20
+ /**
21
+ * Directory used for storing vendor assets.
22
+ * This is a subdirectory of the assets directory.
23
+ */
24
+ export const RESOLVED_ASSETS_VENDORS_DIR = `${RESOLVED_ASSETS_DIR}/vendors`;
25
+ /**
26
+ * Base paths for generated project files.
27
+ */
28
+ export const GENERATED_BASE_PATHS = {
29
+ types: 'node_modules/@types',
30
+ cache: 'cache',
25
31
  };
32
+ export const DEFAULT_ECOPAGES_PORT = 3000;
33
+ export const DEFAULT_ECOPAGES_HOSTNAME = 'localhost';
34
+ /**
35
+ * Default directory used for deployable output.
36
+ */
37
+ export const DEFAULT_ECOPAGES_DIST_DIR = 'dist';
38
+ /**
39
+ * Default internal working directory used for runtime-only artifacts.
40
+ *
41
+ * @remarks
42
+ * This directory is a local tool workspace and is not intended for deployment.
43
+ * It owns transpiled server modules, runtime manifests, and processor caches
44
+ * so the export directory can remain a clean deployable tree.
45
+ */
46
+ export const DEFAULT_ECOPAGES_WORK_DIR = '.eco';
@@ -15,6 +15,7 @@ type EcoPagesWindowRuntime = {
15
15
  cleanupPageRoot?: CleanupPageRootFunction;
16
16
  pageRoot?: EcoPageRoot | null;
17
17
  };
18
+ islandRoots?: Record<string, EcoPageRoot>;
18
19
  page?: EcoPageData;
19
20
  };
20
21
 
@@ -0,0 +1,24 @@
1
+ Development-only browser tooling is opt-in per application.
2
+
3
+ ## Dev toolbar
4
+
5
+ - `/_dev_toolbar.js` — browser bundle built by core from `devToolbar.package` (for example `@ecopages/dev-toolbar`)
6
+ - `#__ECO_DEV_MANIFEST__` — per-page dependency graph payload for the Deps panel
7
+
8
+ Public docs: [Dev toolbar](/docs/core/dev-toolbar) (built-in apps, manifest fields).
9
+
10
+ Configure in `eco.config.ts`:
11
+
12
+ ```ts
13
+ import { devToolbar } from '@ecopages/dev-toolbar/config';
14
+
15
+ .setDevToolbar(devToolbar())
16
+ ```
17
+
18
+ For a custom client package, use `defineDevTool` from `@ecopages/core/dev-toolbar/define-dev-tool`.
19
+
20
+ Install the client package in the app project. Core resolves it from the application root and bundles it during watch mode.
21
+
22
+ Disable per project with `devToolbar: { enabled: false }`, or per process with `ECOPAGES_DEV_TOOLBAR=false`.
23
+
24
+ Server wiring: [dev-toolbar/README.md](../dev-toolbar/README.md) (`DevToolbarHost`, manifest, runtime bundling, HTML injection). Bring-your-own toolbars export `src/bootstrap.ts` and use the same `devToolbar.package` config key.
@@ -0,0 +1,5 @@
1
+ import type { EcoPagesAppConfig } from '../types/public-types.js';
2
+ import type { IClientBridge } from '../types/public-types.js';
3
+ export declare function setAppDevClientBridge(appConfig: EcoPagesAppConfig, bridge: IClientBridge): void;
4
+ export declare function getAppDevClientBridge(appConfig: EcoPagesAppConfig): IClientBridge | undefined;
5
+ export declare function clearAppDevClientBridge(appConfig: EcoPagesAppConfig): void;
@@ -0,0 +1,10 @@
1
+ const appDevClientBridges = new WeakMap();
2
+ export function setAppDevClientBridge(appConfig, bridge) {
3
+ appDevClientBridges.set(appConfig, bridge);
4
+ }
5
+ export function getAppDevClientBridge(appConfig) {
6
+ return appDevClientBridges.get(appConfig);
7
+ }
8
+ export function clearAppDevClientBridge(appConfig) {
9
+ appDevClientBridges.delete(appConfig);
10
+ }
@@ -0,0 +1,7 @@
1
+ import type { ApplicationRuntimeOptions } from '../adapters/abstract/application-adapter.js';
2
+ /**
3
+ * Returns whether the host dev server owns all browser dev-client bootstrap.
4
+ *
5
+ * When true, core must not inject the HMR runtime or signal full-page reloads.
6
+ */
7
+ export declare function hostOwnsDevClient(runtime?: ApplicationRuntimeOptions): boolean;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Returns whether the host dev server owns all browser dev-client bootstrap.
3
+ *
4
+ * When true, core must not inject the HMR runtime or signal full-page reloads.
5
+ */
6
+ export function hostOwnsDevClient(runtime) {
7
+ return runtime?.devClientOwner === 'host';
8
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Per-app registry for the shared HMR manager used by host-owned dev clients.
3
+ */
4
+ import type { EcoPagesAppConfig } from '../types/public-types.js';
5
+ import type { IHmrManager } from '../types/public-types.js';
6
+ export declare function setAppHmrManager(appConfig: EcoPagesAppConfig, hmrManager: IHmrManager): void;
7
+ export declare function getAppHmrManager(appConfig: EcoPagesAppConfig): IHmrManager | undefined;
8
+ export declare function clearAppHmrManager(appConfig: EcoPagesAppConfig): void;
@@ -0,0 +1,10 @@
1
+ const appHmrManagers = new WeakMap();
2
+ export function setAppHmrManager(appConfig, hmrManager) {
3
+ appHmrManagers.set(appConfig, hmrManager);
4
+ }
5
+ export function getAppHmrManager(appConfig) {
6
+ return appHmrManagers.get(appConfig);
7
+ }
8
+ export function clearAppHmrManager(appConfig) {
9
+ appHmrManagers.delete(appConfig);
10
+ }
@@ -1,10 +1,13 @@
1
1
  import type { EcoPagesAppConfig } from '../types/public-types.js';
2
2
  import { type DevelopmentInvalidationPlan } from '../services/invalidation/development-invalidation.service.js';
3
+ import type { ClientBridgeEvent } from '../types/public-types.js';
3
4
  export type HostRuntimeModuleLoader = (id: string) => Promise<unknown>;
4
5
  export interface DevelopmentHostRuntime {
5
6
  registerHostModuleLoader(loader: HostRuntimeModuleLoader): void;
6
7
  planFileChange(filePath: string): DevelopmentInvalidationPlan;
7
8
  invalidateServerModules(changedFiles?: string[]): void;
8
9
  resetRuntimeState(changedFiles?: string[]): void;
10
+ broadcastClientEvent(event: ClientBridgeEvent): void;
11
+ isServerRenderedTemplatePlan(plan: DevelopmentInvalidationPlan): boolean;
9
12
  }
10
13
  export declare function createDevelopmentHostRuntime(appConfig: EcoPagesAppConfig): DevelopmentHostRuntime;
@@ -1,24 +1,26 @@
1
- import {
2
- DevelopmentInvalidationService
3
- } from "../services/invalidation/development-invalidation.service.js";
4
- import { setHostModuleLoader } from "../services/module-loading/host-module-loader-registry.js";
5
- function createDevelopmentHostRuntime(appConfig) {
6
- const invalidationService = new DevelopmentInvalidationService(appConfig);
7
- return {
8
- registerHostModuleLoader(loader) {
9
- setHostModuleLoader(loader);
10
- },
11
- planFileChange(filePath) {
12
- return invalidationService.planFileChange(filePath);
13
- },
14
- invalidateServerModules(changedFiles) {
15
- invalidationService.invalidateServerModules(changedFiles);
16
- },
17
- resetRuntimeState(changedFiles) {
18
- invalidationService.resetRuntimeState(changedFiles);
19
- }
20
- };
1
+ import { DevelopmentInvalidationService, } from '../services/invalidation/development-invalidation.service.js';
2
+ import { getAppDevClientBridge } from './client-bridge-registry.js';
3
+ import { setHostModuleLoader } from '../services/module-loading/host-module-loader-registry.js';
4
+ export function createDevelopmentHostRuntime(appConfig) {
5
+ const invalidationService = new DevelopmentInvalidationService(appConfig);
6
+ return {
7
+ registerHostModuleLoader(loader) {
8
+ setHostModuleLoader(loader);
9
+ },
10
+ planFileChange(filePath) {
11
+ return invalidationService.planFileChange(filePath);
12
+ },
13
+ invalidateServerModules(changedFiles) {
14
+ invalidationService.invalidateServerModules(changedFiles);
15
+ },
16
+ resetRuntimeState(changedFiles) {
17
+ invalidationService.resetRuntimeState(changedFiles);
18
+ },
19
+ broadcastClientEvent(event) {
20
+ getAppDevClientBridge(appConfig)?.broadcast(event);
21
+ },
22
+ isServerRenderedTemplatePlan(plan) {
23
+ return plan.category === 'include-source' || plan.category === 'explicit-server-view';
24
+ },
25
+ };
21
26
  }
22
- export {
23
- createDevelopmentHostRuntime
24
- };
@@ -0,0 +1,2 @@
1
+ export type EcopagesRuntimeLabel = 'Bun' | 'Node';
2
+ export declare function formatRuntimeServerStartedMessage(runtime: EcopagesRuntimeLabel, origin: string): string;
@@ -0,0 +1,3 @@
1
+ export function formatRuntimeServerStartedMessage(runtime, origin) {
2
+ return `${runtime} server running at ${origin.replace(/\/$/, '')}`;
3
+ }
@@ -1,111 +1,114 @@
1
- import { extname, join } from "node:path";
2
- import { STATUS_MESSAGE } from "../config/constants.js";
3
- import { fileSystem } from "@ecopages/file-system";
4
- import { ServerUtils } from "../utils/server-utils.module.js";
5
- import { getRequiredBunRuntime } from "../utils/runtime.js";
6
- class StaticContentServer {
7
- server = null;
8
- appConfig;
9
- options = { port: 3e3 };
10
- constructor({ appConfig, options }) {
11
- this.appConfig = appConfig;
12
- if (options) this.options = options;
13
- this.startServer();
14
- }
15
- shouldServeGzip(contentType) {
16
- return ["text/javascript", "text/css"].includes(contentType);
17
- }
18
- isHtml(contentType) {
19
- return contentType === "text/html";
20
- }
21
- async sendNotFoundPage() {
22
- const error404TemplatePath = `${this.appConfig.absolutePaths.distDir}/404.html`;
23
- try {
24
- fileSystem.exists(error404TemplatePath);
25
- } catch {
26
- return new Response(STATUS_MESSAGE[404], {
27
- status: 404
28
- });
1
+ import { extname, join } from 'node:path';
2
+ import { STATUS_MESSAGE } from '../config/constants.js';
3
+ import { fileSystem } from '@ecopages/file-system';
4
+ import { ServerUtils } from '../utils/server-utils.module.js';
5
+ import { getRequiredBunRuntime } from '../utils/runtime.js';
6
+ /**
7
+ * Static content server for production builds.
8
+ * Serves pre-built static files from the dist directory with gzip compression support.
9
+ */
10
+ export class StaticContentServer {
11
+ server = null;
12
+ appConfig;
13
+ options = { port: 3000 };
14
+ constructor({ appConfig, options }) {
15
+ this.appConfig = appConfig;
16
+ if (options)
17
+ this.options = options;
18
+ this.startServer();
29
19
  }
30
- const response = new Response(fileSystem.readFileAsBuffer(error404TemplatePath), {
31
- headers: { "Content-Type": "text/html" }
32
- });
33
- return response;
34
- }
35
- async serveFromDir({ path, request }) {
36
- const { absolutePaths } = this.appConfig;
37
- const basePath = join(absolutePaths.distDir, path);
38
- const contentType = ServerUtils.getContentType(extname(basePath));
39
- const acceptsGzip = request.headers.get("Accept-Encoding")?.includes("gzip");
40
- try {
41
- if (acceptsGzip && this.shouldServeGzip(contentType)) {
42
- const gzipPath = `${basePath}.gz`;
43
- if (fileSystem.exists(gzipPath)) {
44
- const file = fileSystem.readFileAsBuffer(gzipPath);
45
- return new Response(file, {
46
- headers: {
47
- "Content-Type": contentType,
48
- "Content-Encoding": "gzip",
49
- Vary: "Accept-Encoding"
50
- }
51
- });
20
+ shouldServeGzip(contentType) {
21
+ return ['text/javascript', 'text/css'].includes(contentType);
22
+ }
23
+ isHtml(contentType) {
24
+ return contentType === 'text/html';
25
+ }
26
+ async sendNotFoundPage() {
27
+ const error404TemplatePath = `${this.appConfig.absolutePaths.distDir}/404.html`;
28
+ try {
29
+ fileSystem.exists(error404TemplatePath);
30
+ }
31
+ catch {
32
+ return new Response(STATUS_MESSAGE[404], {
33
+ status: 404,
34
+ });
52
35
  }
53
- }
54
- if (path.includes(".") && fileSystem.exists(basePath)) {
55
- const file = fileSystem.readFileAsBuffer(basePath);
56
- return new Response(file, {
57
- headers: { "Content-Type": contentType }
36
+ const response = new Response(fileSystem.readFileAsBuffer(error404TemplatePath), {
37
+ headers: { 'Content-Type': 'text/html' },
58
38
  });
59
- }
60
- const htmlCandidates = [`${basePath}.html`, `${basePath}/index.html`];
61
- for (const candidate of htmlCandidates) {
62
- if (fileSystem.exists(candidate)) {
63
- const file = fileSystem.readFileAsBuffer(candidate);
64
- return new Response(file, {
65
- headers: {
66
- "Content-Type": ServerUtils.getContentType(extname(candidate))
39
+ return response;
40
+ }
41
+ async serveFromDir({ path, request }) {
42
+ const { absolutePaths } = this.appConfig;
43
+ const basePath = join(absolutePaths.distDir, path);
44
+ const contentType = ServerUtils.getContentType(extname(basePath));
45
+ const acceptsGzip = request.headers.get('Accept-Encoding')?.includes('gzip');
46
+ try {
47
+ if (acceptsGzip && this.shouldServeGzip(contentType)) {
48
+ const gzipPath = `${basePath}.gz`;
49
+ if (fileSystem.exists(gzipPath)) {
50
+ const file = fileSystem.readFileAsBuffer(gzipPath);
51
+ return new Response(file, {
52
+ headers: {
53
+ 'Content-Type': contentType,
54
+ 'Content-Encoding': 'gzip',
55
+ Vary: 'Accept-Encoding',
56
+ },
57
+ });
58
+ }
59
+ }
60
+ if (path.includes('.') && fileSystem.exists(basePath)) {
61
+ const file = fileSystem.readFileAsBuffer(basePath);
62
+ return new Response(file, {
63
+ headers: { 'Content-Type': contentType },
64
+ });
67
65
  }
68
- });
66
+ const htmlCandidates = [`${basePath}.html`, `${basePath}/index.html`];
67
+ for (const candidate of htmlCandidates) {
68
+ if (fileSystem.exists(candidate)) {
69
+ const file = fileSystem.readFileAsBuffer(candidate);
70
+ return new Response(file, {
71
+ headers: {
72
+ 'Content-Type': ServerUtils.getContentType(extname(candidate)),
73
+ },
74
+ });
75
+ }
76
+ }
77
+ return this.sendNotFoundPage();
78
+ }
79
+ catch {
80
+ return this.sendNotFoundPage();
69
81
  }
70
- }
71
- return this.sendNotFoundPage();
72
- } catch {
73
- return this.sendNotFoundPage();
74
82
  }
75
- }
76
- async fetch(request) {
77
- let reqPath = new URL(request.url).pathname;
78
- if (reqPath === "/") reqPath = "/index.html";
79
- const response = this.serveFromDir({
80
- path: reqPath,
81
- request
82
- });
83
- if (response) return response;
84
- return new Response(STATUS_MESSAGE[404], {
85
- status: 404
86
- });
87
- }
88
- startServer() {
89
- this.server = getRequiredBunRuntime().serve({
90
- fetch: this.fetch.bind(this),
91
- port: this.options.port
92
- });
93
- }
94
- stop() {
95
- if (this.server) {
96
- this.server.stop(true);
83
+ async fetch(request) {
84
+ let reqPath = new URL(request.url).pathname;
85
+ if (reqPath === '/')
86
+ reqPath = '/index.html';
87
+ const response = this.serveFromDir({
88
+ path: reqPath,
89
+ request,
90
+ });
91
+ if (response)
92
+ return response;
93
+ return new Response(STATUS_MESSAGE[404], {
94
+ status: 404,
95
+ });
96
+ }
97
+ startServer() {
98
+ this.server = getRequiredBunRuntime().serve({
99
+ fetch: this.fetch.bind(this),
100
+ port: this.options.port,
101
+ });
102
+ }
103
+ stop() {
104
+ if (this.server) {
105
+ this.server.stop(true);
106
+ }
107
+ }
108
+ static createServer({ appConfig, options, }) {
109
+ return new StaticContentServer({
110
+ appConfig: appConfig,
111
+ options,
112
+ });
97
113
  }
98
- }
99
- static createServer({
100
- appConfig,
101
- options
102
- }) {
103
- return new StaticContentServer({
104
- appConfig,
105
- options
106
- });
107
- }
108
114
  }
109
- export {
110
- StaticContentServer
111
- };
@@ -0,0 +1,24 @@
1
+ import type { EcoPagesAppConfig } from '../../types/internal-types.js';
2
+ import type { DevTransformVendorRegistry } from './dev-transform-vendor-registry.js';
3
+ import type { DevTransformBundleContributor, DevTransformBundleResult } from './types.js';
4
+ export type DevTransformBundlerOptions = {
5
+ appConfig: EcoPagesAppConfig;
6
+ contributors?: readonly DevTransformBundleContributor[];
7
+ getRuntimeSpecifierMap: () => ReadonlyMap<string, string>;
8
+ vendorRegistry: DevTransformVendorRegistry;
9
+ };
10
+ /**
11
+ * Transpiles one dev client module at a time to browser ESM with rewritten imports.
12
+ */
13
+ export declare class DevTransformBundler {
14
+ private readonly appConfig;
15
+ private readonly browserBundleService;
16
+ private readonly getRuntimeSpecifierMap;
17
+ private readonly vendorRegistry;
18
+ private readonly contributors;
19
+ constructor(options: DevTransformBundlerOptions);
20
+ addContributor(contributor: DevTransformBundleContributor): void;
21
+ private selectContributor;
22
+ private resolveTempOutdir;
23
+ transpileModule(sourcePath: string): Promise<DevTransformBundleResult>;
24
+ }
@@ -0,0 +1,79 @@
1
+ import { createHash } from 'node:crypto';
2
+ import path from 'node:path';
3
+ import { fileSystem } from '@ecopages/file-system';
4
+ import { BrowserBundleService } from '../../services/assets/browser-bundle.service.js';
5
+ import { createDevTransformExternalizeImportsPlugin } from './dev-transform-externalize-plugin.js';
6
+ import { rewriteModuleImports } from './dev-transform-import-rewriter.js';
7
+ /**
8
+ * Transpiles one dev client module at a time to browser ESM with rewritten imports.
9
+ */
10
+ export class DevTransformBundler {
11
+ appConfig;
12
+ browserBundleService;
13
+ getRuntimeSpecifierMap;
14
+ vendorRegistry;
15
+ contributors = [];
16
+ constructor(options) {
17
+ this.appConfig = options.appConfig;
18
+ this.browserBundleService = new BrowserBundleService(options.appConfig);
19
+ this.getRuntimeSpecifierMap = options.getRuntimeSpecifierMap;
20
+ this.vendorRegistry = options.vendorRegistry;
21
+ this.contributors.push(...(options.contributors ?? []));
22
+ }
23
+ addContributor(contributor) {
24
+ this.contributors.push(contributor);
25
+ }
26
+ selectContributor(sourcePath) {
27
+ return this.contributors.find((contributor) => contributor.ownsModule(sourcePath));
28
+ }
29
+ resolveTempOutdir() {
30
+ const distDir = this.appConfig.absolutePaths?.distDir ?? path.join(this.appConfig.rootDir, '.eco', 'assets');
31
+ return path.join(distDir, '.dev-transform');
32
+ }
33
+ async transpileModule(sourcePath) {
34
+ const normalized = path.resolve(sourcePath);
35
+ const contributor = this.selectContributor(normalized);
36
+ const pagePlugins = contributor ? await contributor.getModulePlugins(normalized) : [];
37
+ const tempDir = this.resolveTempOutdir();
38
+ fileSystem.ensureDir(tempDir);
39
+ /**
40
+ * @remarks
41
+ * Entry key is a path hash so concurrent transpiles of different modules that
42
+ * share a basename (e.g. multiple `index.tsx`) never collide on disk output.
43
+ */
44
+ const entryKey = createHash('sha256').update(normalized).digest('hex').slice(0, 16);
45
+ const result = await this.browserBundleService.bundle({
46
+ profile: 'hmr-entrypoint',
47
+ entrypoints: { [entryKey]: normalized },
48
+ outdir: tempDir,
49
+ naming: '[name].js',
50
+ plugins: [createDevTransformExternalizeImportsPlugin(), ...pagePlugins],
51
+ minify: false,
52
+ });
53
+ if (!result.success) {
54
+ const details = result.logs.map((log) => log.message).join('\n');
55
+ throw new Error(details
56
+ ? `[dev-transform] Transpile failed for ${normalized}:\n${details}`
57
+ : `[dev-transform] Transpile failed for ${normalized}`);
58
+ }
59
+ const outputPath = result.entryOutputs?.[normalized] ??
60
+ result.outputs.find((output) => path.basename(output.path) === `${entryKey}.js`)?.path ??
61
+ result.outputs[0]?.path;
62
+ if (!outputPath) {
63
+ throw new Error(`[dev-transform] No transpile output for ${normalized}`);
64
+ }
65
+ const transpiledCode = fileSystem.readFileSync(outputPath);
66
+ const rewritten = await rewriteModuleImports({
67
+ code: transpiledCode,
68
+ sourcePath: normalized,
69
+ srcDir: this.appConfig.absolutePaths.srcDir,
70
+ projectRoot: this.appConfig.rootDir,
71
+ runtimeSpecifierMap: this.getRuntimeSpecifierMap(),
72
+ resolveVendorUrl: (specifier) => this.vendorRegistry.resolveVendorUrl(specifier),
73
+ });
74
+ return {
75
+ code: rewritten.code,
76
+ dependencies: rewritten.dependencies,
77
+ };
78
+ }
79
+ }
@@ -0,0 +1,12 @@
1
+ import type { EcoBuildPlugin } from '../../build/contracts/build-types.js';
2
+ /**
3
+ * Marks dependency imports as external so Rolldown transpiles only the entry module.
4
+ *
5
+ * @remarks
6
+ * The Rolldown plugin bridge splits specifiers such as `ecopages:images` into
7
+ * `namespace` + `path` before `onResolve`. Returning `external: true` for those
8
+ * would emit a bare `from "images"` import and skip virtual-module `onLoad`.
9
+ * Namespaced imports are left for app plugins (image map, etc.) to inline into
10
+ * this single-file transpile.
11
+ */
12
+ export declare function createDevTransformExternalizeImportsPlugin(): EcoBuildPlugin;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Marks dependency imports as external so Rolldown transpiles only the entry module.
3
+ *
4
+ * @remarks
5
+ * The Rolldown plugin bridge splits specifiers such as `ecopages:images` into
6
+ * `namespace` + `path` before `onResolve`. Returning `external: true` for those
7
+ * would emit a bare `from "images"` import and skip virtual-module `onLoad`.
8
+ * Namespaced imports are left for app plugins (image map, etc.) to inline into
9
+ * this single-file transpile.
10
+ */
11
+ export function createDevTransformExternalizeImportsPlugin() {
12
+ return {
13
+ name: 'ecopages-dev-transform-externalize-imports',
14
+ setup(build) {
15
+ build.onResolve({ filter: /.*/u }, (args) => {
16
+ if (!args.importer) {
17
+ return undefined;
18
+ }
19
+ if (args.namespace) {
20
+ return undefined;
21
+ }
22
+ return {
23
+ path: args.path,
24
+ external: true,
25
+ };
26
+ });
27
+ },
28
+ };
29
+ }
@@ -0,0 +1,16 @@
1
+ type RewriteModuleImportsOptions = {
2
+ code: string;
3
+ sourcePath: string;
4
+ srcDir: string;
5
+ projectRoot: string;
6
+ runtimeSpecifierMap: ReadonlyMap<string, string>;
7
+ resolveVendorUrl: (specifier: string) => Promise<string>;
8
+ };
9
+ /**
10
+ * Rewrites static and dynamic import specifiers to dev-transform or vendor URLs.
11
+ */
12
+ export declare function rewriteModuleImports(options: RewriteModuleImportsOptions): Promise<{
13
+ code: string;
14
+ dependencies: string[];
15
+ }>;
16
+ export {};