@vendure/cloud 0.3.2 → 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 (530) hide show
  1. package/README.md +50 -11
  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 +14 -25
  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 +108 -95
  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 +66 -53
  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 +13 -0
  24. package/dist/cli/commands/deployment/log-export.d.ts.map +1 -0
  25. package/dist/cli/commands/deployment/log-export.js +120 -0
  26. package/dist/cli/commands/deployment/log-export.js.map +1 -0
  27. package/dist/cli/commands/deployment/log-query-output.d.ts +13 -0
  28. package/dist/cli/commands/deployment/log-query-output.d.ts.map +1 -0
  29. package/dist/cli/commands/deployment/log-query-output.js +92 -0
  30. package/dist/cli/commands/deployment/log-query-output.js.map +1 -0
  31. package/dist/cli/commands/deployment/logs.d.ts +1 -0
  32. package/dist/cli/commands/deployment/logs.d.ts.map +1 -1
  33. package/dist/cli/commands/deployment/logs.js +331 -73
  34. package/dist/cli/commands/deployment/logs.js.map +1 -1
  35. package/dist/cli/commands/deployment/options.d.ts +2 -6
  36. package/dist/cli/commands/deployment/options.d.ts.map +1 -1
  37. package/dist/cli/commands/deployment/options.js +18 -15
  38. package/dist/cli/commands/deployment/options.js.map +1 -1
  39. package/dist/cli/commands/deployment/plan-format.d.ts.map +1 -1
  40. package/dist/cli/commands/deployment/plan-format.js +2 -2
  41. package/dist/cli/commands/deployment/plan-format.js.map +1 -1
  42. package/dist/cli/commands/deployment/plan.d.ts +1 -1
  43. package/dist/cli/commands/deployment/plan.d.ts.map +1 -1
  44. package/dist/cli/commands/deployment/plan.js +11 -14
  45. package/dist/cli/commands/deployment/plan.js.map +1 -1
  46. package/dist/cli/commands/deployment/recovery.d.ts +9 -0
  47. package/dist/cli/commands/deployment/recovery.d.ts.map +1 -0
  48. package/dist/cli/commands/deployment/recovery.js +76 -0
  49. package/dist/cli/commands/deployment/recovery.js.map +1 -0
  50. package/dist/cli/commands/deployment/rollback.d.ts.map +1 -1
  51. package/dist/cli/commands/deployment/rollback.js +61 -10
  52. package/dist/cli/commands/deployment/rollback.js.map +1 -1
  53. package/dist/cli/commands/deployment/shared.d.ts.map +1 -1
  54. package/dist/cli/commands/deployment/shared.js +4 -7
  55. package/dist/cli/commands/deployment/shared.js.map +1 -1
  56. package/dist/cli/commands/deployment/show.d.ts.map +1 -1
  57. package/dist/cli/commands/deployment/show.js +19 -9
  58. package/dist/cli/commands/deployment/show.js.map +1 -1
  59. package/dist/cli/commands/deployment/source.d.ts +1 -12
  60. package/dist/cli/commands/deployment/source.d.ts.map +1 -1
  61. package/dist/cli/commands/deployment/source.js +6 -14
  62. package/dist/cli/commands/deployment/source.js.map +1 -1
  63. package/dist/cli/commands/deployment/status.d.ts.map +1 -1
  64. package/dist/cli/commands/deployment/status.js +30 -29
  65. package/dist/cli/commands/deployment/status.js.map +1 -1
  66. package/dist/cli/commands/deployment/teardown.d.ts.map +1 -1
  67. package/dist/cli/commands/deployment/teardown.js +28 -26
  68. package/dist/cli/commands/deployment/teardown.js.map +1 -1
  69. package/dist/cli/commands/identity-context/context.d.ts.map +1 -1
  70. package/dist/cli/commands/identity-context/context.js +3 -4
  71. package/dist/cli/commands/identity-context/context.js.map +1 -1
  72. package/dist/cli/commands/identity-context/index.d.ts.map +1 -1
  73. package/dist/cli/commands/identity-context/index.js +16 -50
  74. package/dist/cli/commands/identity-context/index.js.map +1 -1
  75. package/dist/cli/commands/identity-context/keys.d.ts.map +1 -1
  76. package/dist/cli/commands/identity-context/keys.js +19 -20
  77. package/dist/cli/commands/identity-context/keys.js.map +1 -1
  78. package/dist/cli/commands/identity-context/use.d.ts.map +1 -1
  79. package/dist/cli/commands/identity-context/use.js +3 -4
  80. package/dist/cli/commands/identity-context/use.js.map +1 -1
  81. package/dist/cli/commands/index.d.ts.map +1 -1
  82. package/dist/cli/commands/index.js +9 -21
  83. package/dist/cli/commands/index.js.map +1 -1
  84. package/dist/cli/commands/project-config/config/build-fields.d.ts.map +1 -1
  85. package/dist/cli/commands/project-config/config/build-fields.js +2 -3
  86. package/dist/cli/commands/project-config/config/build-fields.js.map +1 -1
  87. package/dist/cli/commands/project-config/config/build.d.ts.map +1 -1
  88. package/dist/cli/commands/project-config/config/build.js +8 -9
  89. package/dist/cli/commands/project-config/config/build.js.map +1 -1
  90. package/dist/cli/commands/project-config/config/desired-state.d.ts +1 -1
  91. package/dist/cli/commands/project-config/config/desired-state.d.ts.map +1 -1
  92. package/dist/cli/commands/project-config/config/desired-state.js +12 -13
  93. package/dist/cli/commands/project-config/config/desired-state.js.map +1 -1
  94. package/dist/cli/commands/project-config/config/email/domain.d.ts +5 -0
  95. package/dist/cli/commands/project-config/config/email/domain.d.ts.map +1 -0
  96. package/dist/cli/commands/project-config/config/email/domain.js +83 -0
  97. package/dist/cli/commands/project-config/config/email/domain.js.map +1 -0
  98. package/dist/cli/commands/project-config/config/email/events.d.ts +4 -0
  99. package/dist/cli/commands/project-config/config/email/events.d.ts.map +1 -0
  100. package/dist/cli/commands/project-config/config/email/events.js +55 -0
  101. package/dist/cli/commands/project-config/config/email/events.js.map +1 -0
  102. package/dist/cli/commands/project-config/config/email/index.d.ts +2 -0
  103. package/dist/cli/commands/project-config/config/email/index.d.ts.map +1 -0
  104. package/dist/cli/commands/project-config/config/email/index.js +107 -0
  105. package/dist/cli/commands/project-config/config/email/index.js.map +1 -0
  106. package/dist/cli/commands/project-config/config/email/test-sending.d.ts +4 -0
  107. package/dist/cli/commands/project-config/config/email/test-sending.d.ts.map +1 -0
  108. package/dist/cli/commands/project-config/config/email/test-sending.js +69 -0
  109. package/dist/cli/commands/project-config/config/email/test-sending.js.map +1 -0
  110. package/dist/cli/commands/project-config/config/index.d.ts.map +1 -1
  111. package/dist/cli/commands/project-config/config/index.js +16 -13
  112. package/dist/cli/commands/project-config/config/index.js.map +1 -1
  113. package/dist/cli/commands/project-config/config/runtime.d.ts +2 -1
  114. package/dist/cli/commands/project-config/config/runtime.d.ts.map +1 -1
  115. package/dist/cli/commands/project-config/config/runtime.js +33 -30
  116. package/dist/cli/commands/project-config/config/runtime.js.map +1 -1
  117. package/dist/cli/commands/project-config/config/set.js +3 -3
  118. package/dist/cli/commands/project-config/config/set.js.map +1 -1
  119. package/dist/cli/commands/project-config/config/show.d.ts.map +1 -1
  120. package/dist/cli/commands/project-config/config/show.js +7 -7
  121. package/dist/cli/commands/project-config/config/show.js.map +1 -1
  122. package/dist/cli/commands/project-config/env/add.d.ts.map +1 -1
  123. package/dist/cli/commands/project-config/env/add.js +4 -3
  124. package/dist/cli/commands/project-config/env/add.js.map +1 -1
  125. package/dist/cli/commands/project-config/env/get.d.ts.map +1 -1
  126. package/dist/cli/commands/project-config/env/get.js +7 -2
  127. package/dist/cli/commands/project-config/env/get.js.map +1 -1
  128. package/dist/cli/commands/project-config/env/import.d.ts.map +1 -1
  129. package/dist/cli/commands/project-config/env/import.js +15 -8
  130. package/dist/cli/commands/project-config/env/import.js.map +1 -1
  131. package/dist/cli/commands/project-config/env/index.d.ts.map +1 -1
  132. package/dist/cli/commands/project-config/env/index.js +13 -8
  133. package/dist/cli/commands/project-config/env/index.js.map +1 -1
  134. package/dist/cli/commands/project-config/env/list.d.ts.map +1 -1
  135. package/dist/cli/commands/project-config/env/list.js +29 -8
  136. package/dist/cli/commands/project-config/env/list.js.map +1 -1
  137. package/dist/cli/commands/project-config/env/metadata-options.d.ts.map +1 -1
  138. package/dist/cli/commands/project-config/env/metadata-options.js +0 -1
  139. package/dist/cli/commands/project-config/env/metadata-options.js.map +1 -1
  140. package/dist/cli/commands/project-config/env/pull.d.ts.map +1 -1
  141. package/dist/cli/commands/project-config/env/pull.js +22 -8
  142. package/dist/cli/commands/project-config/env/pull.js.map +1 -1
  143. package/dist/cli/commands/project-config/env/read-value.d.ts.map +1 -1
  144. package/dist/cli/commands/project-config/env/read-value.js +8 -4
  145. package/dist/cli/commands/project-config/env/read-value.js.map +1 -1
  146. package/dist/cli/commands/project-config/env/rm.d.ts.map +1 -1
  147. package/dist/cli/commands/project-config/env/rm.js +4 -3
  148. package/dist/cli/commands/project-config/env/rm.js.map +1 -1
  149. package/dist/cli/commands/project-config/env/run.d.ts.map +1 -1
  150. package/dist/cli/commands/project-config/env/run.js +9 -8
  151. package/dist/cli/commands/project-config/env/run.js.map +1 -1
  152. package/dist/cli/commands/project-config/env/update.d.ts.map +1 -1
  153. package/dist/cli/commands/project-config/env/update.js +4 -3
  154. package/dist/cli/commands/project-config/env/update.js.map +1 -1
  155. package/dist/cli/commands/project-config/environment/create.d.ts.map +1 -1
  156. package/dist/cli/commands/project-config/environment/create.js +5 -6
  157. package/dist/cli/commands/project-config/environment/create.js.map +1 -1
  158. package/dist/cli/commands/project-config/environment/delete.d.ts.map +1 -1
  159. package/dist/cli/commands/project-config/environment/delete.js +6 -6
  160. package/dist/cli/commands/project-config/environment/delete.js.map +1 -1
  161. package/dist/cli/commands/project-config/environment/find.js +3 -3
  162. package/dist/cli/commands/project-config/environment/find.js.map +1 -1
  163. package/dist/cli/commands/project-config/environment/index.d.ts.map +1 -1
  164. package/dist/cli/commands/project-config/environment/index.js +18 -6
  165. package/dist/cli/commands/project-config/environment/index.js.map +1 -1
  166. package/dist/cli/commands/project-config/environment/initial-superadmin.d.ts.map +1 -1
  167. package/dist/cli/commands/project-config/environment/initial-superadmin.js +4 -5
  168. package/dist/cli/commands/project-config/environment/initial-superadmin.js.map +1 -1
  169. package/dist/cli/commands/project-config/environment/list.d.ts.map +1 -1
  170. package/dist/cli/commands/project-config/environment/list.js +5 -5
  171. package/dist/cli/commands/project-config/environment/list.js.map +1 -1
  172. package/dist/cli/commands/project-config/environment/regions.d.ts +6 -0
  173. package/dist/cli/commands/project-config/environment/regions.d.ts.map +1 -0
  174. package/dist/cli/commands/project-config/environment/regions.js +22 -0
  175. package/dist/cli/commands/project-config/environment/regions.js.map +1 -0
  176. package/dist/cli/commands/project-config/environment/show.d.ts.map +1 -1
  177. package/dist/cli/commands/project-config/environment/show.js +3 -4
  178. package/dist/cli/commands/project-config/environment/show.js.map +1 -1
  179. package/dist/cli/commands/project-config/environment/update.d.ts.map +1 -1
  180. package/dist/cli/commands/project-config/environment/update.js +3 -4
  181. package/dist/cli/commands/project-config/environment/update.js.map +1 -1
  182. package/dist/cli/commands/project-config/index.js +5 -5
  183. package/dist/cli/commands/project-config/index.js.map +1 -1
  184. package/dist/cli/commands/project-config/init/build-detection.d.ts.map +1 -1
  185. package/dist/cli/commands/project-config/init/build-detection.js +4 -4
  186. package/dist/cli/commands/project-config/init/build-detection.js.map +1 -1
  187. package/dist/cli/commands/project-config/init/index.d.ts.map +1 -1
  188. package/dist/cli/commands/project-config/init/index.js +4 -5
  189. package/dist/cli/commands/project-config/init/index.js.map +1 -1
  190. package/dist/cli/commands/project-config/init/init.d.ts.map +1 -1
  191. package/dist/cli/commands/project-config/init/init.js +39 -20
  192. package/dist/cli/commands/project-config/init/init.js.map +1 -1
  193. package/dist/cli/commands/project-config/options.d.ts.map +1 -1
  194. package/dist/cli/commands/project-config/options.js +9 -14
  195. package/dist/cli/commands/project-config/options.js.map +1 -1
  196. package/dist/cli/commands/project-config/project/create.d.ts.map +1 -1
  197. package/dist/cli/commands/project-config/project/create.js +3 -3
  198. package/dist/cli/commands/project-config/project/create.js.map +1 -1
  199. package/dist/cli/commands/project-config/project/delete.d.ts.map +1 -1
  200. package/dist/cli/commands/project-config/project/delete.js +4 -5
  201. package/dist/cli/commands/project-config/project/delete.js.map +1 -1
  202. package/dist/cli/commands/project-config/project/index.d.ts.map +1 -1
  203. package/dist/cli/commands/project-config/project/index.js +4 -5
  204. package/dist/cli/commands/project-config/project/index.js.map +1 -1
  205. package/dist/cli/commands/project-config/project/link.d.ts.map +1 -1
  206. package/dist/cli/commands/project-config/project/link.js +4 -4
  207. package/dist/cli/commands/project-config/project/link.js.map +1 -1
  208. package/dist/cli/commands/project-config/project/list.d.ts.map +1 -1
  209. package/dist/cli/commands/project-config/project/list.js +12 -5
  210. package/dist/cli/commands/project-config/project/list.js.map +1 -1
  211. package/dist/cli/commands/project-config/project/show.d.ts.map +1 -1
  212. package/dist/cli/commands/project-config/project/show.js +16 -7
  213. package/dist/cli/commands/project-config/project/show.js.map +1 -1
  214. package/dist/cli/commands/project-config/project/subscription-state.d.ts +5 -0
  215. package/dist/cli/commands/project-config/project/subscription-state.d.ts.map +1 -0
  216. package/dist/cli/commands/project-config/project/subscription-state.js +54 -0
  217. package/dist/cli/commands/project-config/project/subscription-state.js.map +1 -0
  218. package/dist/cli/commands/project-config/project/unlink.d.ts.map +1 -1
  219. package/dist/cli/commands/project-config/project/unlink.js +2 -3
  220. package/dist/cli/commands/project-config/project/unlink.js.map +1 -1
  221. package/dist/cli/commands/project-config/project/update.d.ts.map +1 -1
  222. package/dist/cli/commands/project-config/project/update.js +3 -4
  223. package/dist/cli/commands/project-config/project/update.js.map +1 -1
  224. package/dist/cli/commands/project-config/source/connect.d.ts.map +1 -1
  225. package/dist/cli/commands/project-config/source/connect.js +27 -29
  226. package/dist/cli/commands/project-config/source/connect.js.map +1 -1
  227. package/dist/cli/commands/project-config/source/disconnect.d.ts.map +1 -1
  228. package/dist/cli/commands/project-config/source/disconnect.js +4 -4
  229. package/dist/cli/commands/project-config/source/disconnect.js.map +1 -1
  230. package/dist/cli/commands/project-config/source/index.js +7 -7
  231. package/dist/cli/commands/project-config/source/index.js.map +1 -1
  232. package/dist/cli/commands/project-config/source/map.d.ts.map +1 -1
  233. package/dist/cli/commands/project-config/source/map.js +14 -18
  234. package/dist/cli/commands/project-config/source/map.js.map +1 -1
  235. package/dist/cli/commands/project-config/source/repos.d.ts.map +1 -1
  236. package/dist/cli/commands/project-config/source/repos.js +5 -5
  237. package/dist/cli/commands/project-config/source/repos.js.map +1 -1
  238. package/dist/cli/commands/project-config/source/status.d.ts.map +1 -1
  239. package/dist/cli/commands/project-config/source/status.js +66 -21
  240. package/dist/cli/commands/project-config/source/status.js.map +1 -1
  241. package/dist/cli/commands/runtime-data/backup.d.ts +1 -0
  242. package/dist/cli/commands/runtime-data/backup.d.ts.map +1 -1
  243. package/dist/cli/commands/runtime-data/backup.js +56 -22
  244. package/dist/cli/commands/runtime-data/backup.js.map +1 -1
  245. package/dist/cli/commands/runtime-data/index.d.ts +1 -0
  246. package/dist/cli/commands/runtime-data/index.d.ts.map +1 -1
  247. package/dist/cli/commands/runtime-data/index.js +54 -33
  248. package/dist/cli/commands/runtime-data/index.js.map +1 -1
  249. package/dist/cli/commands/runtime-data/resource.d.ts +1 -0
  250. package/dist/cli/commands/runtime-data/resource.d.ts.map +1 -1
  251. package/dist/cli/commands/runtime-data/resource.js +52 -32
  252. package/dist/cli/commands/runtime-data/resource.js.map +1 -1
  253. package/dist/cli/commands/runtime-data/restore.d.ts.map +1 -1
  254. package/dist/cli/commands/runtime-data/restore.js +52 -37
  255. package/dist/cli/commands/runtime-data/restore.js.map +1 -1
  256. package/dist/cli/commands/runtime-data/seeds.d.ts.map +1 -1
  257. package/dist/cli/commands/runtime-data/seeds.js +24 -26
  258. package/dist/cli/commands/runtime-data/seeds.js.map +1 -1
  259. package/dist/cli/commands/runtime-data/tunnel.d.ts.map +1 -1
  260. package/dist/cli/commands/runtime-data/tunnel.js +33 -43
  261. package/dist/cli/commands/runtime-data/tunnel.js.map +1 -1
  262. package/dist/cli/host-arguments.d.ts.map +1 -1
  263. package/dist/cli/host-arguments.js +10 -18
  264. package/dist/cli/host-arguments.js.map +1 -1
  265. package/dist/cli/host-nodes.js +1 -1
  266. package/dist/cli/host-nodes.js.map +1 -1
  267. package/dist/cli/index.d.ts +17 -10
  268. package/dist/cli/index.d.ts.map +1 -1
  269. package/dist/cli/index.js +27 -28
  270. package/dist/cli/index.js.map +1 -1
  271. package/dist/cli/lib/api-client.d.ts +10 -5
  272. package/dist/cli/lib/api-client.d.ts.map +1 -1
  273. package/dist/cli/lib/api-client.js +23 -42
  274. package/dist/cli/lib/api-client.js.map +1 -1
  275. package/dist/cli/lib/auth.d.ts +4 -126
  276. package/dist/cli/lib/auth.d.ts.map +1 -1
  277. package/dist/cli/lib/auth.js +8 -495
  278. package/dist/cli/lib/auth.js.map +1 -1
  279. package/dist/cli/lib/cli-login.d.ts +12 -0
  280. package/dist/cli/lib/cli-login.d.ts.map +1 -0
  281. package/dist/cli/lib/cli-login.js +155 -0
  282. package/dist/cli/lib/cli-login.js.map +1 -0
  283. package/dist/cli/lib/cloud-api-url.d.ts +2 -0
  284. package/dist/cli/lib/cloud-api-url.d.ts.map +1 -0
  285. package/dist/cli/lib/cloud-api-url.js +3 -0
  286. package/dist/cli/lib/cloud-api-url.js.map +1 -0
  287. package/dist/cli/lib/commit.d.ts +4 -0
  288. package/dist/cli/lib/commit.d.ts.map +1 -0
  289. package/dist/cli/lib/commit.js +21 -0
  290. package/dist/cli/lib/commit.js.map +1 -0
  291. package/dist/cli/lib/config-revisions.d.ts +9 -0
  292. package/dist/cli/lib/config-revisions.d.ts.map +1 -0
  293. package/dist/cli/lib/config-revisions.js +52 -0
  294. package/dist/cli/lib/config-revisions.js.map +1 -0
  295. package/dist/cli/lib/config.d.ts +0 -4
  296. package/dist/cli/lib/config.d.ts.map +1 -1
  297. package/dist/cli/lib/config.js +3 -5
  298. package/dist/cli/lib/config.js.map +1 -1
  299. package/dist/cli/lib/console-pairing.d.ts +2 -0
  300. package/dist/cli/lib/console-pairing.d.ts.map +1 -0
  301. package/dist/cli/lib/console-pairing.js +58 -0
  302. package/dist/cli/lib/console-pairing.js.map +1 -0
  303. package/dist/cli/lib/contract/backup-schedule-reasons.d.ts +4 -0
  304. package/dist/cli/lib/contract/backup-schedule-reasons.d.ts.map +1 -0
  305. package/dist/cli/lib/contract/backup-schedule-reasons.js +13 -0
  306. package/dist/cli/lib/contract/backup-schedule-reasons.js.map +1 -0
  307. package/dist/cli/lib/contract/build-settings.d.ts +1 -1
  308. package/dist/cli/lib/contract/build-settings.d.ts.map +1 -1
  309. package/dist/cli/lib/contract/build-settings.js +12 -18
  310. package/dist/cli/lib/contract/build-settings.js.map +1 -1
  311. package/dist/cli/lib/contract/database.d.ts +19 -0
  312. package/dist/cli/lib/contract/database.d.ts.map +1 -1
  313. package/dist/cli/lib/contract/database.js +7 -13
  314. package/dist/cli/lib/contract/database.js.map +1 -1
  315. package/dist/cli/lib/contract/deployment-resource-labels.d.ts.map +1 -1
  316. package/dist/cli/lib/contract/deployment-resource-labels.js +2 -6
  317. package/dist/cli/lib/contract/deployment-resource-labels.js.map +1 -1
  318. package/dist/cli/lib/contract/deployments.d.ts +14 -0
  319. package/dist/cli/lib/contract/deployments.d.ts.map +1 -1
  320. package/dist/cli/lib/contract/deployments.js +54 -24
  321. package/dist/cli/lib/contract/deployments.js.map +1 -1
  322. package/dist/cli/lib/contract/desired-state.d.ts +6 -6
  323. package/dist/cli/lib/contract/desired-state.d.ts.map +1 -1
  324. package/dist/cli/lib/contract/desired-state.js +52 -55
  325. package/dist/cli/lib/contract/desired-state.js.map +1 -1
  326. package/dist/cli/lib/contract/env-vars.d.ts +37 -0
  327. package/dist/cli/lib/contract/env-vars.d.ts.map +1 -0
  328. package/dist/cli/lib/contract/env-vars.js +6 -0
  329. package/dist/cli/lib/contract/env-vars.js.map +1 -0
  330. package/dist/cli/lib/contract/foreign-credentials.d.ts +14 -25
  331. package/dist/cli/lib/contract/foreign-credentials.d.ts.map +1 -1
  332. package/dist/cli/lib/contract/foreign-credentials.js +19 -30
  333. package/dist/cli/lib/contract/foreign-credentials.js.map +1 -1
  334. package/dist/cli/lib/contract/logs.d.ts +120 -0
  335. package/dist/cli/lib/contract/logs.d.ts.map +1 -1
  336. package/dist/cli/lib/contract/logs.js +113 -16
  337. package/dist/cli/lib/contract/logs.js.map +1 -1
  338. package/dist/cli/lib/contract/managed-email.d.ts +57 -0
  339. package/dist/cli/lib/contract/managed-email.d.ts.map +1 -0
  340. package/dist/cli/lib/contract/managed-email.js +20 -0
  341. package/dist/cli/lib/contract/managed-email.js.map +1 -0
  342. package/dist/cli/lib/contract/permission-denied.d.ts +16 -0
  343. package/dist/cli/lib/contract/permission-denied.d.ts.map +1 -0
  344. package/dist/cli/lib/contract/permission-denied.js +20 -0
  345. package/dist/cli/lib/contract/permission-denied.js.map +1 -0
  346. package/dist/cli/lib/contract/projects.d.ts +6 -0
  347. package/dist/cli/lib/contract/projects.d.ts.map +1 -1
  348. package/dist/cli/lib/contract/projects.js +2 -3
  349. package/dist/cli/lib/contract/projects.js.map +1 -1
  350. package/dist/cli/lib/contract/public-error-details.d.ts.map +1 -1
  351. package/dist/cli/lib/contract/public-error-details.js +28 -43
  352. package/dist/cli/lib/contract/public-error-details.js.map +1 -1
  353. package/dist/cli/lib/contract/regions.d.ts +11 -0
  354. package/dist/cli/lib/contract/regions.d.ts.map +1 -0
  355. package/dist/cli/lib/contract/regions.js +7 -0
  356. package/dist/cli/lib/contract/regions.js.map +1 -0
  357. package/dist/cli/lib/contract/runtime-operations.d.ts +0 -1
  358. package/dist/cli/lib/contract/runtime-operations.d.ts.map +1 -1
  359. package/dist/cli/lib/contract/runtime-operations.js +11 -21
  360. package/dist/cli/lib/contract/runtime-operations.js.map +1 -1
  361. package/dist/cli/lib/contract/seeds.d.ts.map +1 -1
  362. package/dist/cli/lib/contract/seeds.js +12 -21
  363. package/dist/cli/lib/contract/seeds.js.map +1 -1
  364. package/dist/cli/lib/contract/source-disconnect-reasons.d.ts +4 -0
  365. package/dist/cli/lib/contract/source-disconnect-reasons.d.ts.map +1 -0
  366. package/dist/cli/lib/contract/source-disconnect-reasons.js +23 -0
  367. package/dist/cli/lib/contract/source-disconnect-reasons.js.map +1 -0
  368. package/dist/cli/lib/contract/source-repository.d.ts +1 -1
  369. package/dist/cli/lib/contract/source-repository.d.ts.map +1 -1
  370. package/dist/cli/lib/contract/source-repository.js +6 -9
  371. package/dist/cli/lib/contract/source-repository.js.map +1 -1
  372. package/dist/cli/lib/contract/wire-types.d.ts.map +1 -1
  373. package/dist/cli/lib/contract/wire-types.js +3 -8
  374. package/dist/cli/lib/contract/wire-types.js.map +1 -1
  375. package/dist/cli/lib/contract/wire-values.d.ts.map +1 -1
  376. package/dist/cli/lib/contract/wire-values.js +2 -3
  377. package/dist/cli/lib/contract/wire-values.js.map +1 -1
  378. package/dist/cli/lib/dotenv.d.ts +6 -0
  379. package/dist/cli/lib/dotenv.d.ts.map +1 -1
  380. package/dist/cli/lib/dotenv.js +62 -20
  381. package/dist/cli/lib/dotenv.js.map +1 -1
  382. package/dist/cli/lib/env-file.d.ts.map +1 -1
  383. package/dist/cli/lib/env-file.js +5 -11
  384. package/dist/cli/lib/env-file.js.map +1 -1
  385. package/dist/cli/lib/env-preflight.d.ts +6 -1
  386. package/dist/cli/lib/env-preflight.d.ts.map +1 -1
  387. package/dist/cli/lib/env-preflight.js +91 -63
  388. package/dist/cli/lib/env-preflight.js.map +1 -1
  389. package/dist/cli/lib/errors.d.ts +17 -19
  390. package/dist/cli/lib/errors.d.ts.map +1 -1
  391. package/dist/cli/lib/errors.js +47 -60
  392. package/dist/cli/lib/errors.js.map +1 -1
  393. package/dist/cli/lib/format.d.ts.map +1 -1
  394. package/dist/cli/lib/format.js +3 -5
  395. package/dist/cli/lib/format.js.map +1 -1
  396. package/dist/cli/lib/invocation.d.ts +4 -5
  397. package/dist/cli/lib/invocation.d.ts.map +1 -1
  398. package/dist/cli/lib/invocation.js +5 -33
  399. package/dist/cli/lib/invocation.js.map +1 -1
  400. package/dist/cli/lib/log-stream.d.ts.map +1 -1
  401. package/dist/cli/lib/log-stream.js +15 -23
  402. package/dist/cli/lib/log-stream.js.map +1 -1
  403. package/dist/cli/lib/logger.d.ts.map +1 -1
  404. package/dist/cli/lib/logger.js +7 -12
  405. package/dist/cli/lib/logger.js.map +1 -1
  406. package/dist/cli/lib/organization.d.ts.map +1 -1
  407. package/dist/cli/lib/organization.js +5 -13
  408. package/dist/cli/lib/organization.js.map +1 -1
  409. package/dist/cli/lib/platform-address.d.ts +3 -0
  410. package/dist/cli/lib/platform-address.d.ts.map +1 -0
  411. package/dist/cli/lib/platform-address.js +7 -0
  412. package/dist/cli/lib/platform-address.js.map +1 -0
  413. package/dist/cli/lib/project-link.d.ts.map +1 -1
  414. package/dist/cli/lib/project-link.js +2 -4
  415. package/dist/cli/lib/project-link.js.map +1 -1
  416. package/dist/cli/lib/resolve.d.ts +2 -6
  417. package/dist/cli/lib/resolve.d.ts.map +1 -1
  418. package/dist/cli/lib/resolve.js +35 -34
  419. package/dist/cli/lib/resolve.js.map +1 -1
  420. package/dist/cli/lib/source-repository-link.d.ts.map +1 -1
  421. package/dist/cli/lib/source-repository-link.js +6 -9
  422. package/dist/cli/lib/source-repository-link.js.map +1 -1
  423. package/dist/cli/lib/terminal-output.d.ts +12 -0
  424. package/dist/cli/lib/terminal-output.d.ts.map +1 -0
  425. package/dist/cli/lib/terminal-output.js +69 -0
  426. package/dist/cli/lib/terminal-output.js.map +1 -0
  427. package/dist/cli/lib/types.d.ts +3 -7
  428. package/dist/cli/lib/types.d.ts.map +1 -1
  429. package/dist/cli/lib/types.js.map +1 -1
  430. package/dist/cli/lib/utf8.d.ts +2 -0
  431. package/dist/cli/lib/utf8.d.ts.map +1 -0
  432. package/dist/cli/lib/utf8.js +12 -0
  433. package/dist/cli/lib/utf8.js.map +1 -0
  434. package/dist/cli/root-options.d.ts.map +1 -1
  435. package/dist/cli/root-options.js +11 -14
  436. package/dist/cli/root-options.js.map +1 -1
  437. package/dist/cli-plugin.d.ts.map +1 -1
  438. package/dist/cli-plugin.js +2 -6
  439. package/dist/cli-plugin.js.map +1 -1
  440. package/dist/cloud-config-module.js +2 -2
  441. package/dist/cloud-config-module.js.map +1 -1
  442. package/dist/dev/cli-host.d.ts.map +1 -1
  443. package/dist/dev/cli-host.js +16 -19
  444. package/dist/dev/cli-host.js.map +1 -1
  445. package/dist/dev/dashboard-vite-config.d.ts +1 -0
  446. package/dist/dev/dashboard-vite-config.d.ts.map +1 -1
  447. package/dist/dev/dashboard-vite-config.js +26 -6
  448. package/dist/dev/dashboard-vite-config.js.map +1 -1
  449. package/dist/dev/dev-command.d.ts.map +1 -1
  450. package/dist/dev/dev-command.js +76 -39
  451. package/dist/dev/dev-command.js.map +1 -1
  452. package/dist/dev/dev-config.d.ts +3 -0
  453. package/dist/dev/dev-config.d.ts.map +1 -1
  454. package/dist/dev/dev-config.js +43 -13
  455. package/dist/dev/dev-config.js.map +1 -1
  456. package/dist/dev/dev-migrate.js +7 -9
  457. package/dist/dev/dev-migrate.js.map +1 -1
  458. package/dist/dev/dev-process.d.ts.map +1 -1
  459. package/dist/dev/dev-process.js +6 -10
  460. package/dist/dev/dev-process.js.map +1 -1
  461. package/dist/dev/dev-server.js +7 -6
  462. package/dist/dev/dev-server.js.map +1 -1
  463. package/dist/dev/dev-worker.js +5 -2
  464. package/dist/dev/dev-worker.js.map +1 -1
  465. package/dist/dev/local-services.d.ts.map +1 -1
  466. package/dist/dev/local-services.js +152 -106
  467. package/dist/dev/local-services.js.map +1 -1
  468. package/dist/dev/project-layout.d.ts.map +1 -1
  469. package/dist/dev/project-layout.js +12 -17
  470. package/dist/dev/project-layout.js.map +1 -1
  471. package/dist/dev/project-plugin-scope.d.ts +2 -0
  472. package/dist/dev/project-plugin-scope.d.ts.map +1 -0
  473. package/dist/dev/project-plugin-scope.js +38 -0
  474. package/dist/dev/project-plugin-scope.js.map +1 -0
  475. package/dist/entrypoint.js +2 -0
  476. package/dist/entrypoint.js.map +1 -1
  477. package/dist/index.d.ts.map +1 -1
  478. package/dist/index.js +3 -6
  479. package/dist/index.js.map +1 -1
  480. package/dist/local-asset-server.d.ts.map +1 -1
  481. package/dist/local-asset-server.js +7 -13
  482. package/dist/local-asset-server.js.map +1 -1
  483. package/dist/local-cache-plugin.d.ts.map +1 -1
  484. package/dist/local-cache-plugin.js +20 -28
  485. package/dist/local-cache-plugin.js.map +1 -1
  486. package/dist/local-cache.d.ts.map +1 -1
  487. package/dist/local-cache.js +40 -55
  488. package/dist/local-cache.js.map +1 -1
  489. package/dist/local-core.d.ts +2 -0
  490. package/dist/local-core.d.ts.map +1 -0
  491. package/dist/local-core.js +13 -0
  492. package/dist/local-core.js.map +1 -0
  493. package/dist/local-dashboard-plugin.d.ts.map +1 -1
  494. package/dist/local-dashboard-plugin.js +6 -11
  495. package/dist/local-dashboard-plugin.js.map +1 -1
  496. package/dist/local-database.d.ts.map +1 -1
  497. package/dist/local-database.js +20 -23
  498. package/dist/local-database.js.map +1 -1
  499. package/dist/local-durable-execution-plugin.d.ts +15 -0
  500. package/dist/local-durable-execution-plugin.d.ts.map +1 -0
  501. package/dist/local-durable-execution-plugin.js +305 -0
  502. package/dist/local-durable-execution-plugin.js.map +1 -0
  503. package/dist/local-runtime-guard.d.ts +2 -0
  504. package/dist/local-runtime-guard.d.ts.map +1 -1
  505. package/dist/local-runtime-guard.js +40 -3
  506. package/dist/local-runtime-guard.js.map +1 -1
  507. package/dist/local-runtime.d.ts.map +1 -1
  508. package/dist/local-runtime.js +53 -43
  509. package/dist/local-runtime.js.map +1 -1
  510. package/package.json +20 -14
  511. package/dist/cli/commands/identity-context/login.d.ts +0 -2
  512. package/dist/cli/commands/identity-context/login.d.ts.map +0 -1
  513. package/dist/cli/commands/identity-context/login.js +0 -158
  514. package/dist/cli/commands/identity-context/login.js.map +0 -1
  515. package/dist/cli/commands/identity-context/logout.d.ts +0 -2
  516. package/dist/cli/commands/identity-context/logout.d.ts.map +0 -1
  517. package/dist/cli/commands/identity-context/logout.js +0 -12
  518. package/dist/cli/commands/identity-context/logout.js.map +0 -1
  519. package/dist/cli/commands/identity-context/org-switch.d.ts +0 -3
  520. package/dist/cli/commands/identity-context/org-switch.d.ts.map +0 -1
  521. package/dist/cli/commands/identity-context/org-switch.js +0 -71
  522. package/dist/cli/commands/identity-context/org-switch.js.map +0 -1
  523. package/dist/cli/commands/identity-context/whoami.d.ts +0 -3
  524. package/dist/cli/commands/identity-context/whoami.d.ts.map +0 -1
  525. package/dist/cli/commands/identity-context/whoami.js +0 -80
  526. package/dist/cli/commands/identity-context/whoami.js.map +0 -1
  527. package/dist/cli/lib/file-lock.d.ts +0 -23
  528. package/dist/cli/lib/file-lock.d.ts.map +0 -1
  529. package/dist/cli/lib/file-lock.js +0 -121
  530. package/dist/cli/lib/file-lock.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendure/cloud",
