@ecopages/core 0.2.0-alpha.52 → 0.2.0-alpha.54

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 (590) hide show
  1. package/README.md +2 -3
  2. package/package.json +97 -182
  3. package/src/adapters/abstract/application-adapter.test.ts +218 -0
  4. package/src/adapters/abstract/application-adapter.ts +379 -0
  5. package/src/adapters/abstract/router-adapter.ts +30 -0
  6. package/src/adapters/abstract/server-adapter.ts +79 -0
  7. package/src/adapters/bun/client-bridge.ts +62 -0
  8. package/src/adapters/bun/create-app.ts +214 -0
  9. package/src/adapters/bun/hmr-manager.test.ts +265 -0
  10. package/src/adapters/bun/hmr-manager.ts +88 -0
  11. package/src/adapters/bun/index.ts +2 -0
  12. package/src/adapters/bun/runtime-host.ts +76 -0
  13. package/src/adapters/bun/server-adapter.ts +605 -0
  14. package/src/adapters/bun/static-preview-host.ts +70 -0
  15. package/src/adapters/create-app.test.ts +10 -0
  16. package/src/adapters/create-app.ts +91 -0
  17. package/src/adapters/index.ts +2 -0
  18. package/src/adapters/node/create-app.test.ts +76 -0
  19. package/src/adapters/node/create-app.ts +116 -0
  20. package/src/adapters/node/http-request-bridge.test.ts +146 -0
  21. package/src/adapters/node/http-request-bridge.ts +176 -0
  22. package/src/adapters/node/node-client-bridge.test.ts +198 -0
  23. package/src/adapters/node/node-client-bridge.ts +79 -0
  24. package/src/adapters/node/node-hmr-manager.test.ts +374 -0
  25. package/src/adapters/node/node-hmr-manager.ts +72 -0
  26. package/src/adapters/node/runtime-host.test.ts +49 -0
  27. package/src/adapters/node/runtime-host.ts +113 -0
  28. package/src/adapters/node/server-adapter-dependencies.ts +28 -0
  29. package/src/adapters/node/server-adapter.test.ts +84 -0
  30. package/src/adapters/node/server-adapter.ts +423 -0
  31. package/src/adapters/node/static-content-server.test.ts +60 -0
  32. package/src/adapters/node/static-content-server.ts +239 -0
  33. package/src/adapters/node/static-preview-host.test.ts +89 -0
  34. package/src/adapters/node/static-preview-host.ts +101 -0
  35. package/src/adapters/shared/api-response.test.ts +97 -0
  36. package/src/adapters/shared/api-response.ts +104 -0
  37. package/src/adapters/shared/application-adapter.ts +199 -0
  38. package/src/adapters/shared/define-api-handler.ts +66 -0
  39. package/src/adapters/shared/explicit-static-render-preparation.ts +58 -0
  40. package/src/adapters/shared/explicit-static-route-matcher.test.ts +381 -0
  41. package/src/adapters/shared/explicit-static-route-matcher.ts +131 -0
  42. package/src/adapters/shared/file-route-middleware-pipeline.test.ts +85 -0
  43. package/src/adapters/shared/file-route-middleware-pipeline.ts +118 -0
  44. package/src/adapters/shared/fs-server-response-factory.test.ts +176 -0
  45. package/src/adapters/shared/fs-server-response-factory.ts +96 -0
  46. package/src/adapters/shared/fs-server-response-matcher.test.ts +311 -0
  47. package/src/adapters/shared/fs-server-response-matcher.ts +240 -0
  48. package/src/adapters/shared/hmr-entrypoint-registrar.ts +149 -0
  49. package/src/adapters/shared/hmr-html-response.ts +54 -0
  50. package/src/adapters/shared/hmr-manager.contract.test.ts +228 -0
  51. package/src/adapters/shared/hmr-manager.dispatch.test.ts +229 -0
  52. package/src/adapters/shared/render-context.test.ts +244 -0
  53. package/src/adapters/shared/render-context.ts +161 -0
  54. package/src/adapters/shared/runtime-app-bootstrap.test.ts +96 -0
  55. package/src/adapters/shared/runtime-app-bootstrap.ts +72 -0
  56. package/src/adapters/shared/runtime-host.ts +11 -0
  57. package/src/adapters/shared/server-adapter.test.ts +130 -0
  58. package/src/adapters/shared/server-adapter.ts +571 -0
  59. package/src/adapters/shared/server-route-handler.test.ts +112 -0
  60. package/src/adapters/shared/server-route-handler.ts +153 -0
  61. package/src/adapters/shared/server-static-builder.test.ts +338 -0
  62. package/src/adapters/shared/server-static-builder.ts +170 -0
  63. package/src/adapters/shared/shared-hmr-manager.ts +298 -0
  64. package/src/adapters/shared/static-preview-host.ts +12 -0
  65. package/src/build/README.md +57 -73
  66. package/src/build/browser-runtime-manifest.test.ts +121 -0
  67. package/src/build/browser-runtime-manifest.ts +105 -0
  68. package/src/build/browser-runtime-plugin-helpers.test.ts +49 -0
  69. package/src/build/browser-runtime-plugin-helpers.ts +37 -0
  70. package/src/build/browser-runtime-plugin.test.ts +256 -0
  71. package/src/build/browser-runtime-plugin.ts +306 -0
  72. package/src/build/build-adapter.test.ts +463 -0
  73. package/src/build/build-adapter.ts +788 -0
  74. package/src/build/build-manifest.ts +79 -0
  75. package/src/build/build-types.ts +83 -0
  76. package/src/build/rolldown-build-adapter.test.ts +352 -0
  77. package/src/build/rolldown-build-adapter.ts +363 -0
  78. package/src/build/rolldown-plugin-bridge.test.ts +256 -0
  79. package/src/build/rolldown-plugin-bridge.ts +309 -0
  80. package/src/build/runtime-build-executor.test.ts +130 -0
  81. package/src/build/runtime-build-executor.ts +37 -0
  82. package/src/build/runtime-build-output-normalizer.ts +137 -0
  83. package/src/build/serialized-build-executor.test.ts +96 -0
  84. package/src/build/serialized-build-executor.ts +90 -0
  85. package/src/build/server-side-css-shim-plugin.ts +77 -0
  86. package/src/cache/index.ts +6 -0
  87. package/src/cache/module-parse-cache.test.ts +73 -0
  88. package/src/cache/module-parse-cache.ts +137 -0
  89. package/src/config/README.md +1 -1
  90. package/src/config/config-builder.test.ts +456 -0
  91. package/src/config/config-builder.ts +728 -0
  92. package/src/config/config-builder.typecheck.test.ts +96 -0
  93. package/src/config/{constants.d.ts → constants.ts} +22 -13
  94. package/src/dev/host-runtime.ts +34 -0
  95. package/src/dev/sc-server.ts +143 -0
  96. package/src/eco/eco.browser.test.ts +43 -0
  97. package/src/eco/eco.browser.ts +137 -0
  98. package/src/eco/eco.test.ts +781 -0
  99. package/src/eco/eco.ts +262 -0
  100. package/src/eco/eco.types.ts +293 -0
  101. package/src/eco/eco.utils.test.ts +219 -0
  102. package/src/eco/eco.utils.ts +5 -0
  103. package/src/eco/global-injector-map.test.ts +42 -0
  104. package/src/eco/global-injector-map.ts +112 -0
  105. package/src/eco/lazy-injector-map.test.ts +66 -0
  106. package/src/eco/lazy-injector-map.ts +120 -0
  107. package/src/eco/module-dependencies.test.ts +30 -0
  108. package/src/eco/module-dependencies.ts +75 -0
  109. package/src/errors/http-error.test.ts +134 -0
  110. package/src/errors/http-error.ts +72 -0
  111. package/src/errors/index.ts +3 -0
  112. package/src/errors/locals-access-error.ts +7 -0
  113. package/src/global/app-logger.ts +4 -0
  114. package/src/global/utils.test.ts +12 -0
  115. 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
  116. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
  117. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
  118. package/src/hmr/client/hmr-runtime.ts +162 -0
  119. package/src/hmr/hmr-strategy.test.ts +124 -0
  120. package/src/hmr/hmr-strategy.ts +177 -0
  121. package/src/hmr/hmr.postcss.test.e2e.ts +41 -0
  122. package/src/hmr/hmr.test.e2e.ts +66 -0
  123. package/src/hmr/strategies/default-hmr-strategy.ts +60 -0
  124. package/src/hmr/strategies/js-hmr-strategy.test.ts +344 -0
  125. package/src/hmr/strategies/js-hmr-strategy.ts +307 -0
  126. package/src/index.browser.ts +3 -0
  127. package/src/index.ts +15 -0
  128. package/src/integrations/ghtml/ghtml-renderer.test.ts +253 -0
  129. package/src/integrations/ghtml/ghtml-renderer.ts +87 -0
  130. package/src/integrations/ghtml/ghtml.constants.ts +1 -0
  131. package/src/integrations/ghtml/ghtml.plugin.ts +28 -0
  132. package/src/plugins/alias-resolver-cache.test.ts +110 -0
  133. package/src/plugins/alias-resolver-cache.ts +145 -0
  134. package/src/plugins/alias-resolver-plugin.test.ts +41 -0
  135. package/src/plugins/alias-resolver-plugin.ts +75 -0
  136. package/src/plugins/eco-component-meta-plugin.test.ts +421 -0
  137. package/src/plugins/eco-component-meta-plugin.ts +518 -0
  138. package/src/plugins/foreign-jsx-override-plugin.test.ts +65 -0
  139. package/src/plugins/foreign-jsx-override-plugin.ts +76 -0
  140. package/src/plugins/integration-plugin.test.ts +151 -0
  141. package/src/plugins/integration-plugin.ts +344 -0
  142. package/src/plugins/processor.test.ts +148 -0
  143. package/src/plugins/processor.ts +257 -0
  144. package/src/plugins/{runtime-capability.d.ts → runtime-capability.ts} +8 -3
  145. package/src/plugins/source-transform.test.ts +82 -0
  146. package/src/plugins/source-transform.ts +123 -0
  147. package/src/route-renderer/orchestration/component-render-context.ts +338 -0
  148. package/src/route-renderer/orchestration/declared-ownership-graph.ts +62 -0
  149. package/src/route-renderer/orchestration/foreign-subtree-execution.service.ts +431 -0
  150. package/src/route-renderer/orchestration/integration-renderer.test.ts +2251 -0
  151. package/src/route-renderer/orchestration/integration-renderer.ts +1384 -0
  152. package/src/route-renderer/orchestration/ownership-planning.service.ts +97 -0
  153. package/src/route-renderer/orchestration/ownership-validation.service.ts +76 -0
  154. package/src/route-renderer/orchestration/processed-asset-dedupe.ts +29 -0
  155. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.test.ts +435 -0
  156. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.ts +310 -0
  157. package/src/route-renderer/orchestration/render-output.utils.ts +310 -0
  158. package/src/route-renderer/orchestration/route-render-orchestrator.prepare-render-options.test.ts +1365 -0
  159. package/src/route-renderer/orchestration/route-render-orchestrator.test.ts +267 -0
  160. package/src/route-renderer/orchestration/route-render-orchestrator.ts +879 -0
  161. package/src/route-renderer/orchestration/template-serialization.test.ts +110 -0
  162. package/src/route-renderer/orchestration/template-serialization.ts +117 -0
  163. package/src/route-renderer/page-loading/component-dependency-collection.ts +202 -0
  164. package/src/route-renderer/page-loading/declared-asset-collection.ts +153 -0
  165. package/src/route-renderer/page-loading/dependency-resolver.test.ts +761 -0
  166. package/src/route-renderer/page-loading/dependency-resolver.ts +144 -0
  167. package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +75 -0
  168. package/src/route-renderer/page-loading/lazy-entry-collection.ts +167 -0
  169. package/src/route-renderer/page-loading/lazy-trigger-planning.ts +74 -0
  170. package/src/route-renderer/page-loading/module-declaration-aggregation.ts +60 -0
  171. package/src/route-renderer/page-loading/module-declaration-scripts.ts +16 -0
  172. package/src/route-renderer/page-loading/page-dependency-bundling.ts +244 -0
  173. package/src/route-renderer/page-loading/page-module-loader.test.ts +183 -0
  174. package/src/route-renderer/page-loading/page-module-loader.ts +184 -0
  175. package/src/route-renderer/route-renderer.ts +133 -0
  176. package/src/router/client/link-intent.test.browser.ts +51 -0
  177. package/src/router/client/link-intent.ts +92 -0
  178. package/src/router/client/navigation-coordinator.test.ts +237 -0
  179. package/src/router/client/navigation-coordinator.ts +453 -0
  180. package/src/router/server/route-registry.test.ts +176 -0
  181. package/src/router/server/route-registry.ts +382 -0
  182. package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +66 -0
  183. package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +473 -0
  184. package/src/services/assets/asset-processing-service/asset-processing.service.ts +344 -0
  185. package/src/services/assets/asset-processing-service/asset.factory.test.ts +63 -0
  186. package/src/services/assets/asset-processing-service/asset.factory.ts +105 -0
  187. package/src/services/assets/asset-processing-service/assets.types.ts +128 -0
  188. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +74 -0
  189. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +98 -0
  190. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +67 -0
  191. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +78 -0
  192. package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +104 -0
  193. package/src/services/assets/asset-processing-service/index.ts +6 -0
  194. package/src/services/assets/asset-processing-service/page-package.test.ts +135 -0
  195. package/src/services/assets/asset-processing-service/page-package.ts +103 -0
  196. package/src/services/assets/asset-processing-service/{processor.interface.d.ts → processor.interface.ts} +10 -5
  197. package/src/services/assets/asset-processing-service/processor.registry.ts +18 -0
  198. package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +59 -0
  199. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +83 -0
  200. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +173 -0
  201. package/src/services/assets/asset-processing-service/processors/index.ts +5 -0
  202. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +188 -0
  203. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +138 -0
  204. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +326 -0
  205. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +116 -0
  206. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +270 -0
  207. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +145 -0
  208. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +261 -0
  209. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +72 -0
  210. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +83 -0
  211. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +65 -0
  212. package/src/services/assets/browser-bundle.service.test.ts +66 -0
  213. package/src/services/assets/browser-bundle.service.ts +109 -0
  214. package/src/services/cache/cache.types.ts +126 -0
  215. package/src/services/cache/index.ts +18 -0
  216. package/src/services/cache/memory-cache-store.test.ts +225 -0
  217. package/src/services/cache/memory-cache-store.ts +130 -0
  218. package/src/services/cache/page-cache-service.test.ts +175 -0
  219. package/src/services/cache/page-cache-service.ts +202 -0
  220. package/src/services/cache/page-request-cache-coordinator.service.test.ts +79 -0
  221. package/src/services/cache/page-request-cache-coordinator.service.ts +131 -0
  222. package/src/services/html/html-rewriter-provider.service.test.ts +183 -0
  223. package/src/services/html/html-rewriter-provider.service.ts +105 -0
  224. package/src/services/html/html-transformer.service.test.ts +544 -0
  225. package/src/services/html/html-transformer.service.ts +369 -0
  226. package/src/services/invalidation/development-invalidation.service.test.ts +87 -0
  227. package/src/services/invalidation/development-invalidation.service.ts +262 -0
  228. package/src/services/module-loading/app-module-loader.service.ts +9 -0
  229. package/src/services/module-loading/app-server-module-transpiler.service.test.ts +297 -0
  230. package/src/services/module-loading/app-server-module-transpiler.service.ts +168 -0
  231. package/src/services/module-loading/host-module-loader-registry.ts +15 -0
  232. package/src/services/module-loading/{module-loading-types.d.ts → module-loading-types.ts} +1 -0
  233. package/src/services/module-loading/page-module-import.service.test.ts +652 -0
  234. package/src/services/module-loading/page-module-import.service.ts +302 -0
  235. package/src/services/module-loading/server-module-transpiler.service.test.ts +242 -0
  236. package/src/services/module-loading/server-module-transpiler.service.ts +104 -0
  237. package/src/services/module-loading/source-module-support.ts +19 -0
  238. package/src/services/runtime-state/dev-graph.service.ts +217 -0
  239. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +136 -0
  240. package/src/services/runtime-state/server-invalidation-state.service.ts +68 -0
  241. package/src/services/validation/schema-validation-service.test.ts +223 -0
  242. package/src/services/validation/schema-validation-service.ts +204 -0
  243. package/src/services/validation/{standard-schema.types.d.ts → standard-schema.types.ts} +20 -17
  244. package/src/static-site-generator/static-site-generator.test.ts +408 -0
  245. package/src/static-site-generator/static-site-generator.ts +445 -0
  246. package/src/types/internal-types.ts +243 -0
  247. package/src/types/public-types.ts +1508 -0
  248. package/src/utils/deep-merge.test.ts +114 -0
  249. package/src/utils/deep-merge.ts +47 -0
  250. package/src/utils/hash.ts +5 -0
  251. package/src/utils/html-escaping.ts +9 -0
  252. package/src/utils/invariant.test.ts +22 -0
  253. package/src/utils/invariant.ts +15 -0
  254. package/src/utils/locals-utils.ts +37 -0
  255. package/src/utils/parse-cli-args.test.ts +69 -0
  256. package/src/utils/parse-cli-args.ts +105 -0
  257. package/src/utils/path-utils.module.ts +14 -0
  258. package/src/utils/path-utils.test.ts +15 -0
  259. package/src/utils/resolve-work-dir.ts +45 -0
  260. package/src/utils/runtime.ts +44 -0
  261. package/src/utils/server-utils.module.ts +67 -0
  262. package/src/utils/server-utils.test.ts +38 -0
  263. package/src/watchers/project-watcher.integration.test.ts +337 -0
  264. package/src/watchers/project-watcher.test-helpers.ts +42 -0
  265. package/src/watchers/project-watcher.test.ts +768 -0
  266. package/src/watchers/project-watcher.ts +357 -0
  267. package/src/adapters/abstract/application-adapter.d.ts +0 -194
  268. package/src/adapters/abstract/application-adapter.js +0 -121
  269. package/src/adapters/abstract/router-adapter.d.ts +0 -26
  270. package/src/adapters/abstract/router-adapter.js +0 -5
  271. package/src/adapters/abstract/server-adapter.d.ts +0 -69
  272. package/src/adapters/abstract/server-adapter.js +0 -15
  273. package/src/adapters/bun/client-bridge.d.ts +0 -34
  274. package/src/adapters/bun/client-bridge.js +0 -48
  275. package/src/adapters/bun/create-app.d.ts +0 -60
  276. package/src/adapters/bun/create-app.js +0 -140
  277. package/src/adapters/bun/hmr-manager.d.ts +0 -47
  278. package/src/adapters/bun/hmr-manager.js +0 -58
  279. package/src/adapters/bun/index.d.ts +0 -2
  280. package/src/adapters/bun/index.js +0 -8
  281. package/src/adapters/bun/runtime-host.d.ts +0 -52
  282. package/src/adapters/bun/runtime-host.js +0 -56
  283. package/src/adapters/bun/server-adapter.d.ts +0 -216
  284. package/src/adapters/bun/server-adapter.js +0 -445
  285. package/src/adapters/bun/static-preview-host.d.ts +0 -28
  286. package/src/adapters/bun/static-preview-host.js +0 -45
  287. package/src/adapters/create-app.d.ts +0 -20
  288. package/src/adapters/create-app.js +0 -66
  289. package/src/adapters/index.d.ts +0 -2
  290. package/src/adapters/index.js +0 -8
  291. package/src/adapters/node/create-app.d.ts +0 -24
  292. package/src/adapters/node/create-app.js +0 -92
  293. package/src/adapters/node/http-request-bridge.d.ts +0 -57
  294. package/src/adapters/node/http-request-bridge.js +0 -118
  295. package/src/adapters/node/node-client-bridge.d.ts +0 -26
  296. package/src/adapters/node/node-client-bridge.js +0 -66
  297. package/src/adapters/node/node-hmr-manager.d.ts +0 -52
  298. package/src/adapters/node/node-hmr-manager.js +0 -49
  299. package/src/adapters/node/runtime-host.d.ts +0 -57
  300. package/src/adapters/node/runtime-host.js +0 -92
  301. package/src/adapters/node/server-adapter-dependencies.d.ts +0 -19
  302. package/src/adapters/node/server-adapter-dependencies.js +0 -18
  303. package/src/adapters/node/server-adapter.d.ts +0 -138
  304. package/src/adapters/node/server-adapter.js +0 -315
  305. package/src/adapters/node/static-content-server.d.ts +0 -60
  306. package/src/adapters/node/static-content-server.js +0 -194
  307. package/src/adapters/node/static-preview-host.d.ts +0 -55
  308. package/src/adapters/node/static-preview-host.js +0 -68
  309. package/src/adapters/shared/api-response.d.ts +0 -52
  310. package/src/adapters/shared/api-response.js +0 -96
  311. package/src/adapters/shared/application-adapter.d.ts +0 -18
  312. package/src/adapters/shared/application-adapter.js +0 -90
  313. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  314. package/src/adapters/shared/define-api-handler.js +0 -15
  315. package/src/adapters/shared/explicit-static-render-preparation.d.ts +0 -25
  316. package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
  317. package/src/adapters/shared/explicit-static-route-matcher.d.ts +0 -41
  318. package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
  319. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +0 -62
  320. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
  321. package/src/adapters/shared/fs-server-response-factory.d.ts +0 -23
  322. package/src/adapters/shared/fs-server-response-factory.js +0 -81
  323. package/src/adapters/shared/fs-server-response-matcher.d.ts +0 -75
  324. package/src/adapters/shared/fs-server-response-matcher.js +0 -186
  325. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  326. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  327. package/src/adapters/shared/hmr-html-response.d.ts +0 -22
  328. package/src/adapters/shared/hmr-html-response.js +0 -33
  329. package/src/adapters/shared/render-context.d.ts +0 -16
  330. package/src/adapters/shared/render-context.js +0 -93
  331. package/src/adapters/shared/runtime-app-bootstrap.d.ts +0 -26
  332. package/src/adapters/shared/runtime-app-bootstrap.js +0 -46
  333. package/src/adapters/shared/runtime-host.d.ts +0 -12
  334. package/src/adapters/shared/runtime-host.js +0 -0
  335. package/src/adapters/shared/server-adapter.d.ts +0 -108
  336. package/src/adapters/shared/server-adapter.js +0 -436
  337. package/src/adapters/shared/server-route-handler.d.ts +0 -89
  338. package/src/adapters/shared/server-route-handler.js +0 -111
  339. package/src/adapters/shared/server-static-builder.d.ts +0 -71
  340. package/src/adapters/shared/server-static-builder.js +0 -100
  341. package/src/adapters/shared/shared-hmr-manager.d.ts +0 -59
  342. package/src/adapters/shared/shared-hmr-manager.js +0 -241
  343. package/src/adapters/shared/static-preview-host.d.ts +0 -10
  344. package/src/adapters/shared/static-preview-host.js +0 -0
  345. package/src/build/browser-runtime-import-rewrite-plugin.d.ts +0 -26
  346. package/src/build/browser-runtime-import-rewrite-plugin.js +0 -165
  347. package/src/build/browser-runtime-manifest.d.ts +0 -31
  348. package/src/build/browser-runtime-manifest.js +0 -61
  349. package/src/build/build-adapter.d.ts +0 -247
  350. package/src/build/build-adapter.js +0 -671
  351. package/src/build/build-manifest.d.ts +0 -33
  352. package/src/build/build-manifest.js +0 -52
  353. package/src/build/build-types.d.ts +0 -57
  354. package/src/build/build-types.js +0 -0
  355. package/src/build/dev-build-coordinator.d.ts +0 -72
  356. package/src/build/dev-build-coordinator.js +0 -154
  357. package/src/build/esbuild-build-adapter.d.ts +0 -79
  358. package/src/build/esbuild-build-adapter.js +0 -521
  359. package/src/build/runtime-build-executor.d.ts +0 -14
  360. package/src/build/runtime-build-executor.js +0 -22
  361. package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
  362. package/src/build/runtime-specifier-alias-plugin.js +0 -31
  363. package/src/config/config-builder.d.ts +0 -252
  364. package/src/config/config-builder.js +0 -598
  365. package/src/config/constants.js +0 -25
  366. package/src/dev/host-runtime.d.ts +0 -10
  367. package/src/dev/host-runtime.js +0 -24
  368. package/src/dev/sc-server.d.ts +0 -30
  369. package/src/dev/sc-server.js +0 -111
  370. package/src/eco/eco.browser.d.ts +0 -2
  371. package/src/eco/eco.browser.js +0 -88
  372. package/src/eco/eco.d.ts +0 -9
  373. package/src/eco/eco.js +0 -119
  374. package/src/eco/eco.types.d.ts +0 -233
  375. package/src/eco/eco.types.js +0 -0
  376. package/src/eco/eco.utils.d.ts +0 -1
  377. package/src/eco/eco.utils.js +0 -10
  378. package/src/eco/global-injector-map.d.ts +0 -16
  379. package/src/eco/global-injector-map.js +0 -80
  380. package/src/eco/lazy-injector-map.d.ts +0 -8
  381. package/src/eco/lazy-injector-map.js +0 -70
  382. package/src/eco/module-dependencies.d.ts +0 -18
  383. package/src/eco/module-dependencies.js +0 -49
  384. package/src/errors/http-error.d.ts +0 -31
  385. package/src/errors/http-error.js +0 -50
  386. package/src/errors/index.d.ts +0 -3
  387. package/src/errors/index.js +0 -6
  388. package/src/errors/locals-access-error.d.ts +0 -4
  389. package/src/errors/locals-access-error.js +0 -9
  390. package/src/global/app-logger.d.ts +0 -2
  391. package/src/global/app-logger.js +0 -6
  392. package/src/hmr/client/hmr-runtime.d.ts +0 -5
  393. package/src/hmr/client/hmr-runtime.js +0 -117
  394. package/src/hmr/hmr-strategy.d.ts +0 -162
  395. package/src/hmr/hmr-strategy.js +0 -44
  396. package/src/hmr/hmr.postcss.test.e2e.d.ts +0 -1
  397. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  398. package/src/hmr/hmr.test.e2e.d.ts +0 -1
  399. package/src/hmr/hmr.test.e2e.js +0 -43
  400. package/src/hmr/strategies/default-hmr-strategy.d.ts +0 -43
  401. package/src/hmr/strategies/default-hmr-strategy.js +0 -34
  402. package/src/hmr/strategies/js-hmr-strategy.d.ts +0 -134
  403. package/src/hmr/strategies/js-hmr-strategy.js +0 -173
  404. package/src/index.browser.d.ts +0 -3
  405. package/src/index.browser.js +0 -4
  406. package/src/index.d.ts +0 -6
  407. package/src/index.js +0 -21
  408. package/src/integrations/ghtml/ghtml-renderer.d.ts +0 -16
  409. package/src/integrations/ghtml/ghtml-renderer.js +0 -57
  410. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  411. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  412. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  413. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  414. package/src/plugins/alias-resolver-plugin.d.ts +0 -3
  415. package/src/plugins/alias-resolver-plugin.js +0 -61
  416. package/src/plugins/eco-component-meta-plugin.d.ts +0 -108
  417. package/src/plugins/eco-component-meta-plugin.js +0 -175
  418. package/src/plugins/foreign-jsx-override-plugin.d.ts +0 -33
  419. package/src/plugins/foreign-jsx-override-plugin.js +0 -41
  420. package/src/plugins/integration-plugin.d.ts +0 -230
  421. package/src/plugins/integration-plugin.js +0 -201
  422. package/src/plugins/processor.d.ts +0 -97
  423. package/src/plugins/processor.js +0 -141
  424. package/src/plugins/runtime-capability.js +0 -0
  425. package/src/plugins/source-transform.d.ts +0 -46
  426. package/src/plugins/source-transform.js +0 -71
  427. package/src/route-renderer/orchestration/component-render-context.d.ts +0 -97
  428. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  429. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
  430. package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
  431. package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +0 -110
  432. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -233
  433. package/src/route-renderer/orchestration/integration-renderer.d.ts +0 -534
  434. package/src/route-renderer/orchestration/integration-renderer.js +0 -991
  435. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
  436. package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
  437. package/src/route-renderer/orchestration/ownership-validation.service.d.ts +0 -29
  438. package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
  439. package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +0 -3
  440. package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
  441. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
  442. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
  443. package/src/route-renderer/orchestration/render-output.utils.d.ts +0 -66
  444. package/src/route-renderer/orchestration/render-output.utils.js +0 -171
  445. package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +0 -156
  446. package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -577
  447. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  448. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  449. package/src/route-renderer/page-loading/component-dependency-collection.d.ts +0 -37
  450. package/src/route-renderer/page-loading/component-dependency-collection.js +0 -132
  451. package/src/route-renderer/page-loading/declared-asset-collection.d.ts +0 -24
  452. package/src/route-renderer/page-loading/declared-asset-collection.js +0 -106
  453. package/src/route-renderer/page-loading/dependency-resolver.d.ts +0 -35
  454. package/src/route-renderer/page-loading/dependency-resolver.js +0 -115
  455. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +0 -11
  456. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +0 -57
  457. package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +0 -45
  458. package/src/route-renderer/page-loading/lazy-entry-collection.js +0 -105
  459. package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +0 -19
  460. package/src/route-renderer/page-loading/lazy-trigger-planning.js +0 -40
  461. package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +0 -5
  462. package/src/route-renderer/page-loading/module-declaration-aggregation.js +0 -33
  463. package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +0 -3
  464. package/src/route-renderer/page-loading/module-declaration-scripts.js +0 -18
  465. package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +0 -13
  466. package/src/route-renderer/page-loading/page-dependency-bundling.js +0 -137
  467. package/src/route-renderer/page-loading/page-module-loader.d.ts +0 -90
  468. package/src/route-renderer/page-loading/page-module-loader.js +0 -127
  469. package/src/route-renderer/route-renderer.d.ts +0 -69
  470. package/src/route-renderer/route-renderer.js +0 -80
  471. package/src/router/client/link-intent.js +0 -34
  472. package/src/router/client/link-intent.test.browser.d.ts +0 -1
  473. package/src/router/client/link-intent.test.browser.js +0 -43
  474. package/src/router/client/navigation-coordinator.d.ts +0 -169
  475. package/src/router/client/navigation-coordinator.js +0 -215
  476. package/src/router/server/route-registry.d.ts +0 -78
  477. package/src/router/server/route-registry.js +0 -262
  478. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +0 -3
  479. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +0 -56
  480. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +0 -103
  481. package/src/services/assets/asset-processing-service/asset-processing.service.js +0 -285
  482. package/src/services/assets/asset-processing-service/asset.factory.d.ts +0 -17
  483. package/src/services/assets/asset-processing-service/asset.factory.js +0 -82
  484. package/src/services/assets/asset-processing-service/assets.types.d.ts +0 -103
  485. package/src/services/assets/asset-processing-service/assets.types.js +0 -0
  486. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +0 -57
  487. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +0 -49
  488. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +0 -20
  489. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +0 -41
  490. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +0 -30
  491. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +0 -65
  492. package/src/services/assets/asset-processing-service/index.d.ts +0 -6
  493. package/src/services/assets/asset-processing-service/index.js +0 -6
  494. package/src/services/assets/asset-processing-service/page-package.d.ts +0 -6
  495. package/src/services/assets/asset-processing-service/page-package.js +0 -80
  496. package/src/services/assets/asset-processing-service/processor.interface.js +0 -6
  497. package/src/services/assets/asset-processing-service/processor.registry.d.ts +0 -8
  498. package/src/services/assets/asset-processing-service/processor.registry.js +0 -15
  499. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +0 -24
  500. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +0 -65
  501. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -22
  502. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +0 -136
  503. package/src/services/assets/asset-processing-service/processors/index.d.ts +0 -5
  504. package/src/services/assets/asset-processing-service/processors/index.js +0 -5
  505. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +0 -6
  506. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +0 -120
  507. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -9
  508. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +0 -97
  509. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -42
  510. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +0 -126
  511. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -8
  512. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -59
  513. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -9
  514. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +0 -69
  515. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -18
  516. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +0 -45
  517. package/src/services/assets/browser-bundle.service.d.ts +0 -73
  518. package/src/services/assets/browser-bundle.service.js +0 -41
  519. package/src/services/cache/cache.types.d.ts +0 -107
  520. package/src/services/cache/cache.types.js +0 -0
  521. package/src/services/cache/index.d.ts +0 -7
  522. package/src/services/cache/index.js +0 -7
  523. package/src/services/cache/memory-cache-store.d.ts +0 -42
  524. package/src/services/cache/memory-cache-store.js +0 -98
  525. package/src/services/cache/page-cache-service.d.ts +0 -70
  526. package/src/services/cache/page-cache-service.js +0 -152
  527. package/src/services/cache/page-request-cache-coordinator.service.d.ts +0 -75
  528. package/src/services/cache/page-request-cache-coordinator.service.js +0 -109
  529. package/src/services/html/html-rewriter-provider.service.d.ts +0 -40
  530. package/src/services/html/html-rewriter-provider.service.js +0 -68
  531. package/src/services/html/html-transformer.service.d.ts +0 -96
  532. package/src/services/html/html-transformer.service.js +0 -287
  533. package/src/services/invalidation/development-invalidation.service.d.ts +0 -74
  534. package/src/services/invalidation/development-invalidation.service.js +0 -190
  535. package/src/services/module-loading/app-module-loader.service.d.ts +0 -7
  536. package/src/services/module-loading/app-module-loader.service.js +0 -0
  537. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +0 -24
  538. package/src/services/module-loading/app-server-module-transpiler.service.js +0 -151
  539. package/src/services/module-loading/host-module-loader-registry.d.ts +0 -4
  540. package/src/services/module-loading/host-module-loader-registry.js +0 -15
  541. package/src/services/module-loading/module-loading-types.js +0 -0
  542. package/src/services/module-loading/node-bootstrap-plugin.d.ts +0 -38
  543. package/src/services/module-loading/node-bootstrap-plugin.js +0 -215
  544. package/src/services/module-loading/page-module-import.service.d.ts +0 -95
  545. package/src/services/module-loading/page-module-import.service.js +0 -191
  546. package/src/services/module-loading/server-module-transpiler.service.d.ts +0 -63
  547. package/src/services/module-loading/server-module-transpiler.service.js +0 -64
  548. package/src/services/module-loading/source-module-support.d.ts +0 -5
  549. package/src/services/module-loading/source-module-support.js +0 -8
  550. package/src/services/runtime-state/dev-graph.service.d.ts +0 -118
  551. package/src/services/runtime-state/dev-graph.service.js +0 -162
  552. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +0 -41
  553. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +0 -85
  554. package/src/services/runtime-state/server-invalidation-state.service.d.ts +0 -26
  555. package/src/services/runtime-state/server-invalidation-state.service.js +0 -35
  556. package/src/services/validation/schema-validation-service.d.ts +0 -122
  557. package/src/services/validation/schema-validation-service.js +0 -101
  558. package/src/services/validation/standard-schema.types.js +0 -0
  559. package/src/static-site-generator/static-site-generator.d.ts +0 -104
  560. package/src/static-site-generator/static-site-generator.js +0 -316
  561. package/src/types/internal-types.d.ts +0 -232
  562. package/src/types/internal-types.js +0 -0
  563. package/src/types/public-types.d.ts +0 -1307
  564. package/src/types/public-types.js +0 -0
  565. package/src/utils/deep-merge.d.ts +0 -14
  566. package/src/utils/deep-merge.js +0 -32
  567. package/src/utils/hash.d.ts +0 -1
  568. package/src/utils/hash.js +0 -7
  569. package/src/utils/html-escaping.d.ts +0 -7
  570. package/src/utils/html-escaping.js +0 -6
  571. package/src/utils/html.js +0 -4
  572. package/src/utils/invariant.d.ts +0 -5
  573. package/src/utils/invariant.js +0 -11
  574. package/src/utils/locals-utils.d.ts +0 -15
  575. package/src/utils/locals-utils.js +0 -24
  576. package/src/utils/parse-cli-args.d.ts +0 -27
  577. package/src/utils/parse-cli-args.js +0 -62
  578. package/src/utils/path-utils.module.d.ts +0 -5
  579. package/src/utils/path-utils.module.js +0 -14
  580. package/src/utils/resolve-work-dir.d.ts +0 -11
  581. package/src/utils/resolve-work-dir.js +0 -31
  582. package/src/utils/runtime.d.ts +0 -11
  583. package/src/utils/runtime.js +0 -40
  584. package/src/utils/server-utils.module.d.ts +0 -19
  585. package/src/utils/server-utils.module.js +0 -56
  586. package/src/watchers/project-watcher.d.ts +0 -136
  587. package/src/watchers/project-watcher.js +0 -275
  588. package/src/watchers/project-watcher.test-helpers.d.ts +0 -4
  589. package/src/watchers/project-watcher.test-helpers.js +0 -52
  590. /package/src/utils/{html.d.ts → html.ts} +0 -0
