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

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 (590) hide show
  1. package/README.md +2 -3
  2. package/package.json +97 -182
  3. package/src/adapters/abstract/application-adapter.test.ts +218 -0
  4. package/src/adapters/abstract/application-adapter.ts +379 -0
  5. package/src/adapters/abstract/router-adapter.ts +30 -0
  6. package/src/adapters/abstract/server-adapter.ts +79 -0
  7. package/src/adapters/bun/client-bridge.ts +62 -0
  8. package/src/adapters/bun/create-app.ts +214 -0
  9. package/src/adapters/bun/hmr-manager.test.ts +265 -0
  10. package/src/adapters/bun/hmr-manager.ts +88 -0
  11. package/src/adapters/bun/index.ts +2 -0
  12. package/src/adapters/bun/runtime-host.ts +76 -0
  13. package/src/adapters/bun/server-adapter.ts +605 -0
  14. package/src/adapters/bun/static-preview-host.ts +70 -0
  15. package/src/adapters/create-app.test.ts +10 -0
  16. package/src/adapters/create-app.ts +91 -0
  17. package/src/adapters/index.ts +2 -0
  18. package/src/adapters/node/create-app.test.ts +76 -0
  19. package/src/adapters/node/create-app.ts +116 -0
  20. package/src/adapters/node/http-request-bridge.test.ts +146 -0
  21. package/src/adapters/node/http-request-bridge.ts +176 -0
  22. package/src/adapters/node/node-client-bridge.test.ts +198 -0
  23. package/src/adapters/node/node-client-bridge.ts +79 -0
  24. package/src/adapters/node/node-hmr-manager.test.ts +374 -0
  25. package/src/adapters/node/node-hmr-manager.ts +72 -0
  26. package/src/adapters/node/runtime-host.test.ts +49 -0
  27. package/src/adapters/node/runtime-host.ts +113 -0
  28. package/src/adapters/node/server-adapter-dependencies.ts +28 -0
  29. package/src/adapters/node/server-adapter.test.ts +84 -0
  30. package/src/adapters/node/server-adapter.ts +423 -0
  31. package/src/adapters/node/static-content-server.test.ts +60 -0
  32. package/src/adapters/node/static-content-server.ts +239 -0
  33. package/src/adapters/node/static-preview-host.test.ts +89 -0
  34. package/src/adapters/node/static-preview-host.ts +101 -0
  35. package/src/adapters/shared/api-response.test.ts +97 -0
  36. package/src/adapters/shared/api-response.ts +104 -0
  37. package/src/adapters/shared/application-adapter.ts +199 -0
  38. package/src/adapters/shared/define-api-handler.ts +66 -0
  39. package/src/adapters/shared/explicit-static-render-preparation.ts +58 -0
  40. package/src/adapters/shared/explicit-static-route-matcher.test.ts +381 -0
  41. package/src/adapters/shared/explicit-static-route-matcher.ts +131 -0
  42. package/src/adapters/shared/file-route-middleware-pipeline.test.ts +85 -0
  43. package/src/adapters/shared/file-route-middleware-pipeline.ts +118 -0
  44. package/src/adapters/shared/fs-server-response-factory.test.ts +176 -0
  45. package/src/adapters/shared/fs-server-response-factory.ts +96 -0
  46. package/src/adapters/shared/fs-server-response-matcher.test.ts +311 -0
  47. package/src/adapters/shared/fs-server-response-matcher.ts +240 -0
  48. package/src/adapters/shared/hmr-entrypoint-registrar.ts +149 -0
  49. package/src/adapters/shared/hmr-html-response.ts +54 -0
  50. package/src/adapters/shared/hmr-manager.contract.test.ts +228 -0
  51. package/src/adapters/shared/hmr-manager.dispatch.test.ts +229 -0
  52. package/src/adapters/shared/render-context.test.ts +244 -0
  53. package/src/adapters/shared/render-context.ts +161 -0
  54. package/src/adapters/shared/runtime-app-bootstrap.test.ts +96 -0
  55. package/src/adapters/shared/runtime-app-bootstrap.ts +72 -0
  56. package/src/adapters/shared/runtime-host.ts +11 -0
  57. package/src/adapters/shared/server-adapter.test.ts +130 -0
  58. package/src/adapters/shared/server-adapter.ts +571 -0
  59. package/src/adapters/shared/server-route-handler.test.ts +112 -0
  60. package/src/adapters/shared/server-route-handler.ts +153 -0
  61. package/src/adapters/shared/server-static-builder.test.ts +338 -0
  62. package/src/adapters/shared/server-static-builder.ts +170 -0
  63. package/src/adapters/shared/shared-hmr-manager.ts +298 -0
  64. package/src/adapters/shared/static-preview-host.ts +12 -0
  65. package/src/build/README.md +57 -73
  66. package/src/build/browser-runtime-manifest.test.ts +121 -0
  67. package/src/build/browser-runtime-manifest.ts +105 -0
  68. package/src/build/browser-runtime-plugin-helpers.test.ts +49 -0
  69. package/src/build/browser-runtime-plugin-helpers.ts +37 -0
  70. package/src/build/browser-runtime-plugin.test.ts +256 -0
  71. package/src/build/browser-runtime-plugin.ts +306 -0
  72. package/src/build/build-adapter.test.ts +463 -0
  73. package/src/build/build-adapter.ts +788 -0
  74. package/src/build/build-manifest.ts +79 -0
  75. package/src/build/build-types.ts +83 -0
  76. package/src/build/rolldown-build-adapter.test.ts +352 -0
  77. package/src/build/rolldown-build-adapter.ts +363 -0
  78. package/src/build/rolldown-plugin-bridge.test.ts +256 -0
  79. package/src/build/rolldown-plugin-bridge.ts +309 -0
  80. package/src/build/runtime-build-executor.test.ts +130 -0
  81. package/src/build/runtime-build-executor.ts +37 -0
  82. package/src/build/runtime-build-output-normalizer.ts +137 -0
  83. package/src/build/serialized-build-executor.test.ts +96 -0
  84. package/src/build/serialized-build-executor.ts +90 -0
  85. package/src/build/server-side-css-shim-plugin.ts +77 -0
  86. package/src/cache/index.ts +6 -0
  87. package/src/cache/module-parse-cache.test.ts +73 -0
  88. package/src/cache/module-parse-cache.ts +137 -0
  89. package/src/config/README.md +1 -1
  90. package/src/config/config-builder.test.ts +456 -0
  91. package/src/config/config-builder.ts +728 -0
  92. package/src/config/config-builder.typecheck.test.ts +96 -0
  93. package/src/config/{constants.d.ts → constants.ts} +22 -13
  94. package/src/dev/host-runtime.ts +34 -0
  95. package/src/dev/sc-server.ts +143 -0
  96. package/src/eco/eco.browser.test.ts +43 -0
  97. package/src/eco/eco.browser.ts +137 -0
  98. package/src/eco/eco.test.ts +781 -0
  99. package/src/eco/eco.ts +262 -0
  100. package/src/eco/eco.types.ts +293 -0
  101. package/src/eco/eco.utils.test.ts +219 -0
  102. package/src/eco/eco.utils.ts +5 -0
  103. package/src/eco/global-injector-map.test.ts +42 -0
  104. package/src/eco/global-injector-map.ts +112 -0
  105. package/src/eco/lazy-injector-map.test.ts +66 -0
  106. package/src/eco/lazy-injector-map.ts +120 -0
  107. package/src/eco/module-dependencies.test.ts +30 -0
  108. package/src/eco/module-dependencies.ts +75 -0
  109. package/src/errors/http-error.test.ts +134 -0
  110. package/src/errors/http-error.ts +72 -0
  111. package/src/errors/index.ts +3 -0
  112. package/src/errors/locals-access-error.ts +7 -0
  113. package/src/global/app-logger.ts +4 -0
  114. package/src/global/utils.test.ts +12 -0
  115. 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
  116. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
  117. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
  118. package/src/hmr/client/hmr-runtime.ts +162 -0
  119. package/src/hmr/hmr-strategy.test.ts +124 -0
  120. package/src/hmr/hmr-strategy.ts +177 -0
  121. package/src/hmr/hmr.postcss.test.e2e.ts +41 -0
  122. package/src/hmr/hmr.test.e2e.ts +66 -0
  123. package/src/hmr/strategies/default-hmr-strategy.ts +60 -0
  124. package/src/hmr/strategies/js-hmr-strategy.test.ts +344 -0
  125. package/src/hmr/strategies/js-hmr-strategy.ts +307 -0
  126. package/src/index.browser.ts +3 -0
  127. package/src/index.ts +15 -0
  128. package/src/integrations/ghtml/ghtml-renderer.test.ts +253 -0
  129. package/src/integrations/ghtml/ghtml-renderer.ts +87 -0
  130. package/src/integrations/ghtml/ghtml.constants.ts +1 -0
  131. package/src/integrations/ghtml/ghtml.plugin.ts +28 -0
  132. package/src/plugins/alias-resolver-cache.test.ts +110 -0
  133. package/src/plugins/alias-resolver-cache.ts +145 -0
  134. package/src/plugins/alias-resolver-plugin.test.ts +41 -0
  135. package/src/plugins/alias-resolver-plugin.ts +75 -0
  136. package/src/plugins/eco-component-meta-plugin.test.ts +421 -0
  137. package/src/plugins/eco-component-meta-plugin.ts +518 -0
  138. package/src/plugins/foreign-jsx-override-plugin.test.ts +65 -0
  139. package/src/plugins/foreign-jsx-override-plugin.ts +76 -0
  140. package/src/plugins/integration-plugin.test.ts +151 -0
  141. package/src/plugins/integration-plugin.ts +344 -0
  142. package/src/plugins/processor.test.ts +148 -0
  143. package/src/plugins/processor.ts +257 -0
  144. package/src/plugins/{runtime-capability.d.ts → runtime-capability.ts} +8 -3
  145. package/src/plugins/source-transform.test.ts +82 -0
  146. package/src/plugins/source-transform.ts +123 -0
  147. package/src/route-renderer/orchestration/component-render-context.ts +338 -0
  148. package/src/route-renderer/orchestration/declared-ownership-graph.ts +62 -0
  149. package/src/route-renderer/orchestration/foreign-subtree-execution.service.ts +431 -0
  150. package/src/route-renderer/orchestration/integration-renderer.test.ts +2251 -0
  151. package/src/route-renderer/orchestration/integration-renderer.ts +1384 -0
  152. package/src/route-renderer/orchestration/ownership-planning.service.ts +97 -0
  153. package/src/route-renderer/orchestration/ownership-validation.service.ts +76 -0
  154. package/src/route-renderer/orchestration/processed-asset-dedupe.ts +29 -0
  155. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.test.ts +435 -0
  156. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.ts +310 -0
  157. package/src/route-renderer/orchestration/render-output.utils.ts +310 -0
  158. package/src/route-renderer/orchestration/route-render-orchestrator.prepare-render-options.test.ts +1365 -0
  159. package/src/route-renderer/orchestration/route-render-orchestrator.test.ts +267 -0
  160. package/src/route-renderer/orchestration/route-render-orchestrator.ts +879 -0
  161. package/src/route-renderer/orchestration/template-serialization.test.ts +110 -0
  162. package/src/route-renderer/orchestration/template-serialization.ts +117 -0
  163. package/src/route-renderer/page-loading/component-dependency-collection.ts +202 -0
  164. package/src/route-renderer/page-loading/declared-asset-collection.ts +153 -0
  165. package/src/route-renderer/page-loading/dependency-resolver.test.ts +761 -0
  166. package/src/route-renderer/page-loading/dependency-resolver.ts +144 -0
  167. package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +75 -0
  168. package/src/route-renderer/page-loading/lazy-entry-collection.ts +167 -0
  169. package/src/route-renderer/page-loading/lazy-trigger-planning.ts +74 -0
  170. package/src/route-renderer/page-loading/module-declaration-aggregation.ts +60 -0
  171. package/src/route-renderer/page-loading/module-declaration-scripts.ts +16 -0
  172. package/src/route-renderer/page-loading/page-dependency-bundling.ts +244 -0
  173. package/src/route-renderer/page-loading/page-module-loader.test.ts +183 -0
  174. package/src/route-renderer/page-loading/page-module-loader.ts +184 -0
  175. package/src/route-renderer/route-renderer.ts +133 -0
  176. package/src/router/client/link-intent.test.browser.ts +51 -0
  177. package/src/router/client/link-intent.ts +92 -0
  178. package/src/router/client/navigation-coordinator.test.ts +237 -0
  179. package/src/router/client/navigation-coordinator.ts +453 -0
  180. package/src/router/server/route-registry.test.ts +176 -0
  181. package/src/router/server/route-registry.ts +382 -0
  182. package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +66 -0
  183. package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +473 -0
  184. package/src/services/assets/asset-processing-service/asset-processing.service.ts +344 -0
  185. package/src/services/assets/asset-processing-service/asset.factory.test.ts +63 -0
  186. package/src/services/assets/asset-processing-service/asset.factory.ts +105 -0
  187. package/src/services/assets/asset-processing-service/assets.types.ts +128 -0
  188. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +74 -0
  189. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +98 -0
  190. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +67 -0
  191. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +78 -0
  192. package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +104 -0
  193. package/src/services/assets/asset-processing-service/index.ts +6 -0
  194. package/src/services/assets/asset-processing-service/page-package.test.ts +135 -0
  195. package/src/services/assets/asset-processing-service/page-package.ts +103 -0
  196. package/src/services/assets/asset-processing-service/{processor.interface.d.ts → processor.interface.ts} +10 -5
  197. package/src/services/assets/asset-processing-service/processor.registry.ts +18 -0
  198. package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +59 -0
  199. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +83 -0
  200. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +173 -0
  201. package/src/services/assets/asset-processing-service/processors/index.ts +5 -0
  202. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +188 -0
  203. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +138 -0
  204. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +326 -0
  205. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +116 -0
  206. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +270 -0
  207. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +145 -0
  208. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +261 -0
  209. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +72 -0
  210. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +83 -0
  211. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +65 -0
  212. package/src/services/assets/browser-bundle.service.test.ts +66 -0
  213. package/src/services/assets/browser-bundle.service.ts +109 -0
  214. package/src/services/cache/cache.types.ts +126 -0
  215. package/src/services/cache/index.ts +18 -0
  216. package/src/services/cache/memory-cache-store.test.ts +225 -0
  217. package/src/services/cache/memory-cache-store.ts +130 -0
  218. package/src/services/cache/page-cache-service.test.ts +175 -0
  219. package/src/services/cache/page-cache-service.ts +202 -0
  220. package/src/services/cache/page-request-cache-coordinator.service.test.ts +79 -0
  221. package/src/services/cache/page-request-cache-coordinator.service.ts +131 -0
  222. package/src/services/html/html-rewriter-provider.service.test.ts +183 -0
  223. package/src/services/html/html-rewriter-provider.service.ts +105 -0
  224. package/src/services/html/html-transformer.service.test.ts +544 -0
  225. package/src/services/html/html-transformer.service.ts +369 -0
  226. package/src/services/invalidation/development-invalidation.service.test.ts +87 -0
  227. package/src/services/invalidation/development-invalidation.service.ts +262 -0
  228. package/src/services/module-loading/app-module-loader.service.ts +9 -0
  229. package/src/services/module-loading/app-server-module-transpiler.service.test.ts +297 -0
  230. package/src/services/module-loading/app-server-module-transpiler.service.ts +168 -0
  231. package/src/services/module-loading/host-module-loader-registry.ts +15 -0
  232. package/src/services/module-loading/{module-loading-types.d.ts → module-loading-types.ts} +1 -0
  233. package/src/services/module-loading/page-module-import.service.test.ts +652 -0
  234. package/src/services/module-loading/page-module-import.service.ts +302 -0
  235. package/src/services/module-loading/server-module-transpiler.service.test.ts +242 -0
  236. package/src/services/module-loading/server-module-transpiler.service.ts +104 -0
  237. package/src/services/module-loading/source-module-support.ts +19 -0
  238. package/src/services/runtime-state/dev-graph.service.ts +217 -0
  239. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +136 -0
  240. package/src/services/runtime-state/server-invalidation-state.service.ts +68 -0
  241. package/src/services/validation/schema-validation-service.test.ts +223 -0
  242. package/src/services/validation/schema-validation-service.ts +204 -0
  243. package/src/services/validation/{standard-schema.types.d.ts → standard-schema.types.ts} +20 -17
  244. package/src/static-site-generator/static-site-generator.test.ts +408 -0
  245. package/src/static-site-generator/static-site-generator.ts +445 -0
  246. package/src/types/internal-types.ts +243 -0
  247. package/src/types/public-types.ts +1508 -0
  248. package/src/utils/deep-merge.test.ts +114 -0
  249. package/src/utils/deep-merge.ts +47 -0
  250. package/src/utils/hash.ts +5 -0
  251. package/src/utils/html-escaping.ts +9 -0
  252. package/src/utils/invariant.test.ts +22 -0
  253. package/src/utils/invariant.ts +15 -0
  254. package/src/utils/locals-utils.ts +37 -0
  255. package/src/utils/parse-cli-args.test.ts +69 -0
  256. package/src/utils/parse-cli-args.ts +105 -0
  257. package/src/utils/path-utils.module.ts +14 -0
  258. package/src/utils/path-utils.test.ts +15 -0
  259. package/src/utils/resolve-work-dir.ts +45 -0
  260. package/src/utils/runtime.ts +44 -0
  261. package/src/utils/server-utils.module.ts +67 -0
  262. package/src/utils/server-utils.test.ts +38 -0
  263. package/src/watchers/project-watcher.integration.test.ts +337 -0
  264. package/src/watchers/project-watcher.test-helpers.ts +42 -0
  265. package/src/watchers/project-watcher.test.ts +768 -0
  266. package/src/watchers/project-watcher.ts +357 -0
  267. package/src/adapters/abstract/application-adapter.d.ts +0 -194
  268. package/src/adapters/abstract/application-adapter.js +0 -121
  269. package/src/adapters/abstract/router-adapter.d.ts +0 -26
  270. package/src/adapters/abstract/router-adapter.js +0 -5
  271. package/src/adapters/abstract/server-adapter.d.ts +0 -69
  272. package/src/adapters/abstract/server-adapter.js +0 -15
  273. package/src/adapters/bun/client-bridge.d.ts +0 -34
  274. package/src/adapters/bun/client-bridge.js +0 -48
  275. package/src/adapters/bun/create-app.d.ts +0 -60
  276. package/src/adapters/bun/create-app.js +0 -140
  277. package/src/adapters/bun/hmr-manager.d.ts +0 -47
  278. package/src/adapters/bun/hmr-manager.js +0 -58
  279. package/src/adapters/bun/index.d.ts +0 -2
  280. package/src/adapters/bun/index.js +0 -8
  281. package/src/adapters/bun/runtime-host.d.ts +0 -52
  282. package/src/adapters/bun/runtime-host.js +0 -56
  283. package/src/adapters/bun/server-adapter.d.ts +0 -216
  284. package/src/adapters/bun/server-adapter.js +0 -445
  285. package/src/adapters/bun/static-preview-host.d.ts +0 -28
  286. package/src/adapters/bun/static-preview-host.js +0 -45
  287. package/src/adapters/create-app.d.ts +0 -20
  288. package/src/adapters/create-app.js +0 -66
  289. package/src/adapters/index.d.ts +0 -2
  290. package/src/adapters/index.js +0 -8
  291. package/src/adapters/node/create-app.d.ts +0 -24
  292. package/src/adapters/node/create-app.js +0 -92
  293. package/src/adapters/node/http-request-bridge.d.ts +0 -57
  294. package/src/adapters/node/http-request-bridge.js +0 -118
  295. package/src/adapters/node/node-client-bridge.d.ts +0 -26
  296. package/src/adapters/node/node-client-bridge.js +0 -66
  297. package/src/adapters/node/node-hmr-manager.d.ts +0 -52
  298. package/src/adapters/node/node-hmr-manager.js +0 -49
  299. package/src/adapters/node/runtime-host.d.ts +0 -57
  300. package/src/adapters/node/runtime-host.js +0 -92
  301. package/src/adapters/node/server-adapter-dependencies.d.ts +0 -19
  302. package/src/adapters/node/server-adapter-dependencies.js +0 -18
  303. package/src/adapters/node/server-adapter.d.ts +0 -138
  304. package/src/adapters/node/server-adapter.js +0 -315
  305. package/src/adapters/node/static-content-server.d.ts +0 -60
  306. package/src/adapters/node/static-content-server.js +0 -194
  307. package/src/adapters/node/static-preview-host.d.ts +0 -55
  308. package/src/adapters/node/static-preview-host.js +0 -68
  309. package/src/adapters/shared/api-response.d.ts +0 -52
  310. package/src/adapters/shared/api-response.js +0 -96
  311. package/src/adapters/shared/application-adapter.d.ts +0 -18
  312. package/src/adapters/shared/application-adapter.js +0 -90
  313. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  314. package/src/adapters/shared/define-api-handler.js +0 -15
  315. package/src/adapters/shared/explicit-static-render-preparation.d.ts +0 -25
  316. package/src/adapters/shared/explicit-static-render-preparation.js +0 -26
  317. package/src/adapters/shared/explicit-static-route-matcher.d.ts +0 -41
  318. package/src/adapters/shared/explicit-static-route-matcher.js +0 -101
  319. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +0 -62
  320. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -90
  321. package/src/adapters/shared/fs-server-response-factory.d.ts +0 -23
  322. package/src/adapters/shared/fs-server-response-factory.js +0 -81
  323. package/src/adapters/shared/fs-server-response-matcher.d.ts +0 -75
  324. package/src/adapters/shared/fs-server-response-matcher.js +0 -186
  325. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  326. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  327. package/src/adapters/shared/hmr-html-response.d.ts +0 -22
  328. package/src/adapters/shared/hmr-html-response.js +0 -33
  329. package/src/adapters/shared/render-context.d.ts +0 -16
  330. package/src/adapters/shared/render-context.js +0 -93
  331. package/src/adapters/shared/runtime-app-bootstrap.d.ts +0 -26
  332. package/src/adapters/shared/runtime-app-bootstrap.js +0 -46
  333. package/src/adapters/shared/runtime-host.d.ts +0 -12
  334. package/src/adapters/shared/runtime-host.js +0 -0
  335. package/src/adapters/shared/server-adapter.d.ts +0 -108
  336. package/src/adapters/shared/server-adapter.js +0 -436
  337. package/src/adapters/shared/server-route-handler.d.ts +0 -89
  338. package/src/adapters/shared/server-route-handler.js +0 -111
  339. package/src/adapters/shared/server-static-builder.d.ts +0 -71
  340. package/src/adapters/shared/server-static-builder.js +0 -100
  341. package/src/adapters/shared/shared-hmr-manager.d.ts +0 -59
  342. package/src/adapters/shared/shared-hmr-manager.js +0 -241
  343. package/src/adapters/shared/static-preview-host.d.ts +0 -10
  344. package/src/adapters/shared/static-preview-host.js +0 -0
  345. package/src/build/browser-runtime-import-rewrite-plugin.d.ts +0 -26
  346. package/src/build/browser-runtime-import-rewrite-plugin.js +0 -165
  347. package/src/build/browser-runtime-manifest.d.ts +0 -31
  348. package/src/build/browser-runtime-manifest.js +0 -61
  349. package/src/build/build-adapter.d.ts +0 -247
  350. package/src/build/build-adapter.js +0 -671
  351. package/src/build/build-manifest.d.ts +0 -33
  352. package/src/build/build-manifest.js +0 -52
  353. package/src/build/build-types.d.ts +0 -57
  354. package/src/build/build-types.js +0 -0
  355. package/src/build/dev-build-coordinator.d.ts +0 -72
  356. package/src/build/dev-build-coordinator.js +0 -154
  357. package/src/build/esbuild-build-adapter.d.ts +0 -79
  358. package/src/build/esbuild-build-adapter.js +0 -521
  359. package/src/build/runtime-build-executor.d.ts +0 -14
  360. package/src/build/runtime-build-executor.js +0 -22
  361. package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
  362. package/src/build/runtime-specifier-alias-plugin.js +0 -31
  363. package/src/config/config-builder.d.ts +0 -252
  364. package/src/config/config-builder.js +0 -598
  365. package/src/config/constants.js +0 -25
  366. package/src/dev/host-runtime.d.ts +0 -10
  367. package/src/dev/host-runtime.js +0 -24
  368. package/src/dev/sc-server.d.ts +0 -30
  369. package/src/dev/sc-server.js +0 -111
  370. package/src/eco/eco.browser.d.ts +0 -2
  371. package/src/eco/eco.browser.js +0 -88
  372. package/src/eco/eco.d.ts +0 -9
  373. package/src/eco/eco.js +0 -119
  374. package/src/eco/eco.types.d.ts +0 -233
  375. package/src/eco/eco.types.js +0 -0
  376. package/src/eco/eco.utils.d.ts +0 -1
  377. package/src/eco/eco.utils.js +0 -10
  378. package/src/eco/global-injector-map.d.ts +0 -16
  379. package/src/eco/global-injector-map.js +0 -80
  380. package/src/eco/lazy-injector-map.d.ts +0 -8
  381. package/src/eco/lazy-injector-map.js +0 -70
  382. package/src/eco/module-dependencies.d.ts +0 -18
  383. package/src/eco/module-dependencies.js +0 -49
  384. package/src/errors/http-error.d.ts +0 -31
  385. package/src/errors/http-error.js +0 -50
  386. package/src/errors/index.d.ts +0 -3
  387. package/src/errors/index.js +0 -6
  388. package/src/errors/locals-access-error.d.ts +0 -4
  389. package/src/errors/locals-access-error.js +0 -9
  390. package/src/global/app-logger.d.ts +0 -2
  391. package/src/global/app-logger.js +0 -6
  392. package/src/hmr/client/hmr-runtime.d.ts +0 -5
  393. package/src/hmr/client/hmr-runtime.js +0 -117
  394. package/src/hmr/hmr-strategy.d.ts +0 -162
  395. package/src/hmr/hmr-strategy.js +0 -44
  396. package/src/hmr/hmr.postcss.test.e2e.d.ts +0 -1
  397. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  398. package/src/hmr/hmr.test.e2e.d.ts +0 -1
  399. package/src/hmr/hmr.test.e2e.js +0 -43
  400. package/src/hmr/strategies/default-hmr-strategy.d.ts +0 -43
  401. package/src/hmr/strategies/default-hmr-strategy.js +0 -34
  402. package/src/hmr/strategies/js-hmr-strategy.d.ts +0 -134
  403. package/src/hmr/strategies/js-hmr-strategy.js +0 -173
  404. package/src/index.browser.d.ts +0 -3
  405. package/src/index.browser.js +0 -4
  406. package/src/index.d.ts +0 -6
  407. package/src/index.js +0 -21
  408. package/src/integrations/ghtml/ghtml-renderer.d.ts +0 -16
  409. package/src/integrations/ghtml/ghtml-renderer.js +0 -57
  410. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  411. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  412. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  413. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  414. package/src/plugins/alias-resolver-plugin.d.ts +0 -3
  415. package/src/plugins/alias-resolver-plugin.js +0 -61
  416. package/src/plugins/eco-component-meta-plugin.d.ts +0 -108
  417. package/src/plugins/eco-component-meta-plugin.js +0 -175
  418. package/src/plugins/foreign-jsx-override-plugin.d.ts +0 -33
  419. package/src/plugins/foreign-jsx-override-plugin.js +0 -41
  420. package/src/plugins/integration-plugin.d.ts +0 -230
  421. package/src/plugins/integration-plugin.js +0 -201
  422. package/src/plugins/processor.d.ts +0 -97
  423. package/src/plugins/processor.js +0 -141
  424. package/src/plugins/runtime-capability.js +0 -0
  425. package/src/plugins/source-transform.d.ts +0 -46
  426. package/src/plugins/source-transform.js +0 -71
  427. package/src/route-renderer/orchestration/component-render-context.d.ts +0 -97
  428. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  429. package/src/route-renderer/orchestration/declared-ownership-graph.d.ts +0 -18
  430. package/src/route-renderer/orchestration/declared-ownership-graph.js +0 -34
  431. package/src/route-renderer/orchestration/foreign-subtree-execution.service.d.ts +0 -110
  432. package/src/route-renderer/orchestration/foreign-subtree-execution.service.js +0 -233
  433. package/src/route-renderer/orchestration/integration-renderer.d.ts +0 -534
  434. package/src/route-renderer/orchestration/integration-renderer.js +0 -991
  435. package/src/route-renderer/orchestration/ownership-planning.service.d.ts +0 -24
  436. package/src/route-renderer/orchestration/ownership-planning.service.js +0 -63
  437. package/src/route-renderer/orchestration/ownership-validation.service.d.ts +0 -29
  438. package/src/route-renderer/orchestration/ownership-validation.service.js +0 -53
  439. package/src/route-renderer/orchestration/processed-asset-dedupe.d.ts +0 -3
  440. package/src/route-renderer/orchestration/processed-asset-dedupe.js +0 -27
  441. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.d.ts +0 -91
  442. package/src/route-renderer/orchestration/queued-foreign-subtree-resolution.service.js +0 -170
  443. package/src/route-renderer/orchestration/render-output.utils.d.ts +0 -66
  444. package/src/route-renderer/orchestration/render-output.utils.js +0 -171
  445. package/src/route-renderer/orchestration/route-render-orchestrator.d.ts +0 -156
  446. package/src/route-renderer/orchestration/route-render-orchestrator.js +0 -577
  447. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  448. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  449. package/src/route-renderer/page-loading/component-dependency-collection.d.ts +0 -37
  450. package/src/route-renderer/page-loading/component-dependency-collection.js +0 -132
  451. package/src/route-renderer/page-loading/declared-asset-collection.d.ts +0 -24
  452. package/src/route-renderer/page-loading/declared-asset-collection.js +0 -106
  453. package/src/route-renderer/page-loading/dependency-resolver.d.ts +0 -35
  454. package/src/route-renderer/page-loading/dependency-resolver.js +0 -115
  455. package/src/route-renderer/page-loading/ecopages-virtual-imports.d.ts +0 -11
  456. package/src/route-renderer/page-loading/ecopages-virtual-imports.js +0 -57
  457. package/src/route-renderer/page-loading/lazy-entry-collection.d.ts +0 -45
  458. package/src/route-renderer/page-loading/lazy-entry-collection.js +0 -105
  459. package/src/route-renderer/page-loading/lazy-trigger-planning.d.ts +0 -19
  460. package/src/route-renderer/page-loading/lazy-trigger-planning.js +0 -40
  461. package/src/route-renderer/page-loading/module-declaration-aggregation.d.ts +0 -5
  462. package/src/route-renderer/page-loading/module-declaration-aggregation.js +0 -33
  463. package/src/route-renderer/page-loading/module-declaration-scripts.d.ts +0 -3
  464. package/src/route-renderer/page-loading/module-declaration-scripts.js +0 -18
  465. package/src/route-renderer/page-loading/page-dependency-bundling.d.ts +0 -13
  466. package/src/route-renderer/page-loading/page-dependency-bundling.js +0 -137
  467. package/src/route-renderer/page-loading/page-module-loader.d.ts +0 -90
  468. package/src/route-renderer/page-loading/page-module-loader.js +0 -127
  469. package/src/route-renderer/route-renderer.d.ts +0 -69
  470. package/src/route-renderer/route-renderer.js +0 -80
  471. package/src/router/client/link-intent.js +0 -34
  472. package/src/router/client/link-intent.test.browser.d.ts +0 -1
  473. package/src/router/client/link-intent.test.browser.js +0 -43
  474. package/src/router/client/navigation-coordinator.d.ts +0 -169
  475. package/src/router/client/navigation-coordinator.js +0 -215
  476. package/src/router/server/route-registry.d.ts +0 -78
  477. package/src/router/server/route-registry.js +0 -262
  478. package/src/services/assets/asset-processing-service/asset-dependency-keys.d.ts +0 -3
  479. package/src/services/assets/asset-processing-service/asset-dependency-keys.js +0 -56
  480. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +0 -103
  481. package/src/services/assets/asset-processing-service/asset-processing.service.js +0 -285
  482. package/src/services/assets/asset-processing-service/asset.factory.d.ts +0 -17
  483. package/src/services/assets/asset-processing-service/asset.factory.js +0 -82
  484. package/src/services/assets/asset-processing-service/assets.types.d.ts +0 -103
  485. package/src/services/assets/asset-processing-service/assets.types.js +0 -0
  486. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +0 -57
  487. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +0 -49
  488. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +0 -20
  489. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +0 -41
  490. package/src/services/assets/asset-processing-service/grouped-content-bundles.d.ts +0 -30
  491. package/src/services/assets/asset-processing-service/grouped-content-bundles.js +0 -65
  492. package/src/services/assets/asset-processing-service/index.d.ts +0 -6
  493. package/src/services/assets/asset-processing-service/index.js +0 -6
  494. package/src/services/assets/asset-processing-service/page-package.d.ts +0 -6
  495. package/src/services/assets/asset-processing-service/page-package.js +0 -80
  496. package/src/services/assets/asset-processing-service/processor.interface.js +0 -6
  497. package/src/services/assets/asset-processing-service/processor.registry.d.ts +0 -8
  498. package/src/services/assets/asset-processing-service/processor.registry.js +0 -15
  499. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +0 -24
  500. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +0 -65
  501. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -22
  502. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +0 -136
  503. package/src/services/assets/asset-processing-service/processors/index.d.ts +0 -5
  504. package/src/services/assets/asset-processing-service/processors/index.js +0 -5
  505. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +0 -6
  506. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +0 -120
  507. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -9
  508. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +0 -97
  509. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -42
  510. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +0 -126
  511. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -8
  512. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -59
  513. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -9
  514. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +0 -69
  515. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.d.ts +0 -18
  516. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.js +0 -45
  517. package/src/services/assets/browser-bundle.service.d.ts +0 -73
  518. package/src/services/assets/browser-bundle.service.js +0 -41
  519. package/src/services/cache/cache.types.d.ts +0 -107
  520. package/src/services/cache/cache.types.js +0 -0
  521. package/src/services/cache/index.d.ts +0 -7
  522. package/src/services/cache/index.js +0 -7
  523. package/src/services/cache/memory-cache-store.d.ts +0 -42
  524. package/src/services/cache/memory-cache-store.js +0 -98
  525. package/src/services/cache/page-cache-service.d.ts +0 -70
  526. package/src/services/cache/page-cache-service.js +0 -152
  527. package/src/services/cache/page-request-cache-coordinator.service.d.ts +0 -75
  528. package/src/services/cache/page-request-cache-coordinator.service.js +0 -109
  529. package/src/services/html/html-rewriter-provider.service.d.ts +0 -40
  530. package/src/services/html/html-rewriter-provider.service.js +0 -68
  531. package/src/services/html/html-transformer.service.d.ts +0 -96
  532. package/src/services/html/html-transformer.service.js +0 -287
  533. package/src/services/invalidation/development-invalidation.service.d.ts +0 -74
  534. package/src/services/invalidation/development-invalidation.service.js +0 -190
  535. package/src/services/module-loading/app-module-loader.service.d.ts +0 -7
  536. package/src/services/module-loading/app-module-loader.service.js +0 -0
  537. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +0 -24
  538. package/src/services/module-loading/app-server-module-transpiler.service.js +0 -151
  539. package/src/services/module-loading/host-module-loader-registry.d.ts +0 -4
  540. package/src/services/module-loading/host-module-loader-registry.js +0 -15
  541. package/src/services/module-loading/module-loading-types.js +0 -0
  542. package/src/services/module-loading/node-bootstrap-plugin.d.ts +0 -38
  543. package/src/services/module-loading/node-bootstrap-plugin.js +0 -215
  544. package/src/services/module-loading/page-module-import.service.d.ts +0 -95
  545. package/src/services/module-loading/page-module-import.service.js +0 -191
  546. package/src/services/module-loading/server-module-transpiler.service.d.ts +0 -63
  547. package/src/services/module-loading/server-module-transpiler.service.js +0 -64
  548. package/src/services/module-loading/source-module-support.d.ts +0 -5
  549. package/src/services/module-loading/source-module-support.js +0 -8
  550. package/src/services/runtime-state/dev-graph.service.d.ts +0 -118
  551. package/src/services/runtime-state/dev-graph.service.js +0 -162
  552. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +0 -41
  553. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +0 -85
  554. package/src/services/runtime-state/server-invalidation-state.service.d.ts +0 -26
  555. package/src/services/runtime-state/server-invalidation-state.service.js +0 -35
  556. package/src/services/validation/schema-validation-service.d.ts +0 -122
  557. package/src/services/validation/schema-validation-service.js +0 -101
  558. package/src/services/validation/standard-schema.types.js +0 -0
  559. package/src/static-site-generator/static-site-generator.d.ts +0 -104
  560. package/src/static-site-generator/static-site-generator.js +0 -316
  561. package/src/types/internal-types.d.ts +0 -232
  562. package/src/types/internal-types.js +0 -0
  563. package/src/types/public-types.d.ts +0 -1307
  564. package/src/types/public-types.js +0 -0
  565. package/src/utils/deep-merge.d.ts +0 -14
  566. package/src/utils/deep-merge.js +0 -32
  567. package/src/utils/hash.d.ts +0 -1
  568. package/src/utils/hash.js +0 -7
  569. package/src/utils/html-escaping.d.ts +0 -7
  570. package/src/utils/html-escaping.js +0 -6
  571. package/src/utils/html.js +0 -4
  572. package/src/utils/invariant.d.ts +0 -5
  573. package/src/utils/invariant.js +0 -11
  574. package/src/utils/locals-utils.d.ts +0 -15
  575. package/src/utils/locals-utils.js +0 -24
  576. package/src/utils/parse-cli-args.d.ts +0 -27
  577. package/src/utils/parse-cli-args.js +0 -62
  578. package/src/utils/path-utils.module.d.ts +0 -5
  579. package/src/utils/path-utils.module.js +0 -14
  580. package/src/utils/resolve-work-dir.d.ts +0 -11
  581. package/src/utils/resolve-work-dir.js +0 -31
  582. package/src/utils/runtime.d.ts +0 -11
  583. package/src/utils/runtime.js +0 -40
  584. package/src/utils/server-utils.module.d.ts +0 -19
  585. package/src/utils/server-utils.module.js +0 -56
  586. package/src/watchers/project-watcher.d.ts +0 -136
  587. package/src/watchers/project-watcher.js +0 -275
  588. package/src/watchers/project-watcher.test-helpers.d.ts +0 -4
  589. package/src/watchers/project-watcher.test-helpers.js +0 -52
  590. /package/src/utils/{html.d.ts → html.ts} +0 -0