3
- "version": "0.3.2",
3
+ "version": "0.5.0-dev.20261014172655.g652e750",
4
4
  "type": "module",
5
5
  "description": "The package a Vendure Cloud application installs. Re-exports the Cloud Config interface and the platform-supplied plugins.",
6
6
  "license": "MIT",
@@ -31,7 +31,6 @@
31
31
  "cliPlugin": "./dist/cli-plugin.js",
32
32
  "cliCommands": [
33
33
  "init",
34
- "login",
35
34
  "context",
36
35
  "use",
37
36
  "project",
@@ -48,11 +47,7 @@
48
47
  "backup",
49
48
  "restore",
50
49
  "tunnel",
51
- "seed",
52
- "org",
53
- "key",
54
- "whoami",
55
- "logout"
50
+ "key"
56
51
  ]
57
52
  },
58
53
  "exports": {
@@ -77,7 +72,8 @@
77
72
  "README.md"
78
73
  ],
79
74
  "publishConfig": {
80
- "access": "public"
75
+ "access": "public",
76
+ "tag": "dev"
81
77
  },
82
78
  "scripts": {
83
79
  "build": "tsc",
@@ -94,13 +90,15 @@
94
90
  "dependencies": {
95
91
  "@clack/prompts": "^0.11.0",
96
92
  "@vendure/asset-server-plugin": "^3.7.0",
97
- "@vendure/cloud-config": "0.3.2",
93
+ "@vendure/cloud-config": "0.5.0-dev.20261014172655.g652e750",
98
94
  "picocolors": "^1.1.0",
99
95
  "pino": "^10.3.1",
96
+ "wrap-ansi": "^10.0.1",
100
97
  "zod": "^4.0.0"
101
98
  },
102
99
  "peerDependencies": {
103
- "@vendure/cli": "3.8.0-minor-202609071236",
100
+ "@dbos-inc/dbos-sdk": "^4.27.6",
101
+ "@vendure/cli": "3.8.0",
104
102
  "@vendure/core": "^3.7.0",
105
103
  "@vendure/dashboard": "^3.7.0",
106
104
  "ioredis": "^5.3.2",
@@ -109,9 +107,15 @@
109
107
  "vite": "^7.3.1"
110
108
  },
111
109
  "peerDependenciesMeta": {
110
+ "@dbos-inc/dbos-sdk": {
111
+ "optional": true
112
+ },
112
113
  "@vendure/cli": {
113
114
  "optional": true
114
115
  },
116
+ "@vendure/core": {
117
+ "optional": true
118
+ },
115
119
  "@vendure/dashboard": {
116
120
  "optional": true
117
121
  },
@@ -129,18 +133,20 @@
129
133
  }
130
134
  },
