@ecopages/core 0.2.0-alpha.26 → 0.2.0-alpha.27

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 (550) hide show
  1. package/README.md +63 -7
  2. package/package.json +73 -249
  3. package/src/adapters/abstract/application-adapter.test.ts +172 -0
  4. package/src/adapters/abstract/application-adapter.ts +379 -0
  5. package/src/adapters/abstract/router-adapter.ts +30 -0
  6. package/src/adapters/abstract/server-adapter.ts +79 -0
  7. package/src/adapters/bun/client-bridge.ts +62 -0
  8. package/src/adapters/bun/create-app.ts +232 -0
  9. package/src/adapters/bun/hmr-manager.test.ts +265 -0
  10. package/src/adapters/bun/hmr-manager.ts +383 -0
  11. package/src/adapters/bun/index.ts +2 -0
  12. package/src/adapters/bun/server-adapter.ts +526 -0
  13. package/src/adapters/bun/server-lifecycle.ts +124 -0
  14. package/src/adapters/create-app.test.ts +10 -0
  15. package/src/adapters/create-app.ts +91 -0
  16. package/src/adapters/index.ts +2 -0
  17. package/src/adapters/node/create-app.test.ts +53 -0
  18. package/src/adapters/node/create-app.ts +183 -0
  19. package/src/adapters/node/node-client-bridge.test.ts +198 -0
  20. package/src/adapters/node/node-client-bridge.ts +79 -0
  21. package/src/adapters/node/node-hmr-manager.test.ts +320 -0
  22. package/src/adapters/node/node-hmr-manager.ts +355 -0
  23. package/src/adapters/node/server-adapter.ts +502 -0
  24. package/src/adapters/node/static-content-server.test.ts +60 -0
  25. package/src/adapters/node/static-content-server.ts +239 -0
  26. package/src/adapters/shared/api-response.test.ts +97 -0
  27. package/src/adapters/shared/api-response.ts +104 -0
  28. package/src/adapters/shared/application-adapter.ts +199 -0
  29. package/src/adapters/shared/define-api-handler.ts +66 -0
  30. package/src/adapters/shared/explicit-static-render-preparation.ts +58 -0
  31. package/src/adapters/shared/explicit-static-route-matcher.test.ts +381 -0
  32. package/src/adapters/shared/explicit-static-route-matcher.ts +131 -0
  33. package/src/adapters/shared/file-route-middleware-pipeline.test.ts +85 -0
  34. package/src/adapters/shared/file-route-middleware-pipeline.ts +118 -0
  35. package/src/adapters/shared/fs-server-response-factory.test.ts +176 -0
  36. package/src/adapters/shared/fs-server-response-factory.ts +96 -0
  37. package/src/adapters/shared/fs-server-response-matcher.test.ts +311 -0
  38. package/src/adapters/shared/fs-server-response-matcher.ts +240 -0
  39. package/src/adapters/shared/hmr-entrypoint-registrar.ts +149 -0
  40. package/src/adapters/shared/hmr-html-response.ts +52 -0
  41. package/src/adapters/shared/hmr-manager.contract.test.ts +228 -0
  42. package/src/adapters/shared/hmr-manager.dispatch.test.ts +220 -0
  43. package/src/adapters/shared/render-context.test.ts +150 -0
  44. package/src/adapters/shared/render-context.ts +123 -0
  45. package/src/adapters/shared/runtime-bootstrap.ts +79 -0
  46. package/src/adapters/shared/server-adapter.test.ts +130 -0
  47. package/src/adapters/shared/server-adapter.ts +562 -0
  48. package/src/adapters/shared/server-route-handler.test.ts +111 -0
  49. package/src/adapters/shared/server-route-handler.ts +153 -0
  50. package/src/adapters/shared/server-static-builder.test.ts +338 -0
  51. package/src/adapters/shared/server-static-builder.ts +170 -0
  52. package/src/build/build-adapter-serialization.test.ts +281 -0
  53. package/src/build/build-adapter.test.ts +1240 -0
  54. package/src/build/build-adapter.ts +1012 -0
  55. package/src/build/build-manifest.ts +54 -0
  56. package/src/build/build-types.ts +83 -0
  57. package/src/build/dev-build-coordinator.ts +220 -0
  58. package/src/build/esbuild-build-adapter.ts +660 -0
  59. package/src/build/runtime-build-executor.test.ts +81 -0
  60. package/src/build/runtime-build-executor.ts +40 -0
  61. package/src/build/runtime-specifier-alias-plugin.test.ts +67 -0
  62. package/src/build/runtime-specifier-alias-plugin.ts +62 -0
  63. package/src/build/runtime-specifier-aliases.ts +135 -0
  64. package/src/config/README.md +1 -1
  65. package/src/config/config-builder.test.ts +442 -0
  66. package/src/config/config-builder.ts +737 -0
  67. package/src/config/config-builder.typecheck.test.ts +96 -0
  68. package/src/config/{constants.d.ts → constants.ts} +22 -13
  69. package/src/dev/host-runtime.ts +34 -0
  70. package/src/dev/sc-server.ts +143 -0
  71. package/src/eco/eco.browser.test.ts +43 -0
  72. package/src/eco/eco.browser.ts +118 -0
  73. package/src/eco/eco.test.ts +654 -0
  74. package/src/eco/eco.ts +205 -0
  75. package/src/eco/eco.types.ts +221 -0
  76. package/src/eco/eco.utils.test.ts +219 -0
  77. package/src/eco/eco.utils.ts +5 -0
  78. package/src/eco/global-injector-map.test.ts +42 -0
  79. package/src/eco/global-injector-map.ts +112 -0
  80. package/src/eco/lazy-injector-map.test.ts +66 -0
  81. package/src/eco/lazy-injector-map.ts +120 -0
  82. package/src/eco/module-dependencies.test.ts +30 -0
  83. package/src/eco/module-dependencies.ts +75 -0
  84. package/src/errors/http-error.test.ts +134 -0
  85. package/src/errors/http-error.ts +72 -0
  86. package/src/errors/index.ts +3 -0
  87. package/src/errors/locals-access-error.ts +7 -0
  88. package/src/global/app-logger.ts +4 -0
  89. package/src/global/utils.test.ts +12 -0
  90. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-have-HMR-script-injected-in-page-1.png +0 -0
  91. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
  92. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
  93. package/src/hmr/client/hmr-runtime.ts +162 -0
  94. package/src/hmr/hmr-strategy.test.ts +124 -0
  95. package/src/hmr/hmr-strategy.ts +177 -0
  96. package/src/hmr/hmr.postcss.test.e2e.ts +41 -0
  97. package/src/hmr/hmr.test.e2e.ts +66 -0
  98. package/src/hmr/strategies/default-hmr-strategy.ts +60 -0
  99. package/src/hmr/strategies/js-hmr-strategy.test.ts +334 -0
  100. package/src/hmr/strategies/js-hmr-strategy.ts +314 -0
  101. package/src/index.browser.ts +3 -0
  102. package/src/index.ts +15 -0
  103. package/src/integrations/ghtml/ghtml-renderer.test.ts +253 -0
  104. package/src/integrations/ghtml/ghtml-renderer.ts +87 -0
  105. package/src/integrations/ghtml/ghtml.constants.ts +1 -0
  106. package/src/integrations/ghtml/ghtml.plugin.ts +28 -0
  107. package/src/plugins/alias-resolver-plugin.test.ts +41 -0
  108. package/src/plugins/alias-resolver-plugin.ts +63 -0
  109. package/src/plugins/eco-component-meta-plugin.test.ts +406 -0
  110. package/src/plugins/eco-component-meta-plugin.ts +494 -0
  111. package/src/plugins/foreign-jsx-override-plugin.test.ts +65 -0
  112. package/src/plugins/foreign-jsx-override-plugin.ts +67 -0
  113. package/src/plugins/integration-plugin.test.ts +151 -0
  114. package/src/plugins/integration-plugin.ts +323 -0
  115. package/src/plugins/processor.test.ts +148 -0
  116. package/src/plugins/processor.ts +257 -0
  117. package/src/plugins/{runtime-capability.d.ts → runtime-capability.ts} +8 -3
  118. package/src/plugins/source-transform.test.ts +82 -0
  119. package/src/plugins/source-transform.ts +123 -0
  120. package/src/route-renderer/GRAPH.md +81 -289
  121. package/src/route-renderer/README.md +67 -105
  122. package/src/route-renderer/orchestration/component-render-context.ts +325 -0
  123. package/src/route-renderer/orchestration/declared-ownership-graph.ts +62 -0
  124. package/src/route-renderer/orchestration/foreign-subtree-execution.service.ts +383 -0
  125. package/src/route-renderer/orchestration/integration-renderer.test.ts +2085 -0
  126. package/src/route-renderer/orchestration/integration-renderer.ts +1244 -0
  127. package/src/route-renderer/orchestration/ownership-planning.service.ts +97 -0
  128. package/src/route-renderer/orchestration/ownership-validation.service.ts +76 -0
  129. package/src/route-renderer/orchestration/processed-asset-dedupe.ts +25 -0
  130. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.test.ts +324 -0
  131. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.ts +294 -0
  132. package/src/route-renderer/orchestration/render-output.utils.ts +310 -0
  133. package/src/route-renderer/orchestration/route-render-orchestrator.prepare-render-options.test.ts +644 -0
  134. package/src/route-renderer/orchestration/route-render-orchestrator.test.ts +265 -0
  135. package/src/route-renderer/orchestration/route-render-orchestrator.ts +592 -0
  136. package/src/route-renderer/orchestration/template-serialization.test.ts +110 -0
  137. package/src/route-renderer/orchestration/template-serialization.ts +117 -0
  138. package/src/route-renderer/page-loading/component-dependency-collection.ts +202 -0
  139. package/src/route-renderer/page-loading/declared-asset-collection.ts +153 -0
  140. package/src/route-renderer/page-loading/dependency-resolver.test.ts +761 -0
  141. package/src/route-renderer/page-loading/dependency-resolver.ts +144 -0
  142. package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +75 -0
  143. package/src/route-renderer/page-loading/lazy-entry-collection.ts +167 -0
  144. package/src/route-renderer/page-loading/lazy-trigger-planning.ts +74 -0
  145. package/src/route-renderer/page-loading/module-declaration-aggregation.ts +60 -0
  146. package/src/route-renderer/page-loading/module-declaration-scripts.ts +16 -0
  147. package/src/route-renderer/page-loading/page-dependency-bundling.ts +244 -0
  148. package/src/route-renderer/page-loading/page-module-loader.test.ts +183 -0
  149. package/src/route-renderer/page-loading/page-module-loader.ts +184 -0
  150. package/src/route-renderer/route-renderer.ts +133 -0
  151. package/src/router/README.md +16 -19
  152. package/src/router/client/link-intent.test.browser.ts +51 -0
  153. package/src/router/client/link-intent.ts +92 -0
  154. package/src/router/client/navigation-coordinator.test.ts +237 -0
  155. package/src/router/client/navigation-coordinator.ts +453 -0
  156. package/src/router/server/route-registry.test.ts +176 -0
  157. package/src/router/server/route-registry.ts +382 -0
  158. package/src/services/README.md +1 -2
  159. package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +66 -0
  160. package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +473 -0
  161. package/src/services/assets/asset-processing-service/asset-processing.service.ts +344 -0
  162. package/src/services/assets/asset-processing-service/asset.factory.test.ts +63 -0
  163. package/src/services/assets/asset-processing-service/asset.factory.ts +105 -0
  164. package/src/services/assets/asset-processing-service/assets.types.ts +128 -0
  165. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +74 -0
  166. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +96 -0
  167. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +67 -0
  168. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +78 -0
  169. package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +104 -0
  170. package/src/services/assets/asset-processing-service/index.ts +6 -0
  171. package/src/services/assets/asset-processing-service/page-package.test.ts +100 -0
  172. package/src/services/assets/asset-processing-service/page-package.ts +93 -0
  173. package/src/services/assets/asset-processing-service/{processor.interface.d.ts → processor.interface.ts} +10 -5
  174. package/src/services/assets/asset-processing-service/processor.registry.ts +18 -0
  175. package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +59 -0
  176. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +83 -0
  177. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +173 -0
  178. package/src/services/assets/asset-processing-service/processors/index.ts +5 -0
  179. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +195 -0
  180. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +137 -0
  181. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +326 -0
  182. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +116 -0
  183. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +227 -0
  184. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +89 -0
  185. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +261 -0
  186. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +72 -0
  187. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +83 -0
  188. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +65 -0
  189. package/src/services/assets/browser-bundle.service.test.ts +66 -0
  190. package/src/services/assets/browser-bundle.service.ts +109 -0
  191. package/src/services/cache/cache.types.ts +126 -0
  192. package/src/services/cache/index.ts +18 -0
  193. package/src/services/cache/memory-cache-store.test.ts +225 -0
  194. package/src/services/cache/memory-cache-store.ts +130 -0
  195. package/src/services/cache/page-cache-service.test.ts +175 -0
  196. package/src/services/cache/page-cache-service.ts +202 -0
  197. package/src/services/cache/page-request-cache-coordinator.service.test.ts +79 -0
  198. package/src/services/cache/page-request-cache-coordinator.service.ts +131 -0
  199. package/src/services/html/html-rewriter-provider.service.test.ts +183 -0
  200. package/src/services/html/html-rewriter-provider.service.ts +104 -0
  201. package/src/services/html/html-transformer.service.test.ts +476 -0
  202. package/src/services/html/html-transformer.service.ts +275 -0
  203. package/src/services/invalidation/development-invalidation.service.test.ts +87 -0
  204. package/src/services/invalidation/development-invalidation.service.ts +262 -0
  205. package/src/services/module-loading/app-module-loader.service.ts +9 -0
  206. package/src/services/module-loading/app-server-module-transpiler.service.test.ts +130 -0
  207. package/src/services/module-loading/app-server-module-transpiler.service.ts +141 -0
  208. package/src/services/module-loading/host-module-loader-registry.ts +15 -0
  209. package/src/services/module-loading/{module-loading-types.d.ts → module-loading-types.ts} +1 -0
  210. package/src/services/module-loading/node-bootstrap-plugin.test.ts +335 -0
  211. package/src/services/module-loading/node-bootstrap-plugin.ts +311 -0
  212. package/src/services/module-loading/page-module-import.service.test.ts +504 -0
  213. package/src/services/module-loading/page-module-import.service.ts +251 -0
  214. package/src/services/module-loading/server-module-transpiler.service.test.ts +243 -0
  215. package/src/services/module-loading/server-module-transpiler.service.ts +104 -0
  216. package/src/services/module-loading/source-module-support.ts +19 -0
  217. package/src/services/runtime-state/dev-graph.service.ts +217 -0
  218. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +136 -0
  219. package/src/services/runtime-state/server-invalidation-state.service.ts +68 -0
  220. package/src/services/validation/schema-validation-service.test.ts +223 -0
  221. package/src/services/validation/schema-validation-service.ts +204 -0
  222. package/src/services/validation/{standard-schema.types.d.ts → standard-schema.types.ts} +20 -17
  223. package/src/static-site-generator/static-site-generator.test.ts +408 -0
  224. package/src/static-site-generator/static-site-generator.ts +445 -0
  225. package/src/types/internal-types.ts +243 -0
  226. package/src/types/public-types.ts +1459 -0
  227. package/src/utils/deep-merge.test.ts +114 -0
  228. package/src/utils/deep-merge.ts +47 -0
  229. package/src/utils/hash.ts +5 -0
  230. package/src/utils/html-escaping.ts +9 -0
  231. package/src/utils/invariant.test.ts +22 -0
  232. package/src/utils/invariant.ts +15 -0
  233. package/src/utils/locals-utils.ts +37 -0
  234. package/src/utils/parse-cli-args.test.ts +69 -0
  235. package/src/utils/parse-cli-args.ts +105 -0
  236. package/src/utils/path-utils.module.ts +14 -0
  237. package/src/utils/path-utils.test.ts +15 -0
  238. package/src/utils/resolve-work-dir.ts +45 -0
  239. package/src/utils/runtime.ts +44 -0
  240. package/src/utils/server-utils.module.ts +67 -0
  241. package/src/utils/server-utils.test.ts +38 -0
  242. package/src/watchers/project-watcher.integration.test.ts +337 -0
  243. package/src/watchers/project-watcher.test-helpers.ts +42 -0
  244. package/src/watchers/project-watcher.test.ts +768 -0
  245. package/src/watchers/project-watcher.ts +357 -0
  246. package/CHANGELOG.md +0 -66
  247. package/src/adapters/abstract/application-adapter.d.ts +0 -194
  248. package/src/adapters/abstract/application-adapter.js +0 -121
  249. package/src/adapters/abstract/router-adapter.d.ts +0 -26
  250. package/src/adapters/abstract/router-adapter.js +0 -5
  251. package/src/adapters/abstract/server-adapter.d.ts +0 -69
  252. package/src/adapters/abstract/server-adapter.js +0 -15
  253. package/src/adapters/bun/client-bridge.d.ts +0 -34
  254. package/src/adapters/bun/client-bridge.js +0 -48
  255. package/src/adapters/bun/create-app.d.ts +0 -52
  256. package/src/adapters/bun/create-app.js +0 -116
  257. package/src/adapters/bun/hmr-manager.d.ts +0 -143
  258. package/src/adapters/bun/hmr-manager.js +0 -333
  259. package/src/adapters/bun/index.d.ts +0 -2
  260. package/src/adapters/bun/index.js +0 -8
  261. package/src/adapters/bun/server-adapter.d.ts +0 -155
  262. package/src/adapters/bun/server-adapter.js +0 -374
  263. package/src/adapters/bun/server-lifecycle.d.ts +0 -63
  264. package/src/adapters/bun/server-lifecycle.js +0 -92
  265. package/src/adapters/create-app.d.ts +0 -20
  266. package/src/adapters/create-app.js +0 -66
  267. package/src/adapters/index.d.ts +0 -2
  268. package/src/adapters/index.js +0 -8
  269. package/src/adapters/node/create-app.d.ts +0 -18
  270. package/src/adapters/node/create-app.js +0 -149
  271. package/src/adapters/node/node-client-bridge.d.ts +0 -26
  272. package/src/adapters/node/node-client-bridge.js +0 -66
  273. package/src/adapters/node/node-hmr-manager.d.ts +0 -133
  274. package/src/adapters/node/node-hmr-manager.js +0 -311
  275. package/src/adapters/node/server-adapter.d.ts +0 -162
  276. package/src/adapters/node/server-adapter.js +0 -368
  277. package/src/adapters/node/static-content-server.d.ts +0 -60
  278. package/src/adapters/node/static-content-server.js +0 -194
  279. package/src/adapters/shared/api-response.d.ts +0 -52
  280. package/src/adapters/shared/api-response.js +0 -96
  281. package/src/adapters/shared/application-adapter.d.ts +0 -18
  282. package/src/adapters/shared/application-adapter.js +0 -90
  283. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  284. package/src/adapters/shared/define-api-handler.js +0 -15
  285. package/src/adapters/shared/explicit-static-route-matcher.d.ts +0 -38
  286. package/src/adapters/shared/explicit-static-route-matcher.js +0 -103
  287. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +0 -65
  288. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -99
  289. package/src/adapters/shared/fs-server-response-factory.d.ts +0 -19
  290. package/src/adapters/shared/fs-server-response-factory.js +0 -97
  291. package/src/adapters/shared/fs-server-response-matcher.d.ts +0 -67
  292. package/src/adapters/shared/fs-server-response-matcher.js +0 -147
  293. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  294. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  295. package/src/adapters/shared/hmr-html-response.d.ts +0 -22
  296. package/src/adapters/shared/hmr-html-response.js +0 -32
  297. package/src/adapters/shared/render-context.d.ts +0 -15
  298. package/src/adapters/shared/render-context.js +0 -72
  299. package/src/adapters/shared/runtime-bootstrap.d.ts +0 -38
  300. package/src/adapters/shared/runtime-bootstrap.js +0 -43
  301. package/src/adapters/shared/server-adapter.d.ts +0 -97
  302. package/src/adapters/shared/server-adapter.js +0 -390
  303. package/src/adapters/shared/server-route-handler.d.ts +0 -89
  304. package/src/adapters/shared/server-route-handler.js +0 -111
  305. package/src/adapters/shared/server-static-builder.d.ts +0 -71
  306. package/src/adapters/shared/server-static-builder.js +0 -100
  307. package/src/build/build-adapter.d.ts +0 -239
  308. package/src/build/build-adapter.js +0 -642
  309. package/src/build/build-manifest.d.ts +0 -27
  310. package/src/build/build-manifest.js +0 -30
  311. package/src/build/build-types.d.ts +0 -57
  312. package/src/build/build-types.js +0 -0
  313. package/src/build/dev-build-coordinator.d.ts +0 -72
  314. package/src/build/dev-build-coordinator.js +0 -154
  315. package/src/build/esbuild-build-adapter.d.ts +0 -78
  316. package/src/build/esbuild-build-adapter.js +0 -505
  317. package/src/build/runtime-build-executor.d.ts +0 -14
  318. package/src/build/runtime-build-executor.js +0 -22
  319. package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
  320. package/src/build/runtime-specifier-alias-plugin.js +0 -35
  321. package/src/build/runtime-specifier-aliases.d.ts +0 -5
  322. package/src/build/runtime-specifier-aliases.js +0 -95
  323. package/src/config/config-builder.d.ts +0 -252
  324. package/src/config/config-builder.js +0 -603
  325. package/src/config/constants.js +0 -25
  326. package/src/dev/sc-server.d.ts +0 -30
  327. package/src/dev/sc-server.js +0 -111
  328. package/src/eco/eco.browser.d.ts +0 -2
  329. package/src/eco/eco.browser.js +0 -83
  330. package/src/eco/eco.d.ts +0 -9
  331. package/src/eco/eco.js +0 -85
  332. package/src/eco/eco.types.d.ts +0 -178
  333. package/src/eco/eco.types.js +0 -0
  334. package/src/eco/eco.utils.d.ts +0 -1
  335. package/src/eco/eco.utils.js +0 -10
  336. package/src/eco/global-injector-map.d.ts +0 -16
  337. package/src/eco/global-injector-map.js +0 -80
  338. package/src/eco/lazy-injector-map.d.ts +0 -8
  339. package/src/eco/lazy-injector-map.js +0 -70
  340. package/src/eco/module-dependencies.d.ts +0 -18
  341. package/src/eco/module-dependencies.js +0 -49
  342. package/src/errors/http-error.d.ts +0 -31
  343. package/src/errors/http-error.js +0 -50
  344. package/src/errors/index.d.ts +0 -2
  345. package/src/errors/index.js +0 -4
  346. package/src/errors/locals-access-error.d.ts +0 -4
  347. package/src/errors/locals-access-error.js +0 -9
  348. package/src/global/app-logger.d.ts +0 -2
  349. package/src/global/app-logger.js +0 -6
  350. package/src/hmr/client/hmr-runtime.d.ts +0 -5
  351. package/src/hmr/client/hmr-runtime.js +0 -117
  352. package/src/hmr/hmr-strategy.d.ts +0 -162
  353. package/src/hmr/hmr-strategy.js +0 -44
  354. package/src/hmr/hmr.postcss.test.e2e.d.ts +0 -1
  355. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  356. package/src/hmr/hmr.test.e2e.d.ts +0 -1
  357. package/src/hmr/hmr.test.e2e.js +0 -43
  358. package/src/hmr/strategies/default-hmr-strategy.d.ts +0 -43
  359. package/src/hmr/strategies/default-hmr-strategy.js +0 -34
  360. package/src/hmr/strategies/js-hmr-strategy.d.ts +0 -139
  361. package/src/hmr/strategies/js-hmr-strategy.js +0 -178
  362. package/src/index.browser.d.ts +0 -3
  363. package/src/index.browser.js +0 -4
  364. package/src/index.d.ts +0 -6
  365. package/src/index.js +0 -21
  366. package/src/integrations/ghtml/ghtml-renderer.d.ts +0 -20
  367. package/src/integrations/ghtml/ghtml-renderer.js +0 -63
  368. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  369. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  370. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  371. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  372. package/src/plugins/alias-resolver-plugin.d.ts +0 -2
  373. package/src/plugins/alias-resolver-plugin.js +0 -53
  374. package/src/plugins/eco-component-meta-plugin.d.ts +0 -108
  375. package/src/plugins/eco-component-meta-plugin.js +0 -163
  376. package/src/plugins/foreign-jsx-override-plugin.d.ts +0 -31
  377. package/src/plugins/foreign-jsx-override-plugin.js +0 -35
  378. package/src/plugins/integration-plugin.d.ts +0 -219
  379. package/src/plugins/integration-plugin.js +0 -196
  380. package/src/plugins/processor.d.ts +0 -95
  381. package/src/plugins/processor.js +0 -136
  382. package/src/plugins/runtime-capability.js +0 -0
  383. package/src/plugins/source-transform.d.ts +0 -46
  384. package/src/plugins/source-transform.js +0 -71
  385. package/src/route-renderer/orchestration/boundary-planning.service.d.ts +0 -25
  386. package/src/route-renderer/orchestration/boundary-planning.service.js +0 -97
  387. package/src/route-renderer/orchestration/component-render-context.d.ts +0 -83
  388. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  389. package/src/route-renderer/orchestration/integration-renderer.d.ts +0 -556
  390. package/src/route-renderer/orchestration/integration-renderer.js +0 -932
  391. package/src/route-renderer/orchestration/page-packaging.service.d.ts +0 -16
  392. package/src/route-renderer/orchestration/page-packaging.service.js +0 -66
  393. package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +0 -2
  394. package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -23
  395. package/src/route-renderer/orchestration/queued-boundary-runtime.service.d.ts +0 -89
  396. package/src/route-renderer/orchestration/queued-boundary-runtime.service.js +0 -155
  397. package/src/route-renderer/orchestration/render-execution.service.d.ts +0 -43
  398. package/src/route-renderer/orchestration/render-execution.service.js +0 -106
  399. package/src/route-renderer/orchestration/render-output.utils.d.ts +0 -66
  400. package/src/route-renderer/orchestration/render-output.utils.js +0 -171
  401. package/src/route-renderer/orchestration/render-preparation.service.d.ts +0 -120
  402. package/src/route-renderer/orchestration/render-preparation.service.js +0 -364
  403. package/src/route-renderer/orchestration/route-shell-composer.service.d.ts +0 -50
  404. package/src/route-renderer/orchestration/route-shell-composer.service.js +0 -81
  405. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  406. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  407. package/src/route-renderer/page-loading/component-dependency-collection.d.ts +0 -37
  408. package/src/route-renderer/page-loading/component-dependency-collection.js +0 -125
  409. package/src/route-renderer/page-loading/declared-asset-collection.d.ts +0 -24
  410. package/src/route-renderer/page-loading/declared-asset-collection.js +0 -106
  411. package/src/route-renderer/page-loading/dependency-resolver.d.ts +0 -35
  412. package/src/route-renderer/page-loading/dependency-resolver.js +0 -117
  413. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +0 -11
  414. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +0 -57
  415. package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +0 -45
  416. package/src/route-renderer/page-loading/lazy-entry-collection.js +0 -105
  417. package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +0 -19
  418. package/src/route-renderer/page-loading/lazy-trigger-planning.js +0 -40
  419. package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +0 -5
  420. package/src/route-renderer/page-loading/module-declaration-aggregation.js +0 -33
  421. package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +0 -3
  422. package/src/route-renderer/page-loading/module-declaration-scripts.js +0 -18
  423. package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +0 -13
  424. package/src/route-renderer/page-loading/page-dependency-bundling.js +0 -115
  425. package/src/route-renderer/page-loading/page-module-loader.d.ts +0 -90
  426. package/src/route-renderer/page-loading/page-module-loader.js +0 -127
  427. package/src/route-renderer/route-renderer.d.ts +0 -67
  428. package/src/route-renderer/route-renderer.js +0 -103
  429. package/src/router/client/link-intent.js +0 -34
  430. package/src/router/client/link-intent.test.browser.d.ts +0 -1
  431. package/src/router/client/link-intent.test.browser.js +0 -43
  432. package/src/router/client/navigation-coordinator.d.ts +0 -169
  433. package/src/router/client/navigation-coordinator.js +0 -215
  434. package/src/router/server/fs-router-scanner.d.ts +0 -41
  435. package/src/router/server/fs-router-scanner.js +0 -161
  436. package/src/router/server/fs-router.d.ts +0 -26
  437. package/src/router/server/fs-router.js +0 -100
  438. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +0 -3
  439. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +0 -56
  440. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +0 -103
  441. package/src/services/assets/asset-processing-service/asset-processing.service.js +0 -285
  442. package/src/services/assets/asset-processing-service/asset.factory.d.ts +0 -17
  443. package/src/services/assets/asset-processing-service/asset.factory.js +0 -82
  444. package/src/services/assets/asset-processing-service/assets.types.d.ts +0 -100
  445. package/src/services/assets/asset-processing-service/assets.types.js +0 -0
  446. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +0 -55
  447. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +0 -49
  448. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +0 -20
  449. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +0 -41
  450. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +0 -30
  451. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +0 -65
  452. package/src/services/assets/asset-processing-service/index.d.ts +0 -5
  453. package/src/services/assets/asset-processing-service/index.js +0 -5
  454. package/src/services/assets/asset-processing-service/processor.interface.js +0 -6
  455. package/src/services/assets/asset-processing-service/processor.registry.d.ts +0 -8
  456. package/src/services/assets/asset-processing-service/processor.registry.js +0 -15
  457. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +0 -24
  458. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +0 -65
  459. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -22
  460. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +0 -136
  461. package/src/services/assets/asset-processing-service/processors/index.d.ts +0 -5
  462. package/src/services/assets/asset-processing-service/processors/index.js +0 -5
  463. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +0 -6
  464. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +0 -116
  465. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -9
  466. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +0 -91
  467. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -7
  468. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +0 -77
  469. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -8
  470. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -58
  471. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -9
  472. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +0 -67
  473. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -18
  474. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +0 -45
  475. package/src/services/assets/browser-bundle.service.d.ts +0 -73
  476. package/src/services/assets/browser-bundle.service.js +0 -41
  477. package/src/services/cache/cache.types.d.ts +0 -107
  478. package/src/services/cache/cache.types.js +0 -0
  479. package/src/services/cache/index.d.ts +0 -7
  480. package/src/services/cache/index.js +0 -7
  481. package/src/services/cache/memory-cache-store.d.ts +0 -42
  482. package/src/services/cache/memory-cache-store.js +0 -98
  483. package/src/services/cache/page-cache-service.d.ts +0 -70
  484. package/src/services/cache/page-cache-service.js +0 -152
  485. package/src/services/cache/page-request-cache-coordinator.service.d.ts +0 -75
  486. package/src/services/cache/page-request-cache-coordinator.service.js +0 -109
  487. package/src/services/html/html-rewriter-provider.service.d.ts +0 -37
  488. package/src/services/html/html-rewriter-provider.service.js +0 -68
  489. package/src/services/html/html-transformer.service.d.ts +0 -87
  490. package/src/services/html/html-transformer.service.js +0 -216
  491. package/src/services/invalidation/development-invalidation.service.d.ts +0 -74
  492. package/src/services/invalidation/development-invalidation.service.js +0 -190
  493. package/src/services/module-loading/app-module-loader.service.d.ts +0 -7
  494. package/src/services/module-loading/app-module-loader.service.js +0 -0
  495. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +0 -24
  496. package/src/services/module-loading/app-server-module-transpiler.service.js +0 -115
  497. package/src/services/module-loading/host-module-loader-registry.d.ts +0 -4
  498. package/src/services/module-loading/host-module-loader-registry.js +0 -15
  499. package/src/services/module-loading/module-loading-types.js +0 -0
  500. package/src/services/module-loading/node-bootstrap-plugin.d.ts +0 -42
  501. package/src/services/module-loading/node-bootstrap-plugin.js +0 -204
  502. package/src/services/module-loading/page-module-import.service.d.ts +0 -76
  503. package/src/services/module-loading/page-module-import.service.js +0 -170
  504. package/src/services/module-loading/server-module-transpiler.service.d.ts +0 -63
  505. package/src/services/module-loading/server-module-transpiler.service.js +0 -64
  506. package/src/services/module-loading/source-module-support.d.ts +0 -5
  507. package/src/services/module-loading/source-module-support.js +0 -8
  508. package/src/services/runtime-state/dev-graph.service.d.ts +0 -118
  509. package/src/services/runtime-state/dev-graph.service.js +0 -162
  510. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +0 -41
  511. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +0 -85
  512. package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +0 -69
  513. package/src/services/runtime-state/runtime-specifier-registry.service.js +0 -37
  514. package/src/services/runtime-state/server-invalidation-state.service.d.ts +0 -26
  515. package/src/services/runtime-state/server-invalidation-state.service.js +0 -35
  516. package/src/services/validation/schema-validation-service.d.ts +0 -122
  517. package/src/services/validation/schema-validation-service.js +0 -101
  518. package/src/services/validation/standard-schema.types.js +0 -0
  519. package/src/static-site-generator/static-site-generator.d.ts +0 -105
  520. package/src/static-site-generator/static-site-generator.js +0 -349
  521. package/src/types/internal-types.d.ts +0 -231
  522. package/src/types/internal-types.js +0 -0
  523. package/src/types/public-types.d.ts +0 -1257
  524. package/src/types/public-types.js +0 -0
  525. package/src/utils/deep-merge.d.ts +0 -14
  526. package/src/utils/deep-merge.js +0 -32
  527. package/src/utils/hash.d.ts +0 -1
  528. package/src/utils/hash.js +0 -7
  529. package/src/utils/html-escaping.d.ts +0 -7
  530. package/src/utils/html-escaping.js +0 -6
  531. package/src/utils/html.js +0 -4
  532. package/src/utils/invariant.d.ts +0 -5
  533. package/src/utils/invariant.js +0 -11
  534. package/src/utils/locals-utils.d.ts +0 -15
  535. package/src/utils/locals-utils.js +0 -24
  536. package/src/utils/parse-cli-args.d.ts +0 -27
  537. package/src/utils/parse-cli-args.js +0 -62
  538. package/src/utils/path-utils.module.d.ts +0 -5
  539. package/src/utils/path-utils.module.js +0 -14
  540. package/src/utils/resolve-work-dir.d.ts +0 -11
  541. package/src/utils/resolve-work-dir.js +0 -31
  542. package/src/utils/runtime.d.ts +0 -11
  543. package/src/utils/runtime.js +0 -40
  544. package/src/utils/server-utils.module.d.ts +0 -19
  545. package/src/utils/server-utils.module.js +0 -56
  546. package/src/watchers/project-watcher.d.ts +0 -136
  547. package/src/watchers/project-watcher.js +0 -275
  548. package/src/watchers/project-watcher.test-helpers.d.ts +0 -4
  549. package/src/watchers/project-watcher.test-helpers.js +0 -52
  550. /package/src/utils/{html.d.ts → html.ts} +0 -0
