@ecopages/core 0.2.0-alpha.9 → 0.2.1-beta.0

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 (471) hide show
  1. package/README.md +79 -28
  2. package/package.json +94 -116
  3. package/src/adapters/README.md +2 -2
  4. package/src/adapters/abstract/application-adapter.d.ts +28 -2
  5. package/src/adapters/abstract/application-adapter.js +14 -2
  6. package/src/adapters/abstract/router-adapter.d.ts +1 -1
  7. package/src/adapters/abstract/server-adapter.d.ts +2 -2
  8. package/src/adapters/bun/client-bridge.d.ts +1 -1
  9. package/src/adapters/bun/create-app.d.ts +12 -12
  10. package/src/adapters/bun/create-app.js +64 -41
  11. package/src/adapters/bun/hmr-manager.d.ts +19 -115
  12. package/src/adapters/bun/hmr-manager.js +25 -301
  13. package/src/adapters/bun/index.d.ts +1 -1
  14. package/src/adapters/bun/index.js +2 -2
  15. package/src/adapters/bun/runtime-host.d.ts +52 -0
  16. package/src/adapters/bun/runtime-host.js +56 -0
  17. package/src/adapters/bun/server-adapter.d.ts +100 -32
  18. package/src/adapters/bun/server-adapter.js +142 -65
  19. package/src/adapters/bun/static-preview-host.d.ts +28 -0
  20. package/src/adapters/bun/static-preview-host.js +45 -0
  21. package/src/{create-app.d.ts → adapters/create-app.d.ts} +9 -6
  22. package/src/{create-app.js → adapters/create-app.js} +4 -4
  23. package/src/adapters/index.d.ts +1 -5
  24. package/src/adapters/index.js +1 -7
  25. package/src/adapters/node/create-app.d.ts +15 -12
  26. package/src/adapters/node/create-app.js +34 -85
  27. package/src/adapters/node/http-request-bridge.d.ts +57 -0
  28. package/src/adapters/node/http-request-bridge.js +118 -0
  29. package/src/adapters/node/node-client-bridge.d.ts +1 -1
  30. package/src/adapters/node/node-hmr-manager.d.ts +22 -103
  31. package/src/adapters/node/node-hmr-manager.js +26 -289
  32. package/src/adapters/node/runtime-host.d.ts +57 -0
  33. package/src/adapters/node/runtime-host.js +92 -0
  34. package/src/adapters/node/server-adapter-dependencies.d.ts +19 -0
  35. package/src/adapters/node/server-adapter-dependencies.js +18 -0
  36. package/src/adapters/node/server-adapter.d.ts +19 -42
  37. package/src/adapters/node/server-adapter.js +94 -139
  38. package/src/adapters/node/static-content-server.d.ts +1 -1
  39. package/src/adapters/node/static-content-server.js +1 -1
  40. package/src/adapters/node/static-preview-host.d.ts +55 -0
  41. package/src/adapters/node/static-preview-host.js +68 -0
  42. package/src/adapters/shared/application-adapter.d.ts +1 -1
  43. package/src/adapters/shared/define-api-handler.d.ts +1 -1
  44. package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
  45. package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
  46. package/src/adapters/shared/explicit-static-route-matcher.d.ts +7 -4
  47. package/src/adapters/shared/explicit-static-route-matcher.js +14 -16
  48. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
  49. package/src/adapters/shared/file-route-middleware-pipeline.js +2 -11
  50. package/src/adapters/shared/fs-server-response-factory.d.ts +14 -10
  51. package/src/adapters/shared/fs-server-response-factory.js +11 -27
  52. package/src/adapters/shared/fs-server-response-matcher.d.ts +18 -18
  53. package/src/adapters/shared/fs-server-response-matcher.js +72 -46
  54. package/src/adapters/shared/hmr-entrypoint-registrar.js +1 -1
  55. package/src/adapters/shared/hmr-html-response.d.ts +1 -1
  56. package/src/adapters/shared/hmr-html-response.js +4 -3
  57. package/src/adapters/shared/render-context.d.ts +5 -3
  58. package/src/adapters/shared/render-context.js +24 -1
  59. package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
  60. package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
  61. package/src/adapters/shared/runtime-host.d.ts +12 -0
  62. package/src/adapters/shared/server-adapter.d.ts +22 -11
  63. package/src/adapters/shared/server-adapter.js +183 -133
  64. package/src/adapters/shared/server-route-handler.d.ts +5 -5
  65. package/src/adapters/shared/server-route-handler.js +4 -4
  66. package/src/adapters/shared/server-static-builder.d.ts +8 -7
  67. package/src/adapters/shared/server-static-builder.js +6 -5
  68. package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
  69. package/src/adapters/shared/shared-hmr-manager.js +241 -0
  70. package/src/adapters/shared/static-preview-host.d.ts +10 -0
  71. package/src/build/README.md +57 -67
  72. package/src/build/browser-runtime-manifest.d.ts +31 -0
  73. package/src/build/browser-runtime-manifest.js +61 -0
  74. package/src/build/browser-runtime-plugin-helpers.d.ts +26 -0
  75. package/src/build/browser-runtime-plugin-helpers.js +14 -0
  76. package/src/build/browser-runtime-plugin.d.ts +78 -0
  77. package/src/build/browser-runtime-plugin.js +173 -0
  78. package/src/build/build-adapter.d.ts +384 -63
  79. package/src/build/build-adapter.js +129 -54
  80. package/src/build/build-manifest.d.ts +6 -0
  81. package/src/build/build-manifest.js +21 -2
  82. package/src/build/build-types.d.ts +2 -2
  83. package/src/build/rolldown-adapter-helpers.d.ts +58 -0
  84. package/src/build/rolldown-adapter-helpers.js +265 -0
  85. package/src/build/rolldown-build-adapter.d.ts +28 -0
  86. package/src/build/rolldown-build-adapter.js +65 -0
  87. package/src/build/rolldown-dev-build-adapter.d.ts +82 -0
  88. package/src/build/rolldown-dev-build-adapter.js +166 -0
  89. package/src/build/rolldown-plugin-bridge.d.ts +59 -0
  90. package/src/build/rolldown-plugin-bridge.js +199 -0
  91. package/src/build/runtime-build-executor.d.ts +15 -7
  92. package/src/build/runtime-build-executor.js +8 -9
  93. package/src/build/runtime-build-output-normalizer.d.ts +3 -0
  94. package/src/build/runtime-build-output-normalizer.js +111 -0
  95. package/src/build/serialized-build-executor.d.ts +64 -0
  96. package/src/build/serialized-build-executor.js +63 -0
  97. package/src/build/server-side-css-shim-plugin.d.ts +41 -0
  98. package/src/build/server-side-css-shim-plugin.js +35 -0
  99. package/src/cache/index.d.ts +6 -0
  100. package/src/cache/index.js +6 -0
  101. package/src/cache/module-parse-cache.d.ts +65 -0
  102. package/src/cache/module-parse-cache.js +75 -0
  103. package/src/config/README.md +5 -2
  104. package/src/config/config-builder.d.ts +41 -13
  105. package/src/config/config-builder.js +62 -24
  106. package/src/declarations.d.ts +1 -1
  107. package/src/dev/host-runtime.d.ts +10 -0
  108. package/src/dev/host-runtime.js +24 -0
  109. package/src/dev/sc-server.d.ts +1 -1
  110. package/src/dev/sc-server.js +1 -1
  111. package/src/eco/eco.browser.d.ts +2 -0
  112. package/src/eco/eco.browser.js +88 -0
  113. package/src/eco/eco.js +50 -45
  114. package/src/eco/eco.types.d.ts +60 -8
  115. package/src/eco/eco.utils.d.ts +1 -40
  116. package/src/eco/eco.utils.js +5 -35
  117. package/src/eco/global-injector-map.d.ts +3 -3
  118. package/src/eco/global-injector-map.js +2 -2
  119. package/src/eco/lazy-injector-map.d.ts +2 -2
  120. package/src/errors/index.d.ts +1 -0
  121. package/src/errors/index.js +3 -1
  122. package/src/hmr/client/hmr-runtime.js +9 -1
  123. package/src/hmr/hmr-strategy.d.ts +16 -13
  124. package/src/hmr/hmr-strategy.js +22 -7
  125. package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
  126. package/src/hmr/strategies/default-hmr-strategy.js +1 -1
  127. package/src/hmr/strategies/js-hmr-strategy.d.ts +4 -9
  128. package/src/hmr/strategies/js-hmr-strategy.js +5 -10
  129. package/src/index.browser.d.ts +2 -2
  130. package/src/index.browser.js +1 -1
  131. package/src/index.d.ts +3 -2
  132. package/src/index.js +15 -4
  133. package/src/integrations/ghtml/ghtml-renderer.d.ts +2 -1
  134. package/src/integrations/ghtml/ghtml-renderer.js +24 -29
  135. package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
  136. package/src/integrations/ghtml/ghtml.constants.js +4 -0
  137. package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
  138. package/src/integrations/ghtml/ghtml.plugin.js +3 -4
  139. package/src/plugins/README.md +1 -0
  140. package/src/plugins/alias-resolver-cache.d.ts +68 -0
  141. package/src/plugins/alias-resolver-cache.js +106 -0
  142. package/src/plugins/alias-resolver-plugin.d.ts +5 -1
  143. package/src/plugins/alias-resolver-plugin.js +19 -7
  144. package/src/plugins/eco-component-meta-plugin.d.ts +12 -1
  145. package/src/plugins/eco-component-meta-plugin.js +43 -25
  146. package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
  147. package/src/plugins/foreign-jsx-override-plugin.js +41 -0
  148. package/src/plugins/integration-plugin.d.ts +136 -42
  149. package/src/plugins/integration-plugin.js +99 -31
  150. package/src/plugins/processor.d.ts +4 -2
  151. package/src/plugins/processor.js +8 -3
  152. package/src/plugins/source-transform.d.ts +46 -0
  153. package/src/plugins/source-transform.js +71 -0
  154. package/src/route-renderer/GRAPH.md +80 -318
  155. package/src/route-renderer/README.md +74 -78
  156. package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
  157. package/src/route-renderer/orchestration/component-render-context.js +147 -0
  158. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
  159. package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
  160. package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
  161. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
  162. package/src/route-renderer/orchestration/integration-renderer.d.ts +290 -128
  163. package/src/route-renderer/orchestration/integration-renderer.js +660 -258
  164. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
  165. package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
  166. package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
  167. package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
  168. package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
  169. package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
  170. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
  171. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
  172. package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
  173. package/src/route-renderer/orchestration/render-output.utils.js +171 -0
  174. package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +156 -0
  175. package/src/route-renderer/orchestration/route-render-orchestrator.js +577 -0
  176. package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
  177. package/src/route-renderer/orchestration/template-serialization.js +45 -0
  178. package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
  179. package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
  180. package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
  181. package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
  182. package/src/route-renderer/page-loading/dependency-resolver.d.ts +2 -2
  183. package/src/route-renderer/page-loading/dependency-resolver.js +27 -354
  184. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
  185. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
  186. package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
  187. package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
  188. package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
  189. package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
  190. package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
  191. package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
  192. package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
  193. package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
  194. package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
  195. package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
  196. package/src/route-renderer/page-loading/page-module-loader.d.ts +7 -4
  197. package/src/route-renderer/page-loading/page-module-loader.js +8 -5
  198. package/src/route-renderer/route-renderer.d.ts +31 -23
  199. package/src/route-renderer/route-renderer.js +17 -24
  200. package/src/router/README.md +76 -8
  201. package/src/router/client/navigation-coordinator.d.ts +20 -0
  202. package/src/router/client/navigation-coordinator.js +2 -2
  203. package/src/router/server/route-registry.d.ts +78 -0
  204. package/src/router/server/route-registry.js +262 -0
  205. package/src/services/README.md +1 -2
  206. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
  207. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
  208. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +3 -20
  209. package/src/services/assets/asset-processing-service/asset-processing.service.js +52 -98
  210. package/src/services/assets/asset-processing-service/asset.factory.d.ts +1 -1
  211. package/src/services/assets/asset-processing-service/asset.factory.js +2 -2
  212. package/src/services/assets/asset-processing-service/assets.types.d.ts +14 -0
  213. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +2 -0
  214. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +1 -0
  215. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
  216. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
  217. package/src/services/assets/asset-processing-service/index.d.ts +6 -5
  218. package/src/services/assets/asset-processing-service/index.js +6 -5
  219. package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
  220. package/src/services/assets/asset-processing-service/page-package.js +80 -0
  221. package/src/services/assets/asset-processing-service/processor.interface.d.ts +2 -2
  222. package/src/services/assets/asset-processing-service/processor.registry.d.ts +2 -2
  223. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +1 -1
  224. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +3 -2
  225. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +10 -5
  226. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +69 -5
  227. package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -5
  228. package/src/services/assets/asset-processing-service/processors/index.js +5 -5
  229. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +3 -2
  230. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +66 -3
  231. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +4 -3
  232. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +27 -6
  233. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +38 -3
  234. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +57 -6
  235. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
  236. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +39 -5
  237. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
  238. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +5 -2
  239. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
  240. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
  241. package/src/services/assets/browser-bundle.service.d.ts +44 -3
  242. package/src/services/assets/browser-bundle.service.js +15 -7
  243. package/src/services/html/html-rewriter-provider.service.d.ts +3 -0
  244. package/src/services/html/html-rewriter-provider.service.js +4 -1
  245. package/src/services/html/html-transformer.service.d.ts +22 -3
  246. package/src/services/html/html-transformer.service.js +101 -35
  247. package/src/services/invalidation/development-invalidation.service.d.ts +1 -1
  248. package/src/services/invalidation/development-invalidation.service.js +1 -0
  249. package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
  250. package/src/services/module-loading/app-module-loader.service.js +0 -0
  251. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +9 -1
  252. package/src/services/module-loading/app-server-module-transpiler.service.js +102 -6
  253. package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
  254. package/src/services/module-loading/host-module-loader-registry.js +15 -0
  255. package/src/services/module-loading/module-loading-types.d.ts +2 -0
  256. package/src/services/module-loading/module-loading-types.js +0 -0
  257. package/src/services/module-loading/page-module-import.service.d.ts +32 -8
  258. package/src/services/module-loading/page-module-import.service.js +83 -22
  259. package/src/services/module-loading/server-module-transpiler.service.d.ts +8 -14
  260. package/src/services/module-loading/server-module-transpiler.service.js +5 -2
  261. package/src/services/module-loading/source-module-support.d.ts +5 -0
  262. package/src/services/module-loading/source-module-support.js +8 -0
  263. package/src/services/runtime-state/dev-graph.service.d.ts +6 -6
  264. package/src/services/runtime-state/dev-graph.service.js +10 -10
  265. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +1 -1
  266. package/src/services/runtime-state/server-invalidation-state.service.d.ts +1 -1
  267. package/src/static-site-generator/static-site-generator.d.ts +23 -28
  268. package/src/static-site-generator/static-site-generator.js +119 -156
  269. package/src/{internal-types.d.ts → types/internal-types.d.ts} +34 -23
  270. package/src/types/internal-types.js +0 -0
  271. package/src/{public-types.d.ts → types/public-types.d.ts} +195 -37
  272. package/src/types/public-types.js +0 -0
  273. package/src/utils/html-escaping.d.ts +7 -0
  274. package/src/utils/html-escaping.js +6 -0
  275. package/src/utils/locals-utils.d.ts +1 -1
  276. package/src/utils/parse-cli-args.d.ts +4 -1
  277. package/src/utils/parse-cli-args.js +16 -1
  278. package/src/utils/resolve-work-dir.js +1 -1
  279. package/src/watchers/project-watcher.d.ts +4 -4
  280. package/src/watchers/project-watcher.js +35 -41
  281. package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
  282. package/src/watchers/project-watcher.test-helpers.js +5 -5
  283. package/CHANGELOG.md +0 -31
  284. package/src/adapters/abstract/application-adapter.ts +0 -337
  285. package/src/adapters/abstract/router-adapter.ts +0 -30
  286. package/src/adapters/abstract/server-adapter.ts +0 -79
  287. package/src/adapters/bun/client-bridge.ts +0 -62
  288. package/src/adapters/bun/create-app.ts +0 -189
  289. package/src/adapters/bun/hmr-manager.ts +0 -409
  290. package/src/adapters/bun/index.ts +0 -2
  291. package/src/adapters/bun/server-adapter.ts +0 -499
  292. package/src/adapters/bun/server-lifecycle.d.ts +0 -63
  293. package/src/adapters/bun/server-lifecycle.js +0 -92
  294. package/src/adapters/bun/server-lifecycle.ts +0 -124
  295. package/src/adapters/index.ts +0 -6
  296. package/src/adapters/node/bootstrap-dependency-resolver.d.ts +0 -44
  297. package/src/adapters/node/bootstrap-dependency-resolver.js +0 -172
  298. package/src/adapters/node/bootstrap-dependency-resolver.ts +0 -301
  299. package/src/adapters/node/create-app.ts +0 -179
  300. package/src/adapters/node/index.d.ts +0 -6
  301. package/src/adapters/node/index.js +0 -11
  302. package/src/adapters/node/index.ts +0 -16
  303. package/src/adapters/node/node-client-bridge.ts +0 -79
  304. package/src/adapters/node/node-hmr-manager.ts +0 -381
  305. package/src/adapters/node/runtime-adapter.d.ts +0 -46
  306. package/src/adapters/node/runtime-adapter.js +0 -306
  307. package/src/adapters/node/runtime-adapter.ts +0 -439
  308. package/src/adapters/node/server-adapter.ts +0 -488
  309. package/src/adapters/node/static-content-server.ts +0 -239
  310. package/src/adapters/node/write-runtime-manifest.d.ts +0 -26
  311. package/src/adapters/node/write-runtime-manifest.js +0 -12
  312. package/src/adapters/node/write-runtime-manifest.ts +0 -38
  313. package/src/adapters/shared/api-response.ts +0 -104
  314. package/src/adapters/shared/application-adapter.ts +0 -199
  315. package/src/adapters/shared/define-api-handler.ts +0 -66
  316. package/src/adapters/shared/explicit-static-route-matcher.ts +0 -140
  317. package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -127
  318. package/src/adapters/shared/fs-server-response-factory.ts +0 -118
  319. package/src/adapters/shared/fs-server-response-matcher.ts +0 -205
  320. package/src/adapters/shared/hmr-entrypoint-registrar.ts +0 -149
  321. package/src/adapters/shared/hmr-html-response.ts +0 -52
  322. package/src/adapters/shared/render-context.ts +0 -120
  323. package/src/adapters/shared/runtime-bootstrap.d.ts +0 -38
  324. package/src/adapters/shared/runtime-bootstrap.js +0 -43
  325. package/src/adapters/shared/runtime-bootstrap.ts +0 -79
  326. package/src/adapters/shared/server-adapter.ts +0 -489
  327. package/src/adapters/shared/server-route-handler.ts +0 -153
  328. package/src/adapters/shared/server-static-builder.ts +0 -166
  329. package/src/build/build-adapter.ts +0 -361
  330. package/src/build/build-manifest.ts +0 -54
  331. package/src/build/build-types.ts +0 -83
  332. package/src/build/dev-build-coordinator.d.ts +0 -74
  333. package/src/build/dev-build-coordinator.js +0 -161
  334. package/src/build/dev-build-coordinator.ts +0 -221
  335. package/src/build/esbuild-build-adapter.d.ts +0 -72
  336. package/src/build/esbuild-build-adapter.js +0 -422
  337. package/src/build/esbuild-build-adapter.ts +0 -559
  338. package/src/build/runtime-build-executor.ts +0 -34
  339. package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
  340. package/src/build/runtime-specifier-alias-plugin.js +0 -31
  341. package/src/build/runtime-specifier-alias-plugin.ts +0 -58
  342. package/src/config/config-builder.ts +0 -706
  343. package/src/constants.ts +0 -54
  344. package/src/create-app.ts +0 -87
  345. package/src/dev/sc-server.ts +0 -143
  346. package/src/eco/component-render-context.d.ts +0 -105
  347. package/src/eco/component-render-context.js +0 -87
  348. package/src/eco/component-render-context.ts +0 -224
  349. package/src/eco/eco.ts +0 -242
  350. package/src/eco/eco.types.ts +0 -221
  351. package/src/eco/eco.utils.ts +0 -89
  352. package/src/eco/global-injector-map.ts +0 -112
  353. package/src/eco/lazy-injector-map.ts +0 -120
  354. package/src/eco/module-dependencies.ts +0 -75
  355. package/src/errors/http-error.ts +0 -72
  356. package/src/errors/index.ts +0 -2
  357. package/src/errors/locals-access-error.ts +0 -7
  358. package/src/global/app-logger.ts +0 -4
  359. package/src/hmr/client/hmr-runtime.ts +0 -152
  360. package/src/hmr/hmr-strategy.ts +0 -172
  361. package/src/hmr/hmr.postcss.test.e2e.ts +0 -41
  362. package/src/hmr/hmr.test.e2e.ts +0 -66
  363. package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
  364. package/src/hmr/strategies/js-hmr-strategy.ts +0 -320
  365. package/src/index.browser.ts +0 -3
  366. package/src/index.ts +0 -5
  367. package/src/integrations/ghtml/ghtml-renderer.ts +0 -96
  368. package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
  369. package/src/internal-types.ts +0 -232
  370. package/src/plugins/alias-resolver-plugin.ts +0 -63
  371. package/src/plugins/eco-component-meta-plugin.ts +0 -481
  372. package/src/plugins/integration-plugin.ts +0 -226
  373. package/src/plugins/processor.ts +0 -240
  374. package/src/plugins/runtime-capability.ts +0 -14
  375. package/src/public-types.ts +0 -1317
  376. package/src/route-renderer/component-graph/component-graph-executor.d.ts +0 -32
  377. package/src/route-renderer/component-graph/component-graph-executor.js +0 -31
  378. package/src/route-renderer/component-graph/component-graph-executor.ts +0 -84
  379. package/src/route-renderer/component-graph/component-graph.d.ts +0 -42
  380. package/src/route-renderer/component-graph/component-graph.js +0 -72
  381. package/src/route-renderer/component-graph/component-graph.ts +0 -159
  382. package/src/route-renderer/component-graph/component-marker.d.ts +0 -52
  383. package/src/route-renderer/component-graph/component-marker.js +0 -46
  384. package/src/route-renderer/component-graph/component-marker.ts +0 -117
  385. package/src/route-renderer/component-graph/component-reference.d.ts +0 -10
  386. package/src/route-renderer/component-graph/component-reference.js +0 -19
  387. package/src/route-renderer/component-graph/component-reference.ts +0 -29
  388. package/src/route-renderer/component-graph/marker-graph-resolver.d.ts +0 -77
  389. package/src/route-renderer/component-graph/marker-graph-resolver.js +0 -95
  390. package/src/route-renderer/component-graph/marker-graph-resolver.ts +0 -155
  391. package/src/route-renderer/orchestration/integration-renderer.ts +0 -790
  392. package/src/route-renderer/orchestration/render-execution.service.d.ts +0 -103
  393. package/src/route-renderer/orchestration/render-execution.service.js +0 -121
  394. package/src/route-renderer/orchestration/render-execution.service.ts +0 -230
  395. package/src/route-renderer/orchestration/render-preparation.service.d.ts +0 -121
  396. package/src/route-renderer/orchestration/render-preparation.service.js +0 -332
  397. package/src/route-renderer/orchestration/render-preparation.service.ts +0 -476
  398. package/src/route-renderer/page-loading/dependency-resolver.ts +0 -612
  399. package/src/route-renderer/page-loading/page-module-loader.ts +0 -181
  400. package/src/route-renderer/route-renderer.ts +0 -115
  401. package/src/router/client/link-intent.test.browser.ts +0 -51
  402. package/src/router/client/link-intent.ts +0 -92
  403. package/src/router/client/navigation-coordinator.ts +0 -433
  404. package/src/router/server/fs-router-scanner.d.ts +0 -41
  405. package/src/router/server/fs-router-scanner.js +0 -156
  406. package/src/router/server/fs-router-scanner.ts +0 -219
  407. package/src/router/server/fs-router.d.ts +0 -26
  408. package/src/router/server/fs-router.js +0 -100
  409. package/src/router/server/fs-router.ts +0 -122
  410. package/src/services/assets/asset-processing-service/asset-processing.service.ts +0 -401
  411. package/src/services/assets/asset-processing-service/asset.factory.ts +0 -105
  412. package/src/services/assets/asset-processing-service/assets.types.ts +0 -113
  413. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +0 -95
  414. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +0 -78
  415. package/src/services/assets/asset-processing-service/index.ts +0 -5
  416. package/src/services/assets/asset-processing-service/processor.interface.ts +0 -27
  417. package/src/services/assets/asset-processing-service/processor.registry.ts +0 -18
  418. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +0 -82
  419. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +0 -95
  420. package/src/services/assets/asset-processing-service/processors/index.ts +0 -5
  421. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +0 -66
  422. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +0 -88
  423. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +0 -85
  424. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
  425. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -80
  426. package/src/services/assets/browser-bundle.service.ts +0 -53
  427. package/src/services/cache/cache.types.ts +0 -126
  428. package/src/services/cache/index.ts +0 -18
  429. package/src/services/cache/memory-cache-store.ts +0 -130
  430. package/src/services/cache/page-cache-service.ts +0 -202
  431. package/src/services/cache/page-request-cache-coordinator.service.ts +0 -131
  432. package/src/services/html/html-rewriter-provider.service.ts +0 -103
  433. package/src/services/html/html-transformer.service.ts +0 -279
  434. package/src/services/invalidation/development-invalidation.service.ts +0 -261
  435. package/src/services/module-loading/app-server-module-transpiler.service.ts +0 -52
  436. package/src/services/module-loading/page-module-import.service.ts +0 -200
  437. package/src/services/module-loading/server-loader.service.d.ts +0 -96
  438. package/src/services/module-loading/server-loader.service.js +0 -32
  439. package/src/services/module-loading/server-loader.service.ts +0 -130
  440. package/src/services/module-loading/server-module-transpiler.service.ts +0 -105
  441. package/src/services/runtime-manifest/node-runtime-manifest.service.d.ts +0 -35
  442. package/src/services/runtime-manifest/node-runtime-manifest.service.js +0 -60
  443. package/src/services/runtime-manifest/node-runtime-manifest.service.ts +0 -101
  444. package/src/services/runtime-state/dev-graph.service.ts +0 -217
  445. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +0 -136
  446. package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +0 -69
  447. package/src/services/runtime-state/runtime-specifier-registry.service.js +0 -37
  448. package/src/services/runtime-state/runtime-specifier-registry.service.ts +0 -96
  449. package/src/services/runtime-state/server-invalidation-state.service.ts +0 -68
  450. package/src/services/validation/schema-validation-service.ts +0 -204
  451. package/src/services/validation/standard-schema.types.ts +0 -68
  452. package/src/static-site-generator/static-site-generator.ts +0 -462
  453. package/src/utils/css.d.ts +0 -1
  454. package/src/utils/css.js +0 -7
  455. package/src/utils/css.ts +0 -5
  456. package/src/utils/deep-merge.ts +0 -47
  457. package/src/utils/hash.ts +0 -5
  458. package/src/utils/html.ts +0 -1
  459. package/src/utils/invariant.ts +0 -15
  460. package/src/utils/locals-utils.ts +0 -37
  461. package/src/utils/parse-cli-args.ts +0 -83
  462. package/src/utils/path-utils.module.ts +0 -14
  463. package/src/utils/resolve-work-dir.ts +0 -45
  464. package/src/utils/runtime.ts +0 -44
  465. package/src/utils/server-utils.module.ts +0 -67
  466. package/src/watchers/project-watcher.test-helpers.ts +0 -41
  467. package/src/watchers/project-watcher.ts +0 -363
  468. /package/src/{internal-types.js → adapters/shared/runtime-host.js} +0 -0
  469. /package/src/{public-types.js → adapters/shared/static-preview-host.js} +0 -0
  470. /package/src/{constants.d.ts → config/constants.d.ts} +0 -0
  471. /package/src/{constants.js → config/constants.js} +0 -0
