@ecopages/core 0.2.0-alpha.7 → 0.2.0-alpha.8

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 (354) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/package.json +212 -92
  3. package/src/adapters/abstract/application-adapter.d.ts +168 -0
  4. package/src/adapters/abstract/application-adapter.js +109 -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 +60 -0
  12. package/src/adapters/bun/create-app.js +117 -0
  13. package/src/adapters/bun/hmr-manager.d.ts +143 -0
  14. package/src/adapters/bun/hmr-manager.js +334 -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 +373 -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/index.d.ts +6 -0
  22. package/src/adapters/index.js +14 -0
  23. package/src/adapters/node/bootstrap-dependency-resolver.d.ts +44 -0
  24. package/src/adapters/node/bootstrap-dependency-resolver.js +172 -0
  25. package/src/adapters/node/create-app.d.ts +21 -0
  26. package/src/adapters/node/create-app.js +143 -0
  27. package/src/adapters/node/index.d.ts +6 -0
  28. package/src/adapters/node/index.js +11 -0
  29. package/src/adapters/node/node-client-bridge.d.ts +26 -0
  30. package/src/adapters/node/node-client-bridge.js +66 -0
  31. package/src/adapters/node/node-hmr-manager.d.ts +133 -0
  32. package/src/adapters/node/node-hmr-manager.js +312 -0
  33. package/src/adapters/node/runtime-adapter.d.ts +46 -0
  34. package/src/adapters/node/runtime-adapter.js +306 -0
  35. package/src/adapters/node/server-adapter.d.ts +161 -0
  36. package/src/adapters/node/server-adapter.js +358 -0
  37. package/src/adapters/node/static-content-server.d.ts +60 -0
  38. package/src/adapters/node/static-content-server.js +194 -0
  39. package/src/adapters/node/write-runtime-manifest.d.ts +26 -0
  40. package/src/adapters/node/write-runtime-manifest.js +12 -0
  41. package/src/adapters/shared/api-response.d.ts +52 -0
  42. package/src/adapters/shared/api-response.js +96 -0
  43. package/src/adapters/shared/application-adapter.d.ts +18 -0
  44. package/src/adapters/shared/application-adapter.js +90 -0
  45. package/src/adapters/shared/define-api-handler.d.ts +25 -0
  46. package/src/adapters/shared/define-api-handler.js +15 -0
  47. package/src/adapters/shared/explicit-static-route-matcher.d.ts +38 -0
  48. package/src/adapters/shared/explicit-static-route-matcher.js +103 -0
  49. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +65 -0
  50. package/src/adapters/shared/file-route-middleware-pipeline.js +99 -0
  51. package/src/adapters/shared/fs-server-response-factory.d.ts +19 -0
  52. package/src/adapters/shared/fs-server-response-factory.js +97 -0
  53. package/src/adapters/shared/fs-server-response-matcher.d.ts +75 -0
  54. package/src/adapters/shared/fs-server-response-matcher.js +160 -0
  55. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +55 -0
  56. package/src/adapters/shared/hmr-entrypoint-registrar.js +87 -0
  57. package/src/adapters/shared/hmr-html-response.d.ts +22 -0
  58. package/src/adapters/shared/hmr-html-response.js +32 -0
  59. package/src/adapters/shared/render-context.d.ts +14 -0
  60. package/src/adapters/shared/render-context.js +70 -0
  61. package/src/adapters/shared/runtime-bootstrap.d.ts +38 -0
  62. package/src/adapters/shared/runtime-bootstrap.js +43 -0
  63. package/src/adapters/shared/server-adapter.d.ts +97 -0
  64. package/src/adapters/shared/server-adapter.js +386 -0
  65. package/src/adapters/shared/server-route-handler.d.ts +89 -0
  66. package/src/adapters/shared/server-route-handler.js +111 -0
  67. package/src/adapters/shared/server-static-builder.d.ts +70 -0
  68. package/src/adapters/shared/server-static-builder.js +99 -0
  69. package/src/build/build-adapter.d.ts +186 -0
  70. package/src/build/build-adapter.js +168 -0
  71. package/src/build/build-manifest.d.ts +27 -0
  72. package/src/build/build-manifest.js +30 -0
  73. package/src/build/build-types.d.ts +57 -0
  74. package/src/build/build-types.js +0 -0
  75. package/src/build/dev-build-coordinator.d.ts +74 -0
  76. package/src/build/dev-build-coordinator.js +161 -0
  77. package/src/build/esbuild-build-adapter.d.ts +72 -0
  78. package/src/build/esbuild-build-adapter.js +422 -0
  79. package/src/build/runtime-build-executor.d.ts +13 -0
  80. package/src/build/runtime-build-executor.js +20 -0
  81. package/src/build/runtime-specifier-alias-plugin.d.ts +15 -0
  82. package/src/build/runtime-specifier-alias-plugin.js +31 -0
  83. package/src/config/config-builder.d.ts +238 -0
  84. package/src/config/config-builder.js +565 -0
  85. package/src/constants.d.ts +45 -0
  86. package/src/constants.js +25 -0
  87. package/src/create-app.d.ts +17 -0
  88. package/src/create-app.js +66 -0
  89. package/src/dev/sc-server.d.ts +30 -0
  90. package/src/dev/sc-server.js +111 -0
  91. package/src/eco/component-render-context.d.ts +105 -0
  92. package/src/eco/component-render-context.js +87 -0
  93. package/src/eco/eco.d.ts +9 -0
  94. package/src/eco/eco.js +114 -0
  95. package/src/eco/eco.types.d.ts +178 -0
  96. package/src/eco/eco.types.js +0 -0
  97. package/src/eco/eco.utils.d.ts +40 -0
  98. package/src/eco/eco.utils.js +40 -0
  99. package/src/eco/global-injector-map.d.ts +16 -0
  100. package/src/eco/global-injector-map.js +80 -0
  101. package/src/eco/lazy-injector-map.d.ts +8 -0
  102. package/src/eco/lazy-injector-map.js +70 -0
  103. package/src/eco/module-dependencies.d.ts +18 -0
  104. package/src/eco/module-dependencies.js +49 -0
  105. package/src/errors/http-error.d.ts +31 -0
  106. package/src/errors/http-error.js +50 -0
  107. package/src/errors/index.d.ts +2 -0
  108. package/src/errors/index.js +4 -0
  109. package/src/errors/locals-access-error.d.ts +4 -0
  110. package/src/errors/locals-access-error.js +9 -0
  111. package/src/global/app-logger.d.ts +2 -0
  112. package/src/global/app-logger.js +6 -0
  113. package/src/hmr/client/hmr-runtime.d.ts +5 -0
  114. package/src/hmr/client/hmr-runtime.js +109 -0
  115. package/src/hmr/hmr-strategy.d.ts +159 -0
  116. package/src/hmr/hmr-strategy.js +29 -0
  117. package/src/hmr/hmr.postcss.test.e2e.d.ts +1 -0
  118. package/src/hmr/hmr.postcss.test.e2e.js +31 -0
  119. package/src/hmr/hmr.test.e2e.d.ts +1 -0
  120. package/src/hmr/hmr.test.e2e.js +43 -0
  121. package/src/hmr/strategies/default-hmr-strategy.d.ts +43 -0
  122. package/src/hmr/strategies/default-hmr-strategy.js +34 -0
  123. package/src/hmr/strategies/js-hmr-strategy.d.ts +139 -0
  124. package/src/hmr/strategies/js-hmr-strategy.js +178 -0
  125. package/src/index.browser.d.ts +3 -0
  126. package/src/index.browser.js +4 -0
  127. package/src/index.d.ts +5 -0
  128. package/src/index.js +10 -0
  129. package/src/integrations/ghtml/ghtml-renderer.d.ts +15 -0
  130. package/src/integrations/ghtml/ghtml-renderer.js +62 -0
  131. package/src/integrations/ghtml/ghtml.plugin.d.ts +20 -0
  132. package/src/integrations/ghtml/ghtml.plugin.js +21 -0
  133. package/src/internal-types.d.ts +221 -0
  134. package/src/internal-types.js +0 -0
  135. package/src/plugins/alias-resolver-plugin.d.ts +2 -0
  136. package/src/plugins/alias-resolver-plugin.js +53 -0
  137. package/src/plugins/eco-component-meta-plugin.d.ts +97 -0
  138. package/src/plugins/eco-component-meta-plugin.js +157 -0
  139. package/src/plugins/integration-plugin.d.ts +136 -0
  140. package/src/plugins/integration-plugin.js +133 -0
  141. package/src/plugins/processor.d.ts +95 -0
  142. package/src/plugins/processor.js +136 -0
  143. package/src/plugins/runtime-capability.d.ts +9 -0
  144. package/src/plugins/runtime-capability.js +0 -0
  145. package/src/public-types.d.ts +1149 -0
  146. package/src/public-types.js +0 -0
  147. package/src/route-renderer/component-graph/component-graph-executor.d.ts +32 -0
  148. package/src/route-renderer/component-graph/component-graph-executor.js +31 -0
  149. package/src/route-renderer/component-graph/component-graph.d.ts +42 -0
  150. package/src/route-renderer/component-graph/component-graph.js +72 -0
  151. package/src/route-renderer/component-graph/component-marker.d.ts +52 -0
  152. package/src/route-renderer/component-graph/component-marker.js +46 -0
  153. package/src/route-renderer/component-graph/component-reference.d.ts +10 -0
  154. package/src/route-renderer/component-graph/component-reference.js +19 -0
  155. package/src/route-renderer/component-graph/marker-graph-resolver.d.ts +77 -0
  156. package/src/route-renderer/component-graph/marker-graph-resolver.js +95 -0
  157. package/src/route-renderer/orchestration/integration-renderer.d.ts +372 -0
  158. package/src/route-renderer/orchestration/integration-renderer.js +589 -0
  159. package/src/route-renderer/orchestration/render-execution.service.d.ts +103 -0
  160. package/src/route-renderer/orchestration/render-execution.service.js +121 -0
  161. package/src/route-renderer/orchestration/render-preparation.service.d.ts +121 -0
  162. package/src/route-renderer/orchestration/render-preparation.service.js +332 -0
  163. package/src/route-renderer/page-loading/dependency-resolver.d.ts +35 -0
  164. package/src/route-renderer/page-loading/dependency-resolver.js +442 -0
  165. package/src/route-renderer/page-loading/page-module-loader.d.ts +87 -0
  166. package/src/route-renderer/page-loading/page-module-loader.js +124 -0
  167. package/src/route-renderer/route-renderer.d.ts +61 -0
  168. package/src/route-renderer/route-renderer.js +87 -0
  169. package/src/router/client/link-intent.js +34 -0
  170. package/src/router/client/link-intent.test.browser.d.ts +1 -0
  171. package/src/router/client/link-intent.test.browser.js +43 -0
  172. package/src/router/client/navigation-coordinator.d.ts +149 -0
  173. package/src/router/client/navigation-coordinator.js +215 -0
  174. package/src/router/server/fs-router-scanner.d.ts +41 -0
  175. package/src/router/server/fs-router-scanner.js +156 -0
  176. package/src/router/server/fs-router.d.ts +26 -0
  177. package/src/router/server/fs-router.js +100 -0
  178. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +120 -0
  179. package/src/services/assets/asset-processing-service/asset-processing.service.js +331 -0
  180. package/src/services/assets/asset-processing-service/asset.factory.d.ts +17 -0
  181. package/src/services/assets/asset-processing-service/asset.factory.js +82 -0
  182. package/src/services/assets/asset-processing-service/assets.types.d.ts +89 -0
  183. package/src/services/assets/asset-processing-service/assets.types.js +0 -0
  184. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +55 -0
  185. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +48 -0
  186. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +20 -0
  187. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +41 -0
  188. package/src/services/assets/asset-processing-service/index.d.ts +5 -0
  189. package/src/services/assets/asset-processing-service/index.js +5 -0
  190. package/src/services/assets/asset-processing-service/processor.interface.d.ts +22 -0
  191. package/src/services/assets/asset-processing-service/processor.interface.js +6 -0
  192. package/src/services/assets/asset-processing-service/processor.registry.d.ts +8 -0
  193. package/src/services/assets/asset-processing-service/processor.registry.js +15 -0
  194. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +24 -0
  195. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +64 -0
  196. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +17 -0
  197. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +72 -0
  198. package/src/services/assets/asset-processing-service/processors/index.d.ts +5 -0
  199. package/src/services/assets/asset-processing-service/processors/index.js +5 -0
  200. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +5 -0
  201. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +57 -0
  202. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +8 -0
  203. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +76 -0
  204. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +7 -0
  205. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +75 -0
  206. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +5 -0
  207. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +25 -0
  208. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +9 -0
  209. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +66 -0
  210. package/src/services/assets/browser-bundle.service.d.ts +32 -0
  211. package/src/services/assets/browser-bundle.service.js +33 -0
  212. package/src/services/cache/cache.types.d.ts +107 -0
  213. package/src/services/cache/cache.types.js +0 -0
  214. package/src/services/cache/index.d.ts +7 -0
  215. package/src/services/cache/index.js +7 -0
  216. package/src/services/cache/memory-cache-store.d.ts +42 -0
  217. package/src/services/cache/memory-cache-store.js +98 -0
  218. package/src/services/cache/page-cache-service.d.ts +70 -0
  219. package/src/services/cache/page-cache-service.js +152 -0
  220. package/src/services/cache/page-request-cache-coordinator.service.d.ts +75 -0
  221. package/src/services/cache/page-request-cache-coordinator.service.js +109 -0
  222. package/src/services/html/html-rewriter-provider.service.d.ts +37 -0
  223. package/src/services/html/html-rewriter-provider.service.js +65 -0
  224. package/src/services/html/html-transformer.service.d.ts +77 -0
  225. package/src/services/html/html-transformer.service.js +221 -0
  226. package/src/services/invalidation/development-invalidation.service.d.ts +74 -0
  227. package/src/services/invalidation/development-invalidation.service.js +189 -0
  228. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +16 -0
  229. package/src/services/module-loading/app-server-module-transpiler.service.js +34 -0
  230. package/src/services/module-loading/page-module-import.service.d.ts +71 -0
  231. package/src/services/module-loading/page-module-import.service.js +132 -0
  232. package/src/services/module-loading/server-loader.service.d.ts +96 -0
  233. package/src/services/module-loading/server-loader.service.js +32 -0
  234. package/src/services/module-loading/server-module-transpiler.service.d.ts +69 -0
  235. package/src/services/module-loading/server-module-transpiler.service.js +61 -0
  236. package/src/services/runtime-manifest/node-runtime-manifest.service.d.ts +35 -0
  237. package/src/services/runtime-manifest/node-runtime-manifest.service.js +60 -0
  238. package/src/services/runtime-state/dev-graph.service.d.ts +118 -0
  239. package/src/services/runtime-state/dev-graph.service.js +162 -0
  240. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +41 -0
  241. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +85 -0
  242. package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +69 -0
  243. package/src/services/runtime-state/runtime-specifier-registry.service.js +37 -0
  244. package/src/services/runtime-state/server-invalidation-state.service.d.ts +26 -0
  245. package/src/services/runtime-state/server-invalidation-state.service.js +35 -0
  246. package/src/services/validation/schema-validation-service.d.ts +122 -0
  247. package/src/services/validation/schema-validation-service.js +101 -0
  248. package/src/services/validation/standard-schema.types.d.ts +65 -0
  249. package/src/services/validation/standard-schema.types.js +0 -0
  250. package/src/static-site-generator/static-site-generator.d.ts +109 -0
  251. package/src/static-site-generator/static-site-generator.js +353 -0
  252. package/src/utils/css.d.ts +1 -0
  253. package/src/utils/css.js +7 -0
  254. package/src/utils/deep-merge.d.ts +14 -0
  255. package/src/utils/deep-merge.js +32 -0
  256. package/src/utils/hash.d.ts +1 -0
  257. package/src/utils/hash.js +7 -0
  258. package/src/utils/html.d.ts +1 -0
  259. package/src/utils/html.js +4 -0
  260. package/src/utils/invariant.d.ts +5 -0
  261. package/src/utils/invariant.js +11 -0
  262. package/src/utils/locals-utils.d.ts +15 -0
  263. package/src/utils/locals-utils.js +24 -0
  264. package/src/utils/parse-cli-args.d.ts +24 -0
  265. package/src/utils/parse-cli-args.js +47 -0
  266. package/src/utils/path-utils.module.d.ts +5 -0
  267. package/src/utils/path-utils.module.js +14 -0
  268. package/src/utils/resolve-work-dir.d.ts +11 -0
  269. package/src/utils/resolve-work-dir.js +31 -0
  270. package/src/utils/runtime.d.ts +11 -0
  271. package/src/utils/runtime.js +40 -0
  272. package/src/utils/server-utils.module.d.ts +19 -0
  273. package/src/utils/server-utils.module.js +56 -0
  274. package/src/watchers/project-watcher.d.ts +136 -0
  275. package/src/watchers/project-watcher.js +281 -0
  276. package/src/watchers/project-watcher.test-helpers.d.ts +4 -0
  277. package/src/watchers/project-watcher.test-helpers.js +52 -0
  278. package/src/adapters/bun/hmr-manager.test.ts +0 -267
  279. package/src/adapters/node/bootstrap-dependency-resolver.test.ts +0 -282
  280. package/src/adapters/node/node-client-bridge.test.ts +0 -198
  281. package/src/adapters/node/node-hmr-manager.test.ts +0 -322
  282. package/src/adapters/node/runtime-adapter.test.ts +0 -868
  283. package/src/adapters/node/static-content-server.test.ts +0 -60
  284. package/src/adapters/shared/api-response.test.ts +0 -97
  285. package/src/adapters/shared/explicit-static-route-matcher.test.ts +0 -381
  286. package/src/adapters/shared/file-route-middleware-pipeline.test.ts +0 -90
  287. package/src/adapters/shared/fs-server-response-factory.test.ts +0 -187
  288. package/src/adapters/shared/fs-server-response-matcher.test.ts +0 -286
  289. package/src/adapters/shared/hmr-manager.contract.test.ts +0 -196
  290. package/src/adapters/shared/hmr-manager.dispatch.test.ts +0 -220
  291. package/src/adapters/shared/render-context.test.ts +0 -146
  292. package/src/adapters/shared/server-adapter.test.ts +0 -77
  293. package/src/adapters/shared/server-route-handler.test.ts +0 -110
  294. package/src/adapters/shared/server-static-builder.test.ts +0 -316
  295. package/src/build/build-adapter-serialization.test.ts +0 -268
  296. package/src/build/build-adapter.test.ts +0 -815
  297. package/src/build/runtime-specifier-alias-plugin.test.ts +0 -43
  298. package/src/config/config-builder.test.ts +0 -410
  299. package/src/eco/eco.test.ts +0 -678
  300. package/src/eco/eco.utils.test.ts +0 -124
  301. package/src/eco/global-injector-map.test.ts +0 -42
  302. package/src/eco/lazy-injector-map.test.ts +0 -66
  303. package/src/eco/module-dependencies.test.ts +0 -30
  304. package/src/errors/http-error.test.ts +0 -134
  305. package/src/global/utils.test.ts +0 -12
  306. 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
  307. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
  308. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
  309. package/src/hmr/hmr-strategy.test.ts +0 -124
  310. package/src/hmr/strategies/js-hmr-strategy.test.ts +0 -335
  311. package/src/integrations/ghtml/ghtml-renderer.test.ts +0 -63
  312. package/src/plugins/alias-resolver-plugin.test.ts +0 -41
  313. package/src/plugins/eco-component-meta-plugin.test.ts +0 -380
  314. package/src/plugins/integration-plugin.test.ts +0 -111
  315. package/src/plugins/processor.test.ts +0 -148
  316. package/src/route-renderer/component-graph/component-graph-executor.test.ts +0 -41
  317. package/src/route-renderer/component-graph/component-graph.test.ts +0 -63
  318. package/src/route-renderer/component-graph/component-marker.test.ts +0 -73
  319. package/src/route-renderer/component-graph/marker-graph-resolver.test.ts +0 -135
  320. package/src/route-renderer/orchestration/integration-renderer.test.ts +0 -936
  321. package/src/route-renderer/orchestration/render-execution.service.test.ts +0 -97
  322. package/src/route-renderer/orchestration/render-preparation.service.test.ts +0 -235
  323. package/src/route-renderer/page-loading/dependency-resolver.test.ts +0 -345
  324. package/src/route-renderer/page-loading/page-module-loader.test.ts +0 -96
  325. package/src/router/client/navigation-coordinator.test.ts +0 -237
  326. package/src/router/server/fs-router-scanner.test.ts +0 -83
  327. package/src/router/server/fs-router.test.ts +0 -214
  328. package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +0 -385
  329. package/src/services/assets/asset-processing-service/asset.factory.test.ts +0 -63
  330. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +0 -72
  331. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +0 -67
  332. package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +0 -59
  333. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +0 -286
  334. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +0 -227
  335. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +0 -199
  336. package/src/services/assets/browser-bundle.service.test.ts +0 -36
  337. package/src/services/cache/memory-cache-store.test.ts +0 -225
  338. package/src/services/cache/page-cache-service.test.ts +0 -175
  339. package/src/services/cache/page-request-cache-coordinator.service.test.ts +0 -79
  340. package/src/services/html/html-rewriter-provider.service.test.ts +0 -183
  341. package/src/services/html/html-transformer.service.test.ts +0 -378
  342. package/src/services/invalidation/development-invalidation.service.test.ts +0 -77
  343. package/src/services/module-loading/page-module-import.service.test.ts +0 -253
  344. package/src/services/module-loading/server-loader.service.test.ts +0 -161
  345. package/src/services/module-loading/server-module-transpiler.service.test.ts +0 -115
  346. package/src/services/runtime-manifest/node-runtime-manifest.service.test.ts +0 -95
  347. package/src/services/validation/schema-validation-service.test.ts +0 -223
  348. package/src/static-site-generator/static-site-generator.test.ts +0 -307
  349. package/src/utils/deep-merge.test.ts +0 -114
  350. package/src/utils/invariant.test.ts +0 -22
  351. package/src/utils/path-utils.test.ts +0 -15
  352. package/src/utils/server-utils.test.ts +0 -38
  353. package/src/watchers/project-watcher.integration.test.ts +0 -337
  354. package/src/watchers/project-watcher.test.ts +0 -678
