@ecopages/core 0.2.0-alpha.23 → 0.2.0-alpha.24

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 (515) hide show
  1. package/package.json +93 -226
  2. package/src/adapters/abstract/application-adapter.test.ts +172 -0
  3. package/src/adapters/abstract/application-adapter.ts +379 -0
  4. package/src/adapters/abstract/router-adapter.ts +30 -0
  5. package/src/adapters/abstract/server-adapter.ts +79 -0
  6. package/src/adapters/bun/client-bridge.ts +62 -0
  7. package/src/adapters/bun/create-app.ts +180 -0
  8. package/src/adapters/bun/hmr-manager.test.ts +267 -0
  9. package/src/adapters/bun/hmr-manager.ts +406 -0
  10. package/src/adapters/bun/index.ts +2 -0
  11. package/src/adapters/bun/server-adapter.ts +500 -0
  12. package/src/adapters/bun/server-lifecycle.ts +124 -0
  13. package/src/adapters/create-app.test.ts +10 -0
  14. package/src/adapters/create-app.ts +91 -0
  15. package/src/adapters/index.ts +2 -0
  16. package/src/adapters/node/create-app.test.ts +53 -0
  17. package/src/adapters/node/create-app.ts +183 -0
  18. package/src/adapters/node/node-client-bridge.test.ts +198 -0
  19. package/src/adapters/node/node-client-bridge.ts +79 -0
  20. package/src/adapters/node/node-hmr-manager.test.ts +322 -0
  21. package/src/adapters/node/node-hmr-manager.ts +378 -0
  22. package/src/adapters/node/server-adapter.ts +502 -0
  23. package/src/adapters/node/static-content-server.test.ts +60 -0
  24. package/src/adapters/node/static-content-server.ts +239 -0
  25. package/src/adapters/shared/api-response.test.ts +97 -0
  26. package/src/adapters/shared/api-response.ts +104 -0
  27. package/src/adapters/shared/application-adapter.ts +199 -0
  28. package/src/adapters/shared/define-api-handler.ts +66 -0
  29. package/src/adapters/shared/explicit-static-route-matcher.test.ts +381 -0
  30. package/src/adapters/shared/explicit-static-route-matcher.ts +140 -0
  31. package/src/adapters/shared/file-route-middleware-pipeline.test.ts +90 -0
  32. package/src/adapters/shared/file-route-middleware-pipeline.ts +127 -0
  33. package/src/adapters/shared/fs-server-response-factory.test.ts +187 -0
  34. package/src/adapters/shared/fs-server-response-factory.ts +118 -0
  35. package/src/adapters/shared/fs-server-response-matcher.test.ts +285 -0
  36. package/src/adapters/shared/fs-server-response-matcher.ts +189 -0
  37. package/src/adapters/shared/hmr-entrypoint-registrar.ts +149 -0
  38. package/src/adapters/shared/hmr-html-response.ts +52 -0
  39. package/src/adapters/shared/hmr-manager.contract.test.ts +232 -0
  40. package/src/adapters/shared/hmr-manager.dispatch.test.ts +220 -0
  41. package/src/adapters/shared/render-context.test.ts +150 -0
  42. package/src/adapters/shared/render-context.ts +123 -0
  43. package/src/adapters/shared/runtime-bootstrap.ts +79 -0
  44. package/src/adapters/shared/server-adapter.test.ts +77 -0
  45. package/src/adapters/shared/server-adapter.ts +493 -0
  46. package/src/adapters/shared/server-route-handler.test.ts +110 -0
  47. package/src/adapters/shared/server-route-handler.ts +153 -0
  48. package/src/adapters/shared/server-static-builder.test.ts +338 -0
  49. package/src/adapters/shared/server-static-builder.ts +170 -0
  50. package/src/build/build-adapter-serialization.test.ts +281 -0
  51. package/src/build/build-adapter.test.ts +1240 -0
  52. package/src/build/build-adapter.ts +1012 -0
  53. package/src/build/build-manifest.ts +54 -0
  54. package/src/build/build-types.ts +83 -0
  55. package/src/build/dev-build-coordinator.ts +220 -0
  56. package/src/build/esbuild-build-adapter.ts +660 -0
  57. package/src/build/runtime-build-executor.test.ts +81 -0
  58. package/src/build/runtime-build-executor.ts +40 -0
  59. package/src/build/runtime-specifier-alias-plugin.test.ts +67 -0
  60. package/src/build/runtime-specifier-alias-plugin.ts +62 -0
  61. package/src/build/runtime-specifier-aliases.ts +135 -0
  62. package/src/config/config-builder.test.ts +443 -0
  63. package/src/config/config-builder.ts +742 -0
  64. package/src/config/config-builder.typecheck.test.ts +96 -0
  65. package/src/config/{constants.d.ts → constants.ts} +22 -13
  66. package/src/dev/sc-server.ts +143 -0
  67. package/src/eco/eco.browser.test.ts +43 -0
  68. package/src/eco/eco.browser.ts +118 -0
  69. package/src/eco/eco.test.ts +654 -0
  70. package/src/eco/eco.ts +205 -0
  71. package/src/eco/eco.types.ts +221 -0
  72. package/src/eco/eco.utils.test.ts +219 -0
  73. package/src/eco/eco.utils.ts +5 -0
  74. package/src/eco/global-injector-map.test.ts +42 -0
  75. package/src/eco/global-injector-map.ts +112 -0
  76. package/src/eco/lazy-injector-map.test.ts +66 -0
  77. package/src/eco/lazy-injector-map.ts +120 -0
  78. package/src/eco/module-dependencies.test.ts +30 -0
  79. package/src/eco/module-dependencies.ts +75 -0
  80. package/src/errors/http-error.test.ts +134 -0
  81. package/src/errors/http-error.ts +72 -0
  82. package/src/errors/{index.d.ts → index.ts} +2 -2
  83. package/src/errors/locals-access-error.ts +7 -0
  84. package/src/global/app-logger.ts +4 -0
  85. package/src/global/utils.test.ts +12 -0
  86. 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
  87. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-HMR-Server-Integration-should-load-fixture-app-page-1.png +0 -0
  88. package/src/hmr/client/__screenshots__/hmr-runtime.test.browser.ts/HMR-Runtime-WebSocket-Connection-should-connect-to-correct-HMR-endpoint-1.png +0 -0
  89. package/src/hmr/client/hmr-runtime.ts +160 -0
  90. package/src/hmr/hmr-strategy.test.ts +124 -0
  91. package/src/hmr/hmr-strategy.ts +177 -0
  92. package/src/hmr/hmr.postcss.test.e2e.ts +41 -0
  93. package/src/hmr/hmr.test.e2e.ts +66 -0
  94. package/src/hmr/strategies/default-hmr-strategy.ts +60 -0
  95. package/src/hmr/strategies/js-hmr-strategy.test.ts +335 -0
  96. package/src/hmr/strategies/js-hmr-strategy.ts +320 -0
  97. package/src/index.browser.ts +3 -0
  98. package/src/index.ts +15 -0
  99. package/src/integrations/ghtml/ghtml-renderer.test.ts +253 -0
  100. package/src/integrations/ghtml/ghtml-renderer.ts +97 -0
  101. package/src/integrations/ghtml/ghtml.constants.ts +1 -0
  102. package/src/integrations/ghtml/ghtml.plugin.ts +28 -0
  103. package/src/plugins/alias-resolver-plugin.test.ts +41 -0
  104. package/src/plugins/alias-resolver-plugin.ts +63 -0
  105. package/src/plugins/eco-component-meta-plugin.test.ts +406 -0
  106. package/src/plugins/eco-component-meta-plugin.ts +495 -0
  107. package/src/plugins/foreign-jsx-override-plugin.test.ts +65 -0
  108. package/src/plugins/foreign-jsx-override-plugin.ts +67 -0
  109. package/src/plugins/integration-plugin.test.ts +156 -0
  110. package/src/plugins/integration-plugin.ts +311 -0
  111. package/src/plugins/processor.test.ts +148 -0
  112. package/src/plugins/processor.ts +240 -0
  113. package/src/plugins/{runtime-capability.d.ts → runtime-capability.ts} +8 -3
  114. package/src/plugins/source-transform.test.ts +82 -0
  115. package/src/plugins/source-transform.ts +123 -0
  116. package/src/route-renderer/orchestration/boundary-planning.service.ts +146 -0
  117. package/src/route-renderer/orchestration/component-render-context.ts +318 -0
  118. package/src/route-renderer/orchestration/integration-renderer.test.ts +2088 -0
  119. package/src/route-renderer/orchestration/integration-renderer.ts +1285 -0
  120. package/src/route-renderer/orchestration/page-packaging.service.test.ts +76 -0
  121. package/src/route-renderer/orchestration/page-packaging.service.ts +85 -0
  122. package/src/route-renderer/orchestration/processed-asset-dedupe.ts +25 -0
  123. package/src/route-renderer/orchestration/queued-boundary-runtime.service.test.ts +319 -0
  124. package/src/route-renderer/orchestration/queued-boundary-runtime.service.ts +289 -0
  125. package/src/route-renderer/orchestration/render-execution.service.test.ts +196 -0
  126. package/src/route-renderer/orchestration/render-execution.service.ts +182 -0
  127. package/src/route-renderer/orchestration/render-output.utils.ts +302 -0
  128. package/src/route-renderer/orchestration/render-preparation.service.test.ts +569 -0
  129. package/src/route-renderer/orchestration/render-preparation.service.ts +508 -0
  130. package/src/route-renderer/orchestration/route-shell-composer.service.ts +162 -0
  131. package/src/route-renderer/orchestration/template-serialization.test.ts +110 -0
  132. package/src/route-renderer/orchestration/template-serialization.ts +117 -0
  133. package/src/route-renderer/page-loading/component-dependency-collection.ts +196 -0
  134. package/src/route-renderer/page-loading/declared-asset-collection.ts +156 -0
  135. package/src/route-renderer/page-loading/dependency-resolver.test.ts +665 -0
  136. package/src/route-renderer/page-loading/dependency-resolver.ts +150 -0
  137. package/src/route-renderer/page-loading/ecopages-virtual-imports.ts +75 -0
  138. package/src/route-renderer/page-loading/lazy-entry-collection.ts +167 -0
  139. package/src/route-renderer/page-loading/lazy-trigger-planning.ts +74 -0
  140. package/src/route-renderer/page-loading/module-declaration-aggregation.ts +60 -0
  141. package/src/route-renderer/page-loading/module-declaration-scripts.ts +16 -0
  142. package/src/route-renderer/page-loading/page-dependency-bundling.ts +205 -0
  143. package/src/route-renderer/page-loading/page-module-loader.test.ts +183 -0
  144. package/src/route-renderer/page-loading/page-module-loader.ts +184 -0
  145. package/src/route-renderer/route-renderer.ts +136 -0
  146. package/src/router/client/link-intent.test.browser.ts +51 -0
  147. package/src/router/client/link-intent.ts +92 -0
  148. package/src/router/client/navigation-coordinator.test.ts +237 -0
  149. package/src/router/client/navigation-coordinator.ts +453 -0
  150. package/src/router/server/fs-router-scanner.test.ts +83 -0
  151. package/src/router/server/fs-router-scanner.ts +224 -0
  152. package/src/router/server/fs-router.test.ts +214 -0
  153. package/src/router/server/fs-router.ts +122 -0
  154. package/src/services/assets/asset-processing-service/asset-dependency-keys.ts +66 -0
  155. package/src/services/assets/asset-processing-service/asset-processing.service.test.ts +476 -0
  156. package/src/services/assets/asset-processing-service/asset-processing.service.ts +345 -0
  157. package/src/services/assets/asset-processing-service/asset.factory.test.ts +63 -0
  158. package/src/services/assets/asset-processing-service/asset.factory.ts +105 -0
  159. package/src/services/assets/asset-processing-service/assets.types.ts +125 -0
  160. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.test.ts +74 -0
  161. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.ts +96 -0
  162. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.test.ts +67 -0
  163. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.ts +78 -0
  164. package/src/services/assets/asset-processing-service/grouped-content-bundles.ts +104 -0
  165. package/src/services/assets/asset-processing-service/index.ts +5 -0
  166. package/src/services/assets/asset-processing-service/{processor.interface.d.ts → processor.interface.ts} +10 -5
  167. package/src/services/assets/asset-processing-service/processor.registry.ts +18 -0
  168. package/src/services/assets/asset-processing-service/processors/base/base-processor.test.ts +59 -0
  169. package/src/services/assets/asset-processing-service/processors/base/base-processor.ts +83 -0
  170. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.ts +174 -0
  171. package/src/services/assets/asset-processing-service/processors/index.ts +5 -0
  172. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.test.ts +192 -0
  173. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.ts +134 -0
  174. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.test.ts +326 -0
  175. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.ts +110 -0
  176. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.test.ts +227 -0
  177. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.ts +87 -0
  178. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.test.ts +261 -0
  179. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.ts +71 -0
  180. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.ts +81 -0
  181. package/src/services/assets/asset-processing-service/ungrouped-dependency-processing.ts +65 -0
  182. package/src/services/assets/browser-bundle.service.test.ts +66 -0
  183. package/src/services/assets/browser-bundle.service.ts +109 -0
  184. package/src/services/cache/cache.types.ts +126 -0
  185. package/src/services/cache/index.ts +18 -0
  186. package/src/services/cache/memory-cache-store.test.ts +225 -0
  187. package/src/services/cache/memory-cache-store.ts +130 -0
  188. package/src/services/cache/page-cache-service.test.ts +175 -0
  189. package/src/services/cache/page-cache-service.ts +202 -0
  190. package/src/services/cache/page-request-cache-coordinator.service.test.ts +79 -0
  191. package/src/services/cache/page-request-cache-coordinator.service.ts +131 -0
  192. package/src/services/html/html-rewriter-provider.service.test.ts +183 -0
  193. package/src/services/html/html-rewriter-provider.service.ts +104 -0
  194. package/src/services/html/html-transformer.service.test.ts +479 -0
  195. package/src/services/html/html-transformer.service.ts +275 -0
  196. package/src/services/invalidation/development-invalidation.service.test.ts +87 -0
  197. package/src/services/invalidation/development-invalidation.service.ts +262 -0
  198. package/src/services/module-loading/app-module-loader.service.ts +9 -0
  199. package/src/services/module-loading/app-server-module-transpiler.service.test.ts +130 -0
  200. package/src/services/module-loading/app-server-module-transpiler.service.ts +143 -0
  201. package/src/services/module-loading/host-module-loader-registry.ts +15 -0
  202. package/src/services/module-loading/{module-loading-types.d.ts → module-loading-types.ts} +1 -0
  203. package/src/services/module-loading/node-bootstrap-plugin.test.ts +335 -0
  204. package/src/services/module-loading/node-bootstrap-plugin.ts +297 -0
  205. package/src/services/module-loading/page-module-import.service.test.ts +504 -0
  206. package/src/services/module-loading/page-module-import.service.ts +252 -0
  207. package/src/services/module-loading/server-module-transpiler.service.test.ts +243 -0
  208. package/src/services/module-loading/server-module-transpiler.service.ts +104 -0
  209. package/src/services/module-loading/source-module-support.ts +19 -0
  210. package/src/services/runtime-state/dev-graph.service.ts +217 -0
  211. package/src/services/runtime-state/entrypoint-dependency-graph.service.ts +136 -0
  212. package/src/services/runtime-state/runtime-specifier-registry.service.ts +96 -0
  213. package/src/services/runtime-state/server-invalidation-state.service.ts +68 -0
  214. package/src/services/validation/schema-validation-service.test.ts +223 -0
  215. package/src/services/validation/schema-validation-service.ts +204 -0
  216. package/src/services/validation/{standard-schema.types.d.ts → standard-schema.types.ts} +20 -17
  217. package/src/static-site-generator/static-site-generator.test.ts +316 -0
  218. package/src/static-site-generator/static-site-generator.ts +462 -0
  219. package/src/types/internal-types.ts +242 -0
  220. package/src/types/public-types.ts +1443 -0
  221. package/src/utils/deep-merge.test.ts +114 -0
  222. package/src/utils/deep-merge.ts +47 -0
  223. package/src/utils/hash.ts +5 -0
  224. package/src/utils/html-escaping.ts +9 -0
  225. package/src/utils/invariant.test.ts +22 -0
  226. package/src/utils/invariant.ts +15 -0
  227. package/src/utils/locals-utils.ts +37 -0
  228. package/src/utils/parse-cli-args.test.ts +69 -0
  229. package/src/utils/parse-cli-args.ts +105 -0
  230. package/src/utils/path-utils.module.ts +14 -0
  231. package/src/utils/path-utils.test.ts +15 -0
  232. package/src/utils/resolve-work-dir.ts +45 -0
  233. package/src/utils/runtime.ts +44 -0
  234. package/src/utils/server-utils.module.ts +67 -0
  235. package/src/utils/server-utils.test.ts +38 -0
  236. package/src/watchers/project-watcher.integration.test.ts +337 -0
  237. package/src/watchers/project-watcher.test-helpers.ts +41 -0
  238. package/src/watchers/project-watcher.test.ts +768 -0
  239. package/src/watchers/project-watcher.ts +357 -0
  240. package/CHANGELOG.md +0 -51
  241. package/src/adapters/abstract/application-adapter.d.ts +0 -194
  242. package/src/adapters/abstract/application-adapter.js +0 -121
  243. package/src/adapters/abstract/router-adapter.d.ts +0 -26
  244. package/src/adapters/abstract/router-adapter.js +0 -5
  245. package/src/adapters/abstract/server-adapter.d.ts +0 -69
  246. package/src/adapters/abstract/server-adapter.js +0 -15
  247. package/src/adapters/bun/client-bridge.d.ts +0 -34
  248. package/src/adapters/bun/client-bridge.js +0 -48
  249. package/src/adapters/bun/create-app.d.ts +0 -52
  250. package/src/adapters/bun/create-app.js +0 -116
  251. package/src/adapters/bun/hmr-manager.d.ts +0 -143
  252. package/src/adapters/bun/hmr-manager.js +0 -333
  253. package/src/adapters/bun/index.d.ts +0 -2
  254. package/src/adapters/bun/index.js +0 -8
  255. package/src/adapters/bun/server-adapter.d.ts +0 -155
  256. package/src/adapters/bun/server-adapter.js +0 -374
  257. package/src/adapters/bun/server-lifecycle.d.ts +0 -63
  258. package/src/adapters/bun/server-lifecycle.js +0 -92
  259. package/src/adapters/create-app.d.ts +0 -20
  260. package/src/adapters/create-app.js +0 -66
  261. package/src/adapters/index.d.ts +0 -2
  262. package/src/adapters/index.js +0 -8
  263. package/src/adapters/node/create-app.d.ts +0 -18
  264. package/src/adapters/node/create-app.js +0 -149
  265. package/src/adapters/node/node-client-bridge.d.ts +0 -26
  266. package/src/adapters/node/node-client-bridge.js +0 -66
  267. package/src/adapters/node/node-hmr-manager.d.ts +0 -133
  268. package/src/adapters/node/node-hmr-manager.js +0 -311
  269. package/src/adapters/node/server-adapter.d.ts +0 -161
  270. package/src/adapters/node/server-adapter.js +0 -359
  271. package/src/adapters/node/static-content-server.d.ts +0 -60
  272. package/src/adapters/node/static-content-server.js +0 -194
  273. package/src/adapters/shared/api-response.d.ts +0 -52
  274. package/src/adapters/shared/api-response.js +0 -96
  275. package/src/adapters/shared/application-adapter.d.ts +0 -18
  276. package/src/adapters/shared/application-adapter.js +0 -90
  277. package/src/adapters/shared/define-api-handler.d.ts +0 -25
  278. package/src/adapters/shared/define-api-handler.js +0 -15
  279. package/src/adapters/shared/explicit-static-route-matcher.d.ts +0 -38
  280. package/src/adapters/shared/explicit-static-route-matcher.js +0 -103
  281. package/src/adapters/shared/file-route-middleware-pipeline.d.ts +0 -65
  282. package/src/adapters/shared/file-route-middleware-pipeline.js +0 -99
  283. package/src/adapters/shared/fs-server-response-factory.d.ts +0 -19
  284. package/src/adapters/shared/fs-server-response-factory.js +0 -97
  285. package/src/adapters/shared/fs-server-response-matcher.d.ts +0 -67
  286. package/src/adapters/shared/fs-server-response-matcher.js +0 -147
  287. package/src/adapters/shared/hmr-entrypoint-registrar.d.ts +0 -55
  288. package/src/adapters/shared/hmr-entrypoint-registrar.js +0 -87
  289. package/src/adapters/shared/hmr-html-response.d.ts +0 -22
  290. package/src/adapters/shared/hmr-html-response.js +0 -32
  291. package/src/adapters/shared/render-context.d.ts +0 -15
  292. package/src/adapters/shared/render-context.js +0 -72
  293. package/src/adapters/shared/runtime-bootstrap.d.ts +0 -38
  294. package/src/adapters/shared/runtime-bootstrap.js +0 -43
  295. package/src/adapters/shared/server-adapter.d.ts +0 -97
  296. package/src/adapters/shared/server-adapter.js +0 -390
  297. package/src/adapters/shared/server-route-handler.d.ts +0 -89
  298. package/src/adapters/shared/server-route-handler.js +0 -111
  299. package/src/adapters/shared/server-static-builder.d.ts +0 -70
  300. package/src/adapters/shared/server-static-builder.js +0 -100
  301. package/src/build/build-adapter.d.ts +0 -239
  302. package/src/build/build-adapter.js +0 -642
  303. package/src/build/build-manifest.d.ts +0 -27
  304. package/src/build/build-manifest.js +0 -30
  305. package/src/build/build-types.d.ts +0 -57
  306. package/src/build/build-types.js +0 -0
  307. package/src/build/dev-build-coordinator.d.ts +0 -72
  308. package/src/build/dev-build-coordinator.js +0 -154
  309. package/src/build/esbuild-build-adapter.d.ts +0 -78
  310. package/src/build/esbuild-build-adapter.js +0 -505
  311. package/src/build/runtime-build-executor.d.ts +0 -14
  312. package/src/build/runtime-build-executor.js +0 -22
  313. package/src/build/runtime-specifier-alias-plugin.d.ts +0 -15
  314. package/src/build/runtime-specifier-alias-plugin.js +0 -35
  315. package/src/build/runtime-specifier-aliases.d.ts +0 -5
  316. package/src/build/runtime-specifier-aliases.js +0 -95
  317. package/src/config/config-builder.d.ts +0 -252
  318. package/src/config/config-builder.js +0 -603
  319. package/src/config/constants.js +0 -25
  320. package/src/dev/sc-server.d.ts +0 -30
  321. package/src/dev/sc-server.js +0 -111
  322. package/src/eco/eco.browser.d.ts +0 -2
  323. package/src/eco/eco.browser.js +0 -83
  324. package/src/eco/eco.d.ts +0 -9
  325. package/src/eco/eco.js +0 -85
  326. package/src/eco/eco.types.d.ts +0 -178
  327. package/src/eco/eco.types.js +0 -0
  328. package/src/eco/eco.utils.d.ts +0 -1
  329. package/src/eco/eco.utils.js +0 -10
  330. package/src/eco/global-injector-map.d.ts +0 -16
  331. package/src/eco/global-injector-map.js +0 -80
  332. package/src/eco/lazy-injector-map.d.ts +0 -8
  333. package/src/eco/lazy-injector-map.js +0 -70
  334. package/src/eco/module-dependencies.d.ts +0 -18
  335. package/src/eco/module-dependencies.js +0 -49
  336. package/src/errors/http-error.d.ts +0 -31
  337. package/src/errors/http-error.js +0 -50
  338. package/src/errors/index.js +0 -4
  339. package/src/errors/locals-access-error.d.ts +0 -4
  340. package/src/errors/locals-access-error.js +0 -9
  341. package/src/global/app-logger.d.ts +0 -2
  342. package/src/global/app-logger.js +0 -6
  343. package/src/hmr/client/hmr-runtime.d.ts +0 -5
  344. package/src/hmr/client/hmr-runtime.js +0 -109
  345. package/src/hmr/hmr-strategy.d.ts +0 -162
  346. package/src/hmr/hmr-strategy.js +0 -44
  347. package/src/hmr/hmr.postcss.test.e2e.d.ts +0 -1
  348. package/src/hmr/hmr.postcss.test.e2e.js +0 -31
  349. package/src/hmr/hmr.test.e2e.d.ts +0 -1
  350. package/src/hmr/hmr.test.e2e.js +0 -43
  351. package/src/hmr/strategies/default-hmr-strategy.d.ts +0 -43
  352. package/src/hmr/strategies/default-hmr-strategy.js +0 -34
  353. package/src/hmr/strategies/js-hmr-strategy.d.ts +0 -139
  354. package/src/hmr/strategies/js-hmr-strategy.js +0 -178
  355. package/src/index.browser.d.ts +0 -3
  356. package/src/index.browser.js +0 -4
  357. package/src/index.d.ts +0 -6
  358. package/src/index.js +0 -21
  359. package/src/integrations/ghtml/ghtml-renderer.d.ts +0 -20
  360. package/src/integrations/ghtml/ghtml-renderer.js +0 -63
  361. package/src/integrations/ghtml/ghtml.constants.d.ts +0 -1
  362. package/src/integrations/ghtml/ghtml.constants.js +0 -4
  363. package/src/integrations/ghtml/ghtml.plugin.d.ts +0 -16
  364. package/src/integrations/ghtml/ghtml.plugin.js +0 -20
  365. package/src/plugins/alias-resolver-plugin.d.ts +0 -2
  366. package/src/plugins/alias-resolver-plugin.js +0 -53
  367. package/src/plugins/eco-component-meta-plugin.d.ts +0 -108
  368. package/src/plugins/eco-component-meta-plugin.js +0 -163
  369. package/src/plugins/foreign-jsx-override-plugin.d.ts +0 -31
  370. package/src/plugins/foreign-jsx-override-plugin.js +0 -35
  371. package/src/plugins/integration-plugin.d.ts +0 -219
  372. package/src/plugins/integration-plugin.js +0 -196
  373. package/src/plugins/processor.d.ts +0 -95
  374. package/src/plugins/processor.js +0 -136
  375. package/src/plugins/runtime-capability.js +0 -0
  376. package/src/plugins/source-transform.d.ts +0 -46
  377. package/src/plugins/source-transform.js +0 -71
  378. package/src/route-renderer/orchestration/boundary-planning.service.d.ts +0 -25
  379. package/src/route-renderer/orchestration/boundary-planning.service.js +0 -97
  380. package/src/route-renderer/orchestration/component-render-context.d.ts +0 -83
  381. package/src/route-renderer/orchestration/component-render-context.js +0 -147
  382. package/src/route-renderer/orchestration/integration-renderer.d.ts +0 -554
  383. package/src/route-renderer/orchestration/integration-renderer.js +0 -957
  384. package/src/route-renderer/orchestration/queued-boundary-runtime.service.d.ts +0 -89
  385. package/src/route-renderer/orchestration/queued-boundary-runtime.service.js +0 -155
  386. package/src/route-renderer/orchestration/render-execution.service.d.ts +0 -43
  387. package/src/route-renderer/orchestration/render-execution.service.js +0 -106
  388. package/src/route-renderer/orchestration/render-output.utils.d.ts +0 -46
  389. package/src/route-renderer/orchestration/render-output.utils.js +0 -65
  390. package/src/route-renderer/orchestration/render-preparation.service.d.ts +0 -120
  391. package/src/route-renderer/orchestration/render-preparation.service.js +0 -341
  392. package/src/route-renderer/orchestration/route-shell-composer.service.d.ts +0 -50
  393. package/src/route-renderer/orchestration/route-shell-composer.service.js +0 -81
  394. package/src/route-renderer/orchestration/template-serialization.d.ts +0 -38
  395. package/src/route-renderer/orchestration/template-serialization.js +0 -45
  396. package/src/route-renderer/page-loading/dependency-resolver.d.ts +0 -35
  397. package/src/route-renderer/page-loading/dependency-resolver.js +0 -444
  398. package/src/route-renderer/page-loading/page-module-loader.d.ts +0 -90
  399. package/src/route-renderer/page-loading/page-module-loader.js +0 -127
  400. package/src/route-renderer/route-renderer.d.ts +0 -67
  401. package/src/route-renderer/route-renderer.js +0 -103
  402. package/src/router/client/link-intent.js +0 -34
  403. package/src/router/client/link-intent.test.browser.d.ts +0 -1
  404. package/src/router/client/link-intent.test.browser.js +0 -43
  405. package/src/router/client/navigation-coordinator.d.ts +0 -149
  406. package/src/router/client/navigation-coordinator.js +0 -215
  407. package/src/router/server/fs-router-scanner.d.ts +0 -41
  408. package/src/router/server/fs-router-scanner.js +0 -161
  409. package/src/router/server/fs-router.d.ts +0 -26
  410. package/src/router/server/fs-router.js +0 -100
  411. package/src/services/assets/asset-processing-service/asset-processing.service.d.ts +0 -120
  412. package/src/services/assets/asset-processing-service/asset-processing.service.js +0 -331
  413. package/src/services/assets/asset-processing-service/asset.factory.d.ts +0 -17
  414. package/src/services/assets/asset-processing-service/asset.factory.js +0 -82
  415. package/src/services/assets/asset-processing-service/assets.types.d.ts +0 -89
  416. package/src/services/assets/asset-processing-service/assets.types.js +0 -0
  417. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.d.ts +0 -55
  418. package/src/services/assets/asset-processing-service/browser-runtime-asset.factory.js +0 -48
  419. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.d.ts +0 -20
  420. package/src/services/assets/asset-processing-service/browser-runtime-entry.factory.js +0 -41
  421. package/src/services/assets/asset-processing-service/index.d.ts +0 -5
  422. package/src/services/assets/asset-processing-service/index.js +0 -5
  423. package/src/services/assets/asset-processing-service/processor.interface.js +0 -6
  424. package/src/services/assets/asset-processing-service/processor.registry.d.ts +0 -8
  425. package/src/services/assets/asset-processing-service/processor.registry.js +0 -15
  426. package/src/services/assets/asset-processing-service/processors/base/base-processor.d.ts +0 -24
  427. package/src/services/assets/asset-processing-service/processors/base/base-processor.js +0 -64
  428. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.d.ts +0 -17
  429. package/src/services/assets/asset-processing-service/processors/base/base-script-processor.js +0 -72
  430. package/src/services/assets/asset-processing-service/processors/index.d.ts +0 -5
  431. package/src/services/assets/asset-processing-service/processors/index.js +0 -5
  432. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.d.ts +0 -5
  433. package/src/services/assets/asset-processing-service/processors/script/content-script.processor.js +0 -57
  434. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.d.ts +0 -9
  435. package/src/services/assets/asset-processing-service/processors/script/file-script.processor.js +0 -88
  436. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.d.ts +0 -7
  437. package/src/services/assets/asset-processing-service/processors/script/node-module-script.processor.js +0 -75
  438. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.d.ts +0 -5
  439. package/src/services/assets/asset-processing-service/processors/stylesheet/content-stylesheet.processor.js +0 -25
  440. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.d.ts +0 -9
  441. package/src/services/assets/asset-processing-service/processors/stylesheet/file-stylesheet.processor.js +0 -66
  442. package/src/services/assets/browser-bundle.service.d.ts +0 -32
  443. package/src/services/assets/browser-bundle.service.js +0 -33
  444. package/src/services/cache/cache.types.d.ts +0 -107
  445. package/src/services/cache/cache.types.js +0 -0
  446. package/src/services/cache/index.d.ts +0 -7
  447. package/src/services/cache/index.js +0 -7
  448. package/src/services/cache/memory-cache-store.d.ts +0 -42
  449. package/src/services/cache/memory-cache-store.js +0 -98
  450. package/src/services/cache/page-cache-service.d.ts +0 -70
  451. package/src/services/cache/page-cache-service.js +0 -152
  452. package/src/services/cache/page-request-cache-coordinator.service.d.ts +0 -75
  453. package/src/services/cache/page-request-cache-coordinator.service.js +0 -109
  454. package/src/services/html/html-rewriter-provider.service.d.ts +0 -37
  455. package/src/services/html/html-rewriter-provider.service.js +0 -68
  456. package/src/services/html/html-transformer.service.d.ts +0 -77
  457. package/src/services/html/html-transformer.service.js +0 -215
  458. package/src/services/invalidation/development-invalidation.service.d.ts +0 -74
  459. package/src/services/invalidation/development-invalidation.service.js +0 -190
  460. package/src/services/module-loading/app-module-loader.service.d.ts +0 -28
  461. package/src/services/module-loading/app-module-loader.service.js +0 -35
  462. package/src/services/module-loading/app-server-module-transpiler.service.d.ts +0 -24
  463. package/src/services/module-loading/app-server-module-transpiler.service.js +0 -109
  464. package/src/services/module-loading/host-module-loader-registry.d.ts +0 -4
  465. package/src/services/module-loading/host-module-loader-registry.js +0 -15
  466. package/src/services/module-loading/module-loading-types.js +0 -0
  467. package/src/services/module-loading/node-bootstrap-plugin.d.ts +0 -42
  468. package/src/services/module-loading/node-bootstrap-plugin.js +0 -204
  469. package/src/services/module-loading/page-module-import.service.d.ts +0 -76
  470. package/src/services/module-loading/page-module-import.service.js +0 -173
  471. package/src/services/module-loading/server-module-transpiler.service.d.ts +0 -72
  472. package/src/services/module-loading/server-module-transpiler.service.js +0 -64
  473. package/src/services/runtime-state/dev-graph.service.d.ts +0 -118
  474. package/src/services/runtime-state/dev-graph.service.js +0 -162
  475. package/src/services/runtime-state/entrypoint-dependency-graph.service.d.ts +0 -41
  476. package/src/services/runtime-state/entrypoint-dependency-graph.service.js +0 -85
  477. package/src/services/runtime-state/runtime-specifier-registry.service.d.ts +0 -69
  478. package/src/services/runtime-state/runtime-specifier-registry.service.js +0 -37
  479. package/src/services/runtime-state/server-invalidation-state.service.d.ts +0 -26
  480. package/src/services/runtime-state/server-invalidation-state.service.js +0 -35
  481. package/src/services/validation/schema-validation-service.d.ts +0 -122
  482. package/src/services/validation/schema-validation-service.js +0 -101
  483. package/src/services/validation/standard-schema.types.js +0 -0
  484. package/src/static-site-generator/static-site-generator.d.ts +0 -104
  485. package/src/static-site-generator/static-site-generator.js +0 -338
  486. package/src/types/internal-types.d.ts +0 -231
  487. package/src/types/internal-types.js +0 -0
  488. package/src/types/public-types.d.ts +0 -1219
  489. package/src/types/public-types.js +0 -0
  490. package/src/utils/deep-merge.d.ts +0 -14
  491. package/src/utils/deep-merge.js +0 -32
  492. package/src/utils/hash.d.ts +0 -1
  493. package/src/utils/hash.js +0 -7
  494. package/src/utils/html-escaping.d.ts +0 -7
  495. package/src/utils/html-escaping.js +0 -6
  496. package/src/utils/html.js +0 -4
  497. package/src/utils/invariant.d.ts +0 -5
  498. package/src/utils/invariant.js +0 -11
  499. package/src/utils/locals-utils.d.ts +0 -15
  500. package/src/utils/locals-utils.js +0 -24
  501. package/src/utils/parse-cli-args.d.ts +0 -27
  502. package/src/utils/parse-cli-args.js +0 -62
  503. package/src/utils/path-utils.module.d.ts +0 -5
  504. package/src/utils/path-utils.module.js +0 -14
  505. package/src/utils/resolve-work-dir.d.ts +0 -11
  506. package/src/utils/resolve-work-dir.js +0 -31
  507. package/src/utils/runtime.d.ts +0 -11
  508. package/src/utils/runtime.js +0 -40
  509. package/src/utils/server-utils.module.d.ts +0 -19
  510. package/src/utils/server-utils.module.js +0 -56
  511. package/src/watchers/project-watcher.d.ts +0 -136
  512. package/src/watchers/project-watcher.js +0 -275
  513. package/src/watchers/project-watcher.test-helpers.d.ts +0 -4
  514. package/src/watchers/project-watcher.test-helpers.js +0 -52
  515. /package/src/utils/{html.d.ts → html.ts} +0 -0
