everything-dev 1.53.1 → 2.0.0-rc.0

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 (713) hide show
  1. package/README.md +2 -11
  2. package/dist/_virtual/_rolldown/runtime.cjs +17 -2
  3. package/dist/_virtual/_rolldown/runtime.mjs +36 -0
  4. package/dist/api/auth-middleware.cjs +161 -0
  5. package/dist/api/auth-middleware.cjs.map +1 -0
  6. package/dist/api/auth-middleware.d.cts +69 -0
  7. package/dist/api/auth-middleware.d.mts +69 -0
  8. package/dist/api/auth-middleware.mjs +160 -0
  9. package/dist/api/auth-middleware.mjs.map +1 -0
  10. package/dist/api-contract.cjs +250 -62
  11. package/dist/api-contract.cjs.map +1 -1
  12. package/dist/api-contract.mjs +246 -65
  13. package/dist/api-contract.mjs.map +1 -1
  14. package/dist/app.cjs +99 -26
  15. package/dist/app.cjs.map +1 -1
  16. package/dist/app.d.cts +3 -0
  17. package/dist/app.d.mts +3 -0
  18. package/dist/app.mjs +100 -27
  19. package/dist/app.mjs.map +1 -1
  20. package/dist/auth-login.cjs +163 -0
  21. package/dist/auth-login.cjs.map +1 -0
  22. package/dist/auth-login.mjs +162 -0
  23. package/dist/auth-login.mjs.map +1 -0
  24. package/dist/auth-session.cjs +64 -0
  25. package/dist/auth-session.cjs.map +1 -0
  26. package/dist/auth-session.mjs +58 -0
  27. package/dist/auth-session.mjs.map +1 -0
  28. package/dist/auth-types-gen.cjs +0 -1
  29. package/dist/auth-types-gen.cjs.map +1 -1
  30. package/dist/build.cjs +37 -173
  31. package/dist/build.cjs.map +1 -1
  32. package/dist/build.mjs +37 -171
  33. package/dist/build.mjs.map +1 -1
  34. package/dist/bundle-cache.cjs +74 -0
  35. package/dist/bundle-cache.cjs.map +1 -0
  36. package/dist/bundle-cache.d.cts +27 -0
  37. package/dist/bundle-cache.d.mts +27 -0
  38. package/dist/bundle-cache.mjs +68 -0
  39. package/dist/bundle-cache.mjs.map +1 -0
  40. package/dist/bundle-fs-resolve.cjs +209 -0
  41. package/dist/bundle-fs-resolve.cjs.map +1 -0
  42. package/dist/bundle-fs-resolve.d.cts +76 -0
  43. package/dist/bundle-fs-resolve.d.mts +76 -0
  44. package/dist/bundle-fs-resolve.mjs +202 -0
  45. package/dist/bundle-fs-resolve.mjs.map +1 -0
  46. package/dist/cdn-deploy.cjs +126 -0
  47. package/dist/cdn-deploy.cjs.map +1 -0
  48. package/dist/cdn-deploy.mjs +124 -0
  49. package/dist/cdn-deploy.mjs.map +1 -0
  50. package/dist/cli/db-doctor.cjs +19 -19
  51. package/dist/cli/db-doctor.cjs.map +1 -1
  52. package/dist/cli/db-doctor.mjs +18 -18
  53. package/dist/cli/db-doctor.mjs.map +1 -1
  54. package/dist/cli/db-repair.cjs +9 -32
  55. package/dist/cli/db-repair.cjs.map +1 -1
  56. package/dist/cli/db-repair.mjs +9 -32
  57. package/dist/cli/db-repair.mjs.map +1 -1
  58. package/dist/cli/framework-version.cjs +7 -3
  59. package/dist/cli/framework-version.cjs.map +1 -1
  60. package/dist/cli/framework-version.mjs +7 -3
  61. package/dist/cli/framework-version.mjs.map +1 -1
  62. package/dist/cli/infra.cjs +159 -251
  63. package/dist/cli/infra.cjs.map +1 -1
  64. package/dist/cli/infra.mjs +154 -242
  65. package/dist/cli/infra.mjs.map +1 -1
  66. package/dist/cli/init.cjs +624 -196
  67. package/dist/cli/init.cjs.map +1 -1
  68. package/dist/cli/init.d.cts +61 -8
  69. package/dist/cli/init.d.mts +61 -8
  70. package/dist/cli/init.mjs +613 -194
  71. package/dist/cli/init.mjs.map +1 -1
  72. package/dist/cli/parse.cjs +8 -7
  73. package/dist/cli/parse.cjs.map +1 -1
  74. package/dist/cli/parse.mjs +9 -7
  75. package/dist/cli/parse.mjs.map +1 -1
  76. package/dist/cli/prompts.cjs +14 -1
  77. package/dist/cli/prompts.cjs.map +1 -1
  78. package/dist/cli/prompts.mjs +14 -1
  79. package/dist/cli/prompts.mjs.map +1 -1
  80. package/dist/cli/prune.cjs +220 -0
  81. package/dist/cli/prune.cjs.map +1 -0
  82. package/dist/cli/prune.mjs +220 -0
  83. package/dist/cli/prune.mjs.map +1 -0
  84. package/dist/cli/snapshot.cjs +2 -1
  85. package/dist/cli/snapshot.cjs.map +1 -1
  86. package/dist/cli/snapshot.mjs +2 -1
  87. package/dist/cli/snapshot.mjs.map +1 -1
  88. package/dist/cli/status.cjs +5 -4
  89. package/dist/cli/status.cjs.map +1 -1
  90. package/dist/cli/status.mjs +6 -5
  91. package/dist/cli/status.mjs.map +1 -1
  92. package/dist/cli/sync.cjs +156 -58
  93. package/dist/cli/sync.cjs.map +1 -1
  94. package/dist/cli/sync.mjs +158 -63
  95. package/dist/cli/sync.mjs.map +1 -1
  96. package/dist/cli/timing.cjs +0 -1
  97. package/dist/cli/timing.cjs.map +1 -1
  98. package/dist/cli/upgrade.cjs +95 -69
  99. package/dist/cli/upgrade.cjs.map +1 -1
  100. package/dist/cli/upgrade.mjs +97 -72
  101. package/dist/cli/upgrade.mjs.map +1 -1
  102. package/dist/cli/utils/helpers.cjs.map +1 -1
  103. package/dist/cli.cjs +320 -72
  104. package/dist/cli.cjs.map +1 -1
  105. package/dist/cli.mjs +316 -68
  106. package/dist/cli.mjs.map +1 -1
  107. package/dist/code-artifacts.cjs +76 -8
  108. package/dist/code-artifacts.cjs.map +1 -1
  109. package/dist/code-artifacts.mjs +76 -10
  110. package/dist/code-artifacts.mjs.map +1 -1
  111. package/dist/commands/build.cjs +65 -0
  112. package/dist/commands/build.cjs.map +1 -0
  113. package/dist/commands/build.mjs +65 -0
  114. package/dist/commands/build.mjs.map +1 -0
  115. package/dist/commands/config.cjs +77 -0
  116. package/dist/commands/config.cjs.map +1 -0
  117. package/dist/commands/config.d.cts +8 -0
  118. package/dist/commands/config.d.mts +8 -0
  119. package/dist/commands/config.mjs +74 -0
  120. package/dist/commands/config.mjs.map +1 -0
  121. package/dist/commands/db.cjs +107 -0
  122. package/dist/commands/db.cjs.map +1 -0
  123. package/dist/commands/db.mjs +107 -0
  124. package/dist/commands/db.mjs.map +1 -0
  125. package/dist/commands/deploy.cjs +336 -0
  126. package/dist/commands/deploy.cjs.map +1 -0
  127. package/dist/commands/deploy.mjs +334 -0
  128. package/dist/commands/deploy.mjs.map +1 -0
  129. package/dist/commands/dev.cjs +75 -0
  130. package/dist/commands/dev.cjs.map +1 -0
  131. package/dist/commands/dev.mjs +73 -0
  132. package/dist/commands/dev.mjs.map +1 -0
  133. package/dist/commands/init.cjs +234 -0
  134. package/dist/commands/init.cjs.map +1 -0
  135. package/dist/commands/init.mjs +231 -0
  136. package/dist/commands/init.mjs.map +1 -0
  137. package/dist/commands/keys.cjs +255 -0
  138. package/dist/commands/keys.cjs.map +1 -0
  139. package/dist/commands/keys.mjs +253 -0
  140. package/dist/commands/keys.mjs.map +1 -0
  141. package/dist/commands/ops.cjs +199 -0
  142. package/dist/commands/ops.cjs.map +1 -0
  143. package/dist/commands/ops.mjs +197 -0
  144. package/dist/commands/ops.mjs.map +1 -0
  145. package/dist/commands/plugins.cjs +211 -0
  146. package/dist/commands/plugins.cjs.map +1 -0
  147. package/dist/commands/plugins.mjs +211 -0
  148. package/dist/commands/plugins.mjs.map +1 -0
  149. package/dist/commands/shared.cjs +8 -0
  150. package/dist/commands/shared.cjs.map +1 -0
  151. package/dist/commands/shared.d.cts +6 -0
  152. package/dist/commands/shared.d.mts +6 -0
  153. package/dist/commands/shared.mjs +8 -0
  154. package/dist/commands/shared.mjs.map +1 -0
  155. package/dist/commands/upgrade.cjs +325 -0
  156. package/dist/commands/upgrade.cjs.map +1 -0
  157. package/dist/commands/upgrade.mjs +323 -0
  158. package/dist/commands/upgrade.mjs.map +1 -0
  159. package/dist/components/dev-render.cjs +340 -0
  160. package/dist/components/dev-render.cjs.map +1 -0
  161. package/dist/components/dev-render.mjs +332 -0
  162. package/dist/components/dev-render.mjs.map +1 -0
  163. package/dist/config.cjs +460 -221
  164. package/dist/config.cjs.map +1 -1
  165. package/dist/config.d.cts +491 -48
  166. package/dist/config.d.mts +491 -48
  167. package/dist/config.mjs +439 -212
  168. package/dist/config.mjs.map +1 -1
  169. package/dist/contract.cjs +327 -50
  170. package/dist/contract.cjs.map +1 -1
  171. package/dist/contract.d.cts +1951 -1062
  172. package/dist/contract.d.mts +1951 -1062
  173. package/dist/contract.meta.cjs +107 -12
  174. package/dist/contract.meta.cjs.map +1 -1
  175. package/dist/contract.meta.d.cts +166 -8
  176. package/dist/contract.meta.d.mts +166 -8
  177. package/dist/contract.meta.mjs +107 -11
  178. package/dist/contract.meta.mjs.map +1 -1
  179. package/dist/contract.mjs +580 -327
  180. package/dist/contract.mjs.map +1 -1
  181. package/dist/dag.cjs +5 -3
  182. package/dist/dag.cjs.map +1 -1
  183. package/dist/dag.mjs +6 -3
  184. package/dist/dag.mjs.map +1 -1
  185. package/dist/db/binding.cjs +80 -0
  186. package/dist/db/binding.cjs.map +1 -0
  187. package/dist/db/binding.d.cts +39 -0
  188. package/dist/db/binding.d.mts +39 -0
  189. package/dist/db/binding.mjs +78 -0
  190. package/dist/db/binding.mjs.map +1 -0
  191. package/dist/db/bindings.cjs +78 -0
  192. package/dist/db/bindings.cjs.map +1 -0
  193. package/dist/db/bindings.d.cts +34 -0
  194. package/dist/db/bindings.d.mts +34 -0
  195. package/dist/db/bindings.mjs +76 -0
  196. package/dist/db/bindings.mjs.map +1 -0
  197. package/dist/db/core.cjs +204 -0
  198. package/dist/db/core.cjs.map +1 -0
  199. package/dist/db/core.d.cts +69 -0
  200. package/dist/db/core.d.mts +69 -0
  201. package/dist/db/core.mjs +192 -0
  202. package/dist/db/core.mjs.map +1 -0
  203. package/dist/db/driver.cjs +167 -0
  204. package/dist/db/driver.cjs.map +1 -0
  205. package/dist/db/driver.d.cts +50 -0
  206. package/dist/db/driver.d.mts +50 -0
  207. package/dist/db/driver.mjs +165 -0
  208. package/dist/db/driver.mjs.map +1 -0
  209. package/dist/db/drizzle-kit.cjs +177 -0
  210. package/dist/db/drizzle-kit.cjs.map +1 -0
  211. package/dist/db/drizzle-kit.d.cts +25 -0
  212. package/dist/db/drizzle-kit.d.mts +25 -0
  213. package/dist/db/drizzle-kit.mjs +175 -0
  214. package/dist/db/drizzle-kit.mjs.map +1 -0
  215. package/dist/db/errors.cjs +27 -0
  216. package/dist/db/errors.cjs.map +1 -0
  217. package/dist/db/errors.d.cts +16 -0
  218. package/dist/db/errors.d.mts +16 -0
  219. package/dist/db/errors.mjs +26 -0
  220. package/dist/db/errors.mjs.map +1 -0
  221. package/dist/db/identity.cjs +55 -0
  222. package/dist/db/identity.cjs.map +1 -0
  223. package/dist/db/identity.d.cts +40 -0
  224. package/dist/db/identity.d.mts +40 -0
  225. package/dist/db/identity.mjs +53 -0
  226. package/dist/db/identity.mjs.map +1 -0
  227. package/dist/db/index.cjs +43 -0
  228. package/dist/db/index.d.cts +9 -0
  229. package/dist/db/index.d.mts +9 -0
  230. package/dist/db/index.mjs +10 -0
  231. package/dist/db/run-migrations.cjs +343 -0
  232. package/dist/db/run-migrations.cjs.map +1 -0
  233. package/dist/db/run-migrations.d.cts +87 -0
  234. package/dist/db/run-migrations.d.mts +87 -0
  235. package/dist/db/run-migrations.mjs +341 -0
  236. package/dist/db/run-migrations.mjs.map +1 -0
  237. package/dist/delegate-signer.cjs +85 -0
  238. package/dist/delegate-signer.cjs.map +1 -0
  239. package/dist/delegate-signer.mjs +84 -0
  240. package/dist/delegate-signer.mjs.map +1 -0
  241. package/dist/deploy-diff.cjs +119 -0
  242. package/dist/deploy-diff.cjs.map +1 -0
  243. package/dist/deploy-diff.mjs +109 -0
  244. package/dist/deploy-diff.mjs.map +1 -0
  245. package/dist/descriptor/constructors.cjs +49 -0
  246. package/dist/descriptor/constructors.cjs.map +1 -0
  247. package/dist/descriptor/constructors.d.cts +27 -0
  248. package/dist/descriptor/constructors.d.mts +27 -0
  249. package/dist/descriptor/constructors.mjs +45 -0
  250. package/dist/descriptor/constructors.mjs.map +1 -0
  251. package/dist/descriptor/index.cjs +24 -0
  252. package/dist/descriptor/index.d.cts +5 -0
  253. package/dist/descriptor/index.d.mts +5 -0
  254. package/dist/descriptor/index.mjs +6 -0
  255. package/dist/descriptor/resolve.cjs +258 -0
  256. package/dist/descriptor/resolve.cjs.map +1 -0
  257. package/dist/descriptor/resolve.d.cts +50 -0
  258. package/dist/descriptor/resolve.d.mts +50 -0
  259. package/dist/descriptor/resolve.mjs +252 -0
  260. package/dist/descriptor/resolve.mjs.map +1 -0
  261. package/dist/descriptor/schema.cjs +109 -0
  262. package/dist/descriptor/schema.cjs.map +1 -0
  263. package/dist/descriptor/schema.d.cts +217 -0
  264. package/dist/descriptor/schema.d.mts +217 -0
  265. package/dist/descriptor/schema.mjs +102 -0
  266. package/dist/descriptor/schema.mjs.map +1 -0
  267. package/dist/descriptor/serialize.cjs +45 -0
  268. package/dist/descriptor/serialize.cjs.map +1 -0
  269. package/dist/descriptor/serialize.d.cts +7 -0
  270. package/dist/descriptor/serialize.d.mts +7 -0
  271. package/dist/descriptor/serialize.mjs +45 -0
  272. package/dist/descriptor/serialize.mjs.map +1 -0
  273. package/dist/dev-log-pipeline.cjs +273 -0
  274. package/dist/dev-log-pipeline.cjs.map +1 -0
  275. package/dist/dev-log-pipeline.mjs +267 -0
  276. package/dist/dev-log-pipeline.mjs.map +1 -0
  277. package/dist/dev-logs.cjs +39 -8
  278. package/dist/dev-logs.cjs.map +1 -1
  279. package/dist/dev-logs.mjs +37 -9
  280. package/dist/dev-logs.mjs.map +1 -1
  281. package/dist/dev-program.cjs +405 -0
  282. package/dist/dev-program.cjs.map +1 -0
  283. package/dist/dev-program.d.cts +10 -0
  284. package/dist/dev-program.d.mts +10 -0
  285. package/dist/dev-program.mjs +395 -0
  286. package/dist/dev-program.mjs.map +1 -0
  287. package/dist/dev-session-data.d.cts +27 -0
  288. package/dist/dev-session-data.d.mts +27 -0
  289. package/dist/dev-session.cjs +178 -105
  290. package/dist/dev-session.cjs.map +1 -1
  291. package/dist/dev-session.mjs +180 -105
  292. package/dist/dev-session.mjs.map +1 -1
  293. package/dist/env/process-env.cjs +16 -0
  294. package/dist/env/process-env.cjs.map +1 -0
  295. package/dist/env/process-env.mjs +13 -0
  296. package/dist/env/process-env.mjs.map +1 -0
  297. package/dist/env/project-env.cjs +144 -0
  298. package/dist/env/project-env.cjs.map +1 -0
  299. package/dist/env/project-env.d.cts +1 -0
  300. package/dist/env/project-env.d.mts +1 -0
  301. package/dist/env/project-env.mjs +132 -0
  302. package/dist/env/project-env.mjs.map +1 -0
  303. package/dist/fastkv.cjs +59 -12
  304. package/dist/fastkv.cjs.map +1 -1
  305. package/dist/fastkv.d.cts +42 -6
  306. package/dist/fastkv.d.mts +42 -6
  307. package/dist/fastkv.mjs +58 -13
  308. package/dist/fastkv.mjs.map +1 -1
  309. package/dist/fingerprint.cjs +57 -0
  310. package/dist/fingerprint.cjs.map +1 -0
  311. package/dist/fingerprint.d.cts +14 -0
  312. package/dist/fingerprint.d.mts +14 -0
  313. package/dist/fingerprint.mjs +55 -0
  314. package/dist/fingerprint.mjs.map +1 -0
  315. package/dist/http-client.cjs +17 -17
  316. package/dist/http-client.cjs.map +1 -1
  317. package/dist/http-client.mjs +17 -17
  318. package/dist/http-client.mjs.map +1 -1
  319. package/dist/image-deploy.cjs +186 -0
  320. package/dist/image-deploy.cjs.map +1 -0
  321. package/dist/image-deploy.mjs +182 -0
  322. package/dist/image-deploy.mjs.map +1 -0
  323. package/dist/index.cjs +66 -18
  324. package/dist/index.d.cts +8 -7
  325. package/dist/index.d.mts +8 -7
  326. package/dist/index.mjs +6 -5
  327. package/dist/infra/docker.cjs +77 -0
  328. package/dist/infra/docker.cjs.map +1 -0
  329. package/dist/infra/docker.d.cts +10 -0
  330. package/dist/infra/docker.d.mts +10 -0
  331. package/dist/infra/docker.mjs +69 -0
  332. package/dist/infra/docker.mjs.map +1 -0
  333. package/dist/infra/materializer.cjs +74 -0
  334. package/dist/infra/materializer.cjs.map +1 -0
  335. package/dist/infra/materializer.mjs +70 -0
  336. package/dist/infra/materializer.mjs.map +1 -0
  337. package/dist/infra/planner.cjs +135 -103
  338. package/dist/infra/planner.cjs.map +1 -1
  339. package/dist/infra/planner.mjs +137 -104
  340. package/dist/infra/planner.mjs.map +1 -1
  341. package/dist/infra/port-ownership.cjs +57 -0
  342. package/dist/infra/port-ownership.cjs.map +1 -0
  343. package/dist/infra/port-ownership.mjs +57 -0
  344. package/dist/infra/port-ownership.mjs.map +1 -0
  345. package/dist/infra/preflight.cjs +45 -33
  346. package/dist/infra/preflight.cjs.map +1 -1
  347. package/dist/infra/preflight.d.cts +1 -0
  348. package/dist/infra/preflight.d.mts +1 -0
  349. package/dist/infra/preflight.mjs +46 -34
  350. package/dist/infra/preflight.mjs.map +1 -1
  351. package/dist/infra/types.cjs.map +1 -1
  352. package/dist/infra/types.d.cts +2 -0
  353. package/dist/infra/types.d.mts +2 -0
  354. package/dist/infra/types.mjs.map +1 -1
  355. package/dist/integrity.cjs +50 -61
  356. package/dist/integrity.cjs.map +1 -1
  357. package/dist/integrity.d.cts +16 -10
  358. package/dist/integrity.d.mts +16 -10
  359. package/dist/integrity.mjs +50 -59
  360. package/dist/integrity.mjs.map +1 -1
  361. package/dist/internal/manifest-normalizer.cjs +8 -2
  362. package/dist/internal/manifest-normalizer.cjs.map +1 -1
  363. package/dist/internal/manifest-normalizer.mjs +9 -3
  364. package/dist/internal/manifest-normalizer.mjs.map +1 -1
  365. package/dist/merge.cjs +19 -1
  366. package/dist/merge.cjs.map +1 -1
  367. package/dist/merge.d.cts +1 -1
  368. package/dist/merge.d.mts +1 -1
  369. package/dist/merge.mjs +19 -2
  370. package/dist/merge.mjs.map +1 -1
  371. package/dist/mf.cjs +190 -3
  372. package/dist/mf.cjs.map +1 -1
  373. package/dist/mf.d.cts +24 -2
  374. package/dist/mf.d.mts +24 -2
  375. package/dist/mf.mjs +189 -4
  376. package/dist/mf.mjs.map +1 -1
  377. package/dist/near-cli.cjs +59 -91
  378. package/dist/near-cli.cjs.map +1 -1
  379. package/dist/near-cli.mjs +58 -90
  380. package/dist/near-cli.mjs.map +1 -1
  381. package/dist/near-signer.cjs +73 -0
  382. package/dist/near-signer.cjs.map +1 -0
  383. package/dist/near-signer.mjs +70 -0
  384. package/dist/near-signer.mjs.map +1 -0
  385. package/dist/network.cjs +0 -1
  386. package/dist/network.cjs.map +1 -1
  387. package/dist/orchestrator.cjs +256 -87
  388. package/dist/orchestrator.cjs.map +1 -1
  389. package/dist/orchestrator.mjs +248 -87
  390. package/dist/orchestrator.mjs.map +1 -1
  391. package/dist/platform-deploy.cjs +81 -0
  392. package/dist/platform-deploy.cjs.map +1 -0
  393. package/dist/platform-deploy.mjs +80 -0
  394. package/dist/platform-deploy.mjs.map +1 -0
  395. package/dist/plugin.cjs +54 -1389
  396. package/dist/plugin.cjs.map +1 -1
  397. package/dist/plugin.d.cts +6 -896
  398. package/dist/plugin.d.mts +6 -896
  399. package/dist/plugin.mjs +53 -1387
  400. package/dist/plugin.mjs.map +1 -1
  401. package/dist/process-kill.cjs +44 -0
  402. package/dist/process-kill.cjs.map +1 -0
  403. package/dist/process-kill.mjs +43 -0
  404. package/dist/process-kill.mjs.map +1 -0
  405. package/dist/process-registry.cjs +64 -9
  406. package/dist/process-registry.cjs.map +1 -1
  407. package/dist/process-registry.mjs +61 -10
  408. package/dist/process-registry.mjs.map +1 -1
  409. package/dist/progress.cjs +45 -0
  410. package/dist/progress.cjs.map +1 -0
  411. package/dist/progress.d.cts +13 -0
  412. package/dist/progress.d.mts +13 -0
  413. package/dist/progress.mjs +42 -0
  414. package/dist/progress.mjs.map +1 -0
  415. package/dist/publish.cjs +513 -79
  416. package/dist/publish.cjs.map +1 -1
  417. package/dist/publish.mjs +515 -82
  418. package/dist/publish.mjs.map +1 -1
  419. package/dist/registry-use.cjs +41 -0
  420. package/dist/registry-use.cjs.map +1 -0
  421. package/dist/registry-use.mjs +40 -0
  422. package/dist/registry-use.mjs.map +1 -0
  423. package/dist/resolution/session.cjs +335 -0
  424. package/dist/resolution/session.cjs.map +1 -0
  425. package/dist/resolution/session.d.cts +105 -0
  426. package/dist/resolution/session.d.mts +105 -0
  427. package/dist/resolution/session.mjs +331 -0
  428. package/dist/resolution/session.mjs.map +1 -0
  429. package/dist/rollback.cjs +131 -0
  430. package/dist/rollback.cjs.map +1 -0
  431. package/dist/rollback.mjs +128 -0
  432. package/dist/rollback.mjs.map +1 -0
  433. package/dist/sdk.cjs +7 -7
  434. package/dist/sdk.d.cts +3 -3
  435. package/dist/sdk.d.mts +3 -3
  436. package/dist/sdk.mjs +2 -2
  437. package/dist/service-descriptor.cjs +67 -34
  438. package/dist/service-descriptor.cjs.map +1 -1
  439. package/dist/service-descriptor.d.cts +4 -1
  440. package/dist/service-descriptor.d.mts +3 -0
  441. package/dist/service-descriptor.mjs +63 -35
  442. package/dist/service-descriptor.mjs.map +1 -1
  443. package/dist/shared-deps.cjs +17 -16
  444. package/dist/shared-deps.cjs.map +1 -1
  445. package/dist/shared-deps.mjs +17 -16
  446. package/dist/shared-deps.mjs.map +1 -1
  447. package/dist/start-config-source.cjs +24 -0
  448. package/dist/start-config-source.cjs.map +1 -0
  449. package/dist/start-config-source.d.cts +29 -0
  450. package/dist/start-config-source.d.mts +29 -0
  451. package/dist/start-config-source.mjs +22 -0
  452. package/dist/start-config-source.mjs.map +1 -0
  453. package/dist/storage-upload.cjs +145 -0
  454. package/dist/storage-upload.cjs.map +1 -0
  455. package/dist/storage-upload.mjs +143 -0
  456. package/dist/storage-upload.mjs.map +1 -0
  457. package/dist/types.cjs +126 -20
  458. package/dist/types.cjs.map +1 -1
  459. package/dist/types.d.cts +867 -585
  460. package/dist/types.d.mts +867 -585
  461. package/dist/types.mjs +307 -208
  462. package/dist/types.mjs.map +1 -1
  463. package/dist/ui/api.cjs +105 -0
  464. package/dist/ui/api.cjs.map +1 -0
  465. package/dist/ui/api.d.cts +31 -0
  466. package/dist/ui/api.d.mts +31 -0
  467. package/dist/ui/api.mjs +99 -0
  468. package/dist/ui/api.mjs.map +1 -0
  469. package/dist/ui/auth-guards.cjs +50 -0
  470. package/dist/ui/auth-guards.cjs.map +1 -0
  471. package/dist/ui/auth-guards.d.cts +39 -0
  472. package/dist/ui/auth-guards.d.mts +39 -0
  473. package/dist/ui/auth-guards.mjs +48 -0
  474. package/dist/ui/auth-guards.mjs.map +1 -0
  475. package/dist/ui/auth.cjs +197 -0
  476. package/dist/ui/auth.cjs.map +1 -0
  477. package/dist/ui/auth.d.cts +56 -0
  478. package/dist/ui/auth.d.mts +56 -0
  479. package/dist/ui/auth.mjs +179 -0
  480. package/dist/ui/auth.mjs.map +1 -0
  481. package/dist/ui/entry.cjs +16 -0
  482. package/dist/ui/entry.cjs.map +1 -0
  483. package/dist/ui/entry.d.cts +12 -0
  484. package/dist/ui/entry.d.mts +12 -0
  485. package/dist/ui/entry.mjs +15 -0
  486. package/dist/ui/entry.mjs.map +1 -0
  487. package/dist/ui/head.cjs +14 -7
  488. package/dist/ui/head.cjs.map +1 -1
  489. package/dist/ui/head.mjs +15 -7
  490. package/dist/ui/head.mjs.map +1 -1
  491. package/dist/ui/hydrate.cjs +265 -0
  492. package/dist/ui/hydrate.cjs.map +1 -0
  493. package/dist/ui/hydrate.d.cts +48 -0
  494. package/dist/ui/hydrate.d.mts +48 -0
  495. package/dist/ui/hydrate.mjs +263 -0
  496. package/dist/ui/hydrate.mjs.map +1 -0
  497. package/dist/ui/i18n.cjs +153 -0
  498. package/dist/ui/i18n.cjs.map +1 -0
  499. package/dist/ui/i18n.d.cts +29 -0
  500. package/dist/ui/i18n.d.mts +29 -0
  501. package/dist/ui/i18n.mjs +140 -0
  502. package/dist/ui/i18n.mjs.map +1 -0
  503. package/dist/ui/index.cjs +19 -1
  504. package/dist/ui/index.d.cts +6 -3
  505. package/dist/ui/index.d.mts +6 -3
  506. package/dist/ui/index.mjs +5 -2
  507. package/dist/ui/locale.cjs +53 -0
  508. package/dist/ui/locale.cjs.map +1 -0
  509. package/dist/ui/locale.d.cts +18 -0
  510. package/dist/ui/locale.d.mts +18 -0
  511. package/dist/ui/locale.mjs +49 -0
  512. package/dist/ui/locale.mjs.map +1 -0
  513. package/dist/ui/manifest/index.cjs +25 -0
  514. package/dist/ui/manifest/index.cjs.map +1 -0
  515. package/dist/ui/manifest/index.d.cts +9 -0
  516. package/dist/ui/manifest/index.d.mts +9 -0
  517. package/dist/ui/manifest/index.mjs +13 -0
  518. package/dist/ui/manifest/index.mjs.map +1 -0
  519. package/dist/ui/manifest-generator.cjs +8 -0
  520. package/dist/ui/manifest-generator.d.cts +1 -0
  521. package/dist/ui/manifest-generator.d.mts +1 -0
  522. package/dist/ui/manifest-generator.mjs +3 -0
  523. package/dist/ui/message-catalogs.cjs +8 -0
  524. package/dist/ui/message-catalogs.cjs.map +1 -0
  525. package/dist/ui/message-catalogs.d.cts +5 -0
  526. package/dist/ui/message-catalogs.d.mts +5 -0
  527. package/dist/ui/message-catalogs.mjs +8 -0
  528. package/dist/ui/message-catalogs.mjs.map +1 -0
  529. package/dist/ui/metadata.cjs +0 -1
  530. package/dist/ui/metadata.cjs.map +1 -1
  531. package/dist/ui/metadata.d.cts +1 -1
  532. package/dist/ui/metadata.d.mts +1 -1
  533. package/dist/ui/plugin-path.cjs +37 -0
  534. package/dist/ui/plugin-path.cjs.map +1 -0
  535. package/dist/ui/plugin-path.d.cts +25 -0
  536. package/dist/ui/plugin-path.d.mts +25 -0
  537. package/dist/ui/plugin-path.mjs +35 -0
  538. package/dist/ui/plugin-path.mjs.map +1 -0
  539. package/dist/ui/router-client.cjs +61 -0
  540. package/dist/ui/router-client.cjs.map +1 -0
  541. package/dist/ui/router-client.d.cts +20 -0
  542. package/dist/ui/router-client.d.mts +20 -0
  543. package/dist/ui/router-client.mjs +60 -0
  544. package/dist/ui/router-client.mjs.map +1 -0
  545. package/dist/ui/router-defaults.cjs +48 -0
  546. package/dist/ui/router-defaults.cjs.map +1 -0
  547. package/dist/ui/router-defaults.d.cts +8 -0
  548. package/dist/ui/router-defaults.d.mts +8 -0
  549. package/dist/ui/router-defaults.mjs +45 -0
  550. package/dist/ui/router-defaults.mjs.map +1 -0
  551. package/dist/ui/router-error.cjs +70 -0
  552. package/dist/ui/router-error.cjs.map +1 -0
  553. package/dist/ui/router-error.d.cts +19 -0
  554. package/dist/ui/router-error.d.mts +19 -0
  555. package/dist/ui/router-error.mjs +69 -0
  556. package/dist/ui/router-error.mjs.map +1 -0
  557. package/dist/ui/router-server.cjs +153 -0
  558. package/dist/ui/router-server.cjs.map +1 -0
  559. package/dist/ui/router-server.d.cts +38 -0
  560. package/dist/ui/router-server.d.mts +38 -0
  561. package/dist/ui/router-server.mjs +152 -0
  562. package/dist/ui/router-server.mjs.map +1 -0
  563. package/dist/ui/router.cjs +4 -16
  564. package/dist/ui/router.cjs.map +1 -1
  565. package/dist/ui/router.mjs +4 -15
  566. package/dist/ui/router.mjs.map +1 -1
  567. package/dist/ui/runtime.cjs +5 -1
  568. package/dist/ui/runtime.cjs.map +1 -1
  569. package/dist/ui/runtime.d.cts +2 -1
  570. package/dist/ui/runtime.d.mts +2 -1
  571. package/dist/ui/runtime.mjs +5 -1
  572. package/dist/ui/runtime.mjs.map +1 -1
  573. package/dist/ui/slot.cjs +34 -0
  574. package/dist/ui/slot.cjs.map +1 -0
  575. package/dist/ui/slot.d.cts +43 -0
  576. package/dist/ui/slot.d.mts +43 -0
  577. package/dist/ui/slot.mjs +34 -0
  578. package/dist/ui/slot.mjs.map +1 -0
  579. package/dist/ui/tenant.cjs +300 -0
  580. package/dist/ui/tenant.cjs.map +1 -0
  581. package/dist/ui/tenant.d.cts +122 -0
  582. package/dist/ui/tenant.d.mts +122 -0
  583. package/dist/ui/tenant.mjs +279 -0
  584. package/dist/ui/tenant.mjs.map +1 -0
  585. package/dist/ui/types.d.cts +32 -2
  586. package/dist/ui/types.d.mts +32 -2
  587. package/dist/ui/version-check.cjs +47 -0
  588. package/dist/ui/version-check.cjs.map +1 -0
  589. package/dist/ui/version-check.d.cts +23 -0
  590. package/dist/ui/version-check.d.mts +23 -0
  591. package/dist/ui/version-check.mjs +46 -0
  592. package/dist/ui/version-check.mjs.map +1 -0
  593. package/dist/utils/banner.cjs +2 -2
  594. package/dist/utils/banner.cjs.map +1 -1
  595. package/dist/utils/banner.mjs +2 -2
  596. package/dist/utils/banner.mjs.map +1 -1
  597. package/dist/utils/linkify.cjs +1 -1
  598. package/dist/utils/linkify.cjs.map +1 -1
  599. package/dist/utils/linkify.mjs +1 -0
  600. package/dist/utils/linkify.mjs.map +1 -1
  601. package/dist/utils/run.cjs +6 -6
  602. package/dist/utils/run.cjs.map +1 -1
  603. package/dist/utils/run.mjs +6 -6
  604. package/dist/utils/run.mjs.map +1 -1
  605. package/dist/utils/save-config.cjs +12 -0
  606. package/dist/utils/save-config.cjs.map +1 -1
  607. package/dist/utils/save-config.mjs +12 -0
  608. package/dist/utils/save-config.mjs.map +1 -1
  609. package/dist/utils/snapshot-hash.cjs +10 -0
  610. package/dist/utils/snapshot-hash.cjs.map +1 -0
  611. package/dist/utils/snapshot-hash.mjs +10 -0
  612. package/dist/utils/snapshot-hash.mjs.map +1 -0
  613. package/dist/utils/string.cjs +0 -1
  614. package/dist/utils/string.cjs.map +1 -1
  615. package/dist/utils/theme.cjs +30 -12
  616. package/dist/utils/theme.cjs.map +1 -1
  617. package/dist/utils/theme.mjs +30 -11
  618. package/dist/utils/theme.mjs.map +1 -1
  619. package/dist/version-manifest-deploy.cjs +50 -0
  620. package/dist/version-manifest-deploy.cjs.map +1 -0
  621. package/dist/version-manifest-deploy.mjs +49 -0
  622. package/dist/version-manifest-deploy.mjs.map +1 -0
  623. package/dist/version-manifest-resolve.cjs +42 -0
  624. package/dist/version-manifest-resolve.cjs.map +1 -0
  625. package/dist/version-manifest-resolve.d.cts +38 -0
  626. package/dist/version-manifest-resolve.d.mts +38 -0
  627. package/dist/version-manifest-resolve.mjs +40 -0
  628. package/dist/version-manifest-resolve.mjs.map +1 -0
  629. package/dist/version-status.cjs +18 -0
  630. package/dist/version-status.cjs.map +1 -0
  631. package/dist/version-status.d.cts +22 -0
  632. package/dist/version-status.d.mts +22 -0
  633. package/dist/version-status.mjs +17 -0
  634. package/dist/version-status.mjs.map +1 -0
  635. package/dist/workspace-catalog.cjs +53 -0
  636. package/dist/workspace-catalog.cjs.map +1 -0
  637. package/dist/workspace-catalog.mjs +51 -0
  638. package/dist/workspace-catalog.mjs.map +1 -0
  639. package/dist/workspace.cjs +237 -0
  640. package/dist/workspace.cjs.map +1 -0
  641. package/dist/workspace.mjs +233 -0
  642. package/dist/workspace.mjs.map +1 -0
  643. package/package.json +179 -27
  644. package/skills/add-a-route/SKILL.md +132 -0
  645. package/skills/api-and-auth/SKILL.md +87 -21
  646. package/skills/api-and-auth/references/middleware.md +1 -1
  647. package/skills/cli-reference/SKILL.md +48 -21
  648. package/skills/code-style/SKILL.md +8 -0
  649. package/skills/dev-workflow/SKILL.md +50 -26
  650. package/skills/extends-config/SKILL.md +31 -19
  651. package/skills/init-upgrade/SKILL.md +29 -16
  652. package/skills/plugin-development/SKILL.md +46 -112
  653. package/skills/plugin-development/references/database.md +82 -0
  654. package/skills/plugin-development/references/request-context.md +67 -0
  655. package/skills/publish-sync/SKILL.md +99 -22
  656. package/skills/registry/SKILL.md +82 -0
  657. package/skills/super-app/SKILL.md +25 -15
  658. package/skills/talk-to-the-app/SKILL.md +138 -0
  659. package/skills/ui-integration/SKILL.md +93 -11
  660. package/dist/cli/db-studio.cjs +0 -131
  661. package/dist/cli/db-studio.cjs.map +0 -1
  662. package/dist/cli/db-studio.mjs +0 -127
  663. package/dist/cli/db-studio.mjs.map +0 -1
  664. package/dist/cli/init.d.cts.map +0 -1
  665. package/dist/cli/init.d.mts.map +0 -1
  666. package/dist/components/dev-view.cjs +0 -309
  667. package/dist/components/dev-view.cjs.map +0 -1
  668. package/dist/components/dev-view.mjs +0 -309
  669. package/dist/components/dev-view.mjs.map +0 -1
  670. package/dist/components/streaming-view.cjs +0 -134
  671. package/dist/components/streaming-view.cjs.map +0 -1
  672. package/dist/components/streaming-view.mjs +0 -132
  673. package/dist/components/streaming-view.mjs.map +0 -1
  674. package/dist/config.d.cts.map +0 -1
  675. package/dist/config.d.mts.map +0 -1
  676. package/dist/contract.d.cts.map +0 -1
  677. package/dist/contract.d.mts.map +0 -1
  678. package/dist/contract.meta.d.cts.map +0 -1
  679. package/dist/contract.meta.d.mts.map +0 -1
  680. package/dist/dag.d.cts.map +0 -1
  681. package/dist/dag.d.mts.map +0 -1
  682. package/dist/db.cjs +0 -81
  683. package/dist/db.cjs.map +0 -1
  684. package/dist/db.d.cts +0 -30
  685. package/dist/db.d.cts.map +0 -1
  686. package/dist/db.d.mts +0 -30
  687. package/dist/db.d.mts.map +0 -1
  688. package/dist/db.mjs +0 -75
  689. package/dist/db.mjs.map +0 -1
  690. package/dist/fastkv.d.cts.map +0 -1
  691. package/dist/fastkv.d.mts.map +0 -1
  692. package/dist/integrity.d.cts.map +0 -1
  693. package/dist/integrity.d.mts.map +0 -1
  694. package/dist/merge.d.cts.map +0 -1
  695. package/dist/merge.d.mts.map +0 -1
  696. package/dist/mf.d.cts.map +0 -1
  697. package/dist/mf.d.mts.map +0 -1
  698. package/dist/plugin.d.cts.map +0 -1
  699. package/dist/plugin.d.mts.map +0 -1
  700. package/dist/service-descriptor.d.cts.map +0 -1
  701. package/dist/service-descriptor.d.mts.map +0 -1
  702. package/dist/types.d.cts.map +0 -1
  703. package/dist/types.d.mts.map +0 -1
  704. package/dist/ui/head.d.cts.map +0 -1
  705. package/dist/ui/head.d.mts.map +0 -1
  706. package/dist/ui/metadata.d.cts.map +0 -1
  707. package/dist/ui/metadata.d.mts.map +0 -1
  708. package/dist/ui/router.d.cts.map +0 -1
  709. package/dist/ui/router.d.mts.map +0 -1
  710. package/dist/ui/runtime.d.cts.map +0 -1
  711. package/dist/ui/runtime.d.mts.map +0 -1
  712. package/dist/ui/types.d.cts.map +0 -1
  713. package/dist/ui/types.d.mts.map +0 -1