@@ -1,70 +0,0 @@
1
- function normalizeScripts(scripts) {
2
- return scripts.split(",").map((scriptPath) => scriptPath.trim()).filter(Boolean).map((scriptPath) => {
3
- if (scriptPath.startsWith("/")) {
4
- return scriptPath;
5
- }
6
- const normalizedRelativePath = scriptPath.replace(/^\/+/, "").replace(/^(\.\/)+/, "");
7
- return `/${normalizedRelativePath}`;
8
- });
9
- }
10
- function dedupeCsvValues(values) {
11
- const seen = /* @__PURE__ */ new Set();
12
- for (const value of values) {
13
- for (const token of value.split(",").map((part) => part.trim()).filter(Boolean)) {
14
- seen.add(token);
15
- }
16
- }
17
- return Array.from(seen).join(",");
18
- }
19
- function buildInjectorMap(lazyGroups) {
20
- const map = {};
21
- for (const group of lazyGroups) {
22
- const scripts = normalizeScripts(group.scripts);
23
- const lazy = group.lazy;
24
- if ("on:idle" in lazy) {
25
- map["on:idle"] = {
26
- scripts: [...map["on:idle"]?.scripts ?? [], ...scripts]
27
- };
28
- continue;
29
- }
30
- if ("on:interaction" in lazy) {
31
- const currentValue = map["on:interaction"]?.value;
32
- const nextValue = lazy["on:interaction"];
33
- map["on:interaction"] = {
34
- value: typeof currentValue === "string" ? dedupeCsvValues([currentValue, nextValue]) : nextValue,
35
- scripts: [...map["on:interaction"]?.scripts ?? [], ...scripts]
36
- };
37
- continue;
38
- }
39
- if ("on:visible" in lazy) {
40
- const currentValue = map["on:visible"]?.value;
41
- const currentThreshold = typeof currentValue === "string" ? currentValue : void 0;
42
- const nextValue = lazy["on:visible"];
43
- map["on:visible"] = {
44
- ...nextValue === true ? currentThreshold ? { value: currentThreshold } : {} : { value: String(nextValue) },
45
- scripts: [...map["on:visible"]?.scripts ?? [], ...scripts]
46
- };
47
- continue;
48
- }
49
- throw new Error(
50
- `Invalid lazy options: must specify on:idle, on:interaction, or on:visible. Received: ${JSON.stringify(lazy)}`
51
- );
52
- }
53
- for (const key of Object.keys(map)) {
54
- const scripts = map[key]?.scripts;
55
- if (scripts) {
56
- map[key] = {
57
- ...map[key],
58
- scripts: Array.from(new Set(scripts))
59
- };
60
- }
61
- }
62
- return map;
63
- }
64
- function buildInjectorMapScript(lazyGroups) {
65
- const map = buildInjectorMap(lazyGroups);
66
- return JSON.stringify(map).replace(/<\/script/gi, "<\\/script");
67
- }
68
- export {
69
- buildInjectorMapScript
70
- };
@@ -1,18 +0,0 @@
1
- export type ModuleDependencyDeclaration = {
2
- from: string;
3
- imports?: string[];
4
- };
5
- /**
6
- * Parses a module grammar declaration into normalized object form.
7
- *
8
- * Supported input examples:
9
- * - `react-aria-components`
10
- * - `react-aria-components{Table,Select}`
11
- */
12
- export declare function parseModuleDeclaration(value: string): ModuleDependencyDeclaration;
13
- /**
14
- * Normalizes and deduplicates module declarations from `modules`.
15
- *
16
- * Returns canonical object declarations suitable for downstream bundling logic.
17
- */
18
- export declare function normalizeModuleDeclarations(modules?: string[]): ModuleDependencyDeclaration[];
@@ -1,49 +0,0 @@
1
- function normalizeImports(imports) {
2
- if (!imports || imports.length === 0) {
3
- return void 0;
4
- }
5
- const normalized = Array.from(new Set(imports.map((entry) => entry.trim()).filter((entry) => entry.length > 0)));
6
- return normalized.length > 0 ? normalized : void 0;
7
- }
8
- function parseModuleDeclaration(value) {
9
- const source = value.trim();
10
- if (source.length === 0) {
11
- throw new Error("Module declaration cannot be empty");
12
- }
13
- const openBraceIndex = source.indexOf("{");
14
- if (openBraceIndex < 0) {
15
- return { from: source };
16
- }
17
- const closeBraceIndex = source.lastIndexOf("}");
18
- if (closeBraceIndex !== source.length - 1 || closeBraceIndex <= openBraceIndex) {
19
- throw new Error(`Invalid module declaration '${value}'`);
20
- }
21
- const from = source.slice(0, openBraceIndex).trim();
22
- if (from.length === 0) {
23
- throw new Error(`Invalid module declaration '${value}'`);
24
- }
25
- const importsSlice = source.slice(openBraceIndex + 1, closeBraceIndex);
26
- const imports = normalizeImports(importsSlice.split(","));
27
- return {
28
- from,
29
- imports
30
- };
31
- }
32
- function normalizeModuleDeclarations(modules) {
33
- const declarations = modules ?? [];
34
- const output = [];
35
- const seen = /* @__PURE__ */ new Set();
36
- for (const declaration of declarations) {
37
- const normalized = parseModuleDeclaration(declaration);
38
- const key = `${normalized.from}::${(normalized.imports ?? []).join(",")}`;
39
- if (!seen.has(key)) {
40
- seen.add(key);
41
- output.push(normalized);
42
- }
43
- }
44
- return output;
45
- }
46
- export {
47
- normalizeModuleDeclarations,
48
- parseModuleDeclaration
49
- };
@@ -1,31 +0,0 @@
1
- export interface HttpErrorDetails {
2
- [key: string]: unknown;
3
- }
4
- export interface HttpErrorJson {
5
- error: string;
6
- status: number;
7
- details?: HttpErrorDetails;
8
- }
9
- /**
10
- * HTTP error class for structured error handling in route handlers.
11
- * Provides static factory methods for common HTTP error responses.
12
- */
13
- export declare class HttpError extends Error {
14
- readonly status: number;
15
- readonly details?: HttpErrorDetails;
16
- constructor(status: number, message: string, details?: HttpErrorDetails);
17
- /**
18
- * Serialize error to JSON for API responses.
19
- */
20
- toJSON(): HttpErrorJson;
21
- /**
22
- * Create a Response object from this error.
23
- */
24
- toResponse(): Response;
25
- static BadRequest(message?: string, details?: HttpErrorDetails): HttpError;
26
- static Unauthorized(message?: string): HttpError;
27
- static Forbidden(message?: string): HttpError;
28
- static NotFound(message?: string): HttpError;
29
- static Conflict(message?: string, details?: HttpErrorDetails): HttpError;
30
- static InternalServerError(message?: string): HttpError;
31
- }
@@ -1,50 +0,0 @@
1
- class HttpError extends Error {
2
- status;
3
- details;
4
- constructor(status, message, details) {
5
- super(message);
6
- this.name = "HttpError";
7
- this.status = status;
8
- this.details = details;
9
- }
10
- /**
11
- * Serialize error to JSON for API responses.
12
- */
13
- toJSON() {
14
- const json = {
15
- error: this.message,
16
- status: this.status
17
- };
18
- if (this.details) {
19
- json.details = this.details;
20
- }
21
- return json;
22
- }
23
- /**
24
- * Create a Response object from this error.
25
- */
26
- toResponse() {
27
- return Response.json(this.toJSON(), { status: this.status });
28
- }
29
- static BadRequest(message = "Bad Request", details) {
30
- return new HttpError(400, message, details);
31
- }
32
- static Unauthorized(message = "Unauthorized") {
33
- return new HttpError(401, message);
34
- }
35
- static Forbidden(message = "Forbidden") {
36
- return new HttpError(403, message);
37
- }
38
- static NotFound(message = "Not Found") {
39
- return new HttpError(404, message);
40
- }
41
- static Conflict(message = "Conflict", details) {
42
- return new HttpError(409, message, details);
43
- }
44
- static InternalServerError(message = "Internal Server Error") {
45
- return new HttpError(500, message);
46
- }
47
- }
48
- export {
49
- HttpError
50
- };
@@ -1,3 +0,0 @@
1
- export { HttpError } from './http-error.js';
2
- export type { HttpErrorDetails, HttpErrorJson } from './http-error.js';
3
- export { LocalsAccessError } from './locals-access-error.js';
@@ -1,6 +0,0 @@
1
- import { HttpError } from "./http-error.js";
2
- import { LocalsAccessError } from "./locals-access-error.js";
3
- export {
4
- HttpError,
5
- LocalsAccessError
6
- };
@@ -1,4 +0,0 @@
1
- export declare class LocalsAccessError extends Error {
2
- name: string;
3
- constructor(message: string);
4
- }
@@ -1,9 +0,0 @@
1
- class LocalsAccessError extends Error {
2
- name = "LocalsAccessError";
3
- constructor(message) {
4
- super(message);
5
- }
6
- }
7
- export {
8
- LocalsAccessError
9
- };
@@ -1,2 +0,0 @@
1
- import { Logger } from '@ecopages/logger';
2
- export declare const appLogger: Logger;
@@ -1,6 +0,0 @@
1
- import { Logger } from "@ecopages/logger";
2
- const debug = process.env.ECOPAGES_LOGGER_DEBUG === "true";
3
- const appLogger = new Logger("[@ecopages/core]", { debug });
4
- export {
5
- appLogger
6
- };
@@ -1,5 +0,0 @@
1
- /**
2
- * Ecopages HMR Runtime
3
- * Injected into the browser to handle Hot Module Replacement updates.
4
- */
5
- export {};
@@ -1,117 +0,0 @@
1
- import { getEcoNavigationRuntime } from "../../router/client/navigation-coordinator.js";
2
- (function() {
3
- const WS_URL = "ws://" + location.host + "/_hmr";
4
- let socket;
5
- let reconnectAttempts = 0;
6
- function connect() {
7
- socket = new WebSocket(WS_URL);
8
- socket.addEventListener("open", () => {
9
- console.log("[ecopages] HMR Connected");
10
- reconnectAttempts = 0;
11
- });
12
- socket.addEventListener("message", async (event) => {
13
- try {
14
- const payload = JSON.parse(event.data);
15
- handleMessage(payload);
16
- } catch (e) {
17
- console.error("[ecopages] Invalid HMR message:", e);
18
- }
19
- });
20
- socket.addEventListener("close", () => {
21
- if (reconnectAttempts < 10) {
22
- setTimeout(connect, 1e3 * 2 ** reconnectAttempts);
23
- reconnectAttempts++;
24
- }
25
- });
26
- }
27
- async function handleMessage(payload) {
28
- const navigationRuntime = getEcoNavigationRuntime(window);
29
- switch (payload.type) {
30
- case "reload":
31
- await waitForNavigationToSettle(navigationRuntime);
32
- location.reload();
33
- break;
34
- case "layout-update": {
35
- await waitForNavigationToSettle(navigationRuntime);
36
- if (await navigationRuntime.reloadCurrentPage({ clearCache: true, moduleUrl: getActiveHmrModuleUrl() })) {
37
- } else {
38
- location.reload();
39
- }
40
- break;
41
- }
42
- case "error":
43
- console.error("[ecopages] HMR Error:", payload.message);
44
- break;
45
- case "update":
46
- if (payload.path) {
47
- await applyUpdate(payload.path, payload.timestamp);
48
- }
49
- break;
50
- case "css-update":
51
- if (payload.path) {
52
- refreshStylesheet(payload.path);
53
- }
54
- break;
55
- }
56
- }
57
- async function applyUpdate(path, timestamp) {
58
- try {
59
- const url = path + "?t=" + (timestamp || Date.now());
60
- const handlers = window.__ECO_PAGES__?.hmrHandlers;
61
- const navigationRuntime = getEcoNavigationRuntime(window);
62
- await waitForNavigationToSettle(navigationRuntime);
63
- if (handlers?.[path]) {
64
- await handlers[path](url);
65
- return;
66
- }
67
- await import(url);
68
- if (await navigationRuntime.reloadCurrentPage({ clearCache: false })) {
69
- }
70
- } catch (e) {
71
- console.error("[ecopages] Failed to apply HMR update:", e);
72
- }
73
- }
74
- function getActiveHmrModuleUrl() {
75
- const pageModule = window.__ECO_PAGES__?.page?.module;
76
- if (pageModule && pageModule.includes("/assets/_hmr/")) {
77
- return pageModule.split("?")[0];
78
- }
79
- const handlerPaths = Object.keys(window.__ECO_PAGES__?.hmrHandlers ?? {});
80
- return handlerPaths[handlerPaths.length - 1];
81
- }
82
- async function waitForNavigationToSettle(navigationRuntime) {
83
- if (!navigationRuntime.hasPendingNavigationTransaction()) {
84
- return;
85
- }
86
- await new Promise((resolve) => {
87
- const startedAt = performance.now();
88
- const timeoutMs = 2e3;
89
- const poll = () => {
90
- if (!navigationRuntime.hasPendingNavigationTransaction()) {
91
- resolve();
92
- return;
93
- }
94
- if (performance.now() - startedAt >= timeoutMs) {
95
- resolve();
96
- return;
97
- }
98
- requestAnimationFrame(poll);
99
- };
100
- requestAnimationFrame(poll);
101
- });
102
- }
103
- function refreshStylesheet(path) {
104
- const filename = path.split("/").pop() || "";
105
- const links = document.querySelectorAll('link[rel="stylesheet"]');
106
- links.forEach((link) => {
107
- const href = link.href;
108
- if (href.includes(filename) || href.includes(path.replace(/^.*\/src\//, "/assets/"))) {
109
- const url = new URL(href, location.origin);
110
- url.searchParams.set("t", Date.now().toString());
111
- link.href = url.toString();
112
- console.log("[ecopages] CSS updated:", filename);
113
- }
114
- });
115
- }
116
- connect();
117
- })();
@@ -1,162 +0,0 @@
1
- import type { ClientBridgeEvent } from '../types/public-types.js';
2
- /**
3
- * HMR Strategy Pattern
4
- *
5
- * This module defines the base classes and types for Hot Module Replacement strategies.
6
- * Each strategy handles a specific type of file change and determines how to process it.
7
- *
8
- * @module
9
- * @example
10
- * ```typescript
11
- * class CustomHmrStrategy extends HmrStrategy {
12
- * readonly type = HmrStrategyType.INTEGRATION;
13
- *
14
- * matches(filePath: string): boolean {
15
- * return filePath.endsWith('.custom');
16
- * }
17
- *
18
- * async process(filePath: string): Promise<HmrAction> {
19
- * return {
20
- * type: 'broadcast',
21
- * events: [{ type: 'update', path: filePath, timestamp: Date.now() }],
22
- * };
23
- * }
24
- * }
25
- * ```
26
- */
27
- /**
28
- * Defines the category of an HMR strategy, which determines its execution priority.
29
- * Strategies are evaluated in descending order: INTEGRATION → ASSET → SCRIPT → FALLBACK.
30
- *
31
- * @remarks
32
- * The numeric values represent base priorities. Strategies can fine-tune their priority
33
- * using the `priorityOffset` property.
34
- */
35
- export declare const HmrStrategyType: {
36
- /**
37
- * Integration-specific strategies (React, Lit, etc.)
38
- * Highest priority to allow framework-specific HMR handling.
39
- */
40
- readonly INTEGRATION: 100;
41
- /**
42
- * Asset processing strategies (CSS, images, etc.)
43
- * High priority for specialized asset handling.
44
- */
45
- readonly ASSET: 50;
46
- /**
47
- * Generic script bundling strategies (JS/TS)
48
- * Medium priority for standard script processing.
49
- */
50
- readonly SCRIPT: 25;
51
- /**
52
- * Fallback strategy for unhandled file types.
53
- * Lowest priority, triggers full page reload.
54
- */
55
- readonly FALLBACK: 0;
56
- };
57
- export type HmrStrategyType = (typeof HmrStrategyType)[keyof typeof HmrStrategyType];
58
- /**
59
- * Represents an action to be taken after processing a file change.
60
- */
61
- export interface HmrAction {
62
- /**
63
- * Whether to broadcast an HMR event to connected clients.
64
- */
65
- type: 'broadcast' | 'none';
66
- /**
67
- * The HMR events to broadcast, if type is 'broadcast'.
68
- * Multiple events may be broadcast in one action.
69
- */
70
- events?: ClientBridgeEvent[];
71
- }
72
- /**
73
- * Base class for HMR strategies.
74
- *
75
- * Each strategy handles a specific type of file change and determines how to process it.
76
- * Strategies are selected based on their priority (higher values are evaluated first) and
77
- * whether they match the changed file path.
78
- *
79
- * @remarks
80
- * Strategies are expected to be stateless and idempotent. The same file change
81
- * should produce the same result when processed by the same strategy.
82
- *
83
- * @example
84
- * ```typescript
85
- * class MyAssetStrategy extends HmrStrategy {
86
- * readonly type = HmrStrategyType.ASSET;
87
- * readonly priorityOffset = 5;
88
- *
89
- * matches(filePath: string): boolean {
90
- * return /\.(png|jpg|svg)$/.test(filePath);
91
- * }
92
- *
93
- * async process(filePath: string): Promise<HmrAction> {
94
- * await this.optimizeImage(filePath);
95
- * return {
96
- * type: 'broadcast',
97
- * events: [{ type: 'update', path: filePath, timestamp: Date.now() }]
98
- * };
99
- * }
100
- * }
101
- * ```
102
- */
103
- export declare abstract class HmrStrategy {
104
- /**
105
- * The category of this strategy, determining its base priority.
106
- */
107
- abstract readonly type: HmrStrategyType;
108
- /**
109
- * Optional offset to fine-tune priority within the same category.
110
- * Useful when multiple strategies share the same type.
111
- *
112
- * @defaultValue 0
113
- */
114
- readonly priorityOffset: number;
115
- /**
116
- * Computed priority for strategy selection.
117
- * Higher values are evaluated first.
118
- *
119
- * @returns The sum of the strategy type and priority offset
120
- */
121
- get priority(): number;
122
- /**
123
- * Determines if this strategy can handle the given file path.
124
- *
125
- * @param filePath - Absolute path to the changed file
126
- * @returns `true` when this strategy should process the file
127
- *
128
- * @example
129
- * ```typescript
130
- * matches(filePath: string): boolean {
131
- * return filePath.endsWith('.css');
132
- * }
133
- * ```
134
- */
135
- abstract matches(filePath: string): boolean;
136
- /**
137
- * Processes a file change and returns the action to take.
138
- *
139
- * This method may perform side effects such as:
140
- * - Rebuilding files
141
- * - Writing to disk
142
- * - Transforming code
143
- * - Updating caches
144
- *
145
- * @param filePath - Absolute path to the changed file
146
- * @returns Action to take (broadcast event or none)
147
- *
148
- * @example
149
- * ```typescript
150
- * async process(filePath: string): Promise<HmrAction> {
151
- * const processed = await this.transform(filePath);
152
- * await Bun.write(outputPath, processed);
153
- *
154
- * return {
155
- * type: 'broadcast',
156
- * events: [{ type: 'update', path: outputPath, timestamp: Date.now() }]
157
- * };
158
- * }
159
- * ```
160
- */
161
- abstract process(filePath: string): Promise<HmrAction>;
162
- }
@@ -1,44 +0,0 @@
1
- const HmrStrategyType = {
2
- /**
3
- * Integration-specific strategies (React, Lit, etc.)
4
- * Highest priority to allow framework-specific HMR handling.
5
- */
6
- INTEGRATION: 100,
7
- /**
8
- * Asset processing strategies (CSS, images, etc.)
9
- * High priority for specialized asset handling.
10
- */
11
- ASSET: 50,
12
- /**
13
- * Generic script bundling strategies (JS/TS)
14
- * Medium priority for standard script processing.
15
- */
16
- SCRIPT: 25,
17
- /**
18
- * Fallback strategy for unhandled file types.
19
- * Lowest priority, triggers full page reload.
20
- */
21
- FALLBACK: 0
22
- };
23
- class HmrStrategy {
24
- /**
25
- * Optional offset to fine-tune priority within the same category.
26
- * Useful when multiple strategies share the same type.
27
- *
28
- * @defaultValue 0
29
- */
30
- priorityOffset = 0;
31
- /**
32
- * Computed priority for strategy selection.
33
- * Higher values are evaluated first.
34
- *
35
- * @returns The sum of the strategy type and priority offset
36
- */
37
- get priority() {
38
- return this.type + this.priorityOffset;
39
- }
40
- }
41
- export {
42
- HmrStrategy,
43
- HmrStrategyType
44
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,31 +0,0 @@
1
- import { test, expect } from "@playwright/test";
2
- import { readFileSync } from "node:fs";
3
- import { writeFile } from "node:fs/promises";
4
- import { resolve } from "node:path";
5
- const FIXTURE_DIR = resolve(process.cwd(), "packages/core/__fixtures__/app");
6
- const TEST_CSS_FILE = resolve(FIXTURE_DIR, "src/pages/postcss-hmr.css");
7
- test.describe("HMR E2E PostCSS", () => {
8
- test("should hot-update processor-owned CSS without a full page reload", async ({ page }) => {
9
- const originalCss = readFileSync(TEST_CSS_FILE, "utf-8");
10
- const title = page.locator(".postcss-title").first();
11
- try {
12
- await page.goto("/postcss-hmr", { waitUntil: "networkidle" });
13
- await expect(title).toBeVisible();
14
- const initialColor = await title.evaluate((el) => getComputedStyle(el).color);
15
- expect(initialColor).toBeTruthy();
16
- await page.evaluate(() => {
17
- window.__postcssReloadProbe = "before-change";
18
- });
19
- const modifiedCss = originalCss.replace(".postcss-title {", ".postcss-title {\n color: rgb(255, 0, 0);");
20
- await writeFile(TEST_CSS_FILE, modifiedCss, { flush: true });
21
- await expect.poll(async () => title.evaluate((el) => getComputedStyle(el).color), { timeout: 1e4 }).toBe("rgb(255, 0, 0)");
22
- await expect(
23
- page.evaluate(
24
- () => window.__postcssReloadProbe ?? null
25
- )
26
- ).resolves.toBe("before-change");
27
- } finally {
28
- await writeFile(TEST_CSS_FILE, originalCss, { flush: true });
29
- }
30
- });
31
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,43 +0,0 @@
1
- import { test, expect } from "@playwright/test";
2
- import { readFileSync } from "node:fs";
3
- import { writeFile } from "node:fs/promises";
4
- import { resolve } from "node:path";
5
- const FIXTURE_DIR = resolve(process.cwd(), "packages/core/__fixtures__/app");
6
- const TEST_CSS_FILE = resolve(FIXTURE_DIR, "src/pages/index.css");
7
- test.describe("HMR E2E", () => {
8
- test("should load page with .main-title element", async ({ page }) => {
9
- await page.goto("/", { waitUntil: "networkidle" });
10
- const title = page.locator(".main-title").first();
11
- await expect(title).toBeVisible();
12
- });
13
- test("should connect to HMR WebSocket", async ({ page }) => {
14
- const socketPromise = page.waitForEvent("websocket", {
15
- predicate: (socket2) => socket2.url().endsWith("/_hmr"),
16
- timeout: 1e4
17
- });
18
- await page.goto("/", { waitUntil: "networkidle" });
19
- const socket = await socketPromise;
20
- expect(socket.url()).toMatch(/\/_hmr$/);
21
- });
22
- test("should fall back to a full page reload when raw CSS file changes", async ({ page }) => {
23
- const originalCss = readFileSync(TEST_CSS_FILE, "utf-8");
24
- const title = page.locator(".main-title").first();
25
- try {
26
- await page.goto("/", { waitUntil: "networkidle" });
27
- await expect(title).toBeVisible();
28
- const initialColor = await title.evaluate((el) => getComputedStyle(el).color);
29
- expect(initialColor).toBeTruthy();
30
- const modifiedCss = originalCss.replace(".main-title {", ".main-title {\n color: rgb(255, 0, 0);");
31
- const reloadPromise = page.waitForEvent("framenavigated", {
32
- predicate: (frame) => frame === page.mainFrame(),
33
- timeout: 1e4
34
- });
35
- await writeFile(TEST_CSS_FILE, modifiedCss, { flush: true });
36
- await reloadPromise;
37
- await page.waitForLoadState("networkidle");
38
- await expect.poll(async () => title.evaluate((el) => getComputedStyle(el).color), { timeout: 1e4 }).toBe("rgb(255, 0, 0)");
39
- } finally {
40
- await writeFile(TEST_CSS_FILE, originalCss, { flush: true });
41
- }
42
- });
43
- });