@ecopages/core 0.2.0-alpha.2 → 0.2.0-alpha.21

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 (391) hide show
  1. package/CHANGELOG.md +26 -64
  2. package/README.md +212 -14
  3. package/package.json +116 -66
  4. package/src/adapters/README.md +39 -0
  5. package/src/adapters/abstract/application-adapter.d.ts +28 -2
  6. package/src/adapters/abstract/application-adapter.js +14 -2
  7. package/src/adapters/abstract/router-adapter.d.ts +1 -1
  8. package/src/adapters/abstract/server-adapter.d.ts +2 -2
  9. package/src/adapters/bun/client-bridge.d.ts +1 -1
  10. package/src/adapters/bun/create-app.d.ts +4 -12
  11. package/src/adapters/bun/create-app.js +4 -5
  12. package/src/adapters/bun/hmr-manager.d.ts +80 -21
  13. package/src/adapters/bun/hmr-manager.js +168 -62
  14. package/src/adapters/bun/index.d.ts +2 -3
  15. package/src/adapters/bun/index.js +3 -3
  16. package/src/adapters/bun/server-adapter.d.ts +5 -5
  17. package/src/adapters/bun/server-adapter.js +40 -34
  18. package/src/adapters/bun/server-lifecycle.d.ts +28 -17
  19. package/src/adapters/bun/server-lifecycle.js +34 -62
  20. package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
  21. package/src/{create-app.js → adapters/create-app.js} +4 -4
  22. package/src/adapters/index.d.ts +2 -6
  23. package/src/adapters/index.js +2 -8
  24. package/src/adapters/node/create-app.d.ts +6 -9
  25. package/src/adapters/node/create-app.js +12 -6
  26. package/src/adapters/node/node-client-bridge.d.ts +1 -1
  27. package/src/adapters/node/node-hmr-manager.d.ts +89 -18
  28. package/src/adapters/node/node-hmr-manager.js +185 -95
  29. package/src/adapters/node/server-adapter.d.ts +6 -35
  30. package/src/adapters/node/server-adapter.js +44 -105
  31. package/src/adapters/node/static-content-server.d.ts +37 -1
  32. package/src/adapters/node/static-content-server.js +29 -1
  33. package/src/adapters/shared/application-adapter.d.ts +1 -1
  34. package/src/{define-api-handler.d.ts → adapters/shared/define-api-handler.d.ts} +1 -1
  35. package/src/adapters/shared/explicit-static-route-matcher.d.ts +2 -2
  36. package/src/adapters/shared/explicit-static-route-matcher.js +4 -1
  37. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +1 -1
  38. package/src/adapters/shared/file-route-middleware-pipeline.js +1 -0
  39. package/src/adapters/shared/fs-server-response-factory.d.ts +2 -2
  40. package/src/adapters/shared/fs-server-response-factory.js +1 -1
  41. package/src/adapters/shared/fs-server-response-matcher.d.ts +8 -12
  42. package/src/adapters/shared/fs-server-response-matcher.js +10 -18
  43. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
  44. package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
  45. package/src/adapters/shared/hmr-html-response.d.ts +22 -0
  46. package/src/adapters/shared/hmr-html-response.js +32 -0
  47. package/src/adapters/shared/render-context.d.ts +2 -1
  48. package/src/adapters/shared/render-context.js +6 -3
  49. package/src/adapters/shared/runtime-bootstrap.d.ts +38 -0
  50. package/src/adapters/shared/runtime-bootstrap.js +43 -0
  51. package/src/adapters/shared/server-adapter.d.ts +13 -3
  52. package/src/adapters/shared/server-adapter.js +42 -5
  53. package/src/adapters/shared/server-route-handler.d.ts +4 -4
  54. package/src/adapters/shared/server-route-handler.js +6 -15
  55. package/src/adapters/shared/server-static-builder.d.ts +38 -6
  56. package/src/adapters/shared/server-static-builder.js +64 -10
  57. package/src/build/README.md +107 -0
  58. package/src/build/build-adapter.d.ts +168 -3
  59. package/src/build/build-adapter.js +604 -16
  60. package/src/build/build-manifest.d.ts +27 -0
  61. package/src/build/build-manifest.js +30 -0
  62. package/src/build/dev-build-coordinator.d.ts +72 -0
  63. package/src/build/dev-build-coordinator.js +154 -0
  64. package/src/build/esbuild-build-adapter.d.ts +15 -6
  65. package/src/build/esbuild-build-adapter.js +189 -74
  66. package/src/build/runtime-build-executor.d.ts +14 -0
  67. package/src/build/runtime-build-executor.js +22 -0
  68. package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
  69. package/src/build/runtime-specifier-alias-plugin.js +35 -0
  70. package/src/build/runtime-specifier-aliases.d.ts +5 -0
  71. package/src/build/runtime-specifier-aliases.js +95 -0
  72. package/src/config/README.md +36 -0
  73. package/src/config/config-builder.d.ts +52 -27
  74. package/src/config/config-builder.js +260 -49
  75. package/src/{constants.d.ts → config/constants.d.ts} +13 -0
  76. package/src/{constants.js → config/constants.js} +4 -0
  77. package/src/declarations.d.ts +19 -14
  78. package/src/dev/sc-server.d.ts +1 -1
  79. package/src/dev/sc-server.js +1 -1
  80. package/src/eco/README.md +70 -16
  81. package/src/eco/eco.browser.d.ts +2 -0
  82. package/src/eco/eco.browser.js +83 -0
  83. package/src/eco/eco.js +32 -57
  84. package/src/eco/eco.types.d.ts +12 -4
  85. package/src/eco/eco.utils.d.ts +1 -40
  86. package/src/eco/eco.utils.js +5 -35
  87. package/src/eco/global-injector-map.d.ts +1 -1
  88. package/src/eco/lazy-injector-map.d.ts +1 -1
  89. package/src/hmr/README.md +26 -0
  90. package/src/hmr/client/hmr-runtime.d.ts +1 -6
  91. package/src/hmr/client/hmr-runtime.js +30 -7
  92. package/src/hmr/hmr-strategy.d.ts +16 -13
  93. package/src/hmr/hmr-strategy.js +22 -7
  94. package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
  95. package/src/hmr/hmr.postcss.test.e2e.js +31 -0
  96. package/src/hmr/hmr.test.e2e.js +26 -33
  97. package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
  98. package/src/hmr/strategies/default-hmr-strategy.js +1 -1
  99. package/src/hmr/strategies/js-hmr-strategy.d.ts +46 -43
  100. package/src/hmr/strategies/js-hmr-strategy.js +72 -73
  101. package/src/index.browser.d.ts +2 -2
  102. package/src/index.browser.js +1 -1
  103. package/src/index.d.ts +4 -3
  104. package/src/index.js +16 -5
  105. package/src/integrations/ghtml/ghtml-renderer.d.ts +7 -2
  106. package/src/integrations/ghtml/ghtml-renderer.js +33 -30
  107. package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
  108. package/src/integrations/ghtml/ghtml.constants.js +4 -0
  109. package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
  110. package/src/integrations/ghtml/ghtml.plugin.js +3 -4
  111. package/src/plugins/README.md +35 -0
  112. package/src/plugins/alias-resolver-plugin.js +17 -3
  113. package/src/plugins/eco-component-meta-plugin.d.ts +14 -1
  114. package/src/plugins/eco-component-meta-plugin.js +27 -21
  115. package/src/plugins/foreign-jsx-override-plugin.d.ts +31 -0
  116. package/src/plugins/foreign-jsx-override-plugin.js +35 -0
  117. package/src/plugins/integration-plugin.d.ts +145 -28
  118. package/src/plugins/integration-plugin.js +109 -13
  119. package/src/plugins/processor.d.ts +15 -2
  120. package/src/plugins/processor.js +16 -2
  121. package/src/plugins/runtime-capability.d.ts +9 -0
  122. package/src/plugins/source-transform.d.ts +46 -0
  123. package/src/plugins/source-transform.js +71 -0
  124. package/src/route-renderer/GRAPH.md +64 -98
  125. package/src/route-renderer/README.md +67 -46
  126. package/src/route-renderer/orchestration/boundary-planning.service.d.ts +25 -0
  127. package/src/route-renderer/orchestration/boundary-planning.service.js +97 -0
  128. package/src/route-renderer/orchestration/component-render-context.d.ts +83 -0
  129. package/src/route-renderer/orchestration/component-render-context.js +147 -0
  130. package/src/route-renderer/orchestration/integration-renderer.d.ts +554 -0
  131. package/src/route-renderer/orchestration/integration-renderer.js +957 -0
  132. package/src/route-renderer/orchestration/queued-boundary-runtime.service.d.ts +89 -0
  133. package/src/route-renderer/orchestration/queued-boundary-runtime.service.js +155 -0
  134. package/src/route-renderer/orchestration/render-execution.service.d.ts +43 -0
  135. package/src/route-renderer/orchestration/render-execution.service.js +106 -0
  136. package/src/{eco/eco.utils.ts → route-renderer/orchestration/render-output.utils.d.ts} +10 -53
  137. package/src/route-renderer/orchestration/render-output.utils.js +65 -0
  138. package/src/route-renderer/{render-preparation.service.d.ts → orchestration/render-preparation.service.d.ts} +18 -10
  139. package/src/route-renderer/{render-preparation.service.js → orchestration/render-preparation.service.js} +115 -17
  140. package/src/route-renderer/orchestration/route-shell-composer.service.d.ts +50 -0
  141. package/src/route-renderer/orchestration/route-shell-composer.service.js +81 -0
  142. package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
  143. package/src/route-renderer/orchestration/template-serialization.js +45 -0
  144. package/src/route-renderer/{dependency-resolver.d.ts → page-loading/dependency-resolver.d.ts} +15 -4
  145. package/src/route-renderer/{dependency-resolver.js → page-loading/dependency-resolver.js} +28 -12
  146. package/src/route-renderer/page-loading/page-module-loader.d.ts +90 -0
  147. package/src/route-renderer/{page-module-loader.js → page-loading/page-module-loader.js} +39 -14
  148. package/src/route-renderer/route-renderer.d.ts +45 -4
  149. package/src/route-renderer/route-renderer.js +38 -3
  150. package/src/router/README.md +97 -0
  151. package/src/router/client/link-intent.d.ts +53 -0
  152. package/src/router/client/link-intent.js +34 -0
  153. package/src/router/client/link-intent.test.browser.d.ts +1 -0
  154. package/src/router/client/link-intent.test.browser.js +43 -0
  155. package/src/router/client/navigation-coordinator.d.ts +149 -0
  156. package/src/router/client/navigation-coordinator.js +215 -0
  157. package/src/router/{fs-router-scanner.d.ts → server/fs-router-scanner.d.ts} +3 -3
  158. package/src/router/{fs-router-scanner.js → server/fs-router-scanner.js} +14 -8
  159. package/src/router/{fs-router.d.ts → server/fs-router.d.ts} +1 -1
  160. package/src/router/{fs-router.js → server/fs-router.js} +1 -1
  161. package/src/services/README.md +29 -0
  162. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +120 -0
  163. package/src/services/{asset-processing-service → assets/asset-processing-service}/asset-processing.service.js +91 -10
  164. package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.d.ts +1 -1
  165. package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.js +2 -2
  166. package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.d.ts +2 -1
  167. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +55 -0
  168. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +48 -0
  169. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
  170. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -0
  171. package/src/services/assets/asset-processing-service/index.d.ts +5 -0
  172. package/src/services/assets/asset-processing-service/index.js +5 -0
  173. package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.d.ts +2 -2
  174. package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.d.ts +2 -2
  175. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.d.ts +1 -1
  176. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.js +9 -4
  177. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-script-processor.d.ts +5 -4
  178. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-script-processor.js +15 -23
  179. package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
  180. package/src/services/assets/asset-processing-service/processors/index.js +5 -0
  181. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.d.ts +2 -2
  182. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.js +1 -1
  183. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.d.ts +4 -3
  184. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.js +16 -4
  185. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.d.ts +3 -3
  186. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/node-module-script.processor.js +6 -5
  187. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.d.ts +2 -2
  188. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.js +1 -1
  189. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
  190. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.js +5 -2
  191. package/src/services/assets/browser-bundle.service.d.ts +32 -0
  192. package/src/services/assets/browser-bundle.service.js +33 -0
  193. package/src/services/{page-request-cache-coordinator.service.d.ts → cache/page-request-cache-coordinator.service.d.ts} +2 -2
  194. package/src/services/{page-request-cache-coordinator.service.js → cache/page-request-cache-coordinator.service.js} +3 -1
  195. package/src/services/html/html-rewriter-provider.service.d.ts +37 -0
  196. package/src/services/html/html-rewriter-provider.service.js +68 -0
  197. package/src/services/html/html-transformer.service.d.ts +77 -0
  198. package/src/services/html/html-transformer.service.js +215 -0
  199. package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
  200. package/src/services/invalidation/development-invalidation.service.js +190 -0
  201. package/src/services/module-loading/app-module-loader.service.d.ts +28 -0
  202. package/src/services/module-loading/app-module-loader.service.js +35 -0
  203. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +24 -0
  204. package/src/services/module-loading/app-server-module-transpiler.service.js +109 -0
  205. package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
  206. package/src/services/module-loading/host-module-loader-registry.js +15 -0
  207. package/src/services/module-loading/module-loading-types.d.ts +2 -0
  208. package/src/services/module-loading/node-bootstrap-plugin.d.ts +42 -0
  209. package/src/services/module-loading/node-bootstrap-plugin.js +204 -0
  210. package/src/services/module-loading/page-module-import.service.d.ts +76 -0
  211. package/src/services/module-loading/page-module-import.service.js +173 -0
  212. package/src/services/module-loading/server-module-transpiler.service.d.ts +72 -0
  213. package/src/services/module-loading/server-module-transpiler.service.js +64 -0
  214. package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
  215. package/src/services/runtime-state/dev-graph.service.js +162 -0
  216. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
  217. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
  218. package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +69 -0
  219. package/src/services/runtime-state/runtime-specifier-registry.service.js +37 -0
  220. package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
  221. package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
  222. package/src/services/{schema-validation-service.d.ts → validation/schema-validation-service.d.ts} +1 -1
  223. package/src/static-site-generator/README.md +26 -0
  224. package/src/static-site-generator/static-site-generator.d.ts +50 -3
  225. package/src/static-site-generator/static-site-generator.js +71 -5
  226. package/src/{internal-types.d.ts → types/internal-types.d.ts} +53 -22
  227. package/src/types/internal-types.js +0 -0
  228. package/src/{public-types.d.ts → types/public-types.d.ts} +146 -21
  229. package/src/types/public-types.js +0 -0
  230. package/src/utils/html-escaping.d.ts +7 -0
  231. package/src/utils/html-escaping.js +6 -0
  232. package/src/utils/locals-utils.d.ts +1 -1
  233. package/src/utils/parse-cli-args.d.ts +4 -1
  234. package/src/utils/parse-cli-args.js +16 -1
  235. package/src/utils/resolve-work-dir.d.ts +11 -0
  236. package/src/utils/resolve-work-dir.js +31 -0
  237. package/src/watchers/project-watcher.d.ts +40 -24
  238. package/src/watchers/project-watcher.js +129 -92
  239. package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
  240. package/src/watchers/project-watcher.test-helpers.js +1 -0
  241. package/src/adapters/abstract/application-adapter.ts +0 -337
  242. package/src/adapters/abstract/router-adapter.ts +0 -30
  243. package/src/adapters/abstract/server-adapter.ts +0 -79
  244. package/src/adapters/bun/client-bridge.ts +0 -62
  245. package/src/adapters/bun/create-app.ts +0 -189
  246. package/src/adapters/bun/define-api-handler.d.ts +0 -61
  247. package/src/adapters/bun/define-api-handler.ts +0 -114
  248. package/src/adapters/bun/hmr-manager.ts +0 -281
  249. package/src/adapters/bun/index.ts +0 -3
  250. package/src/adapters/bun/server-adapter.ts +0 -492
  251. package/src/adapters/bun/server-lifecycle.ts +0 -154
  252. package/src/adapters/index.ts +0 -6
  253. package/src/adapters/node/create-app.ts +0 -179
  254. package/src/adapters/node/index.d.ts +0 -4
  255. package/src/adapters/node/index.js +0 -8
  256. package/src/adapters/node/index.ts +0 -9
  257. package/src/adapters/node/node-client-bridge.ts +0 -79
  258. package/src/adapters/node/node-hmr-manager.ts +0 -271
  259. package/src/adapters/node/server-adapter.ts +0 -561
  260. package/src/adapters/node/static-content-server.ts +0 -203
  261. package/src/adapters/shared/api-response.ts +0 -104
  262. package/src/adapters/shared/application-adapter.ts +0 -199
  263. package/src/adapters/shared/explicit-static-route-matcher.ts +0 -134
  264. package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -123
  265. package/src/adapters/shared/fs-server-response-factory.ts +0 -118
  266. package/src/adapters/shared/fs-server-response-matcher.ts +0 -198
  267. package/src/adapters/shared/render-context.ts +0 -105
  268. package/src/adapters/shared/server-adapter.ts +0 -442
  269. package/src/adapters/shared/server-route-handler.ts +0 -166
  270. package/src/adapters/shared/server-static-builder.ts +0 -82
  271. package/src/build/build-adapter.ts +0 -132
  272. package/src/build/build-types.ts +0 -83
  273. package/src/build/esbuild-build-adapter.ts +0 -510
  274. package/src/config/config-builder.ts +0 -474
  275. package/src/constants.ts +0 -39
  276. package/src/create-app.ts +0 -87
  277. package/src/define-api-handler.js +0 -15
  278. package/src/define-api-handler.ts +0 -66
  279. package/src/dev/sc-server.ts +0 -143
  280. package/src/eco/component-render-context.d.ts +0 -105
  281. package/src/eco/component-render-context.js +0 -77
  282. package/src/eco/component-render-context.ts +0 -202
  283. package/src/eco/eco.ts +0 -221
  284. package/src/eco/eco.types.ts +0 -202
  285. package/src/eco/global-injector-map.ts +0 -112
  286. package/src/eco/lazy-injector-map.ts +0 -120
  287. package/src/eco/module-dependencies.ts +0 -75
  288. package/src/errors/http-error.ts +0 -72
  289. package/src/errors/index.ts +0 -2
  290. package/src/errors/locals-access-error.ts +0 -7
  291. package/src/global/app-logger.ts +0 -4
  292. 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
  293. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
  294. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
  295. package/src/hmr/client/hmr-runtime.ts +0 -121
  296. package/src/hmr/hmr-strategy.ts +0 -172
  297. package/src/hmr/hmr.test.e2e.ts +0 -75
  298. package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
  299. package/src/hmr/strategies/js-hmr-strategy.ts +0 -308
  300. package/src/index.browser.ts +0 -3
  301. package/src/index.ts +0 -5
  302. package/src/integrations/ghtml/ghtml-renderer.ts +0 -93
  303. package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
  304. package/src/internal-types.ts +0 -212
  305. package/src/plugins/alias-resolver-plugin.ts +0 -45
  306. package/src/plugins/eco-component-meta-plugin.ts +0 -474
  307. package/src/plugins/integration-plugin.ts +0 -184
  308. package/src/plugins/processor.ts +0 -220
  309. package/src/public-types.ts +0 -1255
  310. package/src/route-renderer/component-graph-executor.d.ts +0 -32
  311. package/src/route-renderer/component-graph-executor.js +0 -31
  312. package/src/route-renderer/component-graph-executor.ts +0 -84
  313. package/src/route-renderer/component-graph.d.ts +0 -42
  314. package/src/route-renderer/component-graph.js +0 -72
  315. package/src/route-renderer/component-graph.ts +0 -159
  316. package/src/route-renderer/component-marker.d.ts +0 -52
  317. package/src/route-renderer/component-marker.js +0 -46
  318. package/src/route-renderer/component-marker.ts +0 -117
  319. package/src/route-renderer/dependency-resolver.ts +0 -596
  320. package/src/route-renderer/html-post-processing.service.d.ts +0 -40
  321. package/src/route-renderer/html-post-processing.service.js +0 -86
  322. package/src/route-renderer/html-post-processing.service.ts +0 -103
  323. package/src/route-renderer/integration-renderer.d.ts +0 -339
  324. package/src/route-renderer/integration-renderer.js +0 -526
  325. package/src/route-renderer/integration-renderer.ts +0 -696
  326. package/src/route-renderer/marker-graph-resolver.d.ts +0 -76
  327. package/src/route-renderer/marker-graph-resolver.js +0 -93
  328. package/src/route-renderer/marker-graph-resolver.ts +0 -153
  329. package/src/route-renderer/page-module-loader.d.ts +0 -61
  330. package/src/route-renderer/page-module-loader.ts +0 -153
  331. package/src/route-renderer/render-execution.service.d.ts +0 -69
  332. package/src/route-renderer/render-execution.service.js +0 -91
  333. package/src/route-renderer/render-execution.service.ts +0 -158
  334. package/src/route-renderer/render-preparation.service.ts +0 -358
  335. package/src/route-renderer/route-renderer.ts +0 -80
  336. package/src/router/fs-router-scanner.ts +0 -217
  337. package/src/router/fs-router.ts +0 -122
  338. package/src/services/asset-processing-service/asset-processing.service.d.ts +0 -41
  339. package/src/services/asset-processing-service/asset-processing.service.ts +0 -306
  340. package/src/services/asset-processing-service/asset.factory.ts +0 -105
  341. package/src/services/asset-processing-service/assets.types.ts +0 -112
  342. package/src/services/asset-processing-service/index.d.ts +0 -3
  343. package/src/services/asset-processing-service/index.js +0 -3
  344. package/src/services/asset-processing-service/index.ts +0 -3
  345. package/src/services/asset-processing-service/processor.interface.ts +0 -27
  346. package/src/services/asset-processing-service/processor.registry.ts +0 -18
  347. package/src/services/asset-processing-service/processors/base/base-processor.ts +0 -76
  348. package/src/services/asset-processing-service/processors/base/base-script-processor.ts +0 -105
  349. package/src/services/asset-processing-service/processors/index.d.ts +0 -5
  350. package/src/services/asset-processing-service/processors/index.js +0 -5
  351. package/src/services/asset-processing-service/processors/index.ts +0 -5
  352. package/src/services/asset-processing-service/processors/script/content-script.processor.ts +0 -66
  353. package/src/services/asset-processing-service/processors/script/file-script.processor.ts +0 -88
  354. package/src/services/asset-processing-service/processors/script/node-module-script.processor.ts +0 -84
  355. package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
  356. package/src/services/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -77
  357. package/src/services/cache/cache.types.ts +0 -126
  358. package/src/services/cache/index.ts +0 -18
  359. package/src/services/cache/memory-cache-store.ts +0 -130
  360. package/src/services/cache/page-cache-service.ts +0 -202
  361. package/src/services/html-transformer.service.d.ts +0 -50
  362. package/src/services/html-transformer.service.js +0 -163
  363. package/src/services/html-transformer.service.ts +0 -217
  364. package/src/services/page-module-import.service.d.ts +0 -37
  365. package/src/services/page-module-import.service.js +0 -88
  366. package/src/services/page-module-import.service.ts +0 -129
  367. package/src/services/page-request-cache-coordinator.service.ts +0 -128
  368. package/src/services/schema-validation-service.ts +0 -204
  369. package/src/services/validation/standard-schema.types.ts +0 -68
  370. package/src/static-site-generator/static-site-generator.ts +0 -359
  371. package/src/utils/css.d.ts +0 -1
  372. package/src/utils/css.js +0 -7
  373. package/src/utils/css.ts +0 -5
  374. package/src/utils/deep-merge.ts +0 -47
  375. package/src/utils/hash.ts +0 -5
  376. package/src/utils/html.ts +0 -1
  377. package/src/utils/invariant.ts +0 -15
  378. package/src/utils/locals-utils.ts +0 -37
  379. package/src/utils/parse-cli-args.ts +0 -83
  380. package/src/utils/path-utils.module.ts +0 -14
  381. package/src/utils/runtime.ts +0 -44
  382. package/src/utils/server-utils.module.ts +0 -67
  383. package/src/watchers/project-watcher.test-helpers.ts +0 -40
  384. package/src/watchers/project-watcher.ts +0 -306
  385. /package/src/adapters/{bun → shared}/define-api-handler.js +0 -0
  386. /package/src/{internal-types.js → plugins/runtime-capability.js} +0 -0
  387. /package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.js +0 -0
  388. /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.js +0 -0
  389. /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.js +0 -0
  390. /package/src/{public-types.js → services/module-loading/module-loading-types.js} +0 -0
  391. /package/src/services/{schema-validation-service.js → validation/schema-validation-service.js} +0 -0