131
135
  "devDependencies": {
136
+ "@dbos-inc/dbos-sdk": "4.27.6",
132
137
  "@types/node": "^22.20.1",
133
138
  "@types/pg": "^8.15.5",
134
139
  "@vendure-cloud/api-types": "workspace:*",
135
140
  "@vendure-cloud/environment-state": "workspace:*",
136
141
  "@vendure-cloud/tsconfig": "workspace:*",
137
- "@vendure/asset-server-plugin": "3.7.2",
138
- "@vendure/core": "3.7.2",
139
- "@vendure/dashboard": "3.7.2",
142
+ "@vendure/asset-server-plugin": "3.7.3",
143
+ "@vendure/core": "3.7.3",
144
+ "@vendure/dashboard": "3.7.3",
140
145
  "ioredis": "^5.11.1",
141
146
  "pg": "8.22.0",
142
147
  "typeorm": "^0.3.30",
143
148
  "typescript": "catalog:",
144
149
  "vitest": "^3.2.6"
145
- }
150
+ },
151
+ "gitHead": "652e7506f4aefd79a05bb85e8e9f7e7559506938"
146
152
  }
@@ -1,2 +0,0 @@
1
- export declare function login(): Promise<number | undefined>;
2
- //# sourceMappingURL=login.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/identity-context/login.ts"],"names":[],"mappings":"AAyCA,wBAAsB,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8GzD"}
@@ -1,158 +0,0 @@
1
- import * as prompts from "@clack/prompts";
2
- import { API_AUTH_CONFIG_TIMEOUT_MS, WORKOS_AUTHENTICATE_URL, WORKOS_AUTH_REQUEST_TIMEOUT_MS, WORKOS_DEVICE_AUTHORIZE_URL, cloudInvocation, createApiClient, exchangeRefreshToken, getApiUrl, openBrowser, readAuthConfig, sleep, withSessionLock, writeAuthConfig, } from "../../index.js";
3
- // Answers with an exit code rather than setting `process.exitCode`: the host exits with whatever a
4
- // command action returns. A login that was cancelled at the organization picker saved nothing and
5
- // left the account signed out, so a script must not read it as a completed login.
6
- export async function login() {
7
- prompts.intro("Vendure Cloud Login");
8
- const existing = readAuthConfig();
9
- if (existing) {
10
- const shouldContinue = await prompts.confirm({
11
- initialValue: false,
12
- message: `Already logged in as ${existing.user.email}. Continue and re-authenticate?`,
13
- });
14
- if (prompts.isCancel(shouldContinue) || !shouldContinue) {
15
- prompts.outro("Login cancelled.");
16
- return undefined;
17
- }
18
- }
19
- const apiUrl = getApiUrl();
20
- const publicClient = createApiClient({ baseUrl: apiUrl });
21
- const { workosClientId } = await publicClient.get("/auth/cli-config");
22
- const deviceResponse = await fetchWorkos(WORKOS_DEVICE_AUTHORIZE_URL, {
23
- method: "POST",
24
- headers: { "content-type": "application/x-www-form-urlencoded" },
25
- body: new URLSearchParams({ client_id: workosClientId }),
26
- }, API_AUTH_CONFIG_TIMEOUT_MS);
27
- if (!deviceResponse.ok) {
28
- throw new Error("Failed to start device authorization flow");
29
- }
30
- const device = (await deviceResponse.json());
31
- prompts.note(`Your code: ${device.user_code}\n\nIf the browser doesn't open, visit:\n${device.verification_uri_complete}`, "Open the URL in your browser to authenticate");
32
- openBrowser(device.verification_uri_complete);
33
- const spinner = prompts.spinner();
34
- spinner.start("Waiting for authentication...");
35
- let token;
36
- try {
37
- token = await pollForToken(workosClientId, device.device_code, device.interval, device.expires_in);
38
- }
39
- catch (error) {
40
- spinner.stop("Authentication failed.");
41
- throw error;
42
- }
43
- spinner.stop("Authenticated!");
44
- const userName = [token.user.first_name, token.user.last_name].filter(Boolean).join(" ") || null;
45
- const authedClient = createApiClient({ baseUrl: apiUrl, token: token.access_token });
46
- const orgs = await authedClient.get("/auth/organizations");
47
- if (orgs.length === 0) {
48
- throw new Error("No organization is set up for your account. Contact support to get started.");
49
- }
50
- const activeOrg = await resolveActiveOrganization(orgs, token.organization_id);
51
- if (!activeOrg) {
52
- // Nothing was saved and the account is not signed in, so a caller must not read this exit as a
53
- // completed login.
54
- prompts.outro("Login cancelled.");
55
- return 1;
56
- }
57
- // The device-flow token is scoped to WorkOS's default org for this user. If they picked (or only
58
- // have) a different org, re-mint the token scoped to it so its `org_id` + `permissions` claims
59
- // match the active org — otherwise permissioned calls 403 against the "wrong" org's claims.
60
- //
61
- // Under the session lock: the re-mint spends a single-use refresh token, and the write must not
62
- // interleave with a concurrent command's refresh writing its rotated pair over this brand-new
63
- // session.
64
- await withSessionLock(async () => {
65
- let accessToken = token.access_token;
66
- let refreshToken = token.refresh_token;
67
- try {
68
- const pair = await exchangeRefreshToken(token.refresh_token, activeOrg.workosOrgId);
69
- accessToken = pair.accessToken;
70
- refreshToken = pair.refreshToken;
71
- }
72
- catch {
73
- // The re-mint failed (network blip, authentication service hiccup). Persist the device-flow
74
- // tokens anyway so the user lands logged in rather than stranded with a consumed token and
75
- // no config. The session is just unscoped (default org) until they retry — `org switch`
76
- // re-mints.
77
- prompts.log.warn(`Signed in, but couldn't scope your session to ${activeOrg.name}. Run \`${cloudInvocation()} org switch\` to finish scoping.`);
78
- }
79
- writeAuthConfig({
80
- accessToken,
81
- refreshToken,
82
- user: { id: token.user.id, email: token.user.email, name: userName },
83
- activeOrganizationId: activeOrg.id,
84
- organizations: orgs,
85
- });
86
- });
87
- prompts.outro(`Logged in as ${token.user.email} (org: ${activeOrg.name})`);
88
- return undefined;
89
- }
90
- // The browser step already asks a multi-organization user which organization to sign in to, and
91
- // reports it back as an external organization id. Honouring that answer stops the CLI asking the
92
- // same question again, and lets a login finish where there is no terminal to answer a prompt. The
93
- // picker is only reached when the browser sent no organization, or named one this account can no
94
- // longer see. Returns null when the user cancels the picker.
95
- async function resolveActiveOrganization(orgs, browserOrganizationId) {
96
- const fromBrowser = browserOrganizationId
97
- ? orgs.find((org) => org.workosOrgId === browserOrganizationId)
98
- : undefined;
99
- if (fromBrowser) {
100
- return fromBrowser;
101
- }
102
- if (orgs.length === 1) {
103
- return orgs[0];
104
- }
105
- if (!process.stdin.isTTY) {
106
- throw new Error(`Could not tell which organization this session belongs to. Run \`${cloudInvocation()} login\` again in an interactive terminal and choose one.`);
107
- }
108
- const selected = await prompts.select({
109
- message: "Select an organization:",
110
- options: orgs.map((org) => ({ value: org, label: `${org.name} (${org.slug})` })),
111
- });
112
- return prompts.isCancel(selected) ? null : selected;
113
- }
114
- async function pollForToken(clientId, deviceCode, initialInterval, expiresIn) {
115
- const deadline = Date.now() + expiresIn * 1000;
116
- let pollInterval = initialInterval;
117
- while (Date.now() < deadline) {
118
- await sleep(pollInterval * 1000);
119
- const response = await fetchWorkos(WORKOS_AUTHENTICATE_URL, {
120
- method: "POST",
121
- headers: { "content-type": "application/json" },
122
- body: JSON.stringify({
123
- client_id: clientId,
124
- device_code: deviceCode,
125
- grant_type: "urn:ietf:params:oauth:grant-type:device_code",
126
- }),
127
- }, WORKOS_AUTH_REQUEST_TIMEOUT_MS);
128
- if (response.ok) {
129
- return response.json();
130
- }
131
- const body = (await response.json().catch(() => ({})));
132
- const error = typeof body.error === "string" ? body.error : undefined;
133
- if (error === "authorization_pending") {
134
- continue;
135
- }
136
- if (error === "slow_down") {
137
- pollInterval += 1;
138
- continue;
139
- }
140
- if (error === "expired_token") {
141
- throw new Error("Device code expired. Please try again.");
142
- }
143
- throw new Error(`Authentication failed: ${error || response.statusText}`);
144
- }
145
- throw new Error("Device code expired. Please try again.");
146
- }
147
- async function fetchWorkos(url, init, timeoutMs) {
148
- try {
149
- return await fetch(url, {
150
- ...init,
151
- signal: AbortSignal.timeout(timeoutMs),
152
- });
153
- }
154
- catch (error) {
155
- throw new Error("Could not reach the authentication service. Check your connection and try again.", { cause: error });
156
- }
157
- }
158
- //# sourceMappingURL=login.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/cli/commands/identity-context/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAE1B,uBAAuB,EACvB,8BAA8B,EAC9B,2BAA2B,EAC3B,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,cAAc,EACd,KAAK,EACL,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAsBxB,mGAAmG;AACnG,kGAAkG;AAClG,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YAC3C,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,wBAAwB,QAAQ,CAAC,IAAI,CAAC,KAAK,iCAAiC;SACtF,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,YAAY,CAAC,GAAG,CAA6B,kBAAkB,CAAC,CAAC;IAElG,MAAM,cAAc,GAAG,MAAM,WAAW,CACtC,2BAA2B,EAC3B;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;KACzD,EACD,0BAA0B,CAC3B,CAAC;IACF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAuB,CAAC;IAEnE,OAAO,CAAC,IAAI,CACV,cAAc,MAAM,CAAC,SAAS,4CAA4C,MAAM,CAAC,yBAAyB,EAAE,EAC5G,8CAA8C,CAC/C,CAAC;IAEF,WAAW,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE/C,IAAI,KAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,YAAY,CACxB,cAAc,EACd,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,CAClB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvC,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE/B,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAEjG,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAqB,qBAAqB,CAAC,CAAC;IAE/E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,+FAA+F;QAC/F,mBAAmB;QACnB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,iGAAiG;IACjG,+FAA+F;IAC/F,4FAA4F;IAC5F,EAAE;IACF,gGAAgG;IAChG,8FAA8F;IAC9F,WAAW;IACX,MAAM,eAAe,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC;QACrC,IAAI,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YACpF,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,4FAA4F;YAC5F,2FAA2F;YAC3F,wFAAwF;YACxF,YAAY;YACZ,OAAO,CAAC,GAAG,CAAC,IAAI,CACd,iDAAiD,SAAS,CAAC,IAAI,WAAW,eAAe,EAAE,kCAAkC,CAC9H,CAAC;QACJ,CAAC;QAED,eAAe,CAAC;YACd,WAAW;YACX,YAAY;YACZ,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpE,oBAAoB,EAAE,SAAS,CAAC,EAAE;YAClC,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gGAAgG;AAChG,iGAAiG;AACjG,kGAAkG;AAClG,iGAAiG;AACjG,6DAA6D;AAC7D,KAAK,UAAU,yBAAyB,CACtC,IAAwB,EACxB,qBAAyC;IAEzC,MAAM,WAAW,GAAG,qBAAqB;QACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,qBAAqB,CAAC;QAC/D,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,oEAAoE,eAAe,EAAE,2DAA2D,CACjJ,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAmB;QACtD,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;KACjF,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,UAAkB,EAClB,eAAuB,EACvB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/C,IAAI,YAAY,GAAG,eAAe,CAAC;IAEnC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAEjC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,uBAAuB,EACvB;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,8CAA8C;aAC3D,CAAC;SACH,EACD,8BAA8B,CAC/B,CAAC;QAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC,IAAI,EAAkC,CAAC;QACzD,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;QAClF,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtE,IAAI,KAAK,KAAK,uBAAuB,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1B,YAAY,IAAI,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,IAAiB,EAAE,SAAiB;IAC1E,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE;YACtB,GAAG,IAAI;YACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,kFAAkF,EAClF,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function logout(): Promise<void>;
2
- //# sourceMappingURL=logout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/identity-context/logout.ts"],"names":[],"mappings":"AAGA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ5C"}
@@ -1,12 +0,0 @@
1
- import * as prompts from "@clack/prompts";
2
- import { clearAuthConfig, readAuthConfig } from "../../index.js";
3
- export async function logout() {
4
- const existing = readAuthConfig();
5
- if (!existing) {
6
- prompts.log.info("Not currently logged in.");
7
- return;
8
- }
9
- clearAuthConfig();
10
- prompts.log.success("Logged out successfully.");
11
- }
12
- //# sourceMappingURL=logout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../../src/cli/commands/identity-context/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,eAAe,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAClD,CAAC"}
@@ -1,3 +0,0 @@
1
- import { type CloudCommandInput } from "../../index.js";
2
- export declare function switchOrganization({ globals, }: CloudCommandInput): Promise<number | undefined>;
3
- //# sourceMappingURL=org-switch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"org-switch.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/identity-context/org-switch.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EAMvB,MAAM,gBAAgB,CAAC;AAExB,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,GACR,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2EjD"}
@@ -1,71 +0,0 @@
1
- import * as prompts from "@clack/prompts";
2
- import { cloudInvocation, createAuthenticatedClient, readAuthConfig, resolveCredential, rotateActiveOrganization, } from "../../index.js";
3
- export async function switchOrganization({ globals, }) {
4
- // This command re-mints and rewrites the stored login, so it only ever operates on that
5
- // credential. An API key is already scoped to a single organization and owns no session to
6
- // rewrite — say so rather than acting on a credential the caller did not name.
7
- if (resolveCredential(globals)?.kind === "apiKey") {
8
- throw new Error(`\`${cloudInvocation()} org switch\` changes the organization of your stored login. An API key is scoped to one organization and cannot be switched.`);
9
- }
10
- const config = readAuthConfig();
11
- if (!config) {
12
- prompts.log.warn(`Not logged in. Run \`${cloudInvocation()} login\` to authenticate.`);
13
- // The exit code is returned, not assigned to `process.exitCode`; see `defineCloudCommand`.
14
- return 1;
15
- }
16
- // Re-fetch the membership list rather than trusting the stored copy: it gives us the up-to-date
17
- // set (membership can change between logins) and, crucially, the `workosOrgId` needed to re-mint
18
- // the token — older configs were persisted before that field existed. createAuthenticatedClient
19
- // wires the 401-retry refresh so an expired stored token self-heals here.
20
- const client = createAuthenticatedClient(globals);
21
- const organizations = await client.get("/auth/organizations");
22
- if (organizations.length <= 1) {
23
- prompts.log.info("You only belong to one organization.");
24
- return undefined;
25
- }
26
- const selected = await prompts.select({
27
- message: "Select an organization:",
28
- options: organizations.map((org) => ({
29
- value: org.id,
30
- label: `${org.name} (${org.slug})`,
31
- hint: org.id === config.activeOrganizationId ? "current" : undefined,
32
- })),
33
- });
34
- if (prompts.isCancel(selected)) {
35
- prompts.log.info("Switch cancelled.");
36
- return undefined;
37
- }
38
- const target = organizations.find((o) => o.id === selected);
39
- if (!target) {
40
- throw new Error("Selected organization not found.");
41
- }
42
- // Re-mint the access token scoped to the chosen org so its `org_id` + `permissions` claims
43
- // match. Flipping `activeOrganizationId` alone would leave the JWT scoped to the previous org
44
- // and 403 every permissioned call. rotateActiveOrganization does the exchange and the write as
45
- // one locked unit so it cannot double-spend the refresh token against a concurrent command, or
46
- // overwrite that command's rotation with a stale snapshot.
47
- const spinner = prompts.spinner();
48
- spinner.start(`Switching to ${target.name}...`);
49
- try {
50
- await rotateActiveOrganization({
51
- organizationId: target.id,
52
- workosOrgId: target.workosOrgId,
53
- organizations,
54
- });
55
- }
56
- catch (error) {
57
- spinner.stop("Switch failed.");
58
- // The config is never half-written: rotateActiveOrganization persists the new pair and the new
59
- // active org in one atomic replace, or not at all, so a failed switch cannot strand the user
60
- // between orgs.
61
- //
62
- // It can still end the session outright. If the re-mint comes back with the refresh token
63
- // rejected, that token is dead no matter which command found out, and the stored credentials
64
- // go with it — the user has to log in again. Every other failure leaves the existing session
65
- // intact.
66
- throw error;
67
- }
68
- spinner.stop(`Switched to ${target.name} (${target.slug}).`);
69
- return undefined;
70
- }
71
- //# sourceMappingURL=org-switch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"org-switch.js","sourceRoot":"","sources":["../../../../src/cli/commands/identity-context/org-switch.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { type CloudCommandInput } from "../../index.js";
2
- export declare function whoami({ globals }: CloudCommandInput): Promise<number | undefined>;
3
- //# sourceMappingURL=whoami.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/identity-context/whoami.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,iBAAiB,EAOvB,MAAM,gBAAgB,CAAC;AASxB,wBAAsB,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkBxF"}
@@ -1,80 +0,0 @@
1
- import * as prompts from "@clack/prompts";
2
- import { cloudInvocation, createApiClient, getApiUrl, readAuthConfig, refreshAccessToken, resolveCredential, } from "../../index.js";
3
- export async function whoami({ globals }) {
4
- const credential = resolveCredential(globals);
5
- if (!credential) {
6
- prompts.log.warn(`Not logged in. Run \`${cloudInvocation()} login\` to authenticate.`);
7
- // The exit code is returned, not assigned to `process.exitCode`; see `defineCloudCommand`.
8
- return 1;
9
- }
10
- // `/auth/me` echoes the credential's own resolved identity, so it reports what the credential is
11
- // rather than what local config claims.
12
- const me = await createWhoamiClient(credential).get("/auth/me");
13
- if (credential.kind === "apiKey") {
14
- reportApiKey(me);
15
- return undefined;
16
- }
17
- reportSession(me, readAuthConfig());
18
- return undefined;
19
- }
20
- // Not `createAuthenticatedClient`: whoami is the command you run to find out why the others are
21
- // refusing, so a session with no active organization has to reach `/auth/me` rather than be turned
22
- // away locally.
23
- function createWhoamiClient(credential) {
24
- if (credential.kind === "apiKey") {
25
- return createApiClient({ baseUrl: getApiUrl(), apiKey: credential.token });
26
- }
27
- return createApiClient({
28
- baseUrl: getApiUrl(),
29
- token: credential.token,
30
- organizationId: credential.organizationId ?? undefined,
31
- // Only a token that came from the stored session has a refresh token behind it, and this is
32
- // that token.
33
- onUnauthorized: (failedToken) => refreshAccessToken(failedToken),
34
- });
35
- }
36
- // An API key authenticates an organization, not a person, so there is no user to report and no
37
- // local session to compare against.
38
- function reportApiKey(me) {
39
- prompts.log.info("Auth: API key");
40
- if (me.dbOrganization?.slug) {
41
- prompts.log.info(`Org: ${me.dbOrganization.slug}`);
42
- }
43
- else {
44
- prompts.log.warn("This API key does not resolve to an organization.");
45
- }
46
- }
47
- function reportSession(me, authConfig) {
48
- const email = me.dbUser?.email ?? "Unknown";
49
- prompts.log.info(`Email: ${email}`);
50
- if (authConfig?.user.name) {
51
- prompts.log.info(`Name: ${authConfig.user.name}`);
52
- }
53
- // The org the token is actually scoped to, taken from the token's own `org_id` claim. We do NOT
54
- // report the org recorded in local config: config can drift from the token, and reporting config
55
- // state would hide that drift. That masking is exactly what made the CLO-124 split-state bug so
56
- // hard to diagnose. Map the WorkOS org_id to a friendly name via the stored membership list;
57
- // fall back to the raw id if it isn't in the list (e.g. a token scoped to an org added since
58
- // last login).
59
- if (me.org_id) {
60
- const tokenOrg = authConfig?.organizations.find((o) => o.workosOrgId === me.org_id);
61
- prompts.log.info(`Org: ${tokenOrg ? `${tokenOrg.name} (${me.org_id})` : me.org_id}`);
62
- if (me.role) {
63
- prompts.log.info(`Role: ${me.role}`);
64
- }
65
- }
66
- else {
67
- // The token carries no org scope — e.g. a device-flow token whose org-scoped re-mint failed
68
- // during login (see CLO-124 fallback). Say so explicitly rather than printing Email/Name and
69
- // falling silent.
70
- prompts.log.warn(`Your session has no organization scope. Run \`${cloudInvocation()} org switch\` to scope it.`);
71
- }
72
- // Surface a drift between the token's org and the CLI's "active" org rather than silently
73
- // trusting config. Post-CLO-124 this shouldn't happen via login/org switch, but a stale token or
74
- // hand-edited config still could.
75
- const activeOrg = authConfig?.organizations.find((o) => o.id === authConfig.activeOrganizationId);
76
- if (activeOrg && me.org_id && activeOrg.workosOrgId !== me.org_id) {
77
- prompts.log.warn(`Your token is scoped to a different organization than your active org (${activeOrg.name}). Run \`${cloudInvocation()} org switch\` to re-scope.`);
78
- }
79
- }
80
- //# sourceMappingURL=whoami.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../../src/cli/commands/identity-context/whoami.ts"],"names":[],"mappings":"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"}
@@ -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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"}