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

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 (546) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/package.json +162 -72
  3. package/src/adapters/abstract/application-adapter.d.ts +194 -0
  4. package/src/adapters/abstract/application-adapter.js +121 -0
  5. package/src/adapters/abstract/router-adapter.d.ts +26 -0
  6. package/src/adapters/abstract/router-adapter.js +5 -0
  7. package/src/adapters/abstract/server-adapter.d.ts +69 -0
  8. package/src/adapters/abstract/server-adapter.js +15 -0
  9. package/src/adapters/bun/client-bridge.d.ts +34 -0
  10. package/src/adapters/bun/client-bridge.js +48 -0
  11. package/src/adapters/bun/create-app.d.ts +53 -0
  12. package/src/adapters/bun/create-app.js +153 -0
  13. package/src/adapters/bun/hmr-manager.d.ts +131 -0
  14. package/src/adapters/bun/hmr-manager.js +312 -0
  15. package/src/adapters/bun/index.d.ts +2 -0
  16. package/src/adapters/bun/index.js +8 -0
  17. package/src/adapters/bun/server-adapter.d.ts +155 -0
  18. package/src/adapters/bun/server-adapter.js +393 -0
  19. package/src/adapters/bun/server-lifecycle.d.ts +63 -0
  20. package/src/adapters/bun/server-lifecycle.js +92 -0
  21. package/src/adapters/create-app.d.ts +20 -0
  22. package/src/adapters/create-app.js +66 -0
  23. package/src/adapters/index.d.ts +2 -0
  24. package/src/adapters/index.js +8 -0
  25. package/src/adapters/node/create-app.d.ts +18 -0
  26. package/src/adapters/node/create-app.js +149 -0
  27. package/src/adapters/node/node-client-bridge.d.ts +26 -0
  28. package/src/adapters/node/node-client-bridge.js +66 -0
  29. package/src/adapters/node/node-hmr-manager.d.ts +121 -0
  30. package/src/adapters/node/node-hmr-manager.js +290 -0
  31. package/src/adapters/node/server-adapter.d.ts +162 -0
  32. package/src/adapters/node/server-adapter.js +368 -0
  33. package/src/adapters/node/static-content-server.d.ts +60 -0
  34. package/src/adapters/node/static-content-server.js +194 -0
  35. package/src/adapters/shared/api-response.d.ts +52 -0
  36. package/src/adapters/shared/api-response.js +96 -0
  37. package/src/adapters/shared/application-adapter.d.ts +18 -0
  38. package/src/adapters/shared/application-adapter.js +90 -0
  39. package/src/adapters/shared/define-api-handler.d.ts +25 -0
  40. package/src/adapters/shared/define-api-handler.js +15 -0
  41. package/src/adapters/shared/explicit-static-render-preparation.d.ts +25 -0
  42. package/src/adapters/shared/explicit-static-render-preparation.js +26 -0
  43. package/src/adapters/shared/explicit-static-route-matcher.d.ts +41 -0
  44. package/src/adapters/shared/explicit-static-route-matcher.js +101 -0
  45. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +62 -0
  46. package/src/adapters/shared/file-route-middleware-pipeline.js +90 -0
  47. package/src/adapters/shared/fs-server-response-factory.d.ts +23 -0
  48. package/src/adapters/shared/fs-server-response-factory.js +81 -0
  49. package/src/adapters/shared/fs-server-response-matcher.d.ts +75 -0
  50. package/src/adapters/shared/fs-server-response-matcher.js +186 -0
  51. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
  52. package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
  53. package/src/adapters/shared/hmr-html-response.d.ts +22 -0
  54. package/src/adapters/shared/hmr-html-response.js +32 -0
  55. package/src/adapters/shared/render-context.d.ts +15 -0
  56. package/src/adapters/shared/render-context.js +72 -0
  57. package/src/adapters/shared/runtime-bootstrap.d.ts +38 -0
  58. package/src/adapters/shared/runtime-bootstrap.js +43 -0
  59. package/src/adapters/shared/server-adapter.d.ts +108 -0
  60. package/src/adapters/shared/server-adapter.js +429 -0
  61. package/src/adapters/shared/server-route-handler.d.ts +89 -0
  62. package/src/adapters/shared/server-route-handler.js +111 -0
  63. package/src/adapters/shared/server-static-builder.d.ts +71 -0
  64. package/src/adapters/shared/server-static-builder.js +100 -0
  65. package/src/build/build-adapter.d.ts +239 -0
  66. package/src/build/build-adapter.js +642 -0
  67. package/src/build/build-manifest.d.ts +27 -0
  68. package/src/build/build-manifest.js +30 -0
  69. package/src/build/build-types.d.ts +57 -0
  70. package/src/build/build-types.js +0 -0
  71. package/src/build/dev-build-coordinator.d.ts +72 -0
  72. package/src/build/dev-build-coordinator.js +154 -0
  73. package/src/build/esbuild-build-adapter.d.ts +78 -0
  74. package/src/build/esbuild-build-adapter.js +505 -0
  75. package/src/build/runtime-build-executor.d.ts +14 -0
  76. package/src/build/runtime-build-executor.js +22 -0
  77. package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
  78. package/src/build/runtime-specifier-alias-plugin.js +35 -0
  79. package/src/build/runtime-specifier-aliases.d.ts +5 -0
  80. package/src/build/runtime-specifier-aliases.js +95 -0
  81. package/src/config/config-builder.d.ts +252 -0
  82. package/src/config/config-builder.js +598 -0
  83. package/src/config/{constants.ts → constants.d.ts} +13 -22
  84. package/src/config/constants.js +25 -0
  85. package/src/dev/host-runtime.d.ts +10 -0
  86. package/src/dev/host-runtime.js +24 -0
  87. package/src/dev/sc-server.d.ts +30 -0
  88. package/src/dev/sc-server.js +111 -0
  89. package/src/eco/eco.browser.d.ts +2 -0
  90. package/src/eco/eco.browser.js +83 -0
  91. package/src/eco/eco.d.ts +9 -0
  92. package/src/eco/eco.js +85 -0
  93. package/src/eco/eco.types.d.ts +178 -0
  94. package/src/eco/eco.types.js +0 -0
  95. package/src/eco/eco.utils.d.ts +1 -0
  96. package/src/eco/eco.utils.js +10 -0
  97. package/src/eco/global-injector-map.d.ts +16 -0
  98. package/src/eco/global-injector-map.js +80 -0
  99. package/src/eco/lazy-injector-map.d.ts +8 -0
  100. package/src/eco/lazy-injector-map.js +70 -0
  101. package/src/eco/module-dependencies.d.ts +18 -0
  102. package/src/eco/module-dependencies.js +49 -0
  103. package/src/errors/http-error.d.ts +31 -0
  104. package/src/errors/http-error.js +50 -0
  105. package/src/errors/index.d.ts +3 -0
  106. package/src/errors/index.js +6 -0
  107. package/src/errors/locals-access-error.d.ts +4 -0
  108. package/src/errors/locals-access-error.js +9 -0
  109. package/src/global/app-logger.d.ts +2 -0
  110. package/src/global/app-logger.js +6 -0
  111. package/src/hmr/client/hmr-runtime.d.ts +5 -0
  112. package/src/hmr/client/hmr-runtime.js +117 -0
  113. package/src/hmr/hmr-strategy.d.ts +162 -0
  114. package/src/hmr/hmr-strategy.js +44 -0
  115. package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
  116. package/src/hmr/hmr.postcss.test.e2e.js +31 -0
  117. package/src/hmr/hmr.test.e2e.d.ts +1 -0
  118. package/src/hmr/hmr.test.e2e.js +43 -0
  119. package/src/hmr/strategies/default-hmr-strategy.d.ts +43 -0
  120. package/src/hmr/strategies/default-hmr-strategy.js +34 -0
  121. package/src/hmr/strategies/js-hmr-strategy.d.ts +134 -0
  122. package/src/hmr/strategies/js-hmr-strategy.js +178 -0
  123. package/src/index.browser.d.ts +3 -0
  124. package/src/index.browser.js +4 -0
  125. package/src/index.d.ts +6 -0
  126. package/src/index.js +21 -0
  127. package/src/integrations/ghtml/ghtml-renderer.d.ts +16 -0
  128. package/src/integrations/ghtml/ghtml-renderer.js +57 -0
  129. package/src/integrations/ghtml/ghtml.constants.d.ts +1 -0
  130. package/src/integrations/ghtml/ghtml.constants.js +4 -0
  131. package/src/integrations/ghtml/ghtml.plugin.d.ts +16 -0
  132. package/src/integrations/ghtml/ghtml.plugin.js +20 -0
  133. package/src/plugins/alias-resolver-plugin.d.ts +2 -0
  134. package/src/plugins/alias-resolver-plugin.js +53 -0
  135. package/src/plugins/eco-component-meta-plugin.d.ts +108 -0
  136. package/src/plugins/eco-component-meta-plugin.js +162 -0
  137. package/src/plugins/foreign-jsx-override-plugin.d.ts +31 -0
  138. package/src/plugins/foreign-jsx-override-plugin.js +35 -0
  139. package/src/plugins/integration-plugin.d.ts +215 -0
  140. package/src/plugins/integration-plugin.js +189 -0
  141. package/src/plugins/processor.d.ts +97 -0
  142. package/src/plugins/processor.js +141 -0
  143. package/src/plugins/{runtime-capability.ts → runtime-capability.d.ts} +3 -8
  144. package/src/plugins/runtime-capability.js +0 -0
  145. package/src/plugins/source-transform.d.ts +46 -0
  146. package/src/plugins/source-transform.js +71 -0
  147. package/src/route-renderer/orchestration/component-render-context.d.ts +89 -0
  148. package/src/route-renderer/orchestration/component-render-context.js +147 -0
  149. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +18 -0
  150. package/src/route-renderer/orchestration/declared-ownership-graph.js +34 -0
  151. package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +108 -0
  152. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +206 -0
  153. package/src/route-renderer/orchestration/integration-renderer.d.ts +516 -0
  154. package/src/route-renderer/orchestration/integration-renderer.js +909 -0
  155. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +24 -0
  156. package/src/route-renderer/orchestration/ownership-planning.service.js +63 -0
  157. package/src/route-renderer/orchestration/ownership-validation.service.d.ts +29 -0
  158. package/src/route-renderer/orchestration/ownership-validation.service.js +53 -0
  159. package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +2 -0
  160. package/src/route-renderer/orchestration/processed-asset-dedupe.js +23 -0
  161. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +90 -0
  162. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +158 -0
  163. package/src/route-renderer/orchestration/render-output.utils.d.ts +66 -0
  164. package/src/route-renderer/orchestration/render-output.utils.js +171 -0
  165. package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +120 -0
  166. package/src/route-renderer/orchestration/route-render-orchestrator.js +388 -0
  167. package/src/route-renderer/orchestration/template-serialization.d.ts +38 -0
  168. package/src/route-renderer/orchestration/template-serialization.js +45 -0
  169. package/src/route-renderer/page-loading/component-dependency-collection.d.ts +37 -0
  170. package/src/route-renderer/page-loading/component-dependency-collection.js +132 -0
  171. package/src/route-renderer/page-loading/declared-asset-collection.d.ts +24 -0
  172. package/src/route-renderer/page-loading/declared-asset-collection.js +106 -0
  173. package/src/route-renderer/page-loading/dependency-resolver.d.ts +35 -0
  174. package/src/route-renderer/page-loading/dependency-resolver.js +115 -0
  175. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +11 -0
  176. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +57 -0
  177. package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +45 -0
  178. package/src/route-renderer/page-loading/lazy-entry-collection.js +105 -0
  179. package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +19 -0
  180. package/src/route-renderer/page-loading/lazy-trigger-planning.js +40 -0
  181. package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +5 -0
  182. package/src/route-renderer/page-loading/module-declaration-aggregation.js +33 -0
  183. package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +3 -0
  184. package/src/route-renderer/page-loading/module-declaration-scripts.js +18 -0
  185. package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +13 -0
  186. package/src/route-renderer/page-loading/page-dependency-bundling.js +137 -0
  187. package/src/route-renderer/page-loading/page-module-loader.d.ts +90 -0
  188. package/src/route-renderer/page-loading/page-module-loader.js +127 -0
  189. package/src/route-renderer/route-renderer.d.ts +69 -0
  190. package/src/route-renderer/route-renderer.js +80 -0
  191. package/src/router/client/link-intent.js +34 -0
  192. package/src/router/client/link-intent.test.browser.d.ts +1 -0
  193. package/src/router/client/link-intent.test.browser.js +43 -0
  194. package/src/router/client/navigation-coordinator.d.ts +169 -0
  195. package/src/router/client/navigation-coordinator.js +215 -0
  196. package/src/router/server/route-registry.d.ts +78 -0
  197. package/src/router/server/route-registry.js +262 -0
  198. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +3 -0
  199. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +56 -0
  200. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +103 -0
  201. package/src/services/assets/asset-processing-service/asset-processing.service.js +285 -0
  202. package/src/services/assets/asset-processing-service/asset.factory.d.ts +17 -0
  203. package/src/services/assets/asset-processing-service/asset.factory.js +82 -0
  204. package/src/services/assets/asset-processing-service/assets.types.d.ts +103 -0
  205. package/src/services/assets/asset-processing-service/assets.types.js +0 -0
  206. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +55 -0
  207. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +49 -0
  208. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
  209. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -0
  210. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +30 -0
  211. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +65 -0
  212. package/src/services/assets/asset-processing-service/index.d.ts +6 -0
  213. package/src/services/assets/asset-processing-service/index.js +6 -0
  214. package/src/services/assets/asset-processing-service/page-package.d.ts +3 -0
  215. package/src/services/assets/asset-processing-service/page-package.js +74 -0
  216. package/src/services/assets/asset-processing-service/{processor.interface.ts → processor.interface.d.ts} +5 -10
  217. package/src/services/assets/asset-processing-service/processor.interface.js +6 -0
  218. package/src/services/assets/asset-processing-service/processor.registry.d.ts +8 -0
  219. package/src/services/assets/asset-processing-service/processor.registry.js +15 -0
  220. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +24 -0
  221. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +65 -0
  222. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +22 -0
  223. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +136 -0
  224. package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
  225. package/src/services/assets/asset-processing-service/processors/index.js +5 -0
  226. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +6 -0
  227. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +119 -0
  228. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +9 -0
  229. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +97 -0
  230. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +7 -0
  231. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +79 -0
  232. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +8 -0
  233. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +59 -0
  234. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +9 -0
  235. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +69 -0
  236. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +18 -0
  237. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +45 -0
  238. package/src/services/assets/browser-bundle.service.d.ts +73 -0
  239. package/src/services/assets/browser-bundle.service.js +41 -0
  240. package/src/services/cache/cache.types.d.ts +107 -0
  241. package/src/services/cache/cache.types.js +0 -0
  242. package/src/services/cache/index.d.ts +7 -0
  243. package/src/services/cache/index.js +7 -0
  244. package/src/services/cache/memory-cache-store.d.ts +42 -0
  245. package/src/services/cache/memory-cache-store.js +98 -0
  246. package/src/services/cache/page-cache-service.d.ts +70 -0
  247. package/src/services/cache/page-cache-service.js +152 -0
  248. package/src/services/cache/page-request-cache-coordinator.service.d.ts +75 -0
  249. package/src/services/cache/page-request-cache-coordinator.service.js +109 -0
  250. package/src/services/html/html-rewriter-provider.service.d.ts +37 -0
  251. package/src/services/html/html-rewriter-provider.service.js +68 -0
  252. package/src/services/html/html-transformer.service.d.ts +87 -0
  253. package/src/services/html/html-transformer.service.js +216 -0
  254. package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
  255. package/src/services/invalidation/development-invalidation.service.js +190 -0
  256. package/src/services/module-loading/app-module-loader.service.d.ts +7 -0
  257. package/src/services/module-loading/app-module-loader.service.js +0 -0
  258. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +24 -0
  259. package/src/services/module-loading/app-server-module-transpiler.service.js +115 -0
  260. package/src/services/module-loading/host-module-loader-registry.d.ts +4 -0
  261. package/src/services/module-loading/host-module-loader-registry.js +15 -0
  262. package/src/services/module-loading/{module-loading-types.ts → module-loading-types.d.ts} +0 -1
  263. package/src/services/module-loading/module-loading-types.js +0 -0
  264. package/src/services/module-loading/node-bootstrap-plugin.d.ts +42 -0
  265. package/src/services/module-loading/node-bootstrap-plugin.js +216 -0
  266. package/src/services/module-loading/page-module-import.service.d.ts +76 -0
  267. package/src/services/module-loading/page-module-import.service.js +170 -0
  268. package/src/services/module-loading/server-module-transpiler.service.d.ts +63 -0
  269. package/src/services/module-loading/server-module-transpiler.service.js +64 -0
  270. package/src/services/module-loading/source-module-support.d.ts +5 -0
  271. package/src/services/module-loading/source-module-support.js +8 -0
  272. package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
  273. package/src/services/runtime-state/dev-graph.service.js +162 -0
  274. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
  275. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
  276. package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
  277. package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
  278. package/src/services/validation/schema-validation-service.d.ts +122 -0
  279. package/src/services/validation/schema-validation-service.js +101 -0
  280. package/src/services/validation/{standard-schema.types.ts → standard-schema.types.d.ts} +17 -20
  281. package/src/services/validation/standard-schema.types.js +0 -0
  282. package/src/static-site-generator/static-site-generator.d.ts +104 -0
  283. package/src/static-site-generator/static-site-generator.js +316 -0
  284. package/src/types/internal-types.d.ts +232 -0
  285. package/src/types/internal-types.js +0 -0
  286. package/src/types/public-types.d.ts +1267 -0
  287. package/src/types/public-types.js +0 -0
  288. package/src/utils/deep-merge.d.ts +14 -0
  289. package/src/utils/deep-merge.js +32 -0
  290. package/src/utils/hash.d.ts +1 -0
  291. package/src/utils/hash.js +7 -0
  292. package/src/utils/html-escaping.d.ts +7 -0
  293. package/src/utils/html-escaping.js +6 -0
  294. package/src/utils/html.js +4 -0
  295. package/src/utils/invariant.d.ts +5 -0
  296. package/src/utils/invariant.js +11 -0
  297. package/src/utils/locals-utils.d.ts +15 -0
  298. package/src/utils/locals-utils.js +24 -0
  299. package/src/utils/parse-cli-args.d.ts +27 -0
  300. package/src/utils/parse-cli-args.js +62 -0
  301. package/src/utils/path-utils.module.d.ts +5 -0
  302. package/src/utils/path-utils.module.js +14 -0
  303. package/src/utils/resolve-work-dir.d.ts +11 -0
  304. package/src/utils/resolve-work-dir.js +31 -0
  305. package/src/utils/runtime.d.ts +11 -0
  306. package/src/utils/runtime.js +40 -0
  307. package/src/utils/server-utils.module.d.ts +19 -0
  308. package/src/utils/server-utils.module.js +56 -0
  309. package/src/watchers/project-watcher.d.ts +136 -0
  310. package/src/watchers/project-watcher.js +275 -0
  311. package/src/watchers/project-watcher.test-helpers.d.ts +4 -0
  312. package/src/watchers/project-watcher.test-helpers.js +52 -0
  313. package/src/adapters/abstract/application-adapter.test.ts +0 -172
  314. package/src/adapters/abstract/application-adapter.ts +0 -379
  315. package/src/adapters/abstract/router-adapter.ts +0 -30
  316. package/src/adapters/abstract/server-adapter.ts +0 -79
  317. package/src/adapters/bun/client-bridge.ts +0 -62
  318. package/src/adapters/bun/create-app.ts +0 -232
  319. package/src/adapters/bun/hmr-manager.test.ts +0 -265
  320. package/src/adapters/bun/hmr-manager.ts +0 -383
  321. package/src/adapters/bun/index.ts +0 -2
  322. package/src/adapters/bun/server-adapter.ts +0 -526
  323. package/src/adapters/bun/server-lifecycle.ts +0 -124
  324. package/src/adapters/create-app.test.ts +0 -10
  325. package/src/adapters/create-app.ts +0 -91
  326. package/src/adapters/index.ts +0 -2
  327. package/src/adapters/node/create-app.test.ts +0 -53
  328. package/src/adapters/node/create-app.ts +0 -183
  329. package/src/adapters/node/node-client-bridge.test.ts +0 -198
  330. package/src/adapters/node/node-client-bridge.ts +0 -79
  331. package/src/adapters/node/node-hmr-manager.test.ts +0 -320
  332. package/src/adapters/node/node-hmr-manager.ts +0 -355
  333. package/src/adapters/node/server-adapter.ts +0 -502
  334. package/src/adapters/node/static-content-server.test.ts +0 -60
  335. package/src/adapters/node/static-content-server.ts +0 -239
  336. package/src/adapters/shared/api-response.test.ts +0 -97
  337. package/src/adapters/shared/api-response.ts +0 -104
  338. package/src/adapters/shared/application-adapter.ts +0 -199
  339. package/src/adapters/shared/define-api-handler.ts +0 -66
  340. package/src/adapters/shared/explicit-static-render-preparation.ts +0 -58
  341. package/src/adapters/shared/explicit-static-route-matcher.test.ts +0 -381
  342. package/src/adapters/shared/explicit-static-route-matcher.ts +0 -131
  343. package/src/adapters/shared/file-route-middleware-pipeline.test.ts +0 -85
  344. package/src/adapters/shared/file-route-middleware-pipeline.ts +0 -118
  345. package/src/adapters/shared/fs-server-response-factory.test.ts +0 -176
  346. package/src/adapters/shared/fs-server-response-factory.ts +0 -96
  347. package/src/adapters/shared/fs-server-response-matcher.test.ts +0 -311
  348. package/src/adapters/shared/fs-server-response-matcher.ts +0 -240
  349. package/src/adapters/shared/hmr-entrypoint-registrar.ts +0 -149
  350. package/src/adapters/shared/hmr-html-response.ts +0 -52
  351. package/src/adapters/shared/hmr-manager.contract.test.ts +0 -228
  352. package/src/adapters/shared/hmr-manager.dispatch.test.ts +0 -220
  353. package/src/adapters/shared/render-context.test.ts +0 -150
  354. package/src/adapters/shared/render-context.ts +0 -123
  355. package/src/adapters/shared/runtime-bootstrap.ts +0 -79
  356. package/src/adapters/shared/server-adapter.test.ts +0 -130
  357. package/src/adapters/shared/server-adapter.ts +0 -562
  358. package/src/adapters/shared/server-route-handler.test.ts +0 -111
  359. package/src/adapters/shared/server-route-handler.ts +0 -153
  360. package/src/adapters/shared/server-static-builder.test.ts +0 -338
  361. package/src/adapters/shared/server-static-builder.ts +0 -170
  362. package/src/build/build-adapter-serialization.test.ts +0 -281
  363. package/src/build/build-adapter.test.ts +0 -1240
  364. package/src/build/build-adapter.ts +0 -1012
  365. package/src/build/build-manifest.ts +0 -54
  366. package/src/build/build-types.ts +0 -83
  367. package/src/build/dev-build-coordinator.ts +0 -220
  368. package/src/build/esbuild-build-adapter.ts +0 -660
  369. package/src/build/runtime-build-executor.test.ts +0 -81
  370. package/src/build/runtime-build-executor.ts +0 -40
  371. package/src/build/runtime-specifier-alias-plugin.test.ts +0 -67
  372. package/src/build/runtime-specifier-alias-plugin.ts +0 -62
  373. package/src/build/runtime-specifier-aliases.ts +0 -135
  374. package/src/config/config-builder.test.ts +0 -442
  375. package/src/config/config-builder.ts +0 -737
  376. package/src/config/config-builder.typecheck.test.ts +0 -96
  377. package/src/dev/host-runtime.ts +0 -34
  378. package/src/dev/sc-server.ts +0 -143
  379. package/src/eco/eco.browser.test.ts +0 -43
  380. package/src/eco/eco.browser.ts +0 -118
  381. package/src/eco/eco.test.ts +0 -654
  382. package/src/eco/eco.ts +0 -205
  383. package/src/eco/eco.types.ts +0 -221
  384. package/src/eco/eco.utils.test.ts +0 -219
  385. package/src/eco/eco.utils.ts +0 -5
  386. package/src/eco/global-injector-map.test.ts +0 -42
  387. package/src/eco/global-injector-map.ts +0 -112
  388. package/src/eco/lazy-injector-map.test.ts +0 -66
  389. package/src/eco/lazy-injector-map.ts +0 -120
  390. package/src/eco/module-dependencies.test.ts +0 -30
  391. package/src/eco/module-dependencies.ts +0 -75
  392. package/src/errors/http-error.test.ts +0 -134
  393. package/src/errors/http-error.ts +0 -72
  394. package/src/errors/index.ts +0 -3
  395. package/src/errors/locals-access-error.ts +0 -7
  396. package/src/global/app-logger.ts +0 -4
  397. package/src/global/utils.test.ts +0 -12
  398. 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
  399. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
  400. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
  401. package/src/hmr/client/hmr-runtime.ts +0 -162
  402. package/src/hmr/hmr-strategy.test.ts +0 -124
  403. package/src/hmr/hmr-strategy.ts +0 -177
  404. package/src/hmr/hmr.postcss.test.e2e.ts +0 -41
  405. package/src/hmr/hmr.test.e2e.ts +0 -66
  406. package/src/hmr/strategies/default-hmr-strategy.ts +0 -60
  407. package/src/hmr/strategies/js-hmr-strategy.test.ts +0 -334
  408. package/src/hmr/strategies/js-hmr-strategy.ts +0 -314
  409. package/src/index.browser.ts +0 -3
  410. package/src/index.ts +0 -15
  411. package/src/integrations/ghtml/ghtml-renderer.test.ts +0 -253
  412. package/src/integrations/ghtml/ghtml-renderer.ts +0 -87
  413. package/src/integrations/ghtml/ghtml.constants.ts +0 -1
  414. package/src/integrations/ghtml/ghtml.plugin.ts +0 -28
  415. package/src/plugins/alias-resolver-plugin.test.ts +0 -41
  416. package/src/plugins/alias-resolver-plugin.ts +0 -63
  417. package/src/plugins/eco-component-meta-plugin.test.ts +0 -406
  418. package/src/plugins/eco-component-meta-plugin.ts +0 -494
  419. package/src/plugins/foreign-jsx-override-plugin.test.ts +0 -65
  420. package/src/plugins/foreign-jsx-override-plugin.ts +0 -67
  421. package/src/plugins/integration-plugin.test.ts +0 -151
  422. package/src/plugins/integration-plugin.ts +0 -323
  423. package/src/plugins/processor.test.ts +0 -148
  424. package/src/plugins/processor.ts +0 -257
  425. package/src/plugins/source-transform.test.ts +0 -82
  426. package/src/plugins/source-transform.ts +0 -123
  427. package/src/route-renderer/orchestration/component-render-context.ts +0 -325
  428. package/src/route-renderer/orchestration/declared-ownership-graph.ts +0 -62
  429. package/src/route-renderer/orchestration/foreign-subtree-execution.service.ts +0 -383
  430. package/src/route-renderer/orchestration/integration-renderer.test.ts +0 -2085
  431. package/src/route-renderer/orchestration/integration-renderer.ts +0 -1244
  432. package/src/route-renderer/orchestration/ownership-planning.service.ts +0 -97
  433. package/src/route-renderer/orchestration/ownership-validation.service.ts +0 -76
  434. package/src/route-renderer/orchestration/processed-asset-dedupe.ts +0 -25
  435. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.test.ts +0 -324
  436. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.ts +0 -294
  437. package/src/route-renderer/orchestration/render-output.utils.ts +0 -310
  438. package/src/route-renderer/orchestration/route-render-orchestrator.prepare-render-options.test.ts +0 -644
  439. package/src/route-renderer/orchestration/route-render-orchestrator.test.ts +0 -265
  440. package/src/route-renderer/orchestration/route-render-orchestrator.ts +0 -592
  441. package/src/route-renderer/orchestration/template-serialization.test.ts +0 -110
  442. package/src/route-renderer/orchestration/template-serialization.ts +0 -117
  443. package/src/route-renderer/page-loading/component-dependency-collection.ts +0 -202
  444. package/src/route-renderer/page-loading/declared-asset-collection.ts +0 -153
  445. package/src/route-renderer/page-loading/dependency-resolver.test.ts +0 -761
  446. package/src/route-renderer/page-loading/dependency-resolver.ts +0 -144
  447. package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +0 -75
  448. package/src/route-renderer/page-loading/lazy-entry-collection.ts +0 -167
  449. package/src/route-renderer/page-loading/lazy-trigger-planning.ts +0 -74
  450. package/src/route-renderer/page-loading/module-declaration-aggregation.ts +0 -60
  451. package/src/route-renderer/page-loading/module-declaration-scripts.ts +0 -16
  452. package/src/route-renderer/page-loading/page-dependency-bundling.ts +0 -244
  453. package/src/route-renderer/page-loading/page-module-loader.test.ts +0 -183
  454. package/src/route-renderer/page-loading/page-module-loader.ts +0 -184
  455. package/src/route-renderer/route-renderer.ts +0 -133
  456. package/src/router/client/link-intent.test.browser.ts +0 -51
  457. package/src/router/client/link-intent.ts +0 -92
  458. package/src/router/client/navigation-coordinator.test.ts +0 -237
  459. package/src/router/client/navigation-coordinator.ts +0 -453
  460. package/src/router/server/route-registry.test.ts +0 -176
  461. package/src/router/server/route-registry.ts +0 -382
  462. package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +0 -66
  463. package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +0 -473
  464. package/src/services/assets/asset-processing-service/asset-processing.service.ts +0 -344
  465. package/src/services/assets/asset-processing-service/asset.factory.test.ts +0 -63
  466. package/src/services/assets/asset-processing-service/asset.factory.ts +0 -105
  467. package/src/services/assets/asset-processing-service/assets.types.ts +0 -128
  468. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +0 -74
  469. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +0 -96
  470. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +0 -67
  471. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +0 -78
  472. package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +0 -104
  473. package/src/services/assets/asset-processing-service/index.ts +0 -6
  474. package/src/services/assets/asset-processing-service/page-package.test.ts +0 -100
  475. package/src/services/assets/asset-processing-service/page-package.ts +0 -93
  476. package/src/services/assets/asset-processing-service/processor.registry.ts +0 -18
  477. package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +0 -59
  478. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +0 -83
  479. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +0 -173
  480. package/src/services/assets/asset-processing-service/processors/index.ts +0 -5
  481. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +0 -195
  482. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +0 -137
  483. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +0 -326
  484. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +0 -116
  485. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +0 -227
  486. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +0 -89
  487. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +0 -261
  488. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +0 -72
  489. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +0 -83
  490. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +0 -65
  491. package/src/services/assets/browser-bundle.service.test.ts +0 -66
  492. package/src/services/assets/browser-bundle.service.ts +0 -109
  493. package/src/services/cache/cache.types.ts +0 -126
  494. package/src/services/cache/index.ts +0 -18
  495. package/src/services/cache/memory-cache-store.test.ts +0 -225
  496. package/src/services/cache/memory-cache-store.ts +0 -130
  497. package/src/services/cache/page-cache-service.test.ts +0 -175
  498. package/src/services/cache/page-cache-service.ts +0 -202
  499. package/src/services/cache/page-request-cache-coordinator.service.test.ts +0 -79
  500. package/src/services/cache/page-request-cache-coordinator.service.ts +0 -131
  501. package/src/services/html/html-rewriter-provider.service.test.ts +0 -183
  502. package/src/services/html/html-rewriter-provider.service.ts +0 -104
  503. package/src/services/html/html-transformer.service.test.ts +0 -476
  504. package/src/services/html/html-transformer.service.ts +0 -275
  505. package/src/services/invalidation/development-invalidation.service.test.ts +0 -87
  506. package/src/services/invalidation/development-invalidation.service.ts +0 -262
  507. package/src/services/module-loading/app-module-loader.service.ts +0 -9
  508. package/src/services/module-loading/app-server-module-transpiler.service.test.ts +0 -130
  509. package/src/services/module-loading/app-server-module-transpiler.service.ts +0 -141
  510. package/src/services/module-loading/host-module-loader-registry.ts +0 -15
  511. package/src/services/module-loading/node-bootstrap-plugin.test.ts +0 -335
  512. package/src/services/module-loading/node-bootstrap-plugin.ts +0 -311
  513. package/src/services/module-loading/page-module-import.service.test.ts +0 -504
  514. package/src/services/module-loading/page-module-import.service.ts +0 -251
  515. package/src/services/module-loading/server-module-transpiler.service.test.ts +0 -243
  516. package/src/services/module-loading/server-module-transpiler.service.ts +0 -104
  517. package/src/services/module-loading/source-module-support.ts +0 -19
  518. package/src/services/runtime-state/dev-graph.service.ts +0 -217
  519. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +0 -136
  520. package/src/services/runtime-state/server-invalidation-state.service.ts +0 -68
  521. package/src/services/validation/schema-validation-service.test.ts +0 -223
  522. package/src/services/validation/schema-validation-service.ts +0 -204
  523. package/src/static-site-generator/static-site-generator.test.ts +0 -408
  524. package/src/static-site-generator/static-site-generator.ts +0 -445
  525. package/src/types/internal-types.ts +0 -243
  526. package/src/types/public-types.ts +0 -1459
  527. package/src/utils/deep-merge.test.ts +0 -114
  528. package/src/utils/deep-merge.ts +0 -47
  529. package/src/utils/hash.ts +0 -5
  530. package/src/utils/html-escaping.ts +0 -9
  531. package/src/utils/invariant.test.ts +0 -22
  532. package/src/utils/invariant.ts +0 -15
  533. package/src/utils/locals-utils.ts +0 -37
  534. package/src/utils/parse-cli-args.test.ts +0 -69
  535. package/src/utils/parse-cli-args.ts +0 -105
  536. package/src/utils/path-utils.module.ts +0 -14
  537. package/src/utils/path-utils.test.ts +0 -15
  538. package/src/utils/resolve-work-dir.ts +0 -45
  539. package/src/utils/runtime.ts +0 -44
  540. package/src/utils/server-utils.module.ts +0 -67
  541. package/src/utils/server-utils.test.ts +0 -38
  542. package/src/watchers/project-watcher.integration.test.ts +0 -337
  543. package/src/watchers/project-watcher.test-helpers.ts +0 -42
  544. package/src/watchers/project-watcher.test.ts +0 -768
  545. package/src/watchers/project-watcher.ts +0 -357
  546. /package/src/utils/{html.ts → html.d.ts} +0 -0
