@ecopages/core 0.2.0-alpha.23 → 0.2.0-alpha.25

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 (515) hide show
  1. package/package.json +93 -226
  2. package/src/adapters/abstract/application-adapter.test.ts +172 -0
  3. package/src/adapters/abstract/application-adapter.ts +379 -0
  4. package/src/adapters/abstract/router-adapter.ts +30 -0
  5. package/src/adapters/abstract/server-adapter.ts +79 -0
  6. package/src/adapters/bun/client-bridge.ts +62 -0
  7. package/src/adapters/bun/create-app.ts +180 -0
  8. package/src/adapters/bun/hmr-manager.test.ts +267 -0
  9. package/src/adapters/bun/hmr-manager.ts +406 -0
  10. package/src/adapters/bun/index.ts +2 -0
  11. package/src/adapters/bun/server-adapter.ts +500 -0
  12. package/src/adapters/bun/server-lifecycle.ts +124 -0
  13. package/src/adapters/create-app.test.ts +10 -0
  14. package/src/adapters/create-app.ts +91 -0
  15. package/src/adapters/index.ts +2 -0
  16. package/src/adapters/node/create-app.test.ts +53 -0
  17. package/src/adapters/node/create-app.ts +183 -0
  18. package/src/adapters/node/node-client-bridge.test.ts +198 -0
  19. package/src/adapters/node/node-client-bridge.ts +79 -0
  20. package/src/adapters/node/node-hmr-manager.test.ts +322 -0
  21. package/src/adapters/node/node-hmr-manager.ts +378 -0
  22. package/src/adapters/node/server-adapter.ts +502 -0
  23. package/src/adapters/node/static-content-server.test.ts +60 -0
  24. package/src/adapters/node/static-content-server.ts +239 -0
  25. package/src/adapters/shared/api-response.test.ts +97 -0
  26. package/src/adapters/shared/api-response.ts +104 -0
  27. package/src/adapters/shared/application-adapter.ts +199 -0
  28. package/src/adapters/shared/define-api-handler.ts +66 -0
  29. package/src/adapters/shared/explicit-static-route-matcher.test.ts +381 -0
  30. package/src/adapters/shared/explicit-static-route-matcher.ts +140 -0
  31. package/src/adapters/shared/file-route-middleware-pipeline.test.ts +90 -0
  32. package/src/adapters/shared/file-route-middleware-pipeline.ts +127 -0
  33. package/src/adapters/shared/fs-server-response-factory.test.ts +187 -0
  34. package/src/adapters/shared/fs-server-response-factory.ts +118 -0
  35. package/src/adapters/shared/fs-server-response-matcher.test.ts +285 -0
  36. package/src/adapters/shared/fs-server-response-matcher.ts +189 -0
  37. package/src/adapters/shared/hmr-entrypoint-registrar.ts +149 -0
  38. package/src/adapters/shared/hmr-html-response.ts +52 -0
  39. package/src/adapters/shared/hmr-manager.contract.test.ts +232 -0
  40. package/src/adapters/shared/hmr-manager.dispatch.test.ts +220 -0
  41. package/src/adapters/shared/render-context.test.ts +150 -0
  42. package/src/adapters/shared/render-context.ts +123 -0
  43. package/src/adapters/shared/runtime-bootstrap.ts +79 -0
  44. package/src/adapters/shared/server-adapter.test.ts +77 -0
  45. package/src/adapters/shared/server-adapter.ts +493 -0
  46. package/src/adapters/shared/server-route-handler.test.ts +110 -0
  47. package/src/adapters/shared/server-route-handler.ts +153 -0
  48. package/src/adapters/shared/server-static-builder.test.ts +338 -0
  49. package/src/adapters/shared/server-static-builder.ts +170 -0
  50. package/src/build/build-adapter-serialization.test.ts +281 -0
  51. package/src/build/build-adapter.test.ts +1240 -0
  52. package/src/build/build-adapter.ts +1012 -0
  53. package/src/build/build-manifest.ts +54 -0
  54. package/src/build/build-types.ts +83 -0
  55. package/src/build/dev-build-coordinator.ts +220 -0
  56. package/src/build/esbuild-build-adapter.ts +660 -0
  57. package/src/build/runtime-build-executor.test.ts +81 -0
  58. package/src/build/runtime-build-executor.ts +40 -0
  59. package/src/build/runtime-specifier-alias-plugin.test.ts +67 -0
  60. package/src/build/runtime-specifier-alias-plugin.ts +62 -0
  61. package/src/build/runtime-specifier-aliases.ts +135 -0
  62. package/src/config/config-builder.test.ts +443 -0
  63. package/src/config/config-builder.ts +742 -0
  64. package/src/config/config-builder.typecheck.test.ts +96 -0
  65. package/src/config/{constants.d.ts → constants.ts} +22 -13
  66. package/src/dev/sc-server.ts +143 -0
  67. package/src/eco/eco.browser.test.ts +43 -0
  68. package/src/eco/eco.browser.ts +118 -0
  69. package/src/eco/eco.test.ts +654 -0
  70. package/src/eco/eco.ts +205 -0
  71. package/src/eco/eco.types.ts +221 -0
  72. package/src/eco/eco.utils.test.ts +219 -0
  73. package/src/eco/eco.utils.ts +5 -0
  74. package/src/eco/global-injector-map.test.ts +42 -0
  75. package/src/eco/global-injector-map.ts +112 -0
  76. package/src/eco/lazy-injector-map.test.ts +66 -0
  77. package/src/eco/lazy-injector-map.ts +120 -0
  78. package/src/eco/module-dependencies.test.ts +30 -0
  79. package/src/eco/module-dependencies.ts +75 -0
  80. package/src/errors/http-error.test.ts +134 -0
  81. package/src/errors/http-error.ts +72 -0
  82. package/src/errors/{index.d.ts → index.ts} +2 -2
  83. package/src/errors/locals-access-error.ts +7 -0
  84. package/src/global/app-logger.ts +4 -0
  85. package/src/global/utils.test.ts +12 -0
  86. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-have-HMR-script-injected-in-page-1.png +0 -0
  87. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
  88. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
  89. package/src/hmr/client/hmr-runtime.ts +160 -0
  90. package/src/hmr/hmr-strategy.test.ts +124 -0
  91. package/src/hmr/hmr-strategy.ts +177 -0
  92. package/src/hmr/hmr.postcss.test.e2e.ts +41 -0
  93. package/src/hmr/hmr.test.e2e.ts +66 -0
  94. package/src/hmr/strategies/default-hmr-strategy.ts +60 -0
  95. package/src/hmr/strategies/js-hmr-strategy.test.ts +335 -0
  96. package/src/hmr/strategies/js-hmr-strategy.ts +320 -0
  97. package/src/index.browser.ts +3 -0
  98. package/src/index.ts +15 -0
  99. package/src/integrations/ghtml/ghtml-renderer.test.ts +253 -0
  100. package/src/integrations/ghtml/ghtml-renderer.ts +97 -0
  101. package/src/integrations/ghtml/ghtml.constants.ts +1 -0
  102. package/src/integrations/ghtml/ghtml.plugin.ts +28 -0
  103. package/src/plugins/alias-resolver-plugin.test.ts +41 -0
  104. package/src/plugins/alias-resolver-plugin.ts +63 -0
  105. package/src/plugins/eco-component-meta-plugin.test.ts +406 -0
  106. package/src/plugins/eco-component-meta-plugin.ts +495 -0
  107. package/src/plugins/foreign-jsx-override-plugin.test.ts +65 -0
  108. package/src/plugins/foreign-jsx-override-plugin.ts +67 -0
  109. package/src/plugins/integration-plugin.test.ts +156 -0
  110. package/src/plugins/integration-plugin.ts +311 -0
  111. package/src/plugins/processor.test.ts +148 -0
  112. package/src/plugins/processor.ts +240 -0
  113. package/src/plugins/{runtime-capability.d.ts → runtime-capability.ts} +8 -3
  114. package/src/plugins/source-transform.test.ts +82 -0
  115. package/src/plugins/source-transform.ts +123 -0
  116. package/src/route-renderer/orchestration/boundary-planning.service.ts +146 -0
  117. package/src/route-renderer/orchestration/component-render-context.ts +318 -0
  118. package/src/route-renderer/orchestration/integration-renderer.test.ts +2088 -0
  119. package/src/route-renderer/orchestration/integration-renderer.ts +1285 -0
  120. package/src/route-renderer/orchestration/page-packaging.service.test.ts +76 -0
  121. package/src/route-renderer/orchestration/page-packaging.service.ts +85 -0
  122. package/src/route-renderer/orchestration/processed-asset-dedupe.ts +25 -0
  123. package/src/route-renderer/orchestration/queued-boundary-runtime.service.test.ts +319 -0
  124. package/src/route-renderer/orchestration/queued-boundary-runtime.service.ts +289 -0
  125. package/src/route-renderer/orchestration/render-execution.service.test.ts +196 -0
  126. package/src/route-renderer/orchestration/render-execution.service.ts +182 -0
  127. package/src/route-renderer/orchestration/render-output.utils.ts +302 -0
  128. package/src/route-renderer/orchestration/render-preparation.service.test.ts +569 -0
  129. package/src/route-renderer/orchestration/render-preparation.service.ts +508 -0
  130. package/src/route-renderer/orchestration/route-shell-composer.service.ts +162 -0
  131. package/src/route-renderer/orchestration/template-serialization.test.ts +110 -0
  132. package/src/route-renderer/orchestration/template-serialization.ts +117 -0
  133. package/src/route-renderer/page-loading/component-dependency-collection.ts +196 -0
  134. package/src/route-renderer/page-loading/declared-asset-collection.ts +156 -0
  135. package/src/route-renderer/page-loading/dependency-resolver.test.ts +665 -0
  136. package/src/route-renderer/page-loading/dependency-resolver.ts +150 -0
  137. package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +75 -0
  138. package/src/route-renderer/page-loading/lazy-entry-collection.ts +167 -0
  139. package/src/route-renderer/page-loading/lazy-trigger-planning.ts +74 -0
  140. package/src/route-renderer/page-loading/module-declaration-aggregation.ts +60 -0
  141. package/src/route-renderer/page-loading/module-declaration-scripts.ts +16 -0
  142. package/src/route-renderer/page-loading/page-dependency-bundling.ts +205 -0
  143. package/src/route-renderer/page-loading/page-module-loader.test.ts +183 -0
  144. package/src/route-renderer/page-loading/page-module-loader.ts +184 -0
  145. package/src/route-renderer/route-renderer.ts +136 -0
  146. package/src/router/client/link-intent.test.browser.ts +51 -0
  147. package/src/router/client/link-intent.ts +92 -0
  148. package/src/router/client/navigation-coordinator.test.ts +237 -0
  149. package/src/router/client/navigation-coordinator.ts +453 -0
  150. package/src/router/server/fs-router-scanner.test.ts +83 -0
  151. package/src/router/server/fs-router-scanner.ts +224 -0
  152. package/src/router/server/fs-router.test.ts +214 -0
  153. package/src/router/server/fs-router.ts +122 -0
  154. package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +66 -0
  155. package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +476 -0
  156. package/src/services/assets/asset-processing-service/asset-processing.service.ts +345 -0
  157. package/src/services/assets/asset-processing-service/asset.factory.test.ts +63 -0
  158. package/src/services/assets/asset-processing-service/asset.factory.ts +105 -0
  159. package/src/services/assets/asset-processing-service/assets.types.ts +125 -0
  160. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +74 -0
  161. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +96 -0
  162. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +67 -0
  163. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +78 -0
  164. package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +104 -0
  165. package/src/services/assets/asset-processing-service/index.ts +5 -0
  166. package/src/services/assets/asset-processing-service/{processor.interface.d.ts → processor.interface.ts} +10 -5
  167. package/src/services/assets/asset-processing-service/processor.registry.ts +18 -0
  168. package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +59 -0
  169. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +83 -0
  170. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +174 -0
  171. package/src/services/assets/asset-processing-service/processors/index.ts +5 -0
  172. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +192 -0
  173. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +134 -0
  174. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +326 -0
  175. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +110 -0
  176. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +227 -0
  177. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +87 -0
  178. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +261 -0
  179. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +71 -0
  180. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +81 -0
  181. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +65 -0
  182. package/src/services/assets/browser-bundle.service.test.ts +66 -0
  183. package/src/services/assets/browser-bundle.service.ts +109 -0
  184. package/src/services/cache/cache.types.ts +126 -0
  185. package/src/services/cache/index.ts +18 -0
  186. package/src/services/cache/memory-cache-store.test.ts +225 -0
  187. package/src/services/cache/memory-cache-store.ts +130 -0
  188. package/src/services/cache/page-cache-service.test.ts +175 -0
  189. package/src/services/cache/page-cache-service.ts +202 -0
  190. package/src/services/cache/page-request-cache-coordinator.service.test.ts +79 -0
  191. package/src/services/cache/page-request-cache-coordinator.service.ts +131 -0
  192. package/src/services/html/html-rewriter-provider.service.test.ts +183 -0
  193. package/src/services/html/html-rewriter-provider.service.ts +104 -0
  194. package/src/services/html/html-transformer.service.test.ts +479 -0
  195. package/src/services/html/html-transformer.service.ts +275 -0
  196. package/src/services/invalidation/development-invalidation.service.test.ts +87 -0
  197. package/src/services/invalidation/development-invalidation.service.ts +262 -0
  198. package/src/services/module-loading/app-module-loader.service.ts +9 -0
  199. package/src/services/module-loading/app-server-module-transpiler.service.test.ts +130 -0
  200. package/src/services/module-loading/app-server-module-transpiler.service.ts +143 -0
  201. package/src/services/module-loading/host-module-loader-registry.ts +15 -0
  202. package/src/services/module-loading/{module-loading-types.d.ts → module-loading-types.ts} +1 -0
  203. package/src/services/module-loading/node-bootstrap-plugin.test.ts +335 -0
  204. package/src/services/module-loading/node-bootstrap-plugin.ts +297 -0
  205. package/src/services/module-loading/page-module-import.service.test.ts +504 -0
  206. package/src/services/module-loading/page-module-import.service.ts +252 -0
  207. package/src/services/module-loading/server-module-transpiler.service.test.ts +243 -0
  208. package/src/services/module-loading/server-module-transpiler.service.ts +104 -0
  209. package/src/services/module-loading/source-module-support.ts +19 -0
  210. package/src/services/runtime-state/dev-graph.service.ts +217 -0
  211. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +136 -0
  212. package/src/services/runtime-state/runtime-specifier-registry.service.ts +96 -0
  213. package/src/services/runtime-state/server-invalidation-state.service.ts +68 -0
  214. package/src/services/validation/schema-validation-service.test.ts +223 -0
  215. package/src/services/validation/schema-validation-service.ts +204 -0
  216. package/src/services/validation/{standard-schema.types.d.ts → standard-schema.types.ts} +20 -17
  217. package/src/static-site-generator/static-site-generator.test.ts +316 -0
  218. package/src/static-site-generator/static-site-generator.ts +462 -0
  219. package/src/types/internal-types.ts +242 -0
  220. package/src/types/public-types.ts +1443 -0
  221. package/src/utils/deep-merge.test.ts +114 -0
  222. package/src/utils/deep-merge.ts +47 -0
  223. package/src/utils/hash.ts +5 -0
  224. package/src/utils/html-escaping.ts +9 -0
  225. package/src/utils/invariant.test.ts +22 -0
  226. package/src/utils/invariant.ts +15 -0
  227. package/src/utils/locals-utils.ts +37 -0
  228. package/src/utils/parse-cli-args.test.ts +69 -0
  229. package/src/utils/parse-cli-args.ts +105 -0
  230. package/src/utils/path-utils.module.ts +14 -0
  231. package/src/utils/path-utils.test.ts +15 -0
  232. package/src/utils/resolve-work-dir.ts +45 -0
  233. package/src/utils/runtime.ts +44 -0
  234. package/src/utils/server-utils.module.ts +67 -0
  235. package/src/utils/server-utils.test.ts +38 -0
  236. package/src/watchers/project-watcher.integration.test.ts +337 -0
  237. package/src/watchers/project-watcher.test-helpers.ts +41 -0
  238. package/src/watchers/project-watcher.test.ts +768 -0
  239. package/src/watchers/project-watcher.ts +357 -0
  240. package/CHANGELOG.md +0 -51
  241. package/src/adapters/abstract/application-adapter.d.ts +0 -194
  242. package/src/adapters/abstract/application-adapter.js +0 -121
  243. package/src/adapters/abstract/router-adapter.d.ts +0 -26
  244. package/src/adapters/abstract/router-adapter.js +0 -5
  245. package/src/adapters/abstract/server-adapter.d.ts +0 -69
  246. package/src/adapters/abstract/server-adapter.js +0 -15
  247. package/src/adapters/bun/client-bridge.d.ts +0 -34
  248. package/src/adapters/bun/client-bridge.js +0 -48
  249. package/src/adapters/bun/create-app.d.ts +0 -52
  250. package/src/adapters/bun/create-app.js +0 -116
  251. package/src/adapters/bun/hmr-manager.d.ts +0 -143
  252. package/src/adapters/bun/hmr-manager.js +0 -333
  253. package/src/adapters/bun/index.d.ts +0 -2
  254. package/src/adapters/bun/index.js +0 -8
  255. package/src/adapters/bun/server-adapter.d.ts +0 -155
  256. package/src/adapters/bun/server-adapter.js +0 -374
  257. package/src/adapters/bun/server-lifecycle.d.ts +0 -63
  258. package/src/adapters/bun/server-lifecycle.js +0 -92
  259. package/src/adapters/create-app.d.ts +0 -20
  260. package/src/adapters/create-app.js +0 -66
  261. package/src/adapters/index.d.ts +0 -2
  262. package/src/adapters/index.js +0 -8
  263. package/src/adapters/node/create-app.d.ts +0 -18
  264. package/src/adapters/node/create-app.js +0 -149
  265. package/src/adapters/node/node-client-bridge.d.ts +0 -26
  266. package/src/adapters/node/node-client-bridge.js +0 -66
  267. package/src/adapters/node/node-hmr-manager.d.ts +0 -133
  268. package/src/adapters/node/node-hmr-manager.js +0 -311
  269. package/src/adapters/node/server-adapter.d.ts +0 -161
  270. package/src/adapters/node/server-adapter.js +0 -359
  271. package/src/adapters/node/static-content-server.d.ts +0 -60
  272. package/src/adapters/node/static-content-server.js +0 -194
  273. package/src/adapters/shared/api-response.d.ts +0 -52
  274. package/src/adapters/shared/api-response.js +0 -96
  275. package/src/adapters/shared/application-adapter.d.ts +0 -18
  276. package/src/adapters/shared/application-adapter.js +0 -90
  277. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  278. package/src/adapters/shared/define-api-handler.js +0 -15
  279. package/src/adapters/shared/explicit-static-route-matcher.d.ts +0 -38
  280. package/src/adapters/shared/explicit-static-route-matcher.js +0 -103
  281. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +0 -65
  282. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -99
  283. package/src/adapters/shared/fs-server-response-factory.d.ts +0 -19
  284. package/src/adapters/shared/fs-server-response-factory.js +0 -97
  285. package/src/adapters/shared/fs-server-response-matcher.d.ts +0 -67
  286. package/src/adapters/shared/fs-server-response-matcher.js +0 -147
  287. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  288. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  289. package/src/adapters/shared/hmr-html-response.d.ts +0 -22
  290. package/src/adapters/shared/hmr-html-response.js +0 -32
  291. package/src/adapters/shared/render-context.d.ts +0 -15
  292. package/src/adapters/shared/render-context.js +0 -72
  293. package/src/adapters/shared/runtime-bootstrap.d.ts +0 -38
  294. package/src/adapters/shared/runtime-bootstrap.js +0 -43
  295. package/src/adapters/shared/server-adapter.d.ts +0 -97
  296. package/src/adapters/shared/server-adapter.js +0 -390
  297. package/src/adapters/shared/server-route-handler.d.ts +0 -89
  298. package/src/adapters/shared/server-route-handler.js +0 -111
  299. package/src/adapters/shared/server-static-builder.d.ts +0 -70
  300. package/src/adapters/shared/server-static-builder.js +0 -100
  301. package/src/build/build-adapter.d.ts +0 -239
  302. package/src/build/build-adapter.js +0 -642
  303. package/src/build/build-manifest.d.ts +0 -27
  304. package/src/build/build-manifest.js +0 -30
  305. package/src/build/build-types.d.ts +0 -57
  306. package/src/build/build-types.js +0 -0
  307. package/src/build/dev-build-coordinator.d.ts +0 -72
  308. package/src/build/dev-build-coordinator.js +0 -154
  309. package/src/build/esbuild-build-adapter.d.ts +0 -78
  310. package/src/build/esbuild-build-adapter.js +0 -505
  311. package/src/build/runtime-build-executor.d.ts +0 -14
  312. package/src/build/runtime-build-executor.js +0 -22
  313. package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
  314. package/src/build/runtime-specifier-alias-plugin.js +0 -35
  315. package/src/build/runtime-specifier-aliases.d.ts +0 -5
  316. package/src/build/runtime-specifier-aliases.js +0 -95
  317. package/src/config/config-builder.d.ts +0 -252
  318. package/src/config/config-builder.js +0 -603
  319. package/src/config/constants.js +0 -25
  320. package/src/dev/sc-server.d.ts +0 -30
  321. package/src/dev/sc-server.js +0 -111
  322. package/src/eco/eco.browser.d.ts +0 -2
  323. package/src/eco/eco.browser.js +0 -83
  324. package/src/eco/eco.d.ts +0 -9
  325. package/src/eco/eco.js +0 -85
  326. package/src/eco/eco.types.d.ts +0 -178
  327. package/src/eco/eco.types.js +0 -0
  328. package/src/eco/eco.utils.d.ts +0 -1
  329. package/src/eco/eco.utils.js +0 -10
  330. package/src/eco/global-injector-map.d.ts +0 -16
  331. package/src/eco/global-injector-map.js +0 -80
  332. package/src/eco/lazy-injector-map.d.ts +0 -8
  333. package/src/eco/lazy-injector-map.js +0 -70
  334. package/src/eco/module-dependencies.d.ts +0 -18
  335. package/src/eco/module-dependencies.js +0 -49
  336. package/src/errors/http-error.d.ts +0 -31
  337. package/src/errors/http-error.js +0 -50
  338. package/src/errors/index.js +0 -4
  339. package/src/errors/locals-access-error.d.ts +0 -4
  340. package/src/errors/locals-access-error.js +0 -9
  341. package/src/global/app-logger.d.ts +0 -2
  342. package/src/global/app-logger.js +0 -6
  343. package/src/hmr/client/hmr-runtime.d.ts +0 -5
  344. package/src/hmr/client/hmr-runtime.js +0 -109
  345. package/src/hmr/hmr-strategy.d.ts +0 -162
  346. package/src/hmr/hmr-strategy.js +0 -44
  347. package/src/hmr/hmr.postcss.test.e2e.d.ts +0 -1
  348. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  349. package/src/hmr/hmr.test.e2e.d.ts +0 -1
  350. package/src/hmr/hmr.test.e2e.js +0 -43
  351. package/src/hmr/strategies/default-hmr-strategy.d.ts +0 -43
  352. package/src/hmr/strategies/default-hmr-strategy.js +0 -34
  353. package/src/hmr/strategies/js-hmr-strategy.d.ts +0 -139
  354. package/src/hmr/strategies/js-hmr-strategy.js +0 -178
  355. package/src/index.browser.d.ts +0 -3
  356. package/src/index.browser.js +0 -4
  357. package/src/index.d.ts +0 -6
  358. package/src/index.js +0 -21
  359. package/src/integrations/ghtml/ghtml-renderer.d.ts +0 -20
  360. package/src/integrations/ghtml/ghtml-renderer.js +0 -63
  361. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  362. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  363. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  364. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  365. package/src/plugins/alias-resolver-plugin.d.ts +0 -2
  366. package/src/plugins/alias-resolver-plugin.js +0 -53
  367. package/src/plugins/eco-component-meta-plugin.d.ts +0 -108
  368. package/src/plugins/eco-component-meta-plugin.js +0 -163
  369. package/src/plugins/foreign-jsx-override-plugin.d.ts +0 -31
  370. package/src/plugins/foreign-jsx-override-plugin.js +0 -35
  371. package/src/plugins/integration-plugin.d.ts +0 -219
  372. package/src/plugins/integration-plugin.js +0 -196
  373. package/src/plugins/processor.d.ts +0 -95
  374. package/src/plugins/processor.js +0 -136
  375. package/src/plugins/runtime-capability.js +0 -0
  376. package/src/plugins/source-transform.d.ts +0 -46
  377. package/src/plugins/source-transform.js +0 -71
  378. package/src/route-renderer/orchestration/boundary-planning.service.d.ts +0 -25
  379. package/src/route-renderer/orchestration/boundary-planning.service.js +0 -97
  380. package/src/route-renderer/orchestration/component-render-context.d.ts +0 -83
  381. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  382. package/src/route-renderer/orchestration/integration-renderer.d.ts +0 -554
  383. package/src/route-renderer/orchestration/integration-renderer.js +0 -957
  384. package/src/route-renderer/orchestration/queued-boundary-runtime.service.d.ts +0 -89
  385. package/src/route-renderer/orchestration/queued-boundary-runtime.service.js +0 -155
  386. package/src/route-renderer/orchestration/render-execution.service.d.ts +0 -43
  387. package/src/route-renderer/orchestration/render-execution.service.js +0 -106
  388. package/src/route-renderer/orchestration/render-output.utils.d.ts +0 -46
  389. package/src/route-renderer/orchestration/render-output.utils.js +0 -65
  390. package/src/route-renderer/orchestration/render-preparation.service.d.ts +0 -120
  391. package/src/route-renderer/orchestration/render-preparation.service.js +0 -341
  392. package/src/route-renderer/orchestration/route-shell-composer.service.d.ts +0 -50
  393. package/src/route-renderer/orchestration/route-shell-composer.service.js +0 -81
  394. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  395. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  396. package/src/route-renderer/page-loading/dependency-resolver.d.ts +0 -35
  397. package/src/route-renderer/page-loading/dependency-resolver.js +0 -444
  398. package/src/route-renderer/page-loading/page-module-loader.d.ts +0 -90
  399. package/src/route-renderer/page-loading/page-module-loader.js +0 -127
  400. package/src/route-renderer/route-renderer.d.ts +0 -67
  401. package/src/route-renderer/route-renderer.js +0 -103
  402. package/src/router/client/link-intent.js +0 -34
  403. package/src/router/client/link-intent.test.browser.d.ts +0 -1
  404. package/src/router/client/link-intent.test.browser.js +0 -43
  405. package/src/router/client/navigation-coordinator.d.ts +0 -149
  406. package/src/router/client/navigation-coordinator.js +0 -215
  407. package/src/router/server/fs-router-scanner.d.ts +0 -41
  408. package/src/router/server/fs-router-scanner.js +0 -161
  409. package/src/router/server/fs-router.d.ts +0 -26
  410. package/src/router/server/fs-router.js +0 -100
  411. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +0 -120
  412. package/src/services/assets/asset-processing-service/asset-processing.service.js +0 -331
  413. package/src/services/assets/asset-processing-service/asset.factory.d.ts +0 -17
  414. package/src/services/assets/asset-processing-service/asset.factory.js +0 -82
  415. package/src/services/assets/asset-processing-service/assets.types.d.ts +0 -89
  416. package/src/services/assets/asset-processing-service/assets.types.js +0 -0
  417. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +0 -55
  418. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +0 -48
  419. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +0 -20
  420. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +0 -41
  421. package/src/services/assets/asset-processing-service/index.d.ts +0 -5
  422. package/src/services/assets/asset-processing-service/index.js +0 -5
  423. package/src/services/assets/asset-processing-service/processor.interface.js +0 -6
  424. package/src/services/assets/asset-processing-service/processor.registry.d.ts +0 -8
  425. package/src/services/assets/asset-processing-service/processor.registry.js +0 -15
  426. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +0 -24
  427. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +0 -64
  428. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -17
  429. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +0 -72
  430. package/src/services/assets/asset-processing-service/processors/index.d.ts +0 -5
  431. package/src/services/assets/asset-processing-service/processors/index.js +0 -5
  432. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +0 -5
  433. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +0 -57
  434. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -9
  435. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +0 -88
  436. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -7
  437. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +0 -75
  438. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -5
  439. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -25
  440. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -9
  441. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +0 -66
  442. package/src/services/assets/browser-bundle.service.d.ts +0 -32
  443. package/src/services/assets/browser-bundle.service.js +0 -33
  444. package/src/services/cache/cache.types.d.ts +0 -107
  445. package/src/services/cache/cache.types.js +0 -0
  446. package/src/services/cache/index.d.ts +0 -7
  447. package/src/services/cache/index.js +0 -7
  448. package/src/services/cache/memory-cache-store.d.ts +0 -42
  449. package/src/services/cache/memory-cache-store.js +0 -98
  450. package/src/services/cache/page-cache-service.d.ts +0 -70
  451. package/src/services/cache/page-cache-service.js +0 -152
  452. package/src/services/cache/page-request-cache-coordinator.service.d.ts +0 -75
  453. package/src/services/cache/page-request-cache-coordinator.service.js +0 -109
  454. package/src/services/html/html-rewriter-provider.service.d.ts +0 -37
  455. package/src/services/html/html-rewriter-provider.service.js +0 -68
  456. package/src/services/html/html-transformer.service.d.ts +0 -77
  457. package/src/services/html/html-transformer.service.js +0 -215
  458. package/src/services/invalidation/development-invalidation.service.d.ts +0 -74
  459. package/src/services/invalidation/development-invalidation.service.js +0 -190
  460. package/src/services/module-loading/app-module-loader.service.d.ts +0 -28
  461. package/src/services/module-loading/app-module-loader.service.js +0 -35
  462. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +0 -24
  463. package/src/services/module-loading/app-server-module-transpiler.service.js +0 -109
  464. package/src/services/module-loading/host-module-loader-registry.d.ts +0 -4
  465. package/src/services/module-loading/host-module-loader-registry.js +0 -15
  466. package/src/services/module-loading/module-loading-types.js +0 -0
  467. package/src/services/module-loading/node-bootstrap-plugin.d.ts +0 -42
  468. package/src/services/module-loading/node-bootstrap-plugin.js +0 -204
  469. package/src/services/module-loading/page-module-import.service.d.ts +0 -76
  470. package/src/services/module-loading/page-module-import.service.js +0 -173
  471. package/src/services/module-loading/server-module-transpiler.service.d.ts +0 -72
  472. package/src/services/module-loading/server-module-transpiler.service.js +0 -64
  473. package/src/services/runtime-state/dev-graph.service.d.ts +0 -118
  474. package/src/services/runtime-state/dev-graph.service.js +0 -162
  475. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +0 -41
  476. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +0 -85
  477. package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +0 -69
  478. package/src/services/runtime-state/runtime-specifier-registry.service.js +0 -37
  479. package/src/services/runtime-state/server-invalidation-state.service.d.ts +0 -26
  480. package/src/services/runtime-state/server-invalidation-state.service.js +0 -35
  481. package/src/services/validation/schema-validation-service.d.ts +0 -122
  482. package/src/services/validation/schema-validation-service.js +0 -101
  483. package/src/services/validation/standard-schema.types.js +0 -0
  484. package/src/static-site-generator/static-site-generator.d.ts +0 -104
  485. package/src/static-site-generator/static-site-generator.js +0 -338
  486. package/src/types/internal-types.d.ts +0 -231
  487. package/src/types/internal-types.js +0 -0
  488. package/src/types/public-types.d.ts +0 -1219
  489. package/src/types/public-types.js +0 -0
  490. package/src/utils/deep-merge.d.ts +0 -14
  491. package/src/utils/deep-merge.js +0 -32
  492. package/src/utils/hash.d.ts +0 -1
  493. package/src/utils/hash.js +0 -7
  494. package/src/utils/html-escaping.d.ts +0 -7
  495. package/src/utils/html-escaping.js +0 -6
  496. package/src/utils/html.js +0 -4
  497. package/src/utils/invariant.d.ts +0 -5
  498. package/src/utils/invariant.js +0 -11
  499. package/src/utils/locals-utils.d.ts +0 -15
  500. package/src/utils/locals-utils.js +0 -24
  501. package/src/utils/parse-cli-args.d.ts +0 -27
  502. package/src/utils/parse-cli-args.js +0 -62
  503. package/src/utils/path-utils.module.d.ts +0 -5
  504. package/src/utils/path-utils.module.js +0 -14
  505. package/src/utils/resolve-work-dir.d.ts +0 -11
  506. package/src/utils/resolve-work-dir.js +0 -31
  507. package/src/utils/runtime.d.ts +0 -11
  508. package/src/utils/runtime.js +0 -40
  509. package/src/utils/server-utils.module.d.ts +0 -19
  510. package/src/utils/server-utils.module.js +0 -56
  511. package/src/watchers/project-watcher.d.ts +0 -136
  512. package/src/watchers/project-watcher.js +0 -275
  513. package/src/watchers/project-watcher.test-helpers.d.ts +0 -4
  514. package/src/watchers/project-watcher.test-helpers.js +0 -52
  515. /package/src/utils/{html.d.ts → html.ts} +0 -0
