@ecopages/core 0.2.0-alpha.8 → 0.2.1-beta.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 (471) hide show
  1. package/README.md +79 -28
  2. package/package.json +94 -116
  3. package/src/adapters/README.md +2 -2
  4. package/src/adapters/abstract/application-adapter.d.ts +28 -2
  5. package/src/adapters/abstract/application-adapter.js +14 -2
  6. package/src/adapters/abstract/router-adapter.d.ts +1 -1
  7. package/src/adapters/abstract/server-adapter.d.ts +2 -2
  8. package/src/adapters/bun/client-bridge.d.ts +1 -1
  9. package/src/adapters/bun/create-app.d.ts +12 -12
  10. package/src/adapters/bun/create-app.js +64 -41
  11. package/src/adapters/bun/hmr-manager.d.ts +19 -115
  12. package/src/adapters/bun/hmr-manager.js +25 -301
  13. package/src/adapters/bun/index.d.ts +1 -1
  14. package/src/adapters/bun/index.js +2 -2
  15. package/src/adapters/bun/runtime-host.d.ts +52 -0
  16. package/src/adapters/bun/runtime-host.js +56 -0
  17. package/src/adapters/bun/server-adapter.d.ts +100 -32
  18. package/src/adapters/bun/server-adapter.js +142 -65
  19. package/src/adapters/bun/static-preview-host.d.ts +28 -0
  20. package/src/adapters/bun/static-preview-host.js +45 -0
  21. package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
  22. package/src/{create-app.js → adapters/create-app.js} +4 -4
  23. package/src/adapters/index.d.ts +1 -5
  24. package/src/adapters/index.js +1 -7
  25. package/src/adapters/node/create-app.d.ts +15 -12
  26. package/src/adapters/node/create-app.js +34 -85
  27. package/src/adapters/node/http-request-bridge.d.ts +57 -0
  28. package/src/adapters/node/http-request-bridge.js +118 -0
  29. package/src/adapters/node/node-client-bridge.d.ts +1 -1
  30. package/src/adapters/node/node-hmr-manager.d.ts +22 -103
  31. package/src/adapters/node/node-hmr-manager.js +26 -289
  32. package/src/adapters/node/runtime-host.d.ts +57 -0
  33. package/src/adapters/node/runtime-host.js +92 -0
  34. package/src/adapters/node/server-adapter-dependencies.d.ts +19 -0
  35. package/src/adapters/node/server-adapter-dependencies.js +18 -0
  36. package/src/adapters/node/server-adapter.d.ts +19 -42
  37. package/src/adapters/node/server-adapter.js +94 -139
  38. package/src/adapters/node/static-content-server.d.ts +1 -1
  39. package/src/adapters/node/static-content-server.js +1 -1
  40. package/src/adapters/node/static-preview-host.d.ts +55 -0
  41. package/src/adapters/node/static-preview-host.js +68 -0
  42. package/src/adapters/shared/application-adapter.d.ts +1 -1
  43. package/src/adapters/shared/define-api-handler.d.ts +1 -1
  44. package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
  45. package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
  46. package/src/adapters/shared/explicit-static-route-matcher.d.ts +7 -4
  47. package/src/adapters/shared/explicit-static-route-matcher.js +14 -16
  48. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
  49. package/src/adapters/shared/file-route-middleware-pipeline.js +2 -11
  50. package/src/adapters/shared/fs-server-response-factory.d.ts +14 -10
  51. package/src/adapters/shared/fs-server-response-factory.js +11 -27
  52. package/src/adapters/shared/fs-server-response-matcher.d.ts +18 -18
  53. package/src/adapters/shared/fs-server-response-matcher.js +72 -46
  54. package/src/adapters/shared/hmr-entrypoint-registrar.js +1 -1
  55. package/src/adapters/shared/hmr-html-response.d.ts +1 -1
  56. package/src/adapters/shared/hmr-html-response.js +4 -3
  57. package/src/adapters/shared/render-context.d.ts +5 -3
  58. package/src/adapters/shared/render-context.js +24 -1
  59. package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
  60. package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
  61. package/src/adapters/shared/runtime-host.d.ts +12 -0
  62. package/src/adapters/shared/server-adapter.d.ts +22 -11
  63. package/src/adapters/shared/server-adapter.js +183 -133
  64. package/src/adapters/shared/server-route-handler.d.ts +5 -5
  65. package/src/adapters/shared/server-route-handler.js +4 -4
  66. package/src/adapters/shared/server-static-builder.d.ts +8 -7
  67. package/src/adapters/shared/server-static-builder.js +6 -5
  68. package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
  69. package/src/adapters/shared/shared-hmr-manager.js +241 -0
  70. package/src/adapters/shared/static-preview-host.d.ts +10 -0
  71. package/src/build/README.md +57 -67
  72. package/src/build/browser-runtime-manifest.d.ts +31 -0
  73. package/src/build/browser-runtime-manifest.js +61 -0
  74. package/src/build/browser-runtime-plugin-helpers.d.ts +26 -0
  75. package/src/build/browser-runtime-plugin-helpers.js +14 -0
  76. package/src/build/browser-runtime-plugin.d.ts +78 -0
  77. package/src/build/browser-runtime-plugin.js +173 -0
  78. package/src/build/build-adapter.d.ts +384 -63
  79. package/src/build/build-adapter.js +129 -54
  80. package/src/build/build-manifest.d.ts +6 -0
  81. package/src/build/build-manifest.js +21 -2
  82. package/src/build/build-types.d.ts +2 -2
  83. package/src/build/rolldown-adapter-helpers.d.ts +58 -0
  84. package/src/build/rolldown-adapter-helpers.js +265 -0
  85. package/src/build/rolldown-build-adapter.d.ts +28 -0
  86. package/src/build/rolldown-build-adapter.js +65 -0
  87. package/src/build/rolldown-dev-build-adapter.d.ts +82 -0
  88. package/src/build/rolldown-dev-build-adapter.js +166 -0
  89. package/src/build/rolldown-plugin-bridge.d.ts +59 -0
  90. package/src/build/rolldown-plugin-bridge.js +199 -0
  91. package/src/build/runtime-build-executor.d.ts +15 -7
  92. package/src/build/runtime-build-executor.js +8 -9
  93. package/src/build/runtime-build-output-normalizer.d.ts +3 -0
  94. package/src/build/runtime-build-output-normalizer.js +111 -0
  95. package/src/build/serialized-build-executor.d.ts +64 -0
  96. package/src/build/serialized-build-executor.js +63 -0
  97. package/src/build/server-side-css-shim-plugin.d.ts +41 -0
  98. package/src/build/server-side-css-shim-plugin.js +35 -0
  99. package/src/cache/index.d.ts +6 -0
  100. package/src/cache/index.js +6 -0
  101. package/src/cache/module-parse-cache.d.ts +65 -0
  102. package/src/cache/module-parse-cache.js +75 -0
  103. package/src/config/README.md +5 -2
  104. package/src/config/config-builder.d.ts +41 -13
  105. package/src/config/config-builder.js +62 -24
  106. package/src/declarations.d.ts +1 -1
  107. package/src/dev/host-runtime.d.ts +10 -0
  108. package/src/dev/host-runtime.js +24 -0
  109. package/src/dev/sc-server.d.ts +1 -1
  110. package/src/dev/sc-server.js +1 -1
  111. package/src/eco/eco.browser.d.ts +2 -0
  112. package/src/eco/eco.browser.js +88 -0
  113. package/src/eco/eco.js +50 -45
  114. package/src/eco/eco.types.d.ts +60 -8
  115. package/src/eco/eco.utils.d.ts +1 -40
  116. package/src/eco/eco.utils.js +5 -35
  117. package/src/eco/global-injector-map.d.ts +3 -3
  118. package/src/eco/global-injector-map.js +2 -2
  119. package/src/eco/lazy-injector-map.d.ts +2 -2
  120. package/src/errors/index.d.ts +1 -0
  121. package/src/errors/index.js +3 -1
  122. package/src/hmr/client/hmr-runtime.js +9 -1
  123. package/src/hmr/hmr-strategy.d.ts +16 -13
  124. package/src/hmr/hmr-strategy.js +22 -7
  125. package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
  126. package/src/hmr/strategies/default-hmr-strategy.js +1 -1
  127. package/src/hmr/strategies/js-hmr-strategy.d.ts +4 -9
  128. package/src/hmr/strategies/js-hmr-strategy.js +5 -10
  129. package/src/index.browser.d.ts +2 -2
  130. package/src/index.browser.js +1 -1
  131. package/src/index.d.ts +3 -2
  132. package/src/index.js +15 -4
  133. package/src/integrations/ghtml/ghtml-renderer.d.ts +2 -1
  134. package/src/integrations/ghtml/ghtml-renderer.js +24 -29
  135. package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
  136. package/src/integrations/ghtml/ghtml.constants.js +4 -0
  137. package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
  138. package/src/integrations/ghtml/ghtml.plugin.js +3 -4
  139. package/src/plugins/README.md +1 -0
  140. package/src/plugins/alias-resolver-cache.d.ts +68 -0
  141. package/src/plugins/alias-resolver-cache.js +106 -0
  142. package/src/plugins/alias-resolver-plugin.d.ts +5 -1
  143. package/src/plugins/alias-resolver-plugin.js +19 -7
  144. package/src/plugins/eco-component-meta-plugin.d.ts +12 -1
  145. package/src/plugins/eco-component-meta-plugin.js +43 -25
  146. package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
  147. package/src/plugins/foreign-jsx-override-plugin.js +41 -0
  148. package/src/plugins/integration-plugin.d.ts +136 -42
  149. package/src/plugins/integration-plugin.js +99 -31
  150. package/src/plugins/processor.d.ts +4 -2
  151. package/src/plugins/processor.js +8 -3
  152. package/src/plugins/source-transform.d.ts +46 -0
  153. package/src/plugins/source-transform.js +71 -0
  154. package/src/route-renderer/GRAPH.md +80 -318
  155. package/src/route-renderer/README.md +74 -78
  156. package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
  157. package/src/route-renderer/orchestration/component-render-context.js +147 -0
  158. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
  159. package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
  160. package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
  161. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
  162. package/src/route-renderer/orchestration/integration-renderer.d.ts +290 -128
  163. package/src/route-renderer/orchestration/integration-renderer.js +660 -258
  164. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
  165. package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
  166. package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
  167. package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
  168. package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
  169. package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
  170. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
  171. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
  172. package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
  173. package/src/route-renderer/orchestration/render-output.utils.js +171 -0
  174. package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +156 -0
  175. package/src/route-renderer/orchestration/route-render-orchestrator.js +577 -0
  176. package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
  177. package/src/route-renderer/orchestration/template-serialization.js +45 -0
  178. package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
  179. package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
  180. package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
  181. package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
  182. package/src/route-renderer/page-loading/dependency-resolver.d.ts +2 -2
  183. package/src/route-renderer/page-loading/dependency-resolver.js +27 -354
  184. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
  185. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
  186. package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
  187. package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
  188. package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
  189. package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
  190. package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
  191. package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
  192. package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
  193. package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
  194. package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
  195. package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
  196. package/src/route-renderer/page-loading/page-module-loader.d.ts +7 -4
  197. package/src/route-renderer/page-loading/page-module-loader.js +8 -5
  198. package/src/route-renderer/route-renderer.d.ts +31 -23
  199. package/src/route-renderer/route-renderer.js +17 -24
  200. package/src/router/README.md +76 -8
  201. package/src/router/client/navigation-coordinator.d.ts +20 -0
  202. package/src/router/client/navigation-coordinator.js +2 -2
  203. package/src/router/server/route-registry.d.ts +78 -0
  204. package/src/router/server/route-registry.js +262 -0
  205. package/src/services/README.md +1 -2
  206. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
  207. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
  208. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +3 -20
  209. package/src/services/assets/asset-processing-service/asset-processing.service.js +52 -98
  210. package/src/services/assets/asset-processing-service/asset.factory.d.ts +1 -1
  211. package/src/services/assets/asset-processing-service/asset.factory.js +2 -2
  212. package/src/services/assets/asset-processing-service/assets.types.d.ts +14 -0
  213. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +2 -0
  214. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +1 -0
  215. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
  216. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
  217. package/src/services/assets/asset-processing-service/index.d.ts +6 -5
  218. package/src/services/assets/asset-processing-service/index.js +6 -5
  219. package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
  220. package/src/services/assets/asset-processing-service/page-package.js +80 -0
  221. package/src/services/assets/asset-processing-service/processor.interface.d.ts +2 -2
  222. package/src/services/assets/asset-processing-service/processor.registry.d.ts +2 -2
  223. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +1 -1
  224. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +3 -2
  225. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +10 -5
  226. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +69 -5
  227. package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -5
  228. package/src/services/assets/asset-processing-service/processors/index.js +5 -5
  229. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +3 -2
  230. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +66 -3
  231. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +4 -3
  232. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +27 -6
  233. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +38 -3
  234. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +57 -6
  235. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
  236. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +39 -5
  237. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
  238. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +5 -2
  239. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
  240. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
  241. package/src/services/assets/browser-bundle.service.d.ts +44 -3
  242. package/src/services/assets/browser-bundle.service.js +15 -7
  243. package/src/services/html/html-rewriter-provider.service.d.ts +3 -0
  244. package/src/services/html/html-rewriter-provider.service.js +4 -1
  245. package/src/services/html/html-transformer.service.d.ts +22 -3
  246. package/src/services/html/html-transformer.service.js +101 -35
  247. package/src/services/invalidation/development-invalidation.service.d.ts +1 -1
  248. package/src/services/invalidation/development-invalidation.service.js +1 -0
  249. package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
  250. package/src/services/module-loading/app-module-loader.service.js +0 -0
  251. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +9 -1
  252. package/src/services/module-loading/app-server-module-transpiler.service.js +102 -6
  253. package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
  254. package/src/services/module-loading/host-module-loader-registry.js +15 -0
  255. package/src/services/module-loading/module-loading-types.d.ts +2 -0
  256. package/src/services/module-loading/module-loading-types.js +0 -0
  257. package/src/services/module-loading/page-module-import.service.d.ts +32 -8
  258. package/src/services/module-loading/page-module-import.service.js +83 -22
  259. package/src/services/module-loading/server-module-transpiler.service.d.ts +8 -14
  260. package/src/services/module-loading/server-module-transpiler.service.js +5 -2
  261. package/src/services/module-loading/source-module-support.d.ts +5 -0
  262. package/src/services/module-loading/source-module-support.js +8 -0
  263. package/src/services/runtime-state/dev-graph.service.d.ts +6 -6
  264. package/src/services/runtime-state/dev-graph.service.js +10 -10
  265. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +1 -1
  266. package/src/services/runtime-state/server-invalidation-state.service.d.ts +1 -1
  267. package/src/static-site-generator/static-site-generator.d.ts +23 -28
  268. package/src/static-site-generator/static-site-generator.js +119 -156
  269. package/src/{internal-types.d.ts → types/internal-types.d.ts} +34 -23
  270. package/src/types/internal-types.js +0 -0
  271. package/src/{public-types.d.ts → types/public-types.d.ts} +195 -37
  272. package/src/types/public-types.js +0 -0
  273. package/src/utils/html-escaping.d.ts +7 -0
  274. package/src/utils/html-escaping.js +6 -0
  275. package/src/utils/locals-utils.d.ts +1 -1
  276. package/src/utils/parse-cli-args.d.ts +4 -1
  277. package/src/utils/parse-cli-args.js +16 -1
  278. package/src/utils/resolve-work-dir.js +1 -1
  279. package/src/watchers/project-watcher.d.ts +4 -4
  280. package/src/watchers/project-watcher.js +35 -41
  281. package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
  282. package/src/watchers/project-watcher.test-helpers.js +5 -5
  283. package/CHANGELOG.md +0 -31
  284. package/src/adapters/abstract/application-adapter.ts +0 -337
  285. package/src/adapters/abstract/router-adapter.ts +0 -30
  286. package/src/adapters/abstract/server-adapter.ts +0 -79
  287. package/src/adapters/bun/client-bridge.ts +0 -62
  288. package/src/adapters/bun/create-app.ts +0 -189
  289. package/src/adapters/bun/hmr-manager.ts +0 -409
  290. package/src/adapters/bun/index.ts +0 -2
  291. package/src/adapters/bun/server-adapter.ts +0 -499
  292. package/src/adapters/bun/server-lifecycle.d.ts +0 -63
  293. package/src/adapters/bun/server-lifecycle.js +0 -92
  294. package/src/adapters/bun/server-lifecycle.ts +0 -124
  295. package/src/adapters/index.ts +0 -6
  296. package/src/adapters/node/bootstrap-dependency-resolver.d.ts +0 -44
  297. package/src/adapters/node/bootstrap-dependency-resolver.js +0 -172
  298. package/src/adapters/node/bootstrap-dependency-resolver.ts +0 -301
  299. package/src/adapters/node/create-app.ts +0 -179
  300. package/src/adapters/node/index.d.ts +0 -6
  301. package/src/adapters/node/index.js +0 -11
  302. package/src/adapters/node/index.ts +0 -16
  303. package/src/adapters/node/node-client-bridge.ts +0 -79
  304. package/src/adapters/node/node-hmr-manager.ts +0 -381
  305. package/src/adapters/node/runtime-adapter.d.ts +0 -46
  306. package/src/adapters/node/runtime-adapter.js +0 -306
  307. package/src/adapters/node/runtime-adapter.ts +0 -439
  308. package/src/adapters/node/server-adapter.ts +0 -488
  309. package/src/adapters/node/static-content-server.ts +0 -239
  310. package/src/adapters/node/write-runtime-manifest.d.ts +0 -26
  311. package/src/adapters/node/write-runtime-manifest.js +0 -12
  312. package/src/adapters/node/write-runtime-manifest.ts +0 -38
  313. package/src/adapters/shared/api-response.ts +0 -104
  314. package/src/adapters/shared/application-adapter.ts +0 -199
  315. package/src/adapters/shared/define-api-handler.ts +0 -66
  316. package/src/adapters/shared/explicit-static-route-matcher.ts +0 -140
  317. package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -127
  318. package/src/adapters/shared/fs-server-response-factory.ts +0 -118
  319. package/src/adapters/shared/fs-server-response-matcher.ts +0 -205
  320. package/src/adapters/shared/hmr-entrypoint-registrar.ts +0 -149
  321. package/src/adapters/shared/hmr-html-response.ts +0 -52
  322. package/src/adapters/shared/render-context.ts +0 -120
  323. package/src/adapters/shared/runtime-bootstrap.d.ts +0 -38
  324. package/src/adapters/shared/runtime-bootstrap.js +0 -43
  325. package/src/adapters/shared/runtime-bootstrap.ts +0 -79
  326. package/src/adapters/shared/server-adapter.ts +0 -489
  327. package/src/adapters/shared/server-route-handler.ts +0 -153
  328. package/src/adapters/shared/server-static-builder.ts +0 -166
  329. package/src/build/build-adapter.ts +0 -361
  330. package/src/build/build-manifest.ts +0 -54
  331. package/src/build/build-types.ts +0 -83
  332. package/src/build/dev-build-coordinator.d.ts +0 -74
  333. package/src/build/dev-build-coordinator.js +0 -161
  334. package/src/build/dev-build-coordinator.ts +0 -221
  335. package/src/build/esbuild-build-adapter.d.ts +0 -72
  336. package/src/build/esbuild-build-adapter.js +0 -422
  337. package/src/build/esbuild-build-adapter.ts +0 -559
  338. package/src/build/runtime-build-executor.ts +0 -34
  339. package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
  340. package/src/build/runtime-specifier-alias-plugin.js +0 -31
  341. package/src/build/runtime-specifier-alias-plugin.ts +0 -58
  342. package/src/config/config-builder.ts +0 -706
  343. package/src/constants.ts +0 -54
  344. package/src/create-app.ts +0 -87
  345. package/src/dev/sc-server.ts +0 -143
  346. package/src/eco/component-render-context.d.ts +0 -105
  347. package/src/eco/component-render-context.js +0 -87
  348. package/src/eco/component-render-context.ts +0 -224
  349. package/src/eco/eco.ts +0 -242
  350. package/src/eco/eco.types.ts +0 -221
  351. package/src/eco/eco.utils.ts +0 -89
  352. package/src/eco/global-injector-map.ts +0 -112
  353. package/src/eco/lazy-injector-map.ts +0 -120
  354. package/src/eco/module-dependencies.ts +0 -75
  355. package/src/errors/http-error.ts +0 -72
  356. package/src/errors/index.ts +0 -2
  357. package/src/errors/locals-access-error.ts +0 -7
  358. package/src/global/app-logger.ts +0 -4
  359. package/src/hmr/client/hmr-runtime.ts +0 -152
  360. package/src/hmr/hmr-strategy.ts +0 -172
  361. package/src/hmr/hmr.postcss.test.e2e.ts +0 -41
  362. package/src/hmr/hmr.test.e2e.ts +0 -66
  363. package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
  364. package/src/hmr/strategies/js-hmr-strategy.ts +0 -320
  365. package/src/index.browser.ts +0 -3
  366. package/src/index.ts +0 -5
  367. package/src/integrations/ghtml/ghtml-renderer.ts +0 -96
  368. package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
  369. package/src/internal-types.ts +0 -232
  370. package/src/plugins/alias-resolver-plugin.ts +0 -63
  371. package/src/plugins/eco-component-meta-plugin.ts +0 -481
  372. package/src/plugins/integration-plugin.ts +0 -226
  373. package/src/plugins/processor.ts +0 -240
  374. package/src/plugins/runtime-capability.ts +0 -14
  375. package/src/public-types.ts +0 -1317
  376. package/src/route-renderer/component-graph/component-graph-executor.d.ts +0 -32
  377. package/src/route-renderer/component-graph/component-graph-executor.js +0 -31
  378. package/src/route-renderer/component-graph/component-graph-executor.ts +0 -84
  379. package/src/route-renderer/component-graph/component-graph.d.ts +0 -42
  380. package/src/route-renderer/component-graph/component-graph.js +0 -72
  381. package/src/route-renderer/component-graph/component-graph.ts +0 -159
  382. package/src/route-renderer/component-graph/component-marker.d.ts +0 -52
  383. package/src/route-renderer/component-graph/component-marker.js +0 -46
  384. package/src/route-renderer/component-graph/component-marker.ts +0 -117
  385. package/src/route-renderer/component-graph/component-reference.d.ts +0 -10
  386. package/src/route-renderer/component-graph/component-reference.js +0 -19
  387. package/src/route-renderer/component-graph/component-reference.ts +0 -29
  388. package/src/route-renderer/component-graph/marker-graph-resolver.d.ts +0 -77
  389. package/src/route-renderer/component-graph/marker-graph-resolver.js +0 -95
  390. package/src/route-renderer/component-graph/marker-graph-resolver.ts +0 -155
  391. package/src/route-renderer/orchestration/integration-renderer.ts +0 -790
  392. package/src/route-renderer/orchestration/render-execution.service.d.ts +0 -103
  393. package/src/route-renderer/orchestration/render-execution.service.js +0 -121
  394. package/src/route-renderer/orchestration/render-execution.service.ts +0 -230
  395. package/src/route-renderer/orchestration/render-preparation.service.d.ts +0 -121
  396. package/src/route-renderer/orchestration/render-preparation.service.js +0 -332
  397. package/src/route-renderer/orchestration/render-preparation.service.ts +0 -476
  398. package/src/route-renderer/page-loading/dependency-resolver.ts +0 -612
  399. package/src/route-renderer/page-loading/page-module-loader.ts +0 -181
  400. package/src/route-renderer/route-renderer.ts +0 -115
  401. package/src/router/client/link-intent.test.browser.ts +0 -51
  402. package/src/router/client/link-intent.ts +0 -92
  403. package/src/router/client/navigation-coordinator.ts +0 -433
  404. package/src/router/server/fs-router-scanner.d.ts +0 -41
  405. package/src/router/server/fs-router-scanner.js +0 -156
  406. package/src/router/server/fs-router-scanner.ts +0 -219
  407. package/src/router/server/fs-router.d.ts +0 -26
  408. package/src/router/server/fs-router.js +0 -100
  409. package/src/router/server/fs-router.ts +0 -122
  410. package/src/services/assets/asset-processing-service/asset-processing.service.ts +0 -401
  411. package/src/services/assets/asset-processing-service/asset.factory.ts +0 -105
  412. package/src/services/assets/asset-processing-service/assets.types.ts +0 -113
  413. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +0 -95
  414. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +0 -78
  415. package/src/services/assets/asset-processing-service/index.ts +0 -5
  416. package/src/services/assets/asset-processing-service/processor.interface.ts +0 -27
  417. package/src/services/assets/asset-processing-service/processor.registry.ts +0 -18
  418. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +0 -82
  419. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +0 -95
  420. package/src/services/assets/asset-processing-service/processors/index.ts +0 -5
  421. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +0 -66
  422. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +0 -88
  423. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +0 -85
  424. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
  425. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -80
  426. package/src/services/assets/browser-bundle.service.ts +0 -53
  427. package/src/services/cache/cache.types.ts +0 -126
  428. package/src/services/cache/index.ts +0 -18
  429. package/src/services/cache/memory-cache-store.ts +0 -130
  430. package/src/services/cache/page-cache-service.ts +0 -202
  431. package/src/services/cache/page-request-cache-coordinator.service.ts +0 -131
  432. package/src/services/html/html-rewriter-provider.service.ts +0 -103
  433. package/src/services/html/html-transformer.service.ts +0 -279
  434. package/src/services/invalidation/development-invalidation.service.ts +0 -261
  435. package/src/services/module-loading/app-server-module-transpiler.service.ts +0 -52
  436. package/src/services/module-loading/page-module-import.service.ts +0 -200
  437. package/src/services/module-loading/server-loader.service.d.ts +0 -96
  438. package/src/services/module-loading/server-loader.service.js +0 -32
  439. package/src/services/module-loading/server-loader.service.ts +0 -130
  440. package/src/services/module-loading/server-module-transpiler.service.ts +0 -105
  441. package/src/services/runtime-manifest/node-runtime-manifest.service.d.ts +0 -35
  442. package/src/services/runtime-manifest/node-runtime-manifest.service.js +0 -60
  443. package/src/services/runtime-manifest/node-runtime-manifest.service.ts +0 -101
  444. package/src/services/runtime-state/dev-graph.service.ts +0 -217
  445. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +0 -136
  446. package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +0 -69
  447. package/src/services/runtime-state/runtime-specifier-registry.service.js +0 -37
  448. package/src/services/runtime-state/runtime-specifier-registry.service.ts +0 -96
  449. package/src/services/runtime-state/server-invalidation-state.service.ts +0 -68
  450. package/src/services/validation/schema-validation-service.ts +0 -204
  451. package/src/services/validation/standard-schema.types.ts +0 -68
  452. package/src/static-site-generator/static-site-generator.ts +0 -462
  453. package/src/utils/css.d.ts +0 -1
  454. package/src/utils/css.js +0 -7
  455. package/src/utils/css.ts +0 -5
  456. package/src/utils/deep-merge.ts +0 -47
  457. package/src/utils/hash.ts +0 -5
  458. package/src/utils/html.ts +0 -1
  459. package/src/utils/invariant.ts +0 -15
  460. package/src/utils/locals-utils.ts +0 -37
  461. package/src/utils/parse-cli-args.ts +0 -83
  462. package/src/utils/path-utils.module.ts +0 -14
  463. package/src/utils/resolve-work-dir.ts +0 -45
  464. package/src/utils/runtime.ts +0 -44
  465. package/src/utils/server-utils.module.ts +0 -67
  466. package/src/watchers/project-watcher.test-helpers.ts +0 -41
  467. package/src/watchers/project-watcher.ts +0 -363
  468. /package/src/{internal-types.js → adapters/shared/runtime-host.js} +0 -0
  469. /package/src/{public-types.js → adapters/shared/static-preview-host.js} +0 -0
  470. /package/src/{constants.d.ts → config/constants.d.ts} +0 -0
  471. /package/src/{constants.js → config/constants.js} +0 -0
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @module RouterAdapter
8
8
  */