@@ -1,13 +1,20 @@
1
+ import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
1
2
  import { appLogger } from "../../global/app-logger.js";
2
3
  import { HttpError } from "../../errors/http-error.js";
3
4
  import { createRequire } from "../../utils/locals-utils.js";
4
5
  import { fileSystem } from "@ecopages/file-system";
5
6
  import { SharedServerAdapter } from "../shared/server-adapter.js";
6
7
  import { ApiResponseBuilder } from "../shared/api-response.js";
8
+ import { installSharedRuntimeBuildExecutor } from "../shared/runtime-bootstrap.js";
7
9
  import { ServerRouteHandler } from "../shared/server-route-handler.js";
8
- import { ServerStaticBuilder } from "../shared/server-static-builder";
9
- import { ClientBridge } from "./client-bridge";
10
- import { HmrManager } from "./hmr-manager";
10
+ import { ServerStaticBuilder } from "../shared/server-static-builder.js";
11
+ import {
12
+ injectHmrRuntimeIntoHtmlResponse,
13
+ isHtmlResponse,
14
+ shouldInjectHmrHtmlResponse
15
+ } from "../shared/hmr-html-response.js";
16
+ import { ClientBridge } from "./client-bridge.js";
17
+ import { HmrManager } from "./hmr-manager.js";
11
18
  import { ServerLifecycle } from "./server-lifecycle.js";
