@ecopages/core 0.2.0-alpha.4 → 0.2.0-alpha.41

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 (454) hide show
  1. package/README.md +268 -14
  2. package/package.json +92 -110
  3. package/src/adapters/README.md +39 -0
  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 +30 -68
  12. package/src/adapters/bun/hmr-manager.js +30 -212
  13. package/src/adapters/bun/index.d.ts +2 -3
  14. package/src/adapters/bun/index.js +3 -3
  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 +93 -32
  18. package/src/adapters/bun/server-adapter.js +166 -89
  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 +2 -6
  24. package/src/adapters/index.js +2 -8
  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 +38 -49
  31. package/src/adapters/node/node-hmr-manager.js +31 -219
  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 +20 -72
  37. package/src/adapters/node/server-adapter.js +99 -203
  38. package/src/adapters/node/static-content-server.d.ts +37 -1
  39. package/src/adapters/node/static-content-server.js +29 -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/{define-api-handler.d.ts → 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 -13
  48. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +7 -10
  49. package/src/adapters/shared/file-route-middleware-pipeline.js +3 -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 +20 -16
  53. package/src/adapters/shared/fs-server-response-matcher.js +76 -45
  54. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
  55. package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
  56. package/src/adapters/shared/hmr-html-response.d.ts +22 -0
  57. package/src/adapters/shared/hmr-html-response.js +33 -0
  58. package/src/adapters/shared/render-context.d.ts +5 -3
  59. package/src/adapters/shared/render-context.js +27 -3
  60. package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
  61. package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
  62. package/src/adapters/shared/runtime-host.d.ts +12 -0
  63. package/src/adapters/shared/server-adapter.d.ts +33 -12
  64. package/src/adapters/shared/server-adapter.js +215 -132
  65. package/src/adapters/shared/server-route-handler.d.ts +5 -5
  66. package/src/adapters/shared/server-route-handler.js +7 -16
  67. package/src/adapters/shared/server-static-builder.d.ts +41 -8
  68. package/src/adapters/shared/server-static-builder.js +65 -11
  69. package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
  70. package/src/adapters/shared/shared-hmr-manager.js +240 -0
  71. package/src/adapters/shared/static-preview-host.d.ts +10 -0
  72. package/src/build/README.md +107 -0
  73. package/src/build/build-adapter.d.ts +176 -3
  74. package/src/build/build-adapter.js +619 -16
  75. package/src/build/build-manifest.d.ts +27 -0
  76. package/src/build/build-manifest.js +30 -0
  77. package/src/build/dev-build-coordinator.d.ts +72 -0
  78. package/src/build/dev-build-coordinator.js +154 -0
  79. package/src/build/esbuild-build-adapter.d.ts +16 -6
  80. package/src/build/esbuild-build-adapter.js +202 -74
  81. package/src/build/runtime-build-executor.d.ts +14 -0
  82. package/src/build/runtime-build-executor.js +22 -0
  83. package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
  84. package/src/build/runtime-specifier-alias-plugin.js +35 -0
  85. package/src/build/runtime-specifier-aliases.d.ts +5 -0
  86. package/src/build/runtime-specifier-aliases.js +95 -0
  87. package/src/config/README.md +36 -0
  88. package/src/config/config-builder.d.ts +54 -29
  89. package/src/config/config-builder.js +256 -50
  90. package/src/{constants.d.ts → config/constants.d.ts} +13 -0
  91. package/src/{constants.js → config/constants.js} +4 -0
  92. package/src/declarations.d.ts +19 -14
  93. package/src/dev/host-runtime.d.ts +10 -0
  94. package/src/dev/host-runtime.js +24 -0
  95. package/src/dev/sc-server.d.ts +1 -1
  96. package/src/dev/sc-server.js +1 -1
  97. package/src/eco/README.md +70 -16
  98. package/src/eco/eco.browser.d.ts +2 -0
  99. package/src/eco/eco.browser.js +88 -0
  100. package/src/eco/eco.js +63 -54
  101. package/src/eco/eco.types.d.ts +69 -6
  102. package/src/eco/eco.utils.d.ts +1 -40
  103. package/src/eco/eco.utils.js +5 -35
  104. package/src/eco/global-injector-map.d.ts +3 -3
  105. package/src/eco/global-injector-map.js +2 -2
  106. package/src/eco/lazy-injector-map.d.ts +2 -2
  107. package/src/errors/index.d.ts +1 -0
  108. package/src/errors/index.js +3 -1
  109. package/src/hmr/README.md +26 -0
  110. package/src/hmr/client/hmr-runtime.d.ts +1 -6
  111. package/src/hmr/client/hmr-runtime.js +38 -7
  112. package/src/hmr/hmr-strategy.d.ts +16 -13
  113. package/src/hmr/hmr-strategy.js +22 -7
  114. package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
  115. package/src/hmr/hmr.postcss.test.e2e.js +31 -0
  116. package/src/hmr/hmr.test.e2e.js +26 -33
  117. package/src/hmr/strategies/default-hmr-strategy.d.ts +2 -2
  118. package/src/hmr/strategies/default-hmr-strategy.js +1 -1
  119. package/src/hmr/strategies/js-hmr-strategy.d.ts +46 -48
  120. package/src/hmr/strategies/js-hmr-strategy.js +60 -75
  121. package/src/index.browser.d.ts +2 -2
  122. package/src/index.browser.js +1 -1
  123. package/src/index.d.ts +4 -3
  124. package/src/index.js +16 -5
  125. package/src/integrations/ghtml/ghtml-renderer.d.ts +3 -2
  126. package/src/integrations/ghtml/ghtml-renderer.js +27 -30
  127. package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
  128. package/src/integrations/ghtml/ghtml.constants.js +4 -0
  129. package/src/integrations/ghtml/ghtml.plugin.d.ts +2 -6
  130. package/src/integrations/ghtml/ghtml.plugin.js +3 -4
  131. package/src/plugins/README.md +35 -0
  132. package/src/plugins/alias-resolver-plugin.d.ts +1 -0
  133. package/src/plugins/alias-resolver-plugin.js +27 -5
  134. package/src/plugins/eco-component-meta-plugin.d.ts +14 -1
  135. package/src/plugins/eco-component-meta-plugin.js +42 -24
  136. package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
  137. package/src/plugins/foreign-jsx-override-plugin.js +41 -0
  138. package/src/plugins/integration-plugin.d.ts +147 -29
  139. package/src/plugins/integration-plugin.js +103 -14
  140. package/src/plugins/processor.d.ts +17 -2
  141. package/src/plugins/processor.js +22 -3
  142. package/src/plugins/runtime-capability.d.ts +9 -0
  143. package/src/plugins/source-transform.d.ts +46 -0
  144. package/src/plugins/source-transform.js +71 -0
  145. package/src/route-renderer/GRAPH.md +83 -325
  146. package/src/route-renderer/README.md +73 -90
  147. package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
  148. package/src/route-renderer/orchestration/component-render-context.js +147 -0
  149. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
  150. package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
  151. package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
  152. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
  153. package/src/route-renderer/orchestration/integration-renderer.d.ts +534 -0
  154. package/src/route-renderer/orchestration/integration-renderer.js +986 -0
  155. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
  156. package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
  157. package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
  158. package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
  159. package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
  160. package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
  161. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
  162. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
  163. package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
  164. package/src/route-renderer/orchestration/render-output.utils.js +171 -0
  165. package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +134 -0
  166. package/src/route-renderer/orchestration/route-render-orchestrator.js +442 -0
  167. package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
  168. package/src/route-renderer/orchestration/template-serialization.js +45 -0
  169. package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
  170. package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
  171. package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
  172. package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
  173. package/src/route-renderer/{dependency-resolver.d.ts → page-loading/dependency-resolver.d.ts} +15 -4
  174. package/src/route-renderer/page-loading/dependency-resolver.js +115 -0
  175. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
  176. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
  177. package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
  178. package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
  179. package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
  180. package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
  181. package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
  182. package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
  183. package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
  184. package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
  185. package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
  186. package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
  187. package/src/route-renderer/page-loading/page-module-loader.d.ts +90 -0
  188. package/src/route-renderer/{page-module-loader.js → page-loading/page-module-loader.js} +39 -14
  189. package/src/route-renderer/route-renderer.d.ts +57 -14
  190. package/src/route-renderer/route-renderer.js +30 -18
  191. package/src/router/README.md +94 -0
  192. package/src/router/client/link-intent.d.ts +53 -0
  193. package/src/router/client/link-intent.js +34 -0
  194. package/src/router/client/link-intent.test.browser.d.ts +1 -0
  195. package/src/router/client/link-intent.test.browser.js +43 -0
  196. package/src/router/client/navigation-coordinator.d.ts +169 -0
  197. package/src/router/client/navigation-coordinator.js +215 -0
  198. package/src/router/server/route-registry.d.ts +78 -0
  199. package/src/router/server/route-registry.js +262 -0
  200. package/src/services/README.md +28 -0
  201. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
  202. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
  203. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +103 -0
  204. package/src/services/{asset-processing-service → assets/asset-processing-service}/asset-processing.service.js +124 -89
  205. package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.d.ts +1 -1
  206. package/src/services/{asset-processing-service → assets/asset-processing-service}/asset.factory.js +2 -2
  207. package/src/services/{asset-processing-service → assets/asset-processing-service}/assets.types.d.ts +16 -1
  208. package/src/services/assets/asset-processing-service/assets.types.js +0 -0
  209. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +55 -0
  210. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +49 -0
  211. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
  212. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -0
  213. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
  214. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
  215. package/src/services/assets/asset-processing-service/index.d.ts +6 -0
  216. package/src/services/assets/asset-processing-service/index.js +6 -0
  217. package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
  218. package/src/services/assets/asset-processing-service/page-package.js +80 -0
  219. package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.d.ts +2 -2
  220. package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.d.ts +2 -2
  221. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.d.ts +1 -1
  222. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/base/base-processor.js +11 -5
  223. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +22 -0
  224. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +136 -0
  225. package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
  226. package/src/services/assets/asset-processing-service/processors/index.js +5 -0
  227. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/content-script.processor.d.ts +3 -2
  228. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +119 -0
  229. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.d.ts +4 -3
  230. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/script/file-script.processor.js +28 -7
  231. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +42 -0
  232. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +126 -0
  233. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/content-stylesheet.processor.d.ts +5 -2
  234. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +59 -0
  235. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.d.ts +2 -2
  236. package/src/services/{asset-processing-service → assets/asset-processing-service}/processors/stylesheet/file-stylesheet.processor.js +9 -3
  237. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
  238. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
  239. package/src/services/assets/browser-bundle.service.d.ts +73 -0
  240. package/src/services/assets/browser-bundle.service.js +41 -0
  241. package/src/services/{page-request-cache-coordinator.service.d.ts → cache/page-request-cache-coordinator.service.d.ts} +2 -2
  242. package/src/services/{page-request-cache-coordinator.service.js → cache/page-request-cache-coordinator.service.js} +3 -1
  243. package/src/services/html/html-rewriter-provider.service.d.ts +40 -0
  244. package/src/services/html/html-rewriter-provider.service.js +68 -0
  245. package/src/services/html/html-transformer.service.d.ts +96 -0
  246. package/src/services/html/html-transformer.service.js +287 -0
  247. package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
  248. package/src/services/invalidation/development-invalidation.service.js +190 -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 +24 -0
  252. package/src/services/module-loading/app-server-module-transpiler.service.js +151 -0
  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/node-bootstrap-plugin.d.ts +42 -0
  258. package/src/services/module-loading/node-bootstrap-plugin.js +297 -0
  259. package/src/services/module-loading/page-module-import.service.d.ts +95 -0
  260. package/src/services/module-loading/page-module-import.service.js +191 -0
  261. package/src/services/module-loading/server-module-transpiler.service.d.ts +63 -0
  262. package/src/services/module-loading/server-module-transpiler.service.js +64 -0
  263. package/src/services/module-loading/source-module-support.d.ts +5 -0
  264. package/src/services/module-loading/source-module-support.js +8 -0
  265. package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
  266. package/src/services/runtime-state/dev-graph.service.js +162 -0
  267. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
  268. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
  269. package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
  270. package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
  271. package/src/services/{schema-validation-service.d.ts → validation/schema-validation-service.d.ts} +1 -1
  272. package/src/static-site-generator/README.md +26 -0
  273. package/src/static-site-generator/static-site-generator.d.ts +67 -20
  274. package/src/static-site-generator/static-site-generator.js +182 -138
  275. package/src/{internal-types.d.ts → types/internal-types.d.ts} +62 -30
  276. package/src/types/internal-types.js +0 -0
  277. package/src/{public-types.d.ts → types/public-types.d.ts} +239 -35
  278. package/src/types/public-types.js +0 -0
  279. package/src/utils/html-escaping.d.ts +7 -0
  280. package/src/utils/html-escaping.js +6 -0
  281. package/src/utils/locals-utils.d.ts +1 -1
  282. package/src/utils/parse-cli-args.d.ts +4 -1
  283. package/src/utils/parse-cli-args.js +16 -1
  284. package/src/utils/resolve-work-dir.d.ts +11 -0
  285. package/src/utils/resolve-work-dir.js +31 -0
  286. package/src/watchers/project-watcher.d.ts +40 -29
  287. package/src/watchers/project-watcher.js +126 -116
  288. package/src/watchers/project-watcher.test-helpers.d.ts +2 -2
  289. package/src/watchers/project-watcher.test-helpers.js +6 -6
  290. package/CHANGELOG.md +0 -91
  291. package/src/adapters/abstract/application-adapter.ts +0 -337
  292. package/src/adapters/abstract/router-adapter.ts +0 -30
  293. package/src/adapters/abstract/server-adapter.ts +0 -79
  294. package/src/adapters/bun/client-bridge.ts +0 -62
  295. package/src/adapters/bun/create-app.ts +0 -189
  296. package/src/adapters/bun/define-api-handler.d.ts +0 -61
  297. package/src/adapters/bun/define-api-handler.ts +0 -114
  298. package/src/adapters/bun/hmr-manager.ts +0 -296
  299. package/src/adapters/bun/index.ts +0 -3
  300. package/src/adapters/bun/server-adapter.ts +0 -492
  301. package/src/adapters/bun/server-lifecycle.d.ts +0 -52
  302. package/src/adapters/bun/server-lifecycle.js +0 -120
  303. package/src/adapters/bun/server-lifecycle.ts +0 -154
  304. package/src/adapters/index.ts +0 -6
  305. package/src/adapters/node/create-app.ts +0 -179
  306. package/src/adapters/node/index.d.ts +0 -4
  307. package/src/adapters/node/index.js +0 -8
  308. package/src/adapters/node/index.ts +0 -9
  309. package/src/adapters/node/node-client-bridge.ts +0 -79
  310. package/src/adapters/node/node-hmr-manager.ts +0 -289
  311. package/src/adapters/node/server-adapter.ts +0 -561
  312. package/src/adapters/node/static-content-server.ts +0 -203
  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/explicit-static-route-matcher.ts +0 -134
  316. package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -123
  317. package/src/adapters/shared/fs-server-response-factory.ts +0 -118
  318. package/src/adapters/shared/fs-server-response-matcher.ts +0 -198
  319. package/src/adapters/shared/render-context.ts +0 -105
  320. package/src/adapters/shared/server-adapter.ts +0 -442
  321. package/src/adapters/shared/server-route-handler.ts +0 -166
  322. package/src/adapters/shared/server-static-builder.ts +0 -82
  323. package/src/build/build-adapter.ts +0 -132
  324. package/src/build/build-types.ts +0 -83
  325. package/src/build/esbuild-build-adapter.ts +0 -510
  326. package/src/config/config-builder.ts +0 -474
  327. package/src/constants.ts +0 -39
  328. package/src/create-app.ts +0 -87
  329. package/src/define-api-handler.js +0 -15
  330. package/src/define-api-handler.ts +0 -66
  331. package/src/dev/sc-server.ts +0 -143
  332. package/src/eco/component-render-context.d.ts +0 -105
  333. package/src/eco/component-render-context.js +0 -77
  334. package/src/eco/component-render-context.ts +0 -202
  335. package/src/eco/eco.ts +0 -221
  336. package/src/eco/eco.types.ts +0 -202
  337. package/src/eco/eco.utils.ts +0 -89
  338. package/src/eco/global-injector-map.ts +0 -112
  339. package/src/eco/lazy-injector-map.ts +0 -120
  340. package/src/eco/module-dependencies.ts +0 -75
  341. package/src/errors/http-error.ts +0 -72
  342. package/src/errors/index.ts +0 -2
  343. package/src/errors/locals-access-error.ts +0 -7
  344. package/src/global/app-logger.ts +0 -4
  345. package/src/hmr/client/hmr-runtime.ts +0 -121
  346. package/src/hmr/hmr-strategy.ts +0 -172
  347. package/src/hmr/hmr.test.e2e.ts +0 -75
  348. package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
  349. package/src/hmr/strategies/js-hmr-strategy.ts +0 -320
  350. package/src/index.browser.ts +0 -3
  351. package/src/index.ts +0 -5
  352. package/src/integrations/ghtml/ghtml-renderer.ts +0 -93
  353. package/src/integrations/ghtml/ghtml.plugin.ts +0 -32
  354. package/src/internal-types.ts +0 -212
  355. package/src/plugins/alias-resolver-plugin.ts +0 -45
  356. package/src/plugins/eco-component-meta-plugin.ts +0 -474
  357. package/src/plugins/integration-plugin.ts +0 -184
  358. package/src/plugins/processor.ts +0 -220
  359. package/src/public-types.ts +0 -1260
  360. package/src/route-renderer/component-graph-executor.d.ts +0 -32
  361. package/src/route-renderer/component-graph-executor.js +0 -31
  362. package/src/route-renderer/component-graph-executor.ts +0 -84
  363. package/src/route-renderer/component-graph.d.ts +0 -42
  364. package/src/route-renderer/component-graph.js +0 -72
  365. package/src/route-renderer/component-graph.ts +0 -159
  366. package/src/route-renderer/component-marker.d.ts +0 -52
  367. package/src/route-renderer/component-marker.js +0 -46
  368. package/src/route-renderer/component-marker.ts +0 -117
  369. package/src/route-renderer/dependency-resolver.js +0 -428
  370. package/src/route-renderer/dependency-resolver.ts +0 -596
  371. package/src/route-renderer/html-post-processing.service.d.ts +0 -40
  372. package/src/route-renderer/html-post-processing.service.js +0 -86
  373. package/src/route-renderer/html-post-processing.service.ts +0 -103
  374. package/src/route-renderer/integration-renderer.d.ts +0 -339
  375. package/src/route-renderer/integration-renderer.js +0 -526
  376. package/src/route-renderer/integration-renderer.ts +0 -696
  377. package/src/route-renderer/marker-graph-resolver.d.ts +0 -76
  378. package/src/route-renderer/marker-graph-resolver.js +0 -93
  379. package/src/route-renderer/marker-graph-resolver.ts +0 -153
  380. package/src/route-renderer/page-module-loader.d.ts +0 -61
  381. package/src/route-renderer/page-module-loader.ts +0 -153
  382. package/src/route-renderer/render-execution.service.d.ts +0 -69
  383. package/src/route-renderer/render-execution.service.js +0 -91
  384. package/src/route-renderer/render-execution.service.ts +0 -158
  385. package/src/route-renderer/render-preparation.service.d.ts +0 -112
  386. package/src/route-renderer/render-preparation.service.js +0 -243
  387. package/src/route-renderer/render-preparation.service.ts +0 -358
  388. package/src/route-renderer/route-renderer.ts +0 -80
  389. package/src/router/fs-router-scanner.d.ts +0 -41
  390. package/src/router/fs-router-scanner.js +0 -155
  391. package/src/router/fs-router-scanner.ts +0 -217
  392. package/src/router/fs-router.d.ts +0 -26
  393. package/src/router/fs-router.js +0 -100
  394. package/src/router/fs-router.ts +0 -122
  395. package/src/services/asset-processing-service/asset-processing.service.d.ts +0 -41
  396. package/src/services/asset-processing-service/asset-processing.service.ts +0 -306
  397. package/src/services/asset-processing-service/asset.factory.ts +0 -105
  398. package/src/services/asset-processing-service/assets.types.ts +0 -112
  399. package/src/services/asset-processing-service/index.d.ts +0 -3
  400. package/src/services/asset-processing-service/index.js +0 -3
  401. package/src/services/asset-processing-service/index.ts +0 -3
  402. package/src/services/asset-processing-service/processor.interface.ts +0 -27
  403. package/src/services/asset-processing-service/processor.registry.ts +0 -18
  404. package/src/services/asset-processing-service/processors/base/base-processor.ts +0 -76
  405. package/src/services/asset-processing-service/processors/base/base-script-processor.d.ts +0 -16
  406. package/src/services/asset-processing-service/processors/base/base-script-processor.js +0 -80
  407. package/src/services/asset-processing-service/processors/base/base-script-processor.ts +0 -105
  408. package/src/services/asset-processing-service/processors/index.d.ts +0 -5
  409. package/src/services/asset-processing-service/processors/index.js +0 -5
  410. package/src/services/asset-processing-service/processors/index.ts +0 -5
  411. package/src/services/asset-processing-service/processors/script/content-script.processor.js +0 -57
  412. package/src/services/asset-processing-service/processors/script/content-script.processor.ts +0 -66
  413. package/src/services/asset-processing-service/processors/script/file-script.processor.ts +0 -88
  414. package/src/services/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -7
  415. package/src/services/asset-processing-service/processors/script/node-module-script.processor.js +0 -74
  416. package/src/services/asset-processing-service/processors/script/node-module-script.processor.ts +0 -84
  417. package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -25
  418. package/src/services/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -27
  419. package/src/services/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -77
  420. package/src/services/cache/cache.types.ts +0 -126
  421. package/src/services/cache/index.ts +0 -18
  422. package/src/services/cache/memory-cache-store.ts +0 -130
  423. package/src/services/cache/page-cache-service.ts +0 -202
  424. package/src/services/html-transformer.service.d.ts +0 -50
  425. package/src/services/html-transformer.service.js +0 -163
  426. package/src/services/html-transformer.service.ts +0 -217
  427. package/src/services/page-module-import.service.d.ts +0 -37
  428. package/src/services/page-module-import.service.js +0 -88
  429. package/src/services/page-module-import.service.ts +0 -129
  430. package/src/services/page-request-cache-coordinator.service.ts +0 -128
  431. package/src/services/schema-validation-service.ts +0 -204
  432. package/src/services/validation/standard-schema.types.ts +0 -68
  433. package/src/static-site-generator/static-site-generator.ts +0 -359
  434. package/src/utils/css.d.ts +0 -1
  435. package/src/utils/css.js +0 -7
  436. package/src/utils/css.ts +0 -5
  437. package/src/utils/deep-merge.ts +0 -47
  438. package/src/utils/hash.ts +0 -5
  439. package/src/utils/html.ts +0 -1
  440. package/src/utils/invariant.ts +0 -15
  441. package/src/utils/locals-utils.ts +0 -37
  442. package/src/utils/parse-cli-args.ts +0 -83
  443. package/src/utils/path-utils.module.ts +0 -14
  444. package/src/utils/runtime.ts +0 -44
  445. package/src/utils/server-utils.module.ts +0 -67
  446. package/src/watchers/project-watcher.test-helpers.ts +0 -41
  447. package/src/watchers/project-watcher.ts +0 -344
  448. /package/src/adapters/{bun → shared}/define-api-handler.js +0 -0
  449. /package/src/{internal-types.js → adapters/shared/runtime-host.js} +0 -0
  450. /package/src/{public-types.js → adapters/shared/static-preview-host.js} +0 -0
  451. /package/src/{services/asset-processing-service/assets.types.js → plugins/runtime-capability.js} +0 -0
  452. /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.interface.js +0 -0
  453. /package/src/services/{asset-processing-service → assets/asset-processing-service}/processor.registry.js +0 -0
  454. /package/src/services/{schema-validation-service.js → validation/schema-validation-service.js} +0 -0
package/README.md CHANGED
@@ -1,32 +1,286 @@
1
- # Ecopages
1
+ # @ecopages/core
2
2
 
3
- Ecopages is a static site generator designed with the goal of simplifying the process of creating websites. It is suitable for a range of projects, from blogs to portfolios, emphasizing ease of use and flexibility.
3
+ The foundational engine for the Ecopages framework. It provides the core build pipeline, development server, routing, and plugin architecture required to run an Ecopages application.
4
4
 
5
- This project is built on a commitment to clarity and simplicity in web development, utilizing modern web technologies without obscuring the process with unnecessary complexity.
5
+ ## Overview
6
6
 
7
- Ecopages relies on a minimal set of dependencies, carefully chosen to support its core functionality.
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
- Ecopages is built on the [Bun](https://bun.sh/) runtime, primarily utilizing [Kita](https://kitajs.org/html/) and [Mdx](https://mdxjs.com/) for rendering. Additionally, it supports [Lit Elements](https://lit.dev/) and offers experimental integration with [React](https://react.dev/). This setup allows for the extension of the platform with custom rendering functions, providing flexibility to cater to the specific needs of each project. The integrations are designed to be extensible, with no limit to the customization and expansion possibilities.
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
+ - **Framework agnostic**: First-class support for KitaJS, Lit, React, and MDX via official integration plugins.
12
+ - **Extensible**: Hook into the build process with custom processors or rendering integrations.
10
13
 
11
- For styling, [Tailwind CSS](https://tailwindcss.com/) and [PostCSS](https://postcss.org/) have been integrated. Notably, we recommend using `css` stylesheets and `@apply` directives with Tailwind CSS, diverging from its usual inline styling approach to better suit the structure of Ecopages.
14
+ ## Current Architecture
12
15
 
13
- As a project in its early stages, Ecopages is continuously evolving. Users may encounter limitations or areas in need of refinement. We welcome feedback and issue reports via our [GitHub repository](https://github.com/ecopages/ecopages).
16
+ The current core package is organized around app-owned runtime state and explicit service boundaries.
14
17
 
15
- ## Install
18
+ The important ownership rules are:
19
+
20
+ - `ConfigBuilder.build()` finalizes app-owned build and runtime services.
21
+ - browser bundling and server module loading are explicit, separate paths.
22
+ - runtime hosts stay thin and delegate framework work into core services.
23
+ - HMR and invalidation use shared graph-aware services instead of runtime-specific ad hoc wiring.
24
+
25
+ ### Bootstrap And Runtime Ownership
26
+
27
+ ```mermaid
28
+ flowchart TD
29
+ A[eco.config.ts] --> B[ConfigBuilder.build]
30
+ B --> C[App build adapter]
31
+ B --> D[App build manifest]
32
+ B --> E[Build executor]
33
+ B --> F[Dev graph service]
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
42
+ ```
43
+
44
+ ### Development Invalidation And HMR Flow
45
+
46
+ ```mermaid
47
+ flowchart TD
48
+ A[File change] --> B[ProjectWatcher]
49
+ B --> C[DevelopmentInvalidationService]
50
+ C --> D{Change kind}
51
+ D -->|Route or server source| E[Invalidate server modules]
52
+ D -->|Public or include| F[Reload browser]
53
+ D -->|Processor-owned asset| G[Notify processor only]
54
+ D -->|HMR-eligible source| H[Core HMR manager]
55
+ H --> I[Strategy selection]
56
+ I --> J[Core JsHmrStrategy]
57
+ I --> K[Integration strategy e.g. ReactHmrStrategy]
58
+ J --> L[BrowserBundleService]
59
+ K --> L
60
+ K --> M[importServerModule]
61
+ M --> N[ServerModuleTranspiler]
62
+ L --> O[Updated browser bundle]
63
+ O --> P[Client bridge broadcast]
64
+ ```
65
+
66
+ The manager/orchestration layer is core-owned, but framework-specific strategies such as React HMR are contributed by integrations and registered with the shared HMR manager.
67
+
68
+ ### Practical Summary
69
+
70
+ - `ConfigBuilder` now seeds one app-owned build ownership path, adapter, manifest, executor, dev graph, and runtime registry.
71
+ - `BrowserBundleService` is the shared browser build seam used by HMR and asset-oriented browser output paths.
72
+ - `ServerModuleTranspiler` is the shared server-side source loading seam used by runtime bootstrap and HMR metadata loading.
73
+ - `createApp()` stays the universal runtime entrypoint, while Vite and Nitro hosts own their advanced dev and build workflows.
74
+ - esbuild remains only as a temporary Bun-path implementation detail and is not a strategic core dependency.
75
+
76
+ ## Documentation Map
77
+
78
+ Use this package README as the top-level map, then drill into the focused subsystem READMEs:
79
+
80
+ - `src/config/README.md`: config finalization and app-owned runtime/build state
81
+ - `src/plugins/README.md`: integration and processor authoring contracts
82
+ - `src/build/README.md`: build adapter, executor, and development build coordination
83
+ - `src/services/README.md`: cross-cutting runtime services and orchestration helpers
84
+ - `src/adapters/README.md`: Bun, Node, and shared adapter boundaries
85
+ - `src/hmr/README.md`: HMR strategy and update-layer ownership
86
+ - `src/router/README.md`: route discovery, matching, and browser navigation coordination
87
+ - `src/route-renderer/README.md`: rendering orchestration and dependency resolution
88
+ - `src/static-site-generator/README.md`: static build execution path
89
+ - `src/eco/README.md`: `eco` authoring APIs for pages, layouts, and components
90
+
91
+ The intended reading order is:
92
+
93
+ 1. this file for the big-picture architecture
94
+ 2. `src/config/README.md` for config and lifecycle ownership
95
+ 3. `src/plugins/README.md` and `src/build/README.md` for contribution contracts
96
+ 4. `src/services/README.md` and `src/adapters/README.md` for runtime execution
97
+ 5. `src/router/README.md` and `src/route-renderer/README.md` for request-time flow
98
+
99
+ ## Installation
16
100
 
17
101
  ```bash
18
- bunx jsr add @ecopages/core
102
+ bun add @ecopages/core
19
103
  ```
20
104
 
21
- ## Portable imports first
105
+ _(You can also use `npm`, `yarn`, or `pnpm`)_
106
+
107
+ ## Basic Usage
108
+
109
+ The Ecopages architecture revolves around an `eco.config.ts` file and an application entry point.
110
+
111
+ ### 1. Configuration (`eco.config.ts`)
112
+
113
+ Configure your integratons, processors, and default metadata. Ecopages uses a builder pattern:
114
+
115
+ ```typescript
116
+ import { ConfigBuilder } from '@ecopages/core/config-builder';
117
+ // import your desired plugins...
118
+
119
+ const config = await new ConfigBuilder()
120
+ .setRootDir(import.meta.dirname)
121
+ .setBaseUrl(import.meta.env.ECOPAGES_BASE_URL ?? 'http://localhost:3000')
122
+ .setDefaultMetadata({
123
+ title: 'My Ecopages Site',
124
+ description: 'Built with Ecopages',
125
+ })
126
+ // .setIntegrations([kitajsPlugin()])
127
+ .build();
128
+
129
+ export default config;
130
+ ```
131
+
132
+ ### 2. Application Entry (`app.ts`)
133
+
134
+ Start the application using `createApp`. It will choose the Bun adapter when Bun is available and fall back to Node otherwise.
135
+
136
+ ```typescript
137
+ import { createApp } from '@ecopages/core/create-app';
138
+ import appConfig from './eco.config';
139
+
140
+ const app = await createApp({ appConfig });
141
+
142
+ await app.start();
143
+ ```
144
+
145
+ ### 3. Creating Pages
146
+
147
+ Use the `eco.page()` factory to define static routes. Place these in `src/pages/`:
148
+
149
+ ```tsx
150
+ import { eco } from '@ecopages/core';
151
+ import { BaseLayout } from '@/layouts/base-layout';
152
+
153
+ export default eco.page({
154
+ layout: BaseLayout,
155
+ metadata: () => ({
156
+ title: 'Home',
157
+ }),
158
+ render: () => (
159
+ <div>
160
+ <h1>Welcome to Ecopages</h1>
161
+ </div>
162
+ ),
163
+ });
164
+ ```
165
+
166
+ ### 4. Reusable Components
167
+
168
+ Define components with `eco.component()` to automatically inject necessary stylesheets or scripts only when that component is rendered:
22
169
 
23
- Use the root package exports for normal Ecopages authoring:
170
+ ```tsx
171
+ import { eco } from '@ecopages/core';
172
+
173
+ export const MyButton = eco.component({
174
+ dependencies: {
175
+ stylesheets: ['./button.css'],
176
+ },
177
+ render: ({ label }) => <button className="my-button">{label}</button>,
178
+ });
179
+ ```
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
+
187
+ ### 5. API Handlers
188
+
189
+ Add server-side routes using `defineApiHandler`. Register them on your `app` instance before starting:
190
+
191
+ ```typescript
192
+ import { defineApiHandler } from '@ecopages/core';
193
+
194
+ export const helloWorld = defineApiHandler({
195
+ path: '/api/hello',
196
+ method: 'GET',
197
+ handler: async ({ response }) => {
198
+ return response.json({ message: 'Hello World' });
199
+ },
200
+ });
201
+ ```
202
+
203
+ Attach the handler in your `app.ts` entry:
204
+
205
+ ```typescript
206
+ // app.ts
207
+ import { createApp } from '@ecopages/core/create-app';
208
+ import { helloWorld } from './handlers/hello';
209
+ import appConfig from './eco.config';
210
+
211
+ const app = await createApp({ appConfig });
212
+
213
+ app.get(helloWorld); // Register the API handler
214
+
215
+ await app.start();
216
+ ```
217
+
218
+ See the [official documentation](https://ecopages.app) for advanced usage, API handlers, and integrations.
219
+
220
+ ## Import Structure
221
+
222
+ Use the `create-app` subpath for runtime startup and the root package for standard authoring helpers:
24
223
 
25
224
  ```ts
26
- import { EcopagesApp, defineApiHandler, defineGroupHandler } from '@ecopages/core';
225
+ import { createApp } from '@ecopages/core/create-app';
226
+ import { defineApiHandler, defineGroupHandler, eco } from '@ecopages/core';
27
227
  ```
28
228
 
29
- Use runtime-specific subpaths only as advanced escape hatches when you explicitly need Bun- or Node-native APIs:
229
+ > [!NOTE]
230
+ > `createApp` is the recommended entrypoint over `EcopagesApp`.
231
+
232
+ ### Runtime Escape Hatches
233
+
234
+ Use runtime-specific subpaths only when you explicitly need Bun-native APIs that bypass the universal abstractions:
30
235
 
31
236
  - `@ecopages/core/bun`
32
- - `@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/build/runtime-specifier-alias-plugin`
283
+ - `@ecopages/core/build/runtime-specifier-aliases`
284
+ - `@ecopages/core/plugins/foreign-jsx-override-plugin`
285
+
286
+ 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.4",
3
+ "version": "0.2.0-alpha.41",
4
4
  "description": "Core package for Ecopages",
5
5
  "keywords": [
6
6
  "ecopages",
@@ -17,15 +17,15 @@
17
17
  "directory": "packages/core"
18
18
  },
19
19
  "dependencies": {
20
- "@ecopages/file-system": "0.2.0-alpha.4",
21
- "@ecopages/logger": "latest",
22
- "@ecopages/scripts-injector": "^0.1.3",
20
+ "@ecopages/file-system": "0.2.0-alpha.41",
21
+ "@ecopages/logger": "^0.2.3",
22
+ "@ecopages/scripts-injector": "^0.1.5",
23
23
  "@worker-tools/html-rewriter": "0.1.0-pre.19",
24
- "chokidar": "^4.0.3",
25
- "esbuild": "^0.27.3",
24
+ "chokidar": "^5.0.0",
25
+ "esbuild": "^0.28.0",
26
26
  "ghtml": "^4.0.2",
27
- "oxc-parser": "^0.110.0",
28
- "ws": "^8.18.0"
27
+ "oxc-parser": "^0.124.0",
28
+ "ws": "^8.20.1"
29
29
  },
30
30
  "exports": {
31
31
  ".": {
@@ -35,18 +35,29 @@
35
35
  "default": "./src/index.js"
36
36
  },
37
37
  "./create-app": {
38
- "types": "./src/create-app.d.ts",
39
- "default": "./src/create-app.js"
38
+ "import": "./src/adapters/create-app.js",
39
+ "types": "./src/adapters/create-app.d.ts",
40
+ "default": "./src/adapters/create-app.js"
40
41
  },
41
42
  "./route-renderer/integration-renderer": {
42
- "types": "./src/route-renderer/integration-renderer.d.ts",
43
- "default": "./src/route-renderer/integration-renderer.js"
43
+ "types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
44
+ "default": "./src/route-renderer/orchestration/integration-renderer.js"
44
45
  },
45
- "./errors/locals-access-error": {
46
- "types": "./src/errors/locals-access-error.d.ts",
47
- "default": "./src/errors/locals-access-error.js"
46
+ "./route-renderer/component-render-context": {
47
+ "import": "./src/route-renderer/orchestration/component-render-context.js",
48
+ "types": "./src/route-renderer/orchestration/component-render-context.d.ts",
49
+ "default": "./src/route-renderer/orchestration/component-render-context.js"
50
+ },
51
+ "./router/navigation-coordinator": {
52
+ "types": "./src/router/client/navigation-coordinator.d.ts",
53
+ "default": "./src/router/client/navigation-coordinator.js"
54
+ },
55
+ "./router/link-intent": {
56
+ "types": "./src/router/client/link-intent.d.ts",
57
+ "default": "./src/router/client/link-intent.js"
48
58
  },
49
59
  "./eco": {
60
+ "browser": "./src/eco/eco.browser.js",
50
61
  "types": "./src/eco/eco.d.ts",
51
62
  "default": "./src/eco/eco.js"
52
63
  },
@@ -61,43 +72,28 @@
61
72
  "default": "./src/config/config-builder.js"
62
73
  },
63
74
  "./constants": {
64
- "types": "./src/constants.d.ts",
65
- "default": "./src/constants.js"
75
+ "types": "./src/config/constants.d.ts",
76
+ "default": "./src/config/constants.js"
66
77
  },
67
78
  "./bun": {
68
79
  "types": "./src/adapters/bun/index.d.ts",
69
80
  "default": "./src/adapters/bun/index.js"
70
81
  },
71
- "./bun/create-app": {
72
- "types": "./src/adapters/bun/create-app.d.ts",
73
- "default": "./src/adapters/bun/create-app.js"
74
- },
75
- "./bun/define-api-handler": {
76
- "types": "./src/adapters/bun/define-api-handler.d.ts",
77
- "default": "./src/adapters/bun/define-api-handler.js"
78
- },
79
82
  "./hmr/hmr-strategy": {
80
83
  "types": "./src/hmr/hmr-strategy.d.ts",
81
84
  "default": "./src/hmr/hmr-strategy.js"
82
85
  },
83
- "./internal-types": {
84
- "types": "./src/internal-types.d.ts"
85
- },
86
- "./services/asset-processing-service": {
87
- "types": "./src/services/asset-processing-service/index.d.ts",
88
- "default": "./src/services/asset-processing-service/index.js"
86
+ "./hmr/client/hmr-runtime": {
87
+ "types": "./src/hmr/client/hmr-runtime.d.ts",
88
+ "default": "./src/hmr/client/hmr-runtime.js"
89
89
  },
90
- "./utils/deep-merge": {
91
- "types": "./src/utils/deep-merge.d.ts",
92
- "default": "./src/utils/deep-merge.js"
90
+ "./dev/host-runtime": {
91
+ "types": "./src/dev/host-runtime.d.ts",
92
+ "default": "./src/dev/host-runtime.js"
93
93
  },
94
- "./utils/invariant": {
95
- "types": "./src/utils/invariant.d.ts",
96
- "default": "./src/utils/invariant.js"
97
- },
98
- "./utils/parse-cli-args": {
99
- "types": "./src/utils/parse-cli-args.d.ts",
100
- "default": "./src/utils/parse-cli-args.js"
94
+ "./services/asset-processing-service": {
95
+ "types": "./src/services/assets/asset-processing-service/index.d.ts",
96
+ "default": "./src/services/assets/asset-processing-service/index.js"
101
97
  },
102
98
  "./plugins/processor": {
103
99
  "types": "./src/plugins/processor.d.ts",
@@ -107,6 +103,10 @@
107
103
  "types": "./src/plugins/integration-plugin.d.ts",
108
104
  "default": "./src/plugins/integration-plugin.js"
109
105
  },
106
+ "./plugins/source-transform": {
107
+ "types": "./src/plugins/source-transform.d.ts",
108
+ "default": "./src/plugins/source-transform.js"
109
+ },
110
110
  "./build/build-types": {
111
111
  "types": "./src/build/build-types.d.ts",
112
112
  "default": "./src/build/build-types.js"
@@ -115,32 +115,23 @@
115
115
  "types": "./src/build/build-adapter.d.ts",
116
116
  "default": "./src/build/build-adapter.js"
117
117
  },
118
- "./adapters/bun/client-bridge": {
119
- "types": "./src/adapters/bun/client-bridge.d.ts",
120
- "default": "./src/adapters/bun/client-bridge.js"
118
+ "./build/runtime-specifier-alias-plugin": {
119
+ "types": "./src/build/runtime-specifier-alias-plugin.d.ts",
120
+ "default": "./src/build/runtime-specifier-alias-plugin.js"
121
121
  },
122
- "./node": {
123
- "types": "./src/adapters/node/index.d.ts",
124
- "default": "./src/adapters/node/index.js"
122
+ "./build/runtime-specifier-aliases": {
123
+ "types": "./src/build/runtime-specifier-aliases.d.ts",
124
+ "default": "./src/build/runtime-specifier-aliases.js"
125
125
  },
126
- "./node/server-adapter": {
127
- "types": "./src/adapters/node/server-adapter.d.ts",
128
- "default": "./src/adapters/node/server-adapter.js"
129
- },
130
- "./node/create-app": {
131
- "types": "./src/adapters/node/create-app.d.ts",
132
- "default": "./src/adapters/node/create-app.js"
126
+ "./plugins/foreign-jsx-override-plugin": {
127
+ "types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
128
+ "default": "./src/plugins/foreign-jsx-override-plugin.js"
133
129
  },
134
130
  "./html": {
135
131
  "import": "./src/utils/html.js",
136
132
  "default": "./src/utils/html.js",
137
133
  "types": "./src/utils/html.d.ts"
138
134
  },
139
- "./css": {
140
- "import": "./src/utils/css.js",
141
- "default": "./src/utils/css.js",
142
- "types": "./src/utils/css.d.ts"
143
- },
144
135
  "./hash": {
145
136
  "import": "./src/utils/hash.js",
146
137
  "default": "./src/utils/hash.js",
@@ -155,18 +146,29 @@
155
146
  "default": "./src/integrations/ghtml/ghtml.plugin.js"
156
147
  },
157
148
  "./create-app.ts": {
158
- "types": "./src/create-app.d.ts",
159
- "default": "./src/create-app.js"
149
+ "import": "./src/adapters/create-app.js",
150
+ "types": "./src/adapters/create-app.d.ts",
151
+ "default": "./src/adapters/create-app.js"
160
152
  },
161
153
  "./route-renderer/integration-renderer.ts": {
162
- "types": "./src/route-renderer/integration-renderer.d.ts",
163
- "default": "./src/route-renderer/integration-renderer.js"
154
+ "types": "./src/route-renderer/orchestration/integration-renderer.d.ts",
155
+ "default": "./src/route-renderer/orchestration/integration-renderer.js"
164
156
  },
165
- "./errors/locals-access-error.ts": {
166
- "types": "./src/errors/locals-access-error.d.ts",
167
- "default": "./src/errors/locals-access-error.js"
157
+ "./route-renderer/component-render-context.ts": {
158
+ "import": "./src/route-renderer/orchestration/component-render-context.js",
159
+ "types": "./src/route-renderer/orchestration/component-render-context.d.ts",
160
+ "default": "./src/route-renderer/orchestration/component-render-context.js"
161
+ },
162
+ "./router/navigation-coordinator.ts": {
163
+ "types": "./src/router/client/navigation-coordinator.d.ts",
164
+ "default": "./src/router/client/navigation-coordinator.js"
165
+ },
166
+ "./router/link-intent.ts": {
167
+ "types": "./src/router/client/link-intent.d.ts",
168
+ "default": "./src/router/client/link-intent.js"
168
169
  },
169
170
  "./eco.ts": {
171
+ "browser": "./src/eco/eco.browser.js",
170
172
  "types": "./src/eco/eco.d.ts",
171
173
  "default": "./src/eco/eco.js"
172
174
  },
@@ -181,43 +183,28 @@
181
183
  "default": "./src/config/config-builder.js"
182
184
  },
183
185
  "./constants.ts": {
184
- "types": "./src/constants.d.ts",
185
- "default": "./src/constants.js"
186
+ "types": "./src/config/constants.d.ts",
187
+ "default": "./src/config/constants.js"
186
188
  },
187
189
  "./bun.ts": {
188
190
  "types": "./src/adapters/bun/index.d.ts",
189
191
  "default": "./src/adapters/bun/index.js"
190
192
  },
191
- "./bun/create-app.ts": {
192
- "types": "./src/adapters/bun/create-app.d.ts",
193
- "default": "./src/adapters/bun/create-app.js"
194
- },
195
- "./bun/define-api-handler.ts": {
196
- "types": "./src/adapters/bun/define-api-handler.d.ts",
197
- "default": "./src/adapters/bun/define-api-handler.js"
198
- },
199
193
  "./hmr/hmr-strategy.ts": {
200
194
  "types": "./src/hmr/hmr-strategy.d.ts",
201
195
  "default": "./src/hmr/hmr-strategy.js"
202
196
  },
203
- "./internal-types.ts": {
204
- "types": "./src/internal-types.d.ts"
205
- },
206
- "./services/asset-processing-service.ts": {
207
- "types": "./src/services/asset-processing-service/index.d.ts",
208
- "default": "./src/services/asset-processing-service/index.js"
197
+ "./hmr/client/hmr-runtime.ts": {
198
+ "types": "./src/hmr/client/hmr-runtime.d.ts",
199
+ "default": "./src/hmr/client/hmr-runtime.js"
209
200
  },
210
- "./utils/deep-merge.ts": {
211
- "types": "./src/utils/deep-merge.d.ts",
212
- "default": "./src/utils/deep-merge.js"
201
+ "./dev/host-runtime.ts": {
202
+ "types": "./src/dev/host-runtime.d.ts",
203
+ "default": "./src/dev/host-runtime.js"
213
204
  },
214
- "./utils/invariant.ts": {
215
- "types": "./src/utils/invariant.d.ts",
216
- "default": "./src/utils/invariant.js"
217
- },
218
- "./utils/parse-cli-args.ts": {
219
- "types": "./src/utils/parse-cli-args.d.ts",
220
- "default": "./src/utils/parse-cli-args.js"
205
+ "./services/asset-processing-service.ts": {
206
+ "types": "./src/services/assets/asset-processing-service/index.d.ts",
207
+ "default": "./src/services/assets/asset-processing-service/index.js"
221
208
  },
222
209
  "./plugins/processor.ts": {
223
210
  "types": "./src/plugins/processor.d.ts",
@@ -227,6 +214,10 @@
227
214
  "types": "./src/plugins/integration-plugin.d.ts",
228
215
  "default": "./src/plugins/integration-plugin.js"
229
216
  },
217
+ "./plugins/source-transform.ts": {
218
+ "types": "./src/plugins/source-transform.d.ts",
219
+ "default": "./src/plugins/source-transform.js"
220
+ },
230
221
  "./build/build-types.ts": {
231
222
  "types": "./src/build/build-types.d.ts",
232
223
  "default": "./src/build/build-types.js"
@@ -235,32 +226,23 @@
235
226
  "types": "./src/build/build-adapter.d.ts",
236
227
  "default": "./src/build/build-adapter.js"
237
228
  },
238
- "./adapters/bun/client-bridge.ts": {
239
- "types": "./src/adapters/bun/client-bridge.d.ts",
240
- "default": "./src/adapters/bun/client-bridge.js"
229
+ "./build/runtime-specifier-alias-plugin.ts": {
230
+ "types": "./src/build/runtime-specifier-alias-plugin.d.ts",
231
+ "default": "./src/build/runtime-specifier-alias-plugin.js"
241
232
  },
242
- "./node.ts": {
243
- "types": "./src/adapters/node/index.d.ts",
244
- "default": "./src/adapters/node/index.js"
233
+ "./build/runtime-specifier-aliases.ts": {
234
+ "types": "./src/build/runtime-specifier-aliases.d.ts",
235
+ "default": "./src/build/runtime-specifier-aliases.js"
245
236
  },
246
- "./node/server-adapter.ts": {
247
- "types": "./src/adapters/node/server-adapter.d.ts",
248
- "default": "./src/adapters/node/server-adapter.js"
249
- },
250
- "./node/create-app.ts": {
251
- "types": "./src/adapters/node/create-app.d.ts",
252
- "default": "./src/adapters/node/create-app.js"
237
+ "./plugins/foreign-jsx-override-plugin.ts": {
238
+ "types": "./src/plugins/foreign-jsx-override-plugin.d.ts",
239
+ "default": "./src/plugins/foreign-jsx-override-plugin.js"
253
240
  },
254
241
  "./html.ts": {
255
242
  "import": "./src/utils/html.js",
256
243
  "default": "./src/utils/html.js",
257
244
  "types": "./src/utils/html.d.ts"
258
245
  },
259
- "./css.ts": {
260
- "import": "./src/utils/css.js",
261
- "default": "./src/utils/css.js",
262
- "types": "./src/utils/css.d.ts"
263
- },
264
246
  "./hash.ts": {
265
247
  "import": "./src/utils/hash.js",
266
248
  "default": "./src/utils/hash.js",
@@ -0,0 +1,39 @@
1
+ # Runtime Adapters
2
+
3
+ This directory contains the runtime-host integration layer for Ecopages.
4
+
5
+ ## Purpose
6
+
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
+
9
+ They are responsible for:
10
+
11
+ - starting and stopping runtime-specific servers or thin hosts
12
+ - delegating startup into framework-owned loaders and services
13
+ - bridging runtime-specific request/response or HMR transport details
14
+ - keeping host/runtime transport details out of generic core orchestration
15
+
16
+ They are not responsible for:
17
+
18
+ - deciding plugin lifecycle ordering
19
+ - owning server-module semantics
20
+ - owning browser bundling policy
21
+ - owning route rendering semantics
22
+
23
+ ## Main Areas
24
+
25
+ - `bun/`: Bun server adapter, lifecycle coordination, bridge, and HMR transport
26
+ - `node/`: internal Node compatibility adapter pieces used by the CLI thin-host path
27
+ - `shared/`: runtime-neutral adapter helpers used by both hosts
28
+
29
+ ## Ownership Boundary
30
+
31
+ The adapter layer is transport-oriented.
32
+
33
+ Core services still own:
34
+
35
+ - config finalization
36
+ - build-manifest assembly
37
+ - server loading
38
+ - invalidation classification
39
+ - route rendering orchestration