@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,521 +0,0 @@
1
- import { readFileSync, readdirSync, writeFileSync } from "node:fs";
2
- import { createRequire } from "node:module";
3
- import path from "node:path";
4
- import { pathToFileURL } from "node:url";
5
- import { fileSystem } from "@ecopages/file-system";
6
- import {
7
- collectBrowserRuntimeImportRewriteMap,
8
- rewriteBrowserRuntimeImports
9
- } from "./browser-runtime-import-rewrite-plugin.js";
10
- const moduleRequire = createRequire(import.meta.url);
11
- const esbuildPath = moduleRequire.resolve("esbuild");
12
- const workspaceNodePathsCache = /* @__PURE__ */ new Map();
13
- function transpileProfileToOptions(profile) {
14
- switch (profile) {
15
- case "browser-script":
16
- return {
17
- target: "browser",
18
- format: "esm",
19
- sourcemap: "none"
20
- };
21
- case "hmr-runtime":
22
- return {
23
- target: "browser",
24
- format: "esm",
25
- sourcemap: "none"
26
- };
27
- case "hmr-entrypoint":
28
- return {
29
- target: "browser",
30
- format: "esm",
31
- sourcemap: "none"
32
- };
33
- }
34
- }
35
- const ESBUILD_ADAPTER_BRAND = /* @__PURE__ */ Symbol.for("EsbuildBuildAdapter");
36
- class EsbuildBuildAdapter {
37
- ownership = "bun-native";
38
- [ESBUILD_ADAPTER_BRAND] = true;
39
- getJavaScriptOutExtension(options) {
40
- if (options.target === "browser") {
41
- return void 0;
42
- }
43
- if (options.format === "cjs") {
44
- return ".cjs";
45
- }
46
- if (options.format === "esm") {
47
- return ".mjs";
48
- }
49
- return void 0;
50
- }
51
- collectWorkspaceNodePaths(scanRoot, maxDepth = 3) {
52
- const normalizedRoot = path.resolve(scanRoot);
53
- const cached = workspaceNodePathsCache.get(normalizedRoot);
54
- if (cached) {
55
- return cached;
56
- }
57
- const nodePaths = /* @__PURE__ */ new Set();
58
- const skippedDirectoryNames = /* @__PURE__ */ new Set([".git", ".turbo", "dist", "node_modules", "test-results"]);
59
- const visit = (dirPath, depth) => {
60
- if (depth > maxDepth) {
61
- return;
62
- }
63
- const packageJsonPath = path.join(dirPath, "package.json");
64
- const nodeModulesPath = path.join(dirPath, "node_modules");
65
- if (fileSystem.exists(packageJsonPath) && fileSystem.exists(nodeModulesPath)) {
66
- nodePaths.add(nodeModulesPath);
67
- }
68
- if (depth === maxDepth) {
69
- return;
70
- }
71
- for (const entry of readdirSync(dirPath, { withFileTypes: true })) {
72
- if (!entry.isDirectory()) {
73
- continue;
74
- }
75
- if (skippedDirectoryNames.has(entry.name) || entry.name.startsWith(".")) {
76
- continue;
77
- }
78
- visit(path.join(dirPath, entry.name), depth + 1);
79
- }
80
- };
81
- if (fileSystem.exists(normalizedRoot) && fileSystem.isDirectory(normalizedRoot)) {
82
- visit(normalizedRoot, 0);
83
- }
84
- const resolvedNodePaths = Array.from(nodePaths);
85
- workspaceNodePathsCache.set(normalizedRoot, resolvedNodePaths);
86
- return resolvedNodePaths;
87
- }
88
- getFallbackNodePaths(contextRoot) {
89
- const nodePaths = /* @__PURE__ */ new Set();
90
- const contextNodeModulesPath = path.join(contextRoot, "node_modules");
91
- if (fileSystem.exists(contextNodeModulesPath)) {
92
- nodePaths.add(contextNodeModulesPath);
93
- }
94
- for (const workspaceNodePath of this.collectWorkspaceNodePaths(process.cwd())) {
95
- nodePaths.add(workspaceNodePath);
96
- }
97
- return Array.from(nodePaths);
98
- }
99
- rewriteBrowserRuntimeImportsInOutputs(result, plugins) {
100
- if (!result.success || result.outputs.length === 0) {
101
- return result;
102
- }
103
- const specifierMap = collectBrowserRuntimeImportRewriteMap(plugins);
104
- if (specifierMap.size === 0) {
105
- return result;
106
- }
107
- for (const output of result.outputs) {
108
- if (!/\.(?:[cm]?js)$/u.test(output.path)) {
109
- continue;
110
- }
111
- const code = readFileSync(output.path, "utf-8");
112
- const rewritten = rewriteBrowserRuntimeImports(code, specifierMap, output.path);
113
- if (rewritten !== code) {
114
- writeFileSync(output.path, rewritten);
115
- }
116
- }
117
- return result;
118
- }
119
- escapeRegExp(value) {
120
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
121
- }
122
- getPluginsForBuild(additionalPlugins) {
123
- const byName = /* @__PURE__ */ new Map();
124
- for (const plugin of additionalPlugins ?? []) {
125
- if (!byName.has(plugin.name)) {
126
- byName.set(plugin.name, plugin);
127
- }
128
- }
129
- return Array.from(byName.values());
130
- }
131
- normalizeEsbuildLoader(loader) {
132
- switch (loader) {
133
- case "base64":
134
- case "binary":
135
- case "copy":
136
- case "css":
137
- case "dataurl":
138
- case "empty":
139
- case "file":
140
- case "global-css":
141
- case "js":
142
- case "json":
143
- case "jsx":
144
- case "local-css":
145
- case "text":
146
- case "ts":
147
- case "tsx":
148
- return loader;
149
- default:
150
- return void 0;
151
- }
152
- }
153
- inferEsbuildLoaderFromPath(filePath) {
154
- const extension = path.extname(filePath).toLowerCase();
155
- switch (extension) {
156
- case ".ts":
157
- return "ts";
158
- case ".tsx":
159
- return "tsx";
160
- case ".jsx":
161
- return "jsx";
162
- case ".json":
163
- return "json";
164
- case ".css":
165
- return "css";
166
- default:
167
- return "js";
168
- }
169
- }
170
- convertLoadResultToModuleSource(result) {
171
- if (!result || typeof result !== "object") {
172
- return void 0;
173
- }
174
- const candidate = result;
175
- if (typeof candidate.contents === "string") {
176
- return candidate.contents;
177
- }
178
- if (candidate.loader === "object" && candidate.exports && typeof candidate.exports === "object") {
179
- const entries = Object.entries(candidate.exports).map(
180
- ([key, value]) => key === "default" ? `export default ${JSON.stringify(value)};` : `export const ${key} = ${JSON.stringify(value)};`
181
- ).join("\n");
182
- return entries;
183
- }
184
- return void 0;
185
- }
186
- convertPluginOnLoadResult(args, result) {
187
- if (!result || typeof result !== "object") {
188
- return void 0;
189
- }
190
- const candidate = result;
191
- const sourceFromExports = candidate.loader === "object" && candidate.exports && typeof candidate.exports === "object" ? this.convertLoadResultToModuleSource(candidate) : void 0;
192
- if (sourceFromExports) {
193
- return {
194
- contents: sourceFromExports,
195
- loader: "js",
196
- resolveDir: path.dirname(args.path)
197
- };
198
- }
199
- if (typeof candidate.contents === "string" || candidate.contents instanceof Uint8Array) {
200
- return {
201
- contents: candidate.contents,
202
- loader: this.normalizeEsbuildLoader(candidate.loader) ?? this.inferEsbuildLoaderFromPath(args.path),
203
- resolveDir: typeof candidate.resolveDir === "string" ? candidate.resolveDir : path.dirname(args.path)
204
- };
205
- }
206
- return void 0;
207
- }
208
- resolvePluginPath(value, args, contextRoot) {
209
- if (path.isAbsolute(value)) {
210
- return value;
211
- }
212
- if (value.startsWith(".") || value.startsWith("..")) {
213
- const baseDir = args.importer ? path.dirname(args.importer) : contextRoot;
214
- return path.resolve(baseDir, value);
215
- }
216
- return value;
217
- }
218
- /**
219
- * Creates an esbuild plugin bridge compatible with the existing Ecopages
220
- * plugin API shape.
221
- *
222
- * **Plugin ordering is semantically significant.**
223
- *
224
- * Esbuild applies `onResolve` and `onLoad` hooks in the order they are
225
- * registered: the first handler whose filter matches wins for `onResolve`,
226
- * and the first handler that returns a non-`undefined` result wins for
227
- * `onLoad`. Because we call `plugin.setup(bridge)` sequentially here, the
228
- * position of each plugin in the `plugins` array determines its priority:
229
- *
230
- * - **Index 0** has the highest priority (its hooks run first).
231
- * - **Last index** has the lowest priority (its hooks only run if no earlier
232
- * plugin claimed the path).
233
- *
234
- * When adding new integrations or processors, ensure security-critical plugins
235
- * (e.g. `ecopages-client-graph-boundary`) are placed **before** general-purpose
236
- * loaders in the array so they always get first refusal on every source file.
237
- *
238
- * There is currently no priority system or validation — correct ordering is
239
- * the caller's responsibility.
240
- */
241
- createEcoPluginBridge(plugins, contextRoot) {
242
- return {
243
- name: "ecopages-plugin-bridge",
244
- setup: async (build) => {
245
- let moduleCounter = 0;
246
- const bridge = {
247
- onResolve: (options, callback) => {
248
- build.onResolve(options, async (args) => {
249
- const result = await callback({
250
- path: args.path,
251
- importer: args.importer,
252
- namespace: args.namespace
253
- });
254
- if (!result || typeof result !== "object") {
255
- return void 0;
256
- }
257
- const candidate = result;
258
- const resolveResult = {};
259
- if (typeof candidate.path === "string") {
260
- resolveResult.path = this.resolvePluginPath(candidate.path, args, contextRoot);
261
- }
262
- if (typeof candidate.namespace === "string") {
263
- resolveResult.namespace = candidate.namespace;
264
- }
265
- if (typeof candidate.external === "boolean") {
266
- resolveResult.external = candidate.external;
267
- }
268
- return Object.keys(resolveResult).length > 0 ? resolveResult : void 0;
269
- });
270
- },
271
- onLoad: (options, callback) => {
272
- build.onLoad(options, async (args) => {
273
- const result = await callback({
274
- path: args.path,
275
- namespace: args.namespace
276
- });
277
- return this.convertPluginOnLoadResult(args, result);
278
- });
279
- },
280
- module: (specifier, callback) => {
281
- const namespace = `ecopages-module-${moduleCounter}`;
282
- moduleCounter += 1;
283
- const filter = new RegExp(`^${this.escapeRegExp(specifier)}$`);
284
- build.onResolve({ filter }, () => ({
285
- path: specifier,
286
- namespace
287
- }));
288
- build.onLoad({ filter, namespace }, async (args) => {
289
- const result = await callback();
290
- return this.convertPluginOnLoadResult(args, result);
291
- });
292
- }
293
- };
294
- for (const plugin of plugins) {
295
- await plugin.setup(bridge);
296
- }
297
- }
298
- };
299
- }
300
- async loadEsbuildModule(moduleGeneration = 0) {
301
- const importedModule = await import("esbuild");
302
- const esbuildModule = typeof importedModule.build === "function" ? importedModule : importedModule.default ?? importedModule;
303
- if (moduleGeneration > 0 && !this.isMockedEsbuildModule(esbuildModule)) {
304
- const freshModule = await import(
305
- /* @vite-ignore */
306
- `${pathToFileURL(esbuildPath).href}?ecopages_esbuild=${moduleGeneration}`
307
- );
308
- const normalizedFreshModule = typeof freshModule.build === "function" ? freshModule : freshModule.default ?? freshModule;
309
- if (typeof normalizedFreshModule.build === "function") {
310
- return normalizedFreshModule;
311
- }
312
- }
313
- if (typeof esbuildModule.build !== "function") {
314
- throw new Error("esbuild is not available. Install esbuild to use Node bundling.");
315
- }
316
- return esbuildModule;
317
- }
318
- isMockedEsbuildModule(esbuildModule) {
319
- const build = esbuildModule.build;
320
- const stop = esbuildModule.stop;
321
- return typeof build?.mock === "object" || typeof stop?.mock === "object";
322
- }
323
- /**
324
- * Detects the subset of runtime faults that indicate esbuild's worker
325
- * protocol is corrupted rather than a normal build error.
326
- */
327
- isEsbuildProtocolError(error) {
328
- if (!(error instanceof Error)) {
329
- return false;
330
- }
331
- return ["Unexpected end of JSON input", "Unexpected EOF", "parseJSON", "buildResponseToResult"].some(
332
- (fragment) => error.message.includes(fragment) || error.stack?.includes(fragment)
333
- );
334
- }
335
- async stopEsbuildService(moduleGeneration = 0) {
336
- const esbuild = await this.loadEsbuildModule(moduleGeneration);
337
- if (typeof esbuild.stop === "function") {
338
- esbuild.stop();
339
- }
340
- }
341
- async buildOrThrow(options, moduleGeneration = 0) {
342
- const esbuild = await this.loadEsbuildModule(moduleGeneration);
343
- const contextRoot = options.root ? path.resolve(options.root) : process.cwd();
344
- const outdir = path.resolve(options.outdir ?? "dist/assets");
345
- const tsconfigPath = path.join(contextRoot, "tsconfig.json");
346
- const tsconfigExists = fileSystem.exists(tsconfigPath);
347
- const nodePaths = this.getFallbackNodePaths(contextRoot);
348
- const plugins = this.getPluginsForBuild(options.plugins);
349
- const esbuildPlugins = [
350
- ...plugins.length > 0 ? [this.createEcoPluginBridge(plugins, contextRoot)] : []
351
- ];
352
- const transpileTarget = "es2022";
353
- const usesTemplatedNaming = this.hasTemplateTokens(options.naming);
354
- const outfile = options.naming && !usesTemplatedNaming ? path.join(outdir, options.naming) : void 0;
355
- if (outfile) {
356
- fileSystem.ensureDir(path.dirname(outfile));
357
- }
358
- const outputOptions = outfile ? { outfile } : {
359
- outdir,
360
- ...options.outbase ? { outbase: path.resolve(options.outbase) } : {},
361
- entryNames: usesTemplatedNaming ? this.toEntryNamePattern(options.naming) : "[name]",
362
- chunkNames: "[name]-[hash]",
363
- assetNames: "[name]-[hash]"
364
- };
365
- const result = await esbuild.build({
366
- absWorkingDir: contextRoot,
367
- ...nodePaths.length > 0 ? { nodePaths } : {},
368
- entryPoints: options.entrypoints,
369
- bundle: options.bundle ?? true,
370
- ...outputOptions,
371
- ...options.conditions ? { conditions: options.conditions } : {},
372
- ...options.define ? { define: options.define } : {},
373
- format: this.mapEsbuildFormat(options.format),
374
- platform: options.target === "browser" ? "browser" : "node",
375
- sourcemap: this.mapEsbuildSourcemap(options.sourcemap),
376
- splitting: outfile ? false : !!options.splitting,
377
- minify: !!options.minify,
378
- ...typeof options.treeshaking === "boolean" ? { treeShaking: options.treeshaking } : {},
379
- external: options.external,
380
- ...options.target !== "browser" && options.externalPackages !== false ? { packages: "external" } : {},
381
- target: transpileTarget,
382
- ...this.getJavaScriptOutExtension(options) ? { outExtension: { ".js": this.getJavaScriptOutExtension(options) } } : {},
383
- metafile: true,
384
- write: true,
385
- plugins: esbuildPlugins,
386
- jsx: "automatic",
387
- tsconfig: tsconfigExists ? tsconfigPath : void 0,
388
- logLevel: "silent"
389
- });
390
- const outputs = Object.keys(result.metafile.outputs).map((outputPath) => ({
391
- path: path.isAbsolute(outputPath) ? outputPath : path.join(contextRoot, outputPath)
392
- }));
393
- const logs = result.warnings.map((warning) => ({ message: warning.text }));
394
- const dependencyGraph = this.extractDependencyGraph(result.metafile, contextRoot);
395
- return this.rewriteBrowserRuntimeImportsInOutputs(
396
- {
397
- success: true,
398
- logs,
399
- outputs,
400
- dependencyGraph
401
- },
402
- plugins
403
- );
404
- }
405
- mapEsbuildSourcemap(value) {
406
- switch (value) {
407
- case "none":
408
- return false;
409
- case "inline":
410
- return "inline";
411
- case "both":
412
- return "both";
413
- case "external":
414
- return "external";
415
- default:
416
- return "linked";
417
- }
418
- }
419
- mapEsbuildFormat(value) {
420
- switch (value) {
421
- case "cjs":
422
- return "cjs";
423
- case "iife":
424
- return "iife";
425
- default:
426
- return "esm";
427
- }
428
- }
429
- hasTemplateTokens(value) {
430
- return typeof value === "string" && /\[[^\]]+\]/.test(value);
431
- }
432
- toEntryNamePattern(value) {
433
- if (!value) {
434
- return "[name]";
435
- }
436
- const pattern = value.replaceAll(/\.?\[ext\]/g, "");
437
- return pattern.length > 0 ? pattern : "[name]";
438
- }
439
- normalizeMetafilePath(value, contextRoot) {
440
- if (path.isAbsolute(value)) {
441
- return path.normalize(value);
442
- }
443
- return path.normalize(path.resolve(contextRoot, value));
444
- }
445
- extractDependencyGraph(metafile, contextRoot) {
446
- const entrypoints = /* @__PURE__ */ new Map();
447
- for (const outputMeta of Object.values(metafile.outputs)) {
448
- if (!outputMeta.entryPoint) {
449
- continue;
450
- }
451
- const entrypointPath = this.normalizeMetafilePath(outputMeta.entryPoint, contextRoot);
452
- const dependencies = entrypoints.get(entrypointPath) ?? /* @__PURE__ */ new Set();
453
- dependencies.add(entrypointPath);
454
- for (const inputPath of Object.keys(outputMeta.inputs ?? {})) {
455
- dependencies.add(this.normalizeMetafilePath(inputPath, contextRoot));
456
- }
457
- entrypoints.set(entrypointPath, dependencies);
458
- }
459
- return {
460
- entrypoints: Object.fromEntries(
461
- Array.from(entrypoints.entries(), ([entrypointPath, dependencies]) => [
462
- entrypointPath,
463
- Array.from(dependencies)
464
- ])
465
- )
466
- };
467
- }
468
- /**
469
- * Normalizes esbuild errors into Ecopages `BuildLog` entries.
470
- */
471
- toBuildLogs(error) {
472
- if (error && typeof error === "object") {
473
- const candidate = error;
474
- if (Array.isArray(candidate.errors) && candidate.errors.length > 0) {
475
- return candidate.errors.map((entry) => {
476
- const locationPrefix = entry.location?.file ? `${entry.location.file}:${entry.location.line ?? 0}:${entry.location.column ?? 0} ` : "";
477
- return {
478
- message: `${locationPrefix}${entry.text ?? "Unknown esbuild error"}`
479
- };
480
- });
481
- }
482
- if (typeof candidate.message === "string") {
483
- return [{ message: candidate.message }];
484
- }
485
- }
486
- return [{ message: "Unknown esbuild error" }];
487
- }
488
- createFailureResult(error) {
489
- return {
490
- success: false,
491
- logs: this.toBuildLogs(error),
492
- outputs: []
493
- };
494
- }
495
- /**
496
- * Bundles entrypoints using esbuild for Node runtime builds.
497
- */
498
- async build(options) {
499
- try {
500
- return await this.buildOrThrow(options);
501
- } catch (error) {
502
- return this.createFailureResult(error);
503
- }
504
- }
505
- /**
506
- * Resolves module specifiers from a project root.
507
- */
508
- resolve(importPath, rootDir) {
509
- return moduleRequire.resolve(importPath, { paths: [rootDir] });
510
- }
511
- /**
512
- * Returns transpile defaults for a known transpile profile.
513
- */
514
- getTranspileOptions(profile) {
515
- return transpileProfileToOptions(profile);
516
- }
517
- }
518
- export {
519
- ESBUILD_ADAPTER_BRAND,
520
- EsbuildBuildAdapter
521
- };
@@ -1,14 +0,0 @@
1
- import type { EcoPagesAppConfig } from '../types/internal-types.js';
2
- import { type BuildExecutor } from './build-adapter.js';
3
- /**
4
- * Installs the app-owned runtime build executor for one app instance.
5
- *
6
- * @remarks
7
- * This is the single runtime executor boundary for adapter-owned startup.
8
- * Bun-native ownership may reuse `DevBuildCoordinator` in development, while
9
- * Vite-host ownership stays on a plain host-owned executor boundary with no
10
- * Bun-specific coordination policy.
11
- */
12
- export declare function installAppRuntimeBuildExecutor(appConfig: EcoPagesAppConfig, options: {
13
- development: boolean;
14
- }): BuildExecutor;
@@ -1,22 +0,0 @@
1
- import {
2
- getAppBuildAdapter,
3
- getAppBuildExecutor,
4
- getAppBuildOwnership,
5
- getAppServerBuildPlugins,
6
- setAppBuildExecutor
7
- } from "./build-adapter.js";
8
- import { createOrReuseAppBuildExecutor, withBuildExecutorPlugins } from "./dev-build-coordinator.js";
9
- function installAppRuntimeBuildExecutor(appConfig, options) {
10
- const buildOwnership = getAppBuildOwnership(appConfig);
11
- const buildExecutor = buildOwnership === "bun-native" ? createOrReuseAppBuildExecutor({
12
- development: options.development,
13
- adapter: getAppBuildAdapter(appConfig),
14
- currentExecutor: getAppBuildExecutor(appConfig),
15
- getPlugins: () => getAppServerBuildPlugins(appConfig)
16
- }) : withBuildExecutorPlugins(getAppBuildAdapter(appConfig), () => getAppServerBuildPlugins(appConfig));
17
- setAppBuildExecutor(appConfig, buildExecutor);
18
- return buildExecutor;
19
- }
20
- export {
21
- installAppRuntimeBuildExecutor
22
- };
@@ -1,15 +0,0 @@
1
- import type { EcoBuildPlugin } from './build-types.js';
2
- type RuntimeSpecifierMap = ReadonlyMap<string, string> | Record<string, string>;
3
- /**
4
- * Creates a build plugin that aliases runtime bare specifiers to concrete URLs.
5
- *
6
- * @remarks
7
- * This helper is used when browser-target builds must preserve integration-owned
8
- * runtime specifier semantics while letting the bundler treat the mapped URLs as
9
- * external runtime assets.
10
- */
11
- export declare function createRuntimeSpecifierAliasPlugin(specifierMapInput: RuntimeSpecifierMap, options?: {
12
- name?: string;
13
- external?: boolean;
14
- }): EcoBuildPlugin | null;
15
- export {};
@@ -1,31 +0,0 @@
1
- function toRuntimeSpecifierMap(specifierMap) {
2
- return specifierMap instanceof Map ? specifierMap : new Map(Object.entries(specifierMap));
3
- }
4
- function escapeRegExp(value) {
5
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
6
- }
7
- function createRuntimeSpecifierAliasPlugin(specifierMapInput, options) {
8
- const specifierMap = toRuntimeSpecifierMap(specifierMapInput);
9
- if (specifierMap.size === 0) {
10
- return null;
11
- }
12
- const filter = new RegExp(`^(${Array.from(specifierMap.keys()).map(escapeRegExp).join("|")})$`);
13
- return {
14
- name: options?.name ?? "runtime-specifier-alias",
15
- setup(build) {
16
- build.onResolve({ filter }, (args) => {
17
- const mappedPath = specifierMap.get(args.path);
18
- if (!mappedPath) {
19
- return void 0;
20
- }
21
- return {
22
- path: mappedPath,
23
- external: options?.external ?? true
24
- };
25
- });
26
- }
27
- };
28
- }
29
- export {
30
- createRuntimeSpecifierAliasPlugin
31
- };