@vendure/cloud 0.4.0 → 0.5.0-dev.20261014172655.g652e750

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 (509) hide show
  1. package/README.md +44 -10
  2. package/dist/cli/arguments.d.ts.map +1 -1
  3. package/dist/cli/arguments.js +9 -31
  4. package/dist/cli/arguments.js.map +1 -1
  5. package/dist/cli/command.d.ts.map +1 -1
  6. package/dist/cli/command.js +13 -30
  7. package/dist/cli/command.js.map +1 -1
  8. package/dist/cli/commands/deployment/arguments.d.ts.map +1 -1
  9. package/dist/cli/commands/deployment/arguments.js +1 -8
  10. package/dist/cli/commands/deployment/arguments.js.map +1 -1
  11. package/dist/cli/commands/deployment/build-logs.d.ts.map +1 -1
  12. package/dist/cli/commands/deployment/build-logs.js +12 -16
  13. package/dist/cli/commands/deployment/build-logs.js.map +1 -1
  14. package/dist/cli/commands/deployment/deploy.d.ts.map +1 -1
  15. package/dist/cli/commands/deployment/deploy.js +88 -45
  16. package/dist/cli/commands/deployment/deploy.js.map +1 -1
  17. package/dist/cli/commands/deployment/index.d.ts.map +1 -1
  18. package/dist/cli/commands/deployment/index.js +18 -30
  19. package/dist/cli/commands/deployment/index.js.map +1 -1
  20. package/dist/cli/commands/deployment/list.d.ts.map +1 -1
  21. package/dist/cli/commands/deployment/list.js +5 -5
  22. package/dist/cli/commands/deployment/list.js.map +1 -1
  23. package/dist/cli/commands/deployment/log-export.d.ts.map +1 -1
  24. package/dist/cli/commands/deployment/log-export.js +14 -27
  25. package/dist/cli/commands/deployment/log-export.js.map +1 -1
  26. package/dist/cli/commands/deployment/log-query-output.d.ts.map +1 -1
  27. package/dist/cli/commands/deployment/log-query-output.js +18 -32
  28. package/dist/cli/commands/deployment/log-query-output.js.map +1 -1
  29. package/dist/cli/commands/deployment/logs.d.ts.map +1 -1
  30. package/dist/cli/commands/deployment/logs.js +52 -72
  31. package/dist/cli/commands/deployment/logs.js.map +1 -1
  32. package/dist/cli/commands/deployment/options.d.ts.map +1 -1
  33. package/dist/cli/commands/deployment/options.js +11 -20
  34. package/dist/cli/commands/deployment/options.js.map +1 -1
  35. package/dist/cli/commands/deployment/plan-format.d.ts.map +1 -1
  36. package/dist/cli/commands/deployment/plan-format.js +2 -2
  37. package/dist/cli/commands/deployment/plan-format.js.map +1 -1
  38. package/dist/cli/commands/deployment/plan.d.ts.map +1 -1
  39. package/dist/cli/commands/deployment/plan.js +7 -8
  40. package/dist/cli/commands/deployment/plan.js.map +1 -1
  41. package/dist/cli/commands/deployment/recovery.d.ts.map +1 -1
  42. package/dist/cli/commands/deployment/recovery.js +25 -35
  43. package/dist/cli/commands/deployment/recovery.js.map +1 -1
  44. package/dist/cli/commands/deployment/rollback.d.ts.map +1 -1
  45. package/dist/cli/commands/deployment/rollback.js +58 -12
  46. package/dist/cli/commands/deployment/rollback.js.map +1 -1
  47. package/dist/cli/commands/deployment/shared.d.ts.map +1 -1
  48. package/dist/cli/commands/deployment/shared.js +4 -7
  49. package/dist/cli/commands/deployment/shared.js.map +1 -1
  50. package/dist/cli/commands/deployment/show.d.ts.map +1 -1
  51. package/dist/cli/commands/deployment/show.js +8 -9
  52. package/dist/cli/commands/deployment/show.js.map +1 -1
  53. package/dist/cli/commands/deployment/source.d.ts.map +1 -1
  54. package/dist/cli/commands/deployment/source.js +2 -2
  55. package/dist/cli/commands/deployment/source.js.map +1 -1
  56. package/dist/cli/commands/deployment/status.d.ts.map +1 -1
  57. package/dist/cli/commands/deployment/status.js +10 -11
  58. package/dist/cli/commands/deployment/status.js.map +1 -1
  59. package/dist/cli/commands/deployment/teardown.js +22 -31
  60. package/dist/cli/commands/deployment/teardown.js.map +1 -1
  61. package/dist/cli/commands/identity-context/context.d.ts.map +1 -1
  62. package/dist/cli/commands/identity-context/context.js +3 -4
  63. package/dist/cli/commands/identity-context/context.js.map +1 -1
  64. package/dist/cli/commands/identity-context/index.d.ts.map +1 -1
  65. package/dist/cli/commands/identity-context/index.js +16 -50
  66. package/dist/cli/commands/identity-context/index.js.map +1 -1
  67. package/dist/cli/commands/identity-context/keys.d.ts.map +1 -1
  68. package/dist/cli/commands/identity-context/keys.js +13 -15
  69. package/dist/cli/commands/identity-context/keys.js.map +1 -1
  70. package/dist/cli/commands/identity-context/use.js +1 -1
  71. package/dist/cli/commands/identity-context/use.js.map +1 -1
  72. package/dist/cli/commands/index.d.ts.map +1 -1
  73. package/dist/cli/commands/index.js +9 -20
  74. package/dist/cli/commands/index.js.map +1 -1
  75. package/dist/cli/commands/project-config/config/build-fields.d.ts.map +1 -1
  76. package/dist/cli/commands/project-config/config/build-fields.js +2 -3
  77. package/dist/cli/commands/project-config/config/build-fields.js.map +1 -1
  78. package/dist/cli/commands/project-config/config/build.d.ts.map +1 -1
  79. package/dist/cli/commands/project-config/config/build.js +8 -9
  80. package/dist/cli/commands/project-config/config/build.js.map +1 -1
  81. package/dist/cli/commands/project-config/config/desired-state.d.ts.map +1 -1
  82. package/dist/cli/commands/project-config/config/desired-state.js +10 -12
  83. package/dist/cli/commands/project-config/config/desired-state.js.map +1 -1
  84. package/dist/cli/commands/project-config/config/email/domain.d.ts.map +1 -1
  85. package/dist/cli/commands/project-config/config/email/domain.js +12 -9
  86. package/dist/cli/commands/project-config/config/email/domain.js.map +1 -1
  87. package/dist/cli/commands/project-config/config/email/events.d.ts.map +1 -1
  88. package/dist/cli/commands/project-config/config/email/events.js +9 -9
  89. package/dist/cli/commands/project-config/config/email/events.js.map +1 -1
  90. package/dist/cli/commands/project-config/config/email/index.d.ts.map +1 -1
  91. package/dist/cli/commands/project-config/config/email/index.js +5 -6
  92. package/dist/cli/commands/project-config/config/email/index.js.map +1 -1
  93. package/dist/cli/commands/project-config/config/email/test-sending.d.ts.map +1 -1
  94. package/dist/cli/commands/project-config/config/email/test-sending.js +6 -5
  95. package/dist/cli/commands/project-config/config/email/test-sending.js.map +1 -1
  96. package/dist/cli/commands/project-config/config/index.d.ts.map +1 -1
  97. package/dist/cli/commands/project-config/config/index.js +8 -10
  98. package/dist/cli/commands/project-config/config/index.js.map +1 -1
  99. package/dist/cli/commands/project-config/config/runtime.d.ts.map +1 -1
  100. package/dist/cli/commands/project-config/config/runtime.js +10 -21
  101. package/dist/cli/commands/project-config/config/runtime.js.map +1 -1
  102. package/dist/cli/commands/project-config/config/set.js +3 -3
  103. package/dist/cli/commands/project-config/config/set.js.map +1 -1
  104. package/dist/cli/commands/project-config/config/show.d.ts.map +1 -1
  105. package/dist/cli/commands/project-config/config/show.js +7 -7
  106. package/dist/cli/commands/project-config/config/show.js.map +1 -1
  107. package/dist/cli/commands/project-config/env/add.d.ts.map +1 -1
  108. package/dist/cli/commands/project-config/env/add.js +4 -3
  109. package/dist/cli/commands/project-config/env/add.js.map +1 -1
  110. package/dist/cli/commands/project-config/env/get.d.ts.map +1 -1
  111. package/dist/cli/commands/project-config/env/get.js +7 -2
  112. package/dist/cli/commands/project-config/env/get.js.map +1 -1
  113. package/dist/cli/commands/project-config/env/import.d.ts.map +1 -1
  114. package/dist/cli/commands/project-config/env/import.js +15 -8
  115. package/dist/cli/commands/project-config/env/import.js.map +1 -1
  116. package/dist/cli/commands/project-config/env/index.js +7 -8
  117. package/dist/cli/commands/project-config/env/index.js.map +1 -1
  118. package/dist/cli/commands/project-config/env/list.d.ts.map +1 -1
  119. package/dist/cli/commands/project-config/env/list.js +29 -8
  120. package/dist/cli/commands/project-config/env/list.js.map +1 -1
  121. package/dist/cli/commands/project-config/env/metadata-options.d.ts.map +1 -1
  122. package/dist/cli/commands/project-config/env/metadata-options.js +0 -1
  123. package/dist/cli/commands/project-config/env/metadata-options.js.map +1 -1
  124. package/dist/cli/commands/project-config/env/pull.d.ts.map +1 -1
  125. package/dist/cli/commands/project-config/env/pull.js +22 -8
  126. package/dist/cli/commands/project-config/env/pull.js.map +1 -1
  127. package/dist/cli/commands/project-config/env/read-value.d.ts.map +1 -1
  128. package/dist/cli/commands/project-config/env/read-value.js +8 -4
  129. package/dist/cli/commands/project-config/env/read-value.js.map +1 -1
  130. package/dist/cli/commands/project-config/env/rm.d.ts.map +1 -1
  131. package/dist/cli/commands/project-config/env/rm.js +4 -3
  132. package/dist/cli/commands/project-config/env/rm.js.map +1 -1
  133. package/dist/cli/commands/project-config/env/run.d.ts.map +1 -1
  134. package/dist/cli/commands/project-config/env/run.js +9 -8
  135. package/dist/cli/commands/project-config/env/run.js.map +1 -1
  136. package/dist/cli/commands/project-config/env/update.d.ts.map +1 -1
  137. package/dist/cli/commands/project-config/env/update.js +4 -3
  138. package/dist/cli/commands/project-config/env/update.js.map +1 -1
  139. package/dist/cli/commands/project-config/environment/create.d.ts.map +1 -1
  140. package/dist/cli/commands/project-config/environment/create.js +5 -6
  141. package/dist/cli/commands/project-config/environment/create.js.map +1 -1
  142. package/dist/cli/commands/project-config/environment/delete.d.ts.map +1 -1
  143. package/dist/cli/commands/project-config/environment/delete.js +6 -6
  144. package/dist/cli/commands/project-config/environment/delete.js.map +1 -1
  145. package/dist/cli/commands/project-config/environment/find.js +3 -3
  146. package/dist/cli/commands/project-config/environment/find.js.map +1 -1
  147. package/dist/cli/commands/project-config/environment/index.d.ts.map +1 -1
  148. package/dist/cli/commands/project-config/environment/index.js +8 -10
  149. package/dist/cli/commands/project-config/environment/index.js.map +1 -1
  150. package/dist/cli/commands/project-config/environment/initial-superadmin.d.ts.map +1 -1
  151. package/dist/cli/commands/project-config/environment/initial-superadmin.js +4 -5
  152. package/dist/cli/commands/project-config/environment/initial-superadmin.js.map +1 -1
  153. package/dist/cli/commands/project-config/environment/list.d.ts.map +1 -1
  154. package/dist/cli/commands/project-config/environment/list.js +5 -5
  155. package/dist/cli/commands/project-config/environment/list.js.map +1 -1
  156. package/dist/cli/commands/project-config/environment/regions.d.ts.map +1 -1
  157. package/dist/cli/commands/project-config/environment/regions.js +3 -3
  158. package/dist/cli/commands/project-config/environment/regions.js.map +1 -1
  159. package/dist/cli/commands/project-config/environment/show.d.ts.map +1 -1
  160. package/dist/cli/commands/project-config/environment/show.js +3 -4
  161. package/dist/cli/commands/project-config/environment/show.js.map +1 -1
  162. package/dist/cli/commands/project-config/environment/update.d.ts.map +1 -1
  163. package/dist/cli/commands/project-config/environment/update.js +3 -4
  164. package/dist/cli/commands/project-config/environment/update.js.map +1 -1
  165. package/dist/cli/commands/project-config/index.js +5 -5
  166. package/dist/cli/commands/project-config/index.js.map +1 -1
  167. package/dist/cli/commands/project-config/init/build-detection.d.ts.map +1 -1
  168. package/dist/cli/commands/project-config/init/build-detection.js +4 -4
  169. package/dist/cli/commands/project-config/init/build-detection.js.map +1 -1
  170. package/dist/cli/commands/project-config/init/index.d.ts.map +1 -1
  171. package/dist/cli/commands/project-config/init/index.js +4 -5
  172. package/dist/cli/commands/project-config/init/index.js.map +1 -1
  173. package/dist/cli/commands/project-config/init/init.d.ts.map +1 -1
  174. package/dist/cli/commands/project-config/init/init.js +18 -22
  175. package/dist/cli/commands/project-config/init/init.js.map +1 -1
  176. package/dist/cli/commands/project-config/options.d.ts.map +1 -1
  177. package/dist/cli/commands/project-config/options.js +9 -14
  178. package/dist/cli/commands/project-config/options.js.map +1 -1
  179. package/dist/cli/commands/project-config/project/create.d.ts.map +1 -1
  180. package/dist/cli/commands/project-config/project/create.js +3 -3
  181. package/dist/cli/commands/project-config/project/create.js.map +1 -1
  182. package/dist/cli/commands/project-config/project/delete.d.ts.map +1 -1
  183. package/dist/cli/commands/project-config/project/delete.js +4 -5
  184. package/dist/cli/commands/project-config/project/delete.js.map +1 -1
  185. package/dist/cli/commands/project-config/project/index.d.ts.map +1 -1
  186. package/dist/cli/commands/project-config/project/index.js +4 -5
  187. package/dist/cli/commands/project-config/project/index.js.map +1 -1
  188. package/dist/cli/commands/project-config/project/link.d.ts.map +1 -1
  189. package/dist/cli/commands/project-config/project/link.js +4 -4
  190. package/dist/cli/commands/project-config/project/link.js.map +1 -1
  191. package/dist/cli/commands/project-config/project/list.d.ts.map +1 -1
  192. package/dist/cli/commands/project-config/project/list.js +5 -5
  193. package/dist/cli/commands/project-config/project/list.js.map +1 -1
  194. package/dist/cli/commands/project-config/project/show.d.ts.map +1 -1
  195. package/dist/cli/commands/project-config/project/show.js +11 -14
  196. package/dist/cli/commands/project-config/project/show.js.map +1 -1
  197. package/dist/cli/commands/project-config/project/subscription-state.d.ts.map +1 -1
  198. package/dist/cli/commands/project-config/project/subscription-state.js +17 -20
  199. package/dist/cli/commands/project-config/project/subscription-state.js.map +1 -1
  200. package/dist/cli/commands/project-config/project/unlink.d.ts.map +1 -1
  201. package/dist/cli/commands/project-config/project/unlink.js +2 -3
  202. package/dist/cli/commands/project-config/project/unlink.js.map +1 -1
  203. package/dist/cli/commands/project-config/project/update.d.ts.map +1 -1
  204. package/dist/cli/commands/project-config/project/update.js +3 -4
  205. package/dist/cli/commands/project-config/project/update.js.map +1 -1
  206. package/dist/cli/commands/project-config/source/connect.d.ts.map +1 -1
  207. package/dist/cli/commands/project-config/source/connect.js +24 -26
  208. package/dist/cli/commands/project-config/source/connect.js.map +1 -1
  209. package/dist/cli/commands/project-config/source/disconnect.d.ts.map +1 -1
  210. package/dist/cli/commands/project-config/source/disconnect.js +4 -4
  211. package/dist/cli/commands/project-config/source/disconnect.js.map +1 -1
  212. package/dist/cli/commands/project-config/source/index.js +7 -7
  213. package/dist/cli/commands/project-config/source/index.js.map +1 -1
  214. package/dist/cli/commands/project-config/source/map.d.ts.map +1 -1
  215. package/dist/cli/commands/project-config/source/map.js +12 -16
  216. package/dist/cli/commands/project-config/source/map.js.map +1 -1
  217. package/dist/cli/commands/project-config/source/repos.d.ts.map +1 -1
  218. package/dist/cli/commands/project-config/source/repos.js +5 -5
  219. package/dist/cli/commands/project-config/source/repos.js.map +1 -1
  220. package/dist/cli/commands/project-config/source/status.d.ts.map +1 -1
  221. package/dist/cli/commands/project-config/source/status.js +16 -25
  222. package/dist/cli/commands/project-config/source/status.js.map +1 -1
  223. package/dist/cli/commands/runtime-data/backup.d.ts.map +1 -1
  224. package/dist/cli/commands/runtime-data/backup.js +34 -36
  225. package/dist/cli/commands/runtime-data/backup.js.map +1 -1
  226. package/dist/cli/commands/runtime-data/index.d.ts.map +1 -1
  227. package/dist/cli/commands/runtime-data/index.js +38 -39
  228. package/dist/cli/commands/runtime-data/index.js.map +1 -1
  229. package/dist/cli/commands/runtime-data/resource.d.ts +1 -0
  230. package/dist/cli/commands/runtime-data/resource.d.ts.map +1 -1
  231. package/dist/cli/commands/runtime-data/resource.js +52 -32
  232. package/dist/cli/commands/runtime-data/resource.js.map +1 -1
  233. package/dist/cli/commands/runtime-data/restore.d.ts.map +1 -1
  234. package/dist/cli/commands/runtime-data/restore.js +32 -45
  235. package/dist/cli/commands/runtime-data/restore.js.map +1 -1
  236. package/dist/cli/commands/runtime-data/seeds.d.ts.map +1 -1
  237. package/dist/cli/commands/runtime-data/seeds.js +24 -26
  238. package/dist/cli/commands/runtime-data/seeds.js.map +1 -1
  239. package/dist/cli/commands/runtime-data/tunnel.d.ts.map +1 -1
  240. package/dist/cli/commands/runtime-data/tunnel.js +33 -43
  241. package/dist/cli/commands/runtime-data/tunnel.js.map +1 -1
  242. package/dist/cli/host-arguments.d.ts.map +1 -1
  243. package/dist/cli/host-arguments.js +10 -18
  244. package/dist/cli/host-arguments.js.map +1 -1
  245. package/dist/cli/host-nodes.js +1 -1
  246. package/dist/cli/host-nodes.js.map +1 -1
  247. package/dist/cli/index.d.ts +10 -13
  248. package/dist/cli/index.d.ts.map +1 -1
  249. package/dist/cli/index.js +22 -33
  250. package/dist/cli/index.js.map +1 -1
  251. package/dist/cli/lib/api-client.d.ts +10 -5
  252. package/dist/cli/lib/api-client.d.ts.map +1 -1
  253. package/dist/cli/lib/api-client.js +23 -42
  254. package/dist/cli/lib/api-client.js.map +1 -1
  255. package/dist/cli/lib/auth.d.ts +4 -145
  256. package/dist/cli/lib/auth.d.ts.map +1 -1
  257. package/dist/cli/lib/auth.js +8 -515
  258. package/dist/cli/lib/auth.js.map +1 -1
  259. package/dist/cli/lib/cli-login.d.ts +12 -0
  260. package/dist/cli/lib/cli-login.d.ts.map +1 -0
  261. package/dist/cli/lib/cli-login.js +155 -0
  262. package/dist/cli/lib/cli-login.js.map +1 -0
  263. package/dist/cli/lib/cloud-api-url.d.ts +2 -0
  264. package/dist/cli/lib/cloud-api-url.d.ts.map +1 -0
  265. package/dist/cli/lib/cloud-api-url.js +3 -0
  266. package/dist/cli/lib/cloud-api-url.js.map +1 -0
  267. package/dist/cli/lib/commit.d.ts.map +1 -1
  268. package/dist/cli/lib/commit.js +2 -3
  269. package/dist/cli/lib/commit.js.map +1 -1
  270. package/dist/cli/lib/config-revisions.d.ts +9 -0
  271. package/dist/cli/lib/config-revisions.d.ts.map +1 -0
  272. package/dist/cli/lib/config-revisions.js +52 -0
  273. package/dist/cli/lib/config-revisions.js.map +1 -0
  274. package/dist/cli/lib/config.d.ts +0 -4
  275. package/dist/cli/lib/config.d.ts.map +1 -1
  276. package/dist/cli/lib/config.js +3 -5
  277. package/dist/cli/lib/config.js.map +1 -1
  278. package/dist/cli/lib/console-pairing.d.ts +1 -14
  279. package/dist/cli/lib/console-pairing.d.ts.map +1 -1
  280. package/dist/cli/lib/console-pairing.js +48 -60
  281. package/dist/cli/lib/console-pairing.js.map +1 -1
  282. package/dist/cli/lib/contract/backup-schedule-reasons.d.ts.map +1 -1
  283. package/dist/cli/lib/contract/backup-schedule-reasons.js +3 -7
  284. package/dist/cli/lib/contract/backup-schedule-reasons.js.map +1 -1
  285. package/dist/cli/lib/contract/build-settings.d.ts +1 -1
  286. package/dist/cli/lib/contract/build-settings.d.ts.map +1 -1
  287. package/dist/cli/lib/contract/build-settings.js +12 -18
  288. package/dist/cli/lib/contract/build-settings.js.map +1 -1
  289. package/dist/cli/lib/contract/database.d.ts.map +1 -1
  290. package/dist/cli/lib/contract/database.js +7 -13
  291. package/dist/cli/lib/contract/database.js.map +1 -1
  292. package/dist/cli/lib/contract/deployment-resource-labels.d.ts.map +1 -1
  293. package/dist/cli/lib/contract/deployment-resource-labels.js +2 -6
  294. package/dist/cli/lib/contract/deployment-resource-labels.js.map +1 -1
  295. package/dist/cli/lib/contract/deployments.d.ts +1 -0
  296. package/dist/cli/lib/contract/deployments.d.ts.map +1 -1
  297. package/dist/cli/lib/contract/deployments.js +32 -40
  298. package/dist/cli/lib/contract/deployments.js.map +1 -1
  299. package/dist/cli/lib/contract/desired-state.d.ts +3 -1
  300. package/dist/cli/lib/contract/desired-state.d.ts.map +1 -1
  301. package/dist/cli/lib/contract/desired-state.js +33 -50
  302. package/dist/cli/lib/contract/desired-state.js.map +1 -1
  303. package/dist/cli/lib/contract/env-vars.d.ts +37 -0
  304. package/dist/cli/lib/contract/env-vars.d.ts.map +1 -0
  305. package/dist/cli/lib/contract/env-vars.js +6 -0
  306. package/dist/cli/lib/contract/env-vars.js.map +1 -0
  307. package/dist/cli/lib/contract/foreign-credentials.d.ts +14 -27
  308. package/dist/cli/lib/contract/foreign-credentials.d.ts.map +1 -1
  309. package/dist/cli/lib/contract/foreign-credentials.js +19 -32
  310. package/dist/cli/lib/contract/foreign-credentials.js.map +1 -1
  311. package/dist/cli/lib/contract/logs.d.ts.map +1 -1
  312. package/dist/cli/lib/contract/logs.js +26 -34
  313. package/dist/cli/lib/contract/logs.js.map +1 -1
  314. package/dist/cli/lib/contract/managed-email.d.ts.map +1 -1
  315. package/dist/cli/lib/contract/managed-email.js +2 -3
  316. package/dist/cli/lib/contract/managed-email.js.map +1 -1
  317. package/dist/cli/lib/contract/permission-denied.d.ts +16 -0
  318. package/dist/cli/lib/contract/permission-denied.d.ts.map +1 -0
  319. package/dist/cli/lib/contract/permission-denied.js +20 -0
  320. package/dist/cli/lib/contract/permission-denied.js.map +1 -0
  321. package/dist/cli/lib/contract/projects.d.ts.map +1 -1
  322. package/dist/cli/lib/contract/projects.js +2 -3
  323. package/dist/cli/lib/contract/projects.js.map +1 -1
  324. package/dist/cli/lib/contract/public-error-details.d.ts.map +1 -1
  325. package/dist/cli/lib/contract/public-error-details.js +28 -43
  326. package/dist/cli/lib/contract/public-error-details.js.map +1 -1
  327. package/dist/cli/lib/contract/regions.js +2 -2
  328. package/dist/cli/lib/contract/regions.js.map +1 -1
  329. package/dist/cli/lib/contract/runtime-operations.d.ts.map +1 -1
  330. package/dist/cli/lib/contract/runtime-operations.js +11 -21
  331. package/dist/cli/lib/contract/runtime-operations.js.map +1 -1
  332. package/dist/cli/lib/contract/seeds.d.ts.map +1 -1
  333. package/dist/cli/lib/contract/seeds.js +12 -21
  334. package/dist/cli/lib/contract/seeds.js.map +1 -1
  335. package/dist/cli/lib/contract/source-disconnect-reasons.d.ts.map +1 -1
  336. package/dist/cli/lib/contract/source-disconnect-reasons.js +9 -17
  337. package/dist/cli/lib/contract/source-disconnect-reasons.js.map +1 -1
  338. package/dist/cli/lib/contract/source-repository.d.ts.map +1 -1
  339. package/dist/cli/lib/contract/source-repository.js +5 -9
  340. package/dist/cli/lib/contract/source-repository.js.map +1 -1
  341. package/dist/cli/lib/contract/wire-types.d.ts.map +1 -1
  342. package/dist/cli/lib/contract/wire-types.js +3 -8
  343. package/dist/cli/lib/contract/wire-types.js.map +1 -1
  344. package/dist/cli/lib/contract/wire-values.d.ts.map +1 -1
  345. package/dist/cli/lib/contract/wire-values.js +2 -3
  346. package/dist/cli/lib/contract/wire-values.js.map +1 -1
  347. package/dist/cli/lib/dotenv.d.ts +6 -0
  348. package/dist/cli/lib/dotenv.d.ts.map +1 -1
  349. package/dist/cli/lib/dotenv.js +62 -20
  350. package/dist/cli/lib/dotenv.js.map +1 -1
  351. package/dist/cli/lib/env-file.d.ts.map +1 -1
  352. package/dist/cli/lib/env-file.js +5 -11
  353. package/dist/cli/lib/env-file.js.map +1 -1
  354. package/dist/cli/lib/env-preflight.d.ts +6 -1
  355. package/dist/cli/lib/env-preflight.d.ts.map +1 -1
  356. package/dist/cli/lib/env-preflight.js +91 -63
  357. package/dist/cli/lib/env-preflight.js.map +1 -1
  358. package/dist/cli/lib/errors.d.ts +17 -49
  359. package/dist/cli/lib/errors.d.ts.map +1 -1
  360. package/dist/cli/lib/errors.js +47 -106
  361. package/dist/cli/lib/errors.js.map +1 -1
  362. package/dist/cli/lib/format.d.ts.map +1 -1
  363. package/dist/cli/lib/format.js +3 -5
  364. package/dist/cli/lib/format.js.map +1 -1
  365. package/dist/cli/lib/invocation.d.ts +4 -5
  366. package/dist/cli/lib/invocation.d.ts.map +1 -1
  367. package/dist/cli/lib/invocation.js +5 -33
  368. package/dist/cli/lib/invocation.js.map +1 -1
  369. package/dist/cli/lib/log-stream.d.ts.map +1 -1
  370. package/dist/cli/lib/log-stream.js +15 -23
  371. package/dist/cli/lib/log-stream.js.map +1 -1
  372. package/dist/cli/lib/logger.d.ts.map +1 -1
  373. package/dist/cli/lib/logger.js +7 -12
  374. package/dist/cli/lib/logger.js.map +1 -1
  375. package/dist/cli/lib/organization.d.ts.map +1 -1
  376. package/dist/cli/lib/organization.js +5 -13
  377. package/dist/cli/lib/organization.js.map +1 -1
  378. package/dist/cli/lib/project-link.d.ts.map +1 -1
  379. package/dist/cli/lib/project-link.js +2 -4
  380. package/dist/cli/lib/project-link.js.map +1 -1
  381. package/dist/cli/lib/resolve.d.ts +1 -6
  382. package/dist/cli/lib/resolve.d.ts.map +1 -1
  383. package/dist/cli/lib/resolve.js +26 -48
  384. package/dist/cli/lib/resolve.js.map +1 -1
  385. package/dist/cli/lib/source-repository-link.d.ts.map +1 -1
  386. package/dist/cli/lib/source-repository-link.js +6 -9
  387. package/dist/cli/lib/source-repository-link.js.map +1 -1
  388. package/dist/cli/lib/terminal-output.d.ts +4 -0
  389. package/dist/cli/lib/terminal-output.d.ts.map +1 -1
  390. package/dist/cli/lib/terminal-output.js +35 -18
  391. package/dist/cli/lib/terminal-output.js.map +1 -1
  392. package/dist/cli/lib/types.d.ts +3 -7
  393. package/dist/cli/lib/types.d.ts.map +1 -1
  394. package/dist/cli/lib/types.js.map +1 -1
  395. package/dist/cli/lib/utf8.d.ts +2 -0
  396. package/dist/cli/lib/utf8.d.ts.map +1 -0
  397. package/dist/cli/lib/utf8.js +12 -0
  398. package/dist/cli/lib/utf8.js.map +1 -0
  399. package/dist/cli/root-options.d.ts.map +1 -1
  400. package/dist/cli/root-options.js +11 -14
  401. package/dist/cli/root-options.js.map +1 -1
  402. package/dist/cli-plugin.d.ts.map +1 -1
  403. package/dist/cli-plugin.js +2 -6
  404. package/dist/cli-plugin.js.map +1 -1
  405. package/dist/cloud-config-module.js +2 -2
  406. package/dist/cloud-config-module.js.map +1 -1
  407. package/dist/dev/cli-host.d.ts.map +1 -1
  408. package/dist/dev/cli-host.js +16 -19
  409. package/dist/dev/cli-host.js.map +1 -1
  410. package/dist/dev/dashboard-vite-config.d.ts.map +1 -1
  411. package/dist/dev/dashboard-vite-config.js +17 -20
  412. package/dist/dev/dashboard-vite-config.js.map +1 -1
  413. package/dist/dev/dev-command.d.ts.map +1 -1
  414. package/dist/dev/dev-command.js +72 -55
  415. package/dist/dev/dev-command.js.map +1 -1
  416. package/dist/dev/dev-config.d.ts +3 -0
  417. package/dist/dev/dev-config.d.ts.map +1 -1
  418. package/dist/dev/dev-config.js +43 -13
  419. package/dist/dev/dev-config.js.map +1 -1
  420. package/dist/dev/dev-migrate.js +7 -11
  421. package/dist/dev/dev-migrate.js.map +1 -1
  422. package/dist/dev/dev-process.d.ts.map +1 -1
  423. package/dist/dev/dev-process.js +6 -10
  424. package/dist/dev/dev-process.js.map +1 -1
  425. package/dist/dev/dev-server.js +7 -9
  426. package/dist/dev/dev-server.js.map +1 -1
  427. package/dist/dev/dev-worker.js +5 -3
  428. package/dist/dev/dev-worker.js.map +1 -1
  429. package/dist/dev/local-services.d.ts.map +1 -1
  430. package/dist/dev/local-services.js +152 -106
  431. package/dist/dev/local-services.js.map +1 -1
  432. package/dist/dev/project-layout.d.ts.map +1 -1
  433. package/dist/dev/project-layout.js +12 -17
  434. package/dist/dev/project-layout.js.map +1 -1
  435. package/dist/dev/project-plugin-scope.d.ts +2 -0
  436. package/dist/dev/project-plugin-scope.d.ts.map +1 -0
  437. package/dist/dev/project-plugin-scope.js +38 -0
  438. package/dist/dev/project-plugin-scope.js.map +1 -0
  439. package/dist/entrypoint.js +2 -0
  440. package/dist/entrypoint.js.map +1 -1
  441. package/dist/index.d.ts.map +1 -1
  442. package/dist/index.js +3 -6
  443. package/dist/index.js.map +1 -1
  444. package/dist/local-asset-server.d.ts.map +1 -1
  445. package/dist/local-asset-server.js +7 -13
  446. package/dist/local-asset-server.js.map +1 -1
  447. package/dist/local-cache-plugin.d.ts.map +1 -1
  448. package/dist/local-cache-plugin.js +20 -28
  449. package/dist/local-cache-plugin.js.map +1 -1
  450. package/dist/local-cache.d.ts.map +1 -1
  451. package/dist/local-cache.js +40 -55
  452. package/dist/local-cache.js.map +1 -1
  453. package/dist/local-core.d.ts.map +1 -1
  454. package/dist/local-core.js +3 -5
  455. package/dist/local-core.js.map +1 -1
  456. package/dist/local-dashboard-plugin.d.ts.map +1 -1
  457. package/dist/local-dashboard-plugin.js +6 -11
  458. package/dist/local-dashboard-plugin.js.map +1 -1
  459. package/dist/local-database.d.ts.map +1 -1
  460. package/dist/local-database.js +20 -23
  461. package/dist/local-database.js.map +1 -1
  462. package/dist/local-durable-execution-plugin.d.ts +12 -0
  463. package/dist/local-durable-execution-plugin.d.ts.map +1 -1
  464. package/dist/local-durable-execution-plugin.js +296 -24
  465. package/dist/local-durable-execution-plugin.js.map +1 -1
  466. package/dist/local-runtime-guard.d.ts +2 -0
  467. package/dist/local-runtime-guard.d.ts.map +1 -1
  468. package/dist/local-runtime-guard.js +40 -3
  469. package/dist/local-runtime-guard.js.map +1 -1
  470. package/dist/local-runtime.d.ts.map +1 -1
  471. package/dist/local-runtime.js +51 -48
  472. package/dist/local-runtime.js.map +1 -1
  473. package/package.json +16 -10
  474. package/dist/cli/commands/identity-context/login.d.ts +0 -2
  475. package/dist/cli/commands/identity-context/login.d.ts.map +0 -1
  476. package/dist/cli/commands/identity-context/login.js +0 -158
  477. package/dist/cli/commands/identity-context/login.js.map +0 -1
  478. package/dist/cli/commands/identity-context/logout.d.ts +0 -2
  479. package/dist/cli/commands/identity-context/logout.d.ts.map +0 -1
  480. package/dist/cli/commands/identity-context/logout.js +0 -11
  481. package/dist/cli/commands/identity-context/logout.js.map +0 -1
  482. package/dist/cli/commands/identity-context/org-switch.d.ts +0 -3
  483. package/dist/cli/commands/identity-context/org-switch.d.ts.map +0 -1
  484. package/dist/cli/commands/identity-context/org-switch.js +0 -83
  485. package/dist/cli/commands/identity-context/org-switch.js.map +0 -1
  486. package/dist/cli/commands/identity-context/whoami.d.ts +0 -3
  487. package/dist/cli/commands/identity-context/whoami.d.ts.map +0 -1
  488. package/dist/cli/commands/identity-context/whoami.js +0 -101
  489. package/dist/cli/commands/identity-context/whoami.js.map +0 -1
  490. package/dist/cli/lib/console-credential.d.ts +0 -55
  491. package/dist/cli/lib/console-credential.d.ts.map +0 -1
  492. package/dist/cli/lib/console-credential.js +0 -164
  493. package/dist/cli/lib/console-credential.js.map +0 -1
  494. package/dist/cli/lib/console-origins.d.ts +0 -30
  495. package/dist/cli/lib/console-origins.d.ts.map +0 -1
  496. package/dist/cli/lib/console-origins.js +0 -87
  497. package/dist/cli/lib/console-origins.js.map +0 -1
  498. package/dist/cli/lib/console-session-lock.d.ts +0 -39
  499. package/dist/cli/lib/console-session-lock.d.ts.map +0 -1
  500. package/dist/cli/lib/console-session-lock.js +0 -235
  501. package/dist/cli/lib/console-session-lock.js.map +0 -1
  502. package/dist/cli/lib/console-session.d.ts +0 -47
  503. package/dist/cli/lib/console-session.d.ts.map +0 -1
  504. package/dist/cli/lib/console-session.js +0 -235
  505. package/dist/cli/lib/console-session.js.map +0 -1
  506. package/dist/cli/lib/file-lock.d.ts +0 -23
  507. package/dist/cli/lib/file-lock.d.ts.map +0 -1
  508. package/dist/cli/lib/file-lock.js +0 -121
  509. package/dist/cli/lib/file-lock.js.map +0 -1