@@ -1,333 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { RESOLVED_ASSETS_DIR } from "../../config/constants.js";
4
- import { getAppBuildExecutor } from "../../build/build-adapter.js";
5
- import { fileSystem } from "@ecopages/file-system";
6
- import { HmrStrategyType } from "../../hmr/hmr-strategy.js";
7
- import { DefaultHmrStrategy } from "../../hmr/strategies/default-hmr-strategy.js";
8
- import { JsHmrStrategy } from "../../hmr/strategies/js-hmr-strategy.js";
9
- import { appLogger } from "../../global/app-logger.js";
10
- import { HmrEntrypointRegistrar } from "../shared/hmr-entrypoint-registrar.js";
11
- import { BrowserBundleService } from "../../services/assets/browser-bundle.service.js";
12
- import { getAppServerModuleTranspiler } from "../../services/module-loading/app-server-module-transpiler.service.js";
13
- import {
14
- getAppEntrypointDependencyGraph,
15
- NoopEntrypointDependencyGraph,
16
- setAppEntrypointDependencyGraph
17
- } from "../../services/runtime-state/entrypoint-dependency-graph.service.js";
18
- import { getAppRuntimeSpecifierRegistry } from "../../services/runtime-state/runtime-specifier-registry.service.js";
19
- import { resolveInternalExecutionDir, resolveInternalWorkDir } from "../../utils/resolve-work-dir.js";
20
- class HmrManager {
21
- static entrypointRegistrationTimeoutMs = 4e3;
22
- appConfig;
23
- bridge;
24
- /** Keep track of watchers */
25
- watchers = /* @__PURE__ */ new Map();
26
- /** entrypoint -> output path */
27
- watchedFiles = /* @__PURE__ */ new Map();
28
- entrypointRegistrations = /* @__PURE__ */ new Map();
29
- distDir;
30
- plugins = [];
31
- enabled = true;
32
- strategies = [];
33
- entrypointRegistrar;
34
- browserBundleService;
35
- entrypointDependencyGraph;
36
- runtimeSpecifierRegistry;
37
- serverModuleTranspiler;
38
- wsHandler;
39
- constructor({ appConfig, bridge }) {
40
- this.appConfig = appConfig;
41
- this.bridge = bridge;
42
- this.distDir = path.join(resolveInternalWorkDir(this.appConfig), RESOLVED_ASSETS_DIR, "_hmr");
43
- this.entrypointRegistrar = new HmrEntrypointRegistrar({
44
- srcDir: this.appConfig.absolutePaths.srcDir,
45
- distDir: this.distDir,
46
- entrypointRegistrations: this.entrypointRegistrations,
47
- watchedFiles: this.watchedFiles,
48
- clearFailedRegistration: (entrypointPath) => this.clearFailedEntrypointRegistration(entrypointPath),
49
- registrationTimeoutMs: HmrManager.entrypointRegistrationTimeoutMs
50
- });
51
- this.browserBundleService = new BrowserBundleService(appConfig);
52
- const existingEntrypointDependencyGraph = getAppEntrypointDependencyGraph(appConfig);
53
- this.entrypointDependencyGraph = existingEntrypointDependencyGraph instanceof NoopEntrypointDependencyGraph ? existingEntrypointDependencyGraph : new NoopEntrypointDependencyGraph();
54
- setAppEntrypointDependencyGraph(this.appConfig, this.entrypointDependencyGraph);
55
- this.runtimeSpecifierRegistry = getAppRuntimeSpecifierRegistry(this.appConfig);
56
- this.serverModuleTranspiler = getAppServerModuleTranspiler(this.appConfig);
57
- this.cleanDistDir();
58
- this.initializeStrategies();
59
- }
60
- /**
61
- * Ensures the HMR output directory exists.
62
- *
63
- * This must not remove the directory because multiple app processes
64
- * can share the same dist path during e2e runs.
65
- */
66
- cleanDistDir() {
67
- fileSystem.ensureDir(this.distDir);
68
- }
69
- /**
70
- * Returns whether the generic JS strategy may rebuild an entrypoint.
71
- *
72
- * @remarks
73
- * Integration-owned page entrypoints are excluded so a shared dependency
74
- * invalidation cannot replace framework-owned browser output with a generic JS
75
- * rebuild.
76
- */
77
- shouldJsStrategyProcessEntrypoint(entrypointPath) {
78
- return !this.strategies.some((strategy) => {
79
- if (strategy.type !== HmrStrategyType.INTEGRATION || strategy.priority <= HmrStrategyType.SCRIPT) {
80
- return false;
81
- }
82
- try {
83
- return strategy.matches(entrypointPath);
84
- } catch (error) {
85
- appLogger.error(error);
86
- return false;
87
- }
88
- });
89
- }
90
- /**
91
- * Initializes core HMR strategies.
92
- * Strategies are evaluated in priority order (highest first).
93
- */
94
- initializeStrategies() {
95
- const jsContext = {
96
- getWatchedFiles: () => this.watchedFiles,
97
- getSpecifierMap: () => this.runtimeSpecifierRegistry.getAll(),
98
- getDistDir: () => this.distDir,
99
- getPlugins: () => this.plugins,
100
- getSrcDir: () => this.appConfig.absolutePaths.srcDir,
101
- getPagesDir: () => this.appConfig.absolutePaths.pagesDir,
102
- getLayoutsDir: () => this.appConfig.absolutePaths.layoutsDir,
103
- getTemplateExtensions: () => this.appConfig.templatesExt,
104
- getBrowserBundleService: () => this.browserBundleService,
105
- getEntrypointDependencyGraph: () => this.entrypointDependencyGraph,
106
- shouldProcessEntrypoint: (entrypointPath) => this.shouldJsStrategyProcessEntrypoint(entrypointPath)
107
- };
108
- this.strategies = [new JsHmrStrategy(jsContext), new DefaultHmrStrategy()];
109
- }
110
- /**
111
- * Registers a custom HMR strategy.
112
- * Used by integrations to provide framework-specific HMR handling.
113
- * @param strategy - The HMR strategy to register
114
- */
115
- registerStrategy(strategy) {
116
- this.strategies.push(strategy);
117
- }
118
- setPlugins(plugins) {
119
- this.plugins = [...plugins];
120
- }
121
- setEnabled(enabled) {
122
- this.enabled = enabled;
123
- }
124
- isEnabled() {
125
- return this.enabled;
126
- }
127
- /**
128
- * Registers runtime bare-specifier mappings exposed by integrations.
129
- *
130
- * @remarks
131
- * These mappings are consumed by framework-owned HMR strategies that preserve
132
- * shared runtime imports in browser bundles. The registry stays generic so
133
- * these mappings can later support broader import-map-style runtime features
134
- * without moving integration semantics into core.
135
- */
136
- registerSpecifierMap(map) {
137
- this.runtimeSpecifierRegistry.register(map);
138
- }
139
- getWebSocketHandler() {
140
- const open = (ws) => {
141
- this.bridge.subscribe(ws);
142
- appLogger.debug(`[HmrManager] Connection opened. Subscribers: ${this.bridge.subscriberCount}`);
143
- };
144
- const close = (ws) => {
145
- this.bridge.unsubscribe(ws);
146
- appLogger.debug(`[HmrManager] Connection closed. Subscribers: ${this.bridge.subscriberCount}`);
147
- };
148
- this.wsHandler = { open, close };
149
- return {
150
- open: this.wsHandler.open,
151
- close: this.wsHandler.close,
152
- message: (_ws, message) => {
153
- appLogger.debug("[HMR] Received message from client:", message);
154
- }
155
- };
156
- }
157
- /**
158
- * Builds the client-side HMR runtime script.
159
- */
160
- async buildRuntime() {
161
- const runtimeSource = path.resolve(import.meta.dirname, "../../hmr/client/hmr-runtime.js");
162
- const result = await this.browserBundleService.bundle({
163
- profile: "hmr-runtime",
164
- entrypoints: [runtimeSource],
165
- outdir: this.distDir,
166
- naming: "_hmr_runtime.js",
167
- minify: false,
168
- plugins: this.plugins
169
- });
170
- if (!result.success) {
171
- appLogger.error("[HMR] Failed to build runtime script:", result.logs);
172
- }
173
- }
174
- getRuntimePath() {
175
- return path.join(this.distDir, "_hmr_runtime.js");
176
- }
177
- broadcast(event) {
178
- appLogger.debug(
179
- `[HMR] Broadcasting ${event.type} event, path=${event.path || "all"}, subscribers=${this.bridge.subscriberCount}`
180
- );
181
- this.bridge.broadcast(event);
182
- }
183
- async handleFileChange(filePath, options = {}) {
184
- const sorted = [...this.strategies].sort((a, b) => b.priority - a.priority);
185
- const strategy = sorted.find((s) => {
186
- try {
187
- return s.matches(filePath);
188
- } catch (err) {
189
- appLogger.error(err);
190
- return false;
191
- }
192
- });
193
- if (!strategy) {
194
- appLogger.warn(`[HMR] No strategy found for ${filePath}`);
195
- return;
196
- }
197
- appLogger.debug(`[HmrManager] Selected strategy: ${strategy.constructor.name}`);
198
- const action = await strategy.process(filePath);
199
- const shouldBroadcast = options.broadcast ?? true;
200
- if (shouldBroadcast && action.type === "broadcast") {
201
- if (action.events) {
202
- for (const event of action.events) {
203
- this.broadcast(event);
204
- }
205
- }
206
- }
207
- }
208
- getOutputUrl(entrypointPath) {
209
- return this.watchedFiles.get(entrypointPath);
210
- }
211
- getWatchedFiles() {
212
- return this.watchedFiles;
213
- }
214
- getSpecifierMap() {
215
- return this.runtimeSpecifierRegistry.getAll();
216
- }
217
- getDistDir() {
218
- return this.distDir;
219
- }
220
- getPlugins() {
221
- return this.plugins;
222
- }
223
- getDefaultContext() {
224
- return {
225
- getWatchedFiles: () => this.watchedFiles,
226
- getSpecifierMap: () => this.runtimeSpecifierRegistry.getAll(),
227
- getDistDir: () => this.distDir,
228
- getPlugins: () => this.plugins,
229
- getSrcDir: () => this.appConfig.absolutePaths.srcDir,
230
- getLayoutsDir: () => this.appConfig.absolutePaths.layoutsDir,
231
- getPagesDir: () => this.appConfig.absolutePaths.pagesDir,
232
- getBuildExecutor: () => getAppBuildExecutor(this.appConfig),
233
- getBrowserBundleService: () => this.browserBundleService,
234
- importServerModule: async (filePath) => await this.serverModuleTranspiler.importModule({
235
- filePath,
236
- outdir: path.join(resolveInternalExecutionDir(this.appConfig), ".server-modules"),
237
- externalPackages: true
238
- })
239
- };
240
- }
241
- clearFailedEntrypointRegistration(entrypointPath) {
242
- this.watchedFiles.delete(entrypointPath);
243
- }
244
- /**
245
- * Registers one integration-owned page entrypoint.
246
- *
247
- * @remarks
248
- * Concurrent callers share one in-flight registration. The registration is
249
- * cleared from the dedupe map when it settles so later callers cannot inherit a
250
- * stale promise.
251
- */
252
- async registerEntrypoint(entrypointPath) {
253
- return await this.entrypointRegistrar.registerEntrypoint(entrypointPath, {
254
- emit: async (normalizedEntrypoint) => await this.emitStrictEntrypoint(normalizedEntrypoint),
255
- getMissingOutputError: (normalizedEntrypoint, outputPath) => new Error(
256
- `[HMR] Integration failed to emit entrypoint ${normalizedEntrypoint} to ${outputPath}. Page entrypoints must be produced by their owning integration.`
257
- )
258
- });
259
- }
260
- /**
261
- * Registers one generic script entrypoint.
262
- *
263
- * @remarks
264
- * This explicit path keeps the page-entrypoint contract strict while still
265
- * allowing generic script assets to use the fallback build path.
266
- */
267
- async registerScriptEntrypoint(entrypointPath) {
268
- return await this.entrypointRegistrar.registerEntrypoint(entrypointPath, {
269
- emit: async (normalizedEntrypoint, outputPath) => await this.emitScriptEntrypoint(normalizedEntrypoint, outputPath),
270
- getMissingOutputError: (normalizedEntrypoint) => new Error(`[HMR] Failed to register script entrypoint: ${normalizedEntrypoint}`)
271
- });
272
- }
273
- /**
274
- * Performs strict integration-owned registration for one normalized path.
275
- *
276
- * @remarks
277
- * The manager reserves the output URL, removes any stale emitted file, runs
278
- * strategy processing without broadcasting, and then verifies that the owning
279
- * integration emitted the expected file.
280
- */
281
- async emitStrictEntrypoint(entrypointPath) {
282
- await this.handleFileChange(entrypointPath, { broadcast: false });
283
- }
284
- /**
285
- * Performs registration for a generic script asset.
286
- *
287
- * @remarks
288
- * This path performs a targeted browser bundle for the requested script
289
- * entrypoint only. The resulting dependency graph is retained so later file
290
- * changes can invalidate just the affected script entrypoints.
291
- */
292
- async emitScriptEntrypoint(entrypointPath, outputPath) {
293
- const naming = path.relative(this.distDir, outputPath).split(path.sep).join("/");
294
- const buildResult = await this.browserBundleService.bundle({
295
- profile: "hmr-entrypoint",
296
- entrypoints: [entrypointPath],
297
- outdir: this.distDir,
298
- naming,
299
- minify: false,
300
- plugins: this.plugins
301
- });
302
- if (!buildResult.success) {
303
- appLogger.error(`[HMR] Generic script entrypoint build failed for ${entrypointPath}:`, buildResult.logs);
304
- return;
305
- }
306
- const entrypointDependencies = buildResult.dependencyGraph?.entrypoints?.[entrypointPath];
307
- if (entrypointDependencies) {
308
- this.entrypointDependencyGraph.setEntrypointDependencies(entrypointPath, entrypointDependencies);
309
- }
310
- }
311
- /**
312
- * Stops active watchers and releases retained registration state.
313
- *
314
- * @remarks
315
- * Emitted `_hmr` files remain on disk because parallel app processes may share
316
- * the same dist directory. The in-memory indexes are cleared so stale
317
- * entrypoints and specifier maps cannot leak through a reused manager object.
318
- */
319
- stop() {
320
- this.entrypointRegistrations.clear();
321
- for (const watcher of this.watchers.values()) {
322
- watcher.close();
323
- }
324
- this.watchers.clear();
325
- this.watchedFiles.clear();
326
- this.runtimeSpecifierRegistry.clear();
327
- this.entrypointDependencyGraph.reset();
328
- this.plugins = [];
329
- }
330
- }
331
- export {
332
- HmrManager
333
- };
@@ -1,2 +0,0 @@
1
- export { BunEcopagesApp, createApp } from './create-app.js';
2
- export { defineApiHandler, defineGroupHandler, type GroupHandler } from '../shared/define-api-handler.js';
@@ -1,8 +0,0 @@
1
- import { BunEcopagesApp, createApp } from "./create-app.js";
2
- import { defineApiHandler, defineGroupHandler } from "../shared/define-api-handler.js";
3
- export {
4
- BunEcopagesApp,
5
- createApp,
6
- defineApiHandler,
7
- defineGroupHandler
8
- };
@@ -1,155 +0,0 @@
1
- import type { Server, WebSocketHandler } from 'bun';
2
- import type { EcoPagesAppConfig } from '../../types/internal-types.js';
3
- import type { ApiHandler, ErrorHandler, StaticRoute } from '../../types/public-types.js';
4
- import { SharedServerAdapter } from '../shared/server-adapter.js';
5
- import type { ServerAdapterResult } from '../abstract/server-adapter.js';
6
- import { ServerRouteHandler, type ServerRouteHandlerParams } from '../shared/server-route-handler.js';
7
- import { ServerStaticBuilder, type ServerStaticBuilderParams } from '../shared/server-static-builder.js';
8
- import { ClientBridge } from './client-bridge.js';
9
- import { HmrManager } from './hmr-manager.js';
10
- import { ServerLifecycle } from './server-lifecycle.js';
11
- type BunServerInstance = Server<unknown>;
12
- type BunNativeServeOptions = Bun.Serve.Options<unknown>;
13
- export type BunServerRoutes = Bun.Serve.Routes<unknown, string>;
14
- export type BunServeAdapterServerOptions = Partial<Omit<BunNativeServeOptions, 'fetch'> & {
15
- fetch(this: BunServerInstance, request: Request): Promise<void | Response>;
16
- }>;
17
- export type BunServeOptions = Omit<BunNativeServeOptions, 'fetch'> & {
18
- fetch?: (this: BunServerInstance, request: Request, server: BunServerInstance) => Promise<void | Response>;
19
- websocket?: WebSocketHandler<unknown>;
20
- };
21
- export interface BunServerAdapterParams {
22
- appConfig: EcoPagesAppConfig;
23
- runtimeOrigin: string;
24
- serveOptions: BunServeAdapterServerOptions;
25
- apiHandlers?: ApiHandler<string, Request, BunServerInstance>[];
26
- staticRoutes?: StaticRoute[];
27
- errorHandler?: ErrorHandler;
28
- options?: {
29
- watch?: boolean;
30
- };
31
- lifecycle?: ServerLifecycle;
32
- staticBuilderFactory?: (params: ServerStaticBuilderParams) => ServerStaticBuilder;
33
- routeHandlerFactory?: (params: ServerRouteHandlerParams) => ServerRouteHandler;
34
- hmrManager?: HmrManager;
35
- bridge?: ClientBridge;
36
- }
37
- export interface BunServerAdapterResult extends ServerAdapterResult {
38
- getServerOptions: (options?: {
39
- enableHmr?: boolean;
40
- }) => BunServeOptions;
41
- buildStatic: (options?: {
42
- preview?: boolean;
43
- }) => Promise<void>;
44
- completeInitialization: (server?: BunServerInstance | null) => Promise<void>;
45
- handleRequest: (request: Request) => Promise<Response>;
46
- }
47
- export declare class BunServerAdapter extends SharedServerAdapter<BunServerAdapterParams, BunServerAdapterResult> {
48
- appConfig: EcoPagesAppConfig;
49
- options: BunServerAdapterParams['options'];
50
- serveOptions: BunServeAdapterServerOptions;
51
- protected apiHandlers: ApiHandler<string, Request, BunServerInstance>[];
52
- protected staticRoutes: StaticRoute[];
53
- protected errorHandler?: ErrorHandler;
54
- private bridge;
55
- private lifecycle;
56
- hmrManager: HmrManager;
57
- private initializationPromise;
58
- private fullyInitialized;
59
- serverInstance: BunServerInstance | null;
60
- private readonly lifecycleFactory?;
61
- private readonly staticBuilderFactory?;
62
- private readonly routeHandlerFactory?;
63
- private readonly hmrManagerFactory?;
64
- private readonly bridgeFactory?;
65
- constructor({ appConfig, runtimeOrigin, serveOptions, apiHandlers, staticRoutes, errorHandler, options, lifecycle, staticBuilderFactory, routeHandlerFactory, hmrManager, bridge, }: BunServerAdapterParams);
66
- /**
67
- * Determines if HMR script should be injected.
68
- * Only injects in watch mode when HMR manager is enabled.
69
- */
70
- private shouldInjectHmrScript;
71
- /**
72
- * Checks if a response contains HTML content.
73
- */
74
- private isHtmlResponse;
75
- /**
76
- * Injects HMR script into HTML responses in development mode.
77
- * Ensures explicit API handlers that return HTML get auto-reload capability.
78
- */
79
- private maybeInjectHmrScript;
80
- /**
81
- * Initializes the server adapter's core components.
82
- * Delegates to ServerLifecycle for setup.
83
- */
84
- initialize(): Promise<void>;
85
- /**
86
- * Refreshes the router routes during watch mode.
87
- */
88
- private refreshRouterRoutes;
89
- private watch;
90
- /**
91
- * Retrieves the current server options, optionally enabling HMR.
92
- * If HMR is enabled, modifies fetch to handle WebSocket upgrades and serve HMR runtime.
93
- * Ensures original fetch logic is preserved and called for non-HMR requests.
94
- * @param options.enableHmr Whether to enable Hot Module Replacement
95
- */
96
- getServerOptions({ enableHmr }?: {
97
- enableHmr?: boolean | undefined;
98
- }): BunServeOptions;
99
- /**
100
- * Helper method to retrieve and parse the request body.
101
- * Handles JSON and plain text content types.
102
- * For FormData (multipart/form-data, x-www-form-urlencoded), use ctx.request.formData() directly.
103
- * Returns undefined for unsupported content types.
104
- */
105
- private retrieveBodyFromRequest;
106
- /**
107
- * Creates complete server configuration with request handling.
108
- * @returns Server options ready for Bun.serve()
109
- */
110
- private buildServerSettings;
111
- /**
112
- * Generates a static build of the site for deployment.
113
- * @param options.preview - If true, starts a preview server after build
114
- */
115
- buildStatic(options?: {
116
- preview?: boolean;
117
- }): Promise<void>;
118
- /**
119
- * Initializes the server with dynamic routes after server creation.
120
- * Must be called before handling any requests.
121
- * @param server - The Bun server instance
122
- */
123
- completeInitialization(server?: BunServerInstance | null): Promise<void>;
124
- /**
125
- * Performs complete server setup including routing, watchers, and HMR.
126
- */
127
- private _performInitialization;
128
- /**
129
- * Creates and initializes the Bun server adapter.
130
- * @returns Configured adapter with server methods
131
- */
132
- createAdapter(): Promise<BunServerAdapterResult>;
133
- /**
134
- * Handles HTTP requests by passing them securely to the shared core router adapter.
135
- */
136
- handleRequest(request: Request): Promise<Response>;
137
- /**
138
- * Ensures server initialization completes before request handling.
139
- * Prevents race conditions during startup.
140
- */
141
- private waitForInitialization;
142
- /**
143
- * Handles HTTP requests from the router adapter.
144
- */
145
- handleResponse(request: Request): Promise<Response>;
146
- /**
147
- * Handles requests that do not match any routes.
148
- */
149
- private handleNoMatch;
150
- }
151
- /**
152
- * Factory function to create a Bun server adapter
153
- */
154
- export declare function createBunServerAdapter(params: BunServerAdapterParams): Promise<BunServerAdapterResult>;
155
- export {};