@@ -1,335 +0,0 @@
1
- import { describe, expect, it, beforeAll, afterAll } from 'vitest';
2
- import { JsHmrStrategy, type JsHmrContext } from './js-hmr-strategy';
3
- import { HmrStrategyType } from '../hmr-strategy';
4
- import { InMemoryDevGraphService, NoopDevGraphService } from '../../services/runtime-state/dev-graph.service.ts';
5
- import fs from 'node:fs';
6
- import path from 'node:path';
7
- import os from 'node:os';
8
-
9
- const TMP_DIR = path.join(os.tmpdir(), 'js-hmr-strategy-test');
10
- const SRC_DIR = path.join(TMP_DIR, 'src');
11
-
12
- function createMockContext(overrides: Partial<JsHmrContext> = {}): JsHmrContext {
13
- return {
14
- getWatchedFiles: () => new Map(),
15
- getSpecifierMap: () => new Map(),
16
- getEntrypointDependencyGraph: () => new NoopDevGraphService(),
17
- getDistDir: () => TMP_DIR,
18
- getPlugins: () => [],
19
- getSrcDir: () => SRC_DIR,
20
- getPagesDir: () => path.join(SRC_DIR, 'pages'),
21
- getLayoutsDir: () => path.join(SRC_DIR, 'layouts'),
22
- getTemplateExtensions: () => ['.tsx'],
23
- getBrowserBundleService: () => ({
24
- bundle: async () => ({ success: true, logs: [], outputs: [] }),
25
- }),
26
- ...overrides,
27
- };
28
- }
29
-
30
- describe('JsHmrStrategy', () => {
31
- beforeAll(() => {
32
- fs.mkdirSync(SRC_DIR, { recursive: true });
33
- });
34
-
35
- afterAll(() => {
36
- fs.rmSync(TMP_DIR, { recursive: true, force: true });
37
- });
38
-
39
- describe('type', () => {
40
- it('has SCRIPT type', () => {
41
- const context = createMockContext();
42
- const strategy = new JsHmrStrategy(context);
43
- expect(strategy.type).toBe(HmrStrategyType.SCRIPT);
44
- });
45
-
46
- it('has default priority of 25', () => {
47
- const context = createMockContext();
48
- const strategy = new JsHmrStrategy(context);
49
- expect(strategy.priority).toBe(25);
50
- });
51
- });
52
-
53
- describe('matches', () => {
54
- it('returns false when no watched files are registered', () => {
55
- const context = createMockContext({
56
- getWatchedFiles: () => new Map(),
57
- });
58
- const strategy = new JsHmrStrategy(context);
59
-
60
- expect(strategy.matches(path.join(SRC_DIR, 'app.ts'))).toBe(false);
61
- });
62
-
63
- it('returns false for unrelated .ts files when dependency graph support is available', () => {
64
- const devGraphService = new InMemoryDevGraphService();
65
- const context = createMockContext({
66
- getWatchedFiles: () => new Map([[path.join(SRC_DIR, 'entry.ts'), '/output.js']]),
67
- getEntrypointDependencyGraph: () => devGraphService,
68
- });
69
- const strategy = new JsHmrStrategy(context);
70
-
71
- expect(strategy.matches(path.join(SRC_DIR, 'component.ts'))).toBe(false);
72
- });
73
-
74
- it('returns true for dependency-connected .tsx files in src directory', () => {
75
- const changedFile = path.join(SRC_DIR, 'component.tsx');
76
- const devGraphService = new InMemoryDevGraphService();
77
- devGraphService.setEntrypointDependencies(path.join(SRC_DIR, 'entry.ts'), [changedFile]);
78
- const context = createMockContext({
79
- getWatchedFiles: () => new Map([[path.join(SRC_DIR, 'entry.ts'), '/output.js']]),
80
- getEntrypointDependencyGraph: () => devGraphService,
81
- });
82
- const strategy = new JsHmrStrategy(context);
83
-
84
- expect(strategy.matches(changedFile)).toBe(true);
85
- });
86
-
87
- it('returns true for registered entrypoints even without dependency graph hits', () => {
88
- const entrypoint = path.join(SRC_DIR, 'entry.tsx');
89
- const devGraphService = new InMemoryDevGraphService();
90
- const context = createMockContext({
91
- getWatchedFiles: () => new Map([[entrypoint, '/output.js']]),
92
- getEntrypointDependencyGraph: () => devGraphService,
93
- });
94
- const strategy = new JsHmrStrategy(context);
95
-
96
- expect(strategy.matches(entrypoint)).toBe(true);
97
- });
98
-
99
- it('returns true for .js files in src directory', () => {
100
- const context = createMockContext({
101
- getWatchedFiles: () => new Map([[path.join(SRC_DIR, 'entry.ts'), '/output.js']]),
102
- });
103
- const strategy = new JsHmrStrategy(context);
104
-
105
- expect(strategy.matches(path.join(SRC_DIR, 'utils.js'))).toBe(true);
106
- });
107
-
108
- it('returns true for .jsx files in src directory', () => {
109
- const context = createMockContext({
110
- getWatchedFiles: () => new Map([[path.join(SRC_DIR, 'entry.ts'), '/output.js']]),
111
- });
112
- const strategy = new JsHmrStrategy(context);
113
-
114
- expect(strategy.matches(path.join(SRC_DIR, 'component.jsx'))).toBe(true);
115
- });
116
-
117
- it('returns false for .css files', () => {
118
- const context = createMockContext({
119
- getWatchedFiles: () => new Map([[path.join(SRC_DIR, 'entry.ts'), '/output.js']]),
120
- });
121
- const strategy = new JsHmrStrategy(context);
122
-
123
- expect(strategy.matches(path.join(SRC_DIR, 'styles.css'))).toBe(false);
124
- });
125
-
126
- it('returns false for files outside src directory', () => {
127
- const context = createMockContext({
128
- getWatchedFiles: () => new Map([[path.join(SRC_DIR, 'entry.ts'), '/output.js']]),
129
- });
130
- const strategy = new JsHmrStrategy(context);
131
-
132
- expect(strategy.matches('/other/path/file.ts')).toBe(false);
133
- });
134
-
135
- it('returns false for integration-owned route template files', () => {
136
- const pagesDir = path.join(SRC_DIR, 'pages');
137
- const context = createMockContext({
138
- getWatchedFiles: () => new Map([[path.join(SRC_DIR, 'entry.ts'), '/output.js']]),
139
- getPagesDir: () => pagesDir,
140
- getTemplateExtensions: () => ['.kita.tsx', '.react.tsx'],
141
- });
142
- const strategy = new JsHmrStrategy(context);
143
-
144
- expect(strategy.matches(path.join(pagesDir, 'index.kita.tsx'))).toBe(false);
145
- expect(strategy.matches(path.join(pagesDir, 'home.react.tsx'))).toBe(false);
146
- });
147
-
148
- it('returns false for non-extension matches', () => {
149
- const context = createMockContext({
150
- getWatchedFiles: () => new Map([[path.join(SRC_DIR, 'entry.ts'), '/output.js']]),
151
- });
152
- const strategy = new JsHmrStrategy(context);
153
-
154
- expect(strategy.matches(path.join(SRC_DIR, 'data.json'))).toBe(false);
155
- expect(strategy.matches(path.join(SRC_DIR, 'readme.md'))).toBe(false);
156
- });
157
- });
158
-
159
- describe('process', () => {
160
- it('returns none when no watched files are registered', async () => {
161
- const context = createMockContext({
162
- getWatchedFiles: () => new Map(),
163
- });
164
- const strategy = new JsHmrStrategy(context);
165
-
166
- const action = await strategy.process(path.join(SRC_DIR, 'app.ts'));
167
-
168
- expect(action.type).toBe('none');
169
- });
170
-
171
- it('rebuilds only dependency-connected entrypoints when graph hit exists', async () => {
172
- const entryA = path.join(SRC_DIR, 'entry-a.ts');
173
- const entryB = path.join(SRC_DIR, 'entry-b.ts');
174
- const depA = path.join(SRC_DIR, 'shared-a.ts');
175
- const setEntrypointDependenciesCalls: Array<{ entrypointPath: string; dependencies: string[] }> = [];
176
- let batchedEntrypoints: string[] = [];
177
- const devGraphService = new InMemoryDevGraphService();
178
- devGraphService.setEntrypointDependencies(entryA, [depA]);
179
- devGraphService.setEntrypointDependencies(entryB, [entryB]);
180
-
181
- const context = createMockContext({
182
- getWatchedFiles: () =>
183
- new Map([
184
- [entryA, '/_hmr/entry-a.js'],
185
- [entryB, '/_hmr/entry-b.js'],
186
- ]),
187
- getEntrypointDependencyGraph: () => ({
188
- supportsSelectiveInvalidation: () => devGraphService.supportsSelectiveInvalidation(),
189
- getDependencyEntrypoints: (filePath: string) => devGraphService.getDependencyEntrypoints(filePath),
190
- setEntrypointDependencies: (entrypointPath: string, dependencies: string[]) => {
191
- setEntrypointDependenciesCalls.push({ entrypointPath, dependencies });
192
- devGraphService.setEntrypointDependencies(entrypointPath, dependencies);
193
- },
194
- clearEntrypointDependencies: (entrypointPath: string) =>
195
- devGraphService.clearEntrypointDependencies(entrypointPath),
196
- reset: () => devGraphService.reset(),
197
- }),
198
- });
199
-
200
- const strategy = new JsHmrStrategy(context) as unknown as {
201
- process: (filePath: string) => Promise<{ type: string; events?: unknown[] }>;
202
- [key: string]: unknown;
203
- };
204
-
205
- strategy.bundleEntrypoints = async (entrypoints: string[]) => {
206
- batchedEntrypoints = entrypoints;
207
- const dependencies = new Map<string, string[]>();
208
- for (const ep of entrypoints) {
209
- dependencies.set(path.resolve(ep), [ep, depA]);
210
- }
211
- return { success: true, dependencies };
212
- };
213
-
214
- strategy.processOutput = async () => {
215
- return { success: true, requiresReload: false };
216
- };
217
-
218
- const action = await strategy.process(depA);
219
-
220
- expect(batchedEntrypoints).toEqual([entryA]);
221
- expect(setEntrypointDependenciesCalls).toEqual([{ entrypointPath: entryA, dependencies: [entryA, depA] }]);
222
- expect(action).toEqual({
223
- type: 'broadcast',
224
- events: [
225
- {
226
- type: 'update',
227
- path: '/_hmr/entry-a.js',
228
- timestamp: expect.any(Number),
229
- },
230
- ],
231
- });
232
- });
233
-
234
- it('falls back to rebuilding all watched entrypoints when graph has no hit', async () => {
235
- const entryA = path.join(SRC_DIR, 'entry-a.ts');
236
- const entryB = path.join(SRC_DIR, 'entry-b.ts');
237
- const changedFile = path.join(SRC_DIR, 'new-shared.ts');
238
- let batchedEntrypoints: string[] = [];
239
-
240
- const context = createMockContext({
241
- getWatchedFiles: () =>
242
- new Map([
243
- [entryA, '/_hmr/entry-a.js'],
244
- [entryB, '/_hmr/entry-b.js'],
245
- ]),
246
- getEntrypointDependencyGraph: () => new NoopDevGraphService(),
247
- });
248
-
249
- const strategy = new JsHmrStrategy(context) as unknown as {
250
- process: (filePath: string) => Promise<{ type: string; events?: unknown[] }>;
251
- [key: string]: unknown;
252
- };
253
-
254
- strategy.bundleEntrypoints = async (entrypoints: string[]) => {
255
- batchedEntrypoints = entrypoints;
256
- const dependencies = new Map<string, string[]>();
257
- for (const ep of entrypoints) {
258
- dependencies.set(path.resolve(ep), [ep]);
259
- }
260
- return { success: true, dependencies };
261
- };
262
-
263
- strategy.processOutput = async () => {
264
- return { success: true, requiresReload: false };
265
- };
266
-
267
- const action = await strategy.process(changedFile);
268
-
269
- expect(batchedEntrypoints).toEqual([entryA, entryB]);
270
- expect(action).toEqual({
271
- type: 'broadcast',
272
- events: [
273
- {
274
- type: 'update',
275
- path: '/_hmr/entry-a.js',
276
- timestamp: expect.any(Number),
277
- },
278
- {
279
- type: 'update',
280
- path: '/_hmr/entry-b.js',
281
- timestamp: expect.any(Number),
282
- },
283
- ],
284
- });
285
- });
286
-
287
- it('skips watched entrypoints owned by higher-priority integration strategies', async () => {
288
- const reactEntrypoint = path.join(SRC_DIR, 'react-page.tsx');
289
- const scriptEntrypoint = path.join(SRC_DIR, 'widget.script.ts');
290
- const changedFile = path.join(SRC_DIR, 'shared.ts');
291
- let batchedEntrypoints: string[] = [];
292
- const devGraphService = new InMemoryDevGraphService();
293
- devGraphService.setEntrypointDependencies(reactEntrypoint, [changedFile]);
294
- devGraphService.setEntrypointDependencies(scriptEntrypoint, [changedFile]);
295
-
296
- const context = createMockContext({
297
- getWatchedFiles: () =>
298
- new Map([
299
- [reactEntrypoint, '/_hmr/react-page.js'],
300
- [scriptEntrypoint, '/_hmr/widget.script.js'],
301
- ]),
302
- getEntrypointDependencyGraph: () => devGraphService,
303
- shouldProcessEntrypoint: (entrypointPath: string) => entrypointPath !== reactEntrypoint,
304
- });
305
-
306
- const strategy = new JsHmrStrategy(context) as unknown as {
307
- process: (filePath: string) => Promise<{ type: string; events?: unknown[] }>;
308
- [key: string]: unknown;
309
- };
310
-
311
- strategy.bundleEntrypoints = async (entrypoints: string[]) => {
312
- batchedEntrypoints = entrypoints;
313
- return { success: true, dependencies: new Map([[path.resolve(scriptEntrypoint), [scriptEntrypoint]]]) };
314
- };
315
-
316
- strategy.processOutput = async () => {
317
- return { success: true, requiresReload: false };
318
- };
319
-
320
- const action = await strategy.process(changedFile);
321
-
322
- expect(batchedEntrypoints).toEqual([scriptEntrypoint]);
323
- expect(action).toEqual({
324
- type: 'broadcast',
325
- events: [
326
- {
327
- type: 'update',
328
- path: '/_hmr/widget.script.js',
329
- timestamp: expect.any(Number),
330
- },
331
- ],
332
- });
333
- });
334
- });
335
- });
@@ -1,63 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import HtmlTemplate from '../../../__fixtures__/app/src/includes/html.ghtml.js';
3
- import { FIXTURE_APP_PROJECT_DIR } from '../../../__fixtures__/constants.js';
4
- import { ConfigBuilder } from '../../config/config-builder.ts';
5
- import { GhtmlRenderer } from './ghtml-renderer.ts';
6
-
7
- const appConfig = await new ConfigBuilder().setRootDir(FIXTURE_APP_PROJECT_DIR).build();
8
-
9
- const metadata = {
10
- title: 'Ecopages',
11
- description: 'Ecopages',
12
- };
13
-
14
- const pageBody = '<body>Hello World</body>';
15
-
16
- const rendererContext = {
17
- appConfig,
18
- } as unknown as any;
19
-
20
- describe('GhtmlRenderer', () => {
21
- it('should render the page', async () => {
22
- const renderer = new GhtmlRenderer(rendererContext);
23
-
24
- renderer
25
- .render({
26
- params: {},
27
- query: {},
28
- props: {},
29
- file: 'file',
30
- metadata,
31
- Page: async () => pageBody,
32
- resolvedDependencies: [],
33
- HtmlTemplate,
34
- })
35
- .then((body) => {
36
- expect(body).toContain('<!DOCTYPE html>');
37
- expect(body).toContain('<body>Hello World</body>');
38
- expect(body).toContain('<title>Ecopages</title>');
39
- expect(body).toContain('<meta name="description" content="Ecopages" />');
40
- });
41
- });
42
-
43
- it('should throw an error if the page fails to render', async () => {
44
- const renderer = new GhtmlRenderer(rendererContext);
45
-
46
- renderer
47
- .render({
48
- params: {},
49
- query: {},
50
- props: {},
51
- file: 'file',
52
- resolvedDependencies: [],
53
- metadata,
54
- Page: async () => {
55
- throw new Error('Page failed to render');
56
- },
57
- HtmlTemplate,
58
- })
59
- .catch((error) => {
60
- expect(error.message).toBe('Error rendering page: Page failed to render');
61
- });
62
- });
63
- });
@@ -1,41 +0,0 @@
1
- import assert from 'node:assert/strict';
2
- import fs from 'node:fs';
3
- import { tmpdir } from 'node:os';
4
- import path from 'node:path';
5
- import { test } from 'vitest';
6
- import type { EcoBuildOnResolveResult } from '../build/build-types.ts';
7
- import { createAliasResolverPlugin } from './alias-resolver-plugin.ts';
8
-
9
- test('createAliasResolverPlugin resolves @ aliases to concrete barrel targets', async () => {
10
- const rootDir = fs.mkdtempSync(path.join(tmpdir(), 'ecopages-alias-resolver-'));
11
- const srcDir = path.join(rootDir, 'src');
12
- const layoutDir = path.join(srcDir, 'layouts', 'base-layout');
13
- fs.mkdirSync(layoutDir, { recursive: true });
14
- fs.writeFileSync(path.join(layoutDir, 'base-layout.kita.tsx'), 'export const BaseLayout = {};\n', 'utf8');
15
- fs.writeFileSync(path.join(layoutDir, 'index.ts'), "export * from './base-layout.kita';\n", 'utf8');
16
-
17
- try {
18
- const registrations: Array<{
19
- filter: RegExp;
20
- callback: (args: {
21
- path: string;
22
- }) => EcoBuildOnResolveResult | undefined | Promise<EcoBuildOnResolveResult | undefined>;
23
- }> = [];
24
- const plugin = createAliasResolverPlugin(srcDir);
25
-
26
- plugin.setup({
27
- onResolve(options, callback) {
28
- registrations.push({ filter: options.filter, callback });
29
- },
30
- onLoad() {},
31
- module() {},
32
- });
33
-
34
- assert.equal(registrations.length, 1);
35
- assert.deepEqual(await registrations[0]?.callback({ path: '@/layouts/base-layout' }), {
36
- path: path.join(layoutDir, 'base-layout.kita.tsx'),
37
- });
38
- } finally {
39
- fs.rmSync(rootDir, { recursive: true, force: true });
40
- }
41
- });