9
- import type { Routes } from '../../internal-types.js';
9
+ import type { Routes } from '../../types/internal-types.js';
10
10
  /**
11
11
  * Abstract base class for router adapters across different runtimes
12
12
  */
@@ -6,8 +6,8 @@
6
6
  *
7
7
  * @module ServerAdapter
8
8
  */
9
- import type { EcoPagesAppConfig } from '../../internal-types.js';
10
- import type { ApiHandler } from '../../public-types.js';
9
+ import type { EcoPagesAppConfig } from '../../types/internal-types.js';
10
+ import type { ApiHandler } from '../../types/public-types.js';
11
11
  /**
12
12
  * Configuration options for all server adapters
13
13
  */
@@ -1,5 +1,5 @@
1
1
  import type { ServerWebSocket } from 'bun';
2
- import type { ClientBridgeEvent, IClientBridge } from '../../public-types';
2
+ import type { ClientBridgeEvent, IClientBridge } from '../../types/public-types.js';
3
3
  type BunSocket = ServerWebSocket<unknown>;
4
4
  /**
5
5
  * Manages WebSocket subscribers and broadcasts development events.
@@ -8,18 +8,12 @@
8
8
  * @module EcopagesApp
9
9
  */
10
10
  import type { Server } from 'bun';
11
- import type { EcoPagesAppConfig } from '../../internal-types.js';
12
- import type { ApiHandlerContext, RouteGroupBuilder } from '../../public-types.js';
13
- import { type ApplicationAdapterOptions } from '../abstract/application-adapter.js';
11
+ import type { ApiHandlerContext, RouteGroupBuilder } from '../../types/public-types.js';
14
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';
15
+ import type { EcopagesAppOptions } from '../create-app.js';
15
16
  import { type BunServerAdapterResult } from './server-adapter.js';
