@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
@@ -0,0 +1,147 @@
1
+ export function normalizeSegmentPath(pathname) {
2
+ if (pathname.length > 1 && pathname.endsWith('/')) {
3
+ return pathname.slice(0, -1);
4
+ }
5
+ return pathname;
6
+ }
7
+ export function matchApiPathPattern(pattern, pathname) {
8
+ const normalizedPattern = normalizeSegmentPath(pattern);
9
+ const normalizedPathname = normalizeSegmentPath(pathname);
10
+ const patternSegments = normalizedPattern.split('/').filter(Boolean);
11
+ const pathSegments = normalizedPathname.split('/').filter(Boolean);
12
+ const params = {};
13
+ let patternIndex = 0;
14
+ let pathIndex = 0;
15
+ while (patternIndex < patternSegments.length && pathIndex < pathSegments.length) {
16
+ const patternSegment = patternSegments[patternIndex];
17
+ const pathSegment = pathSegments[pathIndex];
18
+ if (patternSegment === '*') {
19
+ return params;
20
+ }
21
+ if (patternSegment.startsWith('[...') && patternSegment.endsWith(']')) {
22
+ const paramName = patternSegment.slice(4, -1);
23
+ params[paramName] = pathSegments.slice(pathIndex);
24
+ return params;
25
+ }
26
+ if (patternSegment.startsWith(':')) {
27
+ params[patternSegment.slice(1)] = pathSegment;
28
+ patternIndex++;
29
+ pathIndex++;
30
+ continue;
31
+ }
32
+ if (patternSegment.startsWith('[') && patternSegment.endsWith(']')) {
33
+ params[patternSegment.slice(1, -1)] = pathSegment;
34
+ patternIndex++;
35
+ pathIndex++;
36
+ continue;
37
+ }
38
+ if (patternSegment !== pathSegment) {
39
+ return null;
40
+ }
41
+ patternIndex++;
42
+ pathIndex++;
43
+ }
44
+ if (patternIndex < patternSegments.length) {
45
+ const remaining = patternSegments.slice(patternIndex);
46
+ const catchAll = remaining[0];
47
+ if (remaining.length === 1 && (catchAll === '*' || (catchAll.startsWith('[...') && catchAll.endsWith(']')))) {
48
+ if (catchAll.startsWith('[...')) {
49
+ const paramName = catchAll.slice(4, -1);
50
+ params[paramName] = [];
51
+ }
52
+ return params;
53
+ }
54
+ return null;
55
+ }
56
+ if (pathIndex < pathSegments.length) {
57
+ return null;
58
+ }
59
+ return params;
60
+ }
61
+ export function scoreApiPathPattern(pattern) {
62
+ const segments = normalizeSegmentPath(pattern).split('/').filter(Boolean);
63
+ let score = 0;
64
+ for (const segment of segments) {
65
+ if (segment === '*' || (segment.startsWith('[...') && segment.endsWith(']'))) {
66
+ score += 10;
67
+ }
68
+ else if (segment.startsWith(':') || (segment.startsWith('[') && segment.endsWith(']'))) {
69
+ score += 50;
70
+ }
71
+ else {
72
+ score += 100;
73
+ }
74
+ }
75
+ return score;
76
+ }
77
+ export function matchExplicitStaticPathPattern(pattern, pathname) {
78
+ const patternSegments = normalizeSegmentPath(pattern).split('/').filter(Boolean);
79
+ const pathSegments = normalizeSegmentPath(pathname).split('/').filter(Boolean);
80
+ if (patternSegments.length !== pathSegments.length) {
81
+ const lastPattern = patternSegments[patternSegments.length - 1];
82
+ const isCatchAll = lastPattern?.startsWith('[...') || lastPattern?.startsWith(':...');
83
+ if (!isCatchAll) {
84
+ return null;
85
+ }
86
+ }
87
+ const params = {};
88
+ for (let i = 0; i < patternSegments.length; i++) {
89
+ const patternPart = patternSegments[i];
90
+ const pathPart = pathSegments[i];
91
+ if (patternPart.startsWith(':...') || patternPart.startsWith('[...')) {
92
+ const paramName = patternPart.replace(/^(:\.\.\.|\[\.\.\.)/, '').replace(/\]$/, '');
93
+ params[paramName] = pathSegments.slice(i).join('/');
94
+ return params;
95
+ }
96
+ if (patternPart.startsWith(':')) {
97
+ params[patternPart.slice(1)] = pathPart;
98
+ }
99
+ else if (patternPart.startsWith('[') && patternPart.endsWith(']')) {
100
+ params[patternPart.slice(1, -1)] = pathPart;
101
+ }
102
+ else if (patternPart !== pathPart) {
103
+ return null;
104
+ }
105
+ }
106
+ return params;
107
+ }
108
+ export function matchColonSegmentPath(pattern, pathname) {
109
+ const patternSegments = pattern.split('/').filter(Boolean);
110
+ const pathSegments = pathname.split('/').filter(Boolean);
111
+ if (patternSegments.length !== pathSegments.length) {
112
+ return null;
113
+ }
114
+ const params = {};
115
+ for (let i = 0; i < patternSegments.length; i++) {
116
+ const patternSegment = patternSegments[i];
117
+ const pathSegment = pathSegments[i];
118
+ if (!patternSegment || !pathSegment) {
119
+ return null;
120
+ }
121
+ if (patternSegment.startsWith(':')) {
122
+ const paramName = patternSegment.slice(1);
123
+ if (!paramName) {
124
+ return null;
125
+ }
126
+ params[paramName] = pathSegment;
127
+ }
128
+ else if (patternSegment !== pathSegment) {
129
+ return null;
130
+ }
131
+ }
132
+ return params;
133
+ }
134
+ export function scoreColonSegmentPath(pattern) {
135
+ const segments = pattern.split('/').filter(Boolean);
136
+ let literals = 0;
137
+ let dynamics = 0;
138
+ for (const segment of segments) {
139
+ if (segment.startsWith(':')) {
140
+ dynamics += 1;
141
+ }
142
+ else {
143
+ literals += 1;
144
+ }
145
+ }
146
+ return literals * 100 - dynamics * 10 + segments.length;
147
+ }
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import type { EcoPagesAppConfig } from '../../types/internal-types.js';
10
10
  import type { ApiHandler } from '../../types/public-types.js';
