@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,57 +0,0 @@
1
- import { createServer, type Server as NodeServerInstance } from 'node:http';
2
- import type { RuntimeHost, RuntimeHostStartOptions } from '../shared/runtime-host.js';
3
- import { NodeHttpRequestBridge } from './http-request-bridge.js';
4
- type NodeServerFactory = typeof createServer;
5
- /**
6
- * Node runtime host that binds the shared Web-request pipeline onto a concrete
7
- * Node HTTP server.
8
- *
9
- * @remarks
10
- * The host owns only transport concerns: creating the Node listener, converting
11
- * requests through `NodeHttpRequestBridge`, and handling socket-level failures.
12
- * Routing and rendering remain in the shared server adapter.
13
- */
14
- export declare class NodeRuntimeHost implements RuntimeHost<NodeServerInstance, {
15
- port?: number;
16
- hostname?: string;
17
- }> {
18
- private readonly requestBridge;
19
- private readonly serverFactory;
20
- /**
21
- * Creates a Node runtime host with injectable request bridging and server
22
- * creation seams for tests and alternate hosts.
23
- */
24
- constructor(requestBridge: NodeHttpRequestBridge, serverFactory?: NodeServerFactory);
25
- /**
26
- * Starts the Node HTTP server and wires each request through the shared Web
27
- * request pipeline.
28
- *
29
- * @remarks
30
- * Client disconnects are treated as normal aborts and do not trigger adapter
31
- * error logging or the runtime host's `onError` callback.
32
- */
33
- start(options: RuntimeHostStartOptions<{
34
- port?: number;
35
- hostname?: string;
36
- }>): Promise<NodeServerInstance>;
37
- /**
38
- * Stops the Node HTTP server and, by default, force-closes any remaining open
39
- * connections.
40
- */
41
- stop(server: NodeServerInstance, options?: {
42
- force?: boolean;
43
- }): Promise<void>;
44
- /**
45
- * Resolves the public runtime origin from the bound Node listener.
46
- *
47
- * @remarks
48
- * The host preserves the configured hostname rather than echoing the raw socket
49
- * address because users care about the requested host contract, not the local
50
- * bind interface that Node chose internally.
51
- */
52
- getOrigin(server: NodeServerInstance, fallbackServeOptions: {
53
- port?: number;
54
- hostname?: string;
55
- }): string;
56
- }
57
- export {};
@@ -1,92 +0,0 @@
1
- import { createServer } from "node:http";
2
- import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
3
- import { appLogger } from "../../global/app-logger.js";
4
- import { resolveServeRuntimeOrigin } from "../shared/runtime-app-bootstrap.js";
5
- import { isNodeClientAbortError, NodeHttpRequestBridge } from "./http-request-bridge.js";
6
- class NodeRuntimeHost {
7
- /**
8
- * Creates a Node runtime host with injectable request bridging and server
9
- * creation seams for tests and alternate hosts.
10
- */
11
- constructor(requestBridge, serverFactory = createServer) {
12
- this.requestBridge = requestBridge;
13
- this.serverFactory = serverFactory;
14
- }
15
- requestBridge;
16
- serverFactory;
17
- /**
18
- * Starts the Node HTTP server and wires each request through the shared Web
19
- * request pipeline.
20
- *
21
- * @remarks
22
- * Client disconnects are treated as normal aborts and do not trigger adapter
23
- * error logging or the runtime host's `onError` callback.
24
- */
25
- async start(options) {
26
- const hostname = String(options.serveOptions.hostname ?? DEFAULT_ECOPAGES_HOSTNAME);
27
- const port = Number(options.serveOptions.port ?? DEFAULT_ECOPAGES_PORT);
28
- const runtimeOrigin = resolveServeRuntimeOrigin({ hostname, port });
29
- const server = this.serverFactory(async (req, res) => {
30
- try {
31
- const webRequest = this.requestBridge.createWebRequest(req, runtimeOrigin);
32
- const response = await options.handleRequest(webRequest);
33
- await this.requestBridge.sendNodeResponse(res, response);
34
- } catch (error) {
35
- if (isNodeClientAbortError(error)) {
36
- return;
37
- }
38
- appLogger.error("Node server adapter request failed", error);
39
- res.statusCode = 500;
40
- res.end("Internal Server Error");
41
- await options.onError(error instanceof Error ? error : new Error(String(error)));
42
- }
43
- });
44
- await new Promise((resolve) => {
45
- server.listen(port, hostname, () => resolve());
46
- });
47
- return server;
48
- }
49
- /**
50
- * Stops the Node HTTP server and, by default, force-closes any remaining open
51
- * connections.
52
- */
53
- async stop(server, options) {
54
- await new Promise((resolve, reject) => {
55
- server.close((error) => {
56
- if (error) {
57
- reject(error);
58
- return;
59
- }
60
- resolve();
61
- });
62
- if (options?.force ?? true) {
63
- server.closeAllConnections();
64
- }
65
- });
66
- }
67
- /**
68
- * Resolves the public runtime origin from the bound Node listener.
69
- *
70
- * @remarks
71
- * The host preserves the configured hostname rather than echoing the raw socket
72
- * address because users care about the requested host contract, not the local
73
- * bind interface that Node chose internally.
74
- */
75
- getOrigin(server, fallbackServeOptions) {
76
- const address = server.address();
77
- const fallbackHostname = fallbackServeOptions.hostname ?? DEFAULT_ECOPAGES_HOSTNAME;
78
- if (address && typeof address === "object") {
79
- return resolveServeRuntimeOrigin({
80
- hostname: fallbackHostname,
81
- port: address.port
82
- });
83
- }
84
- return resolveServeRuntimeOrigin({
85
- hostname: fallbackHostname,
86
- port: fallbackServeOptions.port
87
- });
88
- }
89
- }
90
- export {
91
- NodeRuntimeHost
92
- };
@@ -1,19 +0,0 @@
1
- import { WebSocketServer } from 'ws';
2
- import type { EcoPagesAppConfig } from '../../types/internal-types.js';
3
- import { NodeClientBridge } from './node-client-bridge.js';
4
- import { NodeHmrManager } from './node-hmr-manager.js';
5
- export interface NodeServerDevRuntime {
6
- websocketServer: WebSocketServer;
7
- bridge: NodeClientBridge;
8
- hmrManager: NodeHmrManager;
9
- }
10
- export interface NodeServerDevRuntimeFactory {
11
- create(options: {
12
- appConfig: EcoPagesAppConfig;
13
- }): NodeServerDevRuntime;
14
- }
15
- export declare class DefaultNodeServerDevRuntimeFactory implements NodeServerDevRuntimeFactory {
16
- create(options: {
17
- appConfig: EcoPagesAppConfig;
18
- }): NodeServerDevRuntime;
19
- }
@@ -1,18 +0,0 @@
1
- import { WebSocketServer } from "ws";
2
- import { NodeClientBridge } from "./node-client-bridge.js";
3
- import { NodeHmrManager } from "./node-hmr-manager.js";
4
- class DefaultNodeServerDevRuntimeFactory {
5
- create(options) {
6
- const websocketServer = new WebSocketServer({ noServer: true });
7
- const bridge = new NodeClientBridge();
8
- const hmrManager = new NodeHmrManager({ appConfig: options.appConfig, bridge });
9
- return {
10
- websocketServer,
11
- bridge,
12
- hmrManager
13
- };
14
- }
15
- }
16
- export {
17
- DefaultNodeServerDevRuntimeFactory
18
- };
@@ -1,138 +0,0 @@
1
- import { type Server as NodeHttpServer } from 'node:http';
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 { NodeHttpRequestBridge } from './http-request-bridge.js';
7
- import type { StaticPreviewHost } from '../shared/static-preview-host.js';
8
- import { type NodeServerDevRuntimeFactory } from './server-adapter-dependencies.js';
9
- export type NodeServerInstance = NodeHttpServer;
10
- export type NodeServeAdapterServerOptions = {
11
- port?: number;
12
- hostname?: string;
13
- [key: string]: unknown;
14
- };
15
- export interface NodeServerAdapterParams {
16
- appConfig: EcoPagesAppConfig;
17
- runtimeOrigin: string;
18
- serveOptions: NodeServeAdapterServerOptions;
19
- apiHandlers?: ApiHandler[];
20
- staticRoutes?: StaticRoute[];
21
- errorHandler?: ErrorHandler;
22
- options?: {
23
- watch?: boolean;
24
- };
25
- previewHost?: StaticPreviewHost;
26
- requestBridge?: NodeHttpRequestBridge;
27
- devRuntimeFactory?: NodeServerDevRuntimeFactory;
28
- }
29
- export interface NodeServerAdapterResult extends ServerAdapterResult {
30
- completeInitialization: (server: NodeServerInstance) => Promise<void>;
31
- handleRequest: (request: Request) => Promise<Response>;
32
- }
33
- /**
34
- * Node.js HTTP server adapter for the Ecopages runtime.
35
- *
36
- * `NodeServerAdapter` bridges the Node.js `http` module and the Ecopages
37
- * `SharedServerAdapter` abstraction, translating between Node's
38
- * `IncomingMessage`/`ServerResponse` API and the platform-agnostic Web
39
- * `Request`/`Response` model.
40
- *
41
- * Lifecycle:
42
- * 1. `createAdapter()` — calls `initialize()` and returns the public adapter result.
43
- * 2. `completeInitialization(server)` — called once the HTTP server is listening.
44
- * Conditionally wires HMR, WebSocket upgrades, and the file watcher when
45
- * `options.watch` is `true`.
46
- * 3. `handleRequest(request)` — delegates to `handleSharedRequest` for routing;
47
- * intercepts `ClientAbortError` to return 499 instead of 500.
48
- * 4. `buildStatic()` — spins up an ephemeral runtime server, generates all static
49
- * pages against it, then tears it down.
50
- *
51
- * @see SharedServerAdapter for routing, caching and response handler logic.
52
- */
53
- export declare class NodeServerAdapter extends SharedServerAdapter<NodeServerAdapterParams, NodeServerAdapterResult> {
54
- private serverInstance;
55
- private initialized;
56
- private apiHandlers;
57
- private staticRoutes;
58
- private errorHandler?;
59
- private bridge;
60
- private hmrManager;
61
- private readonly previewHost;
62
- private readonly requestBridge;
63
- private readonly devRuntimeFactory;
64
- private shouldInjectHmrScript;
65
- private isHtmlResponse;
66
- private maybeInjectHmrScript;
67
- constructor(options: NodeServerAdapterParams);
68
- /**
69
- * Prepares the adapter for use.
70
- *
71
- * Order is intentional:
72
- * 1. **Loaders** are registered first so processors and integrations can
73
- * reference loader-provided file types in their own plugins.
74
- * 2. **Public dir** is copied before any build so static assets are in `distDir`
75
- * before the first request arrives.
76
- * 3. **Plugins** (processors, then integrations) are set up after the public dir
77
- * is in place so they can safely reference dist-relative paths.
78
- * 4. **Router** is initialised last because it may depend on files written by
79
- * processors during their `setup()` calls.
80
- */
81
- initialize(): Promise<void>;
82
- private prepareRuntimePublicDir;
83
- getServerOptions(): NodeServeAdapterServerOptions;
84
- buildStatic(options?: {
85
- preview?: boolean;
86
- }): Promise<void>;
87
- private startBuildRuntimeServer;
88
- private getListeningServerOrigin;
89
- /**
90
- * Gracefully shuts down the ephemeral build runtime server.
91
- *
92
- * `closeAllConnections()` is called *before* `close()` because `server.close()`
93
- * only stops accepting new connections — it waits for existing keep-alive
94
- * connections to finish naturally, which can stall the build indefinitely.
95
- * `closeAllConnections()` force-closes any lingering sockets immediately so
96
- * the `close()` callback fires promptly.
97
- *
98
- * The `NodeClientBridge` heartbeat is also destroyed here so its `setInterval`
99
- * does not prevent the Node.js process from exiting cleanly after the build.
100
- */
101
- private stopBuildRuntimeServer;
102
- createAdapter(): Promise<NodeServerAdapterResult>;
103
- /**
104
- * Handles a single incoming Web `Request` and returns a Web `Response`.
105
- *
106
- * Delegates to `handleSharedRequest` for all routing, caching, and response
107
- * handler logic. The only Node-specific concern here is translating a
108
- * `ClientAbortError` — which the body `ReadableStream` raises when the
109
- * underlying socket closes early — into a 499 response so it does not
110
- * incorrectly surface as a 500 in application logs.
111
- */
112
- handleRequest(request: Request): Promise<Response>;
113
- /**
114
- * Called once the HTTP server is bound and listening.
115
- *
116
- * When `options.watch` is `true` this method wires the full HMR pipeline:
117
- * - A `WebSocketServer` is attached to the existing HTTP server via the
118
- * `upgrade` event (no separate port needed).
119
- * - `NodeClientBridge` tracks active WebSocket connections and handles
120
- * broadcast + heartbeat cleanup.
121
- * - `NodeHmrManager` watches the filesystem and triggers incremental esbuild
122
- * rebuilds, notifying connected clients via the bridge.
123
- * - Shared watcher bootstrapping listens for route-level file changes and
124
- * refreshes the router and response handlers when pages are added or removed.
125
- *
126
- * WebSocket upgrade requests that do not target `/_hmr` are rejected with an
127
- * immediate socket destroy to prevent unhandled upgrade leaks.
128
- */
129
- completeInitialization(server: NodeServerInstance): Promise<void>;
130
- }
131
- /**
132
- * Factory function that creates and fully initialises a `NodeServerAdapter`.
133
- *
134
- * `runtimeOrigin` is derived from `serveOptions` when not explicitly provided,
135
- * so callers only need to set it when the server is behind a reverse proxy that
136
- * changes the effective host or port.
137
- */
138
- export declare function createNodeServerAdapter(params: NodeServerAdapterParams): Promise<NodeServerAdapterResult>;
@@ -1,315 +0,0 @@
1
- import { createServer } from "node:http";
2
- import path from "node:path";
3
- import { fileSystem } from "@ecopages/file-system";
4
- import { getAppBrowserBuildPlugins, setupAppRuntimePlugins } from "../../build/build-adapter.js";
5
- import { installAppRuntimeBuildExecutor } from "../../build/runtime-build-executor.js";
6
- import { RESOLVED_ASSETS_DIR } from "../../config/constants.js";
7
- import { appLogger } from "../../global/app-logger.js";
8
- import { NodeClientBridge } from "./node-client-bridge.js";
9
- import { NodeHmrManager } from "./node-hmr-manager.js";
10
- import { ProjectWatcher } from "../../watchers/project-watcher.js";
11
- import { StaticSiteGenerator } from "../../static-site-generator/static-site-generator.js";
12
- import { SharedServerAdapter } from "../shared/server-adapter.js";
13
- import { ServerStaticBuilder } from "../shared/server-static-builder.js";
14
- import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.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 { NodeClientAbortError, NodeHttpRequestBridge } from "./http-request-bridge.js";
22
- import { NodeStaticPreviewHost } from "./static-preview-host.js";
23
- import { DefaultNodeServerDevRuntimeFactory } from "./server-adapter-dependencies.js";
24
- class NodeServerAdapter extends SharedServerAdapter {
25
- serverInstance = null;
26
- initialized = false;
27
- apiHandlers;
28
- staticRoutes;
29
- errorHandler;
30
- bridge = null;
31
- hmrManager = null;
32
- previewHost;
33
- requestBridge;
34
- devRuntimeFactory;
35
- shouldInjectHmrScript() {
36
- return shouldInjectHmrHtmlResponse(this.options?.watch === true, this.hmrManager ?? void 0);
37
- }
38
- isHtmlResponse(response) {
39
- return isHtmlResponse(response);
40
- }
41
- async maybeInjectHmrScript(response) {
42
- if (this.shouldInjectHmrScript() && this.isHtmlResponse(response)) {
43
- return injectHmrRuntimeIntoHtmlResponse(response);
44
- }
45
- return response;
46
- }
47
- constructor(options) {
48
- super(options);
49
- this.apiHandlers = options.apiHandlers || [];
50
- this.staticRoutes = options.staticRoutes || [];
51
- this.errorHandler = options.errorHandler;
52
- this.previewHost = options.previewHost;
53
- this.requestBridge = options.requestBridge;
54
- this.devRuntimeFactory = options.devRuntimeFactory;
55
- }
56
- /**
57
- * Prepares the adapter for use.
58
- *
59
- * Order is intentional:
60
- * 1. **Loaders** are registered first so processors and integrations can
61
- * reference loader-provided file types in their own plugins.
62
- * 2. **Public dir** is copied before any build so static assets are in `distDir`
63
- * before the first request arrives.
64
- * 3. **Plugins** (processors, then integrations) are set up after the public dir
65
- * is in place so they can safely reference dist-relative paths.
66
- * 4. **Router** is initialised last because it may depend on files written by
67
- * processors during their `setup()` calls.
68
- */
69
- async initialize() {
70
- installAppRuntimeBuildExecutor(this.appConfig, {
71
- development: this.options?.watch === true
72
- });
73
- this.prepareRuntimePublicDir();
74
- await setupAppRuntimePlugins({
75
- appConfig: this.appConfig,
76
- runtimeOrigin: this.runtimeOrigin,
77
- hmrManager: this.hmrManager ?? void 0
78
- });
79
- await this.initializeSharedRouteHandling({
80
- staticRoutes: this.staticRoutes,
81
- hmrManager: this.hmrManager ?? void 0
82
- });
83
- this.staticSiteGenerator = new StaticSiteGenerator({ appConfig: this.appConfig });
84
- this.staticBuilder = new ServerStaticBuilder({
85
- appConfig: this.appConfig,
86
- staticSiteGenerator: this.staticSiteGenerator,
87
- serveOptions: this.serveOptions,
88
- apiHandlers: this.apiHandlers
89
- });
90
- this.initialized = true;
91
- }
92
- prepareRuntimePublicDir() {
93
- const srcPublicDir = path.join(this.appConfig.rootDir, this.appConfig.srcDir, this.appConfig.publicDir);
94
- if (fileSystem.exists(srcPublicDir)) {
95
- fileSystem.copyDir(srcPublicDir, path.join(this.appConfig.rootDir, this.appConfig.distDir));
96
- }
97
- fileSystem.ensureDir(path.join(this.appConfig.absolutePaths.distDir, RESOLVED_ASSETS_DIR));
98
- }
99
- getServerOptions() {
100
- return {
101
- ...this.serveOptions
102
- };
103
- }
104
- async buildStatic(options) {
105
- if (!this.initialized) {
106
- await this.initialize();
107
- }
108
- const buildServer = await this.startBuildRuntimeServer();
109
- const buildRuntimeOrigin = this.getListeningServerOrigin(buildServer);
110
- try {
111
- await this.staticBuilder.build(
112
- { preview: false, baseUrl: buildRuntimeOrigin },
113
- {
114
- router: this.router,
115
- routeRendererFactory: this.routeRendererFactory,
116
- staticRoutes: this.staticRoutes
117
- }
118
- );
119
- } finally {
120
- await this.stopBuildRuntimeServer(buildServer);
121
- }
122
- if (!options?.preview) {
123
- return;
124
- }
125
- await this.previewHost.start({
126
- appConfig: this.appConfig,
127
- hostname: String(this.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME),
128
- port: Number(this.serveOptions.port || DEFAULT_ECOPAGES_PORT)
129
- });
130
- const previewHostname = this.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME;
131
- const previewPort = this.serveOptions.port || DEFAULT_ECOPAGES_PORT;
132
- appLogger.info(`Preview running at http://${previewHostname}:${previewPort}`);
133
- }
134
- async startBuildRuntimeServer() {
135
- const hostname = String(this.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME);
136
- const port = 0;
137
- const server = createServer(async (req, res) => {
138
- try {
139
- const webRequest = this.requestBridge.createWebRequest(req, this.runtimeOrigin);
140
- const response = await this.handleRequest(webRequest);
141
- await this.requestBridge.sendNodeResponse(res, response);
142
- } catch (error) {
143
- if (error instanceof NodeClientAbortError) {
144
- return;
145
- }
146
- appLogger.error("Node static build runtime request failed", error);
147
- res.statusCode = 500;
148
- res.end("Internal Server Error");
149
- }
150
- });
151
- await new Promise((resolve, reject) => {
152
- server.once("error", reject);
153
- server.listen(port, hostname, () => {
154
- server.off("error", reject);
155
- resolve();
156
- });
157
- });
158
- this.serverInstance = server;
159
- appLogger.info(`Server running at ${this.getListeningServerOrigin(server)}`);
160
- return server;
161
- }
162
- getListeningServerOrigin(server) {
163
- const address = server.address();
164
- const hostname = String(this.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME);
165
- if (!address || typeof address === "string") {
166
- throw new Error("Build runtime server did not expose a numeric listening port");
167
- }
168
- return `http://${hostname}:${address.port}`;
169
- }
170
- /**
171
- * Gracefully shuts down the ephemeral build runtime server.
172
- *
173
- * `closeAllConnections()` is called *before* `close()` because `server.close()`
174
- * only stops accepting new connections — it waits for existing keep-alive
175
- * connections to finish naturally, which can stall the build indefinitely.
176
- * `closeAllConnections()` force-closes any lingering sockets immediately so
177
- * the `close()` callback fires promptly.
178
- *
179
- * The `NodeClientBridge` heartbeat is also destroyed here so its `setInterval`
180
- * does not prevent the Node.js process from exiting cleanly after the build.
181
- */
182
- async stopBuildRuntimeServer(server) {
183
- await new Promise((resolve, reject) => {
184
- server.close((error) => {
185
- if (error) {
186
- reject(error);
187
- return;
188
- }
189
- resolve();
190
- });
191
- server.closeAllConnections();
192
- });
193
- if (this.serverInstance === server) {
194
- this.serverInstance = null;
195
- }
196
- this.bridge?.destroy();
197
- this.bridge = null;
198
- }
199
- async createAdapter() {
200
- await this.initialize();
201
- return {
202
- getServerOptions: this.getServerOptions.bind(this),
203
- buildStatic: this.buildStatic.bind(this),
204
- completeInitialization: this.completeInitialization.bind(this),
205
- handleRequest: this.handleRequest.bind(this)
206
- };
207
- }
208
- /**
209
- * Handles a single incoming Web `Request` and returns a Web `Response`.
210
- *
211
- * Delegates to `handleSharedRequest` for all routing, caching, and response
212
- * handler logic. The only Node-specific concern here is translating a
213
- * `ClientAbortError` — which the body `ReadableStream` raises when the
214
- * underlying socket closes early — into a 499 response so it does not
215
- * incorrectly surface as a 500 in application logs.
216
- */
217
- async handleRequest(request) {
218
- if (!this.initialized) {
219
- throw new Error("Node server adapter is not initialized. Call createAdapter() first.");
220
- }
221
- try {
222
- const response = await this.handleSharedRequest(request, {
223
- apiHandlers: this.apiHandlers,
224
- errorHandler: this.errorHandler,
225
- serverInstance: this.serverInstance,
226
- hmrManager: this.hmrManager
227
- });
228
- return await this.maybeInjectHmrScript(response);
229
- } catch (error) {
230
- if (error instanceof NodeClientAbortError) {
231
- return new Response(null, { status: 499 });
232
- }
233
- throw error;
234
- }
235
- }
236
- /**
237
- * Called once the HTTP server is bound and listening.
238
- *
239
- * When `options.watch` is `true` this method wires the full HMR pipeline:
240
- * - A `WebSocketServer` is attached to the existing HTTP server via the
241
- * `upgrade` event (no separate port needed).
242
- * - `NodeClientBridge` tracks active WebSocket connections and handles
243
- * broadcast + heartbeat cleanup.
244
- * - `NodeHmrManager` watches the filesystem and triggers incremental esbuild
245
- * rebuilds, notifying connected clients via the bridge.
246
- * - Shared watcher bootstrapping listens for route-level file changes and
247
- * refreshes the router and response handlers when pages are added or removed.
248
- *
249
- * WebSocket upgrade requests that do not target `/_hmr` are rejected with an
250
- * immediate socket destroy to prevent unhandled upgrade leaks.
251
- */
252
- async completeInitialization(server) {
253
- this.serverInstance = server;
254
- if (this.options?.watch) {
255
- const devRuntime = this.devRuntimeFactory.create({ appConfig: this.appConfig });
256
- const wss = devRuntime.websocketServer;
257
- this.bridge = devRuntime.bridge;
258
- this.hmrManager = devRuntime.hmrManager;
259
- this.hmrManager.setEnabled(true);
260
- await this.hmrManager.buildRuntime();
261
- server.on("upgrade", (req, socket, head) => {
262
- const url = new URL(req.url ?? "/", this.runtimeOrigin);
263
- if (url.pathname === "/_hmr") {
264
- wss.handleUpgrade(req, socket, head, (ws) => {
265
- this.bridge.subscribe(ws);
266
- ws.on("close", () => this.bridge.unsubscribe(ws));
267
- ws.on("error", (err) => appLogger.error("[HMR] WebSocket error:", err));
268
- });
269
- } else {
270
- socket.destroy();
271
- }
272
- });
273
- const browserBuildPlugins = getAppBrowserBuildPlugins(this.appConfig);
274
- this.hmrManager.setPlugins(browserBuildPlugins);
275
- for (const integration of this.appConfig.integrations) {
276
- integration.setHmrManager(this.hmrManager);
277
- }
278
- this.configureSharedResponseHandlers(this.staticRoutes, this.hmrManager);
279
- const watcher = new ProjectWatcher({
280
- config: this.appConfig,
281
- refreshRouterRoutesCallback: this.createSharedWatchRefreshCallback({
282
- staticRoutes: this.staticRoutes,
283
- hmrManager: this.hmrManager
284
- }),
285
- hmrManager: this.hmrManager,
286
- bridge: this.bridge
287
- });
288
- await watcher.createWatcherSubscription();
289
- }
290
- appLogger.debug("Node server adapter initialization completed", {
291
- apiHandlers: this.apiHandlers.length,
292
- staticRoutes: this.staticRoutes.length,
293
- hasErrorHandler: !!this.errorHandler,
294
- hmrEnabled: !!this.hmrManager?.isEnabled()
295
- });
296
- }
297
- }
298
- async function createNodeServerAdapter(params) {
299
- const runtimeOrigin = params.runtimeOrigin ?? resolveServeRuntimeOrigin(params.serveOptions);
300
- const previewHost = params.previewHost ?? new NodeStaticPreviewHost();
301
- const requestBridge = params.requestBridge ?? new NodeHttpRequestBridge();
302
- const devRuntimeFactory = params.devRuntimeFactory ?? new DefaultNodeServerDevRuntimeFactory();
303
- const adapter = new NodeServerAdapter({
304
- ...params,
305
- runtimeOrigin,
306
- previewHost,
307
- requestBridge,
308
- devRuntimeFactory
309
- });
310
- return adapter.createAdapter();
311
- }
312
- export {
313
- NodeServerAdapter,
314
- createNodeServerAdapter
315
- };