package/README.md CHANGED
@@ -4,10 +4,10 @@ The foundational engine for the Ecopages framework. It provides the core build p
4
4
 
5
5
  ## Overview
6
6
 
7
- Ecopages is an extensible static site generator (SSG) built for universal execution across Bun and Node.js. It embraces a strictly MPA (Multi-Page Application) architecture by default, rendering HTML at build-time or request-time, and hydrating interactive islands only where necessary.
7
+ Ecopages is an extensible static site generator (SSG) built around a Bun-first core with Node fallback support and Vite-hosted compatibility for advanced dev and build orchestration. It embraces a strictly MPA (Multi-Page Application) architecture by default, rendering HTML at build-time or request-time, and hydrating interactive islands only where necessary.
8
8
 
9
- - **Universal Support**: First-class, optimized execution on both **Bun** and **Node.js** runtimes, powered by a unified `createApp` factory.
10
- - **Fast by default**: Uses native ESM, optimized file watching, and esbuild for high-performance bundling and server-side rendering.
9
+ - **Runtime Boundary**: `createApp()` prefers Bun when available and falls back to Node otherwise. Vite and Nitro still own host-side dev and build orchestration.
10
+ - **Build Ownership**: Bun-native execution keeps a core-owned build path. Vite and Nitro own host-side transforms, module graph behavior, and deployment-oriented builds.
11
11
  - **Framework agnostic**: First-class support for KitaJS, Lit, React, and MDX via official integration plugins.