@@ -0,0 +1,105 @@
1
+ import { BosConfig, BosConfigInput, RuntimeConfig } from "../types.cjs";
2
+ import { BosEnv } from "../merge.cjs";
3
+ import "../config.cjs";
4
+ //#region src/resolution/session.d.ts
5
+ interface ResolutionRequest {
6
+ cwd?: string;
7
+ path?: string;
8
+ bosUrl?: string;
9
+ account?: string;
10
+ gateway?: string;
11
+ registry?: string;
12
+ sourceDir?: string;
13
+ env?: BosEnv;
14
+ remotePlugins?: string[];
15
+ collectCatalogs?: boolean;
16
+ }
17
+ interface ResolutionIo {
18
+ fetchBosConfig?(bosUrl: string, registry?: string): Promise<unknown>;
19
+ readFileOrNull?(path: string): Promise<string | null>;
20
+ importModule?(path: string): Promise<Record<string, unknown>>;
21
+ }
22
+ interface RuntimeSources {
23
+ uiSource?: "local" | "remote";
24
+ apiSource?: "local" | "remote";
25
+ authSource?: "local" | "remote";
26
+ hostSource?: "local" | "remote";
27
+ env?: "development" | "production";
28
+ plugins?: Record<string, unknown>;
29
+ }
30
+ interface WalkLink {
31
+ ref: string;
32
+ config: BosConfigInput;
33
+ baseDir: string;
34
+ sourceDir?: string;
35
+ isLeaf: boolean;
36
+ }
37
+ interface SessionParts {
38
+ config: BosConfig;
39
+ runtime: RuntimeConfig;
40
+ root: string;
41
+ path: string | null;
42
+ chain: string[];
43
+ rawConfig: BosConfigInput | null;
44
+ catalog: Record<string, string> | null;
45
+ repository: string | undefined;
46
+ env: BosEnv;
47
+ warnings: string[];
48
+ }
49
+ declare class ResolutionSession {
50
+ #private;
51
+ readonly config: BosConfig | null;
52
+ readonly runtime: RuntimeConfig | null;
53
+ readonly root: string;
54
+ readonly path: string | null;
55
+ readonly chain: readonly string[];
56
+ readonly rawConfig: BosConfigInput | null;
57
+ readonly catalog: Record<string, string> | null;
58
+ readonly repository: string | undefined;
59
+ constructor(parts: SessionParts);
60
+ static fromParts(parts: {
61
+ config: BosConfig;
62
+ runtime: RuntimeConfig;
63
+ root: string;
64
+ source?: {
65
+ path?: string;
66
+ extended?: string[];
67
+ remote?: boolean;
68
+ };
69
+ warnings?: string[];
70
+ }): ResolutionSession;
71
+ get warnings(): readonly string[];
72
+ buildRuntime(sources?: RuntimeSources): Promise<RuntimeConfig>;
73
+ }
74
+ /**
75
+ * Opens a resolution session for the requested config source. In development,
76
+ * a local leaf's `bos.dev.ts` overlay (beside the discovered entry config) is
77
+ * merged child-wins over the extended input before parsing; overlays are never
78
+ * read for `bos://` entries or in production/staging.
79
+ */
80
+ declare function openResolution(request?: ResolutionRequest, io?: ResolutionIo): Promise<ResolutionSession | null>;
81
+ declare function walkExtendsChain(entry: string, options: {
82
+ env?: BosEnv;
83
+ io?: ResolutionIo;
84
+ registry?: string;
85
+ collectCatalogs?: boolean;
86
+ visit(link: WalkLink): Promise<void>;
87
+ registerCleanup?(fn: () => Promise<void>): void;
88
+ }): Promise<{
89
+ chain: string[];
90
+ config: BosConfigInput;
91
+ }>;
92
+ /**
93
+ * @internal — resolves the fully merged (parent-merged, un-parsed)
94
+ * `BosConfigInput` for a config entry. Used by config.ts's
95
+ * `resolveComposableReference` for plugin-entry extends resolution.
96
+ */
97
+ declare function resolveMergedConfigInput(entry: string, options?: {
98
+ baseDir?: string;
99
+ env?: BosEnv;
100
+ io?: ResolutionIo;
101
+ registry?: string;
102
+ }): Promise<BosConfigInput>;
103
+ //#endregion
104
+ export { ResolutionIo, ResolutionRequest, ResolutionSession, RuntimeSources, WalkLink, openResolution, resolveMergedConfigInput, walkExtendsChain };
105
+ //# sourceMappingURL=session.d.cts.map
@@ -0,0 +1,105 @@
1
+ import { BosConfig, BosConfigInput, RuntimeConfig } from "../types.mjs";
2
+ import { BosEnv } from "../merge.mjs";
3
+ import "../config.mjs";
4
+ //#region src/resolution/session.d.ts
5
+ interface ResolutionRequest {
6
+ cwd?: string;
7
+ path?: string;
8
+ bosUrl?: string;
9
+ account?: string;
10
+ gateway?: string;
11
+ registry?: string;
12
+ sourceDir?: string;
13
+ env?: BosEnv;
14
+ remotePlugins?: string[];
15
+ collectCatalogs?: boolean;
16
+ }
17
+ interface ResolutionIo {
18
+ fetchBosConfig?(bosUrl: string, registry?: string): Promise<unknown>;
19
+ readFileOrNull?(path: string): Promise<string | null>;
20
+ importModule?(path: string): Promise<Record<string, unknown>>;
21
+ }
22
+ interface RuntimeSources {
23
+ uiSource?: "local" | "remote";
24
+ apiSource?: "local" | "remote";
25
+ authSource?: "local" | "remote";
26
+ hostSource?: "local" | "remote";
27
+ env?: "development" | "production";
28
+ plugins?: Record<string, unknown>;
29
+ }
30
+ interface WalkLink {
31
+ ref: string;
32
+ config: BosConfigInput;
33
+ baseDir: string;
34
+ sourceDir?: string;
35
+ isLeaf: boolean;
36
+ }
37
+ interface SessionParts {
38
+ config: BosConfig;
39
+ runtime: RuntimeConfig;
40
+ root: string;
41
+ path: string | null;
42
+ chain: string[];
43
+ rawConfig: BosConfigInput | null;
44
+ catalog: Record<string, string> | null;
45
+ repository: string | undefined;
46
+ env: BosEnv;
47
+ warnings: string[];
48
+ }
49
+ declare class ResolutionSession {
50
+ #private;
51
+ readonly config: BosConfig | null;
52
+ readonly runtime: RuntimeConfig | null;
53
+ readonly root: string;
54
+ readonly path: string | null;
55
+ readonly chain: readonly string[];
56
+ readonly rawConfig: BosConfigInput | null;
57
+ readonly catalog: Record<string, string> | null;
58
+ readonly repository: string | undefined;
59
+ constructor(parts: SessionParts);
60
+ static fromParts(parts: {
61
+ config: BosConfig;
62
+ runtime: RuntimeConfig;
63
+ root: string;
64
+ source?: {
65
+ path?: string;
66
+ extended?: string[];
67
+ remote?: boolean;
68
+ };
69
+ warnings?: string[];
70
+ }): ResolutionSession;
71
+ get warnings(): readonly string[];
72
+ buildRuntime(sources?: RuntimeSources): Promise<RuntimeConfig>;
73
+ }
74
+ /**
75
+ * Opens a resolution session for the requested config source. In development,
76
+ * a local leaf's `bos.dev.ts` overlay (beside the discovered entry config) is
77
+ * merged child-wins over the extended input before parsing; overlays are never
78
+ * read for `bos://` entries or in production/staging.
79
+ */
80
+ declare function openResolution(request?: ResolutionRequest, io?: ResolutionIo): Promise<ResolutionSession | null>;
81
+ declare function walkExtendsChain(entry: string, options: {
82
+ env?: BosEnv;
83
+ io?: ResolutionIo;
84
+ registry?: string;
85
+ collectCatalogs?: boolean;
86
+ visit(link: WalkLink): Promise<void>;
87
+ registerCleanup?(fn: () => Promise<void>): void;
88
+ }): Promise<{
89
+ chain: string[];
90
+ config: BosConfigInput;
91
+ }>;
92
+ /**
93
+ * @internal — resolves the fully merged (parent-merged, un-parsed)
94
+ * `BosConfigInput` for a config entry. Used by config.ts's
95
+ * `resolveComposableReference` for plugin-entry extends resolution.
96
+ */
97
+ declare function resolveMergedConfigInput(entry: string, options?: {
98
+ baseDir?: string;
99
+ env?: BosEnv;
100
+ io?: ResolutionIo;
101
+ registry?: string;
102
+ }): Promise<BosConfigInput>;
103
+ //#endregion
104
+ export { ResolutionIo, ResolutionRequest, ResolutionSession, RuntimeSources, WalkLink, openResolution, resolveMergedConfigInput, walkExtendsChain };
105
+ //# sourceMappingURL=session.d.mts.map
@@ -0,0 +1,331 @@
1
+ import { mergeBosConfigWithExtends, resolveExtendsRef } from "../merge.mjs";
2
+ import { BosConfigSchema } from "../types.mjs";
3
+ import { applyDevOverlay } from "../descriptor/resolve.mjs";
4
+ import { fetchBosConfigFromFastKv } from "../fastkv.mjs";
5
+ import { CircularExtendsError, ConfigExtendsError, ConfigLoadError, ConfigNotfoundError, DEV_OVERLAY_FILENAME, buildRuntimeConfig, buildRuntimePluginsForConfig, defaultConfigEnv, findConfigPath, getConfigBaseDir, isAppDescriptorPath, loadAppDescriptorConfig, parseAppDescriptorModule, parseDevOverlayModule, parseExtendsTarget, resolveConfigComposableEntries, runWithConfigWarningSink } from "../config.mjs";
6
+ import { parseBosRef } from "../cli/utils/helpers.mjs";
7
+ import { readWorkspaceCatalog, resolveSourceDir } from "../cli/init.mjs";
8
+ import { existsSync, readFileSync } from "node:fs";
9
+ import { dirname, isAbsolute, join, resolve } from "node:path";
10
+ import { pathToFileURL } from "node:url";
11
+
12
+ //#region src/resolution/session.ts
13
+ async function defaultImportModule(path) {
14
+ return import(
15
+ /* webpackIgnore: true */
16
+ pathToFileURL(path).href
17
+ );
18
+ }
19
+ function resolveIo(io) {
20
+ return {
21
+ fetchBosConfig: io?.fetchBosConfig ?? (async (bosUrl, registry) => fetchBosConfigFromFastKv(bosUrl, registry)),
22
+ readFileOrNull: io?.readFileOrNull ?? (async (path) => existsSync(path) ? readFileSync(path, "utf-8") : null),
23
+ importModule: io?.importModule ?? defaultImportModule
24
+ };
25
+ }
26
+ async function loadNodeConfig(ref, baseDir, io, registry) {
27
+ if (ref.startsWith("bos://")) return await io.fetchBosConfig(ref, registry);
28
+ const resolvedPath = isAbsolute(ref) ? ref : resolve(baseDir, ref);
29
+ if (isAppDescriptorPath(resolvedPath)) return io.importModule === defaultImportModule ? loadAppDescriptorConfig(resolvedPath) : parseAppDescriptorModule(await io.importModule(resolvedPath), resolvedPath);
30
+ const content = await io.readFileOrNull(resolvedPath);
31
+ if (content === null) throw new ConfigLoadError({
32
+ path: resolvedPath,
33
+ message: `Config file not found: ${resolvedPath}`
34
+ });
35
+ return JSON.parse(content);
36
+ }
37
+ async function walkExtends(ref, baseDir, visited, chain, options) {
38
+ if (visited.has(ref)) throw new CircularExtendsError({
39
+ chain: [...visited, ref],
40
+ message: `Circular extends detected: ${[...visited, ref].join(" -> ")}`
41
+ });
42
+ let config;
43
+ let nodeBaseDir = baseDir;
44
+ let sourceDir;
45
+ if (ref.startsWith("bos://") && options.collectCatalogs) {
46
+ const parsed = parseBosRef(ref);
47
+ if (!parsed) throw new ConfigLoadError({
48
+ path: ref,
49
+ message: `Invalid bos ref: ${ref}`
50
+ });
51
+ const sourceResult = await resolveSourceDir({
52
+ extendsAccount: parsed.account,
53
+ extendsGateway: parsed.gateway
54
+ });
55
+ config = sourceResult.parentConfig;
56
+ sourceDir = sourceResult.sourceDir || void 0;
57
+ options.registerCleanup?.(sourceResult.cleanup);
58
+ nodeBaseDir = sourceDir ?? baseDir;
59
+ } else if (ref.startsWith("bos://")) config = await loadNodeConfig(ref, baseDir, options.io, options.registry);
60
+ else {
61
+ const resolvedPath = isAbsolute(ref) ? ref : resolve(baseDir, ref);
62
+ nodeBaseDir = dirname(resolvedPath);
63
+ config = await loadNodeConfig(ref, nodeBaseDir, options.io, options.registry);
64
+ }
65
+ chain.push(ref);
66
+ const extendsRef = config.extends ? resolveExtendsRef(config.extends, options.env) : void 0;
67
+ if (!extendsRef) {
68
+ await options.visit?.({
69
+ ref,
70
+ config,
71
+ baseDir: nodeBaseDir,
72
+ sourceDir,
73
+ isLeaf: true
74
+ });
75
+ return config;
76
+ }
77
+ const parsedParentRef = parseExtendsTarget(extendsRef);
78
+ const parentBaseDir = getConfigBaseDir(parsedParentRef.configPath, nodeBaseDir);
79
+ if (options.collectCatalogs && !canResolveExtendsRef(parsedParentRef.configPath, sourceDir ?? nodeBaseDir)) {
80
+ await options.visit?.({
81
+ ref,
82
+ config,
83
+ baseDir: nodeBaseDir,
84
+ sourceDir,
85
+ isLeaf: true
86
+ });
87
+ return config;
88
+ }
89
+ const nextVisited = new Set(visited);
90
+ nextVisited.add(ref);
91
+ const parent = await walkExtends(parsedParentRef.configPath, parentBaseDir, nextVisited, chain, options);
92
+ await options.visit?.({
93
+ ref,
94
+ config,
95
+ baseDir: nodeBaseDir,
96
+ sourceDir,
97
+ isLeaf: false
98
+ });
99
+ return mergeBosConfigWithExtends(parent, config);
100
+ }
101
+ function canResolveExtendsRef(parentRef, baseDir) {
102
+ if (parentRef.startsWith("bos://")) return parseBosRef(parentRef) !== null;
103
+ if (!baseDir) return false;
104
+ return existsSync(resolve(baseDir, parentRef));
105
+ }
106
+ function dispatchEntry(request, cwd) {
107
+ if (request?.path) {
108
+ const configPath = request.path;
109
+ if (configPath.startsWith("bos://")) return {
110
+ entry: configPath,
111
+ baseDir: cwd,
112
+ root: cwd,
113
+ path: configPath,
114
+ remote: true
115
+ };
116
+ const baseDir = dirname(configPath);
117
+ return {
118
+ entry: configPath,
119
+ baseDir,
120
+ root: baseDir,
121
+ path: configPath,
122
+ remote: false
123
+ };
124
+ }
125
+ if (request?.bosUrl) return {
126
+ entry: request.bosUrl,
127
+ baseDir: cwd,
128
+ root: cwd,
129
+ path: null,
130
+ remote: true
131
+ };
132
+ if (request?.account) {
133
+ if (!request.gateway) throw new ConfigExtendsError({ message: `Remote account "${request.account}" requires a gateway` });
134
+ return {
135
+ entry: `bos://${request.account}/${request.gateway}`,
136
+ baseDir: cwd,
137
+ root: cwd,
138
+ path: null,
139
+ remote: true
140
+ };
141
+ }
142
+ if (request?.sourceDir) {
143
+ const sourceRoot = resolve(request.sourceDir);
144
+ const configPath = findConfigPath(sourceRoot);
145
+ if (!configPath) return null;
146
+ return {
147
+ entry: configPath,
148
+ baseDir: dirname(configPath),
149
+ root: sourceRoot,
150
+ path: configPath,
151
+ remote: false
152
+ };
153
+ }
154
+ const configPath = findConfigPath(cwd);
155
+ if (!configPath) return null;
156
+ const baseDir = dirname(configPath);
157
+ return {
158
+ entry: configPath,
159
+ baseDir,
160
+ root: baseDir,
161
+ path: configPath,
162
+ remote: false
163
+ };
164
+ }
165
+ function isConfigNotFound(error) {
166
+ return error instanceof Error && error.message.startsWith("No config found for ");
167
+ }
168
+ var ResolutionSession = class ResolutionSession {
169
+ config;
170
+ runtime;
171
+ root;
172
+ path;
173
+ chain;
174
+ rawConfig;
175
+ catalog;
176
+ repository;
177
+ #env;
178
+ #warnings;
179
+ constructor(parts) {
180
+ this.config = parts.config;
181
+ this.runtime = parts.runtime;
182
+ this.root = parts.root;
183
+ this.path = parts.path;
184
+ this.chain = parts.chain;
185
+ this.rawConfig = parts.rawConfig;
186
+ this.catalog = parts.catalog;
187
+ this.repository = parts.repository;
188
+ this.#env = parts.env;
189
+ this.#warnings = parts.warnings;
190
+ }
191
+ static fromParts(parts) {
192
+ return new ResolutionSession({
193
+ config: parts.config,
194
+ runtime: parts.runtime,
195
+ root: parts.root,
196
+ path: parts.source?.path ?? null,
197
+ chain: parts.source?.extended ?? [],
198
+ rawConfig: null,
199
+ catalog: null,
200
+ repository: void 0,
201
+ env: defaultConfigEnv(),
202
+ warnings: [...parts.warnings ?? []]
203
+ });
204
+ }
205
+ get warnings() {
206
+ const drained = [...this.#warnings];
207
+ this.#warnings.length = 0;
208
+ return drained;
209
+ }
210
+ async buildRuntime(sources) {
211
+ if (!this.config) throw new ConfigNotfoundError({ message: "No config loaded in this resolution session" });
212
+ const config = this.config;
213
+ const env = sources?.env ?? this.#env;
214
+ return runWithConfigWarningSink(this.#warnings, () => buildRuntimeConfig(config, this.root, env, {
215
+ plugins: sources?.plugins ?? {},
216
+ uiSource: sources?.uiSource,
217
+ apiSource: sources?.apiSource,
218
+ authSource: sources?.authSource,
219
+ hostSource: sources?.hostSource
220
+ }));
221
+ }
222
+ };
223
+ /**
224
+ * Opens a resolution session for the requested config source. In development,
225
+ * a local leaf's `bos.dev.ts` overlay (beside the discovered entry config) is
226
+ * merged child-wins over the extended input before parsing; overlays are never
227
+ * read for `bos://` entries or in production/staging.
228
+ */
229
+ async function openResolution(request, io) {
230
+ const resolvedIo = resolveIo(io);
231
+ const env = request?.env ?? defaultConfigEnv();
232
+ const runtimeEnv = env === "staging" ? "production" : env;
233
+ const cwd = request?.cwd ?? process.cwd();
234
+ const collectCatalogs = request?.collectCatalogs === true;
235
+ const warnings = [];
236
+ const cleanups = [];
237
+ try {
238
+ const parts = await runWithConfigWarningSink(warnings, async () => {
239
+ const dispatch = dispatchEntry(request, cwd);
240
+ if (!dispatch) return null;
241
+ const chain = [];
242
+ const catalogs = [];
243
+ let repository;
244
+ let rawConfig;
245
+ try {
246
+ const mergedRaw = await walkExtends(dispatch.entry, dispatch.baseDir, /* @__PURE__ */ new Set(), chain, {
247
+ env,
248
+ registry: request?.registry,
249
+ io: resolvedIo,
250
+ collectCatalogs,
251
+ registerCleanup: (fn) => cleanups.push(fn),
252
+ visit: async (link) => {
253
+ if (link.ref === dispatch.entry) rawConfig = link.config;
254
+ if (!collectCatalogs) return;
255
+ catalogs.push(link.sourceDir ? readWorkspaceCatalog(link.sourceDir) : {});
256
+ const repositoryValue = link.config.repository;
257
+ if (typeof repositoryValue === "string") repository = repositoryValue;
258
+ }
259
+ });
260
+ let overlayMerged = mergedRaw;
261
+ if (env === "development" && !dispatch.remote) {
262
+ const overlayPath = join(dirname(dispatch.entry), DEV_OVERLAY_FILENAME);
263
+ if (await resolvedIo.readFileOrNull(overlayPath) !== null) {
264
+ const overlay = parseDevOverlayModule(await resolvedIo.importModule(overlayPath), overlayPath);
265
+ overlayMerged = applyDevOverlay(mergedRaw, overlay);
266
+ }
267
+ }
268
+ const config = await resolveConfigComposableEntries(BosConfigSchema.parse(overlayMerged), dispatch.baseDir, runtimeEnv);
269
+ const pluginRuntime = await buildRuntimePluginsForConfig(config, dispatch.baseDir, runtimeEnv, request?.remotePlugins) ?? {};
270
+ return {
271
+ config,
272
+ runtime: await buildRuntimeConfig(config, dispatch.baseDir, runtimeEnv, { plugins: pluginRuntime }),
273
+ root: dispatch.root,
274
+ path: dispatch.path,
275
+ chain,
276
+ rawConfig: rawConfig ?? null,
277
+ catalog: collectCatalogs ? Object.assign({}, ...[...catalogs].reverse()) : null,
278
+ repository
279
+ };
280
+ } catch (error) {
281
+ if (dispatch.remote && isConfigNotFound(error)) return null;
282
+ throw error;
283
+ }
284
+ });
285
+ if (!parts) return null;
286
+ return new ResolutionSession({
287
+ ...parts,
288
+ env: runtimeEnv,
289
+ warnings
290
+ });
291
+ } finally {
292
+ for (const cleanup of [...cleanups].reverse()) await cleanup();
293
+ }
294
+ }
295
+ async function walkExtendsChain(entry, options) {
296
+ const baseDir = entry.startsWith("bos://") ? process.cwd() : dirname(entry);
297
+ const chain = [];
298
+ const ownedCleanups = [];
299
+ try {
300
+ return {
301
+ chain,
302
+ config: await walkExtends(entry, baseDir, /* @__PURE__ */ new Set(), chain, {
303
+ env: options.env ?? "development",
304
+ registry: options.registry,
305
+ io: resolveIo(options.io),
306
+ collectCatalogs: options.collectCatalogs === true,
307
+ visit: options.visit,
308
+ registerCleanup: options.registerCleanup ?? ((fn) => ownedCleanups.push(fn))
309
+ })
310
+ };
311
+ } finally {
312
+ for (const cleanup of [...ownedCleanups].reverse()) await cleanup();
313
+ }
314
+ }
315
+ /**
316
+ * @internal — resolves the fully merged (parent-merged, un-parsed)
317
+ * `BosConfigInput` for a config entry. Used by config.ts's
318
+ * `resolveComposableReference` for plugin-entry extends resolution.
319
+ */
320
+ async function resolveMergedConfigInput(entry, options) {
321
+ return walkExtends(entry, options?.baseDir ?? process.cwd(), /* @__PURE__ */ new Set(), [], {
322
+ env: options?.env ?? "development",
323
+ registry: options?.registry,
324
+ io: resolveIo(options?.io),
325
+ collectCatalogs: false
326
+ });
327
+ }
328
+
329
+ //#endregion
330
+ export { ResolutionSession, openResolution, resolveMergedConfigInput, walkExtendsChain };
331
+ //# sourceMappingURL=session.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.mjs","names":[],"sources":["../../src/resolution/session.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { dirname, isAbsolute, join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { readWorkspaceCatalog, resolveSourceDir } from \"../cli/init\";\nimport { parseBosRef } from \"../cli/utils/helpers\";\nimport {\n BosConfigSchema,\n type BosEnv,\n buildRuntimeConfig,\n buildRuntimePluginsForConfig,\n CircularExtendsError,\n ConfigExtendsError,\n ConfigLoadError,\n ConfigNotfoundError,\n DEV_OVERLAY_FILENAME,\n defaultConfigEnv,\n findConfigPath,\n getConfigBaseDir,\n isAppDescriptorPath,\n loadAppDescriptorConfig,\n parseAppDescriptorModule,\n parseDevOverlayModule,\n parseExtendsTarget,\n resolveConfigComposableEntries,\n runWithConfigWarningSink,\n} from \"../config\";\nimport { applyDevOverlay } from \"../descriptor/resolve\";\nimport { fetchBosConfigFromFastKv } from \"../fastkv\";\nimport { mergeBosConfigWithExtends, resolveExtendsRef } from \"../merge\";\nimport type {\n BosConfig,\n BosConfigInput,\n ExtendsConfig,\n RuntimeConfig,\n RuntimePluginConfig,\n} from \"../types\";\n\nexport interface ResolutionRequest {\n cwd?: string;\n path?: string;\n bosUrl?: string;\n account?: string;\n gateway?: string;\n registry?: string;\n sourceDir?: string;\n env?: BosEnv;\n remotePlugins?: string[];\n collectCatalogs?: boolean;\n}\n\nexport interface ResolutionIo {\n fetchBosConfig?(bosUrl: string, registry?: string): Promise<unknown>;\n readFileOrNull?(path: string): Promise<string | null>;\n importModule?(path: string): Promise<Record<string, unknown>>;\n}\n\nexport interface RuntimeSources {\n uiSource?: \"local\" | \"remote\";\n apiSource?: \"local\" | \"remote\";\n authSource?: \"local\" | \"remote\";\n hostSource?: \"local\" | \"remote\";\n env?: \"development\" | \"production\";\n plugins?: Record<string, unknown>;\n}\n\nexport interface WalkLink {\n ref: string;\n config: BosConfigInput;\n baseDir: string;\n sourceDir?: string;\n isLeaf: boolean;\n}\n\ninterface ResolvedIo {\n fetchBosConfig: (bosUrl: string, registry?: string) => Promise<unknown>;\n readFileOrNull: (path: string) => Promise<string | null>;\n importModule: (path: string) => Promise<Record<string, unknown>>;\n}\n\ninterface EntryDispatch {\n entry: string;\n baseDir: string;\n root: string;\n path: string | null;\n remote: boolean;\n}\n\ninterface WalkOptions {\n env: BosEnv;\n registry?: string;\n io: ResolvedIo;\n collectCatalogs: boolean;\n visit?: (link: WalkLink) => Promise<void>;\n registerCleanup?: (fn: () => Promise<void>) => void;\n}\n\ninterface SessionParts {\n config: BosConfig;\n runtime: RuntimeConfig;\n root: string;\n path: string | null;\n chain: string[];\n rawConfig: BosConfigInput | null;\n catalog: Record<string, string> | null;\n repository: string | undefined;\n env: BosEnv;\n warnings: string[];\n}\n\nasync function defaultImportModule(path: string): Promise<Record<string, unknown>> {\n return import(/* webpackIgnore: true */ pathToFileURL(path).href);\n}\n\nfunction resolveIo(io?: ResolutionIo): ResolvedIo {\n return {\n fetchBosConfig:\n io?.fetchBosConfig ??\n (async (bosUrl, registry) => fetchBosConfigFromFastKv(bosUrl, registry)),\n readFileOrNull:\n io?.readFileOrNull ??\n (async (path) => (existsSync(path) ? readFileSync(path, \"utf-8\") : null)),\n importModule: io?.importModule ?? defaultImportModule,\n };\n}\n\nasync function loadNodeConfig(\n ref: string,\n baseDir: string,\n io: ResolvedIo,\n registry?: string,\n): Promise<BosConfigInput> {\n if (ref.startsWith(\"bos://\")) {\n return (await io.fetchBosConfig(ref, registry)) as BosConfigInput;\n }\n\n const resolvedPath = isAbsolute(ref) ? ref : resolve(baseDir, ref);\n if (isAppDescriptorPath(resolvedPath)) {\n return io.importModule === defaultImportModule\n ? loadAppDescriptorConfig(resolvedPath)\n : parseAppDescriptorModule(await io.importModule(resolvedPath), resolvedPath);\n }\n\n const content = await io.readFileOrNull(resolvedPath);\n if (content === null) {\n throw new ConfigLoadError({\n path: resolvedPath,\n message: `Config file not found: ${resolvedPath}`,\n });\n }\n return JSON.parse(content) as BosConfigInput;\n}\n\nasync function walkExtends(\n ref: string,\n baseDir: string,\n visited: Set<string>,\n chain: string[],\n options: WalkOptions,\n): Promise<BosConfigInput> {\n if (visited.has(ref)) {\n throw new CircularExtendsError({\n chain: [...visited, ref],\n message: `Circular extends detected: ${[...visited, ref].join(\" -> \")}`,\n });\n }\n\n let config: BosConfigInput;\n let nodeBaseDir = baseDir;\n let sourceDir: string | undefined;\n\n if (ref.startsWith(\"bos://\") && options.collectCatalogs) {\n const parsed = parseBosRef(ref);\n if (!parsed) {\n throw new ConfigLoadError({ path: ref, message: `Invalid bos ref: ${ref}` });\n }\n const sourceResult = await resolveSourceDir({\n extendsAccount: parsed.account,\n extendsGateway: parsed.gateway,\n });\n config = sourceResult.parentConfig as BosConfigInput;\n sourceDir = sourceResult.sourceDir || undefined;\n options.registerCleanup?.(sourceResult.cleanup);\n nodeBaseDir = sourceDir ?? baseDir;\n } else if (ref.startsWith(\"bos://\")) {\n config = await loadNodeConfig(ref, baseDir, options.io, options.registry);\n } else {\n const resolvedPath = isAbsolute(ref) ? ref : resolve(baseDir, ref);\n nodeBaseDir = dirname(resolvedPath);\n config = await loadNodeConfig(ref, nodeBaseDir, options.io, options.registry);\n }\n\n chain.push(ref);\n\n const extendsRef = config.extends\n ? resolveExtendsRef(config.extends as string | ExtendsConfig, options.env)\n : undefined;\n\n if (!extendsRef) {\n await options.visit?.({ ref, config, baseDir: nodeBaseDir, sourceDir, isLeaf: true });\n return config;\n }\n\n const parsedParentRef = parseExtendsTarget(extendsRef);\n const parentBaseDir = getConfigBaseDir(parsedParentRef.configPath, nodeBaseDir);\n\n if (\n options.collectCatalogs &&\n !canResolveExtendsRef(parsedParentRef.configPath, sourceDir ?? nodeBaseDir)\n ) {\n await options.visit?.({ ref, config, baseDir: nodeBaseDir, sourceDir, isLeaf: true });\n return config;\n }\n\n const nextVisited = new Set(visited);\n nextVisited.add(ref);\n const parent = await walkExtends(\n parsedParentRef.configPath,\n parentBaseDir,\n nextVisited,\n chain,\n options,\n );\n\n await options.visit?.({ ref, config, baseDir: nodeBaseDir, sourceDir, isLeaf: false });\n return mergeBosConfigWithExtends(parent, config);\n}\n\nfunction canResolveExtendsRef(parentRef: string, baseDir: string | undefined): boolean {\n if (parentRef.startsWith(\"bos://\")) {\n return parseBosRef(parentRef) !== null;\n }\n if (!baseDir) {\n return false;\n }\n return existsSync(resolve(baseDir, parentRef));\n}\n\nfunction dispatchEntry(request: ResolutionRequest | undefined, cwd: string): EntryDispatch | null {\n if (request?.path) {\n const configPath = request.path;\n if (configPath.startsWith(\"bos://\")) {\n return { entry: configPath, baseDir: cwd, root: cwd, path: configPath, remote: true };\n }\n const baseDir = dirname(configPath);\n return { entry: configPath, baseDir, root: baseDir, path: configPath, remote: false };\n }\n\n if (request?.bosUrl) {\n return { entry: request.bosUrl, baseDir: cwd, root: cwd, path: null, remote: true };\n }\n\n if (request?.account) {\n if (!request.gateway) {\n throw new ConfigExtendsError({\n message: `Remote account \"${request.account}\" requires a gateway`,\n });\n }\n return {\n entry: `bos://${request.account}/${request.gateway}`,\n baseDir: cwd,\n root: cwd,\n path: null,\n remote: true,\n };\n }\n\n if (request?.sourceDir) {\n const sourceRoot = resolve(request.sourceDir);\n const configPath = findConfigPath(sourceRoot);\n if (!configPath) return null;\n const baseDir = dirname(configPath);\n return { entry: configPath, baseDir, root: sourceRoot, path: configPath, remote: false };\n }\n\n const configPath = findConfigPath(cwd);\n if (!configPath) {\n return null;\n }\n const baseDir = dirname(configPath);\n return { entry: configPath, baseDir, root: baseDir, path: configPath, remote: false };\n}\n\nfunction isConfigNotFound(error: unknown): boolean {\n return error instanceof Error && error.message.startsWith(\"No config found for \");\n}\n\nexport class ResolutionSession {\n readonly config: BosConfig | null;\n readonly runtime: RuntimeConfig | null;\n readonly root: string;\n readonly path: string | null;\n readonly chain: readonly string[];\n readonly rawConfig: BosConfigInput | null;\n readonly catalog: Record<string, string> | null;\n readonly repository: string | undefined;\n\n #env: BosEnv;\n #warnings: string[];\n\n constructor(parts: SessionParts) {\n this.config = parts.config;\n this.runtime = parts.runtime;\n this.root = parts.root;\n this.path = parts.path;\n this.chain = parts.chain;\n this.rawConfig = parts.rawConfig;\n this.catalog = parts.catalog;\n this.repository = parts.repository;\n this.#env = parts.env;\n this.#warnings = parts.warnings;\n }\n\n static fromParts(parts: {\n config: BosConfig;\n runtime: RuntimeConfig;\n root: string;\n source?: { path?: string; extended?: string[]; remote?: boolean };\n warnings?: string[];\n }): ResolutionSession {\n return new ResolutionSession({\n config: parts.config,\n runtime: parts.runtime,\n root: parts.root,\n path: parts.source?.path ?? null,\n chain: parts.source?.extended ?? [],\n rawConfig: null,\n catalog: null,\n repository: undefined,\n env: defaultConfigEnv(),\n warnings: [...(parts.warnings ?? [])],\n });\n }\n\n get warnings(): readonly string[] {\n const drained = [...this.#warnings];\n this.#warnings.length = 0;\n return drained;\n }\n\n async buildRuntime(sources?: RuntimeSources): Promise<RuntimeConfig> {\n if (!this.config) {\n throw new ConfigNotfoundError({\n message: \"No config loaded in this resolution session\",\n });\n }\n const config = this.config;\n const env = sources?.env ?? this.#env;\n return runWithConfigWarningSink(this.#warnings, () =>\n buildRuntimeConfig(config, this.root, env, {\n plugins: (sources?.plugins ?? {}) as Record<string, RuntimePluginConfig>,\n uiSource: sources?.uiSource,\n apiSource: sources?.apiSource,\n authSource: sources?.authSource,\n hostSource: sources?.hostSource,\n }),\n );\n }\n}\n\n/**\n * Opens a resolution session for the requested config source. In development,\n * a local leaf's `bos.dev.ts` overlay (beside the discovered entry config) is\n * merged child-wins over the extended input before parsing; overlays are never\n * read for `bos://` entries or in production/staging.\n */\nexport async function openResolution(\n request?: ResolutionRequest,\n io?: ResolutionIo,\n): Promise<ResolutionSession | null> {\n const resolvedIo = resolveIo(io);\n const env = request?.env ?? defaultConfigEnv();\n const runtimeEnv: BosEnv = env === \"staging\" ? \"production\" : env;\n const cwd = request?.cwd ?? process.cwd();\n const collectCatalogs = request?.collectCatalogs === true;\n\n const warnings: string[] = [];\n const cleanups: Array<() => Promise<void>> = [];\n\n try {\n const parts = await runWithConfigWarningSink(warnings, async () => {\n const dispatch = dispatchEntry(request, cwd);\n if (!dispatch) return null;\n\n const chain: string[] = [];\n const catalogs: Record<string, string>[] = [];\n let repository: string | undefined;\n let rawConfig: BosConfigInput | undefined;\n\n try {\n const mergedRaw = await walkExtends(dispatch.entry, dispatch.baseDir, new Set(), chain, {\n env,\n registry: request?.registry,\n io: resolvedIo,\n collectCatalogs,\n registerCleanup: (fn) => cleanups.push(fn),\n visit: async (link) => {\n if (link.ref === dispatch.entry) {\n rawConfig = link.config;\n }\n if (!collectCatalogs) return;\n catalogs.push(link.sourceDir ? readWorkspaceCatalog(link.sourceDir) : {});\n const repositoryValue = (link.config as Record<string, unknown>).repository;\n if (typeof repositoryValue === \"string\") {\n repository = repositoryValue;\n }\n },\n });\n\n let overlayMerged = mergedRaw;\n if (env === \"development\" && !dispatch.remote) {\n const overlayPath = join(dirname(dispatch.entry), DEV_OVERLAY_FILENAME);\n if ((await resolvedIo.readFileOrNull(overlayPath)) !== null) {\n const overlay = parseDevOverlayModule(\n await resolvedIo.importModule(overlayPath),\n overlayPath,\n );\n overlayMerged = applyDevOverlay(mergedRaw, overlay);\n }\n }\n\n const config = await resolveConfigComposableEntries(\n BosConfigSchema.parse(overlayMerged),\n dispatch.baseDir,\n runtimeEnv,\n );\n const pluginRuntime =\n (await buildRuntimePluginsForConfig(\n config,\n dispatch.baseDir,\n runtimeEnv,\n request?.remotePlugins,\n )) ?? {};\n const runtime = await buildRuntimeConfig(config, dispatch.baseDir, runtimeEnv, {\n plugins: pluginRuntime,\n });\n\n return {\n config,\n runtime,\n root: dispatch.root,\n path: dispatch.path,\n chain,\n rawConfig: rawConfig ?? null,\n catalog: collectCatalogs ? Object.assign({}, ...[...catalogs].reverse()) : null,\n repository,\n } satisfies Omit<SessionParts, \"env\" | \"warnings\">;\n } catch (error) {\n if (dispatch.remote && isConfigNotFound(error)) {\n return null;\n }\n throw error;\n }\n });\n\n if (!parts) return null;\n\n return new ResolutionSession({\n ...parts,\n env: runtimeEnv,\n warnings,\n });\n } finally {\n for (const cleanup of [...cleanups].reverse()) {\n await cleanup();\n }\n }\n}\n\nexport async function walkExtendsChain(\n entry: string,\n options: {\n env?: BosEnv;\n io?: ResolutionIo;\n registry?: string;\n collectCatalogs?: boolean;\n visit(link: WalkLink): Promise<void>;\n registerCleanup?(fn: () => Promise<void>): void;\n },\n): Promise<{ chain: string[]; config: BosConfigInput }> {\n const baseDir = entry.startsWith(\"bos://\") ? process.cwd() : dirname(entry);\n const chain: string[] = [];\n const ownedCleanups: Array<() => Promise<void>> = [];\n try {\n const config = await walkExtends(entry, baseDir, new Set(), chain, {\n env: options.env ?? \"development\",\n registry: options.registry,\n io: resolveIo(options.io),\n collectCatalogs: options.collectCatalogs === true,\n visit: options.visit,\n registerCleanup: options.registerCleanup ?? ((fn) => ownedCleanups.push(fn)),\n });\n return { chain, config };\n } finally {\n for (const cleanup of [...ownedCleanups].reverse()) {\n await cleanup();\n }\n }\n}\n\n/**\n * @internal — resolves the fully merged (parent-merged, un-parsed)\n * `BosConfigInput` for a config entry. Used by config.ts's\n * `resolveComposableReference` for plugin-entry extends resolution.\n */\nexport async function resolveMergedConfigInput(\n entry: string,\n options?: { baseDir?: string; env?: BosEnv; io?: ResolutionIo; registry?: string },\n): Promise<BosConfigInput> {\n const baseDir = options?.baseDir ?? process.cwd();\n return walkExtends(entry, baseDir, new Set(), [], {\n env: options?.env ?? \"development\",\n registry: options?.registry,\n io: resolveIo(options?.io),\n collectCatalogs: false,\n });\n}\n"],"mappings":"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"}