11
+ import type { StaticGenerationRoute } from '../../router/server/route-registry.js';
11
12
  /**
12
13
  * Configuration options for all server adapters
13
14
  */
@@ -32,8 +33,18 @@ export interface ServerAdapterResult {
32
33
  buildStatic: (options?: {
33
34
  preview?: boolean;
34
35
  force?: boolean;
35
- }) => Promise<void>;
36
+ }) => Promise<string | undefined>;
37
+ servePreviewOnly: () => Promise<string | undefined>;
36
38
  dispose(): Promise<void>;
39
+ /**
40
+ * Lists static-generation routes for app-start consumers.
41
+ *
42
+ * @remarks
43
+ * Optional so lightweight adapter stubs in tests need not implement routing.
44
+ */
45
+ listStaticGenerationRoutes?: (input: {
46
+ runtimeOrigin: string;
47
+ }) => Promise<readonly StaticGenerationRoute[]>;
37
48
  }
38
49
  /**
39
50
  * Abstract base class for server adapters across different runtimes
@@ -60,7 +71,7 @@ export declare abstract class AbstractServerAdapter<TOptions extends ServerAdapt
60
71
  abstract buildStatic(options?: {
61
72
  preview?: boolean;
62
73
  force?: boolean;
63
- }): Promise<void>;
74
+ }): Promise<string | undefined>;
64
75
  /**
65
76
  * Factory method to create a server adapter with runtime-specific functionality
66
77
  */