12
12
  - **Extensible**: Hook into the build process with custom processors or rendering integrations.
13
13
 
@@ -31,18 +31,14 @@ flowchart TD
31
31
  B --> D[App build manifest]
32
32
  B --> E[Build executor]
33
33
  B --> F[Dev graph service]
34
- B --> G[Runtime specifier registry]
35
- B --> H[Node runtime manifest]
36
- H --> I[CLI launch plan]
37
- I --> J[Node thin host]
38
- J --> K[Node runtime adapter]
39
- K --> L[TranspilerServerLoader]
40
- L --> M[ServerModuleTranspiler]
41
- M --> N[PageModuleImportService]
42
- K --> O[Loaded app runtime]
43
- D --> P[BrowserBundleService]
44
- E --> M
45
- E --> P
34
+ B --> G[Host module loader boundary]
35
+ G --> H[PageModuleImportService]
36
+ E --> H
37
+ E --> I
38
+ E --> I[BrowserBundleService]
39
+ H --> J[Runtime app adapter]
40
+ J --> K[Bun adapter or Node adapter]
41
+ D --> I
46
42
  ```
47
43
 
48
44
  ### Development Invalidation And HMR Flow
@@ -71,10 +67,11 @@ The manager/orchestration layer is core-owned, but framework-specific strategies
71
67
 
72
68
  ### Practical Summary
73
69
 
74
- - `ConfigBuilder` now seeds one app-owned build adapter, manifest, executor, dev graph, and runtime registry.
70
+ - `ConfigBuilder` seeds one app-owned build ownership path, adapter, manifest, executor, dev graph, and runtime registry.
75
71
  - `BrowserBundleService` is the shared browser build seam used by HMR and asset-oriented browser output paths.
76
72
  - `ServerModuleTranspiler` is the shared server-side source loading seam used by runtime bootstrap and HMR metadata loading.
77
- - the Node thin-host path exists to keep startup framework-owned without putting source parsing or tsconfig ownership into the host itself.
73
+ - `createApp()` stays the universal runtime entrypoint, while Vite and Nitro hosts own their advanced dev and build workflows.
74
+ - One bundled adapter is the default bundler. Vite-based apps route through the `ViteHostBuildAdapter` boundary marker instead.
78
75
 
79
76
  ## Documentation Map
80
77
 
@@ -102,7 +99,7 @@ The intended reading order is:
102
99
  ## Installation
103
100
 
104
101
  ```bash