@@ -1,216 +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 type { StaticPreviewHost } from '../shared/static-preview-host.js';
7
- import { ClientBridge } from './client-bridge.js';
8
- import { HmrManager } from './hmr-manager.js';
9
- type BunServerInstance = Server<unknown>;
10
- type BunNativeServeOptions = Bun.Serve.Options<unknown>;
11
- export type BunServerRoutes = Bun.Serve.Routes<unknown, string>;
12
- export type BunServeAdapterServerOptions = Partial<Omit<BunNativeServeOptions, 'fetch'> & {
13
- fetch(this: BunServerInstance, request: Request): Promise<void | Response>;
14
- }>;
15
- export type BunServeOptions = Omit<BunNativeServeOptions, 'fetch'> & {
16
- fetch?: (this: BunServerInstance, request: Request, server: BunServerInstance) => Promise<void | Response>;
17
- websocket?: WebSocketHandler<unknown>;
18
- };
19
- /**
20
- * Construction parameters for the Bun server adapter.
21
- *
22
- * @remarks
23
- * Callers normally provide only the app-facing fields such as routes, handlers,
24
- * and `serveOptions`. The transport collaborators remain optional here because
25
- * `createBunServerAdapter()` fills in Bun-specific defaults before the concrete
26
- * adapter instance is created.
27
- */
28
- export interface BunServerAdapterParams {
29
- appConfig: EcoPagesAppConfig;
30
- runtimeOrigin: string;
31
- serveOptions: BunServeAdapterServerOptions;
32
- apiHandlers?: ApiHandler<string, Request, BunServerInstance>[];
33
- staticRoutes?: StaticRoute[];
34
- errorHandler?: ErrorHandler;
35
- options?: {
36
- watch?: boolean;
37
- };
38
- hmrManager?: HmrManager;
39
- bridge?: ClientBridge;
40
- previewHost?: StaticPreviewHost;
41
- }
42
- export interface BunServerAdapterResult extends ServerAdapterResult {
43
- getServerOptions: (options?: {
44
- enableHmr?: boolean;
45
- }) => BunServeOptions;
46
- buildStatic: (options?: {
47
- preview?: boolean;
48
- }) => Promise<void>;
49
- completeInitialization: (server?: BunServerInstance | null) => Promise<void>;
50
- handleRequest: (request: Request) => Promise<Response>;
51
- }
52
- /**
53
- * Bun transport adapter that wires shared Ecopages request handling onto a live
54
- * `Bun.serve()` runtime.
55
- *
56
- * @remarks
57
- * The adapter owns Bun-specific concerns that do not exist in the shared server
58
- * abstraction: websocket-backed HMR transport, runtime plugin registration, and
59
- * preview-host startup for static builds. Routing, rendering, and response
60
- * composition still delegate to the shared server adapter base.
61
- */
62
- export declare class BunServerAdapter extends SharedServerAdapter<BunServerAdapterParams, BunServerAdapterResult> {
63
- appConfig: EcoPagesAppConfig;
64
- options: BunServerAdapterParams['options'];
65
- serveOptions: BunServeAdapterServerOptions;
66
- protected apiHandlers: ApiHandler<string, Request, BunServerInstance>[];
67
- protected staticRoutes: StaticRoute[];
68
- protected errorHandler?: ErrorHandler;
69
- private bridge;
70
- hmrManager: HmrManager;
71
- private initializationPromise;
72
- private fullyInitialized;
73
- serverInstance: BunServerInstance | null;
74
- private readonly previewHost;
75
- /**
76
- * Creates a Bun server adapter with already-resolved runtime collaborators.
77
- *
78
- * @remarks
79
- * The public params interface keeps `hmrManager`, `bridge`, and `previewHost`
80
- * optional so factory callers can omit them. By the time the concrete adapter
81
- * is constructed, those collaborators are mandatory because the adapter cannot
82
- * initialize Bun HMR or preview flows without them.
83
- */
84
- constructor({ appConfig, runtimeOrigin, serveOptions, apiHandlers, staticRoutes, errorHandler, options, hmrManager, bridge, previewHost, }: BunServerAdapterParams & {
85
- hmrManager: HmrManager;
86
- bridge: ClientBridge;
87
- previewHost: StaticPreviewHost;
88
- });
89
- /**
90
- * Returns whether adapter-level HTML responses still need HMR runtime injection.
91
- *
92
- * @remarks
93
- * Filesystem-routed pages are wrapped later in the shared route layer. This
94
- * adapter-level check exists for explicit API handlers that return HTML and
95
- * would otherwise bypass the route wrapper entirely.
96
- */
97
- private shouldInjectHmrScript;
98
- /**
99
- * Delegates the HTML-response test to the shared response helper used by both
100
- * adapters.
101
- */
102
- private isHtmlResponse;
103
- /**
104
- * Injects HMR script into HTML responses in development mode.
105
- * Ensures explicit API handlers that return HTML get auto-reload capability.
106
- */
107
- private maybeInjectHmrScript;
108
- /**
109
- * Initializes the server adapter's core runtime components.
110
- */
111
- initialize(): Promise<void>;
112
- /**
113
- * Copies the source `public` directory into the runtime output and ensures the
114
- * HMR assets directory exists before any runtime bundles are emitted.
115
- */
116
- private prepareRuntimePublicDir;
117
- /**
118
- * Registers runtime plugins and propagates the final HMR manager into each
119
- * integration.
120
- *
121
- * @remarks
122
- * This is where Bun's runtime-plugin registration path meets the integration
123
- * lifecycle. A failure here leaves the runtime partially bootstrapped, so the
124
- * method logs the underlying error and rethrows instead of trying to limp on.
125
- */
126
- private initializeRuntimePlugins;
127
- /**
128
- * Rebuilds the shared routing state and hot-reloads the live Bun server when a
129
- * watched route file changes.
130
- */
131
- private refreshRouterRoutes;
132
- private watch;
133
- /**
134
- * Builds the `Bun.serve()` options for the current adapter state.
135
- *
136
- * @remarks
137
- * The HMR-enabled variant wraps the base fetch handler so one Bun server can
138
- * serve normal requests, accept HMR websocket upgrades, and expose the HMR
139
- * runtime asset without splitting responsibility across separate listeners.
140
- */
141
- getServerOptions({ enableHmr }?: {
142
- enableHmr?: boolean | undefined;
143
- }): BunServeOptions;
144
- /**
145
- * Helper method to retrieve and parse the request body.
146
- * Handles JSON and plain text content types.
147
- * For FormData (multipart/form-data, x-www-form-urlencoded), use ctx.request.formData() directly.
148
- * Returns undefined for unsupported content types.
149
- */
150
- private retrieveBodyFromRequest;
151
- /**
152
- * Composes the base Bun server settings that all runtime modes build from.
153
- *
154
- * @remarks
155
- * This method centralizes the Bun-specific error boundary. It preserves the
156
- * shared route pipeline while still allowing adapter-level custom error-handler
157
- * execution and `HttpError` passthrough.
158
- */
159
- private buildServerSettings;
160
- /**
161
- * Generates a static build of the site for deployment.
162
- * @param options.preview - If true, starts a preview server after build
163
- */
164
- buildStatic(options?: {
165
- preview?: boolean;
166
- }): Promise<void>;
167
- /**
168
- * Initializes the server with dynamic routes after server creation.
169
- * Must be called before handling any requests.
170
- * @param server - The Bun server instance
171
- */
172
- completeInitialization(server?: BunServerInstance | null): Promise<void>;
173
- /**
174
- * Performs the one-time post-bind initialization path for Bun servers.
175
- *
176
- * @remarks
177
- * This is intentionally split from `initialize()` because shared route handling
178
- * and file watching need the live server instance to exist before Bun can
179
- * reload updated route handlers in place.
180
- */
181
- private _performInitialization;
182
- /**
183
- * Creates and initializes the Bun server adapter.
184
- * @returns Configured adapter with server methods
185
- */
186
- createAdapter(): Promise<BunServerAdapterResult>;
187
- /**
188
- * Handles HTTP requests by passing them securely to the shared core router adapter.
189
- */
190
- handleRequest(request: Request): Promise<Response>;
191
- /**
192
- * Ensures server initialization completes before request handling.
193
- * Prevents race conditions during startup.
194
- */
195
- private waitForInitialization;
196
- /**
197
- * Handles HTTP requests from the router adapter.
198
- */
199
- handleResponse(request: Request): Promise<Response>;
200
- /**
201
- * Handles requests that do not match any routes.
202
- */
203
- private handleNoMatch;
204
- }
205
- /**
206
- * Creates the Bun server adapter and fills in the runtime-specific collaborators
207
- * that Bun callers usually leave implicit.
208
- *
209
- * @remarks
210
- * This is the canonical entry point for Bun server-adapter construction. It
211
- * guarantees that the concrete adapter receives a Bun websocket bridge, HMR
212
- * manager, and preview host even though those dependencies are optional on the
213
- * public params type.
214
- */
215
- export declare function createBunServerAdapter(params: BunServerAdapterParams): Promise<BunServerAdapterResult>;
216
- export {};
@@ -1,445 +0,0 @@
1
- import path from "node:path";
2
- import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
3
- import { RESOLVED_ASSETS_DIR } from "../../config/constants.js";
4
- import { appLogger } from "../../global/app-logger.js";
5
- import { HttpError } from "../../errors/http-error.js";
6
- import { createRequire } from "../../utils/locals-utils.js";
7
- import { fileSystem } from "@ecopages/file-system";
8
- import { getAppBrowserBuildPlugins, setupAppRuntimePlugins } from "../../build/build-adapter.js";
9
- import { installAppRuntimeBuildExecutor } from "../../build/runtime-build-executor.js";
10
- import { StaticSiteGenerator } from "../../static-site-generator/static-site-generator.js";
11
- import { ProjectWatcher } from "../../watchers/project-watcher.js";
12
- import { SharedServerAdapter } from "../shared/server-adapter.js";
13
- import { ApiResponseBuilder } from "../shared/api-response.js";
14
- import { ServerStaticBuilder } from "../shared/server-static-builder.js";
15
- import {
16
- injectHmrRuntimeIntoHtmlResponse,
17
- isHtmlResponse,
18
- shouldInjectHmrHtmlResponse
19
- } from "../shared/hmr-html-response.js";
20
- import { resolveServeRuntimeOrigin } from "../shared/runtime-app-bootstrap.js";
21
- import { ClientBridge } from "./client-bridge.js";
22
- import { HmrManager } from "./hmr-manager.js";
23
- import { BunStaticPreviewHost } from "./static-preview-host.js";
24
- class BunServerAdapter extends SharedServerAdapter {
25
- apiHandlers;
26
- staticRoutes;
27
- errorHandler;
28
- bridge;
29
- hmrManager;
30
- initializationPromise = null;
31
- fullyInitialized = false;
32
- previewHost;
33
- /**
34
- * Creates a Bun server adapter with already-resolved runtime collaborators.
35
- *
36
- * @remarks
37
- * The public params interface keeps `hmrManager`, `bridge`, and `previewHost`
38
- * optional so factory callers can omit them. By the time the concrete adapter
39
- * is constructed, those collaborators are mandatory because the adapter cannot
40
- * initialize Bun HMR or preview flows without them.
41
- */
42
- constructor({
43
- appConfig,
44
- runtimeOrigin,
45
- serveOptions,
46
- apiHandlers,
47
- staticRoutes,
48
- errorHandler,
49
- options,
50
- hmrManager,
51
- bridge,
52
- previewHost
53
- }) {
54
- super({ appConfig, runtimeOrigin, serveOptions, options });
55
- this.apiHandlers = apiHandlers || [];
56
- this.staticRoutes = staticRoutes || [];
57
- this.errorHandler = errorHandler;
58
- this.bridge = bridge;
59
- this.hmrManager = hmrManager;
60
- this.previewHost = previewHost;
61
- }
62
- /**
63
- * Returns whether adapter-level HTML responses still need HMR runtime injection.
64
- *
65
- * @remarks
66
- * Filesystem-routed pages are wrapped later in the shared route layer. This
67
- * adapter-level check exists for explicit API handlers that return HTML and
68
- * would otherwise bypass the route wrapper entirely.
69
- */
70
- shouldInjectHmrScript() {
71
- return shouldInjectHmrHtmlResponse(this.options?.watch === true, this.hmrManager);
72
- }
73
- /**
74
- * Delegates the HTML-response test to the shared response helper used by both
75
- * adapters.
76
- */
77
- isHtmlResponse(response) {
78
- return isHtmlResponse(response);
79
- }
80
- /**
81
- * Injects HMR script into HTML responses in development mode.
82
- * Ensures explicit API handlers that return HTML get auto-reload capability.
83
- */
84
- async maybeInjectHmrScript(response) {
85
- if (this.shouldInjectHmrScript() && this.isHtmlResponse(response)) {
86
- return injectHmrRuntimeIntoHtmlResponse(response);
87
- }
88
- return response;
89
- }
90
- /**
91
- * Initializes the server adapter's core runtime components.
92
- */
93
- async initialize() {
94
- installAppRuntimeBuildExecutor(this.appConfig, {
95
- development: this.options?.watch === true
96
- });
97
- this.staticSiteGenerator = new StaticSiteGenerator({ appConfig: this.appConfig });
98
- await this.hmrManager.buildRuntime();
99
- this.prepareRuntimePublicDir();
100
- const staticBuilderOptions = {
101
- appConfig: this.appConfig,
102
- staticSiteGenerator: this.staticSiteGenerator,
103
- serveOptions: this.serveOptions,
104
- apiHandlers: this.apiHandlers
105
- };
106
- this.staticBuilder = new ServerStaticBuilder(staticBuilderOptions);
107
- await this.initializeRuntimePlugins({ watch: this.options?.watch });
108
- }
109
- /**
110
- * Copies the source `public` directory into the runtime output and ensures the
111
- * HMR assets directory exists before any runtime bundles are emitted.
112
- */
113
- prepareRuntimePublicDir() {
114
- const srcPublicDir = path.join(this.appConfig.rootDir, this.appConfig.srcDir, this.appConfig.publicDir);
115
- if (fileSystem.exists(srcPublicDir)) {
116
- fileSystem.copyDir(srcPublicDir, path.join(this.appConfig.rootDir, this.appConfig.distDir));
117
- }
118
- fileSystem.ensureDir(path.join(this.appConfig.absolutePaths.distDir, RESOLVED_ASSETS_DIR));
119
- }
120
- /**
121
- * Registers runtime plugins and propagates the final HMR manager into each
122
- * integration.
123
- *
124
- * @remarks
125
- * This is where Bun's runtime-plugin registration path meets the integration
126
- * lifecycle. A failure here leaves the runtime partially bootstrapped, so the
127
- * method logs the underlying error and rethrows instead of trying to limp on.
128
- */
129
- async initializeRuntimePlugins(options) {
130
- try {
131
- this.hmrManager.setEnabled(Boolean(options?.watch));
132
- await setupAppRuntimePlugins({
133
- appConfig: this.appConfig,
134
- runtimeOrigin: this.runtimeOrigin,
135
- hmrManager: this.hmrManager,
136
- onRuntimePlugin: (plugin) => {
137
- Bun.plugin(plugin);
138
- }
139
- });
140
- const browserBuildPlugins = getAppBrowserBuildPlugins(this.appConfig);
141
- this.hmrManager.setPlugins(browserBuildPlugins);
142
- for (const integration of this.appConfig.integrations) {
143
- integration.setHmrManager(this.hmrManager);
144
- }
145
- } catch (error) {
146
- appLogger.error(`Failed to initialize plugins: ${error instanceof Error ? error.message : String(error)}`);
147
- throw error;
148
- }
149
- }
150
- /**
151
- * Rebuilds the shared routing state and hot-reloads the live Bun server when a
152
- * watched route file changes.
153
- */
154
- async refreshRouterRoutes() {
155
- if (!this.serverInstance || typeof this.serverInstance.reload !== "function") {
156
- appLogger.error("Server instance is not available for reloading");
157
- return;
158
- }
159
- await this.createSharedWatchRefreshCallback({
160
- staticRoutes: this.staticRoutes,
161
- hmrManager: this.hmrManager,
162
- onRoutesReady: () => {
163
- const options = this.getServerOptions({ enableHmr: true });
164
- this.serverInstance.reload(options);
165
- appLogger.debug("Server routes updated with dynamic routes");
166
- },
167
- onError: (error) => {
168
- this.hmrManager.broadcast({ type: "error", message: error.message });
169
- appLogger.error("Failed to refresh router routes:", error);
170
- }
171
- })();
172
- }
173
- async watch() {
174
- const watcher = new ProjectWatcher({
175
- config: this.appConfig,
176
- refreshRouterRoutesCallback: this.refreshRouterRoutes.bind(this),
177
- hmrManager: this.hmrManager,
178
- bridge: this.bridge
179
- });
180
- await watcher.createWatcherSubscription();
181
- }
182
- /**
183
- * Builds the `Bun.serve()` options for the current adapter state.
184
- *
185
- * @remarks
186
- * The HMR-enabled variant wraps the base fetch handler so one Bun server can
187
- * serve normal requests, accept HMR websocket upgrades, and expose the HMR
188
- * runtime asset without splitting responsibility across separate listeners.
189
- */
190
- getServerOptions({ enableHmr = false } = {}) {
191
- appLogger.debug(`[BunServerAdapter] getServerOptions called with enableHmr: ${enableHmr}`);
192
- const serverOptions = this.buildServerSettings();
193
- if (enableHmr) {
194
- const originalFetch = serverOptions.fetch;
195
- const hmrHandler = this.hmrManager.getWebSocketHandler();
196
- const hmrManager = this.hmrManager;
197
- serverOptions.development = true;
198
- serverOptions.websocket = hmrHandler;
199
- serverOptions.fetch = async function(request, _server) {
200
- const url = new URL(request.url);
201
- appLogger.debug(`[HMR] Request: ${url.pathname}`);
202
- if (url.pathname === "/_hmr") {
203
- const success = this.upgrade(request, {
204
- data: void 0
205
- });
206
- if (success) return;
207
- return new Response("WebSocket upgrade failed", { status: 400 });
208
- }
209
- if (url.pathname === "/_hmr_runtime.js") {
210
- appLogger.debug(`[HMR] Serving runtime from ${hmrManager.getRuntimePath()}`);
211
- return new Response(fileSystem.readFileAsBuffer(hmrManager.getRuntimePath()), {
212
- headers: { "Content-Type": "application/javascript" }
213
- });
214
- }
215
- let response;
216
- if (originalFetch) {
217
- const res = await originalFetch.call(this, request, this);
218
- response = res instanceof Response ? res : new Response("Not Found", { status: 404 });
219
- } else {
220
- response = new Response("Not Found", { status: 404 });
221
- }
222
- return response;
223
- };
224
- }
225
- return serverOptions;
226
- }
227
- /**
228
- * Helper method to retrieve and parse the request body.
229
- * Handles JSON and plain text content types.
230
- * For FormData (multipart/form-data, x-www-form-urlencoded), use ctx.request.formData() directly.
231
- * Returns undefined for unsupported content types.
232
- */
233
- async retrieveBodyFromRequest(request) {
234
- const contentType = request.headers.get("Content-Type") || "";
235
- if (contentType.includes("application/json")) {
236
- return await request.json();
237
- }
238
- if (contentType.includes("text/plain")) {
239
- return await request.text();
240
- }
241
- return void 0;
242
- }
243
- /**
244
- * Composes the base Bun server settings that all runtime modes build from.
245
- *
246
- * @remarks
247
- * This method centralizes the Bun-specific error boundary. It preserves the
248
- * shared route pipeline while still allowing adapter-level custom error-handler
249
- * execution and `HttpError` passthrough.
250
- */
251
- buildServerSettings() {
252
- const serverOptions = { ...this.serveOptions };
253
- const handleNoMatch = this.handleNoMatch.bind(this);
254
- const waitForInit = this.waitForInitialization.bind(this);
255
- const handleReq = this.handleRequest.bind(this);
256
- const errorHandler = this.errorHandler;
257
- const getCacheService = () => this.getCacheService();
258
- const getRenderContext = () => this.getRenderContext();
259
- appLogger.debug(`[BunServerAdapter] Building server settings`);
260
- const finalOptions = {
261
- ...serverOptions,
262
- async fetch(request, _server) {
263
- try {
264
- await waitForInit();
265
- return await handleReq(request);
266
- } catch (error) {
267
- if (error instanceof Response) return error;
268
- if (errorHandler) {
269
- try {
270
- const locals = {};
271
- const context = {
272
- request,
273
- params: {},
274
- response: new ApiResponseBuilder(),
275
- server: _server,
276
- locals,
277
- require: createRequire(() => locals),
278
- services: {
279
- cache: getCacheService()
280
- },
281
- ...getRenderContext()
282
- };
283
- return await errorHandler(error, context);
284
- } catch (handlerError) {
285
- appLogger.error(`[ecopages] Error in custom error handler: ${handlerError}`);
286
- }
287
- }
288
- if (error instanceof HttpError) return error.toResponse();
289
- appLogger.error(`[ecopages] Error handling request: ${error}`);
290
- return new Response("Internal Server Error", { status: 500 });
291
- }
292
- },
293
- error(error) {
294
- appLogger.error(`[ecopages] Error handling request: ${error}`);
295
- return handleNoMatch(new Request("http://localhost"));
296
- }
297
- };
298
- return finalOptions;
299
- }
300
- /**
301
- * Generates a static build of the site for deployment.
302
- * @param options.preview - If true, starts a preview server after build
303
- */
304
- async buildStatic(options) {
305
- if (!this.fullyInitialized) {
306
- await this.initializeSharedRouteHandling({
307
- staticRoutes: this.staticRoutes,
308
- hmrManager: this.hmrManager
309
- });
310
- }
311
- const buildRuntimeOrigin = this.serverInstance ? `http://${this.serverInstance.hostname || DEFAULT_ECOPAGES_HOSTNAME}:${this.serverInstance.port || DEFAULT_ECOPAGES_PORT}` : void 0;
312
- await this.staticBuilder.build(
313
- { ...options, preview: false, baseUrl: buildRuntimeOrigin },
314
- {
315
- router: this.router,
316
- routeRendererFactory: this.routeRendererFactory,
317
- staticRoutes: this.staticRoutes
318
- }
319
- );
320
- if (!options?.preview) {
321
- return;
322
- }
323
- const previewHostname = this.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME;
324
- const previewPort = Number(this.serveOptions.port || DEFAULT_ECOPAGES_PORT);
325
- const activePreviewPort = await this.previewHost.start({
326
- appConfig: this.appConfig,
327
- hostname: String(previewHostname),
328
- port: previewPort
329
- });
330
- if (activePreviewPort) {
331
- appLogger.info(`Preview running at http://${previewHostname}:${activePreviewPort}`);
332
- return;
333
- }
334
- }
335
- /**
336
- * Initializes the server with dynamic routes after server creation.
337
- * Must be called before handling any requests.
338
- * @param server - The Bun server instance
339
- */
340
- async completeInitialization(server) {
341
- if (this.fullyInitialized) {
342
- if (server && !this.serverInstance) {
343
- this.serverInstance = server;
344
- }
345
- return;
346
- }
347
- if (!this.initializationPromise) {
348
- this.initializationPromise = this._performInitialization(server ?? null);
349
- }
350
- return this.initializationPromise;
351
- }
352
- /**
353
- * Performs the one-time post-bind initialization path for Bun servers.
354
- *
355
- * @remarks
356
- * This is intentionally split from `initialize()` because shared route handling
357
- * and file watching need the live server instance to exist before Bun can
358
- * reload updated route handlers in place.
359
- */
360
- async _performInitialization(server) {
361
- this.serverInstance = server;
362
- appLogger.debug("Completing server initialization with dynamic routes");
363
- await this.initializeSharedRouteHandling({
364
- staticRoutes: this.staticRoutes,
365
- hmrManager: this.hmrManager
366
- });
367
- this.fullyInitialized = true;
368
- if (this.options?.watch) await this.watch();
369
- if (server && typeof server.reload === "function") {
370
- const updatedOptions = this.getServerOptions(this.options?.watch ? { enableHmr: true } : void 0);
371
- server.reload(updatedOptions);
372
- appLogger.debug("Server routes updated with dynamic routes");
373
- }
374
- }
375
- /**
376
- * Creates and initializes the Bun server adapter.
377
- * @returns Configured adapter with server methods
378
- */
379
- async createAdapter() {
380
- await this.initialize();
381
- return {
382
- getServerOptions: this.getServerOptions.bind(this),
383
- buildStatic: this.buildStatic.bind(this),
384
- completeInitialization: this.completeInitialization.bind(this),
385
- handleRequest: this.handleRequest.bind(this)
386
- };
387
- }
388
- /**
389
- * Handles HTTP requests by passing them securely to the shared core router adapter.
390
- */
391
- async handleRequest(request) {
392
- const response = await this.handleSharedRequest(request, {
393
- apiHandlers: this.apiHandlers,
394
- errorHandler: this.errorHandler,
395
- serverInstance: this.serverInstance,
396
- hmrManager: this.hmrManager
397
- });
398
- return await this.maybeInjectHmrScript(response);
399
- }
400
- /**
401
- * Ensures server initialization completes before request handling.
402
- * Prevents race conditions during startup.
403
- */
404
- async waitForInitialization() {
405
- if (this.fullyInitialized) {
406
- return;
407
- }
408
- if (this.initializationPromise) {
409
- return this.initializationPromise;
410
- }
411
- throw new Error("Server not initialized. Call completeInitialization() first.");
412
- }
413
- /**
414
- * Handles HTTP requests from the router adapter.
415
- */
416
- async handleResponse(request) {
417
- await this.waitForInitialization();
418
- return this.routeHandler.handleResponse(request);
419
- }
420
- /**
421
- * Handles requests that do not match any routes.
422
- */
423
- async handleNoMatch(request) {
424
- await this.waitForInitialization();
425
- return this.routeHandler.handleNoMatch(request);
426
- }
427
- }
428
- async function createBunServerAdapter(params) {
429
- const runtimeOrigin = params.runtimeOrigin ?? resolveServeRuntimeOrigin(params.serveOptions);
430
- const bridge = params.bridge ?? new ClientBridge();
431
- const hmrManager = params.hmrManager ?? new HmrManager({ appConfig: params.appConfig, bridge });
432
- const previewHost = params.previewHost ?? new BunStaticPreviewHost();
433
- const adapter = new BunServerAdapter({
434
- ...params,
435
- runtimeOrigin,
436
- bridge,
437
- hmrManager,
438
- previewHost
439
- });
440
- return adapter.createAdapter();
441
- }
442
- export {
443
- BunServerAdapter,
444
- createBunServerAdapter
445
- };
@@ -1,28 +0,0 @@
1
- import type { EcoPagesAppConfig } from '../../types/internal-types.js';
2
- import type { StaticPreviewHost, StaticPreviewHostStartOptions } from '../shared/static-preview-host.js';
3
- type BunStaticPreviewServer = {
4
- server: {
5
- port?: number;
6
- } | null;
7
- stop(): void;
8
- };
9
- type BunStaticPreviewServerFactory = {
10
- createServer(args: {
11
- appConfig: EcoPagesAppConfig;
12
- options: {
13
- port: number;
14
- };
15
- }): BunStaticPreviewServer;
16
- };
17
- type BunStaticPreviewLogger = {
18
- error(message: string): unknown;
19
- };
20
- export declare class BunStaticPreviewHost implements StaticPreviewHost {
21
- private readonly previewServerFactory;
22
- private readonly logger;
23
- private previewServer;
24
- constructor(previewServerFactory?: BunStaticPreviewServerFactory, logger?: BunStaticPreviewLogger);
25
- start(options: StaticPreviewHostStartOptions): Promise<number | null>;
26
- stop(): Promise<void>;
27
- }
28
- export {};