12
19
  class BunServerAdapter extends SharedServerAdapter {
13
20
  apiHandlers;
@@ -52,14 +59,13 @@ class BunServerAdapter extends SharedServerAdapter {
52
59
  * Only injects in watch mode when HMR manager is enabled.
53
60
  */
54
61
  shouldInjectHmrScript() {
55
- return this.options?.watch === true && this.hmrManager?.isEnabled() === true;
62
+ return shouldInjectHmrHtmlResponse(this.options?.watch === true, this.hmrManager);
56
63
  }
57
64
  /**
58
65
  * Checks if a response contains HTML content.
59
66
  */
60
67
  isHtmlResponse(response) {
61
- const contentType = response.headers.get("Content-Type");
62
- return contentType !== null && contentType.startsWith("text/html");
68
+ return isHtmlResponse(response);
63
69
  }
64
70
  /**
65
71
  * Injects HMR script into HTML responses in development mode.
@@ -67,16 +73,7 @@ class BunServerAdapter extends SharedServerAdapter {
67
73
  */
68
74
  async maybeInjectHmrScript(response) {
69
75
  if (this.shouldInjectHmrScript() && this.isHtmlResponse(response)) {
70
- const html = await response.text();
71
- const hmrScript = `<script type="module">import '/_hmr_runtime.js';<\/script>`;
72
- const updatedHtml = html.replace(/<\/html>/i, `${hmrScript}</html>`);
73
- const headers = new Headers(response.headers);
74
- headers.delete("Content-Length");
75
- return new Response(updatedHtml, {
76
- status: response.status,
77
- statusText: response.statusText,
78
- headers
79
- });
76
+ return injectHmrRuntimeIntoHtmlResponse(response);
80
77
  }
81
78
  return response;
82
79
  }
@@ -85,6 +82,9 @@ class BunServerAdapter extends SharedServerAdapter {
85
82
  * Delegates to ServerLifecycle for setup.
86
83
  */
87
84
  async initialize() {
85
+ installSharedRuntimeBuildExecutor(this.appConfig, {
86
+ development: this.options?.watch === true
87
+ });
88
88
  this.bridge = this.bridgeFactory ?? new ClientBridge();
89
89
  this.hmrManager = this.hmrManagerFactory ?? new HmrManager({ appConfig: this.appConfig, bridge: this.bridge });
90
90
  this.lifecycle = this.lifecycleFactory ?? new ServerLifecycle({
@@ -97,7 +97,8 @@ class BunServerAdapter extends SharedServerAdapter {
97
97
  const staticBuilderOptions = {
98
98
  appConfig: this.appConfig,
99
99
  staticSiteGenerator: this.staticSiteGenerator,
100
- serveOptions: this.serveOptions
100
+ serveOptions: this.serveOptions,
101
+ apiHandlers: this.apiHandlers
101
102
  };
102
103
  this.staticBuilder = this.staticBuilderFactory ? this.staticBuilderFactory(staticBuilderOptions) : new ServerStaticBuilder(staticBuilderOptions);
103
104
  await this.lifecycle.initializePlugins({ watch: this.options?.watch });
@@ -106,22 +107,23 @@ class BunServerAdapter extends SharedServerAdapter {
106
107
  * Refreshes the router routes during watch mode.
107
108
  */
108
109
  async refreshRouterRoutes() {
109
- if (this.serverInstance && typeof this.serverInstance.reload === "function") {
110
- try {
111
- await this.initSharedRouter();
112
- this.configureSharedResponseHandlers(this.staticRoutes, this.hmrManager);
110
+ if (!this.serverInstance || typeof this.serverInstance.reload !== "function") {
111
+ appLogger.error("Server instance is not available for reloading");
112
+ return;
113
+ }
114
+ await this.createSharedWatchRefreshCallback({
115
+ staticRoutes: this.staticRoutes,
116
+ hmrManager: this.hmrManager,
117
+ onRoutesReady: () => {
113
118
  const options = this.getServerOptions({ enableHmr: true });
114
119
  this.serverInstance.reload(options);
115
120
  appLogger.debug("Server routes updated with dynamic routes");
116
- } catch (error) {
117
- if (error instanceof Error) {
118
- this.hmrManager.broadcast({ type: "error", message: error.message });
119
- appLogger.error("Failed to refresh router routes:", error);
120
- }
121
+ },
122
+ onError: (error) => {
123
+ this.hmrManager.broadcast({ type: "error", message: error.message });
124
+ appLogger.error("Failed to refresh router routes:", error);
121
125
  }
122
- } else {
123
- appLogger.error("Server instance is not available for reloading");
124
- }
126
+ })();
125
127
  }
126
128
  async watch() {
127
129
  await this.lifecycle.startWatching({
@@ -246,8 +248,10 @@ class BunServerAdapter extends SharedServerAdapter {
246
248
  */
247
249
  async buildStatic(options) {
248
250
  if (!this.fullyInitialized) {
249
- await this.initSharedRouter();
250
- this.configureSharedResponseHandlers(this.staticRoutes, this.hmrManager);
251
+ await this.initializeSharedRouteHandling({
252
+ staticRoutes: this.staticRoutes,
253
+ hmrManager: this.hmrManager
254
+ });
251
255
  }
252
256
  await this.staticBuilder.build(options, {
253
257
  router: this.router,
@@ -278,8 +282,10 @@ class BunServerAdapter extends SharedServerAdapter {
278
282
  async _performInitialization(server) {
279
283
  this.serverInstance = server;
280
284
  appLogger.debug("Completing server initialization with dynamic routes");
281
- await this.initSharedRouter();
282
- this.configureSharedResponseHandlers(this.staticRoutes, this.hmrManager);
285
+ await this.initializeSharedRouteHandling({
286
+ staticRoutes: this.staticRoutes,
287
+ hmrManager: this.hmrManager
288
+ });
283
289
  this.fullyInitialized = true;
284
290
  if (this.options?.watch) await this.watch();
285
291
  if (server && typeof server.reload === "function") {
@@ -342,7 +348,7 @@ class BunServerAdapter extends SharedServerAdapter {
342
348
  }
343
349
  }
344
350
  async function createBunServerAdapter(params) {
345
- const runtimeOrigin = params.runtimeOrigin ?? `http://${params.serveOptions.hostname || "localhost"}:${params.serveOptions.port || 3e3}`;
351
+ const runtimeOrigin = params.runtimeOrigin ?? `http://${params.serveOptions.hostname || DEFAULT_ECOPAGES_HOSTNAME}:${params.serveOptions.port || DEFAULT_ECOPAGES_PORT}`;
346
352
  const bridge = params.bridge ?? new ClientBridge();
347
353
  const hmrManager = params.hmrManager ?? new HmrManager({ appConfig: params.appConfig, bridge });
348
354
  const lifecycle = params.lifecycle ?? new ServerLifecycle({
@@ -1,8 +1,8 @@
1
- import type { EcoPagesAppConfig } from '../../internal-types';
1
+ import type { EcoPagesAppConfig } from '../../types/internal-types.js';
2
2
  import type { EcoBuildPlugin } from '../../build/build-types.js';
3
- import { StaticSiteGenerator } from '../../static-site-generator/static-site-generator';
4
- import type { ClientBridge } from './client-bridge';
5
- import type { HmrManager } from './hmr-manager';
3
+ import { StaticSiteGenerator } from '../../static-site-generator/static-site-generator.js';
4
+ import type { ClientBridge } from './client-bridge.js';
5
+ import type { HmrManager } from './hmr-manager.js';
6
6
  export interface WatcherCallbacks {
7
7
  refreshRouterRoutesCallback: () => Promise<void>;
8
8
  }
@@ -13,7 +13,13 @@ export interface ServerLifecycleParams {
13
13
  bridge: ClientBridge;
14
14
  }
15
15
  /**
16
- * Handles server lifecycle: initialization, plugins, loaders, and file watching.
16
+ * Coordinates Bun-runtime server startup side effects for one app instance.
17
+ *
18
+ * @remarks
19
+ * This class keeps runtime-only concerns together: build-runtime bootstrapping,
20
+ * Bun loader registration, public asset preparation, plugin setup, and file
21
+ * watching. Core config/build state is expected to already be finalized before
22
+ * this lifecycle runs.
17
23
  */
18
24
  export declare class ServerLifecycle {
19
25
  private readonly appConfig;
@@ -23,30 +29,35 @@ export declare class ServerLifecycle {
23
29
  private staticSiteGenerator;
24
30
  constructor({ appConfig, runtimeOrigin, hmrManager, bridge }: ServerLifecycleParams);
25
31
  /**
26
- * Initializes the server's core components.
27
- * @returns The static site generator instance for use by other components
32
+ * Initializes the runtime services that Bun startup depends on.
33
+ *
34
+ * @returns The static-site generator instance reused by the adapter.
28
35
  */
29
36
  initialize(): Promise<StaticSiteGenerator>;
30
37
  /**
31
- * Sets up Bun loaders from config.
32
- * Note: This will be abstracted to a LoaderStrategy interface in #4 Runtime Abstraction.
38
+ * Registers config-owned build loaders with Bun's runtime plugin API.
39
+ *
40
+ * @remarks
41
+ * Bun remains responsible only for transport-level plugin registration here.
42
+ * Loader ownership and composition were already finalized during config build.
33
43
  */
34
44
  setupLoaders(): void;
35
45
  /**
36
- * Copies public directory contents to dist root.
37
- * Static files are served from root (e.g., /favicon.ico, /robots.txt).
38
- */
39
- copyPublicDir(): void;
40
- /**
41
- * Initializes processors and integrations.
42
- * @param options.watch - Whether watch mode is enabled
46
+ * Runs runtime-only processor and integration setup for this Bun app session.
47
+ *
48
+ * @param options.watch Whether watch mode is enabled.
49
+ * @returns The browser build plugins visible to HMR after runtime setup.
43
50
  */
44
51
  initializePlugins(options?: {
45
52
  watch?: boolean;
46
53
  }): Promise<EcoBuildPlugin[]>;
47
54
  /**
48
- * Starts file watching for HMR.
55
+ * Starts file watching and wires change events back into the adapter refresh
56
+ * callback.
49
57
  */
50
58
  startWatching(callbacks: WatcherCallbacks): Promise<void>;
59
+ /**
60
+ * Returns the static-site generator created during initialization.
61
+ */
51
62
  getStaticSiteGenerator(): StaticSiteGenerator;
52
63
  }
@@ -1,11 +1,12 @@
1
- import path from "node:path";
2
1
  import { getBunRuntime } from "../../utils/runtime.js";
3
- import { RESOLVED_ASSETS_DIR } from "../../constants";
4
- import { defaultBuildAdapter } from "../../build/build-adapter.js";
5
- import { appLogger } from "../../global/app-logger";
6
- import { fileSystem } from "@ecopages/file-system";
7
- import { StaticSiteGenerator } from "../../static-site-generator/static-site-generator";
8
- import { ProjectWatcher } from "../../watchers/project-watcher";
2
+ import { appLogger } from "../../global/app-logger.js";
3
+ import { StaticSiteGenerator } from "../../static-site-generator/static-site-generator.js";
4
+ import {
5
+ bindSharedRuntimeHmrManager,
6
+ initializeSharedRuntimePlugins,
7
+ prepareSharedRuntimePublicDir,
8
+ startSharedProjectWatching
9
+ } from "../shared/runtime-bootstrap.js";
9
10
  class ServerLifecycle {
10
11
  appConfig;
11
12
  hmrManager;
@@ -19,98 +20,69 @@ class ServerLifecycle {
19
20
  this.bridge = bridge;
20
21
  }
21
22
  /**
22
- * Initializes the server's core components.
23
- * @returns The static site generator instance for use by other components
23
+ * Initializes the runtime services that Bun startup depends on.
24
+ *
25
+ * @returns The static-site generator instance reused by the adapter.
24
26
  */
25
27
  async initialize() {
26
28
  this.staticSiteGenerator = new StaticSiteGenerator({ appConfig: this.appConfig });
27
29
  await this.hmrManager.buildRuntime();
28
30
  this.setupLoaders();
29
- this.copyPublicDir();
31
+ prepareSharedRuntimePublicDir(this.appConfig);
30
32
  return this.staticSiteGenerator;
31
33
  }
32
34
  /**
33
- * Sets up Bun loaders from config.
34
- * Note: This will be abstracted to a LoaderStrategy interface in #4 Runtime Abstraction.
35
+ * Registers config-owned build loaders with Bun's runtime plugin API.
36
+ *
37
+ * @remarks
38
+ * Bun remains responsible only for transport-level plugin registration here.
39
+ * Loader ownership and composition were already finalized during config build.
35
40
  */
36
41
  setupLoaders() {
37
42
  const loaders = this.appConfig.loaders;
38
43
  for (const loader of loaders.values()) {
39
- defaultBuildAdapter.registerPlugin(loader);
40
44
  getBunRuntime()?.plugin(loader);
41
45
  }
42
46
  }
43
47
  /**
44
- * Copies public directory contents to dist root.
45
- * Static files are served from root (e.g., /favicon.ico, /robots.txt).
46
- */
47
- copyPublicDir() {
48
- try {
49
- const srcPublicDir = path.join(this.appConfig.rootDir, this.appConfig.srcDir, this.appConfig.publicDir);
50
- if (fileSystem.exists(srcPublicDir)) {
51
- fileSystem.copyDir(srcPublicDir, path.join(this.appConfig.rootDir, this.appConfig.distDir));
52
- }
53
- fileSystem.ensureDir(path.join(this.appConfig.absolutePaths.distDir, RESOLVED_ASSETS_DIR));
54
- } catch (error) {
55
- appLogger.error(
56
- `Failed to copy public directory: ${error instanceof Error ? error.message : String(error)}`
57
- );
58
- throw error;
59
- }
60
- }
61
- /**
62
- * Initializes processors and integrations.
63
- * @param options.watch - Whether watch mode is enabled
48
+ * Runs runtime-only processor and integration setup for this Bun app session.
49
+ *
50
+ * @param options.watch Whether watch mode is enabled.
51
+ * @returns The browser build plugins visible to HMR after runtime setup.
64
52
  */
65
53
  async initializePlugins(options) {
66
54
  try {
67
55
  const hmrEnabled = !!options?.watch;
68
56
  this.hmrManager.setEnabled(hmrEnabled);
69
- const processorBuildPlugins = [];
70
- const processorPromises = Array.from(this.appConfig.processors.values()).map(async (processor) => {
71
- await processor.setup();
72
- if (processor.plugins) {
73
- for (const plugin of processor.plugins) {
74
- defaultBuildAdapter.registerPlugin(plugin);
75
- getBunRuntime()?.plugin(plugin);
76
- }
77
- }
78
- if (processor.buildPlugins) {
79
- processorBuildPlugins.push(...processor.buildPlugins);
80
- }
81
- });
82
- const integrationPromises = this.appConfig.integrations.map(async (integration) => {
83
- integration.setConfig(this.appConfig);
84
- integration.setRuntimeOrigin(this.runtimeOrigin);
85
- integration.setHmrManager(this.hmrManager);
86
- await integration.setup();
87
- for (const plugin of integration.plugins) {
88
- defaultBuildAdapter.registerPlugin(plugin);
57
+ await initializeSharedRuntimePlugins({
58
+ appConfig: this.appConfig,
59
+ runtimeOrigin: this.runtimeOrigin,
60
+ hmrManager: this.hmrManager,
61
+ onRuntimePlugin: (plugin) => {
89
62
  getBunRuntime()?.plugin(plugin);
90
63
  }
91
64
  });
92
- await Promise.all([...processorPromises, ...integrationPromises]);
93
- const loaderPlugins = Array.from(this.appConfig.loaders.values());
94
- const allBuildPlugins = [...loaderPlugins, ...processorBuildPlugins];
95
- this.hmrManager.setPlugins(allBuildPlugins);
96
- return allBuildPlugins;
65
+ return bindSharedRuntimeHmrManager(this.appConfig, this.hmrManager);
97
66
  } catch (error) {
98
67
  appLogger.error(`Failed to initialize plugins: ${error instanceof Error ? error.message : String(error)}`);
99
68
  throw error;
100
69
  }
101
70
  }
102
71
  /**
103
- * Starts file watching for HMR.
72
+ * Starts file watching and wires change events back into the adapter refresh
73
+ * callback.
104
74
  */
105
75
  async startWatching(callbacks) {
106
- const watcherInstance = new ProjectWatcher({
107
- config: this.appConfig,
76
+ await startSharedProjectWatching({
77
+ appConfig: this.appConfig,
108
78
  refreshRouterRoutesCallback: callbacks.refreshRouterRoutesCallback,
109
79
  hmrManager: this.hmrManager,
110
80
  bridge: this.bridge
111
81
  });
112
- await watcherInstance.createWatcherSubscription();
113
82
  }
83
+ /**
84
+ * Returns the static-site generator created during initialization.
85
+ */
114
86
  getStaticSiteGenerator() {
115
87
  return this.staticSiteGenerator;
116
88
  }
@@ -1,9 +1,12 @@
1
- import type { EcopagesAppOptions as BunOptions } from './adapters/bun/create-app.js';
2
- import type { EcopagesAppOptions as NodeOptions } from './adapters/node/create-app.js';
3
- import { AbstractApplicationAdapter } from './adapters/abstract/application-adapter.js';
4
- import { SharedApplicationAdapter } from './adapters/shared/application-adapter.js';
5
- export type EcopagesAppOptions = BunOptions | NodeOptions;
6
- export type UniversalEcopagesApp = AbstractApplicationAdapter<EcopagesAppOptions, any, Request>;
1
+ import type { EcoPagesAppConfig } from '../types/internal-types.js';
2
+ import { AbstractApplicationAdapter } from './abstract/application-adapter.js';
3
+ import type { ApplicationAdapterOptions } from './abstract/application-adapter.js';
4
+ import { SharedApplicationAdapter } from './shared/application-adapter.js';
5
+ export interface EcopagesAppOptions extends ApplicationAdapterOptions {
6
+ appConfig: EcoPagesAppConfig;
7
+ serverOptions?: Record<string, any>;
8
+ }
9
+ export type UniversalEcopagesApp = AbstractApplicationAdapter<EcopagesAppOptions, unknown, Request>;
7
10
  export declare function createApp<WebSocketData = undefined>(options: EcopagesAppOptions): Promise<UniversalEcopagesApp>;
8
11
  export declare class EcopagesApp extends SharedApplicationAdapter<EcopagesAppOptions, unknown, Request> {
9
12
  private readonly appOptions;
@@ -1,12 +1,12 @@
1
- import { AbstractApplicationAdapter } from "./adapters/abstract/application-adapter.js";
2
- import { SharedApplicationAdapter } from "./adapters/shared/application-adapter.js";
1
+ import { AbstractApplicationAdapter } from "./abstract/application-adapter.js";
2
+ import { SharedApplicationAdapter } from "./shared/application-adapter.js";
3
3
  async function createRuntimeApp(options) {
4
4
  const bun = globalThis.Bun;
5
5
  if (bun) {
6
- const { createApp: createBunApp } = await import("./adapters/bun/create-app.js");
6
+ const { createApp: createBunApp } = await import("./bun/create-app.js");
7
7
  return await createBunApp(options);
8
8
  }
9
- const { createNodeApp } = await import("./adapters/node/create-app.js");
9
+ const { createApp: createNodeApp } = await import("./node/create-app.js");
10
10
  return await createNodeApp(options);
11
11
  }
12
12
  async function createApp(options) {
@@ -1,6 +1,2 @@
1
- export { EcopagesApp, createApp } from './bun/create-app.js';
2
- export { defineApiHandler, defineGroupHandler } from './bun/define-api-handler.js';
3
- export { NodeServerAdapter, createNodeServerAdapter } from './node/server-adapter.js';
4
- export { EcopagesApp as NodeAdapterEcopagesApp, createNodeApp } from './node/create-app.js';
5
- export type { NodeServerAdapterParams, NodeServerAdapterResult } from './node/server-adapter.js';
6
- export type { EcopagesAppOptions as NodeEcopagesAppOptions } from './node/create-app.js';
1
+ export { EcopagesApp, createApp } from './create-app.js';
2
+ export { defineApiHandler, defineGroupHandler, type GroupHandler } from './shared/define-api-handler.js';
@@ -1,14 +1,8 @@
1
- import { EcopagesApp, createApp } from "./bun/create-app.js";
2
- import { defineApiHandler, defineGroupHandler } from "./bun/define-api-handler.js";
3
- import { NodeServerAdapter, createNodeServerAdapter } from "./node/server-adapter.js";
4
- import { EcopagesApp as EcopagesApp2, createNodeApp } from "./node/create-app.js";
1
+ import { EcopagesApp, createApp } from "./create-app.js";
2
+ import { defineApiHandler, defineGroupHandler } from "./shared/define-api-handler.js";
5
3
  export {
6
4
  EcopagesApp,
7
- EcopagesApp2 as NodeAdapterEcopagesApp,
8
- NodeServerAdapter,
9
5
  createApp,
10
- createNodeApp,
11
- createNodeServerAdapter,
12
6
  defineApiHandler,
13
7
  defineGroupHandler
14
8
  };
@@ -1,16 +1,12 @@
1
1
  import { type Server as NodeServerInstance } from 'node:http';
2
- import type { EcoPagesAppConfig } from '../../internal-types.js';
3
- import { type ApplicationAdapterOptions } from '../abstract/application-adapter.js';
4
2
  import { SharedApplicationAdapter } from '../shared/application-adapter.js';
5
- import { type NodeServerAdapterResult } from './server-adapter.js';
6
- export interface EcopagesAppOptions extends ApplicationAdapterOptions {
7
- appConfig: EcoPagesAppConfig;
8
- serverOptions?: Record<string, any>;
9
- }
10
- export declare class EcopagesApp extends SharedApplicationAdapter<EcopagesAppOptions, NodeServerInstance, Request> {
3
+ import type { EcopagesAppOptions } from '../create-app.js';
4
+ import { type NodeServerAdapterResult, createNodeServerAdapter } from './server-adapter.js';
5
+ export declare class NodeEcopagesApp extends SharedApplicationAdapter<EcopagesAppOptions, NodeServerInstance, Request> {
11
6
  serverAdapter: NodeServerAdapterResult | undefined;
12
7
  private server;
13
8
  private runtimeOrigin;
9
+ protected createServerAdapter(params: Parameters<typeof createNodeServerAdapter>[0]): Promise<NodeServerAdapterResult>;
14
10
  stop(force?: boolean): Promise<void>;
15
11
  protected initializeServerAdapter(): Promise<NodeServerAdapterResult>;
16
12
  start(): Promise<NodeServerInstance | void>;
@@ -18,4 +14,5 @@ export declare class EcopagesApp extends SharedApplicationAdapter<EcopagesAppOpt
18
14
  private sendNodeResponse;
19
15
  fetch(request: Request): Promise<Response>;
20
16
  }
21
- export declare function createNodeApp(options: EcopagesAppOptions): Promise<EcopagesApp>;
17
+ export declare function createNodeApp(options: EcopagesAppOptions): Promise<NodeEcopagesApp>;
18
+ export declare function createApp(options: EcopagesAppOptions): Promise<NodeEcopagesApp>;
@@ -1,14 +1,16 @@
1
1
  import { createServer } from "node:http";
2
2
  import { Readable } from "node:stream";
3
- import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../constants.js";
3
+ import { DEFAULT_ECOPAGES_HOSTNAME, DEFAULT_ECOPAGES_PORT } from "../../config/constants.js";
4
4
  import { appLogger } from "../../global/app-logger.js";
5
- import {} from "../abstract/application-adapter.js";
6
5
  import { SharedApplicationAdapter } from "../shared/application-adapter.js";
7
6
  import { createNodeServerAdapter } from "./server-adapter.js";
8
- class EcopagesApp extends SharedApplicationAdapter {
7
+ class NodeEcopagesApp extends SharedApplicationAdapter {
9
8
  serverAdapter;
10
9
  server = null;
11
10
  runtimeOrigin = "";
11
+ createServerAdapter(params) {
12
+ return createNodeServerAdapter(params);
13
+ }
12
14
  async stop(force = true) {
13
15
  if (!this.server) {
14
16
  return;
@@ -36,7 +38,7 @@ class EcopagesApp extends SharedApplicationAdapter {
36
38
  const preferredPort = cliPort ?? (envPort ? Number(envPort) : void 0) ?? DEFAULT_ECOPAGES_PORT;
37
39
  const preferredHostname = cliHostname ?? envHostname ?? DEFAULT_ECOPAGES_HOSTNAME;
38
40
  this.runtimeOrigin = `http://${preferredHostname}:${preferredPort}`;
39
- return createNodeServerAdapter({
41
+ return this.createServerAdapter({
40
42
  runtimeOrigin: this.runtimeOrigin,
41
43
  appConfig: this.appConfig,
42
44
  apiHandlers: this.apiHandlers,
@@ -135,9 +137,13 @@ class EcopagesApp extends SharedApplicationAdapter {
135
137
  }
136
138
  }
137
139
  async function createNodeApp(options) {
138
- return new EcopagesApp(options);
140
+ return new NodeEcopagesApp(options);
141
+ }
142
+ async function createApp(options) {
143
+ return createNodeApp(options);
139
144
  }
140
145
  export {
141
- EcopagesApp,
146
+ NodeEcopagesApp,
147
+ createApp,
142
148
  createNodeApp
143
149
  };
@@ -1,5 +1,5 @@
1
1
  import type { WebSocket } from 'ws';
2
- import type { ClientBridgeEvent, IClientBridge } from '../../public-types.js';
2
+ import type { ClientBridgeEvent, IClientBridge } from '../../types/public-types.js';
3
3
  export declare class NodeClientBridge implements IClientBridge {
4
4
  private subscribers;
5
5
  private heartbeatTimer;