105
- bunx jsr add @ecopages/core
102
+ bun add @ecopages/core
106
103
  ```
107
104
 
108
105
  _(You can also use `npm`, `yarn`, or `pnpm`)_
@@ -134,13 +131,13 @@ export default config;
134
131
 
135
132
  ### 2. Application Entry (`app.ts`)
136
133
 
137
- Start the application using the universal `createApp` factory. It automatically detects your runtime and applies the correct adapter.
134
+ Start the application using `createApp`. It will choose the Bun adapter when Bun is available and fall back to Node otherwise.
138
135
 
139
136
  ```typescript
140
- import { createApp } from '@ecopages/core';
137
+ import { createApp } from '@ecopages/core/create-app';
141
138
  import appConfig from './eco.config';
142
139
 
143
- const app = createApp({ appConfig });
140
+ const app = await createApp({ appConfig });
144
141
 
145
142
  await app.start();
146
143
  ```
@@ -181,6 +178,12 @@ export const MyButton = eco.component({
181
178
  });
182
179
  ```
183
180
 
181
+ Dependency ownership affects final asset packaging:
182
+
183
+ - Stylesheets and scripts declared from `eco.html()` stay Html-owned and can be emitted as shared app-wide assets.
184
+ - Stylesheets and scripts declared from Pages, Layouts, or Components are resolved into page-owned assets for the rendered route.
185
+ - This split is intentional. Shared Html assets can be cached across routes, while page-owned assets can change without invalidating the global shell.
186
+
184
187
  ### 5. API Handlers