@@ -1,50 +0,0 @@
1
- import type { ComponentRenderInput, ComponentRenderResult, EcoComponent, HtmlTemplateProps, PageMetadataProps } from '../../types/public-types.js';
2
- import type { ProcessedAsset } from '../../services/assets/asset-processing-service/index.js';
3
- import type { RenderToResponseContext } from './integration-renderer.js';
4
- export interface RouteShellComposerCallbacks {
5
- hasForeignBoundaryDescendants(component: EcoComponent): boolean;
6
- createHtmlResponse(body: BodyInit, ctx: RenderToResponseContext): Response;
7
- renderComponentBoundary(input: ComponentRenderInput): Promise<ComponentRenderResult>;
8
- prepareViewDependencies(view: EcoComponent, layout?: EcoComponent): Promise<ProcessedAsset[]>;
9
- getHtmlTemplate(): Promise<EcoComponent<HtmlTemplateProps>>;
10
- resolveViewMetadata<P>(view: EcoComponent<P>, props: P): Promise<PageMetadataProps>;
11
- appendProcessedDependencies(...assetGroups: Array<readonly ProcessedAsset[] | undefined>): ProcessedAsset[];
12
- finalizeResolvedHtml(options: {
13
- html: string;
14
- partial?: boolean;
15
- componentRootAttributes?: Record<string, string>;
16
- documentAttributes?: Record<string, string>;
17
- transformHtml?: boolean;
18
- }): Promise<string>;
19
- docType: string;
20
- }
21
- export declare class RouteShellComposer {
22
- renderPartialViewResponse<P>(input: {
23
- view: EcoComponent<P>;
24
- props: P;
25
- ctx: RenderToResponseContext;
26
- renderInline?: () => Promise<BodyInit>;
27
- transformHtml?: (html: string) => string;
28
- }, callbacks: RouteShellComposerCallbacks): Promise<Response>;
29
- renderViewWithDocumentShell<P>(input: {
30
- view: EcoComponent<P>;
31
- props: P;
32
- ctx: RenderToResponseContext;
33
- layout?: EcoComponent;
34
- }, callbacks: RouteShellComposerCallbacks): Promise<Response>;
35
- renderPageWithDocumentShell(input: {
36
- page: {
37
- component: EcoComponent;
38
- props: Record<string, unknown>;
39
- };
40
- layout?: {
41
- component: EcoComponent;
42
- props?: Record<string, unknown>;
43
- };
44
- htmlTemplate: EcoComponent;
45
- metadata: PageMetadataProps;
46
- pageProps: Record<string, unknown>;
47
- documentProps?: Record<string, unknown>;
48
- transformDocumentHtml?: (html: string) => string;
49
- }, callbacks: RouteShellComposerCallbacks): Promise<string>;
50
- }
@@ -1,81 +0,0 @@
1
- class RouteShellComposer {
2
- async renderPartialViewResponse(input, callbacks) {
3
- if (input.renderInline && !callbacks.hasForeignBoundaryDescendants(input.view)) {
4
- return callbacks.createHtmlResponse(await input.renderInline(), input.ctx);
5
- }
6
- const rendererCache = /* @__PURE__ */ new Map();
7
- const viewRender = await callbacks.renderComponentBoundary({
8
- component: input.view,
9
- props: input.props ?? {},
10
- integrationContext: { rendererCache }
11
- });
12
- const html = input.transformHtml ? input.transformHtml(viewRender.html) : viewRender.html;
13
- return callbacks.createHtmlResponse(html, input.ctx);
14
- }
15
- async renderViewWithDocumentShell(input, callbacks) {
16
- const normalizedProps = input.props ?? {};
17
- if (input.ctx.partial) {
18
- return this.renderPartialViewResponse(input, callbacks);
19
- }
20
- await callbacks.prepareViewDependencies(input.view, input.layout);
21
- const HtmlTemplate = await callbacks.getHtmlTemplate();
22
- const metadata = await callbacks.resolveViewMetadata(input.view, input.props);
23
- const rendererCache = /* @__PURE__ */ new Map();
24
- const viewRender = await callbacks.renderComponentBoundary({
25
- component: input.view,
26
- props: normalizedProps,
27
- integrationContext: { rendererCache }
28
- });
29
- const layoutRender = input.layout ? await callbacks.renderComponentBoundary({
30
- component: input.layout,
31
- props: {},
32
- children: viewRender.html,
33
- integrationContext: { rendererCache }
34
- }) : void 0;
35
- const documentRender = await callbacks.renderComponentBoundary({
36
- component: HtmlTemplate,
37
- props: {
38
- metadata,
39
- pageProps: normalizedProps
40
- },
41
- children: layoutRender?.html ?? viewRender.html,
42
- integrationContext: { rendererCache }
43
- });
44
- callbacks.appendProcessedDependencies(viewRender.assets, layoutRender?.assets, documentRender.assets);
45
- const html = await callbacks.finalizeResolvedHtml({
46
- html: `${callbacks.docType}${documentRender.html}`,
47
- partial: false
48
- });
49
- return callbacks.createHtmlResponse(html, input.ctx);
50
- }
51
- async renderPageWithDocumentShell(input, callbacks) {
52
- const rendererCache = /* @__PURE__ */ new Map();
53
- const pageRender = await callbacks.renderComponentBoundary({
54
- component: input.page.component,
55
- props: input.page.props,
56
- integrationContext: { rendererCache }
57
- });
58
- const layoutRender = input.layout ? await callbacks.renderComponentBoundary({
59
- component: input.layout.component,
60
- props: input.layout.props ?? {},
61
- children: pageRender.html,
62
- integrationContext: { rendererCache }
63
- }) : void 0;
64
- const documentRender = await callbacks.renderComponentBoundary({
65
- component: input.htmlTemplate,
66
- props: {
67
- metadata: input.metadata,
68
- pageProps: input.pageProps,
69
- ...input.documentProps ?? {}
70
- },
71
- children: layoutRender?.html ?? pageRender.html,
72
- integrationContext: { rendererCache }
73
- });
74
- callbacks.appendProcessedDependencies(pageRender.assets, layoutRender?.assets, documentRender.assets);
75
- const documentHtml = input.transformDocumentHtml ? input.transformDocumentHtml(documentRender.html) : documentRender.html;
76
- return `${callbacks.docType}${documentHtml}`;
77
- }
78
- }
79
- export {
80
- RouteShellComposer
81
- };
@@ -1,38 +0,0 @@
1
- /**
2
- * Minimal template-result shape that core can serialize generically.
3
- *
4
- * @remarks
5
- * Core intentionally models only the transport shape used during deferred
6
- * cross-integration child passing: alternating static string segments plus
7
- * interpolated runtime values. Concrete runtime markers that identify a given
8
- * framework's template payload must stay outside core and be registered by the
9
- * owning integration package.
10
- */
11
- export type SerializableTemplateShape = {
12
- strings: readonly string[];
13
- values?: readonly unknown[];
14
- };
15
- /**
16
- * Integration-owned adapter that teaches core how to serialize one deferred
17
- * template payload shape.
18
- *
19
- * @remarks
20
- * The separation here is intentional: core owns the HTML serialization logic,
21
- * but integrations own runtime-shape detection. That keeps package-specific
22
- * markers such as framework template sentinels out of core while still letting
23
- * deferred children round-trip through mixed renderer boundaries.
24
- */
25
- export type DeferredTemplateSerializer<TTemplate extends SerializableTemplateShape = SerializableTemplateShape> = {
26
- matches(value: unknown): value is TTemplate;
27
- serialize(template: TTemplate, serializeValue: (value: unknown) => string | undefined): string;
28
- };
29
- /**
30
- * Serializes a generic template shape into HTML.
31
- *
32
- * @remarks
33
- * This handles only HTML reconstruction semantics: quoted attribute values,
34
- * boolean attributes, and omission of client-only event or property bindings.
35
- * It does not decide whether an arbitrary value belongs to a framework-specific
36
- * template runtime; integrations must make that decision before delegating here.
37
- */
38
- export declare function serializeTemplateShape(template: SerializableTemplateShape, serializeValue: (value: unknown) => string | undefined): string;
@@ -1,45 +0,0 @@
1
- import { escapeHtmlAttribute } from "../../utils/html-escaping.js";
2
- const ATTRIBUTE_TAIL_PATTERN = /(\s+)([@.?!]?)([^\s"'<>/=`@.?!]+)=$/;
3
- function getSerializableTemplateAttribute(stringPart) {
4
- const match = ATTRIBUTE_TAIL_PATTERN.exec(stringPart);
5
- if (!match) return void 0;
6
- return {
7
- leading: stringPart.slice(0, match.index),
8
- whitespace: match[1],
9
- prefix: match[2],
10
- name: match[3]
11
- };
12
- }
13
- function serializeTemplateShape(template, serializeValue) {
14
- const values = template.values ?? [];
15
- let html = "";
16
- for (let index = 0; index < values.length; index += 1) {
17
- const stringPart = template.strings[index] ?? "";
18
- const serializedValue = serializeValue(values[index]);
19
- const attribute = getSerializableTemplateAttribute(stringPart);
20
- if (!attribute) {
21
- html += stringPart;
22
- html += serializedValue ?? "";
23
- continue;
24
- }
25
- html += attribute.leading;
26
- if (attribute.prefix === "@" || attribute.prefix === "!" || attribute.prefix === ".") {
27
- continue;
28
- }
29
- if (attribute.prefix === "?") {
30
- if (serializedValue) {
31
- html += `${attribute.whitespace}${attribute.name}`;
32
- }
33
- continue;
34
- }
35
- if (serializedValue === void 0) {
36
- continue;
37
- }
38
- html += `${attribute.whitespace}${attribute.name}="${escapeHtmlAttribute(serializedValue)}"`;
39
- }
40
- html += template.strings[values.length] ?? "";
41
- return html;
42
- }
43
- export {
44
- serializeTemplateShape
45
- };
@@ -1,37 +0,0 @@
1
- import type { EcoComponent } from '../../types/public-types.js';
2
- import type { AssetDefinition } from '../../services/assets/asset-processing-service/index.js';
3
- import { type LazyGroup } from './lazy-entry-collection.js';
4
- /**
5
- * Aggregated dependency output for one dependency-collection pass.
6
- */
7
- export type CollectedComponentDependencies = {
8
- /**
9
- * Flat asset declarations ready for downstream processing.
10
- */
11
- dependencies: AssetDefinition[];
12
- /**
13
- * Lazy script groups keyed by component config and trigger key.
14
- */
15
- lazyScriptsByConfig: Map<NonNullable<EcoComponent['config']>, Map<string, LazyGroup>>;
16
- };
17
- type CollectComponentDependenciesOptions = {
18
- components: Array<EcoComponent | Partial<EcoComponent> | undefined | null>;
19
- integrationName: string;
20
- resolveLazyScripts: (componentDir: string, scripts: string[]) => string;
21
- createEcopagesJsxLazyEntryName: (integrationName: string, key: string) => string;
22
- isEcopagesJsxIntegration: (integrationName: string) => boolean;
23
- errors: {
24
- invalidStylesheetEntry: string;
25
- invalidScriptEntry: string;
26
- lazyScriptMissingSrc: string;
27
- };
28
- };
29
- /**
30
- * Walks component dependency trees and collects declared assets, module declarations,
31
- * and lazy-script group metadata in one pass.
32
- *
33
- * The returned structures intentionally preserve both the flat asset list used by
34
- * asset processing and the grouped lazy-trigger data used later during render output.
35
- */
36
- export declare function collectComponentDependencies(options: CollectComponentDependenciesOptions): CollectedComponentDependencies;
37
- export {};
@@ -1,125 +0,0 @@
1
- import path from "node:path";
2
- import { AssetFactory } from "../../services/assets/asset-processing-service/index.js";
3
- import { extractEcopagesVirtualImports } from "./ecopages-virtual-imports.js";
4
- import { collectDeclaredAssetEntries } from "./declared-asset-collection.js";
5
- import { getLazyTriggerKey } from "./lazy-trigger-planning.js";
6
- import { collectLazyScriptEntries } from "./lazy-entry-collection.js";
7
- import {
8
- createModuleScriptName,
9
- createNamedImportModuleSource,
10
- createNamespaceImportModuleSource
11
- } from "./module-declaration-scripts.js";
12
- import { collectModuleDeclarations } from "./module-declaration-aggregation.js";
13
- const MODULE_SCRIPT_ATTRIBUTES = {
14
- type: "module",
15
- defer: ""
16
- };
17
- function createModuleScriptAttributes(attributes) {
18
- return {
19
- ...MODULE_SCRIPT_ATTRIBUTES,
20
- ...attributes
21
- };
22
- }
23
- function pushUniqueDependency(keys, key, dependencies, dependency) {
24
- if (keys.has(key)) {
25
- return false;
26
- }
27
- keys.add(key);
28
- dependencies.push(dependency);
29
- return true;
30
- }
31
- function resolveDependencyPath(componentDir, pathUrl) {
32
- return path.join(componentDir, pathUrl);
33
- }
34
- function collectComponentDependencies(options) {
35
- const { components, integrationName, resolveLazyScripts, createEcopagesJsxLazyEntryName, isEcopagesJsxIntegration, errors } = options;
36
- const dependencies = [];
37
- const lazyScriptsByConfig = /* @__PURE__ */ new Map();
38
- const lazyDependencyKeys = /* @__PURE__ */ new Set();
39
- for (const component of components) {
40
- if (!component) continue;
41
- const componentFile = component.config?.__eco?.file;
42
- if (!componentFile) continue;
43
- const stylesheetDependencyKeys = /* @__PURE__ */ new Set();
44
- const scriptDependencyKeys = /* @__PURE__ */ new Set();
45
- const modulesMap = /* @__PURE__ */ new Map();
46
- const collect = (config) => {
47
- if (!config) return;
48
- const file = config.__eco?.file;
49
- if (!file) return;
50
- const dir = path.dirname(file);
51
- const dependenciesConfig = config.dependencies;
52
- const registerLazyScript = ({
53
- lazy,
54
- lazyKey,
55
- fallbackUrl
56
- }) => {
57
- let grouped = lazyScriptsByConfig.get(config);
58
- if (!grouped) {
59
- grouped = /* @__PURE__ */ new Map();
60
- lazyScriptsByConfig.set(config, grouped);
61
- }
62
- const triggerKey = getLazyTriggerKey(lazy);
63
- const existing = grouped.get(triggerKey) ?? { lazy, scripts: [] };
64
- existing.scripts.push({ lazyKey, fallbackUrl });
65
- grouped.set(triggerKey, existing);
66
- };
67
- collectDeclaredAssetEntries({
68
- stylesheetEntries: dependenciesConfig?.stylesheets ?? [],
69
- scriptEntries: dependenciesConfig?.scripts ?? [],
70
- componentDir: dir,
71
- dependencies,
72
- stylesheetDependencyKeys,
73
- scriptDependencyKeys,
74
- resolveDependencyPath,
75
- createModuleScriptAttributes,
76
- pushUniqueDependency,
77
- getInvalidStylesheetEntryMessage: () => errors.invalidStylesheetEntry,
78
- getInvalidScriptEntryMessage: () => errors.invalidScriptEntry
79
- });
80
- collectModuleDeclarations(modulesMap, dependenciesConfig?.modules, extractEcopagesVirtualImports(file));
81
- collectLazyScriptEntries({
82
- scriptEntries: dependenciesConfig?.scripts ?? [],
83
- componentFile: file,
84
- componentDir: dir,
85
- integrationName,
86
- dependencies,
87
- lazyDependencyKeys,
88
- registerLazyScript,
89
- resolveDependencyPath,
90
- resolveLazyScripts,
91
- createModuleScriptAttributes,
92
- createEcopagesJsxLazyEntryName,
93
- pushUniqueDependency,
94
- getLazyScriptMissingSrcMessage: () => errors.lazyScriptMissingSrc,
95
- isEcopagesJsxIntegration
96
- });
97
- if (dependenciesConfig?.components) {
98
- for (const nestedComponent of dependenciesConfig.components) {
99
- if (nestedComponent?.config) {
100
- collect(nestedComponent.config);
101
- }
102
- }
103
- }
104
- };
105
- collect(component.config);
106
- dependencies.push(
107
- ...Array.from(modulesMap.entries()).map(([from, importsSet]) => {
108
- const imports = importsSet ? Array.from(importsSet) : void 0;
109
- return AssetFactory.createContentScript({
110
- position: "head",
111
- name: createModuleScriptName(from, imports),
112
- content: imports && imports.length > 0 ? createNamedImportModuleSource(from, imports) : createNamespaceImportModuleSource(from),
113
- attributes: createModuleScriptAttributes()
114
- });
115
- })
116
- );
117
- }
118
- return {
119
- dependencies,
120
- lazyScriptsByConfig
121
- };
122
- }
123
- export {
124
- collectComponentDependencies
125
- };
@@ -1,24 +0,0 @@
1
- import type { EcoComponentScriptEntry, EcoComponentStylesheetEntry } from '../../types/public-types.js';
2
- import type { AssetDefinition } from '../../services/assets/asset-processing-service/index.js';
3
- type CollectDeclaredAssetEntriesOptions = {
4
- stylesheetEntries: Array<string | EcoComponentStylesheetEntry>;
5
- scriptEntries: Array<string | EcoComponentScriptEntry>;
6
- componentDir: string;
7
- dependencies: AssetDefinition[];
8
- stylesheetDependencyKeys: Set<string>;
9
- scriptDependencyKeys: Set<string>;
10
- resolveDependencyPath: (componentDir: string, pathUrl: string) => string;
11
- createModuleScriptAttributes: (attributes?: Record<string, string>) => Record<string, string>;
12
- pushUniqueDependency: (keys: Set<string>, key: string, dependencies: AssetDefinition[], dependency: AssetDefinition) => boolean;
13
- getInvalidStylesheetEntryMessage: () => string;
14
- getInvalidScriptEntryMessage: () => string;
15
- };
16
- /**
17
- * Normalizes non-lazy stylesheet and script declarations into asset definitions.
18
- *
19
- * Duplicate declarations are filtered through the provided key sets so callers can
20
- * compose this helper into larger recursive collection passes without re-emitting
21
- * the same asset multiple times.
22
- */
23
- export declare function collectDeclaredAssetEntries(options: CollectDeclaredAssetEntriesOptions): void;
24
- export {};
@@ -1,106 +0,0 @@
1
- import { AssetFactory } from "../../services/assets/asset-processing-service/index.js";
2
- function isDependencyEntryObject(entry) {
3
- return typeof entry === "object" && entry !== null;
4
- }
5
- function getDependencyEntrySrc(entry) {
6
- return isDependencyEntryObject(entry) ? entry.src : entry;
7
- }
8
- function getDependencyEntryContent(entry) {
9
- return isDependencyEntryObject(entry) ? entry.content : void 0;
10
- }
11
- function getDependencyEntryAttributes(entry) {
12
- return isDependencyEntryObject(entry) ? entry.attributes : void 0;
13
- }
14
- function collectDeclaredAssetEntries(options) {
15
- const {
16
- stylesheetEntries,
17
- scriptEntries,
18
- componentDir,
19
- dependencies,
20
- stylesheetDependencyKeys,
21
- scriptDependencyKeys,
22
- resolveDependencyPath,
23
- createModuleScriptAttributes,
24
- pushUniqueDependency,
25
- getInvalidStylesheetEntryMessage,
26
- getInvalidScriptEntryMessage
27
- } = options;
28
- for (const style of stylesheetEntries) {
29
- const content = getDependencyEntryContent(style);
30
- const src = getDependencyEntrySrc(style);
31
- const attributes = getDependencyEntryAttributes(style);
32
- if (content) {
33
- const depKey2 = `style:content:${content}:${JSON.stringify(attributes ?? {})}`;
34
- pushUniqueDependency(
35
- stylesheetDependencyKeys,
36
- depKey2,
37
- dependencies,
38
- AssetFactory.createContentStylesheet({
39
- content,
40
- position: "head",
41
- attributes
42
- })
43
- );
44
- continue;
45
- }
46
- if (!src) {
47
- throw new Error(getInvalidStylesheetEntryMessage());
48
- }
49
- const resolvedPath = resolveDependencyPath(componentDir, src);
50
- const depKey = `style:file:${resolvedPath}:${JSON.stringify(attributes ?? {})}`;
51
- pushUniqueDependency(
52
- stylesheetDependencyKeys,
53
- depKey,
54
- dependencies,
55
- AssetFactory.createFileStylesheet({
56
- filepath: resolvedPath,
57
- position: "head",
58
- attributes: {
59
- rel: "stylesheet",
60
- ...attributes
61
- }
62
- })
63
- );
64
- }
65
- for (const script of scriptEntries) {
66
- if (isDependencyEntryObject(script) && "lazy" in script && script.lazy) {
67
- continue;
68
- }
69
- const content = getDependencyEntryContent(script);
70
- const src = getDependencyEntrySrc(script);
71
- const attributes = getDependencyEntryAttributes(script);
72
- if (content) {
73
- const depKey2 = `script:content:${content}:${JSON.stringify(attributes ?? {})}`;
74
- pushUniqueDependency(
75
- scriptDependencyKeys,
76
- depKey2,
77
- dependencies,
78
- AssetFactory.createInlineContentScript({
79
- position: "head",
80
- content,
81
- bundle: false,
82
- attributes
83
- })
84
- );
85
- continue;
86
- }
87
- if (!src) {
88
- throw new Error(getInvalidScriptEntryMessage());
89
- }
90
- const resolvedPath = resolveDependencyPath(componentDir, src);
91
- const depKey = `script:file:${resolvedPath}:${JSON.stringify(attributes ?? {})}`;
92
- pushUniqueDependency(
93
- scriptDependencyKeys,
94
- depKey,
95
- dependencies,
96
- AssetFactory.createFileScript({
97
- filepath: resolvedPath,
98
- position: "head",
99
- attributes: createModuleScriptAttributes(attributes)
100
- })
101
- );
102
- }
103
- }
104
- export {
105
- collectDeclaredAssetEntries
106
- };
@@ -1,35 +0,0 @@
1
- import type { EcoComponent } from '../../types/public-types.js';
2
- import type { EcoPagesAppConfig } from '../../types/internal-types.js';
3
- import type { AssetProcessingService, ProcessedAsset } from '../../services/assets/asset-processing-service/index.js';
4
- export declare const DEPENDENCY_ERRORS: {
5
- readonly INVALID_STYLESHEET_ENTRY: "Invalid stylesheet dependency entry: expected src or content";
6
- readonly INVALID_SCRIPT_ENTRY: "Invalid script dependency entry: expected src or content";
7
- readonly LAZY_SCRIPT_MISSING_SRC: "Lazy script dependency entry in dependencies.scripts requires a src value";
8
- };
9
- export declare class DependencyResolverService {
10
- private appConfig;
11
- private assetProcessingService;
12
- /**
13
- * Creates the dependency resolver used by route and component rendering.
14
- *
15
- * @remarks
16
- * The resolver stays intentionally separate from HTML rendering so component
17
- * dependency collection, lazy trigger grouping, and processed-asset generation
18
- * can evolve without changing renderer implementations.
19
- */
20
- constructor(appConfig: EcoPagesAppConfig, assetProcessingService: AssetProcessingService);
21
- /**
22
- * Resolves one dependency path relative to the component that declared it.
23
- */
24
- resolveDependencyPath(componentDir: string, pathUrl: string): string;
25
- /**
26
- * Maps lazy script source entries to deterministic fallback public URLs
27
- * used when bundling output URLs are unavailable.
28
- */
29
- resolveLazyScripts(componentDir: string, scripts: string[]): string;
30
- /**
31
- * Collects and processes component dependencies (styles, scripts, modules, lazy scripts).
32
- * Lazy dependencies are always resolved into global-injector trigger maps.
33
- */
34
- processComponentDependencies(components: Array<EcoComponent | Partial<EcoComponent> | undefined | null>, integrationName: string): Promise<ProcessedAsset[]>;
35
- }
@@ -1,117 +0,0 @@
1
- import path from "node:path";
2
- import { rapidhash } from "../../utils/hash.js";
3
- import { AssetFactory } from "../../services/assets/asset-processing-service/index.js";
4
- import {
5
- buildResolvedLazyTriggers
6
- } from "./lazy-trigger-planning.js";
7
- import { collectComponentDependencies } from "./component-dependency-collection.js";
8
- import { createUnifiedPageDependencies } from "./page-dependency-bundling.js";
9
- const DEPENDENCY_ERRORS = {
10
- INVALID_STYLESHEET_ENTRY: "Invalid stylesheet dependency entry: expected src or content",
11
- INVALID_SCRIPT_ENTRY: "Invalid script dependency entry: expected src or content",
12
- LAZY_SCRIPT_MISSING_SRC: "Lazy script dependency entry in dependencies.scripts requires a src value"
13
- };
14
- function resolveLazyScripts(appConfig, componentDir, scripts) {
15
- const getSafeFileName = (filepath) => {
16
- const EXTENSIONS_TO_JS = ["ts", "tsx"];
17
- const safe = filepath.replace(new RegExp(`\\.(${EXTENSIONS_TO_JS.join("|")})$`), ".js");
18
- return safe.startsWith("./") ? safe.slice(2) : safe;
19
- };
20
- const baseDir = componentDir.split(appConfig.srcDir)[1] ?? "";
21
- const resolvedPaths = scripts.map((script) => {
22
- const relativePath = [AssetFactory.RESOLVED_ASSETS_DIR, baseDir, getSafeFileName(script)].filter(Boolean).join("/").replace(/\/+/g, "/");
23
- return `/${relativePath.replace(/^\/+/, "")}`;
24
- });
25
- return resolvedPaths.join(",");
26
- }
27
- const ECOPAGES_JSX_INTEGRATION_NAME = "ecopages-jsx";
28
- function isEcopagesJsxIntegration(integrationName) {
29
- return integrationName === ECOPAGES_JSX_INTEGRATION_NAME;
30
- }
31
- function createEcopagesJsxLazyEntryName(integrationName, key) {
32
- return `ecopages-${integrationName}-lazy-${rapidhash(key).toString(16)}`;
33
- }
34
- class DependencyResolverService {
35
- appConfig;
36
- assetProcessingService;
37
- /**
38
- * Creates the dependency resolver used by route and component rendering.
39
- *
40
- * @remarks
41
- * The resolver stays intentionally separate from HTML rendering so component
42
- * dependency collection, lazy trigger grouping, and processed-asset generation
43
- * can evolve without changing renderer implementations.
44
- */
45
- constructor(appConfig, assetProcessingService) {
46
- this.appConfig = appConfig;
47
- this.assetProcessingService = assetProcessingService;
48
- }
49
- /**
50
- * Resolves one dependency path relative to the component that declared it.
51
- */
52
- resolveDependencyPath(componentDir, pathUrl) {
53
- return path.join(componentDir, pathUrl);
54
- }
55
- /**
56
- * Maps lazy script source entries to deterministic fallback public URLs
57
- * used when bundling output URLs are unavailable.
58
- */
59
- resolveLazyScripts(componentDir, scripts) {
60
- return resolveLazyScripts(this.appConfig, componentDir, scripts);
61
- }
62
- /**
63
- * Collects and processes component dependencies (styles, scripts, modules, lazy scripts).
64
- * Lazy dependencies are always resolved into global-injector trigger maps.
65
- */
66
- async processComponentDependencies(components, integrationName) {
67
- if (!this.assetProcessingService?.processDependencies) return [];
68
- const { dependencies, lazyScriptsByConfig } = collectComponentDependencies({
69
- components,
70
- integrationName,
71
- resolveLazyScripts: (componentDir, scripts) => this.resolveLazyScripts(componentDir, scripts),
72
- createEcopagesJsxLazyEntryName,
73
- isEcopagesJsxIntegration,
74
- errors: {
75
- invalidStylesheetEntry: DEPENDENCY_ERRORS.INVALID_STYLESHEET_ENTRY,
76
- invalidScriptEntry: DEPENDENCY_ERRORS.INVALID_SCRIPT_ENTRY,
77
- lazyScriptMissingSrc: DEPENDENCY_ERRORS.LAZY_SCRIPT_MISSING_SRC
78
- }
79
- });
80
- const unifiedDependencies = createUnifiedPageDependencies(dependencies, integrationName);
81
- const hasLazyDependencies = unifiedDependencies.some(
82
- (dep) => dep.kind === "script" && dep.excludeFromHtml === true
83
- );
84
- const processedDependencies = await this.assetProcessingService.processDependencies(
85
- unifiedDependencies,
86
- integrationName
87
- );
88
- const lazyKeyToOutputUrl = /* @__PURE__ */ new Map();
89
- for (const dependency of processedDependencies) {
90
- if (dependency.kind === "script" && dependency.srcUrl) {
91
- const lazyKey = dependency.attributes?.["data-eco-lazy-key"];
92
- if (lazyKey) {
93
- lazyKeyToOutputUrl.set(lazyKey, dependency.srcUrl);
94
- }
95
- }
96
- }
97
- for (const [config, lazyGroupsMap] of lazyScriptsByConfig.entries()) {
98
- const rawGroups = [];
99
- for (const group of lazyGroupsMap.values()) {
100
- const resolvedUrls = group.scripts.map(({ lazyKey, fallbackUrl }) => lazyKeyToOutputUrl.get(lazyKey) ?? fallbackUrl).filter((url) => Boolean(url && url.length > 0));
101
- if (resolvedUrls.length === 0) {
102
- continue;
103
- }
104
- rawGroups.push({ lazy: group.lazy, scripts: Array.from(new Set(resolvedUrls)) });
105
- }
106
- if (hasLazyDependencies) {
107
- config._resolvedLazyTriggers = buildResolvedLazyTriggers(config, rawGroups);
108
- config._resolvedLazyScripts = void 0;
109
- }
110
- }
111
- return processedDependencies;
112
- }
113
- }
114
- export {
115
- DEPENDENCY_ERRORS,
116
- DependencyResolverService
117
- };
@@ -1,11 +0,0 @@
1
- export type EcopagesVirtualImport = {
2
- from: string;
3
- imports: string[] | undefined;
4
- };
5
- /**
6
- * Extracts runtime `ecopages:` virtual-module imports from a component source file.
7
- *
8
- * Type-only imports are skipped and bare namespace imports are represented by an
9
- * `undefined` import list so downstream module generation can preserve that shape.
10
- */
11
- export declare function extractEcopagesVirtualImports(file: string): EcopagesVirtualImport[];