@@ -1,35 +0,0 @@
1
- import {
2
- PageModuleImportService
3
- } from "./page-module-import.service.js";
4
- class RuntimeAppModuleLoader {
5
- pageModuleImportService;
6
- getBuildExecutorValue;
7
- getDefaultPluginsValue;
8
- getOwnerValue;
9
- getInvalidationVersionValue;
10
- constructor(options = {}) {
11
- this.pageModuleImportService = options.pageModuleImportService ?? new PageModuleImportService(options.dependencies);
12
- this.getBuildExecutorValue = options.getBuildExecutor ?? (() => void 0);
13
- this.getDefaultPluginsValue = options.getDefaultPlugins ?? (() => []);
14
- this.getOwnerValue = options.getOwner ?? (() => "bun");
15
- this.getInvalidationVersionValue = options.getInvalidationVersion ?? (() => void 0);
16
- }
17
- get owner() {
18
- return this.getOwnerValue();
19
- }
20
- async importModule(options) {
21
- const mergedPlugins = [...this.getDefaultPluginsValue(), ...options.plugins ?? []];
22
- return await this.pageModuleImportService.importModule({
23
- ...options,
24
- ...mergedPlugins.length > 0 ? { plugins: mergedPlugins } : {},
25
- buildExecutor: options.buildExecutor ?? this.getBuildExecutorValue(),
26
- invalidationVersion: options.invalidationVersion ?? this.getInvalidationVersionValue()
27
- });
28
- }
29
- invalidateDevelopmentGraph() {
30
- this.pageModuleImportService.invalidateDevelopmentGraph();
31
- }
32
- }
33
- export {
34
- RuntimeAppModuleLoader
35
- };
@@ -1,24 +0,0 @@
1
- import type { EcoPagesAppConfig } from '../../types/internal-types.js';
2
- import { type AppModuleLoader } from './app-module-loader.service.js';
3
- import type { SourceModuleLoader } from './module-loading-types.js';
4
- import { ServerModuleTranspiler } from './server-module-transpiler.service.js';
5
- export declare function shouldAppUseHostModuleLoader(appConfig: EcoPagesAppConfig, filePath: string): boolean;
6
- export declare function getAppHostModuleLoader(appConfig: EcoPagesAppConfig): SourceModuleLoader | undefined;
7
- export declare function setAppHostModuleLoader(appConfig: EcoPagesAppConfig, hostModuleLoader?: SourceModuleLoader): void;
8
- export declare function createAppModuleLoader(appConfig: EcoPagesAppConfig): AppModuleLoader;
9
- export declare function getAppModuleLoader(appConfig: EcoPagesAppConfig): AppModuleLoader;
10
- export declare function setAppModuleLoader(appConfig: EcoPagesAppConfig, appModuleLoader: AppModuleLoader): void;
11
- /**
12
- * Creates the shared app-scoped server-module transpiler for one runtime
13
- * instance.
14
- */
15
- export declare function createAppServerModuleTranspiler(appConfig: EcoPagesAppConfig): ServerModuleTranspiler;
16
- /**
17
- * Returns the app-owned server-module transpiler, creating it lazily when the
18
- * runtime first needs one.
19
- */
20
- export declare function getAppServerModuleTranspiler(appConfig: EcoPagesAppConfig): ServerModuleTranspiler;
21
- /**
22
- * Installs the server-module transpiler that should serve one app instance.
23
- */
24
- export declare function setAppServerModuleTranspiler(appConfig: EcoPagesAppConfig, serverModuleTranspiler: ServerModuleTranspiler): void;
@@ -1,109 +0,0 @@
1
- import { getAppBuildExecutor } from "../../build/build-adapter.js";
2
- import path from "node:path";
3
- import { DevelopmentInvalidationService } from "../invalidation/development-invalidation.service.js";
4
- import {
5
- RuntimeAppModuleLoader
6
- } from "./app-module-loader.service.js";
7
- import { createAppNodeBootstrapPlugin } from "./node-bootstrap-plugin.js";
8
- import { ServerModuleTranspiler } from "./server-module-transpiler.service.js";
9
- function supportsHostSourceModuleLoading(filePath) {
10
- const extension = path.extname(filePath);
11
- return extension === ".js" || extension === ".jsx" || extension === ".ts" || extension === ".tsx" || extension === ".mjs" || extension === ".mts" || extension === ".cjs" || extension === ".cts";
12
- }
13
- function shouldAppUseHostModuleLoader(appConfig, filePath) {
14
- if (appConfig.runtime?.hostModuleLoader) {
15
- return supportsHostSourceModuleLoading(filePath);
16
- }
17
- const normalizedFilePath = path.normalize(filePath);
18
- const frameworkOwnedDirectories = [
19
- appConfig.absolutePaths.pagesDir,
20
- appConfig.absolutePaths.includesDir,
21
- appConfig.absolutePaths.layoutsDir,
22
- appConfig.absolutePaths.componentsDir
23
- ].map((directoryPath) => path.normalize(directoryPath));
24
- const isFrameworkOwnedModule = frameworkOwnedDirectories.some((directoryPath) => {
25
- return normalizedFilePath === directoryPath || normalizedFilePath.startsWith(`${directoryPath}${path.sep}`);
26
- });
27
- const isConfiguredTemplateModule = appConfig.templatesExt.some(
28
- (extension) => normalizedFilePath.endsWith(extension)
29
- );
30
- return !(isFrameworkOwnedModule && isConfiguredTemplateModule);
31
- }
32
- function getAppHostModuleLoader(appConfig) {
33
- return appConfig.runtime?.hostModuleLoader;
34
- }
35
- function getAppModuleLoaderOwner(appConfig) {
36
- return getAppHostModuleLoader(appConfig) ? "host" : "bun";
37
- }
38
- function setAppHostModuleLoader(appConfig, hostModuleLoader) {
39
- appConfig.runtime = {
40
- ...appConfig.runtime ?? {},
41
- hostModuleLoader
42
- };
43
- }
44
- function createAppModuleLoader(appConfig) {
45
- const invalidationService = new DevelopmentInvalidationService(appConfig);
46
- return new RuntimeAppModuleLoader({
47
- dependencies: {
48
- canLoadSourceModuleFromHost: (filePath) => shouldAppUseHostModuleLoader(appConfig, filePath),
49
- getHostModuleLoader: () => getAppHostModuleLoader(appConfig)
50
- },
51
- getBuildExecutor: () => getAppBuildExecutor(appConfig),
52
- getDefaultPlugins: typeof Bun === "undefined" && appConfig.rootDir ? () => [createAppNodeBootstrapPlugin(appConfig)] : void 0,
53
- getOwner: () => getAppModuleLoaderOwner(appConfig),
54
- getInvalidationVersion: () => invalidationService.getServerModuleInvalidationVersion()
55
- });
56
- }
57
- function getAppModuleLoader(appConfig) {
58
- const existingModuleLoader = appConfig.runtime?.appModuleLoader;
59
- if (existingModuleLoader) {
60
- return existingModuleLoader;
61
- }
62
- const appModuleLoader = createAppModuleLoader(appConfig);
63
- setAppModuleLoader(appConfig, appModuleLoader);
64
- return appModuleLoader;
65
- }
66
- function setAppModuleLoader(appConfig, appModuleLoader) {
67
- appConfig.runtime = {
68
- ...appConfig.runtime ?? {},
69
- appModuleLoader
70
- };
71
- }
72
- function createAppServerModuleTranspiler(appConfig) {
73
- const invalidationService = new DevelopmentInvalidationService(appConfig);
74
- return new ServerModuleTranspiler({
75
- rootDir: appConfig.rootDir,
76
- getBuildExecutor: () => getAppBuildExecutor(appConfig),
77
- getHostModuleLoader: () => getAppHostModuleLoader(appConfig),
78
- canLoadSourceModuleFromHost: (filePath) => shouldAppUseHostModuleLoader(appConfig, filePath),
79
- getInvalidationVersion: () => invalidationService.getServerModuleInvalidationVersion(),
80
- invalidateModules: (changedFiles) => invalidationService.invalidateServerModules(changedFiles),
81
- pageModuleImportService: getAppModuleLoader(appConfig)
82
- });
83
- }
84
- function getAppServerModuleTranspiler(appConfig) {
85
- const existingTranspiler = appConfig.runtime?.serverModuleTranspiler;
86
- if (existingTranspiler) {
87
- return existingTranspiler;
88
- }
89
- const serverModuleTranspiler = createAppServerModuleTranspiler(appConfig);
90
- setAppServerModuleTranspiler(appConfig, serverModuleTranspiler);
91
- return serverModuleTranspiler;
92
- }
93
- function setAppServerModuleTranspiler(appConfig, serverModuleTranspiler) {
94
- appConfig.runtime = {
95
- ...appConfig.runtime ?? {},
96
- serverModuleTranspiler
97
- };
98
- }
99
- export {
100
- createAppModuleLoader,
101
- createAppServerModuleTranspiler,
102
- getAppHostModuleLoader,
103
- getAppModuleLoader,
104
- getAppServerModuleTranspiler,
105
- setAppHostModuleLoader,
106
- setAppModuleLoader,
107
- setAppServerModuleTranspiler,
108
- shouldAppUseHostModuleLoader
109
- };
@@ -1,4 +0,0 @@
1
- import type { SourceModuleLoader } from './module-loading-types.js';
2
- export declare function setHostModuleLoader(loader: SourceModuleLoader): void;
3
- export declare function getHostModuleLoader(): SourceModuleLoader | undefined;
4
- export declare function clearHostModuleLoader(): void;
@@ -1,15 +0,0 @@
1
- let hostModuleLoader;
2
- function setHostModuleLoader(loader) {
3
- hostModuleLoader = loader;
4
- }
5
- function getHostModuleLoader() {
6
- return hostModuleLoader;
7
- }
8
- function clearHostModuleLoader() {
9
- hostModuleLoader = void 0;
10
- }
11
- export {
12
- clearHostModuleLoader,
13
- getHostModuleLoader,
14
- setHostModuleLoader
15
- };
@@ -1,42 +0,0 @@
1
- import type { EcoBuildOnResolveArgs, EcoBuildOnResolveResult, EcoBuildPlugin } from '../../build/build-types.js';
2
- import type { EcoPagesAppConfig } from '../../types/internal-types.js';
3
- /**
4
- * Returns the app-local node_modules directory used by framework-owned Node
5
- * bootstrap loads outside the thin-host manifest path.
6
- */
7
- export declare function getAppRuntimeNodeModulesDir(appConfig: Pick<EcoPagesAppConfig, 'rootDir' | 'workDir' | 'absolutePaths'>): string;
8
- export interface NodeBootstrapResolutionOptions {
9
- /**
10
- * App root used as the fallback package boundary when an importer does not
11
- * live under a more specific package.json.
12
- */
13
- projectDir: string;
14
- /**
15
- * Runtime-local node_modules directory that receives symlinks to resolved
16
- * package roots so transpiled Node imports share one package graph.
17
- */
18
- runtimeNodeModulesDir: string;
19
- }
20
- /**
21
- * Builds the user-facing error for Bun-native imports that cannot run on the
22
- * Node bootstrap transpile path.
23
- */
24
- export declare function getNodeUnsupportedBuiltinError(specifier: string, importer?: string): string;
25
- export declare function resolveNodeBootstrapDependency(args: Pick<EcoBuildOnResolveArgs, 'path' | 'importer'>, options: NodeBootstrapResolutionOptions): EcoBuildOnResolveResult | undefined;
26
- /**
27
- * Creates the Node bootstrap plugin used by app-owned server module loads.
28
- *
29
- * The resolver anchors third-party imports to the nearest package boundary for
30
- * the importing file, then mirrors the resolved package root into the runtime
31
- * node_modules directory. That keeps transpiled Node execution aligned with the
32
- * package graph each source file was authored against.
33
- */
34
- export declare function createNodeBootstrapPlugin(options: NodeBootstrapResolutionOptions): EcoBuildPlugin;
35
- /**
36
- * Creates the default Node bootstrap plugin for one Ecopages app runtime.
37
- *
38
- * This binds the shared resolution policy to the app's internal execution
39
- * directory so transpiled server modules can externalize packages into one
40
- * stable runtime node_modules graph.
41
- */
42
- export declare function createAppNodeBootstrapPlugin(appConfig: Pick<EcoPagesAppConfig, 'rootDir' | 'workDir' | 'absolutePaths'>): EcoBuildPlugin;
@@ -1,204 +0,0 @@
1
- import path from "node:path";
2
- import { existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, rmSync, symlinkSync } from "node:fs";
3
- import { createRequire } from "node:module";
4
- import { fileURLToPath, pathToFileURL } from "node:url";
5
- import { resolveInternalExecutionDir } from "../../utils/resolve-work-dir.js";
6
- function getAppRuntimeNodeModulesDir(appConfig) {
7
- return path.join(resolveInternalExecutionDir(appConfig), "node_modules");
8
- }
9
- function getPackageNameFromSpecifier(specifier) {
10
- if (specifier.startsWith("@")) {
11
- const [scope, name] = specifier.split("/");
12
- return `${scope}/${name}`;
13
- }
14
- return specifier.split("/")[0] ?? specifier;
15
- }
16
- function findPackageRoot(resolvedPath) {
17
- let currentPath = path.dirname(resolvedPath);
18
- while (true) {
19
- const packageJsonPath = path.join(currentPath, "package.json");
20
- if (existsSync(packageJsonPath)) {
21
- return currentPath;
22
- }
23
- const parentPath = path.dirname(currentPath);
24
- if (parentPath === currentPath) {
25
- throw new Error(`Could not find package root for resolved dependency path: ${resolvedPath}`);
26
- }
27
- currentPath = parentPath;
28
- }
29
- }
30
- function pathEntryExists(filePath) {
31
- try {
32
- lstatSync(filePath);
33
- return true;
34
- } catch {
35
- return false;
36
- }
37
- }
38
- function linkPointsToPackage(linkPath, packageRoot) {
39
- try {
40
- return realpathSync(linkPath) === realpathSync(packageRoot);
41
- } catch {
42
- return false;
43
- }
44
- }
45
- function ensureRuntimePackageLink(nodeModulesDir, specifier, resolvedPath) {
46
- const packageName = getPackageNameFromSpecifier(specifier);
47
- const packageRoot = findPackageRoot(resolvedPath);
48
- const linkPath = path.join(nodeModulesDir, packageName);
49
- mkdirSync(path.dirname(linkPath), { recursive: true });
50
- if (pathEntryExists(linkPath)) {
51
- if (linkPointsToPackage(linkPath, packageRoot)) {
52
- return;
53
- }
54
- rmSync(linkPath, { recursive: true, force: true });
55
- }
56
- try {
57
- symlinkSync(packageRoot, linkPath, "dir");
58
- } catch (error) {
59
- if (error.code !== "EEXIST") {
60
- throw error;
61
- }
62
- if (linkPointsToPackage(linkPath, packageRoot)) {
63
- return;
64
- }
65
- rmSync(linkPath, { recursive: true, force: true });
66
- symlinkSync(packageRoot, linkPath, "dir");
67
- }
68
- }
69
- function getNodeUnsupportedBuiltinError(specifier, importer) {
70
- return `Node bootstrap transpilation does not support Bun builtin specifier ${JSON.stringify(specifier)}${importer ? ` imported from ${importer}` : ""}.`;
71
- }
72
- function resolveSpecifier(specifier, parentPath) {
73
- try {
74
- return createRequire(parentPath).resolve(specifier);
75
- } catch {
76
- return fileURLToPath(import.meta.resolve(specifier, pathToFileURL(parentPath).href));
77
- }
78
- }
79
- function resolveFromCore(specifier) {
80
- return createRequire(import.meta.url).resolve(specifier);
81
- }
82
- function findResolutionParent(importer, projectDir) {
83
- if (!importer || !path.isAbsolute(importer)) {
84
- return path.join(projectDir, "package.json");
85
- }
86
- let currentPath = path.dirname(importer);
87
- while (true) {
88
- const packageJsonPath = path.join(currentPath, "package.json");
89
- if (existsSync(packageJsonPath)) {
90
- return packageJsonPath;
91
- }
92
- const parentPath = path.dirname(currentPath);
93
- if (parentPath === currentPath) {
94
- return path.join(projectDir, "package.json");
95
- }
96
- currentPath = parentPath;
97
- }
98
- }
99
- function getBootstrapBuildLoaderForPath(filePath) {
100
- switch (path.extname(filePath).toLowerCase()) {
101
- case ".ts":
102
- case ".mts":
103
- case ".cts":
104
- return "ts";
105
- case ".tsx":
106
- return "tsx";
107
- case ".jsx":
108
- return "jsx";
109
- case ".json":
110
- return "json";
111
- default:
112
- return "js";
113
- }
114
- }
115
- function shouldRewriteBootstrapSource(filePath, projectDir) {
116
- const normalizedPath = path.resolve(filePath);
117
- const normalizedProjectDir = path.resolve(projectDir);
118
- return normalizedPath.startsWith(`${normalizedProjectDir}${path.sep}`) && !normalizedPath.includes(`${path.sep}node_modules${path.sep}`);
119
- }
120
- function resolveNodeBootstrapDependency(args, options) {
121
- if (args.path.startsWith("./") || args.path.startsWith("../") || args.path.startsWith("@/") || args.path.startsWith("/") || args.path.startsWith("node:")) {
122
- return void 0;
123
- }
124
- const resolveParent = findResolutionParent(args.importer, options.projectDir);
125
- if (args.path.startsWith("@ecopages/")) {
126
- let resolvedPath2;
127
- try {
128
- resolvedPath2 = resolveFromCore(args.path);
129
- } catch {
130
- try {
131
- resolvedPath2 = resolveSpecifier(args.path, resolveParent);
132
- } catch {
133
- const packageName = getPackageNameFromSpecifier(args.path);
134
- const candidatePath = path.join(options.projectDir, "node_modules", packageName);
135
- const candidatePackageJson = path.join(candidatePath, "package.json");
136
- if (existsSync(candidatePackageJson)) {
137
- ensureRuntimePackageLink(options.runtimeNodeModulesDir, args.path, candidatePackageJson);
138
- return { path: args.path, external: true };
139
- }
140
- }
141
- }
142
- if (!resolvedPath2) {
143
- return void 0;
144
- }
145
- if (resolvedPath2.includes(`${path.sep}node_modules${path.sep}`)) {
146
- ensureRuntimePackageLink(options.runtimeNodeModulesDir, args.path, resolvedPath2);
147
- return {
148
- path: args.path,
149
- external: true
150
- };
151
- }
152
- return { path: resolvedPath2 };
153
- }
154
- const resolvedPath = resolveSpecifier(args.path, resolveParent);
155
- ensureRuntimePackageLink(options.runtimeNodeModulesDir, args.path, resolvedPath);
156
- return {
157
- path: args.path,
158
- external: true
159
- };
160
- }
161
- function createNodeBootstrapPlugin(options) {
162
- const projectDir = path.resolve(options.projectDir);
163
- return {
164
- name: "node-bootstrap-plugin",
165
- setup(build) {
166
- build.onResolve({ filter: /^bun:/ }, (args) => {
167
- throw new Error(getNodeUnsupportedBuiltinError(args.path, args.importer));
168
- });
169
- build.onLoad({ filter: /\.[cm]?[jt]sx?$/ }, async (args) => {
170
- const absolutePath = path.resolve(args.path);
171
- const shouldRewriteImportMeta = shouldRewriteBootstrapSource(absolutePath, projectDir);
172
- if (!shouldRewriteImportMeta) {
173
- return void 0;
174
- }
175
- const originalContents = readFileSync(args.path, "utf8");
176
- const contents = originalContents.replaceAll("import.meta.dirname", JSON.stringify(path.dirname(args.path))).replaceAll("import.meta.filename", JSON.stringify(args.path));
177
- if (contents === originalContents) {
178
- return void 0;
179
- }
180
- return {
181
- contents,
182
- loader: getBootstrapBuildLoaderForPath(args.path),
183
- resolveDir: path.dirname(args.path)
184
- };
185
- });
186
- build.onResolve({ filter: /^[@A-Za-z0-9][^:]*$/ }, (args) => {
187
- return resolveNodeBootstrapDependency(args, options);
188
- });
189
- }
190
- };
191
- }
192
- function createAppNodeBootstrapPlugin(appConfig) {
193
- return createNodeBootstrapPlugin({
194
- projectDir: appConfig.rootDir,
195
- runtimeNodeModulesDir: getAppRuntimeNodeModulesDir(appConfig)
196
- });
197
- }
198
- export {
199
- createAppNodeBootstrapPlugin,
200
- createNodeBootstrapPlugin,
201
- getAppRuntimeNodeModulesDir,
202
- getNodeUnsupportedBuiltinError,
203
- resolveNodeBootstrapDependency
204
- };
@@ -1,76 +0,0 @@
1
- import { build, type BuildExecutor, type BuildResult } from '../../build/build-adapter.js';
2
- import type { EcoBuildPlugin } from '../../build/build-types.js';
3
- import type { SourceModuleLoaderFactory } from './module-loading-types.js';
4
- export interface PageModuleImportOptions {
5
- filePath: string;
6
- rootDir: string;
7
- outdir: string;
8
- bypassCache?: boolean;
9
- cacheScope?: string;
10
- buildExecutor?: BuildExecutor;
11
- invalidationVersion?: number;
12
- splitting?: boolean;
13
- externalPackages?: boolean;
14
- plugins?: EcoBuildPlugin[];
15
- transpileErrorMessage?: (details: string) => string;
16
- noOutputMessage?: (filePath: string) => string;
17
- }
18
- /**
19
- * Minimal runtime dependencies required to load page modules.
20
- *
21
- * @remarks
22
- * This service owns cache and runtime import policy. Hashing and build
23
- * execution are injected so tests can provide explicit fakes without module
24
- * interception.
25
- */
26
- export interface PageModuleImportDependencies {
27
- hashFile(filePath: string): string;
28
- buildModule(options: Parameters<typeof build>[0], buildExecutor?: BuildExecutor): Promise<BuildResult>;
29
- canLoadSourceModuleFromHost(filePath: string): boolean;
30
- getHostModuleLoader: SourceModuleLoaderFactory;
31
- }
32
- /**
33
- * Loads source page modules in a runtime-agnostic way.
34
- *
35
- * This service centralizes the Bun-vs-Node import strategy used by route
36
- * scanning, page data loading, and request-time page inspection. In Bun it can
37
- * import source files directly; in Node it transpiles the file into a dedicated
38
- * output directory first and then imports the generated module.
39
- *
40
- * Keeping this logic in one place prevents subtle drift in cache-busting,
41
- * transpilation settings, and error semantics across the different callers.
42
- */
43
- export declare class PageModuleImportService {
44
- private readonly dependencies;
45
- private readonly importCache;
46
- private developmentInvalidationVersion;
47
- constructor(dependencies?: Partial<PageModuleImportDependencies>);
48
- /**
49
- * Clears the shared import cache used by framework-owned page-module loads.
50
- */
51
- clearImportCache(): void;
52
- /**
53
- * Invalidates all previously imported modules in development by clearing the
54
- * import cache and incrementing the invalidation version included in cache keys.
55
- *
56
- * This forces all modules to be reloaded on the next import, even if their
57
- * source content hasn't changed. This is necessary to ensure that changes to
58
- * non-content aspects of modules (e.g. dependencies, transpilation output)
59
- * are picked up during development.
60
- */
61
- invalidateDevelopmentGraph(): void;
62
- /**
63
- * Imports a page-like module from source.
64
- *
65
- * The caller controls the output directory and error wording so different
66
- * subsystems can reuse the same loading mechanism while preserving their
67
- * current diagnostics. Module identities stay stable for unchanged files and
68
- * roll forward automatically when the source hash changes during watch mode.
69
- *
70
- * @typeParam T Expected module shape.
71
- * @param options Runtime-specific import settings.
72
- * @returns The loaded module.
73
- */
74
- importModule<T = unknown>(options: PageModuleImportOptions): Promise<T>;
75
- private loadModule;
76
- }