@@ -1,15 +1,23 @@
1
- class AbstractServerAdapter {
2
- appConfig;
3
- options;
4
- serveOptions;
5
- runtimeOrigin;
6
- constructor(options) {
7
- this.appConfig = options.appConfig;
8
- this.options = options.options || {};
9
- this.serveOptions = options.serveOptions || {};
10
- this.runtimeOrigin = options.runtimeOrigin;
11
- }
1
+ /**
2
+ * This file contains the abstract server adapter class and its related types.
3
+ * It is designed to be extended by specific server adapters for different runtimes.
4
+ * The class provides methods for initializing the server, creating server options,
5
+ * building static files, and handling HTTP requests.
6
+ *
7
+ * @module ServerAdapter
8
+ */
9
+ /**
10
+ * Abstract base class for server adapters across different runtimes
11
+ */
12
+ export class AbstractServerAdapter {
13
+ appConfig;
14
+ options;
15
+ serveOptions;
16
+ runtimeOrigin;
17
+ constructor(options) {
18
+ this.appConfig = options.appConfig;
19
+ this.options = options.options || {};
20
+ this.serveOptions = options.serveOptions || {};
21
+ this.runtimeOrigin = options.runtimeOrigin;
22
+ }
12
23
  }
13
- export {
14
- AbstractServerAdapter
15
- };
@@ -1,60 +1,12 @@
1
1
  import type { EcopagesWebSocketHandler } from '../../types/public-types.js';
2
- /**
3
- * Pattern matcher for WebSocket route paths.
4
- *
5
- * Supports dynamic segments via `:param` syntax. Matches are exact on literal
6
- * segments and capture dynamic segments into a params object.
7
- *
8
- * @example
9
- * ```ts
10
- * matchWebSocketPath('/ws/chat/:id', '/ws/chat/abc123')
11
- * // Returns: { id: 'abc123' }
12
- *
13
- * matchWebSocketPath('/ws/chat/:id', '/ws/chat/abc123/messages')
14
- * // Returns: null (length mismatch)
15
- *
16
- * matchWebSocketPath('/ws/chat', '/ws/chat')
17
- * // Returns: {} (no params)
18
- * ```
19
- *
20
- * @remarks
21
- * This is a minimal segment-based matcher. It does not support wildcards,
22
- * optional segments, or catch-all patterns. Those are future concerns.
23
- *
24
- * @param pattern - The registered route pattern (e.g. '/ws/chat/:id')
25
- * @param pathname - The actual request pathname (e.g. '/ws/chat/abc123')
26
- * @returns A params object if the pattern matches, or null if it does not
27
- */
28
- export declare function matchWebSocketPath(pattern: string, pathname: string): Record<string, string> | null;
29
- /**
30
- * Represents a matched WebSocket route.
31
- */
32
2
  export type WebSocketRouteMatch = {
33
3
  handler: EcopagesWebSocketHandler<any, any>;
34
4
  params: Record<string, string>;
35
5
  kind: string;
36
6
  };
37
7
  /**
38
- * Scores a pattern for specificity ordering.
39
- *
40
- * Higher scores win. Rules, in order:
41
- * 1. More literal segments beats more dynamic segments.
42
- * 2. Fewer dynamic segments beats more dynamic segments.
43
- * 3. Longer route (more segments) beats shorter route.
44
- *
45
- * @param pattern - The registered route pattern
46
- * @returns A numeric specificity score
8
+ * Pattern matcher for WebSocket route paths.
47
9
  */
10
+ export declare function matchWebSocketPath(pattern: string, pathname: string): Record<string, string> | null;
48
11
  export declare function scoreWebSocketPattern(pattern: string): number;
49
- /**
50
- * Find the registered WebSocket handler that best matches a pathname.
51
- *
52
- * Iterates through the provided handlers map, computes each pattern's
53
- * specificity score, and returns the highest-scoring match. Ties resolve
54
- * to the earliest-registered pattern.
55
- *
56
- * @param handlers - The map of registered WebSocket handlers
57
- * @param pathname - The actual request pathname
58
- * @returns The best match, or null if no pattern matches
59
- */
60
12
  export declare function findWebSocketRoute(handlers: Map<string, EcopagesWebSocketHandler<any, any>>, pathname: string): WebSocketRouteMatch | null;
@@ -1,61 +1,28 @@
1
- function matchWebSocketPath(pattern, pathname) {
2
- const patternSegments = pattern.split("/").filter(Boolean);
3
- const pathSegments = pathname.split("/").filter(Boolean);
4
- if (patternSegments.length !== pathSegments.length) {
5
- return null;
6
- }
7
- const params = {};
8
- for (let i = 0; i < patternSegments.length; i++) {
9
- const patternSegment = patternSegments[i];
10
- const pathSegment = pathSegments[i];
11
- if (!patternSegment || !pathSegment) {
12
- return null;
13
- }
14
- if (patternSegment.startsWith(":")) {
15
- const paramName = patternSegment.slice(1);
16
- if (!paramName) {
17
- return null;
18
- }
19
- params[paramName] = pathSegment;
20
- } else if (patternSegment !== pathSegment) {
21
- return null;
22
- }
23
- }
24
- return params;
1
+ import { matchColonSegmentPath, scoreColonSegmentPath } from './segment-path-matcher.js';
2
+ /**
3
+ * Pattern matcher for WebSocket route paths.
4
+ */
5
+ export function matchWebSocketPath(pattern, pathname) {
6
+ return matchColonSegmentPath(pattern, pathname);
25
7
  }
26
- function scoreWebSocketPattern(pattern) {
27
- const segments = pattern.split("/").filter(Boolean);
28
- let literals = 0;
29
- let dynamics = 0;
30
- for (const segment of segments) {
31
- if (segment.startsWith(":")) {
32
- dynamics += 1;
33
- } else {
34
- literals += 1;
35
- }
36
- }
37
- return literals * 100 - dynamics * 10 + segments.length;
8
+ export function scoreWebSocketPattern(pattern) {
9
+ return scoreColonSegmentPath(pattern);
38
10
  }
39
- function findWebSocketRoute(handlers, pathname) {
40
- let best = null;
41
- let index = 0;
42
- for (const [pattern, handler] of handlers) {
43
- const params = matchWebSocketPath(pattern, pathname);
44
- if (params === null) {
45
- index += 1;
46
- continue;
47
- }
48
- const score = scoreWebSocketPattern(pattern);
49
- const match = { handler, params, kind: pattern };
50
- if (best === null || score > best.score || score === best.score && index < best.index) {
51
- best = { score, match, index };
11
+ export function findWebSocketRoute(handlers, pathname) {
12
+ let best = null;
13
+ let index = 0;
14
+ for (const [pattern, handler] of handlers) {
15
+ const params = matchColonSegmentPath(pattern, pathname);
16
+ if (params === null) {
17
+ index += 1;
18
+ continue;
19
+ }
20
+ const score = scoreColonSegmentPath(pattern);
21
+ const match = { handler, params, kind: pattern };
22
+ if (best === null || score > best.score || (score === best.score && index < best.index)) {
23
+ best = { score, match, index };
24
+ }
25
+ index += 1;
52
26
  }
53
- index += 1;
54
- }
55
- return best?.match ?? null;
27
+ return best?.match ?? null;
56
28
  }
57
- export {
58
- findWebSocketRoute,
59
- matchWebSocketPath,
60
- scoreWebSocketPattern
61
- };
@@ -0,0 +1,93 @@
1
+ import { appLogger } from '../../global/app-logger.js';
2
+ import { invokeWebSocketHandlerHook, toWebSocketCloseInfo } from '../shared/ws/websocket-lifecycle.js';
3
+ function toUpgradeRequest(ws, runtimeOrigin) {
4
+ const upgradeUrl = ws.data?.upgradeUrl;
5
+ if (upgradeUrl) {
6
+ return new Request(upgradeUrl);
7
+ }
8
+ return new Request(runtimeOrigin);
9
+ }
10
+ async function runUserWebSocketOpen(ws, kind, deps) {
11
+ const handler = deps.userHandlers.get(kind);
12
+ if (!handler) {
13
+ return;
14
+ }
15
+ const params = (ws.data?.params ?? {});
16
+ const search = ws.data?.search ?? {};
17
+ const request = toUpgradeRequest(ws, deps.runtimeOrigin);
18
+ let context;
19
+ try {
20
+ context = await deps.resolveContext(request, handler, kind, params, search);
21
+ }
22
+ catch {
23
+ ws.close(1011, 'context initialization failed');
24
+ return;
25
+ }
26
+ ws.data.context = context;
27
+ const socket = deps.adaptSocket(ws, kind, params, search, context);
28
+ try {
29
+ await handler.onConnect?.(socket);
30
+ }
31
+ catch (error) {
32
+ appLogger.error(`[WS:${kind}] onConnect failed:`, error);
33
+ ws.close(1011, 'onConnect failed');
34
+ }
35
+ }
36
+ export function createBunUserWebSocketLifecycle(deps) {
37
+ const resolveSocketForEvent = (ws) => {
38
+ const kind = ws.data?.kind;
39
+ if (!kind) {
40
+ return undefined;
41
+ }
42
+ const handler = deps.userHandlers.get(kind);
43
+ if (!handler) {
44
+ return undefined;
45
+ }
46
+ const params = (ws.data?.params ?? {});
47
+ const search = ws.data?.search ?? {};
48
+ const socket = deps.adaptSocket(ws, kind, params, search, ws.data?.context);
49
+ return { kind, handler, socket };
50
+ };
51
+ return {
52
+ open(ws) {
53
+ const kind = ws.data?.kind;
54
+ if (!kind) {
55
+ return;
56
+ }
57
+ void runUserWebSocketOpen(ws, kind, deps).catch((error) => {
58
+ appLogger.error(`[WS:${kind}] open failed:`, error);
59
+ ws.close(1011, 'internal error');
60
+ });
61
+ },
62
+ message(ws, msg) {
63
+ const resolved = resolveSocketForEvent(ws);
64
+ if (!resolved) {
65
+ return;
66
+ }
67
+ if (ws.data?.context === undefined && resolved.handler.context) {
68
+ appLogger.warn(`[WS:${resolved.kind}] message received before context resolved; dropping.`);
69
+ return;
70
+ }
71
+ const message = typeof msg === 'string'
72
+ ? { kind: 'text', text: msg }
73
+ : { kind: 'binary', data: new Uint8Array(msg.buffer, msg.byteOffset, msg.byteLength) };
74
+ invokeWebSocketHandlerHook(resolved.kind, 'onMessage', resolved.handler.onMessage?.(resolved.socket, message));
75
+ },
76
+ close(ws, code, reason) {
77
+ const resolved = resolveSocketForEvent(ws);
78
+ if (!resolved) {
79
+ return;
80
+ }
81
+ const event = toWebSocketCloseInfo(code, reason);
82
+ invokeWebSocketHandlerHook(resolved.kind, 'onClose', resolved.handler.onClose?.(resolved.socket, event));
83
+ },
84
+ error(ws, error) {
85
+ const resolved = resolveSocketForEvent(ws);
86
+ if (!resolved) {
87
+ return;
88
+ }
89
+ appLogger.error(`[WS:${resolved.kind}] error:`, error);
90
+ invokeWebSocketHandlerHook(resolved.kind, 'onError', resolved.handler.onError?.(resolved.socket, error));
91
+ },
92
+ };
93
+ }
@@ -1,51 +1,52 @@
1
- class ClientBridge {
2
- subscribers = /* @__PURE__ */ new Set();
3
- subscribe(ws) {
4
- this.subscribers.add(ws);
5
- }
6
- unsubscribe(ws) {
7
- this.subscribers.delete(ws);
8
- }
9
- /**
10
- * Broadcast a raw event to all connected clients.
11
- */
12
- broadcast(event) {
13
- const payload = JSON.stringify(event);
14
- for (const ws of this.subscribers) {
15
- ws.send(payload);
16
- }
17
- }
18
- /**
19
- * Trigger a full page reload on all connected clients.
20
- */
21
- reload() {
22
- this.broadcast({ type: "reload" });
23
- }
24
- /**
25
- * Broadcast a CSS update for hot stylesheet reload.
26
- */
27
- cssUpdate(path) {
28
- this.broadcast({ type: "css-update", path, timestamp: Date.now() });
29
- }
30
- /**
31
- * Broadcast a JS module update for hot module replacement.
32
- */
33
- update(path) {
34
- this.broadcast({ type: "update", path, timestamp: Date.now() });
35
- }
36
- /**
37
- * Broadcast an error message to connected clients.
38
- */
39
- error(message) {
40
- this.broadcast({ type: "error", message });
41
- }
42
- get subscriberCount() {
43
- return this.subscribers.size;
44
- }
45
- destroy() {
46
- this.subscribers.clear();
47
- }
1
+ /**
2
+ * Manages WebSocket subscribers and broadcasts development events.
3
+ * Bridges the gap between the server and the development client.
4
+ */
5
+ export class ClientBridge {
6
+ subscribers = new Set();
7
+ subscribe(ws) {
8
+ this.subscribers.add(ws);
9
+ }
10
+ unsubscribe(ws) {
11
+ this.subscribers.delete(ws);
12
+ }
13
+ /**
14
+ * Broadcast a raw event to all connected clients.
15
+ */
16
+ broadcast(event) {
17
+ const payload = JSON.stringify(event);
18
+ for (const ws of this.subscribers) {
19
+ ws.send(payload);
20
+ }
21
+ }
22
+ /**
23
+ * Trigger a full page reload on all connected clients.
24
+ */
25
+ reload() {
26
+ this.broadcast({ type: 'reload' });
27
+ }
28
+ /**
29
+ * Broadcast a CSS update for hot stylesheet reload.
30
+ */
31
+ cssUpdate(path) {
32
+ this.broadcast({ type: 'css-update', path, timestamp: Date.now() });
33
+ }
34
+ /**
35
+ * Broadcast a JS module update for hot module replacement.
36
+ */
37
+ update(path) {
38
+ this.broadcast({ type: 'update', path, timestamp: Date.now() });
39
+ }
40
+ /**
41
+ * Broadcast an error message to connected clients.
42
+ */
43
+ error(message) {
44
+ this.broadcast({ type: 'error', message });
45
+ }
46
+ get subscriberCount() {
47
+ return this.subscribers.size;
48
+ }
49
+ destroy() {
50
+ this.subscribers.clear();
51
+ }
48
52
  }
49
- export {
50
- ClientBridge
51
- };
@@ -9,9 +9,8 @@
9
9
  */
10
10
  import type { Server } from 'bun';
11
11
  import type { ApiHandlerContext, RouteGroupBuilder } from '../../types/public-types.js';
12
- import { SharedApplicationAdapter } from '../shared/application-adapter.js';
13
- import type { RuntimeHost } from '../shared/runtime-host.js';
14
- import type { StaticPreviewHost } from '../shared/static-preview-host.js';
12
+ import { SharedApplicationAdapter } from '../shared/runtime/application-adapter.js';
13
+ import type { RuntimeHost } from '../shared/runtime/runtime-host.js';
15
14
  import type { EcopagesAppOptions } from '../create-app.js';
16
15
  import { type BunServerAdapterResult } from './server-adapter.js';
17
16
  /**
@@ -33,10 +32,8 @@ export declare class BunEcopagesApp<WebSocketData = undefined> extends SharedApp
33
32
  private server;
34
33
  private stopped;
35
34
  private readonly runtimeHost;
36
- private readonly previewHost;
37
35
  constructor(options: EcopagesAppOptions, dependencies: {
38
36
  runtimeHost: RuntimeHost<Server<WebSocketData>, Bun.Serve.Options<WebSocketData>>;
39
- previewHost: StaticPreviewHost;
40
37
  });
41
38
  fetch(request: Request): Promise<Response>;
42
39
  attachWebSocketUpgrades(httpServer: import('node:http').Server, options?: {
@@ -56,8 +53,9 @@ export declare class BunEcopagesApp<WebSocketData = undefined> extends SharedApp
56
53
  * @param options Optional settings
57
54
  * @param options.autoCompleteInitialization Whether to automatically complete initialization with dynamic routes after server start (defaults to true)
58
55
  */
59
- start(): Promise<Server<WebSocketData> | void>;
56
+ protected bootServer(): Promise<Server<WebSocketData> | void>;
60
57
  stop(force?: boolean): Promise<void>;
58
+ protected resolveAppRoutes(): Promise<import("../../index.browser.js").EcopagesRouteInfo[]>;
61
59
  }
62
60
  /**
63
61
  * Factory function to create a Bun application