@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,111 +0,0 @@
1
- import { appLogger } from "../../global/app-logger.js";
2
- import { HttpError } from "../../errors/http-error.js";
3
- import { injectHmrRuntimeIntoHtmlResponse, isHtmlResponse, shouldInjectHmrHtmlResponse } from "./hmr-html-response.js";
4
- class ServerRouteHandler {
5
- router;
6
- fileSystemResponseMatcher;
7
- explicitStaticRouteMatcher;
8
- watch;
9
- hmrManager;
10
- /**
11
- * Creates a new ServerRouteHandler instance.
12
- *
13
- * @param params - Configuration parameters
14
- */
15
- constructor({
16
- router,
17
- fileSystemResponseMatcher,
18
- explicitStaticRouteMatcher,
19
- watch = false,
20
- hmrManager
21
- }) {
22
- this.router = router;
23
- this.fileSystemResponseMatcher = fileSystemResponseMatcher;
24
- this.explicitStaticRouteMatcher = explicitStaticRouteMatcher;
25
- this.watch = watch;
26
- this.hmrManager = hmrManager;
27
- }
28
- /**
29
- * Determines if HMR script should be injected.
30
- *
31
- * @returns true if in watch mode and HMR manager is enabled
32
- */
33
- shouldInjectHmrScript() {
34
- return shouldInjectHmrHtmlResponse(this.watch, this.hmrManager);
35
- }
36
- /**
37
- * Checks if a response contains HTML content.
38
- *
39
- * @param response - The HTTP response to check
40
- * @returns true if Content-Type header starts with 'text/html'
41
- */
42
- isHtmlResponse(response) {
43
- return isHtmlResponse(response);
44
- }
45
- /**
46
- * Handles HTTP requests from the router adapter.
47
- *
48
- * Priority-based routing flow:
49
- * 1. Check explicit static routes first (e.g., /sitemap.xml, /image.webp from plugins)
50
- * 2. Match file-based routes without extensions (application routes)
51
- * 3. Fall back to static file serving from disk
52
- *
53
- * @param request - The incoming HTTP request
54
- * @returns HTTP response, potentially with injected HMR script in dev mode
55
- */
56
- async handleResponse(request) {
57
- const pathname = new URL(request.url).pathname;
58
- const explicitMatch = this.explicitStaticRouteMatcher?.match(request.url);
59
- if (explicitMatch) {
60
- const response2 = await this.explicitStaticRouteMatcher.handleMatch(explicitMatch);
61
- return this.maybeInjectHmrScript(response2);
62
- }
63
- const fsMatch = !pathname.includes(".") && this.router.matchRequest(request.url);
64
- const response = await (fsMatch ? this.fileSystemResponseMatcher.handleMatch(fsMatch, request) : this.handleNoMatch(request));
65
- return this.maybeInjectHmrScript(response);
66
- }
67
- /**
68
- * Injects HMR script into HTML responses in development mode.
69
- *
70
- * The script is inserted before the closing </html> tag to enable
71
- * hot module reloading without full page refreshes.
72
- *
73
- * @param response - The HTTP response to potentially modify
74
- * @returns Original response or modified response with HMR script
75
- */
76
- async maybeInjectHmrScript(response) {
77
- if (this.shouldInjectHmrScript() && this.isHtmlResponse(response)) {
78
- return injectHmrRuntimeIntoHtmlResponse(response);
79
- }
80
- return response;
81
- }
82
- /**
83
- * Handles requests that do not match any routes.
84
- *
85
- * This is the final fallback that attempts to serve static files from disk.
86
- * If the requested path corresponds to an HTML file or no file is found,
87
- * a custom 404 response is returned.
88
- *
89
- * @param request - The HTTP request to handle
90
- * @returns Response from file system or error response
91
- * @throws HttpError for standard HTTP errors
92
- */
93
- async handleNoMatch(request) {
94
- try {
95
- const pathname = new URL(request.url).pathname;
96
- return await this.fileSystemResponseMatcher.handleNoMatch(pathname);
97
- } catch (error) {
98
- if (error instanceof HttpError) {
99
- return error.toResponse();
100
- }
101
- if (error instanceof Error) {
102
- this.hmrManager?.broadcast({ type: "error", message: error.message });
103
- appLogger.error("Error handling no match:", error);
104
- }
105
- return new Response("Internal Server Error", { status: 500 });
106
- }
107
- }
108
- }
109
- export {
110
- ServerRouteHandler
111
- };
@@ -1,71 +0,0 @@
1
- import type { EcoPagesAppConfig } from '../../types/internal-types.js';
2
- import type { ApiHandler, StaticRoute } from '../../types/public-types.js';
3
- import type { RouteRegistry } from '../../router/server/route-registry.js';
4
- import type { StaticSiteGenerator } from '../../static-site-generator/static-site-generator.js';
5
- import type { StaticGenerationRendererResolver } from '../../route-renderer/route-renderer.js';
6
- export interface StaticBuildOptions {
7
- preview?: boolean;
8
- baseUrl?: string;
9
- }
10
- export interface ServeOptions {
11
- hostname?: string;
12
- port?: number | string;
13
- }
14
- export interface ServerStaticBuilderParams {
15
- appConfig: EcoPagesAppConfig;
16
- staticSiteGenerator: StaticSiteGenerator;
17
- serveOptions: ServeOptions;
18
- apiHandlers?: ApiHandler[];
19
- logger?: ServerStaticBuilderLogger;
20
- previewServerFactory?: ServerStaticPreviewServerFactory;
21
- }
22
- /**
23
- * Minimal logger dependency used by the static builder.
24
- */
25
- export interface ServerStaticBuilderLogger {
26
- warn(message: string, detail?: string): unknown;
27
- info(message: string): unknown;
28
- error(message: string): unknown;
29
- }
30
- /**
31
- * Preview server factory dependency used when static preview mode is enabled.
32
- */
33
- export interface ServerStaticPreviewServerFactory {
34
- createServer(args: {
35
- appConfig: EcoPagesAppConfig;
36
- options: {
37
- port: number;
38
- };
39
- }): {
40
- server?: {
41
- port?: number;
42
- } | null;
43
- };
44
- }
45
- /**
46
- * Handles static site generation and previews.
47
- */
48
- export declare class ServerStaticBuilder {
49
- private readonly appConfig;
50
- private readonly staticSiteGenerator;
51
- private readonly serveOptions;
52
- private readonly apiHandlers;
53
- private readonly logger;
54
- private readonly previewServerFactory;
55
- constructor({ appConfig, staticSiteGenerator, serveOptions, apiHandlers, logger, previewServerFactory, }: ServerStaticBuilderParams);
56
- private warnApiHandlersUnavailableInStaticMode;
57
- private prepareExportDirectory;
58
- private refreshRuntimeAssets;
59
- /**
60
- * Generates a static build of the site for deployment.
61
- * @param options.preview - If true, starts a preview server after build
62
- * @param dependencies.router - The initialized router
63
- * @param dependencies.routeRendererFactory - The route renderer factory
64
- * @param dependencies.staticRoutes - Explicit static routes registered via app.static()
65
- */
66
- build(options: StaticBuildOptions | undefined, dependencies: {
67
- router: RouteRegistry;
68
- routeRendererFactory: StaticGenerationRendererResolver;
69
- staticRoutes?: StaticRoute[];
70
- }): Promise<void>;
71
- }
@@ -1,100 +0,0 @@
1
- import path from "node:path";
2
- import { fileSystem } from "@ecopages/file-system";
3
- import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
4
- import { StaticContentServer } from "../../dev/sc-server.js";
5
- import { appLogger } from "../../global/app-logger.js";
6
- class ServerStaticBuilder {
7
- appConfig;
8
- staticSiteGenerator;
9
- serveOptions;
10
- apiHandlers;
11
- logger;
12
- previewServerFactory;
13
- constructor({
14
- appConfig,
15
- staticSiteGenerator,
16
- serveOptions,
17
- apiHandlers,
18
- logger,
19
- previewServerFactory
20
- }) {
21
- this.appConfig = appConfig;
22
- this.staticSiteGenerator = staticSiteGenerator;
23
- this.serveOptions = serveOptions;
24
- this.apiHandlers = apiHandlers ?? [];
25
- this.logger = logger ?? appLogger;
26
- this.previewServerFactory = previewServerFactory ?? StaticContentServer;
27
- }
28
- warnApiHandlersUnavailableInStaticMode() {
29
- if (this.apiHandlers.length === 0) {
30
- return;
31
- }
32
- const uniqueHandlers = Array.from(
33
- new Set(this.apiHandlers.map((handler) => `${handler.method} ${handler.path}`))
34
- );
35
- const visibleHandlers = uniqueHandlers.slice(0, 5).join(", ");
36
- const remainingCount = uniqueHandlers.length - Math.min(uniqueHandlers.length, 5);
37
- const summary = remainingCount > 0 ? `${visibleHandlers}, +${remainingCount} more` : visibleHandlers;
38
- this.logger.warn(
39
- "Registered API endpoints are not available in static build or preview modes because no server runtime is started. They are excluded from the generated output.\n",
40
- `\u27A4 ${summary}`
41
- );
42
- }
43
- prepareExportDirectory() {
44
- const exportDir = this.appConfig.absolutePaths?.distDir ?? path.join(this.appConfig.rootDir, this.appConfig.distDir);
45
- fileSystem.ensureDir(exportDir, true);
46
- const srcPublicDir = path.join(
47
- this.appConfig.rootDir,
48
- this.appConfig.srcDir ?? "src",
49
- this.appConfig.publicDir ?? "public"
50
- );
51
- if (fileSystem.exists(srcPublicDir)) {
52
- fileSystem.copyDir(srcPublicDir, exportDir);
53
- }
54
- }
55
- async refreshRuntimeAssets() {
56
- for (const processor of this.appConfig.processors.values()) {
57
- await processor.setup();
58
- }
59
- for (const integration of this.appConfig.integrations) {
60
- await integration.setup();
61
- }
62
- }
63
- /**
64
- * Generates a static build of the site for deployment.
65
- * @param options.preview - If true, starts a preview server after build
66
- * @param dependencies.router - The initialized router
67
- * @param dependencies.routeRendererFactory - The route renderer factory
68
- * @param dependencies.staticRoutes - Explicit static routes registered via app.static()
69
- */
70
- async build(options, dependencies) {
71
- const { preview = false, baseUrl: explicitBaseUrl } = options ?? {};
72
- const baseUrl = explicitBaseUrl ?? `http://${this.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME}:${this.serveOptions.port || DEFAULT_ECOPAGES_PORT}`;
73
- this.warnApiHandlersUnavailableInStaticMode();
74
- this.prepareExportDirectory();
75
- await this.refreshRuntimeAssets();
76
- await this.staticSiteGenerator.run({
77
- router: dependencies.router,
78
- baseUrl,
79
- routeRendererFactory: dependencies.routeRendererFactory,
80
- staticRoutes: dependencies.staticRoutes
81
- });
82
- if (!preview) {
83
- this.logger.info("Build completed");
84
- return;
85
- }
86
- const previewPort = this.serveOptions.port || DEFAULT_ECOPAGES_PORT;
87
- const { server } = this.previewServerFactory.createServer({
88
- appConfig: this.appConfig,
89
- options: { port: Number(previewPort) }
90
- });
91
- if (server?.port) {
92
- this.logger.info(`Preview running at http://localhost:${server.port}`);
93
- } else {
94
- this.logger.error("Failed to start preview server");
95
- }
96
- }
97
- }
98
- export {
99
- ServerStaticBuilder
100
- };
@@ -1,59 +0,0 @@
1
- import fs from 'node:fs';
2
- import type { DefaultHmrContext, EcoPagesAppConfig, IHmrManager, IClientBridge } from '../../types/internal-types.js';
3
- import type { EcoBuildPlugin } from '../../build/build-types.js';
4
- import { type HmrStrategy } from '../../hmr/hmr-strategy.js';
5
- import type { ClientBridgeEvent } from '../../types/public-types.js';
6
- import { HmrEntrypointRegistrar } from './hmr-entrypoint-registrar.js';
7
- import { BrowserBundleService } from '../../services/assets/browser-bundle.service.js';
8
- import { type EntrypointDependencyGraph } from '../../services/runtime-state/entrypoint-dependency-graph.service.js';
9
- import type { ServerModuleTranspiler } from '../../services/module-loading/server-module-transpiler.service.js';
10
- type HandleFileChangeOptions = {
11
- broadcast?: boolean;
12
- };
13
- type SharedHmrManagerParams = {
14
- appConfig: EcoPagesAppConfig;
15
- bridge: IClientBridge;
16
- registrationTimeoutMs?: number;
17
- };
18
- export declare abstract class SharedHmrManager implements IHmrManager {
19
- readonly appConfig: EcoPagesAppConfig;
20
- protected readonly bridge: IClientBridge;
21
- protected watchers: Map<string, fs.FSWatcher>;
22
- protected watchedFiles: Map<string, string>;
23
- protected entrypointRegistrations: Map<string, Promise<string>>;
24
- protected distDir: string;
25
- protected plugins: EcoBuildPlugin[];
26
- protected enabled: boolean;
27
- protected strategies: HmrStrategy[];
28
- protected readonly entrypointRegistrar: HmrEntrypointRegistrar;
29
- protected readonly browserBundleService: BrowserBundleService;
30
- protected readonly entrypointDependencyGraph: EntrypointDependencyGraph;
31
- protected readonly serverModuleTranspiler: ServerModuleTranspiler;
32
- constructor({ appConfig, bridge, registrationTimeoutMs }: SharedHmrManagerParams);
33
- protected abstract createEntrypointDependencyGraph(existingEntrypointDependencyGraph: EntrypointDependencyGraph): EntrypointDependencyGraph;
34
- protected shouldSkipMissingFileChange(_filePath: string): boolean;
35
- protected onRuntimeBundleFailure(error: unknown): void;
36
- protected ensureDistDir(): void;
37
- protected shouldJsStrategyProcessEntrypoint(entrypointPath: string): boolean;
38
- protected initializeStrategies(): void;
39
- registerStrategy(strategy: HmrStrategy): void;
40
- setPlugins(plugins: EcoBuildPlugin[]): void;
41
- setEnabled(enabled: boolean): void;
42
- isEnabled(): boolean;
43
- buildRuntime(): Promise<void>;
44
- getRuntimePath(): string;
45
- broadcast(event: ClientBridgeEvent): void;
46
- handleFileChange(filePath: string, options?: HandleFileChangeOptions): Promise<void>;
47
- getOutputUrl(entrypointPath: string): string | undefined;
48
- getWatchedFiles(): Map<string, string>;
49
- getDistDir(): string;
50
- getPlugins(): EcoBuildPlugin[];
51
- getDefaultContext(): DefaultHmrContext;
52
- protected clearFailedEntrypointRegistration(entrypointPath: string): void;
53
- registerEntrypoint(entrypointPath: string): Promise<string>;
54
- registerScriptEntrypoint(entrypointPath: string): Promise<string>;
55
- protected emitStrictEntrypoint(entrypointPath: string): Promise<void>;
56
- protected emitScriptEntrypoint(entrypointPath: string, outputPath: string): Promise<void>;
57
- stop(): void;
58
- }
59
- export {};
@@ -1,241 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { RESOLVED_ASSETS_DIR } from "../../config/constants.js";
5
- import { getAppBuildExecutor } from "../../build/build-adapter.js";
6
- import { fileSystem } from "@ecopages/file-system";
7
- import { HmrStrategyType } from "../../hmr/hmr-strategy.js";
8
- import { DefaultHmrStrategy } from "../../hmr/strategies/default-hmr-strategy.js";
9
- import { JsHmrStrategy } from "../../hmr/strategies/js-hmr-strategy.js";
10
- import { appLogger } from "../../global/app-logger.js";
11
- import { HmrEntrypointRegistrar } from "./hmr-entrypoint-registrar.js";
12
- import { BrowserBundleService } from "../../services/assets/browser-bundle.service.js";
13
- import { getAppServerModuleTranspiler } from "../../services/module-loading/app-server-module-transpiler.service.js";
14
- import {
15
- getAppEntrypointDependencyGraph,
16
- setAppEntrypointDependencyGraph
17
- } from "../../services/runtime-state/entrypoint-dependency-graph.service.js";
18
- import { resolveInternalExecutionDir, resolveInternalWorkDir } from "../../utils/resolve-work-dir.js";
19
- class SharedHmrManager {
20
- appConfig;
21
- bridge;
22
- watchers = /* @__PURE__ */ new Map();
23
- watchedFiles = /* @__PURE__ */ new Map();
24
- entrypointRegistrations = /* @__PURE__ */ new Map();
25
- distDir;
26
- plugins = [];
27
- enabled = true;
28
- strategies = [];
29
- entrypointRegistrar;
30
- browserBundleService;
31
- entrypointDependencyGraph;
32
- serverModuleTranspiler;
33
- constructor({ appConfig, bridge, registrationTimeoutMs = 4e3 }) {
34
- this.appConfig = appConfig;
35
- this.bridge = bridge;
36
- this.distDir = path.join(resolveInternalWorkDir(this.appConfig), RESOLVED_ASSETS_DIR, "_hmr");
37
- this.entrypointRegistrar = new HmrEntrypointRegistrar({
38
- srcDir: this.appConfig.absolutePaths.srcDir,
39
- distDir: this.distDir,
40
- entrypointRegistrations: this.entrypointRegistrations,
41
- watchedFiles: this.watchedFiles,
42
- clearFailedRegistration: (entrypointPath) => this.clearFailedEntrypointRegistration(entrypointPath),
43
- registrationTimeoutMs
44
- });
45
- this.browserBundleService = new BrowserBundleService(appConfig);
46
- this.entrypointDependencyGraph = this.createEntrypointDependencyGraph(
47
- getAppEntrypointDependencyGraph(appConfig)
48
- );
49
- setAppEntrypointDependencyGraph(this.appConfig, this.entrypointDependencyGraph);
50
- this.serverModuleTranspiler = getAppServerModuleTranspiler(this.appConfig);
51
- this.ensureDistDir();
52
- this.initializeStrategies();
53
- }
54
- shouldSkipMissingFileChange(_filePath) {
55
- return false;
56
- }
57
- onRuntimeBundleFailure(error) {
58
- appLogger.error("[HMR] Failed to build runtime script:", error);
59
- }
60
- ensureDistDir() {
61
- fileSystem.ensureDir(this.distDir);
62
- }
63
- shouldJsStrategyProcessEntrypoint(entrypointPath) {
64
- return !this.strategies.some((strategy) => {
65
- if (strategy.type !== HmrStrategyType.INTEGRATION || strategy.priority <= HmrStrategyType.SCRIPT) {
66
- return false;
67
- }
68
- try {
69
- return strategy.matches(entrypointPath);
70
- } catch (error) {
71
- appLogger.error(error);
72
- return false;
73
- }
74
- });
75
- }
76
- initializeStrategies() {
77
- const jsContext = {
78
- getWatchedFiles: () => this.watchedFiles,
79
- getDistDir: () => this.distDir,
80
- getPlugins: () => this.plugins,
81
- getSrcDir: () => this.appConfig.absolutePaths.srcDir,
82
- getPagesDir: () => this.appConfig.absolutePaths.pagesDir,
83
- getLayoutsDir: () => this.appConfig.absolutePaths.layoutsDir,
84
- getTemplateExtensions: () => this.appConfig.templatesExt,
85
- getBrowserBundleService: () => this.browserBundleService,
86
- getEntrypointDependencyGraph: () => this.entrypointDependencyGraph,
87
- shouldProcessEntrypoint: (entrypointPath) => this.shouldJsStrategyProcessEntrypoint(entrypointPath)
88
- };
89
- this.strategies = [new JsHmrStrategy(jsContext), new DefaultHmrStrategy()];
90
- }
91
- registerStrategy(strategy) {
92
- this.strategies.push(strategy);
93
- }
94
- setPlugins(plugins) {
95
- this.plugins = [...plugins];
96
- }
97
- setEnabled(enabled) {
98
- this.enabled = enabled;
99
- }
100
- isEnabled() {
101
- return this.enabled;
102
- }
103
- async buildRuntime() {
104
- const runtimeSource = fileURLToPath(import.meta.resolve("@ecopages/core/hmr/client/hmr-runtime"));
105
- try {
106
- const result = await this.browserBundleService.bundle({
107
- profile: "hmr-runtime",
108
- entrypoints: [runtimeSource],
109
- outdir: this.distDir,
110
- naming: "_hmr_runtime.js",
111
- minify: false,
112
- plugins: this.plugins
113
- });
114
- if (!result.success) {
115
- this.onRuntimeBundleFailure(result.logs);
116
- }
117
- } catch (error) {
118
- this.onRuntimeBundleFailure(error);
119
- }
120
- }
121
- getRuntimePath() {
122
- return path.join(this.distDir, "_hmr_runtime.js");
123
- }
124
- broadcast(event) {
125
- appLogger.debug(
126
- `[HMR] Broadcasting ${event.type} event, path=${event.path || "all"}, subscribers=${this.bridge.subscriberCount}`
127
- );
128
- this.bridge.broadcast(event);
129
- }
130
- async handleFileChange(filePath, options = {}) {
131
- if (this.shouldSkipMissingFileChange(filePath) && !fileSystem.exists(filePath)) {
132
- appLogger.debug(`[${this.constructor.name}] Skipping missing file change: ${filePath}`);
133
- this.clearFailedEntrypointRegistration(filePath);
134
- return;
135
- }
136
- const sorted = [...this.strategies].sort((a, b) => b.priority - a.priority);
137
- const strategy = sorted.find((candidate) => {
138
- try {
139
- return candidate.matches(filePath);
140
- } catch (error) {
141
- appLogger.error(error);
142
- return false;
143
- }
144
- });
145
- if (!strategy) {
146
- appLogger.warn(`[HMR] No strategy found for ${filePath}`);
147
- return;
148
- }
149
- appLogger.debug(`[${this.constructor.name}] Selected strategy: ${strategy.constructor.name}`);
150
- const action = await strategy.process(filePath);
151
- const shouldBroadcast = options.broadcast ?? true;
152
- if (shouldBroadcast && action.type === "broadcast" && action.events) {
153
- for (const event of action.events) {
154
- this.broadcast(event);
155
- }
156
- }
157
- }
158
- getOutputUrl(entrypointPath) {
159
- return this.watchedFiles.get(entrypointPath);
160
- }
161
- getWatchedFiles() {
162
- return this.watchedFiles;
163
- }
164
- getDistDir() {
165
- return this.distDir;
166
- }
167
- getPlugins() {
168
- return this.plugins;
169
- }
170
- getDefaultContext() {
171
- return {
172
- getWatchedFiles: () => this.watchedFiles,
173
- getDistDir: () => this.distDir,
174
- getPlugins: () => this.plugins,
175
- getSrcDir: () => this.appConfig.absolutePaths.srcDir,
176
- getLayoutsDir: () => this.appConfig.absolutePaths.layoutsDir,
177
- getPagesDir: () => this.appConfig.absolutePaths.pagesDir,
178
- getBuildExecutor: () => getAppBuildExecutor(this.appConfig),
179
- getBrowserBundleService: () => this.browserBundleService,
180
- getEntrypointDependencyGraph: () => this.entrypointDependencyGraph,
181
- importServerModule: async (filePath) => await this.serverModuleTranspiler.importModule({
182
- filePath,
183
- outdir: path.join(resolveInternalExecutionDir(this.appConfig), ".server-modules"),
184
- externalPackages: true
185
- })
186
- };
187
- }
188
- clearFailedEntrypointRegistration(entrypointPath) {
189
- this.watchedFiles.delete(entrypointPath);
190
- this.entrypointDependencyGraph.clearEntrypointDependencies(entrypointPath);
191
- }
192
- async registerEntrypoint(entrypointPath) {
193
- return await this.entrypointRegistrar.registerEntrypoint(entrypointPath, {
194
- emit: async (normalizedEntrypoint) => await this.emitStrictEntrypoint(normalizedEntrypoint),
195
- getMissingOutputError: (normalizedEntrypoint, outputPath) => new Error(
196
- `[HMR] Integration failed to emit entrypoint ${normalizedEntrypoint} to ${outputPath}. Page entrypoints must be produced by their owning integration.`
197
- )
198
- });
199
- }
200
- async registerScriptEntrypoint(entrypointPath) {
201
- return await this.entrypointRegistrar.registerEntrypoint(entrypointPath, {
202
- emit: async (normalizedEntrypoint, outputPath) => await this.emitScriptEntrypoint(normalizedEntrypoint, outputPath),
203
- getMissingOutputError: (normalizedEntrypoint) => new Error(`[HMR] Failed to register script entrypoint: ${normalizedEntrypoint}`)
204
- });
205
- }
206
- async emitStrictEntrypoint(entrypointPath) {
207
- await this.handleFileChange(entrypointPath, { broadcast: false });
208
- }
209
- async emitScriptEntrypoint(entrypointPath, outputPath) {
210
- const naming = path.relative(this.distDir, outputPath).split(path.sep).join("/");
211
- const buildResult = await this.browserBundleService.bundle({
212
- profile: "hmr-entrypoint",
213
- entrypoints: [entrypointPath],
214
- outdir: this.distDir,
215
- naming,
216
- minify: false,
217
- plugins: this.plugins
218
- });
219
- if (!buildResult.success) {
220
- appLogger.error(`[HMR] Generic script entrypoint build failed for ${entrypointPath}:`, buildResult.logs);
221
- return;
222
- }
223
- const entrypointDependencies = buildResult.dependencyGraph?.entrypoints?.[entrypointPath];
224
- if (entrypointDependencies) {
225
- this.entrypointDependencyGraph.setEntrypointDependencies(entrypointPath, entrypointDependencies);
226
- }
227
- }
228
- stop() {
229
- this.entrypointRegistrations.clear();
230
- for (const watcher of this.watchers.values()) {
231
- watcher.close();
232
- }
233
- this.watchers.clear();
234
- this.watchedFiles.clear();
235
- this.entrypointDependencyGraph.reset();
236
- this.plugins = [];
237
- }
238
- }
239
- export {
240
- SharedHmrManager
241
- };
@@ -1,10 +0,0 @@
1
- import type { EcoPagesAppConfig } from '../../types/internal-types.js';
2
- export interface StaticPreviewHost {
3
- start(options: StaticPreviewHostStartOptions): Promise<number | null>;
4
- stop(force?: boolean): Promise<void>;
5
- }
6
- export interface StaticPreviewHostStartOptions {
7
- appConfig: EcoPagesAppConfig;
8
- hostname: string;
9
- port: number;
10
- }
File without changes
@@ -1,26 +0,0 @@
1
- import type { EcoBuildPlugin } from './build-types.js';
2
- import { type BrowserRuntimeManifest } from './browser-runtime-manifest.js';
3
- export declare const DEFAULT_BROWSER_RUNTIME_IMPORT_REWRITE_PLUGIN_NAME = "browser-runtime-import-rewrite";
4
- export type CreateBrowserRuntimeImportRewritePluginOptions = {
5
- /** Stable build plugin name used for deduplication and selective exclusion. */
6
- name?: string;
7
- /** Manifest containing specifier-to-public-URL runtime asset mappings. */
8
- manifest: BrowserRuntimeManifest;
9
- };
10
- /**
11
- * Rewrites static ESM import/export specifiers and string-literal dynamic imports
12
- * from manifest-owned runtime specifiers to concrete browser public URLs.
13
- */
14
- export declare function rewriteBrowserRuntimeImports(code: string, specifierMap: ReadonlyMap<string, string>, filePath?: string): string;
15
- export declare function getBrowserRuntimeImportRewriteMap(plugin: EcoBuildPlugin): ReadonlyMap<string, string> | undefined;
16
- export declare function collectBrowserRuntimeImportRewriteMap(plugins: EcoBuildPlugin[] | undefined): ReadonlyMap<string, string>;
17
- /**
18
- * Creates a build plugin that applies browser runtime manifest import rewrites
19
- * before the bundler resolves source modules.
20
- *
21
- * @remarks
22
- * This is the migration path away from browser import-map-style runtime aliases:
23
- * generated and authored browser modules can keep importing manifest-owned
24
- * specifiers, while the build turns those specifiers into concrete public URLs.
25
- */
26
- export declare function createBrowserRuntimeImportRewritePlugin(options: CreateBrowserRuntimeImportRewritePluginOptions): EcoBuildPlugin | null;