@@ -0,0 +1,63 @@
1
+ import type { BuildExecutor } from '../../build/build-adapter.js';
2
+ import type { EcoBuildPlugin } from '../../build/build-types.js';
3
+ import type { AppModuleLoader } from './app-module-loader.service.js';
4
+ import { type PageModuleImportOptions } from './page-module-import.service.js';
5
+ import type { SourceModuleLoaderFactory } from './module-loading-types.js';
6
+ export type ServerModuleTranspilerOptions = Omit<PageModuleImportOptions, 'rootDir' | 'buildExecutor'>;
7
+ export type ServerModuleImportDependency = Pick<AppModuleLoader, 'importModule' | 'invalidateDevelopmentGraph'>;
8
+ /**
9
+ * Immutable execution context for one server-transpiler instance.
10
+ *
11
+ * @remarks
12
+ * Callers own when and why a new transpiler is created. This service only owns
13
+ * applying the supplied root/build-executor pair consistently to every module
14
+ * load that passes through it.
15
+ */
16
+ export type ServerModuleTranspilerBootstrapArgs = {
17
+ rootDir: string;
18
+ getBuildExecutor?: () => BuildExecutor | undefined;
19
+ canLoadSourceModuleFromHost?: (filePath: string) => boolean;
20
+ getHostModuleLoader?: SourceModuleLoaderFactory;
21
+ getInvalidationVersion?: () => number;
22
+ invalidateModules?: (changedFiles?: string[]) => void;
23
+ pageModuleImportService?: ServerModuleImportDependency;
24
+ /** Factory evaluated on each importModule call to produce plugins applied to every load. */
25
+ getDefaultPlugins?: () => EcoBuildPlugin[];
26
+ };
27
+ /**
28
+ * App-owned boundary for server-side source module loading.
29
+ *
30
+ * @remarks
31
+ * This service centralizes server-side module transpilation and import behind
32
+ * an explicit caller-owned root and build executor.
33
+ */
34
+ export declare class ServerModuleTranspiler {
35
+ private readonly pageModuleImportService;
36
+ private readonly getRootDir;
37
+ private readonly getBuildExecutor;
38
+ private readonly getInvalidationVersion;
39
+ private readonly invalidateModules;
40
+ private readonly getDefaultPlugins;
41
+ /**
42
+ * Creates one explicit server-transpiler boundary for a given execution
43
+ * context.
44
+ */
45
+ constructor(args: ServerModuleTranspilerBootstrapArgs);
46
+ /**
47
+ * Loads a server-side source module through the caller-owned transpile
48
+ * context.
49
+ */
50
+ importModule<T = unknown>(options: ServerModuleTranspilerOptions): Promise<T>;
51
+ /**
52
+ * Invalidates cached module state for development reloads.
53
+ */
54
+ invalidate(changedFiles?: string[]): void;
55
+ /**
56
+ * Releases transpiler-owned resources.
57
+ *
58
+ * @remarks
59
+ * The current implementation delegates cache ownership to lower-level module
60
+ * loading services, so disposal is intentionally a no-op for now.
61
+ */
62
+ dispose(): Promise<void>;
63
+ }
@@ -0,0 +1,64 @@
1
+ import { PageModuleImportService } from "./page-module-import.service.js";
2
+ class ServerModuleTranspiler {
3
+ pageModuleImportService;
4
+ getRootDir;
5
+ getBuildExecutor;
6
+ getInvalidationVersion;
7
+ invalidateModules;
8
+ getDefaultPlugins;
9
+ /**
10
+ * Creates one explicit server-transpiler boundary for a given execution
11
+ * context.
12
+ */
13
+ constructor(args) {
14
+ this.pageModuleImportService = args.pageModuleImportService ?? new PageModuleImportService({
15
+ canLoadSourceModuleFromHost: args.canLoadSourceModuleFromHost,
16
+ getHostModuleLoader: args.getHostModuleLoader
17
+ });
18
+ this.getRootDir = () => args.rootDir;
19
+ this.getBuildExecutor = args.getBuildExecutor ?? (() => void 0);
20
+ this.getInvalidationVersion = () => args.getInvalidationVersion?.();
21
+ this.getDefaultPlugins = args.getDefaultPlugins ?? (() => []);
22
+ this.invalidateModules = (changedFiles) => {
23
+ if (args.invalidateModules) {
24
+ args.invalidateModules(changedFiles);
25
+ return;
26
+ }
27
+ this.pageModuleImportService.invalidateDevelopmentGraph();
28
+ };
29
+ }
30
+ /**
31
+ * Loads a server-side source module through the caller-owned transpile
32
+ * context.
33
+ */
34
+ async importModule(options) {
35
+ const mergedPlugins = [...this.getDefaultPlugins(), ...options.plugins ?? []];
36
+ const { plugins: _plugins, ...baseOptions } = options;
37
+ return await this.pageModuleImportService.importModule({
38
+ ...baseOptions,
39
+ ...mergedPlugins.length > 0 ? { plugins: mergedPlugins } : {},
40
+ rootDir: this.getRootDir(),
41
+ buildExecutor: this.getBuildExecutor(),
42
+ invalidationVersion: this.getInvalidationVersion()
43
+ });
44
+ }
45
+ /**
46
+ * Invalidates cached module state for development reloads.
47
+ */
48
+ invalidate(changedFiles) {
49
+ this.invalidateModules(changedFiles);
50
+ }
51
+ /**
52
+ * Releases transpiler-owned resources.
53
+ *
54
+ * @remarks
55
+ * The current implementation delegates cache ownership to lower-level module
56
+ * loading services, so disposal is intentionally a no-op for now.
57
+ */
58
+ async dispose() {
59
+ return;
60
+ }
61
+ }
62
+ export {
63
+ ServerModuleTranspiler
64
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Returns whether a source module can be loaded directly by the host runtime without
3
+ * first going through the transpile/import pipeline.
4
+ */
5
+ export declare function supportsSourceModuleLoading(filePath: string): boolean;
@@ -0,0 +1,8 @@
1
+ import path from "node:path";
2
+ function supportsSourceModuleLoading(filePath) {
3
+ const extension = path.extname(filePath);
4
+ return extension === ".js" || extension === ".jsx" || extension === ".ts" || extension === ".tsx" || extension === ".mjs" || extension === ".mts" || extension === ".cjs" || extension === ".cts";
5
+ }
6
+ export {
7
+ supportsSourceModuleLoading
8
+ };
@@ -0,0 +1,118 @@
1
+ import type { EcoPagesAppConfig } from '../../types/internal-types.js';
2
+ import { type ServerInvalidationState } from './server-invalidation-state.service.js';
3
+ import { type EntrypointDependencyGraph } from './entrypoint-dependency-graph.service.js';
4
+ /**
5
+ * Tracks development-time dependency relationships and invalidation state for
6
+ * one Ecopages app instance.
7
+ *
8
+ * @remarks
9
+ * The current contract stays intentionally small. It supports today's needs for
10
+ * server-module cache invalidation and entrypoint-to-dependency lookups without
11
+ * forcing the rest of the runtime to know about one specific graph
12
+ * implementation.
13
+ */
14
+ export interface DevGraphService extends ServerInvalidationState, EntrypointDependencyGraph {
15
+ }
16
+ /**
17
+ * Minimal dev-graph implementation used when an app has no selective graph
18
+ * metadata available.
19
+ *
20
+ * @remarks
21
+ * This preserves correct behavior by using coarse invalidation version bumps.
22
+ * Callers still pass changed-file information through the interface now so a
23
+ * richer graph can become more selective later without changing call sites.
24
+ */
25
+ export declare class NoopDevGraphService implements DevGraphService {
26
+ private readonly invalidationState;
27
+ private readonly dependencyGraph;
28
+ /**
29
+ * Returns the current coarse invalidation version.
30
+ */
31
+ getServerInvalidationVersion(): number;
32
+ /**
33
+ * Invalidates all server-side module state by incrementing the shared version.
34
+ */
35
+ invalidateServerModules(changedFiles?: string[]): void;
36
+ /**
37
+ * Indicates that this graph cannot target invalidation to one entrypoint set.
38
+ */
39
+ supportsSelectiveInvalidation(): boolean;
40
+ /**
41
+ * Returns an empty entrypoint set because this implementation stores no
42
+ * dependency graph metadata.
43
+ */
44
+ getDependencyEntrypoints(filePath: string): Set<string>;
45
+ /**
46
+ * Accepts dependency updates to preserve interface compatibility, but stores no
47
+ * graph state in the noop implementation.
48
+ */
49
+ setEntrypointDependencies(entrypointPath: string, dependencies: string[]): void;
50
+ /**
51
+ * Clears one entrypoint from the graph.
52
+ *
53
+ * @remarks
54
+ * There is no stored graph state in this implementation, so this is a no-op.
55
+ */
56
+ clearEntrypointDependencies(entrypointPath: string): void;
57
+ /**
58
+ * Resets graph-owned state for a fresh runtime cycle.
59
+ */
60
+ reset(): void;
61
+ }
62
+ /**
63
+ * In-memory development graph with entrypoint-to-dependency reverse lookups.
64
+ *
65
+ * @remarks
66
+ * This is the current selective graph implementation used by development flows
67
+ * that need to answer which entrypoints depend on a changed file while still
68
+ * keeping invalidation state app-local.
69
+ */
70
+ export declare class InMemoryDevGraphService implements DevGraphService {
71
+ private readonly invalidationState;
72
+ private readonly dependencyGraph;
73
+ /**
74
+ * Returns the current app-local server invalidation version.
75
+ */
76
+ getServerInvalidationVersion(): number;
77
+ /**
78
+ * Invalidates the current server-module cache generation.
79
+ *
80
+ * @remarks
81
+ * The current implementation still uses a coarse generation bump for server
82
+ * modules. Selective dependency lookups are used by callers that need to limit
83
+ * browser rebuild work.
84
+ */
85
+ invalidateServerModules(changedFiles?: string[]): void;
86
+ /**
87
+ * Indicates that this graph can answer dependency-to-entrypoint lookups.
88
+ */
89
+ supportsSelectiveInvalidation(): boolean;
90
+ /**
91
+ * Returns all known entrypoints that currently depend on the given file.
92
+ */
93
+ getDependencyEntrypoints(filePath: string): Set<string>;
94
+ /**
95
+ * Replaces the stored dependency set for one entrypoint.
96
+ *
97
+ * @remarks
98
+ * The entrypoint itself is always included in its own dependency set so reverse
99
+ * lookups can map a changed entry file back to that same entrypoint.
100
+ */
101
+ setEntrypointDependencies(entrypointPath: string, dependencies: string[]): void;
102
+ /**
103
+ * Removes one entrypoint and all of its reverse dependency edges.
104
+ */
105
+ clearEntrypointDependencies(entrypointPath: string): void;
106
+ /**
107
+ * Clears all graph state and starts a fresh invalidation generation.
108
+ */
109
+ reset(): void;
110
+ }
111
+ /**
112
+ * Returns the dev-graph service owned by one app instance.
113
+ */
114
+ export declare function getAppDevGraphService(appConfig: EcoPagesAppConfig): DevGraphService;
115
+ /**
116
+ * Installs the dev-graph service that should back one app/runtime instance.
117
+ */
118
+ export declare function setAppDevGraphService(appConfig: EcoPagesAppConfig, devGraphService: DevGraphService): void;
@@ -0,0 +1,162 @@
1
+ import {
2
+ CounterServerInvalidationState,
3
+ getAppServerInvalidationState,
4
+ setAppServerInvalidationState
5
+ } from "./server-invalidation-state.service.js";
6
+ import {
7
+ getAppEntrypointDependencyGraph,
8
+ InMemoryEntrypointDependencyGraph,
9
+ NoopEntrypointDependencyGraph,
10
+ setAppEntrypointDependencyGraph
11
+ } from "./entrypoint-dependency-graph.service.js";
12
+ class NoopDevGraphService {
13
+ invalidationState = new CounterServerInvalidationState();
14
+ dependencyGraph = new NoopEntrypointDependencyGraph();
15
+ /**
16
+ * Returns the current coarse invalidation version.
17
+ */
18
+ getServerInvalidationVersion() {
19
+ return this.invalidationState.getServerInvalidationVersion();
20
+ }
21
+ /**
22
+ * Invalidates all server-side module state by incrementing the shared version.
23
+ */
24
+ invalidateServerModules(changedFiles) {
25
+ this.invalidationState.invalidateServerModules(changedFiles);
26
+ }
27
+ /**
28
+ * Indicates that this graph cannot target invalidation to one entrypoint set.
29
+ */
30
+ supportsSelectiveInvalidation() {
31
+ return this.dependencyGraph.supportsSelectiveInvalidation();
32
+ }
33
+ /**
34
+ * Returns an empty entrypoint set because this implementation stores no
35
+ * dependency graph metadata.
36
+ */
37
+ getDependencyEntrypoints(filePath) {
38
+ return this.dependencyGraph.getDependencyEntrypoints(filePath);
39
+ }
40
+ /**
41
+ * Accepts dependency updates to preserve interface compatibility, but stores no
42
+ * graph state in the noop implementation.
43
+ */
44
+ setEntrypointDependencies(entrypointPath, dependencies) {
45
+ this.dependencyGraph.setEntrypointDependencies(entrypointPath, dependencies);
46
+ }
47
+ /**
48
+ * Clears one entrypoint from the graph.
49
+ *
50
+ * @remarks
51
+ * There is no stored graph state in this implementation, so this is a no-op.
52
+ */
53
+ clearEntrypointDependencies(entrypointPath) {
54
+ this.dependencyGraph.clearEntrypointDependencies(entrypointPath);
55
+ }
56
+ /**
57
+ * Resets graph-owned state for a fresh runtime cycle.
58
+ */
59
+ reset() {
60
+ this.invalidationState.reset();
61
+ this.dependencyGraph.reset();
62
+ }
63
+ }
64
+ class InMemoryDevGraphService {
65
+ invalidationState = new CounterServerInvalidationState();
66
+ dependencyGraph = new InMemoryEntrypointDependencyGraph();
67
+ /**
68
+ * Returns the current app-local server invalidation version.
69
+ */
70
+ getServerInvalidationVersion() {
71
+ return this.invalidationState.getServerInvalidationVersion();
72
+ }
73
+ /**
74
+ * Invalidates the current server-module cache generation.
75
+ *
76
+ * @remarks
77
+ * The current implementation still uses a coarse generation bump for server
78
+ * modules. Selective dependency lookups are used by callers that need to limit
79
+ * browser rebuild work.
80
+ */
81
+ invalidateServerModules(changedFiles) {
82
+ this.invalidationState.invalidateServerModules(changedFiles);
83
+ }
84
+ /**
85
+ * Indicates that this graph can answer dependency-to-entrypoint lookups.
86
+ */
87
+ supportsSelectiveInvalidation() {
88
+ return this.dependencyGraph.supportsSelectiveInvalidation();
89
+ }
90
+ /**
91
+ * Returns all known entrypoints that currently depend on the given file.
92
+ */
93
+ getDependencyEntrypoints(filePath) {
94
+ return this.dependencyGraph.getDependencyEntrypoints(filePath);
95
+ }
96
+ /**
97
+ * Replaces the stored dependency set for one entrypoint.
98
+ *
99
+ * @remarks
100
+ * The entrypoint itself is always included in its own dependency set so reverse
101
+ * lookups can map a changed entry file back to that same entrypoint.
102
+ */
103
+ setEntrypointDependencies(entrypointPath, dependencies) {
104
+ this.dependencyGraph.setEntrypointDependencies(entrypointPath, dependencies);
105
+ }
106
+ /**
107
+ * Removes one entrypoint and all of its reverse dependency edges.
108
+ */
109
+ clearEntrypointDependencies(entrypointPath) {
110
+ this.dependencyGraph.clearEntrypointDependencies(entrypointPath);
111
+ }
112
+ /**
113
+ * Clears all graph state and starts a fresh invalidation generation.
114
+ */
115
+ reset() {
116
+ this.invalidationState.reset();
117
+ this.dependencyGraph.reset();
118
+ }
119
+ }
120
+ function getAppDevGraphService(appConfig) {
121
+ if (appConfig.runtime?.devGraphService) {
122
+ return appConfig.runtime.devGraphService;
123
+ }
124
+ const serverInvalidationState = getAppServerInvalidationState(appConfig);
125
+ const entrypointDependencyGraph = getAppEntrypointDependencyGraph(appConfig);
126
+ return {
127
+ getServerInvalidationVersion: () => serverInvalidationState.getServerInvalidationVersion(),
128
+ invalidateServerModules: (changedFiles) => serverInvalidationState.invalidateServerModules(changedFiles),
129
+ supportsSelectiveInvalidation: () => entrypointDependencyGraph.supportsSelectiveInvalidation(),
130
+ getDependencyEntrypoints: (filePath) => entrypointDependencyGraph.getDependencyEntrypoints(filePath),
131
+ setEntrypointDependencies: (entrypointPath, dependencies) => entrypointDependencyGraph.setEntrypointDependencies(entrypointPath, dependencies),
132
+ clearEntrypointDependencies: (entrypointPath) => entrypointDependencyGraph.clearEntrypointDependencies(entrypointPath),
133
+ reset: () => {
134
+ serverInvalidationState.reset();
135
+ entrypointDependencyGraph.reset();
136
+ }
137
+ };
138
+ }
139
+ function setAppDevGraphService(appConfig, devGraphService) {
140
+ setAppServerInvalidationState(appConfig, {
141
+ getServerInvalidationVersion: () => devGraphService.getServerInvalidationVersion(),
142
+ invalidateServerModules: (changedFiles) => devGraphService.invalidateServerModules(changedFiles),
143
+ reset: () => devGraphService.reset()
144
+ });
145
+ setAppEntrypointDependencyGraph(appConfig, {
146
+ supportsSelectiveInvalidation: () => devGraphService.supportsSelectiveInvalidation(),
147
+ getDependencyEntrypoints: (filePath) => devGraphService.getDependencyEntrypoints(filePath),
148
+ setEntrypointDependencies: (entrypointPath, dependencies) => devGraphService.setEntrypointDependencies(entrypointPath, dependencies),
149
+ clearEntrypointDependencies: (entrypointPath) => devGraphService.clearEntrypointDependencies(entrypointPath),
150
+ reset: () => devGraphService.reset()
151
+ });
152
+ appConfig.runtime = {
153
+ ...appConfig.runtime ?? {},
154
+ devGraphService
155
+ };
156
+ }
157
+ export {
158
+ InMemoryDevGraphService,
159
+ NoopDevGraphService,
160
+ getAppDevGraphService,
161
+ setAppDevGraphService
162
+ };
@@ -0,0 +1,41 @@
1
+ import type { EcoPagesAppConfig } from '../../types/internal-types.js';
2
+ /**
3
+ * App-owned dependency graph used to target browser entrypoint rebuilds.
4
+ */
5
+ export interface EntrypointDependencyGraph {
6
+ supportsSelectiveInvalidation(): boolean;
7
+ getDependencyEntrypoints(filePath: string): Set<string>;
8
+ setEntrypointDependencies(entrypointPath: string, dependencies: string[]): void;
9
+ clearEntrypointDependencies(entrypointPath: string): void;
10
+ reset(): void;
11
+ }
12
+ /**
13
+ * Graph implementation for runtimes that rebuild every watched entrypoint.
14
+ */
15
+ export declare class NoopEntrypointDependencyGraph implements EntrypointDependencyGraph {
16
+ supportsSelectiveInvalidation(): boolean;
17
+ getDependencyEntrypoints(_filePath: string): Set<string>;
18
+ setEntrypointDependencies(_entrypointPath: string, _dependencies: string[]): void;
19
+ clearEntrypointDependencies(_entrypointPath: string): void;
20
+ reset(): void;
21
+ }
22
+ /**
23
+ * In-memory entrypoint-to-dependency graph with reverse dependency lookups.
24
+ */
25
+ export declare class InMemoryEntrypointDependencyGraph implements EntrypointDependencyGraph {
26
+ private readonly dependencyEntrypoints;
27
+ private readonly entrypointDependencies;
28
+ supportsSelectiveInvalidation(): boolean;
29
+ getDependencyEntrypoints(filePath: string): Set<string>;
30
+ setEntrypointDependencies(entrypointPath: string, dependencies: string[]): void;
31
+ clearEntrypointDependencies(entrypointPath: string): void;
32
+ reset(): void;
33
+ }
34
+ /**
35
+ * Returns the app-owned entrypoint dependency graph.
36
+ */
37
+ export declare function getAppEntrypointDependencyGraph(appConfig: EcoPagesAppConfig): EntrypointDependencyGraph;
38
+ /**
39
+ * Installs the dependency graph used by one app instance.
40
+ */
41
+ export declare function setAppEntrypointDependencyGraph(appConfig: EcoPagesAppConfig, entrypointDependencyGraph: EntrypointDependencyGraph): void;
@@ -0,0 +1,85 @@
1
+ import path from "node:path";
2
+ class NoopEntrypointDependencyGraph {
3
+ supportsSelectiveInvalidation() {
4
+ return false;
5
+ }
6
+ getDependencyEntrypoints(_filePath) {
7
+ return /* @__PURE__ */ new Set();
8
+ }
9
+ setEntrypointDependencies(_entrypointPath, _dependencies) {
10
+ }
11
+ clearEntrypointDependencies(_entrypointPath) {
12
+ }
13
+ reset() {
14
+ }
15
+ }
16
+ class InMemoryEntrypointDependencyGraph {
17
+ dependencyEntrypoints = /* @__PURE__ */ new Map();
18
+ entrypointDependencies = /* @__PURE__ */ new Map();
19
+ supportsSelectiveInvalidation() {
20
+ return true;
21
+ }
22
+ getDependencyEntrypoints(filePath) {
23
+ return new Set(this.dependencyEntrypoints.get(path.resolve(filePath)) ?? []);
24
+ }
25
+ setEntrypointDependencies(entrypointPath, dependencies) {
26
+ const normalizedEntrypoint = path.resolve(entrypointPath);
27
+ this.clearEntrypointDependencies(normalizedEntrypoint);
28
+ const normalizedDependencies = /* @__PURE__ */ new Set([
29
+ normalizedEntrypoint,
30
+ ...dependencies.map((dependencyPath) => path.resolve(dependencyPath))
31
+ ]);
32
+ this.entrypointDependencies.set(normalizedEntrypoint, normalizedDependencies);
33
+ for (const dependencyPath of normalizedDependencies) {
34
+ const entrypoints = this.dependencyEntrypoints.get(dependencyPath) ?? /* @__PURE__ */ new Set();
35
+ entrypoints.add(normalizedEntrypoint);
36
+ this.dependencyEntrypoints.set(dependencyPath, entrypoints);
37
+ }
38
+ }
39
+ clearEntrypointDependencies(entrypointPath) {
40
+ const normalizedEntrypoint = path.resolve(entrypointPath);
41
+ const previousDependencies = this.entrypointDependencies.get(normalizedEntrypoint);
42
+ if (!previousDependencies) {
43
+ return;
44
+ }
45
+ for (const dependencyPath of previousDependencies) {
46
+ const entrypoints = this.dependencyEntrypoints.get(dependencyPath);
47
+ if (!entrypoints) {
48
+ continue;
49
+ }
50
+ entrypoints.delete(normalizedEntrypoint);
51
+ if (entrypoints.size === 0) {
52
+ this.dependencyEntrypoints.delete(dependencyPath);
53
+ }
54
+ }
55
+ this.entrypointDependencies.delete(normalizedEntrypoint);
56
+ }
57
+ reset() {
58
+ this.dependencyEntrypoints.clear();
59
+ this.entrypointDependencies.clear();
60
+ }
61
+ }
62
+ function isLegacyEntrypointDependencyGraph(value) {
63
+ return Boolean(value) && typeof value === "object" && typeof value.supportsSelectiveInvalidation === "function" && typeof value.getDependencyEntrypoints === "function" && typeof value.setEntrypointDependencies === "function" && typeof value.clearEntrypointDependencies === "function" && typeof value.reset === "function";
64
+ }
65
+ function getAppEntrypointDependencyGraph(appConfig) {
66
+ if (appConfig.runtime?.entrypointDependencyGraph) {
67
+ return appConfig.runtime.entrypointDependencyGraph;
68
+ }
69
+ if (isLegacyEntrypointDependencyGraph(appConfig.runtime?.devGraphService)) {
70
+ return appConfig.runtime.devGraphService;
71
+ }
72
+ return new NoopEntrypointDependencyGraph();
73
+ }
74
+ function setAppEntrypointDependencyGraph(appConfig, entrypointDependencyGraph) {
75
+ appConfig.runtime = {
76
+ ...appConfig.runtime ?? {},
77
+ entrypointDependencyGraph
78
+ };
79
+ }
80
+ export {
81
+ InMemoryEntrypointDependencyGraph,
82
+ NoopEntrypointDependencyGraph,
83
+ getAppEntrypointDependencyGraph,
84
+ setAppEntrypointDependencyGraph
85
+ };
@@ -0,0 +1,26 @@
1
+ import type { EcoPagesAppConfig } from '../../types/internal-types.js';
2
+ /**
3
+ * App-owned coarse invalidation state for server-executed modules.
4
+ */
5
+ export interface ServerInvalidationState {
6
+ getServerInvalidationVersion(): number;
7
+ invalidateServerModules(changedFiles?: string[]): void;
8
+ reset(): void;
9
+ }
10
+ /**
11
+ * Minimal app-local invalidation state backed by a single generation counter.
12
+ */
13
+ export declare class CounterServerInvalidationState implements ServerInvalidationState {
14
+ private serverInvalidationVersion;
15
+ getServerInvalidationVersion(): number;
16
+ invalidateServerModules(_changedFiles?: string[]): void;
17
+ reset(): void;
18
+ }
19
+ /**
20
+ * Returns the app-owned server invalidation state.
21
+ */
22
+ export declare function getAppServerInvalidationState(appConfig: EcoPagesAppConfig): ServerInvalidationState;
23
+ /**
24
+ * Installs the invalidation state used by one app instance.
25
+ */
26
+ export declare function setAppServerInvalidationState(appConfig: EcoPagesAppConfig, serverInvalidationState: ServerInvalidationState): void;
@@ -0,0 +1,35 @@
1
+ class CounterServerInvalidationState {
2
+ serverInvalidationVersion = 0;
3
+ getServerInvalidationVersion() {
4
+ return this.serverInvalidationVersion;
5
+ }
6
+ invalidateServerModules(_changedFiles) {
7
+ this.serverInvalidationVersion += 1;
8
+ }
9
+ reset() {
10
+ this.serverInvalidationVersion += 1;
11
+ }
12
+ }
13
+ function isLegacyServerInvalidationState(value) {
14
+ return Boolean(value) && typeof value === "object" && typeof value.getServerInvalidationVersion === "function" && typeof value.invalidateServerModules === "function" && typeof value.reset === "function";
15
+ }
16
+ function getAppServerInvalidationState(appConfig) {
17
+ if (appConfig.runtime?.serverInvalidationState) {
18
+ return appConfig.runtime.serverInvalidationState;
19
+ }
20
+ if (isLegacyServerInvalidationState(appConfig.runtime?.devGraphService)) {
21
+ return appConfig.runtime.devGraphService;
22
+ }
23
+ return new CounterServerInvalidationState();
24
+ }
25
+ function setAppServerInvalidationState(appConfig, serverInvalidationState) {
26
+ appConfig.runtime = {
27
+ ...appConfig.runtime ?? {},
28
+ serverInvalidationState
29
+ };
30
+ }
31
+ export {
32
+ CounterServerInvalidationState,
33
+ getAppServerInvalidationState,
34
+ setAppServerInvalidationState
35
+ };