@ecopages/core 0.2.0-alpha.54 → 0.2.0-alpha.55

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 (594) hide show
  1. package/package.json +196 -91
  2. package/src/adapters/abstract/application-adapter.d.ts +194 -0
  3. package/src/adapters/abstract/application-adapter.js +121 -0
  4. package/src/adapters/abstract/router-adapter.d.ts +26 -0
  5. package/src/adapters/abstract/router-adapter.js +5 -0
  6. package/src/adapters/abstract/server-adapter.d.ts +69 -0
  7. package/src/adapters/abstract/server-adapter.js +15 -0
  8. package/src/adapters/bun/client-bridge.d.ts +34 -0
  9. package/src/adapters/bun/client-bridge.js +48 -0
  10. package/src/adapters/bun/create-app.d.ts +60 -0
  11. package/src/adapters/bun/create-app.js +140 -0
  12. package/src/adapters/bun/hmr-manager.d.ts +47 -0
  13. package/src/adapters/bun/hmr-manager.js +58 -0
  14. package/src/adapters/bun/index.d.ts +2 -0
  15. package/src/adapters/bun/index.js +8 -0
  16. package/src/adapters/bun/runtime-host.d.ts +52 -0
  17. package/src/adapters/bun/runtime-host.js +56 -0
  18. package/src/adapters/bun/server-adapter.d.ts +223 -0
  19. package/src/adapters/bun/server-adapter.js +450 -0
  20. package/src/adapters/bun/static-preview-host.d.ts +28 -0
  21. package/src/adapters/bun/static-preview-host.js +45 -0
  22. package/src/adapters/create-app.d.ts +20 -0
  23. package/src/adapters/create-app.js +66 -0
  24. package/src/adapters/index.d.ts +2 -0
  25. package/src/adapters/index.js +8 -0
  26. package/src/adapters/node/create-app.d.ts +24 -0
  27. package/src/adapters/node/create-app.js +92 -0
  28. package/src/adapters/node/http-request-bridge.d.ts +57 -0
  29. package/src/adapters/node/http-request-bridge.js +118 -0
  30. package/src/adapters/node/node-client-bridge.d.ts +26 -0
  31. package/src/adapters/node/node-client-bridge.js +66 -0
  32. package/src/adapters/node/node-hmr-manager.d.ts +52 -0
  33. package/src/adapters/node/node-hmr-manager.js +49 -0
  34. package/src/adapters/node/runtime-host.d.ts +57 -0
  35. package/src/adapters/node/runtime-host.js +92 -0
  36. package/src/adapters/node/server-adapter-dependencies.d.ts +19 -0
  37. package/src/adapters/node/server-adapter-dependencies.js +18 -0
  38. package/src/adapters/node/server-adapter.d.ts +138 -0
  39. package/src/adapters/node/server-adapter.js +313 -0
  40. package/src/adapters/node/static-content-server.d.ts +60 -0
  41. package/src/adapters/node/static-content-server.js +194 -0
  42. package/src/adapters/node/static-preview-host.d.ts +55 -0
  43. package/src/adapters/node/static-preview-host.js +68 -0
  44. package/src/adapters/shared/api-response.d.ts +52 -0
  45. package/src/adapters/shared/api-response.js +96 -0
  46. package/src/adapters/shared/application-adapter.d.ts +18 -0
  47. package/src/adapters/shared/application-adapter.js +90 -0
  48. package/src/adapters/shared/define-api-handler.d.ts +25 -0
  49. package/src/adapters/shared/define-api-handler.js +15 -0
  50. package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
  51. package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
  52. package/src/adapters/shared/explicit-static-route-matcher.d.ts +41 -0
  53. package/src/adapters/shared/explicit-static-route-matcher.js +101 -0
  54. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +62 -0
  55. package/src/adapters/shared/file-route-middleware-pipeline.js +90 -0
  56. package/src/adapters/shared/fs-server-response-factory.d.ts +23 -0
  57. package/src/adapters/shared/fs-server-response-factory.js +81 -0
  58. package/src/adapters/shared/fs-server-response-matcher.d.ts +75 -0
  59. package/src/adapters/shared/fs-server-response-matcher.js +186 -0
  60. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
  61. package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
  62. package/src/adapters/shared/hmr-html-response.d.ts +22 -0
  63. package/src/adapters/shared/hmr-html-response.js +33 -0
  64. package/src/adapters/shared/render-context.d.ts +16 -0
  65. package/src/adapters/shared/render-context.js +93 -0
  66. package/src/adapters/shared/runtime-app-bootstrap.d.ts +26 -0
  67. package/src/adapters/shared/runtime-app-bootstrap.js +46 -0
  68. package/src/adapters/shared/runtime-host.d.ts +12 -0
  69. package/src/adapters/shared/runtime-host.js +0 -0
  70. package/src/adapters/shared/server-adapter.d.ts +108 -0
  71. package/src/adapters/shared/server-adapter.js +436 -0
  72. package/src/adapters/shared/server-route-handler.d.ts +89 -0
  73. package/src/adapters/shared/server-route-handler.js +111 -0
  74. package/src/adapters/shared/server-static-builder.d.ts +71 -0
  75. package/src/adapters/shared/server-static-builder.js +100 -0
  76. package/src/adapters/shared/shared-hmr-manager.d.ts +59 -0
  77. package/src/adapters/shared/shared-hmr-manager.js +241 -0
  78. package/src/adapters/shared/static-preview-host.d.ts +10 -0
  79. package/src/adapters/shared/static-preview-host.js +0 -0
  80. package/src/build/browser-runtime-manifest.d.ts +31 -0
  81. package/src/build/browser-runtime-manifest.js +61 -0
  82. package/src/build/{browser-runtime-plugin-helpers.ts → browser-runtime-plugin-helpers.d.ts} +2 -13
  83. package/src/build/browser-runtime-plugin-helpers.js +14 -0
  84. package/src/build/browser-runtime-plugin.d.ts +78 -0
  85. package/src/build/browser-runtime-plugin.js +172 -0
  86. package/src/build/build-adapter.d.ts +504 -0
  87. package/src/build/build-adapter.js +240 -0
  88. package/src/build/build-manifest.d.ts +33 -0
  89. package/src/build/build-manifest.js +49 -0
  90. package/src/build/build-types.d.ts +57 -0
  91. package/src/build/build-types.js +0 -0
  92. package/src/build/rolldown-build-adapter.d.ts +32 -0
  93. package/src/build/rolldown-build-adapter.js +260 -0
  94. package/src/build/rolldown-plugin-bridge.d.ts +50 -0
  95. package/src/build/rolldown-plugin-bridge.js +194 -0
  96. package/src/build/{runtime-build-executor.ts → runtime-build-executor.d.ts} +3 -19
  97. package/src/build/runtime-build-executor.js +19 -0
  98. package/src/build/runtime-build-output-normalizer.d.ts +3 -0
  99. package/src/build/runtime-build-output-normalizer.js +111 -0
  100. package/src/build/serialized-build-executor.d.ts +64 -0
  101. package/src/build/serialized-build-executor.js +63 -0
  102. package/src/build/server-side-css-shim-plugin.d.ts +41 -0
  103. package/src/build/server-side-css-shim-plugin.js +35 -0
  104. package/src/cache/{index.ts → index.d.ts} +1 -1
  105. package/src/cache/index.js +6 -0
  106. package/src/cache/module-parse-cache.d.ts +65 -0
  107. package/src/cache/module-parse-cache.js +75 -0
  108. package/src/config/config-builder.d.ts +252 -0
  109. package/src/config/config-builder.js +589 -0
  110. package/src/config/{constants.ts → constants.d.ts} +13 -22
  111. package/src/config/constants.js +25 -0
  112. package/src/dev/host-runtime.d.ts +10 -0
  113. package/src/dev/host-runtime.js +24 -0
  114. package/src/dev/sc-server.d.ts +30 -0
  115. package/src/dev/sc-server.js +111 -0
  116. package/src/eco/eco.browser.d.ts +2 -0
  117. package/src/eco/eco.browser.js +88 -0
  118. package/src/eco/eco.d.ts +9 -0
  119. package/src/eco/eco.js +119 -0
  120. package/src/eco/eco.types.d.ts +230 -0
  121. package/src/eco/eco.types.js +0 -0
  122. package/src/eco/eco.utils.d.ts +1 -0
  123. package/src/eco/eco.utils.js +10 -0
  124. package/src/eco/global-injector-map.d.ts +16 -0
  125. package/src/eco/global-injector-map.js +80 -0
  126. package/src/eco/lazy-injector-map.d.ts +8 -0
  127. package/src/eco/lazy-injector-map.js +70 -0
  128. package/src/eco/module-dependencies.d.ts +18 -0
  129. package/src/eco/module-dependencies.js +49 -0
  130. package/src/errors/http-error.d.ts +31 -0
  131. package/src/errors/http-error.js +50 -0
  132. package/src/errors/index.d.ts +3 -0
  133. package/src/errors/index.js +6 -0
  134. package/src/errors/locals-access-error.d.ts +4 -0
  135. package/src/errors/locals-access-error.js +9 -0
  136. package/src/global/app-logger.d.ts +2 -0
  137. package/src/global/app-logger.js +6 -0
  138. package/src/hmr/client/hmr-runtime.d.ts +5 -0
  139. package/src/hmr/client/hmr-runtime.js +117 -0
  140. package/src/hmr/hmr-strategy.d.ts +162 -0
  141. package/src/hmr/hmr-strategy.js +44 -0
  142. package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
  143. package/src/hmr/hmr.postcss.test.e2e.js +31 -0
  144. package/src/hmr/hmr.test.e2e.d.ts +1 -0
  145. package/src/hmr/hmr.test.e2e.js +43 -0
  146. package/src/hmr/strategies/default-hmr-strategy.d.ts +43 -0
  147. package/src/hmr/strategies/default-hmr-strategy.js +34 -0
  148. package/src/hmr/strategies/js-hmr-strategy.d.ts +134 -0
  149. package/src/hmr/strategies/js-hmr-strategy.js +173 -0
  150. package/src/index.browser.d.ts +3 -0
  151. package/src/index.browser.js +4 -0
  152. package/src/index.d.ts +6 -0
  153. package/src/index.js +21 -0
  154. package/src/integrations/ghtml/ghtml-renderer.d.ts +16 -0
  155. package/src/integrations/ghtml/ghtml-renderer.js +57 -0
  156. package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
  157. package/src/integrations/ghtml/ghtml.constants.js +4 -0
  158. package/src/integrations/ghtml/ghtml.plugin.d.ts +16 -0
  159. package/src/integrations/ghtml/ghtml.plugin.js +20 -0
  160. package/src/plugins/alias-resolver-cache.d.ts +68 -0
  161. package/src/plugins/alias-resolver-cache.js +106 -0
  162. package/src/plugins/alias-resolver-plugin.d.ts +6 -0
  163. package/src/plugins/alias-resolver-plugin.js +65 -0
  164. package/src/plugins/eco-component-meta-plugin.d.ts +108 -0
  165. package/src/plugins/eco-component-meta-plugin.js +175 -0
  166. package/src/plugins/foreign-jsx-override-plugin.d.ts +33 -0
  167. package/src/plugins/foreign-jsx-override-plugin.js +41 -0
  168. package/src/plugins/integration-plugin.d.ts +230 -0
  169. package/src/plugins/integration-plugin.js +201 -0
  170. package/src/plugins/processor.d.ts +97 -0
  171. package/src/plugins/processor.js +141 -0
  172. package/src/plugins/{runtime-capability.ts → runtime-capability.d.ts} +3 -8
  173. package/src/plugins/runtime-capability.js +0 -0
  174. package/src/plugins/source-transform.d.ts +46 -0
  175. package/src/plugins/source-transform.js +71 -0
  176. package/src/route-renderer/orchestration/component-render-context.d.ts +97 -0
  177. package/src/route-renderer/orchestration/component-render-context.js +147 -0
  178. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
  179. package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
  180. package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +110 -0
  181. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +233 -0
  182. package/src/route-renderer/orchestration/integration-renderer.d.ts +534 -0
  183. package/src/route-renderer/orchestration/integration-renderer.js +991 -0
  184. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
  185. package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
  186. package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
  187. package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
  188. package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +3 -0
  189. package/src/route-renderer/orchestration/processed-asset-dedupe.js +27 -0
  190. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +91 -0
  191. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +170 -0
  192. package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
  193. package/src/route-renderer/orchestration/render-output.utils.js +171 -0
  194. package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +156 -0
  195. package/src/route-renderer/orchestration/route-render-orchestrator.js +577 -0
  196. package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
  197. package/src/route-renderer/orchestration/template-serialization.js +45 -0
  198. package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
  199. package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
  200. package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
  201. package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
  202. package/src/route-renderer/page-loading/dependency-resolver.d.ts +35 -0
  203. package/src/route-renderer/page-loading/dependency-resolver.js +115 -0
  204. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
  205. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
  206. package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
  207. package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
  208. package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
  209. package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
  210. package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
  211. package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
  212. package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
  213. package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
  214. package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
  215. package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
  216. package/src/route-renderer/page-loading/page-module-loader.d.ts +90 -0
  217. package/src/route-renderer/page-loading/page-module-loader.js +127 -0
  218. package/src/route-renderer/route-renderer.d.ts +69 -0
  219. package/src/route-renderer/route-renderer.js +80 -0
  220. package/src/router/client/link-intent.js +34 -0
  221. package/src/router/client/link-intent.test.browser.d.ts +1 -0
  222. package/src/router/client/link-intent.test.browser.js +43 -0
  223. package/src/router/client/navigation-coordinator.d.ts +169 -0
  224. package/src/router/client/navigation-coordinator.js +215 -0
  225. package/src/router/server/route-registry.d.ts +78 -0
  226. package/src/router/server/route-registry.js +262 -0
  227. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
  228. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
  229. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +103 -0
  230. package/src/services/assets/asset-processing-service/asset-processing.service.js +285 -0
  231. package/src/services/assets/asset-processing-service/asset.factory.d.ts +17 -0
  232. package/src/services/assets/asset-processing-service/asset.factory.js +82 -0
  233. package/src/services/assets/asset-processing-service/assets.types.d.ts +103 -0
  234. package/src/services/assets/asset-processing-service/assets.types.js +0 -0
  235. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +57 -0
  236. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +49 -0
  237. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
  238. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -0
  239. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
  240. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
  241. package/src/services/assets/asset-processing-service/index.d.ts +6 -0
  242. package/src/services/assets/asset-processing-service/index.js +6 -0
  243. package/src/services/assets/asset-processing-service/page-package.d.ts +6 -0
  244. package/src/services/assets/asset-processing-service/page-package.js +80 -0
  245. package/src/services/assets/asset-processing-service/{processor.interface.ts → processor.interface.d.ts} +5 -10
  246. package/src/services/assets/asset-processing-service/processor.interface.js +6 -0
  247. package/src/services/assets/asset-processing-service/processor.registry.d.ts +8 -0
  248. package/src/services/assets/asset-processing-service/processor.registry.js +15 -0
  249. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +24 -0
  250. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +65 -0
  251. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +22 -0
  252. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +136 -0
  253. package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
  254. package/src/services/assets/asset-processing-service/processors/index.js +5 -0
  255. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +6 -0
  256. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +120 -0
  257. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +9 -0
  258. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +97 -0
  259. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +42 -0
  260. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +126 -0
  261. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +8 -0
  262. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +59 -0
  263. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +9 -0
  264. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +69 -0
  265. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
  266. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
  267. package/src/services/assets/browser-bundle.service.d.ts +73 -0
  268. package/src/services/assets/browser-bundle.service.js +41 -0
  269. package/src/services/cache/cache.types.d.ts +107 -0
  270. package/src/services/cache/cache.types.js +0 -0
  271. package/src/services/cache/index.d.ts +7 -0
  272. package/src/services/cache/index.js +7 -0
  273. package/src/services/cache/memory-cache-store.d.ts +42 -0
  274. package/src/services/cache/memory-cache-store.js +98 -0
  275. package/src/services/cache/page-cache-service.d.ts +70 -0
  276. package/src/services/cache/page-cache-service.js +152 -0
  277. package/src/services/cache/page-request-cache-coordinator.service.d.ts +75 -0
  278. package/src/services/cache/page-request-cache-coordinator.service.js +109 -0
  279. package/src/services/html/html-rewriter-provider.service.d.ts +40 -0
  280. package/src/services/html/html-rewriter-provider.service.js +68 -0
  281. package/src/services/html/html-transformer.service.d.ts +96 -0
  282. package/src/services/html/html-transformer.service.js +287 -0
  283. package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
  284. package/src/services/invalidation/development-invalidation.service.js +190 -0
  285. package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
  286. package/src/services/module-loading/app-module-loader.service.js +0 -0
  287. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +24 -0
  288. package/src/services/module-loading/app-server-module-transpiler.service.js +130 -0
  289. package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
  290. package/src/services/module-loading/host-module-loader-registry.js +15 -0
  291. package/src/services/module-loading/{module-loading-types.ts → module-loading-types.d.ts} +0 -1
  292. package/src/services/module-loading/module-loading-types.js +0 -0
  293. package/src/services/module-loading/page-module-import.service.d.ts +95 -0
  294. package/src/services/module-loading/page-module-import.service.js +193 -0
  295. package/src/services/module-loading/server-module-transpiler.service.d.ts +63 -0
  296. package/src/services/module-loading/server-module-transpiler.service.js +64 -0
  297. package/src/services/module-loading/source-module-support.d.ts +5 -0
  298. package/src/services/module-loading/source-module-support.js +8 -0
  299. package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
  300. package/src/services/runtime-state/dev-graph.service.js +162 -0
  301. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
  302. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
  303. package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
  304. package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
  305. package/src/services/validation/schema-validation-service.d.ts +122 -0
  306. package/src/services/validation/schema-validation-service.js +101 -0
  307. package/src/services/validation/{standard-schema.types.ts → standard-schema.types.d.ts} +17 -20
  308. package/src/services/validation/standard-schema.types.js +0 -0
  309. package/src/static-site-generator/static-site-generator.d.ts +104 -0
  310. package/src/static-site-generator/static-site-generator.js +316 -0
  311. package/src/types/internal-types.d.ts +232 -0
  312. package/src/types/internal-types.js +0 -0
  313. package/src/types/public-types.d.ts +1307 -0
  314. package/src/types/public-types.js +0 -0
  315. package/src/utils/deep-merge.d.ts +14 -0
  316. package/src/utils/deep-merge.js +32 -0
  317. package/src/utils/hash.d.ts +1 -0
  318. package/src/utils/hash.js +7 -0
  319. package/src/utils/html-escaping.d.ts +7 -0
  320. package/src/utils/html-escaping.js +6 -0
  321. package/src/utils/html.js +4 -0
  322. package/src/utils/invariant.d.ts +5 -0
  323. package/src/utils/invariant.js +11 -0
  324. package/src/utils/locals-utils.d.ts +15 -0
  325. package/src/utils/locals-utils.js +24 -0
  326. package/src/utils/parse-cli-args.d.ts +27 -0
  327. package/src/utils/parse-cli-args.js +62 -0
  328. package/src/utils/path-utils.module.d.ts +5 -0
  329. package/src/utils/path-utils.module.js +14 -0
  330. package/src/utils/resolve-work-dir.d.ts +11 -0
  331. package/src/utils/resolve-work-dir.js +31 -0
  332. package/src/utils/runtime.d.ts +11 -0
  333. package/src/utils/runtime.js +40 -0
  334. package/src/utils/server-utils.module.d.ts +19 -0
  335. package/src/utils/server-utils.module.js +56 -0
  336. package/src/watchers/project-watcher.d.ts +136 -0
  337. package/src/watchers/project-watcher.js +275 -0
  338. package/src/watchers/project-watcher.test-helpers.d.ts +4 -0
  339. package/src/watchers/project-watcher.test-helpers.js +52 -0
  340. package/src/adapters/abstract/application-adapter.test.ts +0 -218
  341. package/src/adapters/abstract/application-adapter.ts +0 -379
  342. package/src/adapters/abstract/router-adapter.ts +0 -30
  343. package/src/adapters/abstract/server-adapter.ts +0 -79
  344. package/src/adapters/bun/client-bridge.ts +0 -62
  345. package/src/adapters/bun/create-app.ts +0 -214
  346. package/src/adapters/bun/hmr-manager.test.ts +0 -265
  347. package/src/adapters/bun/hmr-manager.ts +0 -88
  348. package/src/adapters/bun/index.ts +0 -2
  349. package/src/adapters/bun/runtime-host.ts +0 -76
  350. package/src/adapters/bun/server-adapter.ts +0 -605
  351. package/src/adapters/bun/static-preview-host.ts +0 -70
  352. package/src/adapters/create-app.test.ts +0 -10
  353. package/src/adapters/create-app.ts +0 -91
  354. package/src/adapters/index.ts +0 -2
  355. package/src/adapters/node/create-app.test.ts +0 -76
  356. package/src/adapters/node/create-app.ts +0 -116
  357. package/src/adapters/node/http-request-bridge.test.ts +0 -146
  358. package/src/adapters/node/http-request-bridge.ts +0 -176
  359. package/src/adapters/node/node-client-bridge.test.ts +0 -198
  360. package/src/adapters/node/node-client-bridge.ts +0 -79
  361. package/src/adapters/node/node-hmr-manager.test.ts +0 -374
  362. package/src/adapters/node/node-hmr-manager.ts +0 -72
  363. package/src/adapters/node/runtime-host.test.ts +0 -49
  364. package/src/adapters/node/runtime-host.ts +0 -113
  365. package/src/adapters/node/server-adapter-dependencies.ts +0 -28
  366. package/src/adapters/node/server-adapter.test.ts +0 -84
  367. package/src/adapters/node/server-adapter.ts +0 -423
  368. package/src/adapters/node/static-content-server.test.ts +0 -60
  369. package/src/adapters/node/static-content-server.ts +0 -239
  370. package/src/adapters/node/static-preview-host.test.ts +0 -89
  371. package/src/adapters/node/static-preview-host.ts +0 -101
  372. package/src/adapters/shared/api-response.test.ts +0 -97
  373. package/src/adapters/shared/api-response.ts +0 -104
  374. package/src/adapters/shared/application-adapter.ts +0 -199
  375. package/src/adapters/shared/define-api-handler.ts +0 -66
  376. package/src/adapters/shared/explicit-static-render-preparation.ts +0 -58
  377. package/src/adapters/shared/explicit-static-route-matcher.test.ts +0 -381
  378. package/src/adapters/shared/explicit-static-route-matcher.ts +0 -131
  379. package/src/adapters/shared/file-route-middleware-pipeline.test.ts +0 -85
  380. package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -118
  381. package/src/adapters/shared/fs-server-response-factory.test.ts +0 -176
  382. package/src/adapters/shared/fs-server-response-factory.ts +0 -96
  383. package/src/adapters/shared/fs-server-response-matcher.test.ts +0 -311
  384. package/src/adapters/shared/fs-server-response-matcher.ts +0 -240
  385. package/src/adapters/shared/hmr-entrypoint-registrar.ts +0 -149
  386. package/src/adapters/shared/hmr-html-response.ts +0 -54
  387. package/src/adapters/shared/hmr-manager.contract.test.ts +0 -228
  388. package/src/adapters/shared/hmr-manager.dispatch.test.ts +0 -229
  389. package/src/adapters/shared/render-context.test.ts +0 -244
  390. package/src/adapters/shared/render-context.ts +0 -161
  391. package/src/adapters/shared/runtime-app-bootstrap.test.ts +0 -96
  392. package/src/adapters/shared/runtime-app-bootstrap.ts +0 -72
  393. package/src/adapters/shared/runtime-host.ts +0 -11
  394. package/src/adapters/shared/server-adapter.test.ts +0 -130
  395. package/src/adapters/shared/server-adapter.ts +0 -571
  396. package/src/adapters/shared/server-route-handler.test.ts +0 -112
  397. package/src/adapters/shared/server-route-handler.ts +0 -153
  398. package/src/adapters/shared/server-static-builder.test.ts +0 -338
  399. package/src/adapters/shared/server-static-builder.ts +0 -170
  400. package/src/adapters/shared/shared-hmr-manager.ts +0 -298
  401. package/src/adapters/shared/static-preview-host.ts +0 -12
  402. package/src/build/browser-runtime-manifest.test.ts +0 -121
  403. package/src/build/browser-runtime-manifest.ts +0 -105
  404. package/src/build/browser-runtime-plugin-helpers.test.ts +0 -49
  405. package/src/build/browser-runtime-plugin.test.ts +0 -256
  406. package/src/build/browser-runtime-plugin.ts +0 -306
  407. package/src/build/build-adapter.test.ts +0 -463
  408. package/src/build/build-adapter.ts +0 -788
  409. package/src/build/build-manifest.ts +0 -79
  410. package/src/build/build-types.ts +0 -83
  411. package/src/build/rolldown-build-adapter.test.ts +0 -352
  412. package/src/build/rolldown-build-adapter.ts +0 -363
  413. package/src/build/rolldown-plugin-bridge.test.ts +0 -256
  414. package/src/build/rolldown-plugin-bridge.ts +0 -309
  415. package/src/build/runtime-build-executor.test.ts +0 -130
  416. package/src/build/runtime-build-output-normalizer.ts +0 -137
  417. package/src/build/serialized-build-executor.test.ts +0 -96
  418. package/src/build/serialized-build-executor.ts +0 -90
  419. package/src/build/server-side-css-shim-plugin.ts +0 -77
  420. package/src/cache/module-parse-cache.test.ts +0 -73
  421. package/src/cache/module-parse-cache.ts +0 -137
  422. package/src/config/config-builder.test.ts +0 -456
  423. package/src/config/config-builder.ts +0 -728
  424. package/src/config/config-builder.typecheck.test.ts +0 -96
  425. package/src/dev/host-runtime.ts +0 -34
  426. package/src/dev/sc-server.ts +0 -143
  427. package/src/eco/eco.browser.test.ts +0 -43
  428. package/src/eco/eco.browser.ts +0 -137
  429. package/src/eco/eco.test.ts +0 -781
  430. package/src/eco/eco.ts +0 -262
  431. package/src/eco/eco.types.ts +0 -293
  432. package/src/eco/eco.utils.test.ts +0 -219
  433. package/src/eco/eco.utils.ts +0 -5
  434. package/src/eco/global-injector-map.test.ts +0 -42
  435. package/src/eco/global-injector-map.ts +0 -112
  436. package/src/eco/lazy-injector-map.test.ts +0 -66
  437. package/src/eco/lazy-injector-map.ts +0 -120
  438. package/src/eco/module-dependencies.test.ts +0 -30
  439. package/src/eco/module-dependencies.ts +0 -75
  440. package/src/errors/http-error.test.ts +0 -134
  441. package/src/errors/http-error.ts +0 -72
  442. package/src/errors/index.ts +0 -3
  443. package/src/errors/locals-access-error.ts +0 -7
  444. package/src/global/app-logger.ts +0 -4
  445. package/src/global/utils.test.ts +0 -12
  446. 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
  447. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
  448. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
  449. package/src/hmr/client/hmr-runtime.ts +0 -162
  450. package/src/hmr/hmr-strategy.test.ts +0 -124
  451. package/src/hmr/hmr-strategy.ts +0 -177
  452. package/src/hmr/hmr.postcss.test.e2e.ts +0 -41
  453. package/src/hmr/hmr.test.e2e.ts +0 -66
  454. package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
  455. package/src/hmr/strategies/js-hmr-strategy.test.ts +0 -344
  456. package/src/hmr/strategies/js-hmr-strategy.ts +0 -307
  457. package/src/index.browser.ts +0 -3
  458. package/src/index.ts +0 -15
  459. package/src/integrations/ghtml/ghtml-renderer.test.ts +0 -253
  460. package/src/integrations/ghtml/ghtml-renderer.ts +0 -87
  461. package/src/integrations/ghtml/ghtml.constants.ts +0 -1
  462. package/src/integrations/ghtml/ghtml.plugin.ts +0 -28
  463. package/src/plugins/alias-resolver-cache.test.ts +0 -110
  464. package/src/plugins/alias-resolver-cache.ts +0 -145
  465. package/src/plugins/alias-resolver-plugin.test.ts +0 -41
  466. package/src/plugins/alias-resolver-plugin.ts +0 -75
  467. package/src/plugins/eco-component-meta-plugin.test.ts +0 -421
  468. package/src/plugins/eco-component-meta-plugin.ts +0 -518
  469. package/src/plugins/foreign-jsx-override-plugin.test.ts +0 -65
  470. package/src/plugins/foreign-jsx-override-plugin.ts +0 -76
  471. package/src/plugins/integration-plugin.test.ts +0 -151
  472. package/src/plugins/integration-plugin.ts +0 -344
  473. package/src/plugins/processor.test.ts +0 -148
  474. package/src/plugins/processor.ts +0 -257
  475. package/src/plugins/source-transform.test.ts +0 -82
  476. package/src/plugins/source-transform.ts +0 -123
  477. package/src/route-renderer/orchestration/component-render-context.ts +0 -338
  478. package/src/route-renderer/orchestration/declared-ownership-graph.ts +0 -62
  479. package/src/route-renderer/orchestration/foreign-subtree-execution.service.ts +0 -431
  480. package/src/route-renderer/orchestration/integration-renderer.test.ts +0 -2251
  481. package/src/route-renderer/orchestration/integration-renderer.ts +0 -1384
  482. package/src/route-renderer/orchestration/ownership-planning.service.ts +0 -97
  483. package/src/route-renderer/orchestration/ownership-validation.service.ts +0 -76
  484. package/src/route-renderer/orchestration/processed-asset-dedupe.ts +0 -29
  485. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.test.ts +0 -435
  486. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.ts +0 -310
  487. package/src/route-renderer/orchestration/render-output.utils.ts +0 -310
  488. package/src/route-renderer/orchestration/route-render-orchestrator.prepare-render-options.test.ts +0 -1365
  489. package/src/route-renderer/orchestration/route-render-orchestrator.test.ts +0 -267
  490. package/src/route-renderer/orchestration/route-render-orchestrator.ts +0 -879
  491. package/src/route-renderer/orchestration/template-serialization.test.ts +0 -110
  492. package/src/route-renderer/orchestration/template-serialization.ts +0 -117
  493. package/src/route-renderer/page-loading/component-dependency-collection.ts +0 -202
  494. package/src/route-renderer/page-loading/declared-asset-collection.ts +0 -153
  495. package/src/route-renderer/page-loading/dependency-resolver.test.ts +0 -761
  496. package/src/route-renderer/page-loading/dependency-resolver.ts +0 -144
  497. package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +0 -75
  498. package/src/route-renderer/page-loading/lazy-entry-collection.ts +0 -167
  499. package/src/route-renderer/page-loading/lazy-trigger-planning.ts +0 -74
  500. package/src/route-renderer/page-loading/module-declaration-aggregation.ts +0 -60
  501. package/src/route-renderer/page-loading/module-declaration-scripts.ts +0 -16
  502. package/src/route-renderer/page-loading/page-dependency-bundling.ts +0 -244
  503. package/src/route-renderer/page-loading/page-module-loader.test.ts +0 -183
  504. package/src/route-renderer/page-loading/page-module-loader.ts +0 -184
  505. package/src/route-renderer/route-renderer.ts +0 -133
  506. package/src/router/client/link-intent.test.browser.ts +0 -51
  507. package/src/router/client/link-intent.ts +0 -92
  508. package/src/router/client/navigation-coordinator.test.ts +0 -237
  509. package/src/router/client/navigation-coordinator.ts +0 -453
  510. package/src/router/server/route-registry.test.ts +0 -176
  511. package/src/router/server/route-registry.ts +0 -382
  512. package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +0 -66
  513. package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +0 -473
  514. package/src/services/assets/asset-processing-service/asset-processing.service.ts +0 -344
  515. package/src/services/assets/asset-processing-service/asset.factory.test.ts +0 -63
  516. package/src/services/assets/asset-processing-service/asset.factory.ts +0 -105
  517. package/src/services/assets/asset-processing-service/assets.types.ts +0 -128
  518. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +0 -74
  519. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +0 -98
  520. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +0 -67
  521. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +0 -78
  522. package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +0 -104
  523. package/src/services/assets/asset-processing-service/index.ts +0 -6
  524. package/src/services/assets/asset-processing-service/page-package.test.ts +0 -135
  525. package/src/services/assets/asset-processing-service/page-package.ts +0 -103
  526. package/src/services/assets/asset-processing-service/processor.registry.ts +0 -18
  527. package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +0 -59
  528. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +0 -83
  529. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +0 -173
  530. package/src/services/assets/asset-processing-service/processors/index.ts +0 -5
  531. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +0 -188
  532. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +0 -138
  533. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +0 -326
  534. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +0 -116
  535. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +0 -270
  536. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +0 -145
  537. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +0 -261
  538. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -72
  539. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -83
  540. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +0 -65
  541. package/src/services/assets/browser-bundle.service.test.ts +0 -66
  542. package/src/services/assets/browser-bundle.service.ts +0 -109
  543. package/src/services/cache/cache.types.ts +0 -126
  544. package/src/services/cache/index.ts +0 -18
  545. package/src/services/cache/memory-cache-store.test.ts +0 -225
  546. package/src/services/cache/memory-cache-store.ts +0 -130
  547. package/src/services/cache/page-cache-service.test.ts +0 -175
  548. package/src/services/cache/page-cache-service.ts +0 -202
  549. package/src/services/cache/page-request-cache-coordinator.service.test.ts +0 -79
  550. package/src/services/cache/page-request-cache-coordinator.service.ts +0 -131
  551. package/src/services/html/html-rewriter-provider.service.test.ts +0 -183
  552. package/src/services/html/html-rewriter-provider.service.ts +0 -105
  553. package/src/services/html/html-transformer.service.test.ts +0 -544
  554. package/src/services/html/html-transformer.service.ts +0 -369
  555. package/src/services/invalidation/development-invalidation.service.test.ts +0 -87
  556. package/src/services/invalidation/development-invalidation.service.ts +0 -262
  557. package/src/services/module-loading/app-module-loader.service.ts +0 -9
  558. package/src/services/module-loading/app-server-module-transpiler.service.test.ts +0 -297
  559. package/src/services/module-loading/app-server-module-transpiler.service.ts +0 -168
  560. package/src/services/module-loading/host-module-loader-registry.ts +0 -15
  561. package/src/services/module-loading/page-module-import.service.test.ts +0 -652
  562. package/src/services/module-loading/page-module-import.service.ts +0 -302
  563. package/src/services/module-loading/server-module-transpiler.service.test.ts +0 -242
  564. package/src/services/module-loading/server-module-transpiler.service.ts +0 -104
  565. package/src/services/module-loading/source-module-support.ts +0 -19
  566. package/src/services/runtime-state/dev-graph.service.ts +0 -217
  567. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +0 -136
  568. package/src/services/runtime-state/server-invalidation-state.service.ts +0 -68
  569. package/src/services/validation/schema-validation-service.test.ts +0 -223
  570. package/src/services/validation/schema-validation-service.ts +0 -204
  571. package/src/static-site-generator/static-site-generator.test.ts +0 -408
  572. package/src/static-site-generator/static-site-generator.ts +0 -445
  573. package/src/types/internal-types.ts +0 -243
  574. package/src/types/public-types.ts +0 -1508
  575. package/src/utils/deep-merge.test.ts +0 -114
  576. package/src/utils/deep-merge.ts +0 -47
  577. package/src/utils/hash.ts +0 -5
  578. package/src/utils/html-escaping.ts +0 -9
  579. package/src/utils/invariant.test.ts +0 -22
  580. package/src/utils/invariant.ts +0 -15
  581. package/src/utils/locals-utils.ts +0 -37
  582. package/src/utils/parse-cli-args.test.ts +0 -69
  583. package/src/utils/parse-cli-args.ts +0 -105
  584. package/src/utils/path-utils.module.ts +0 -14
  585. package/src/utils/path-utils.test.ts +0 -15
  586. package/src/utils/resolve-work-dir.ts +0 -45
  587. package/src/utils/runtime.ts +0 -44
  588. package/src/utils/server-utils.module.ts +0 -67
  589. package/src/utils/server-utils.test.ts +0 -38
  590. package/src/watchers/project-watcher.integration.test.ts +0 -337
  591. package/src/watchers/project-watcher.test-helpers.ts +0 -42
  592. package/src/watchers/project-watcher.test.ts +0 -768
  593. package/src/watchers/project-watcher.ts +0 -357
  594. /package/src/utils/{html.ts → html.d.ts} +0 -0