16
- /**
17
- * Configuration options for the Bun application adapter
18
- */
19
- export interface EcopagesAppOptions extends ApplicationAdapterOptions {
20
- appConfig: EcoPagesAppConfig;
21
- serverOptions?: Record<string, any>;
22
- }
23
17
  /**
24
18
  * Bun-specific route group builder that properly infers route params from path patterns.
25
19
  * When you define a route like `/posts/:slug`, the handler context will have
@@ -34,9 +28,15 @@ export type BunRouteGroupBuilder<WebSocketData = undefined, TContext extends Api
34
28
  * This class extends the {@link AbstractApplicationAdapter}
35
29
  * and provides methods for handling HTTP requests and managing the server.
36
30
  */
37
- export declare class EcopagesApp<WebSocketData = undefined> extends SharedApplicationAdapter<EcopagesAppOptions, Server<WebSocketData>, Request> {
31
+ export declare class BunEcopagesApp<WebSocketData = undefined> extends SharedApplicationAdapter<EcopagesAppOptions, Server<WebSocketData>, Request> {
38
32
  serverAdapter: BunServerAdapterResult | undefined;
39
33
  private server;
34
+ private readonly runtimeHost;
35
+ private readonly previewHost;
36
+ constructor(options: EcopagesAppOptions, dependencies: {
37
+ runtimeHost: RuntimeHost<Server<WebSocketData>, Bun.Serve.Options<WebSocketData>>;
38
+ previewHost: StaticPreviewHost;
39
+ });
40
40
  fetch(request: Request): Promise<Response>;
41
41
  /**
42
42
  * Complete the initialization of the server adapter by processing dynamic routes
@@ -57,4 +57,4 @@ export declare class EcopagesApp<WebSocketData = undefined> extends SharedApplic
57
57
  /**
58
58
  * Factory function to create a Bun application
59
59
  */
60
- export declare function createApp<WebSocketData = undefined>(options: EcopagesAppOptions): Promise<EcopagesApp<WebSocketData>>;
60
+ export declare function createApp<WebSocketData = undefined>(options: EcopagesAppOptions): Promise<BunEcopagesApp<WebSocketData>>;
@@ -1,12 +1,20 @@
1
- import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../constants.js";
1
+ import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
2
2
  import { appLogger } from "../../global/app-logger.js";
3
- import { getBunRuntime } from "../../utils/runtime.js";
4
- import {} from "../abstract/application-adapter.js";
5
3
  import { SharedApplicationAdapter } from "../shared/application-adapter.js";
4
+ import { resolveRuntimeBinding, resolveStaticRuntimeMode } from "../shared/runtime-app-bootstrap.js";
6
5
  import { createBunServerAdapter } from "./server-adapter.js";
7
- class EcopagesApp extends SharedApplicationAdapter {
6
+ import { BunStaticPreviewHost } from "./static-preview-host.js";
7
+ import { BunRuntimeHost } from "./runtime-host.js";
8
+ class BunEcopagesApp extends SharedApplicationAdapter {
8
9
  serverAdapter;
9
10
  server = null;
11
+ runtimeHost;
12
+ previewHost;
13
+ constructor(options, dependencies) {
14
+ super(options);
15
+ this.runtimeHost = dependencies.runtimeHost;
16
+ this.previewHost = dependencies.previewHost;
17
+ }
10
18
  async fetch(request) {
11
19
  if (!this.serverAdapter) {
12
20
  this.serverAdapter = await this.initializeServerAdapter();
@@ -28,34 +36,28 @@ class EcopagesApp extends SharedApplicationAdapter {
28
36
  * Initialize the Bun server adapter
29
37
  */
30
38
  async initializeServerAdapter() {
31
- const { dev } = this.cliArgs;
32
- const { port: cliPort, hostname: cliHostname } = this.cliArgs;
33
- const envPort = process.env.ECOPAGES_PORT ? process.env.ECOPAGES_PORT : void 0;
34
- const envHostname = process.env.ECOPAGES_HOSTNAME;
35
- const preferredPort = cliPort ?? envPort ?? DEFAULT_ECOPAGES_PORT;
36
- const preferredHostname = cliHostname ?? envHostname ?? DEFAULT_ECOPAGES_HOSTNAME;
39
+ const binding = resolveRuntimeBinding({
40
+ cliArgs: this.cliArgs,
41
+ serverOptions: this.serverOptions
42
+ });
37
43
  appLogger.debug("initializeServerAdapter", {
38
- dev,
39
- cliPort,
40
- cliHostname,
41
- envPort,
42
- envHostname,
43
- preferredPort,
44
- preferredHostname,
45
- composedUrl: `http://${preferredHostname}:${preferredPort}`
44
+ dev: this.cliArgs.dev,
45
+ cliPort: this.cliArgs.port,
46
+ cliHostname: this.cliArgs.hostname,
47
+ envPort: process.env.ECOPAGES_PORT,
48
+ envHostname: process.env.ECOPAGES_HOSTNAME,
49
+ preferredPort: binding.preferredPort,
50
+ preferredHostname: binding.preferredHostname,
51
+ composedUrl: binding.runtimeOrigin
46
52
  });
47
53
  return await createBunServerAdapter({
48
- runtimeOrigin: `http://${preferredHostname}:${preferredPort}`,
54
+ runtimeOrigin: binding.runtimeOrigin,
49
55
  appConfig: this.appConfig,
50
56
  apiHandlers: this.apiHandlers,
51
57
  staticRoutes: this.staticRoutes,
52
58
  errorHandler: this.errorHandler,
53
- options: { watch: dev },
54
- serveOptions: {
55
- port: preferredPort,
56
- hostname: preferredHostname,
57
- ...this.serverOptions
58
- }
59
+ options: { watch: binding.watch },
60
+ serveOptions: binding.serveOptions
59
61
  });
60
62
  }
61
63
  /**
@@ -68,11 +70,11 @@ class EcopagesApp extends SharedApplicationAdapter {
68
70
  this.serverAdapter = await this.initializeServerAdapter();
69
71
  }
70
72
  const { dev, preview, build } = this.cliArgs;
71
- const requiresFetchRuntime = this.appConfig.integrations.some(
72
- (integration) => integration.staticBuildStep === "fetch"
73
- );
74
- const canBuildWithoutRuntimeServer = (build || preview) && !requiresFetchRuntime;
75
- if (canBuildWithoutRuntimeServer) {
73
+ const staticRuntimeMode = resolveStaticRuntimeMode({
74
+ appConfig: this.appConfig,
75
+ cliArgs: this.cliArgs
76
+ });
77
+ if (staticRuntimeMode.canBuildWithoutRuntimeServer) {
76
78
  appLogger.debugTime("Building static pages");
77
79
  await this.serverAdapter.buildStatic({ preview });
78
80
  appLogger.debugTimeEnd("Building static pages");
@@ -83,23 +85,41 @@ class EcopagesApp extends SharedApplicationAdapter {
83
85
  }
84
86
  const enableHmr = dev || !preview && !build;
85
87
  const serverOptions = this.serverAdapter.getServerOptions({ enableHmr });
86
- const bun = getBunRuntime();
87
- if (!bun) {
88
- throw new Error("Bun runtime is required for the Bun adapter");
89
- }
90
- const bunServer = bun.serve(serverOptions);
91
- this.server = bunServer;
88
+ const configuredHostname = String(serverOptions.hostname ?? DEFAULT_ECOPAGES_HOSTNAME);
89
+ const configuredPort = Number(serverOptions.port ?? DEFAULT_ECOPAGES_PORT);
90
+ const runtimeServerOptions = (preview || build) && staticRuntimeMode.requiresFetchRuntime ? {
91
+ ...serverOptions,
92
+ port: 0
93
+ } : serverOptions;
94
+ this.server = await this.runtimeHost.start({
95
+ serveOptions: runtimeServerOptions,
96
+ handleRequest: async () => new Response(null, { status: 500 }),
97
+ onError: async () => {
98
+ }
99
+ });
92
100
  await this.serverAdapter.completeInitialization(this.server).catch((error) => {
93
101
  appLogger.error(`Failed to complete initialization: ${error}`);
94
102
  });
95
103
  if (!this.server) {
96
104
  throw new Error("Server failed to start");
97
105
  }
98
- appLogger.info(`Server running at http://${this.server.hostname}:${this.server.port}`);
106
+ appLogger.info(
107
+ `Server running at ${this.runtimeHost.getOrigin(this.server, runtimeServerOptions)}`
108
+ );
99
109
  if (build || preview) {
100
110
  appLogger.debugTime("Building static pages");
101
- await this.serverAdapter.buildStatic({ preview });
102
- this.server.stop(true);
111
+ await this.serverAdapter.buildStatic({ preview: false });
112
+ await this.runtimeHost.stop(this.server, { force: true });
113
+ if (preview) {
114
+ const previewPort = await this.previewHost.start({
115
+ appConfig: this.appConfig,
116
+ hostname: configuredHostname,
117
+ port: configuredPort
118
+ });
119
+ if (previewPort) {
120
+ appLogger.info(`Preview running at http://${configuredHostname}:${previewPort}`);
121
+ }
122
+ }
103
123
  appLogger.debugTimeEnd("Building static pages");
104
124
  if (build) {
105
125
  process.exit(0);
@@ -109,9 +129,12 @@ class EcopagesApp extends SharedApplicationAdapter {
109
129
  }
110
130
  }
111
131
  async function createApp(options) {
112
- return new EcopagesApp(options);
132
+ return new BunEcopagesApp(options, {
133
+ runtimeHost: new BunRuntimeHost(),
134
+ previewHost: new BunStaticPreviewHost()
135
+ });
113
136
  }
114
137
  export {
115
- EcopagesApp,
138
+ BunEcopagesApp,
116
139
  createApp
117
140
  };
@@ -1,17 +1,13 @@
1
1
  import type { WebSocketHandler } from 'bun';
2
- import type { DefaultHmrContext, EcoPagesAppConfig, IHmrManager } from '../../internal-types';
3
- import type { EcoBuildPlugin } from '../../build/build-types.js';
4
- import { type HmrStrategy } from '../../hmr/hmr-strategy';
5
- import type { ClientBridge } from './client-bridge';
6
- import type { ClientBridgeEvent } from '../../public-types';
2
+ import type { EcoPagesAppConfig } from '../../types/internal-types.js';
3
+ import type { ClientBridge } from './client-bridge.js';
4
+ import { InMemoryEntrypointDependencyGraph, type EntrypointDependencyGraph } from '../../services/runtime-state/entrypoint-dependency-graph.service.js';
5
+ import { SharedHmrManager } from '../shared/shared-hmr-manager.js';
7
6
  type BunSocketHandler = WebSocketHandler<unknown>;
8
7
  export interface HmrManagerParams {
9
8
  appConfig: EcoPagesAppConfig;
10
9
  bridge: ClientBridge;
11
10
  }
12
- type HandleFileChangeOptions = {
13
- broadcast?: boolean;
14
- };
15
11
  /**
16
12
  * Bun development HMR manager.
17
13
  *
@@ -20,124 +16,32 @@ type HandleFileChangeOptions = {
20
16
  * strict integration-owned registrations, while generic script assets use their
21
17
  * own explicit registration path.
22
18
  */
23
- export declare class HmrManager implements IHmrManager {
24
- private static readonly entrypointRegistrationTimeoutMs;
25
- readonly appConfig: EcoPagesAppConfig;
26
- private readonly bridge;
27
- /** Keep track of watchers */
28
- private watchers;
29
- /** entrypoint -> output path */
30
- private watchedFiles;
31
- private entrypointRegistrations;
32
- private distDir;
33
- private plugins;
34
- private enabled;
35
- private strategies;
36
- private readonly entrypointRegistrar;
37
- private readonly browserBundleService;
38
- private readonly entrypointDependencyGraph;
39
- private readonly runtimeSpecifierRegistry;
40
- private readonly serverModuleTranspiler;
19
+ export declare class HmrManager extends SharedHmrManager {
41
20
  private wsHandler;
42
- constructor({ appConfig, bridge }: HmrManagerParams);
43
- /**
44
- * Ensures the HMR output directory exists.
45
- *
46
- * This must not remove the directory because multiple app processes
47
- * can share the same dist path during e2e runs.
48
- */
49
- private cleanDistDir;
50
21
  /**
51
- * Returns whether the generic JS strategy may rebuild an entrypoint.
22
+ * Creates the Bun HMR manager around the shared HMR orchestration pipeline.
52
23
  *
53
24
  * @remarks
54
- * Integration-owned page entrypoints are excluded so a shared dependency
55
- * invalidation cannot replace framework-owned browser output with a generic JS
56
- * rebuild.
25
+ * Bun delegates route watching, rebuild dispatch, and runtime bundle
26
+ * generation to `SharedHmrManager`. The Bun subclass only supplies the
27
+ * transport-specific dependency graph policy and websocket hook surface.
57
28
  */
58
- private shouldJsStrategyProcessEntrypoint;
59
- /**
60
- * Initializes core HMR strategies.
61
- * Strategies are evaluated in priority order (highest first).
62
- */
63
- private initializeStrategies;
29
+ constructor({ appConfig, bridge }: HmrManagerParams);
64
30
  /**
65
- * Registers a custom HMR strategy.
66
- * Used by integrations to provide framework-specific HMR handling.
67
- * @param strategy - The HMR strategy to register
31
+ * Reuses the shared in-memory dependency graph when possible and otherwise
32
+ * creates the Bun-compatible default graph implementation.
68
33
  */
69
- registerStrategy(strategy: HmrStrategy): void;
70
- setPlugins(plugins: EcoBuildPlugin[]): void;
71
- setEnabled(enabled: boolean): void;
72
- isEnabled(): boolean;
34
+ protected createEntrypointDependencyGraph(existingEntrypointDependencyGraph: EntrypointDependencyGraph): InMemoryEntrypointDependencyGraph;
73
35
  /**
74
- * Registers runtime bare-specifier mappings exposed by integrations.
36
+ * Returns the Bun websocket hooks that attach and detach live HMR subscribers.
75
37
  *
76
38
  * @remarks
77
- * These mappings are consumed by framework-owned HMR strategies that preserve
78
- * shared runtime imports in browser bundles. The registry stays generic so
79
- * these mappings can later support broader import-map-style runtime features
80
- * without moving integration semantics into core.
39
+ * `SharedHmrManager` stores the bridge behind the transport-agnostic
40
+ * `IClientBridge` contract because most HMR coordination only needs broadcast
41
+ * behavior. Bun connection lifecycle wiring is the point where that abstraction
42
+ * intentionally narrows back to the concrete Bun bridge so websocket instances
43
+ * can be tracked directly.
81
44
  */
82
- registerSpecifierMap(map: Record<string, string>): void;
83
45
  getWebSocketHandler(): BunSocketHandler;
84
- /**
85
- * Builds the client-side HMR runtime script.
86
- */
87
- buildRuntime(): Promise<void>;
88
- getRuntimePath(): string;
89
- broadcast(event: ClientBridgeEvent): void;
90
- handleFileChange(filePath: string, options?: HandleFileChangeOptions): Promise<void>;
91
- getOutputUrl(entrypointPath: string): string | undefined;
92
- getWatchedFiles(): Map<string, string>;
93
- getSpecifierMap(): Map<string, string>;
94
- getDistDir(): string;
95
- getPlugins(): EcoBuildPlugin[];
96
- getDefaultContext(): DefaultHmrContext;
97
- private clearFailedEntrypointRegistration;
98
- /**
99
- * Registers one integration-owned page entrypoint.
100
- *
101
- * @remarks
102
- * Concurrent callers share one in-flight registration. The registration is
103
- * cleared from the dedupe map when it settles so later callers cannot inherit a
104
- * stale promise.
105
- */
106
- registerEntrypoint(entrypointPath: string): Promise<string>;
107
- /**
108
- * Registers one generic script entrypoint.
109
- *
110
- * @remarks
111
- * This explicit path keeps the page-entrypoint contract strict while still
112
- * allowing generic script assets to use the fallback build path.
113
- */
114
- registerScriptEntrypoint(entrypointPath: string): Promise<string>;
115
- /**
116
- * Performs strict integration-owned registration for one normalized path.
117
- *
118
- * @remarks
119
- * The manager reserves the output URL, removes any stale emitted file, runs
120
- * strategy processing without broadcasting, and then verifies that the owning
121
- * integration emitted the expected file.
122
- */
123
- private emitStrictEntrypoint;
124
- /**
125
- * Performs registration for a generic script asset.
126
- *
127
- * @remarks
128
- * Strategies get the first chance to emit output. If no output exists after
129
- * that pass, Bun falls back to the generic browser build for this explicit
130
- * script-only path.
131
- */
132
- private emitScriptEntrypoint;
133
- /**
134
- * Stops active watchers and releases retained registration state.
135
- *
136
- * @remarks
137
- * Emitted `_hmr` files remain on disk because parallel app processes may share
138
- * the same dist directory. The in-memory indexes are cleared so stale
139
- * entrypoints and specifier maps cannot leak through a reused manager object.
140
- */
141
- stop(): void;
142
46
  }
143
47
  export {};