185
188
 
186
189
  Add server-side routes using `defineApiHandler`. Register them on your `app` instance before starting:
@@ -201,11 +204,11 @@ Attach the handler in your `app.ts` entry:
201
204
 
202
205
  ```typescript
203
206
  // app.ts
204
- import { createApp } from '@ecopages/core';
207
+ import { createApp } from '@ecopages/core/create-app';
205
208
  import { helloWorld } from './handlers/hello';
206
209
  import appConfig from './eco.config';
207
210
 
208
- const app = createApp({ appConfig });
211
+ const app = await createApp({ appConfig });
209
212
 
210
213
  app.get(helloWorld); // Register the API handler
211
214
 
@@ -216,18 +219,66 @@ See the [official documentation](https://ecopages.app) for advanced usage, API h
216
219
 
217
220
  ## Import Structure
218
221
 
219
- Use the root package exports for standard authoring. The framework automatically detects your runtime and uses the optimal internal adapter:
222
+ Use the `create-app` subpath for runtime startup and the root package for standard authoring helpers:
220
223
 
221
224
  ```ts
222
- import { createApp, defineApiHandler, defineGroupHandler, eco } from '@ecopages/core';
225
+ import { createApp } from '@ecopages/core/create-app';
226
+ import { defineApiHandler, defineGroupHandler, eco } from '@ecopages/core';
223
227
  ```
224
228
 
225
229
  > [!NOTE]
226
- > `createApp` is now the recommended universal entrypoint over `EcopagesApp`.
230
+ > `createApp` is the recommended entrypoint over `EcopagesApp`.
227
231
 
228
232
  ### Runtime Escape Hatches
229
233
 
230
- Use runtime-specific subpaths only when you explicitly need Bun-native or Node-native APIs that bypass the universal abstractions:
234
+ Use runtime-specific subpaths only when you explicitly need Bun-native APIs that bypass the universal abstractions:
231
235
 
232
236
  - `@ecopages/core/bun`
233
- - `@ecopages/core/node`
237
+
238
+ ## Entry Point Roles
239
+
240
+ The published subpaths are grouped by architectural role rather than by source folder.
241
+
242
+ ### App Authoring
243
+
244
+ Use these entrypoints when building an Ecopages app:
245
+
246
+ - `@ecopages/core`
247
+ - `@ecopages/core/create-app`
248
+ - `@ecopages/core/config-builder`
249
+ - `@ecopages/core/errors`
250
+ - `@ecopages/core/html`
251
+ - `@ecopages/core/hash`
252
+ - `@ecopages/core/declarations`
253
+ - `@ecopages/core/env`
254
+ - `@ecopages/core/bun`
255
+
256
+ ### Browser Navigation
257
+
258
+ Use these entrypoints when a browser runtime needs to coordinate document ownership and link intent:
259
+
260
+ - `@ecopages/core/router/navigation-coordinator`
261
+ - `@ecopages/core/router/link-intent`
262
+
263
+ ### Extension Authoring
264
+
265
+ Use these entrypoints when implementing integrations, processors, or source transforms:
266
+
267
+ - `@ecopages/core/plugins/integration-plugin`
268
+ - `@ecopages/core/plugins/processor`
269
+ - `@ecopages/core/plugins/source-transform`
270
+ - `@ecopages/core/route-renderer/integration-renderer`
271
+ - `@ecopages/core/services/asset-processing-service`
272
+ - `@ecopages/core/hmr/hmr-strategy`
273
+ - `@ecopages/core/integrations/ghtml`
274
+
275
+ ### Host And Runtime Composition
276
+
277
+ Use these entrypoints only when implementing host adapters or framework-owned bundling seams:
278
+
279
+ - `@ecopages/core/dev/host-runtime`
280
+ - `@ecopages/core/build/build-adapter`
281
+ - `@ecopages/core/build/build-types`
282
+ - `@ecopages/core/plugins/foreign-jsx-override-plugin`
283
+
284
+ These host-facing entrypoints are narrower compatibility seams. App code and most extensions should prefer the app-authoring or extension-authoring surfaces.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecopages/core",
3
- "version": "0.2.0-alpha.9",
3
+ "version": "0.2.1-beta.0",
4
4
  "description": "Core package for Ecopages",
5
5
  "keywords": [
6
6
  "ecopages",
@@ -17,15 +17,17 @@
17
17
  "directory": "packages/core"
18
18
  },
19
19
  "dependencies": {
20
- "@ecopages/file-system": "0.2.0-alpha.9",
21
- "@ecopages/logger": "latest",
22
- "@ecopages/scripts-injector": "^0.1.3",
20
+ "@ecopages/file-system": "0.2.1-beta.0",
21
+ "@ecopages/logger": "^0.2.3",
22
+ "@ecopages/scripts-injector": "^0.1.5",
23
+ "@oxc-project/runtime": "0.134.0",
23
24
  "@worker-tools/html-rewriter": "0.1.0-pre.19",
24
- "chokidar": "^4.0.3",
25
- "esbuild": "^0.27.3",
25
+ "chokidar": "^5.0.0",
26
+ "esbuild": "^0.28.0",
26
27
  "ghtml": "^4.0.2",
27
- "oxc-parser": "^0.110.0",
28
- "ws": "^8.18.0"
28
+ "oxc-parser": "^0.124.0",
29
+ "rolldown": "^1.1.0",
30
+ "ws": "^8.20.1"
29
31
  },
30
32
  "exports": {
31
33
  ".": {
@@ -35,13 +37,19 @@
35
37
  "default": "./src/index.js"
36
38
  },
37
39
  "./create-app": {
38
- "types": "./src/create-app.d.ts",
39
- "default": "./src/create-app.js"
40
+ "import": "./src/adapters/create-app.js",
41
+ "types": "./src/adapters/create-app.d.ts",
42
+ "default": "./src/adapters/create-app.js"
40
43
  },
41
44
  "./route-renderer/integration-renderer": {
42
45
  "types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
43
46
  "default": "./src/route-renderer/orchestration/integration-renderer.js"
44
47
  },
48
+ "./route-renderer/component-render-context": {
49
+ "import": "./src/route-renderer/orchestration/component-render-context.js",
50
+ "types": "./src/route-renderer/orchestration/component-render-context.d.ts",
51
+ "default": "./src/route-renderer/orchestration/component-render-context.js"
52
+ },
45
53
  "./router/navigation-coordinator": {
46
54
  "types": "./src/router/client/navigation-coordinator.d.ts",
47
55
  "default": "./src/router/client/navigation-coordinator.js"
@@ -50,15 +58,8 @@
50
58
  "types": "./src/router/client/link-intent.d.ts",
51
59
  "default": "./src/router/client/link-intent.js"
52
60
  },
53
- "./router/client/navigation-coordinator": {
54
- "types": "./src/router/client/navigation-coordinator.d.ts",
55
- "default": "./src/router/client/navigation-coordinator.js"
56
- },
57
- "./errors/locals-access-error": {
58
- "types": "./src/errors/locals-access-error.d.ts",
59
- "default": "./src/errors/locals-access-error.js"
60
- },
61
61
  "./eco": {
62
+ "browser": "./src/eco/eco.browser.js",
62
63
  "types": "./src/eco/eco.d.ts",
63
64
  "default": "./src/eco/eco.js"
64
65
  },
@@ -73,40 +74,29 @@
73
74
  "default": "./src/config/config-builder.js"
74
75
  },
75
76
  "./constants": {
76
- "types": "./src/constants.d.ts",
77
- "default": "./src/constants.js"
77
+ "types": "./src/config/constants.d.ts",
78
+ "default": "./src/config/constants.js"
78
79
  },
79
80
  "./bun": {
80
81
  "types": "./src/adapters/bun/index.d.ts",
81
82
  "default": "./src/adapters/bun/index.js"
82
83
  },
83
- "./bun/create-app": {
84
- "types": "./src/adapters/bun/create-app.d.ts",
85
- "default": "./src/adapters/bun/create-app.js"
86
- },
87
84
  "./hmr/hmr-strategy": {
88
85
  "types": "./src/hmr/hmr-strategy.d.ts",
89
86
  "default": "./src/hmr/hmr-strategy.js"
90
87
  },
91
- "./internal-types": {
92
- "types": "./src/internal-types.d.ts"
88
+ "./hmr/client/hmr-runtime": {
89
+ "types": "./src/hmr/client/hmr-runtime.d.ts",
90
+ "default": "./src/hmr/client/hmr-runtime.js"
91
+ },
92
+ "./dev/host-runtime": {
93
+ "types": "./src/dev/host-runtime.d.ts",
94
+ "default": "./src/dev/host-runtime.js"
93
95
  },
94
96
  "./services/asset-processing-service": {
95
97
  "types": "./src/services/assets/asset-processing-service/index.d.ts",
96
98
  "default": "./src/services/assets/asset-processing-service/index.js"
97
99
  },
98
- "./utils/deep-merge": {
99
- "types": "./src/utils/deep-merge.d.ts",
100
- "default": "./src/utils/deep-merge.js"
101
- },
102
- "./utils/invariant": {
103
- "types": "./src/utils/invariant.d.ts",
104
- "default": "./src/utils/invariant.js"
105
- },
106
- "./utils/parse-cli-args": {
107
- "types": "./src/utils/parse-cli-args.d.ts",
108
- "default": "./src/utils/parse-cli-args.js"
109
- },
110
100
  "./plugins/processor": {
111
101
  "types": "./src/plugins/processor.d.ts",
112
102
  "default": "./src/plugins/processor.js"
@@ -115,6 +105,10 @@
115
105
  "types": "./src/plugins/integration-plugin.d.ts",
116
106
  "default": "./src/plugins/integration-plugin.js"
117
107
  },
108
+ "./plugins/source-transform": {
109
+ "types": "./src/plugins/source-transform.d.ts",
110
+ "default": "./src/plugins/source-transform.js"
111
+ },
118
112
  "./build/build-types": {
119
113
  "types": "./src/build/build-types.d.ts",
120
114
  "default": "./src/build/build-types.js"
@@ -123,45 +117,41 @@
123
117
  "types": "./src/build/build-adapter.d.ts",
124
118
  "default": "./src/build/build-adapter.js"
125
119
  },
126
- "./build/runtime-specifier-alias-plugin": {
127
- "types": "./src/build/runtime-specifier-alias-plugin.d.ts",
128
- "default": "./src/build/runtime-specifier-alias-plugin.js"
120
+ "./build/runtime-build-output-normalizer": {
121
+ "types": "./src/build/runtime-build-output-normalizer.d.ts",
122
+ "default": "./src/build/runtime-build-output-normalizer.js"
129
123
  },
130
- "./adapters/bun/client-bridge": {
131
- "types": "./src/adapters/bun/client-bridge.d.ts",
132
- "default": "./src/adapters/bun/client-bridge.js"
124
+ "./build/browser-runtime-manifest": {
125
+ "types": "./src/build/browser-runtime-manifest.d.ts",
126
+ "default": "./src/build/browser-runtime-manifest.js"
133
127
  },
134
- "./node": {
135
- "types": "./src/adapters/node/index.d.ts",
136
- "default": "./src/adapters/node/index.js"
128
+ "./build/browser-runtime-plugin": {
129
+ "types": "./src/build/browser-runtime-plugin.d.ts",
130
+ "default": "./src/build/browser-runtime-plugin.js"
137
131
  },
138
- "./node/server-adapter": {
139
- "types": "./src/adapters/node/server-adapter.d.ts",
140
- "default": "./src/adapters/node/server-adapter.js"
132
+ "./cache": {
133
+ "types": "./src/cache/index.d.ts",
134
+ "default": "./src/cache/index.js"
141
135
  },
142
- "./node/create-app": {
143
- "types": "./src/adapters/node/create-app.d.ts",
144
- "default": "./src/adapters/node/create-app.js"
145
- },
146
- "./node/runtime-adapter": {
147
- "types": "./src/adapters/node/runtime-adapter.d.ts",
148
- "default": "./src/adapters/node/runtime-adapter.js"
136
+ "./plugins/foreign-jsx-override-plugin": {
137
+ "types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
138
+ "default": "./src/plugins/foreign-jsx-override-plugin.js"
149
139
  },
150
140
  "./html": {
151
141
  "import": "./src/utils/html.js",
152
142
  "default": "./src/utils/html.js",
153
143
  "types": "./src/utils/html.d.ts"
154
144
  },
155
- "./css": {
156
- "import": "./src/utils/css.js",
157
- "default": "./src/utils/css.js",
158
- "types": "./src/utils/css.d.ts"
159
- },
160
145
  "./hash": {
161
146
  "import": "./src/utils/hash.js",
162
147
  "default": "./src/utils/hash.js",
163
148
  "types": "./src/utils/hash.d.ts"
164
149
  },
150
+ "./utils/hash": {
151
+ "import": "./src/utils/hash.js",
152
+ "default": "./src/utils/hash.js",
153
+ "types": "./src/utils/hash.d.ts"
154
+ },
165
155
  "./errors": {
166
156
  "types": "./src/errors/index.d.ts",
167
157
  "default": "./src/errors/index.js"
@@ -171,13 +161,19 @@
171
161
  "default": "./src/integrations/ghtml/ghtml.plugin.js"
172
162
  },
173
163
  "./create-app.ts": {
174
- "types": "./src/create-app.d.ts",
175
- "default": "./src/create-app.js"
164
+ "import": "./src/adapters/create-app.js",
165
+ "types": "./src/adapters/create-app.d.ts",
166
+ "default": "./src/adapters/create-app.js"
176
167
  },
177
168
  "./route-renderer/integration-renderer.ts": {
178
169
  "types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
179
170
  "default": "./src/route-renderer/orchestration/integration-renderer.js"
180
171
  },
172
+ "./route-renderer/component-render-context.ts": {
173
+ "import": "./src/route-renderer/orchestration/component-render-context.js",
174
+ "types": "./src/route-renderer/orchestration/component-render-context.d.ts",
175
+ "default": "./src/route-renderer/orchestration/component-render-context.js"
176
+ },
181
177
  "./router/navigation-coordinator.ts": {
182
178
  "types": "./src/router/client/navigation-coordinator.d.ts",
183
179
  "default": "./src/router/client/navigation-coordinator.js"
@@ -186,15 +182,8 @@
186
182
  "types": "./src/router/client/link-intent.d.ts",
187
183
  "default": "./src/router/client/link-intent.js"
188
184
  },
189
- "./router/client/navigation-coordinator.ts": {
190
- "types": "./src/router/client/navigation-coordinator.d.ts",
191
- "default": "./src/router/client/navigation-coordinator.js"
192
- },
193
- "./errors/locals-access-error.ts": {
194
- "types": "./src/errors/locals-access-error.d.ts",
195
- "default": "./src/errors/locals-access-error.js"
196
- },
197
185
  "./eco.ts": {
186
+ "browser": "./src/eco/eco.browser.js",
198
187
  "types": "./src/eco/eco.d.ts",
199
188
  "default": "./src/eco/eco.js"
200
189
  },
@@ -209,40 +198,29 @@
209
198
  "default": "./src/config/config-builder.js"
210
199
  },
211
200
  "./constants.ts": {
212
- "types": "./src/constants.d.ts",
213
- "default": "./src/constants.js"
201
+ "types": "./src/config/constants.d.ts",
202
+ "default": "./src/config/constants.js"
214
203
  },
215
204
  "./bun.ts": {
216
205
  "types": "./src/adapters/bun/index.d.ts",
217
206
  "default": "./src/adapters/bun/index.js"
218
207
  },
219
- "./bun/create-app.ts": {
220
- "types": "./src/adapters/bun/create-app.d.ts",
221
- "default": "./src/adapters/bun/create-app.js"
222
- },
223
208
  "./hmr/hmr-strategy.ts": {
224
209
  "types": "./src/hmr/hmr-strategy.d.ts",
225
210
  "default": "./src/hmr/hmr-strategy.js"
226
211
  },
227
- "./internal-types.ts": {
228
- "types": "./src/internal-types.d.ts"
212
+ "./hmr/client/hmr-runtime.ts": {
213
+ "types": "./src/hmr/client/hmr-runtime.d.ts",
214
+ "default": "./src/hmr/client/hmr-runtime.js"
215
+ },
216
+ "./dev/host-runtime.ts": {
217
+ "types": "./src/dev/host-runtime.d.ts",
218
+ "default": "./src/dev/host-runtime.js"
229
219
  },
230
220
  "./services/asset-processing-service.ts": {
231
221
  "types": "./src/services/assets/asset-processing-service/index.d.ts",
232
222
  "default": "./src/services/assets/asset-processing-service/index.js"
233
223
  },
234
- "./utils/deep-merge.ts": {
235
- "types": "./src/utils/deep-merge.d.ts",
236
- "default": "./src/utils/deep-merge.js"
237
- },
238
- "./utils/invariant.ts": {
239
- "types": "./src/utils/invariant.d.ts",
240
- "default": "./src/utils/invariant.js"
241
- },
242
- "./utils/parse-cli-args.ts": {
243
- "types": "./src/utils/parse-cli-args.d.ts",
244
- "default": "./src/utils/parse-cli-args.js"
245
- },
246
224
  "./plugins/processor.ts": {
247
225
  "types": "./src/plugins/processor.d.ts",
248
226
  "default": "./src/plugins/processor.js"
@@ -251,6 +229,10 @@
251
229
  "types": "./src/plugins/integration-plugin.d.ts",
252
230
  "default": "./src/plugins/integration-plugin.js"
253
231
  },
232
+ "./plugins/source-transform.ts": {
233
+ "types": "./src/plugins/source-transform.d.ts",
234
+ "default": "./src/plugins/source-transform.js"
235
+ },
254
236
  "./build/build-types.ts": {
255
237
  "types": "./src/build/build-types.d.ts",
256
238
  "default": "./src/build/build-types.js"
@@ -259,45 +241,41 @@
259
241
  "types": "./src/build/build-adapter.d.ts",
260
242
  "default": "./src/build/build-adapter.js"
261
243
  },
262
- "./build/runtime-specifier-alias-plugin.ts": {
263
- "types": "./src/build/runtime-specifier-alias-plugin.d.ts",
264
- "default": "./src/build/runtime-specifier-alias-plugin.js"
244
+ "./build/runtime-build-output-normalizer.ts": {
245
+ "types": "./src/build/runtime-build-output-normalizer.d.ts",
246
+ "default": "./src/build/runtime-build-output-normalizer.js"
265
247
  },
266
- "./adapters/bun/client-bridge.ts": {
267
- "types": "./src/adapters/bun/client-bridge.d.ts",
268
- "default": "./src/adapters/bun/client-bridge.js"
248
+ "./build/browser-runtime-manifest.ts": {
249
+ "types": "./src/build/browser-runtime-manifest.d.ts",
250
+ "default": "./src/build/browser-runtime-manifest.js"
269
251
  },
270
- "./node.ts": {
271
- "types": "./src/adapters/node/index.d.ts",
272
- "default": "./src/adapters/node/index.js"
252
+ "./build/browser-runtime-plugin.ts": {
253
+ "types": "./src/build/browser-runtime-plugin.d.ts",
254
+ "default": "./src/build/browser-runtime-plugin.js"
273
255
  },
274
- "./node/server-adapter.ts": {
275
- "types": "./src/adapters/node/server-adapter.d.ts",
276
- "default": "./src/adapters/node/server-adapter.js"
256
+ "./cache.ts": {
257
+ "types": "./src/cache/index.d.ts",
258
+ "default": "./src/cache/index.js"
277
259
  },
278
- "./node/create-app.ts": {
279
- "types": "./src/adapters/node/create-app.d.ts",
280
- "default": "./src/adapters/node/create-app.js"
281
- },
282
- "./node/runtime-adapter.ts": {
283
- "types": "./src/adapters/node/runtime-adapter.d.ts",
284
- "default": "./src/adapters/node/runtime-adapter.js"
260
+ "./plugins/foreign-jsx-override-plugin.ts": {
261
+ "types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
262
+ "default": "./src/plugins/foreign-jsx-override-plugin.js"
285
263
  },
286
264
  "./html.ts": {
287
265
  "import": "./src/utils/html.js",
288
266
  "default": "./src/utils/html.js",
289
267
  "types": "./src/utils/html.d.ts"
290
268
  },
291
- "./css.ts": {
292
- "import": "./src/utils/css.js",
293
- "default": "./src/utils/css.js",
294
- "types": "./src/utils/css.d.ts"
295
- },
296
269
  "./hash.ts": {
297
270
  "import": "./src/utils/hash.js",
298
271
  "default": "./src/utils/hash.js",
299
272
  "types": "./src/utils/hash.d.ts"
300
273
  },
274
+ "./utils/hash.ts": {
275
+ "import": "./src/utils/hash.js",
276
+ "default": "./src/utils/hash.js",
277
+ "types": "./src/utils/hash.d.ts"
278
+ },
301
279
  "./errors.ts": {
302
280
  "types": "./src/errors/index.d.ts",
303
281
  "default": "./src/errors/index.js"
@@ -4,7 +4,7 @@ This directory contains the runtime-host integration layer for Ecopages.
4
4
 
5
5
  ## Purpose
6
6
 
7
- Adapters translate app-owned core services into concrete runtime behavior on Bun and Node.
7
+ Adapters translate app-owned core services into concrete runtime behavior at the host boundary. Bun remains the direct core runtime, while Node compatibility is driven by the Ecopages CLI thin-host path and reuses internal adapter pieces here.
8
8
 
9
9
  They are responsible for:
10
10
 
@@ -23,7 +23,7 @@ They are not responsible for:
23
23
  ## Main Areas
24
24
 
25
25
  - `bun/`: Bun server adapter, lifecycle coordination, bridge, and HMR transport
26
- - `node/`: Node server adapter plus thin-host runtime bootstrap path
26
+ - `node/`: internal Node compatibility adapter pieces used by the CLI thin-host path
27
27
  - `shared/`: runtime-neutral adapter helpers used by both hosts
28
28
 
29
29
  ## Ownership Boundary
@@ -6,15 +6,40 @@
6
6
  *
7
7
  * @module ApplicationAdapter
8
8
  */
9
- import type { EcoPagesAppConfig } from '../../internal-types.js';
10
- import type { ApiHandler, ApiHandlerContext, ErrorHandler, Middleware, RouteOptions, StaticRoute, ViewLoader } from '../../public-types.js';
9
+ import type { SourceModuleLoader } from '../../services/module-loading/module-loading-types.js';
10
+ import type { EcoPagesAppConfig } from '../../types/internal-types.js';
11
+ import type { ApiHandler, ApiHandlerContext, ErrorHandler, Middleware, RouteOptions, StaticRoute, ViewLoader } from '../../types/public-types.js';
11
12
  import { type ReturnParseCliArgs } from '../../utils/parse-cli-args.js';
13
+ /**
14
+ * Runtime bootstrap options layered on top of the app config.
15
+ *
16
+ * These options let a host runtime embed Ecopages without mutating process
17
+ * globals or app runtime state before calling `createApp()`.
18
+ */
19
+ export interface ApplicationRuntimeOptions {
20
+ /**
21
+ * Forces the app into the embedded-runtime CLI mode used by host
22
+ * environments.
23
+ *
24
+ * When enabled and no explicit `hostModuleLoader` is provided, the
25
+ * adapter auto-detects a host module loader from the global scope.
26
+ */
27
+ embedded?: boolean;
28
+ /**
29
+ * Explicit source module loader for request-time imports.
30
+ *
31
+ * When omitted in embedded mode, the adapter attempts automatic
32
+ * detection from globals set by the host environment.
33
+ */
34
+ hostModuleLoader?: SourceModuleLoader;
35
+ }
12
36
  /**
13
37
  * Configuration options for application adapters
14
38
  */
15
39
  export interface ApplicationAdapterOptions {
16
40
  appConfig: EcoPagesAppConfig;
17
41
  serverOptions?: Record<string, any>;
42
+ runtime?: ApplicationRuntimeOptions;
18
43
  /**
19
44
  * Options for clearing the output directory before starting the server
20
45
  * @default false
@@ -43,6 +68,7 @@ export declare abstract class AbstractApplicationAdapter<TOptions extends Applic
43
68
  protected appConfig: EcoPagesAppConfig;
44
69
  protected serverOptions: Record<string, any>;
45
70
  protected cliArgs: ReturnParseCliArgs;
71
+ protected runtimeOptions: ApplicationRuntimeOptions;
46
72
  protected apiHandlers: ApiHandler[];
47
73
  protected staticRoutes: StaticRoute[];
48
74
  protected errorHandler?: ErrorHandler;
@@ -1,4 +1,9 @@
1
1
  import { appLogger } from "../../global/app-logger.js";
2
+ import {
3
+ getAppModuleLoader,
4
+ setAppHostModuleLoader
5
+ } from "../../services/module-loading/app-server-module-transpiler.service.js";
6
+ import { getHostModuleLoader } from "../../services/module-loading/host-module-loader-registry.js";
2
7
  import { invariant } from "../../utils/invariant.js";
3
8
  import { fileSystem } from "@ecopages/file-system";
4
9
  import { parseCliArgs } from "../../utils/parse-cli-args.js";
@@ -6,20 +11,27 @@ class AbstractApplicationAdapter {
6
11
  appConfig;
7
12
  serverOptions;
8
13
  cliArgs;
14
+ runtimeOptions;
9
15
  apiHandlers = [];
10
16
  staticRoutes = [];
11
17
  errorHandler;
12
18
  constructor(options) {
13
19
  this.appConfig = options.appConfig;
14
20
  this.serverOptions = options.serverOptions || {};
15
- this.cliArgs = parseCliArgs();
21
+ this.runtimeOptions = options.runtime ?? {};
22
+ this.cliArgs = parseCliArgs({ embeddedRuntime: this.runtimeOptions.embedded });
23
+ const hostModuleLoader = this.runtimeOptions.hostModuleLoader ?? (this.runtimeOptions.embedded ? getHostModuleLoader() : void 0);
24
+ if (hostModuleLoader) {
25
+ setAppHostModuleLoader(this.appConfig, hostModuleLoader);
26
+ }
27
+ getAppModuleLoader(this.appConfig);
16
28
  if (options.clearOutput) {
17
29
  this.clearDistFolder().catch((error) => {
18
30
  appLogger.error("Error clearing dist folder", error);
19
31
  });
20
32
  }
21
33
  }
22
- async clearDistFolder(_filter = []) {
34
+ async clearDistFolder() {
23
35
  const distPath = this.appConfig.absolutePaths.distDir;
24
36
  const distExists = fileSystem.exists(distPath);
25
37
  if (!distExists) return;