@@ -1,235 +0,0 @@
1
- import { discardConsoleCredential, isConsoleCredentialExpired, readConsoleCredential, writeConsoleCredential, } from "./console-credential.js";
2
- import { consoleOrigins } from "./console-origins.js";
3
- import { withConsoleSessionLock } from "./console-session-lock.js";
4
- import { ConsoleSessionNotAcceptedError, ConsoleSessionRejectedError, ConsoleSessionUnavailableError, } from "./errors.js";
5
- import { logger } from "./logger.js";
6
- // Reusing the Console CLI Session that Vendure Platform already obtained for this person, so a
7
- // developer who signed in during `vendure console link` does not approve a second login for Cloud.
8
- //
9
- // Cloud never mints one of these. It reads the stored session, refreshes it when it has expired,
10
- // and presents the access token to the control plane, which resolves the identity behind it
11
- // server-side against Console. Nothing here decodes the token or trusts what the file claims about
12
- // who the person is.
13
- const TOKEN_PATH = "/v1/auth/cli/token";
14
- /**
15
- * The deadline covers reading the answer as well as getting it. A server that sends headers and
16
- * then stops sending would otherwise hold the session lock for as long as it liked, and the lock's
17
- * stale budget is set from this bound.
18
- */
19
- const TOKEN_REQUEST_TIMEOUT_MS = 10_000;
20
- /** What Console names a grant it will not honour again. */
21
- const GRANT_REFUSED_CODE = "cli_session.invalid_grant";
22
- const MAX_TOKEN_LIFETIME_SECONDS = 365 * 24 * 60 * 60;
23
- /**
24
- * Whether this machine may reuse the shared Vendure Console CLI Session for Cloud commands.
25
- *
26
- * Off unless the variable is set, and the control plane refuses a Console session unless it has
27
- * been configured to reach Console, so both ends of CLO-641 default to the behaviour that shipped
28
- * before it. The switch is one a person sets rather than something inferred from the presence of a
29
- * file another tool wrote: finding a credential is not the same as being told to use it, and a
30
- * machine that turned this on by itself would change which account a command runs under.
31
- *
32
- * It lives here rather than in `config.ts` because a machine with the feature off must not even
33
- * read the Console credential, and keeping the switch beside the reader is what makes that
34
- * obvious at the one call site that checks it.
35
- */
36
- export function isSharedConsoleSessionEnabled() {
37
- const value = process.env.VENDURE_CLOUD_SHARED_CONSOLE_SESSION;
38
- return value === "1" || value === "true";
39
- }
40
- /**
41
- * The stored Console session, or `undefined` when this machine has none to reuse.
42
- *
43
- * Synchronous, because it sits on the credential-resolution path that every command runs through
44
- * before it does any work. An expired session is still returned: it may carry a refresh token, and
45
- * the renewal happens on the first 401 through the same retry the stored Cloud login uses.
46
- */
47
- export function resolveConsoleSession(options = {}) {
48
- const credential = readConsoleCredential(options);
49
- if (!credential) {
50
- return undefined;
51
- }
52
- return {
53
- accessToken: credential.accessToken,
54
- expired: isConsoleCredentialExpired(credential, options.now?.() ?? new Date()),
55
- refreshable: credential.refreshToken !== undefined,
56
- };
57
- }
58
- let activeRefresh = null;
59
- /**
60
- * Renew the shared session and return the fresh access token.
61
- *
62
- * Deduplicated twice, for the same reason the stored Cloud login is. This promise collapses the
63
- * concurrent calls of one process, and the session lock underneath it serializes the token request
64
- * against every other process on the machine, Cloud and Platform alike. Neither is enough alone:
65
- * this one knows nothing about the other tool, and the lock cannot see a second client inside this
66
- * process that is already waiting on it.
67
- */
68
- export function refreshConsoleSession(failedAccessToken, options = {}) {
69
- if (activeRefresh) {
70
- return activeRefresh;
71
- }
72
- activeRefresh = withConsoleSessionLock({ home: options.home }, () => refreshUnderLock(failedAccessToken, options)).finally(() => {
73
- activeRefresh = null;
74
- });
75
- return activeRefresh;
76
- }
77
- async function refreshUnderLock(failedAccessToken, options) {
78
- // Read again now that the lock is held. Waiting for it is the usual way to find out that another
79
- // process has already refreshed, and by then the pair read before the wait is the stale copy.
80
- let credential = readConsoleCredential(options);
81
- if (!credential) {
82
- throw new ConsoleSessionRejectedError();
83
- }
84
- if (credential.accessToken !== failedAccessToken) {
85
- if (!isConsoleCredentialExpired(credential, currentTime(options))) {
86
- logger.debug("Another process already refreshed the Console session; reusing its access token");
87
- return credential.accessToken;
88
- }
89
- }
90
- else if (!isConsoleCredentialExpired(credential, currentTime(options))) {
91
- // The token that was refused is still the stored one and it has not expired, so whatever the
92
- // control plane objected to, it was not the age of this token. Spending the grant would rotate
93
- // a credential another Vendure product owns, on every failing command, and buy a retry that is
94
- // refused for the same reason. A 401 is not by itself evidence that a session needs renewing.
95
- logger.debug("Console session was refused while still valid; not spending the refresh grant");
96
- throw new ConsoleSessionNotAcceptedError();
97
- }
98
- for (let attempt = 0;; attempt++) {
99
- const spent = credential.refreshToken;
100
- if (!spent) {
101
- throw new ConsoleSessionRejectedError();
102
- }
103
- try {
104
- const renewed = await requestToken(credential.apiOrigin, spent, options);
105
- writeConsoleCredential({
106
- schemaVersion: 2,
107
- origin: credential.origin,
108
- apiOrigin: credential.apiOrigin,
109
- accessToken: renewed.accessToken,
110
- expiresAt: renewed.expiresAt,
111
- ...(renewed.refreshToken ? { refreshToken: renewed.refreshToken } : {}),
112
- }, { home: options.home });
113
- return renewed.accessToken;
114
- }
115
- catch (error) {
116
- // A transient failure says nothing about the refresh token, so the credential survives it
117
- // untouched. One retry, and only against a token somebody else rotated in, is enough to hand
118
- // over the race. A second refusal is reported rather than acted on: it refuses a token this
119
- // process took from a store another participant was still moving, which is not the proof the
120
- // first refusal is.
121
- if (attempt > 0 || !(error instanceof ConsoleSessionRejectedError)) {
122
- throw error;
123
- }
124
- const latest = readConsoleCredential(options);
125
- if (latest?.refreshToken && latest.refreshToken !== spent) {
126
- logger.debug("Console refresh token was spent by another process; using its replacement");
127
- if (!isConsoleCredentialExpired(latest, currentTime(options))) {
128
- return latest.accessToken;
129
- }
130
- credential = latest;
131
- continue;
132
- }
133
- // The store still holds the token that was just refused, and the lock was held across both
134
- // the refusal and this read, so nothing can have rotated it in between. The session is over.
135
- discardConsoleCredential({ home: options.home });
136
- throw error;
137
- }
138
- }
139
- }
140
- async function requestToken(storedApiOrigin, refreshToken, options) {
141
- // Re-checked rather than taken from the file. The origin was validated when the credential was
142
- // read, and validating it again here means no path reaches `fetch` with a URL that skipped the
143
- // check.
144
- const { apiOrigin } = consoleOrigins({ apiOrigin: storedApiOrigin });
145
- const fetchImpl = options.fetch ?? globalThis.fetch;
146
- let response;
147
- try {
148
- response = await fetchImpl(`${apiOrigin}${TOKEN_PATH}`, {
149
- method: "POST",
150
- redirect: "error",
151
- signal: AbortSignal.timeout(TOKEN_REQUEST_TIMEOUT_MS),
152
- headers: { accept: "application/json", "content-type": "application/json" },
153
- body: JSON.stringify({ grant_type: "refresh_token", refresh_token: refreshToken }),
154
- });
155
- }
156
- catch (error) {
157
- throw new ConsoleSessionUnavailableError({ cause: error });
158
- }
159
- if (!response.ok) {
160
- throw (await refusesTheGrant(response))
161
- ? new ConsoleSessionRejectedError()
162
- : new ConsoleSessionUnavailableError({
163
- cause: new Error(`Vendure Console answered the token request with ${response.status}.`),
164
- });
165
- }
166
- let body;
167
- try {
168
- body = await response.json();
169
- }
170
- catch (error) {
171
- throw new ConsoleSessionUnavailableError({ cause: error });
172
- }
173
- return toRenewedSession(body, refreshToken, currentTime(options));
174
- }
175
- /**
176
- * Whether Console judged the grant itself and refused it.
177
- *
178
- * The status alone does not say. A 404 from an API origin pointed at the wrong host, a 403 from a
179
- * proxy in front of Console, and a 401 from a gateway that wants a credential of its own are all
180
- * 4xx, and none of them is Console reporting a spent refresh token. Console names that case in the
181
- * body, so the body decides, and everything else leaves the stored credential alone.
182
- */
183
- async function refusesTheGrant(response) {
184
- if (response.status < 400 || response.status >= 500) {
185
- return false;
186
- }
187
- try {
188
- const value = JSON.parse(await response.text());
189
- if (!value || typeof value !== "object" || !("code" in value)) {
190
- return false;
191
- }
192
- const { code } = value;
193
- return code === GRANT_REFUSED_CODE;
194
- }
195
- catch {
196
- return false;
197
- }
198
- }
199
- /**
200
- * Validate the token response. An unreadable expiry is a failure rather than an assumed default: a
201
- * session treated as valid for longer than it is fails later, where the cause is no longer visible.
202
- */
203
- function toRenewedSession(value, presentedRefreshToken, now) {
204
- const body = value;
205
- if (typeof body?.access_token !== "string" || !body.access_token) {
206
- throw new ConsoleSessionUnavailableError({
207
- cause: new Error("Vendure Console returned no access token."),
208
- });
209
- }
210
- if (body.token_type !== "Bearer") {
211
- throw new ConsoleSessionUnavailableError({
212
- cause: new Error("Vendure Console returned an unsupported token type."),
213
- });
214
- }
215
- if (typeof body.expires_in !== "number" ||
216
- !Number.isInteger(body.expires_in) ||
217
- body.expires_in <= 0 ||
218
- body.expires_in > MAX_TOKEN_LIFETIME_SECONDS) {
219
- throw new ConsoleSessionUnavailableError({
220
- cause: new Error("Vendure Console returned no usable token expiry."),
221
- });
222
- }
223
- const refreshToken = typeof body.refresh_token === "string" && body.refresh_token
224
- ? body.refresh_token
225
- : presentedRefreshToken;
226
- return {
227
- accessToken: body.access_token,
228
- expiresAt: new Date(now.getTime() + body.expires_in * 1000).toISOString(),
229
- refreshToken,
230
- };
231
- }
232
- function currentTime(options) {
233
- return options.now?.() ?? new Date();
234
- }
235
- //# sourceMappingURL=console-session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console-session.js","sourceRoot":"","sources":["../../../src/cli/lib/console-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,+FAA+F;AAC/F,mGAAmG;AACnG,EAAE;AACF,iGAAiG;AACjG,4FAA4F;AAC5F,mGAAmG;AACnG,qBAAqB;AAErB,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC,2DAA2D;AAC3D,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAEvD,MAAM,0BAA0B,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAOtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC;IAC/D,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,CAAC;AAC3C,CAAC;AAUD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAA4D,EAAE;IAE9D,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,0BAA0B,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QAC9E,WAAW,EAAE,UAAU,CAAC,YAAY,KAAK,SAAS;KACnD,CAAC;AACJ,CAAC;AAED,IAAI,aAAa,GAA2B,IAAI,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,iBAAqC,EACrC,UAAiC,EAAE;IAEnC,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,aAAa,GAAG,sBAAsB,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAClE,gBAAgB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAC7C,CAAC,OAAO,CAAC,GAAG,EAAE;QACb,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,iBAAqC,EACrC,OAA8B;IAE9B,iGAAiG;IACjG,8FAA8F;IAC9F,IAAI,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,2BAA2B,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,KAAK,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,KAAK,CACV,iFAAiF,CAClF,CAAC;YACF,OAAO,UAAU,CAAC,WAAW,CAAC;QAChC,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACzE,6FAA6F;QAC7F,+FAA+F;QAC/F,+FAA+F;QAC/F,8FAA8F;QAC9F,MAAM,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;QAC9F,MAAM,IAAI,8BAA8B,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,2BAA2B,EAAE,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACzE,sBAAsB,CACpB;gBACE,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,EACD,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CACvB,CAAC;YACF,OAAO,OAAO,CAAC,WAAW,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0FAA0F;YAC1F,6FAA6F;YAC7F,4FAA4F;YAC5F,6FAA6F;YAC7F,oBAAoB;YACpB,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,2BAA2B,CAAC,EAAE,CAAC;gBACnE,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,MAAM,EAAE,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;gBAC1D,MAAM,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;gBAC1F,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;oBAC9D,OAAO,MAAM,CAAC,WAAW,CAAC;gBAC5B,CAAC;gBACD,UAAU,GAAG,MAAM,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,2FAA2F;YAC3F,6FAA6F;YAC7F,wBAAwB,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAQD,KAAK,UAAU,YAAY,CACzB,eAAuB,EACvB,YAAoB,EACpB,OAA8B;IAE9B,+FAA+F;IAC/F,+FAA+F;IAC/F,SAAS;IACT,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACpD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,SAAS,GAAG,UAAU,EAAE,EAAE;YACtD,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC;YACrD,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC3E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;SACnF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,8BAA8B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC,CAAC,IAAI,2BAA2B,EAAE;YACnC,CAAC,CAAC,IAAI,8BAA8B,CAAC;gBACjC,KAAK,EAAE,IAAI,KAAK,CAAC,mDAAmD,QAAQ,CAAC,MAAM,GAAG,CAAC;aACxF,CAAC,CAAC;IACT,CAAC;IAED,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,8BAA8B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,eAAe,CAAC,QAAkB;IAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,KAA0B,CAAC;QAC5C,OAAO,IAAI,KAAK,kBAAkB,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,KAAc,EACd,qBAA6B,EAC7B,GAAS;IAET,MAAM,IAAI,GAAG,KAKZ,CAAC;IACF,IAAI,OAAO,IAAI,EAAE,YAAY,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACjE,MAAM,IAAI,8BAA8B,CAAC;YACvC,KAAK,EAAE,IAAI,KAAK,CAAC,2CAA2C,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,8BAA8B,CAAC;YACvC,KAAK,EAAE,IAAI,KAAK,CAAC,qDAAqD,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IACD,IACE,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;QACnC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,0BAA0B,EAC5C,CAAC;QACD,MAAM,IAAI,8BAA8B,CAAC;YACvC,KAAK,EAAE,IAAI,KAAK,CAAC,kDAAkD,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,YAAY,GAChB,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa;QAC1D,CAAC,CAAC,IAAI,CAAC,aAAa;QACpB,CAAC,CAAC,qBAAqB,CAAC;IAC5B,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,YAAY;QAC9B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QACzE,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,OAA8B;IACjD,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;AACvC,CAAC"}
@@ -1,23 +0,0 @@
1
- export interface FileLockOptions {
2
- staleMs: number;
3
- waitMs: number;
4
- pollMs?: number;
5
- onWait?: () => void;
6
- waitNoticeMs?: number;
7
- }
8
- /**
9
- * Best-effort advisory mutex between concurrent `vcloud` processes, built on
10
- * the atomicity of `open(O_CREAT | O_EXCL)`.
11
- *
12
- * "Best effort" is the important part: if the lock cannot be taken (wait
13
- * exhausted, read-only config dir, unsupported filesystem) `fn` still runs,
14
- * unserialized. It removes the common race; it does not guarantee exclusion.
15
- *
16
- * `fn` therefore receives whether the lock was actually held. Anything whose
17
- * consequences are unacceptable when two processes do it at once — in this
18
- * codebase, discarding stored credentials — must be gated on that flag, and
19
- * the caller needs a recovery path for the unlocked case. Ignoring the flag is
20
- * how you get a mutex that reads as exclusive but silently isn't.
21
- */
22
- export declare function withFileLock<T>(lockFile: string, options: FileLockOptions, fn: (held: boolean) => Promise<T>): Promise<T>;
23
- //# sourceMappingURL=file-lock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-lock.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/file-lock.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAI9B,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC,CASZ"}
@@ -1,121 +0,0 @@
1
- import { randomBytes } from "node:crypto";
2
- import { mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "node:fs";
3
- import { dirname } from "node:path";
4
- import { logger } from "./logger.js";
5
- import { sleep } from "./sleep.js";
6
- const DEFAULT_POLL_MS = 50;
7
- const DEFAULT_WAIT_NOTICE_MS = 2_000;
8
- /**
9
- * Best-effort advisory mutex between concurrent `vcloud` processes, built on
10
- * the atomicity of `open(O_CREAT | O_EXCL)`.
11
- *
12
- * "Best effort" is the important part: if the lock cannot be taken (wait
13
- * exhausted, read-only config dir, unsupported filesystem) `fn` still runs,
14
- * unserialized. It removes the common race; it does not guarantee exclusion.
15
- *
16
- * `fn` therefore receives whether the lock was actually held. Anything whose
17
- * consequences are unacceptable when two processes do it at once — in this
18
- * codebase, discarding stored credentials — must be gated on that flag, and
19
- * the caller needs a recovery path for the unlocked case. Ignoring the flag is
20
- * how you get a mutex that reads as exclusive but silently isn't.
21
- */
22
- export async function withFileLock(lockFile, options, fn) {
23
- const owner = await acquireLock(lockFile, options);
24
- try {
25
- return await fn(owner !== null);
26
- }
27
- finally {
28
- if (owner) {
29
- releaseLock(lockFile, owner);
30
- }
31
- }
32
- }
33
- async function acquireLock(lockFile, options) {
34
- const owner = `${process.pid}-${randomBytes(8).toString("hex")}`;
35
- const startedAt = Date.now();
36
- const deadline = startedAt + options.waitMs;
37
- const noticeAt = startedAt + (options.waitNoticeMs ?? DEFAULT_WAIT_NOTICE_MS);
38
- let noticed = false;
39
- // The guarded work writes into this directory anyway, but the lock is taken
40
- // first — on a fresh machine it would otherwise ENOENT and run unlocked.
41
- try {
42
- mkdirSync(dirname(lockFile), { recursive: true });
43
- }
44
- catch (error) {
45
- logger.debug({ lockFile, error }, "Could not create lock directory; continuing unlocked");
46
- return null;
47
- }
48
- while (true) {
49
- try {
50
- writeFileSync(lockFile, owner, { flag: "wx", mode: 0o600 });
51
- return owner;
52
- }
53
- catch (error) {
54
- if (errorCode(error) !== "EEXIST") {
55
- logger.debug({ lockFile, error }, "Could not create lock file; continuing unlocked");
56
- return null;
57
- }
58
- }
59
- if (isStale(lockFile, options.staleMs)) {
60
- logger.debug({ lockFile }, "Breaking stale lock");
61
- removeLock(lockFile);
62
- continue;
63
- }
64
- if (Date.now() >= deadline) {
65
- logger.debug({ lockFile }, "Lock wait exhausted; continuing unlocked");
66
- return null;
67
- }
68
- if (!noticed && options.onWait && Date.now() >= noticeAt) {
69
- noticed = true;
70
- notifyWaiting(options.onWait, lockFile);
71
- }
72
- await sleep(options.pollMs ?? DEFAULT_POLL_MS);
73
- }
74
- }
75
- // Progress reporting must never be what stops the guarded work from running —
76
- // the sink is usually stderr, and a closed pipe raises EPIPE.
77
- function notifyWaiting(onWait, lockFile) {
78
- try {
79
- onWait();
80
- }
81
- catch (error) {
82
- logger.debug({ lockFile, error }, "Wait notice failed");
83
- }
84
- }
85
- function releaseLock(lockFile, owner) {
86
- // Only drop the lock while we still hold it: another process may have
87
- // broken ours as stale and taken its own.
88
- try {
89
- if (readFileSync(lockFile, "utf-8") !== owner) {
90
- return;
91
- }
92
- }
93
- catch {
94
- return;
95
- }
96
- removeLock(lockFile);
97
- }
98
- function isStale(lockFile, staleMs) {
99
- try {
100
- return statSync(lockFile).mtimeMs < Date.now() - staleMs;
101
- }
102
- catch {
103
- // Gone between the failed create and this stat — treat as free and retry.
104
- return false;
105
- }
106
- }
107
- function removeLock(lockFile) {
108
- try {
109
- unlinkSync(lockFile);
110
- }
111
- catch {
112
- // Another process already removed it.
113
- }
114
- }
115
- function errorCode(error) {
116
- if (error instanceof Error && "code" in error && typeof error.code === "string") {
117
- return error.code;
118
- }
119
- return undefined;
120
- }
121
- //# sourceMappingURL=file-lock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../../../src/cli/lib/file-lock.ts"],"names":[],"mappings":"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"}