@@ -0,0 +1,534 @@
1
+ /**
2
+ * This module contains the abstract class for the Integration Renderer
3
+ * Every integration renderer should extend this class
4
+ * @module
5
+ */
6
+ import type { EcoPagesAppConfig, IHmrManager } from '../../types/internal-types.js';
7
+ import type { ComponentRenderInput, ComponentRenderResult, ForeignSubtreeRenderPayload, EcoComponent, EcoComponentDependencies, EcoPageFile, EcoPagesElement, BaseIntegrationContext, HtmlTemplateProps, IntegrationRendererRenderOptions, PageBrowserGraphContribution, PageBrowserGraphContributionContext, PageBrowserGraphResult, PageMetadataProps, RouteRendererBody, RouteRendererOptions, RouteRenderResult } from '../../types/public-types.js';
8
+ import { type AssetProcessingService, type ProcessedAsset } from '../../services/assets/asset-processing-service/index.js';
9
+ import { HtmlTransformerService } from '../../services/html/html-transformer.service.js';
10
+ import type { HtmlDocumentContribution } from '../../services/html/html-transformer.service.js';
11
+ import { HttpError } from '../../errors/http-error.js';
12
+ import { DependencyResolverService } from '../page-loading/dependency-resolver.js';
13
+ import { PageModuleLoaderService } from '../page-loading/page-module-loader.js';
14
+ import { type RouteHtmlFinalization, RouteRenderOrchestrator, type RouteRenderOrchestratorAdapter, type RouteRenderOrchestratorResolvedInputs } from './route-render-orchestrator.js';
15
+ import type { ForeignChildRuntime } from './component-render-context.js';
16
+ import { ForeignSubtreeExecutionService, type ForeignSubtreeExecutionOwningRenderer } from './foreign-subtree-execution.service.js';
17
+ import { type QueuedForeignSubtreeResolutionContext } from './queued-foreign-subtree-resolution.service.js';
18
+ /**
19
+ * Controls how one route module is loaded outside the normal render path.
20
+ *
21
+ * Request-time metadata inspection and static-generation probes use these
22
+ * options to isolate their module identity from the main render cache while
23
+ * still going through the owning integration's import setup.
24
+ */
25
+ export type RouteModuleLoadOptions = {
26
+ bypassCache?: boolean;
27
+ cacheScope?: string;
28
+ };
29
+ /**
30
+ * Context for renderToResponse method.
31
+ */
32
+ export interface RenderToResponseContext {
33
+ partial?: boolean;
34
+ status?: number;
35
+ headers?: HeadersInit;
36
+ }
37
+ export type HtmlDocumentContributionContext<C = EcoPagesElement> = {
38
+ renderOptions?: IntegrationRendererRenderOptions<C>;
39
+ partial?: boolean;
40
+ };
41
+ export type { PageBrowserGraphContribution, PageBrowserGraphContributionContext } from '../../types/public-types.js';
42
+ export type { HtmlDocumentContribution } from '../../services/html/html-transformer.service.js';
43
+ /**
44
+ * The IntegrationRenderer class is an abstract class that provides a base for rendering integration-specific components in the EcoPages framework.
45
+ * It handles the import of page files, collection of dependencies, and preparation of render options.
46
+ * The class is designed to be extended by specific integration renderers.
47
+ */
48
+ export declare abstract class IntegrationRenderer<C = EcoPagesElement> {
49
+ abstract name: string;
50
+ protected appConfig: EcoPagesAppConfig;
51
+ protected assetProcessingService: AssetProcessingService;
52
+ protected htmlTransformer: HtmlTransformerService;
53
+ protected hmrManager?: IHmrManager;
54
+ protected resolvedIntegrationDependencies: ProcessedAsset[];
55
+ protected rendererModules?: unknown;
56
+ protected options: Required<IntegrationRendererRenderOptions>;
57
+ protected runtimeOrigin: string;
58
+ protected dependencyResolverService: DependencyResolverService;
59
+ protected pageModuleLoaderService: PageModuleLoaderService;
60
+ protected routeRenderOrchestrator: RouteRenderOrchestrator;
61
+ protected readonly foreignSubtreeExecutionService: ForeignSubtreeExecutionService;
62
+ protected DOC_TYPE: string;
63
+ /**
64
+ * Loads one route module through the owning renderer's import path.
65
+ *
66
+ * Request-time infrastructure may need page metadata such as cache strategy or
67
+ * middleware before full rendering starts. Exposing this narrow entrypoint lets
68
+ * those callers reuse integration-specific import setup instead of bypassing it
69
+ * with raw transpiler access.
70
+ */
71
+ loadPageModule(file: string, options?: RouteModuleLoadOptions): Promise<EcoPageFile>;
72
+ /**
73
+ * Reads the execution-scoped owning-renderer cache from one render input.
74
+ *
75
+ * Shared page/layout/document shell helpers pass one cache through
76
+ * `integrationContext` so repeated delegation to the same foreign integration
77
+ * can reuse a single initialized renderer instance during one render flow.
78
+ * The cache is deliberately scoped to the current render execution rather than
79
+ * stored on the renderer, which avoids leaking mutable integration state across
80
+ * requests while still preventing redundant renderer initialization.
81
+ *
82
+ * @param integrationContext - Optional render context carried with one render input.
83
+ * @returns The current execution cache when present.
84
+ */
85
+ private getOwningRendererCache;
86
+ private getForeignOwnerIntegrationName;
87
+ /**
88
+ * Attaches an execution-scoped owning-renderer cache to one render input.
89
+ *
90
+ * Foreign-owned page, layout, or document shells may delegate several times in
91
+ * the same render flow. Threading the cache through `integrationContext`
92
+ * preserves renderer reuse without changing the public render input contract.
93
+ * Existing integration-specific context is preserved and augmented.
94
+ *
95
+ * @param input - Original render input.
96
+ * @param rendererCache - Execution-scoped renderer cache to propagate.
97
+ * @returns Render input augmented with the shared renderer cache.
98
+ */
99
+ private withOwningRendererCache;
100
+ protected getRendererModuleValue(key: string): unknown;
101
+ protected getRendererModuleString(key: string): string | undefined;
102
+ protected getRendererBootstrapDependencies(partial?: boolean): ProcessedAsset[];
103
+ setHmrManager(hmrManager: IHmrManager): void;
104
+ /**
105
+ * Build response headers with optional custom headers.
106
+ * @param contentType - The Content-Type header value
107
+ * @param customHeaders - Optional custom headers to merge
108
+ * @returns Headers object
109
+ */
110
+ protected buildHeaders(contentType: string, customHeaders?: HeadersInit): Headers;
111
+ /**
112
+ * Create an HTML Response.
113
+ * @param body - Response body (string or ReadableStream)
114
+ * @param ctx - Render context with status and headers
115
+ * @returns Response object
116
+ */
117
+ protected createHtmlResponse(body: BodyInit, ctx: RenderToResponseContext): Response;
118
+ /**
119
+ * Create an HttpError for render failures.
120
+ * @param message - Error message
121
+ * @param cause - Original error if available
122
+ * @returns HttpError with 500 status
123
+ */
124
+ protected createRenderError(message: string, cause?: unknown): HttpError;
125
+ /**
126
+ * Prepares dependencies for renderToResponse by resolving component dependencies
127
+ * and configuring the HTML transformer.
128
+ * @param view - The view component being rendered
129
+ * @param layout - Optional layout component
130
+ * @returns Resolved processed assets
131
+ */
132
+ protected prepareViewDependencies(view: EcoComponent, layout?: EcoComponent): Promise<ProcessedAsset[]>;
133
+ protected resolvePageBrowserGraphForFile(filePath: string): Promise<PageBrowserGraphResult | undefined>;
134
+ protected mergePageBrowserGraphIntoPagePackage(pageBrowserGraph?: PageBrowserGraphResult): PageBrowserGraphResult | undefined;
135
+ /**
136
+ * Merges component-scoped assets into the active HTML transformer state.
137
+ *
138
+ * Explicit page, layout, and document shell composition can produce assets at
139
+ * each foreign subtree. This helper deduplicates those groups and folds them back into
140
+ * the transformer so downstream HTML finalization sees one canonical asset set.
141
+ *
142
+ * @param assetGroups - Optional groups of processed assets to merge.
143
+ * @returns The deduplicated asset subset contributed by this merge operation.
144
+ */
145
+ protected appendProcessedDependencies(...assetGroups: Array<readonly ProcessedAsset[] | undefined>): ProcessedAsset[];
146
+ /**
147
+ * Resolves metadata for explicit view rendering.
148
+ *
149
+ * When a view declares a `metadata()` function, that contract owns the final
150
+ * metadata for the explicit render. Otherwise the app-level default metadata is
151
+ * reused so explicit routes and page-module routes share the same fallback.
152
+ *
153
+ * @param view - View component being rendered.
154
+ * @param props - Props passed to the view.
155
+ * @returns Resolved metadata for the final document shell.
156
+ */
157
+ protected resolveViewMetadata<P>(view: EcoComponent<P>, props: P): Promise<PageMetadataProps>;
158
+ /**
159
+ * Renders one explicit view response in partial mode.
160
+ *
161
+ * Same-integration views can optionally stream or render inline via the caller's
162
+ * `renderInline()` hook. Once a view may cross integration boundaries, this
163
+ * helper routes the render through `renderComponentWithForeignChildren()` instead so mixed
164
+ * shells can reuse the execution-scoped renderer cache and resolve nested
165
+ * foreign ownership before the partial response is returned.
166
+ *
167
+ * @param input - View render options for the partial response.
168
+ * @returns HTML response for the partial render.
169
+ */
170
+ protected renderPartialViewResponse<P>(input: {
171
+ view: EcoComponent<P>;
172
+ props: P;
173
+ ctx: RenderToResponseContext;
174
+ renderInline?: () => Promise<BodyInit>;
175
+ transformHtml?: (html: string) => string;
176
+ }): Promise<Response>;
177
+ /**
178
+ * Renders an explicit view through optional layout and document shells.
179
+ *
180
+ * This helper is the shared explicit-route path for string-oriented and mixed
181
+ * integrations. It prepares view dependencies, resolves metadata, and composes
182
+ * view, layout, and html template boundaries with one execution-scoped renderer
183
+ * cache so repeated foreign shell delegation can reuse initialized renderers
184
+ * during the same render flow.
185
+ *
186
+ * @param input - View, props, and optional layout metadata for the render.
187
+ * @returns HTML response for the explicit view render.
188
+ */
189
+ protected renderViewWithDocumentShell<P>(input: {
190
+ view: EcoComponent<P>;
191
+ props: P;
192
+ ctx: RenderToResponseContext;
193
+ layout?: EcoComponent;
194
+ }): Promise<Response>;
195
+ /**
196
+ * Renders a route page through optional layout and document shells.
197
+ *
198
+ * Route rendering and explicit view rendering now share the same renderer-owned
199
+ * shell composition model. This helper composes page, layout, and html template
200
+ * renders while threading one execution-scoped renderer cache through every
201
+ * delegated foreign subtree so foreign shell ownership remains stable and renderer
202
+ * initialization is reused inside the current request.
203
+ *
204
+ * @param input - Page, layout, document, and metadata inputs for the route render.
205
+ * @returns Final serialized document HTML including the doctype prefix.
206
+ */
207
+ protected renderPageWithDocumentShell(input: {
208
+ page: {
209
+ component: EcoComponent;
210
+ props: Record<string, unknown>;
211
+ };
212
+ layout?: {
213
+ component: EcoComponent;
214
+ props?: Record<string, unknown>;
215
+ };
216
+ htmlTemplate: EcoComponent;
217
+ metadata: PageMetadataProps;
218
+ pageProps: Record<string, unknown>;
219
+ documentProps?: Record<string, unknown>;
220
+ transformDocumentHtml?: (html: string) => string;
221
+ }): Promise<string>;
222
+ private composeDocumentShell;
223
+ /**
224
+ * Renders one string-first component with serialized children and collects its assets.
225
+ *
226
+ * String-oriented integrations frequently share the same component contract:
227
+ * pass serialized children through props, coerce the render result to HTML, and
228
+ * attach any component-scoped dependencies. This helper centralizes that flow
229
+ * so integrations can opt into shared orchestration without repeating the same
230
+ * string-render boilerplate.
231
+ *
232
+ * @param input - Component render input.
233
+ * @param component - String-oriented component implementation to execute.
234
+ * @returns Structured component render result for orchestration paths.
235
+ */
236
+ protected renderStringComponentWithSerializedChildren(input: ComponentRenderInput, component: (props: Record<string, unknown>) => Promise<EcoPagesElement> | EcoPagesElement): Promise<ComponentRenderResult>;
237
+ protected getForeignSubtreeTokenPrefix(): string;
238
+ protected getForeignSubtreeResolutionContextKey(): string;
239
+ protected createQueuedForeignSubtreeExecutionRuntime<TContext extends QueuedForeignSubtreeResolutionContext>(options: {
240
+ renderInput: ComponentRenderInput;
241
+ rendererCache: Map<string, IntegrationRenderer<any>>;
242
+ runtimeContextKey?: string;
243
+ tokenPrefix?: string;
244
+ createRuntimeContext?: (integrationContext: BaseIntegrationContext & Record<string, unknown>, rendererCache: Map<string, unknown>) => TContext;
245
+ }): ForeignChildRuntime;
246
+ protected getQueuedForeignSubtreeResolutionContext<TContext extends QueuedForeignSubtreeResolutionContext>(input: ComponentRenderInput): TContext | undefined;
247
+ /**
248
+ * Renders a string-first component, then resolves any queued foreign
249
+ * boundaries before returning final component HTML.
250
+ */
251
+ protected renderStringComponentWithQueuedForeignSubtrees(input: ComponentRenderInput, component: (props: Record<string, unknown>) => Promise<EcoPagesElement> | EcoPagesElement): Promise<ComponentRenderResult>;
252
+ constructor({ appConfig, assetProcessingService, resolvedIntegrationDependencies, rendererModules, runtimeOrigin, }: {
253
+ appConfig: EcoPagesAppConfig;
254
+ assetProcessingService: AssetProcessingService;
255
+ resolvedIntegrationDependencies?: ProcessedAsset[];
256
+ rendererModules?: unknown;
257
+ runtimeOrigin: string;
258
+ });
259
+ /**
260
+ * Returns the HTML path from the provided file path.
261
+ * It extracts the path relative to the pages directory and removes the 'index' part if present.
262
+ *
263
+ * @param file - The file path to extract the HTML path from.
264
+ * @returns The extracted HTML path.
265
+ */
266
+ protected getHtmlPath({ file }: {
267
+ file: string;
268
+ }): string;
269
+ /**
270
+ * Returns the HTML template component.
271
+ * It imports the HTML template from the specified path in the app configuration.
272
+ *
273
+ * @returns The HTML template component.
274
+ */
275
+ protected getHtmlTemplate(): Promise<EcoComponent<HtmlTemplateProps>>;
276
+ protected usesIntegrationPageImporter(_file: string): boolean;
277
+ protected importIntegrationPageFile(_file: string, _options?: RouteModuleLoadOptions): Promise<EcoPageFile>;
278
+ protected normalizeImportedPageFile<TPageModule extends EcoPageFile>(_file: string, pageModule: TPageModule): TPageModule;
279
+ /**
280
+ * Imports the page file from the specified path.
281
+ * It uses dynamic import to load the file and returns the imported module.
282
+ *
283
+ * @param file - The file path to import.
284
+ * @returns The imported module.
285
+ */
286
+ protected importPageFile(file: string, options?: RouteModuleLoadOptions): Promise<EcoPageFile>;
287
+ /**
288
+ * Resolves the dependency path based on the component directory.
289
+ * It combines the component directory with the provided path URL.
290
+ *
291
+ * @param componentDir - The component directory path.
292
+ * @param pathUrl - The path URL to resolve.
293
+ * @returns The resolved dependency path.
294
+ */
295
+ protected resolveDependencyPath(componentDir: string, pathUrl: string): string;
296
+ /**
297
+ * Extracts the dependencies from the provided component configuration.
298
+ * It resolves the paths for scripts and stylesheets based on the component directory.
299
+ *
300
+ * @param componentDir - The component directory path.
301
+ * @param scripts - The scripts to extract.
302
+ * @param stylesheets - The stylesheets to extract.
303
+ * @returns The extracted dependencies.
304
+ */
305
+ protected extractDependencies({ componentDir, scripts, stylesheets, }: {
306
+ componentDir: string;
307
+ } & EcoComponentDependencies): EcoComponentDependencies;
308
+ /**
309
+ * Resolves lazy script paths to public asset URLs.
310
+ * Converts source paths to their final bundled output paths.
311
+ *
312
+ * @param componentDir - The component directory path.
313
+ * @param scripts - The lazy script paths to resolve.
314
+ * @returns Comma-separated string of resolved public script paths.
315
+ */
316
+ protected resolveLazyScripts(componentDir: string, scripts: string[]): string;
317
+ /**
318
+ * Collects the dependencies for the provided components.
319
+ * Combines component-specific dependencies with global integration dependencies.
320
+ *
321
+ * @param components - The components to collect dependencies from.
322
+ */
323
+ protected resolveDependencies(components: (EcoComponent | Partial<EcoComponent>)[]): Promise<ProcessedAsset[]>;
324
+ /**
325
+ * Processes component-specific dependencies WITHOUT prepending global integration dependencies.
326
+ * Use this method when you need only the component's own assets.
327
+ *
328
+ * @param components - The components to collect dependencies from.
329
+ */
330
+ protected processComponentDependencies(components: (EcoComponent | Partial<EcoComponent>)[]): Promise<ProcessedAsset[]>;
331
+ /**
332
+ * Builds the internal route-render adapter consumed by `RouteRenderOrchestrator`.
333
+ *
334
+ * The route orchestrator needs a narrow orchestration contract, but those hooks should
335
+ * not become public API on the renderer base class. Keeping the adapter object
336
+ * local to the execution path lets the orchestrator depend on one explicit seam while
337
+ * subclasses continue to override protected renderer behavior directly.
338
+ */
339
+ protected createRouteRenderOrchestratorAdapter(): RouteRenderOrchestratorAdapter<C>;
340
+ protected resolveRouteRenderInputs(routeOptions: RouteRendererOptions): Promise<RouteRenderOrchestratorResolvedInputs>;
341
+ protected resolveRouteDependencies(input: {
342
+ components: (EcoComponent | Partial<EcoComponent>)[];
343
+ }): Promise<{
344
+ resolvedDependencies: ProcessedAsset[];
345
+ }>;
346
+ protected resolveRoutePageComponentRender(input: {
347
+ Page: EcoComponent;
348
+ Layout?: EcoComponent;
349
+ props: Record<string, unknown>;
350
+ routeOptions: RouteRendererOptions;
351
+ }): Promise<ComponentRenderResult | undefined>;
352
+ protected renderRouteBody(renderOptions: IntegrationRendererRenderOptions<C>): Promise<RouteRendererBody>;
353
+ protected getRouteHtmlFinalization(renderOptions: IntegrationRendererRenderOptions<C>): RouteHtmlFinalization;
354
+ protected transformRouteResponse(response: Response, htmlContributions?: HtmlDocumentContribution[]): Promise<RouteRendererBody>;
355
+ /**
356
+ * Prepares the render options for the integration renderer.
357
+ * It imports the page file, collects dependencies, and prepares the render options.
358
+ *
359
+ * @param options - The route renderer options.
360
+ * @returns The prepared render options.
361
+ */
362
+ protected prepareRenderOptions(options: RouteRendererOptions, adapter?: RouteRenderOrchestratorAdapter<C>): Promise<IntegrationRendererRenderOptions<C>>;
363
+ /**
364
+ * Controls whether the page root should be rendered through `renderComponent()`
365
+ * during route option preparation in component-capable modes.
366
+ *
367
+ * Integrations that already own page-level hydration (for example router-driven
368
+ * React rendering) can override this and return `false` to avoid duplicate root
369
+ * mount assets and competing hydration entrypoints.
370
+ */
371
+ protected shouldRenderPageComponent(_input: {
372
+ Page: EcoComponent;
373
+ Layout?: EcoComponent;
374
+ options: RouteRendererOptions;
375
+ }): boolean;
376
+ /**
377
+ * Executes the integration renderer with the provided options.
378
+ *
379
+ * Execution flow:
380
+ * 1. Build normalized render options (`prepareRenderOptions`).
381
+ * 2. Render the route body once.
382
+ * 3. Reject unresolved route-level eco-marker artifacts.
383
+ * 4. Optionally apply root attributes for page/component root boundaries.
384
+ * 5. Run HTML transformer with final dependency set.
385
+ *
386
+ * Stream-safety note: the first render result is normalized to a string once,
387
+ * then the pipeline continues with that immutable HTML value to avoid disturbed
388
+ * response-body errors.
389
+ *
390
+ * @param options Route renderer options.
391
+ * @returns Rendered route body plus effective cache strategy.
392
+ */
393
+ execute(options: RouteRendererOptions): Promise<RouteRenderResult>;
394
+ /**
395
+ * Finalizes already-resolved HTML for explicit renderer-owned paths.
396
+ *
397
+ * This keeps document and root-attribute stamping plus HTML transformation
398
+ * available after a renderer has completed nested foreign-subtree resolution without
399
+ * routing back through shared route execution.
400
+ */
401
+ protected finalizeResolvedHtml(options: {
402
+ html: string;
403
+ partial?: boolean;
404
+ componentRootAttributes?: Record<string, string>;
405
+ documentAttributes?: Record<string, string>;
406
+ transformHtml?: boolean;
407
+ htmlContributions?: HtmlDocumentContribution[];
408
+ }): Promise<string>;
409
+ /**
410
+ * Returns document-level attributes to stamp onto the rendered `<html>` tag.
411
+ *
412
+ * Integrations can override this to expose explicit document ownership or
413
+ * other runtime coordination markers without relying on script sniffing.
414
+ */
415
+ protected getDocumentAttributes(_renderOptions: IntegrationRendererRenderOptions<C>): Record<string, string> | undefined;
416
+ /**
417
+ * Returns declarative HTML fragments that core should inject into the final document.
418
+ *
419
+ * @remarks
420
+ * Integrations may contribute document markup here, but core retains ownership
421
+ * of the final HTML rewrite pipeline and placement semantics. This is the
422
+ * supported document-markup extension point for integrations instead of custom
423
+ * response finalization logic.
424
+ */
425
+ protected getHtmlDocumentContributions(_options: HtmlDocumentContributionContext<C>): HtmlDocumentContribution[] | undefined;
426
+ /**
427
+ * Returns a renderer instance for a given integration name.
428
+ *
429
+ * Uses a per-execution cache to avoid repeated renderer initialization.
430
+ *
431
+ * @param integrationName Target integration name.
432
+ * @param cache Render-pass renderer cache.
433
+ * @returns Renderer for the requested integration.
434
+ * @throws Error when no integration plugin matches `integrationName`.
435
+ */
436
+ protected getIntegrationRendererForName(integrationName: string, cache: Map<string, ForeignSubtreeExecutionOwningRenderer>): ForeignSubtreeExecutionOwningRenderer;
437
+ /**
438
+ * Abstract method to render the integration-specific component.
439
+ * This method should be implemented by the specific integration renderer.
440
+ *
441
+ * @param options - The integration renderer render options.
442
+ * @returns The rendered body.
443
+ */
444
+ abstract render(options: IntegrationRendererRenderOptions<C>): Promise<RouteRendererBody>;
445
+ /**
446
+ * Renders one component under this integration's foreign-child runtime and resolves
447
+ * any nested foreign children captured during that render.
448
+ *
449
+ * Without this wrapper, a component tree with foreign-owned descendants would
450
+ * render them with no active foreign-child runtime, which bypasses the owning
451
+ * renderer's nested foreign-child handoff.
452
+ */
453
+ renderComponentWithForeignChildren(input: ComponentRenderInput): Promise<ComponentRenderResult>;
454
+ /**
455
+ * Compatibility foreign-subtree contract that exposes a narrower payload shape for
456
+ * future route-composition work while preserving the current
457
+ * `renderComponentWithForeignChildren()` runtime semantics.
458
+ */
459
+ renderForeignSubtree(input: ComponentRenderInput): Promise<ForeignSubtreeRenderPayload>;
460
+ private normalizeComponentRenderOutput;
461
+ protected normalizeUnresolvedMarkerArtifactHtml(html: string): string;
462
+ /**
463
+ * Returns whether the component dependency tree crosses into another
464
+ * integration.
465
+ *
466
+ * This keeps foreign-child runtime setup narrow: same-integration trees can render
467
+ * directly without paying the queue orchestration cost.
468
+ */
469
+ protected hasForeignChildDescendants(component: EcoComponent): boolean;
470
+ /**
471
+ * Render a view directly to a Response object.
472
+ * Used for explicit routing where views are rendered from route handlers.
473
+ *
474
+ * @param view - The eco.page component to render
475
+ * @param props - Props to pass to the view
476
+ * @param ctx - Render context with partial flag and response options
477
+ * @returns A Response object with the rendered content
478
+ */
479
+ abstract renderToResponse<P = Record<string, unknown>>(view: EcoComponent<P>, props: P, ctx: RenderToResponseContext): Promise<Response>;
480
+ /**
481
+ * Render a single component and return structured output for orchestration paths.
482
+ *
483
+ * Default behavior delegates to `renderToResponse` in partial mode and wraps
484
+ * the resulting HTML into the `ComponentRenderResult` contract.
485
+ *
486
+ * In foreign-subtree resolution, this method is the integration-owned step that turns an
487
+ * already-resolved deferred foreign subtree into concrete HTML, assets, and optional
488
+ * root attributes.
489
+ *
490
+ * Integrations can override this for richer behavior (asset emission,
491
+ * root attributes, integration-specific hydration metadata).
492
+ *
493
+ * @param input Component render request.
494
+ * @returns Structured render result used by component/page orchestration.
495
+ */
496
+ renderComponent(input: ComponentRenderInput): Promise<ComponentRenderResult>;
497
+ /**
498
+ * Extracts the first root element tag name from HTML output.
499
+ *
500
+ * @param html HTML fragment.
501
+ * @returns Root tag name when present; otherwise `undefined`.
502
+ */
503
+ protected getRootTagName(html: string): string | undefined;
504
+ /**
505
+ * Collects declarative Page Browser Graph contributions for one Page.
506
+ *
507
+ * @remarks
508
+ * Integrations may describe page-scoped browser requirements here, while core
509
+ * retains ownership of dependency processing and final graph assembly. This is
510
+ * the supported page-browser extension point for integrations.
511
+ *
512
+ * @param context - The route file path and already imported page module.
513
+ * @returns Declarative dependencies or pre-resolved assets for the Page.
514
+ */
515
+ protected collectPageBrowserGraphContribution(_context: PageBrowserGraphContributionContext): Promise<PageBrowserGraphContribution | undefined>;
516
+ /**
517
+ * Creates the per-render foreign-child runtime adopted by the shared component
518
+ * render context.
519
+ *
520
+ * The default runtime queues delegated foreign subtrees inside the owning
521
+ * renderer so string and markup renderers do not need to re-declare the same
522
+ * handoff boilerplate. Override only when a renderer needs custom runtime
523
+ * context or a different foreign-child execution strategy.
524
+ */
525
+ protected createForeignChildRuntime(options: {
526
+ renderInput: ComponentRenderInput;
527
+ rendererCache: Map<string, IntegrationRenderer<any>>;
528
+ }): ForeignChildRuntime;
529
+ /**
530
+ * Creates an explicit fail-fast runtime for tests or renderers that do not
531
+ * support cross-integration foreign-child execution.
532
+ */
533
+ protected createFailFastForeignChildRuntime(): ForeignChildRuntime;
534
+ }