@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
@@ -1,44 +1,41 @@
1
1
  import * as prompts from "@clack/prompts";
2
- import { createAuthenticatedClient, resolveEnvironment, } from "../../index.js";
2
+ import { createAuthenticatedClient, output, resolveEnvironment, } from "../../index.js";
3
3
  import { isPlanPreviewUnavailable, } from "../../lib/contract/deployments.js";
4
4
  import { formatEnvPreflightSkipped, formatMissingEnvVarsWarning, runEnvVarPreflight, } from "../../lib/env-preflight.js";
5
- import { readImageOptions } from "./options.js";
6
5
  import { formatActionLine, formatKeptActionLine, isKeptAction, summarizeActions, } from "./plan-format.js";
7
- import { resolveDeploymentSource } from "./source.js";
8
- export async function deployPlan({ options, globals }) {
9
- const imageOpts = readImageOptions(options);
6
+ import { requireBranchMapping } from "./source.js";
7
+ export async function deployPlan({ globals }) {
10
8
  const { environment } = await resolveEnvironment(globals);
11
9
  const json = globals.json === true;
12
- const client = createAuthenticatedClient(globals);
13
- const source = await resolveDeploymentSource(client, environment, imageOpts);
10
+ const client = await createAuthenticatedClient(globals);
11
+ // A plan for an environment with no branch mapping is a plan for a deploy that could not run.
12
+ await requireBranchMapping(client, environment);
14
13
  if (!json) {
15
14
  const preflight = await runEnvVarPreflight(client, environment.id);
16
15
  if (preflight.status === "not-checked") {
17
- prompts.log.info(formatEnvPreflightSkipped(preflight.reason));
16
+ output.info(formatEnvPreflightSkipped(preflight.reason));
18
17
  }
19
18
  else if (preflight.missing.length > 0) {
20
- prompts.log.warn(formatMissingEnvVarsWarning(preflight.missing, environment.slug));
19
+ output.warn(formatMissingEnvVarsWarning(preflight.missing, environment.slug));
21
20
  }
22
21
  }
23
22
  const spinner = prompts.spinner();
24
23
  spinner.start("Computing infrastructure plan...");
25
24
  const result = await client.post("/deployments/plan", {
26
25
  environmentId: environment.id,
27
- ...(source.kind === "prebuilt-images" ? source.images : {}),
28
26
  });
29
27
  const { plan } = result;
30
28
  spinner.stop(`Plan: ${plan.projectName} / ${plan.environmentName}`);
31
- // A plan the platform could not compute is not a plan that found nothing, and reporting the
32
- // second would tell a customer their deploy changes nothing.
29
+ // A plan the platform could not compute is not a plan with no changes.
33
30
  if (isPlanPreviewUnavailable(plan)) {
34
- prompts.note(plan.previewUnavailableReason ?? "", "Resources");
31
+ output.note(plan.previewUnavailableReason ?? "", "Resources");
35
32
  prompts.outro("Resource changes could not be previewed.");
36
33
  return;
37
34
  }
38
35
  const actionLines = plan.actions
39
36
  .map((action) => isKeptAction(action) ? formatKeptActionLine(action) : formatActionLine(action))
40
37
  .join("\n");
41
- prompts.note(actionLines || "No resource changes", "Resources");
38
+ output.note(actionLines || "No resource changes", "Resources");
42
39
  const { create, update, delete: del, keep } = summarizeActions(plan.actions);
43
40
  const parts = [];
44
41
  if (create > 0)
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type ApiClient, type Deployment } from "../../index.js";
2
+ import type { DeploymentRecovery } from "../../lib/contract/deployments.js";
3
+ export interface DeploymentRecoveryResult {
4
+ recovery: DeploymentRecovery | null;
5
+ unavailableReason: string | null;
6
+ }
7
+ export declare function fetchDeploymentRecovery(client: ApiClient, deployment: Pick<Deployment, "id" | "status">): Promise<DeploymentRecoveryResult>;
8
+ export declare function formatDeploymentRecovery(recovery: DeploymentRecovery, deploymentId: string): string;
9
+ //# sourceMappingURL=recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/recovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAoB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAa5E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAmBD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,CAAC,GAC5C,OAAO,CAAC,wBAAwB,CAAC,CAkBnC;AAkCD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,MAAM,GACnB,MAAM,CAQR"}
@@ -0,0 +1,76 @@
1
+ import { CLOUD_INVOCATION } from "../../index.js";
2
+ import { LOG_SERVICES } from "../../lib/contract/logs.js";
3
+ import { logger } from "../../lib/logger.js";
4
+ import { BATCH_ONLY_SERVICE } from "./logs.js";
5
+ const NO_RECOVERY = { recovery: null, unavailableReason: null };
6
+ // A deployment that ended without failing has no stage to report, so each says why. A successful or
7
+ // in-flight deployment needs no sentence.
8
+ const NO_RECOVERY_FOR_STATUS = {
9
+ CANCELLED: "This deployment was cancelled rather than failing, so there is no stage to recover from.",
10
+ DEGRADED: "This deployment is reported as degraded rather than failed, so there is no stage to recover from. Check what your environment is running.",
11
+ };
12
+ // Asks only for a deployment that failed, the only kind with an answer and the only kind whose
13
+ // answer can cost the control plane a read of its durable-operation history.
14
+ //
15
+ // Nothing here throws. This block is guidance added to a failure the customer was already shown,
16
+ // so a control plane that cannot answer must not replace that failure with a second one. A control
17
+ // plane older than the endpoint answers 404 during its own rollout.
18
+ export async function fetchDeploymentRecovery(client, deployment) {
19
+ if (deployment.status !== "FAILED") {
20
+ const reason = NO_RECOVERY_FOR_STATUS[deployment.status];
21
+ return reason ? { recovery: null, unavailableReason: reason } : NO_RECOVERY;
22
+ }
23
+ try {
24
+ const recovery = await client.get(`/deployments/${encodeURIComponent(deployment.id)}/recovery`);
25
+ return { recovery, unavailableReason: null };
26
+ }
27
+ catch (error) {
28
+ const reason = error instanceof Error ? error.message : String(error);
29
+ logger.warn({ deploymentId: deployment.id, error: reason }, "Could not read the recovery");
30
+ return {
31
+ recovery: null,
32
+ unavailableReason: "This deployment's recovery could not be read from the control plane.",
33
+ };
34
+ }
35
+ }
36
+ // Keyed so an action added to the contract without a command here is a compile error.
37
+ const ACTION_COMMANDS = {
38
+ DEPLOY_AGAIN: () => [`${CLOUD_INVOCATION} deploy`],
39
+ FIX_SOURCE_AND_DEPLOY: (deploymentId) => [
40
+ `${CLOUD_INVOCATION} deployment logs ${deploymentId}`,
41
+ `${CLOUD_INVOCATION} deploy`,
42
+ ],
43
+ FIX_MIGRATION_AND_DEPLOY: () => [
44
+ `${CLOUD_INVOCATION} logs --service ${BATCH_ONLY_SERVICE}`,
45
+ `${CLOUD_INVOCATION} deploy`,
46
+ ],
47
+ // `status` precedes the logs, which precede the rollback. A rollout that stopped part-way can
48
+ // leave either release running; `status` reports service health and the failed latest deployment,
49
+ // and the logs identify the running release.
50
+ ROLLBACK: () => [
51
+ `${CLOUD_INVOCATION} status`,
52
+ ...LOG_SERVICES.map((service) => `${CLOUD_INVOCATION} logs --service ${service}`),
53
+ `${CLOUD_INVOCATION} deployment list`,
54
+ `${CLOUD_INVOCATION} rollback <deployment-id>`,
55
+ ],
56
+ // No command. The block is printed by the one that would be listed here, and what support needs
57
+ // is the deployment's ID, which `formatDeploymentRecovery` prints instead.
58
+ CONTACT_SUPPORT: () => [],
59
+ INSPECT_ENVIRONMENT: () => [`${CLOUD_INVOCATION} status`],
60
+ };
61
+ // One label per line with the prose beneath it. `output.warn` wraps through `wrapLine`, which takes
62
+ // a continuation line's indent from the leading whitespace of the line it wraps, so prose written
63
+ // beside its label wraps back to column zero on a narrow terminal.
64
+ export function formatDeploymentRecovery(recovery, deploymentId) {
65
+ const lines = [`Failed stage: ${recovery.stageLabel ?? "not known"}`];
66
+ if (recovery.stageUnavailableReason)
67
+ lines.push(` ${recovery.stageUnavailableReason}`);
68
+ lines.push("", ` ${recovery.summary}`, "", "Next step:", ` ${recovery.nextActionMessage}`, "");
69
+ const commands = ACTION_COMMANDS[recovery.nextAction](deploymentId);
70
+ if (commands.length === 0)
71
+ lines.push(` Deployment ID: ${deploymentId}`);
72
+ for (const command of commands)
73
+ lines.push(` ${command}`);
74
+ return lines.join("\n");
75
+ }
76
+ //# sourceMappingURL=recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/recovery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EAYvB,MAAM,gBAAgB,CAAC;AAOxB,wBAAsB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2DhG"}
1
+ {"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iBAAiB,EAYvB,MAAM,gBAAgB,CAAC;AAYxB,wBAAsB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2EhG"}
@@ -1,20 +1,30 @@
1
1
  import * as prompts from "@clack/prompts";
2
2
  import pc from "picocolors";
3
- import { FAILED_STATUSES, SUCCESS_STATUSES, TERMINAL_STATUSES, cloudInvocation, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, resolveEnvironment, sleep, } from "../../index.js";
3
+ import { CLOUD_INVOCATION, FAILED_STATUSES, SUCCESS_STATUSES, TERMINAL_STATUSES, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, output, resolveEnvironment, sleep, } from "../../index.js";
4
+ import { fetchConfigRevisionStatus } from "../../lib/config-revisions.js";
5
+ import { logger } from "../../lib/logger.js";
4
6
  import { optionalArgument } from "./arguments.js";
5
7
  import { resolveDeploymentIdInEnvironment } from "./shared.js";
6
8
  const POLL_INTERVAL_MS = 3_000;
7
- const TIMEOUT_MS = 15 * 60 * 1000;
9
+ // Fallback for a control plane that does not expose its own budget, the same one `deploy.ts`
10
+ // carries. A rollback submits the same apply operation a deploy does, so it waits out the same
11
+ // deadlines.
12
+ const LEGACY_TIMEOUT_MS = 60 * 60 * 1000;
8
13
  export async function rollback({ args, globals }) {
9
14
  const deploymentId = optionalArgument(args, 0, "deploymentId");
10
15
  const { project, environment } = await resolveEnvironment(globals);
11
- const client = createAuthenticatedClient(globals);
12
- prompts.log.warn("Rollback restores application/runtime state only. It does not restore database contents or schema.");
16
+ const client = await createAuthenticatedClient(globals);
17
+ output.warn("Rollback restores application/runtime state only. It does not restore database contents or schema.");
13
18
  const targetDeploymentId = deploymentId
14
19
  ? await resolveDeploymentIdInEnvironment(client, environment.id, deploymentId)
15
20
  : await selectRollbackTarget(client, environment.id, project.slug, environment.slug);
16
21
  if (!targetDeploymentId)
17
22
  return;
23
+ const { restoredRevision, proceed } = await checkConfiguration(client, environment.id, targetDeploymentId);
24
+ if (!proceed) {
25
+ prompts.outro("Rollback cancelled.");
26
+ return;
27
+ }
18
28
  const deployment = await client.post(`/environments/${environment.id}/rollback`, {
19
29
  targetDeploymentId,
20
30
  });
@@ -22,10 +32,11 @@ export async function rollback({ args, globals }) {
22
32
  spinner.start("Rollback in progress...");
23
33
  let current = deployment;
24
34
  const startedAt = Date.now();
35
+ const timeoutMs = (deployment.pollingTimeoutSeconds ?? LEGACY_TIMEOUT_MS / 1000) * 1000;
25
36
  while (!TERMINAL_STATUSES.has(current.status)) {
26
- if (Date.now() - startedAt > TIMEOUT_MS) {
37
+ if (Date.now() - startedAt > timeoutMs) {
27
38
  spinner.stop("Rollback timed out");
28
- prompts.log.warn(`Rollback did not complete within 15 minutes. It may still finish — run \`${cloudInvocation()} deployment list\` to check.`);
39
+ output.warn(`Rollback did not complete within ${timeoutMs / 60_000} minutes. It may still finish — run \`${CLOUD_INVOCATION} deployment list\` to check.`);
29
40
  return 1;
30
41
  }
31
42
  await sleep(POLL_INTERVAL_MS);
@@ -34,26 +45,65 @@ export async function rollback({ args, globals }) {
34
45
  }
35
46
  if (SUCCESS_STATUSES.has(current.status)) {
36
47
  spinner.stop("Rolled back.");
48
+ if (restoredRevision !== null) {
49
+ output.info(`Restored configuration revision ${restoredRevision}, the one that deployment ran with.`);
50
+ }
37
51
  const protectedResources = current.protectedResources ?? [];
38
52
  if (protectedResources.length > 0) {
39
53
  const lines = protectedResources.map((resource) => ` - ${resource.label}`).join("\n");
40
- prompts.log.warn(`${protectedResources.length} data-bearing resource${protectedResources.length === 1 ? " is" : "s are"} orphaned and kept:\n${lines}\nRun \`${cloudInvocation()} deploy teardown\` to remove ${protectedResources.length === 1 ? "it" : "them"}.`);
54
+ output.warn(`${protectedResources.length} data-bearing resource${protectedResources.length === 1 ? " is" : "s are"} orphaned and kept:\n${lines}\nRun \`${CLOUD_INVOCATION} deploy teardown\` to remove ${protectedResources.length === 1 ? "it" : "them"}.`);
41
55
  }
42
56
  prompts.outro(`${project.slug} / ${environment.slug} rolled back`);
43
57
  return;
44
58
  }
45
59
  spinner.stop("Rollback failed");
46
60
  if (current.errorDetails) {
47
- prompts.log.error(formatUserFacingErrorDetails(current.errorDetails, {
61
+ output.error(formatUserFacingErrorDetails(current.errorDetails, {
48
62
  projectSlug: project.slug,
49
63
  environmentSlug: environment.slug,
50
64
  }));
51
65
  }
52
66
  return 1;
53
67
  }
68
+ // A rollback restores the configuration revision its target ran with, so a value changed since then
69
+ // returns to its earlier one. The comparison is advisory: a failure to make it is logged and never
70
+ // stops a rollback, which is often run in a hurry. In a terminal the customer is asked to confirm
71
+ // when the revisions differ; without one the rollback goes ahead after the warning.
72
+ //
73
+ // `restoredRevision` is the revision the target recorded, or null when it recorded none or the
74
+ // lookup failed.
75
+ async function checkConfiguration(client, environmentId, targetDeploymentId) {
76
+ let target;
77
+ let applied;
78
+ try {
79
+ const [targetDeployment, status] = await Promise.all([
80
+ client.get(`/deployments/${encodeURIComponent(targetDeploymentId)}`),
81
+ fetchConfigRevisionStatus(client, environmentId),
82
+ ]);
83
+ target = targetDeployment;
84
+ applied = status.applied?.number ?? null;
85
+ }
86
+ catch (error) {
87
+ logger.warn(`Could not compare configuration revisions before a rollback: ${error instanceof Error ? error.message : String(error)}`);
88
+ return { restoredRevision: null, proceed: true };
89
+ }
90
+ const restored = target.configRevision ?? null;
91
+ if (restored === null || restored === applied)
92
+ return { restoredRevision: restored, proceed: true };
93
+ output.warn(applied === null
94
+ ? `This rollback restores configuration revision ${restored}, which the environment is not running now. Variables changed since then return to their earlier values.`
95
+ : `This rollback restores configuration revision ${restored}, but the environment runs revision ${applied}. Variables changed since revision ${restored} return to their earlier values.`);
96
+ if (!process.stdin.isTTY)
97
+ return { restoredRevision: restored, proceed: true };
98
+ const confirmed = await prompts.confirm({
99
+ initialValue: true,
100
+ message: "Continue with the rollback?",
101
+ });
102
+ return { restoredRevision: restored, proceed: !prompts.isCancel(confirmed) && confirmed };
103
+ }
54
104
  async function selectRollbackTarget(client, environmentId, projectSlug, environmentSlug) {
55
105
  if (!process.stdin.isTTY) {
56
- throw new Error(`No rollback target provided. Pass \`${cloudInvocation()} rollback <deployment-id>\`.`);
106
+ throw new Error(`No rollback target provided. Pass \`${CLOUD_INVOCATION} rollback <deployment-id>\`.`);
57
107
  }
58
108
  const spinner = prompts.spinner();
59
109
  spinner.start("Fetching rollback targets...");
@@ -79,7 +129,8 @@ async function selectRollbackTarget(client, environmentId, projectSlug, environm
79
129
  function formatTarget(target) {
80
130
  const commit = target.commitHash ? ` - commit ${target.commitHash.slice(0, 7)}` : "";
81
131
  const message = target.commitMessage ? ` - ${target.commitMessage}` : "";
82
- return `${formatDateTime(target.createdAt)}${commit}${message}`;
132
+ const revision = target.configRevision == null ? "" : ` - configuration revision ${target.configRevision}`;
133
+ return `${formatDateTime(target.createdAt)}${commit}${message}${revision}`;
83
134
  }
84
135
  function spinnerMessage(status) {
85
136
  if (FAILED_STATUSES.has(status))
@@ -1 +1 @@
1
- {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAEL,gBAAgB,EAGhB,eAAe,EAEf,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,4BAA4B,EAC5B,MAAM,EACN,kBAAkB,EAClB,KAAK,GACN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,6FAA6F;AAC7F,+FAA+F;AAC/F,aAAa;AACb,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAqB;IACjE,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IAC/D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,CAAC,IAAI,CACT,oGAAoG,CACrG,CAAC;IAEF,MAAM,kBAAkB,GAAG,YAAY;QACrC,CAAC,CAAC,MAAM,gCAAgC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC;QAC9E,CAAC,CAAC,MAAM,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvF,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAEhC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAC5D,MAAM,EACN,WAAW,CAAC,EAAE,EACd,kBAAkB,CACnB,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAa,iBAAiB,WAAW,CAAC,EAAE,WAAW,EAAE;QAC3F,kBAAkB;KACnB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAEzC,IAAI,OAAO,GAAG,UAAU,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,qBAAqB,IAAI,iBAAiB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACxF,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CACT,oCAAoC,SAAS,GAAG,MAAM,yCAAyC,gBAAgB,8BAA8B,CAC9I,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAa,gBAAgB,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CACT,mCAAmC,gBAAgB,qCAAqC,CACzF,CAAC;QACJ,CAAC;QACD,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAC5D,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvF,MAAM,CAAC,IAAI,CACT,GAAG,kBAAkB,CAAC,MAAM,yBAAyB,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,wBAAwB,KAAK,WAAW,gBAAgB,gCAAgC,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CACjP,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,MAAM,WAAW,CAAC,IAAI,cAAc,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CACV,4BAA4B,CAAC,OAAO,CAAC,YAAY,EAAE;YACjD,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,eAAe,EAAE,WAAW,CAAC,IAAI;SAClC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,oGAAoG;AACpG,mGAAmG;AACnG,kGAAkG;AAClG,oFAAoF;AACpF,EAAE;AACF,+FAA+F;AAC/F,iBAAiB;AACjB,KAAK,UAAU,kBAAkB,CAC/B,MAAiB,EACjB,aAAqB,EACrB,kBAA0B;IAE1B,IAAI,MAAkB,CAAC;IACvB,IAAI,OAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,MAAM,CAAC,GAAG,CAAa,gBAAgB,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChF,yBAAyB,CAAC,MAAM,EAAE,aAAa,CAAC;SACjD,CAAC,CAAC;QACH,MAAM,GAAG,gBAAgB,CAAC;QAC1B,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,gEAAgE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzH,CAAC;QACF,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnD,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;IAC/C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,OAAO;QAC3C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACvD,MAAM,CAAC,IAAI,CACT,OAAO,KAAK,IAAI;QACd,CAAC,CAAC,iDAAiD,QAAQ,0GAA0G;QACrK,CAAC,CAAC,iDAAiD,QAAQ,uCAAuC,OAAO,sCAAsC,QAAQ,kCAAkC,CAC5L,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC/E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;QACtC,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,6BAA6B;KACvC,CAAC,CAAC;IACH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;AAC5F,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,MAAiB,EACjB,aAAqB,EACrB,WAAmB,EACnB,eAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,uCAAuC,gBAAgB,8BAA8B,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAC9B,iBAAiB,aAAa,mBAAmB,CAClD,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,wBAAwB,WAAW,MAAM,eAAe,EAAE,CAAC,CAAC;IAEzE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;QACpC,OAAO,EAAE,oCAAoC;QAC7C,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,MAAM,CAAC,EAAE;YAChB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,MAAsB;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,QAAQ,GACZ,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,MAAM,CAAC,cAAc,EAAE,CAAC;IAC5F,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,WAAW;YACd,OAAO,sBAAsB,CAAC;QAChC,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,qBAAqB,CAAC;QAC/B;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAOxC,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;AAIxB,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAKxC,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
@@ -1,12 +1,9 @@
1
1
  import { isIdPrefix, resolveEnvironment, resolveUniqueIdPrefix, } from "../../index.js";
2
- // How many VC Deployments one page of history holds when a command walks the list looking for a
3
- // particular one, rather than showing the customer a page.
2
+ // How many VC Deployments one page of history holds when a command walks the list to find one.
4
3
  export const DEPLOYMENT_PAGE_SIZE = 100;
5
- // Turns whatever the customer typed into a full VC Deployment ID.
6
- //
7
- // A full ID is passed straight through, so an environment is resolved only for the prefix case —
8
- // which is the only case that needs one, because a prefix is unique within an environment rather
9
- // than globally.
4
+ // Turns whatever the customer typed into a full VC Deployment ID. A full ID passes straight
5
+ // through, so an environment is resolved only for a prefix, which is unique within an environment
6
+ // but not globally.
10
7
  export async function resolveDeploymentId(client, options, identifier) {
11
8
  if (!isIdPrefix(identifier))
12
9
  return identifier;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,gGAAgG;AAChG,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,kEAAkE;AAClE,EAAE;AACF,iGAAiG;AACjG,iGAAiG;AACjG,iBAAiB;AACjB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,OAAsB,EACtB,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAE/C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D,OAAO,gCAAgC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAiB,EACjB,aAAqB,EACrB,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAE/C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,kCAAkC,KAAK,EAAE,CAC1C,CAAC;IACF,OAAO,qBAAqB,CAC1B,UAAU,EACV,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EACpC,eAAe,CAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,+FAA+F;AAC/F,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,4FAA4F;AAC5F,kGAAkG;AAClG,oBAAoB;AACpB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,OAAsB,EACtB,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAE/C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D,OAAO,gCAAgC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAiB,EACjB,aAAqB,EACrB,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAE/C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,kCAAkC,KAAK,EAAE,CAC1C,CAAC;IACF,OAAO,qBAAqB,CAC1B,UAAU,EACV,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EACpC,eAAe,CAChB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EAWvB,MAAM,gBAAgB,CAAC;AAKxB,wBAAsB,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBxF"}
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EAWvB,MAAM,gBAAgB,CAAC;AAMxB,wBAAsB,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxF"}
@@ -1,22 +1,31 @@
1
- import * as prompts from "@clack/prompts";
2
- import { cloudInvocation, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, resolveEnvironment, writeJson, } from "../../index.js";
1
+ import { CLOUD_INVOCATION, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, output, resolveEnvironment, writeJson, } from "../../index.js";
3
2
  import { optionalArgument } from "./arguments.js";
3
+ import { fetchDeploymentRecovery, formatDeploymentRecovery } from "./recovery.js";
4
4
  import { resolveDeploymentId } from "./shared.js";
5
5
  export async function showDeployment({ args, globals }) {
6
6
  const deploymentId = optionalArgument(args, 0, "deployment-id");
7
- const client = createAuthenticatedClient(globals);
7
+ const client = await createAuthenticatedClient(globals);
8
8
  const resolvedDeploymentId = deploymentId
9
9
  ? await resolveDeploymentId(client, globals, deploymentId)
10
10
  : await findLatestDeploymentId(client, globals);
11
11
  const deployment = await client.get(`/deployments/${encodeURIComponent(resolvedDeploymentId)}`);
12
+ // Independent of each other and both only for a failed deployment, so they are asked together.
13
+ const [{ recovery, unavailableReason }, errorContext] = await Promise.all([
14
+ fetchDeploymentRecovery(client, deployment),
15
+ deployment.errorDetails ? getDeploymentErrorContext(client, deployment) : undefined,
16
+ ]);
12
17
  if (globals.json) {
13
- writeJson(deployment);
18
+ // The control plane serves the deployment and the recovery as two documents; this joins them
19
+ // for a script that asked for one deployment. `recoveryUnavailableReason` distinguishes a null
20
+ // recovery for a deployment that did not fail from one whose recovery could not be read.
21
+ writeJson({ ...deployment, recovery, recoveryUnavailableReason: unavailableReason });
14
22
  return;
15
23
  }
16
- const errorContext = deployment.errorDetails
17
- ? await getDeploymentErrorContext(client, deployment)
18
- : undefined;
19
- prompts.note(formatDeployment(deployment, errorContext), "VC Deployment");
24
+ output.note(formatDeployment(deployment, errorContext), "VC Deployment");
25
+ if (recovery)
26
+ output.warn(formatDeploymentRecovery(recovery, resolvedDeploymentId));
27
+ else if (unavailableReason)
28
+ output.warn(unavailableReason);
20
29
  }
21
30
  async function findLatestDeploymentId(client, options) {
22
31
  const { environment } = await resolveEnvironment(options);
@@ -27,7 +36,7 @@ async function findLatestDeploymentId(client, options) {
27
36
  const page = await client.get(`/deployments?${query}`);
28
37
  const deployment = page.items[0];
29
38
  if (!deployment) {
30
- throw new Error(`No VC Deployment found for VC Environment "${environment.slug}". Run \`${cloudInvocation()} deploy\` first.`);
39
+ throw new Error(`No VC Deployment found for VC Environment "${environment.slug}". Run \`${CLOUD_INVOCATION} deploy\` first.`);
31
40
  }
32
41
  return deployment.id;
33
42
  }
@@ -51,6 +60,7 @@ function formatDeployment(deployment, errorContext) {
51
60
  `Started: ${deployment.startedAt ? formatDateTime(deployment.startedAt) : "—"}`,
52
61
  `Completed: ${deployment.completedAt ? formatDateTime(deployment.completedAt) : "—"}`,
53
62
  `Commit: ${formatCommit(deployment)}`,
63
+ `Config rev: ${deployment.configRevision ?? "—"}`,
54
64
  `Source: ${deployment.applicationSource ?? "—"}`,
55
65
  `Build Step: ${deployment.hasBuildStep === true ? "yes" : "no"}`,
56
66
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,3 @@
1
1
  import { type ApiClient, type Environment, type SourceBranchMappingDetails } from "../../index.js";
2
- import type { DeploymentImageOptions } from "./options.js";
3
- export type DeploymentSource = {
4
- kind: "managed-build";
5
- mapping: SourceBranchMappingDetails;
6
- } | {
7
- kind: "prebuilt-images";
8
- images: DeploymentImageOptions & {
9
- serverImage: string;
10
- workerImage: string;
11
- };
12
- };
13
- export declare function resolveDeploymentSource(client: ApiClient, environment: Environment, images: DeploymentImageOptions): Promise<DeploymentSource>;
2
+ export declare function requireBranchMapping(client: ApiClient, environment: Environment): Promise<SourceBranchMappingDetails>;
14
3
  //# sourceMappingURL=source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAGhC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAK3D,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,0BAA0B,CAAA;CAAE,GAC9D;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,sBAAsB,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E,CAAC;AAEN,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAqB3B"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAEhC,MAAM,gBAAgB,CAAC;AAIxB,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,0BAA0B,CAAC,CAQrC"}
@@ -1,19 +1,11 @@
1
- import { cloudInvocation, getBranchMappingOrNull, } from "../../index.js";
2
- export async function resolveDeploymentSource(client, environment, images) {
3
- const hasImageFlag = Object.values(images).some((image) => image !== undefined);
4
- if (hasImageFlag) {
5
- if (!images.serverImage || !images.workerImage) {
6
- throw new Error(`Image deployment requires both \`--server-image\` and \`--worker-image\`. Provide both flags, or omit all image flags and configure a source repository with \`${cloudInvocation()} source connect\` and \`${cloudInvocation()} source map\`.`);
7
- }
8
- return {
9
- kind: "prebuilt-images",
10
- images: { ...images, serverImage: images.serverImage, workerImage: images.workerImage },
11
- };
12
- }
1
+ import { CLOUD_INVOCATION, getBranchMappingOrNull, } from "../../index.js";
2
+ // The branch mapping a deploy builds from. An environment with no mapping has nothing to build, so
3
+ // this refuses and names `source connect` and `source map`.
4
+ export async function requireBranchMapping(client, environment) {
13
5
  const mapping = await getBranchMappingOrNull(client, environment.id);
14
6
  if (!mapping) {
15
- throw new Error(`No source repository is configured for VC Environment "${environment.slug}". Configure one with \`${cloudInvocation()} source connect\` and \`${cloudInvocation()} source map\`, or provide both \`--server-image\` and \`--worker-image\`.`);
7
+ throw new Error(`No source repository is configured for VC Environment "${environment.slug}". Configure one with \`${CLOUD_INVOCATION} source connect\` and \`${CLOUD_INVOCATION} source map\`.`);
16
8
  }
17
- return { kind: "managed-build", mapping };
9
+ return mapping;
18
10
  }
19
11
  //# sourceMappingURL=source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,EACf,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAaxB,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAiB,EACjB,WAAwB,EACxB,MAA8B;IAE9B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAChF,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,kKAAkK,eAAe,EAAE,2BAA2B,eAAe,EAAE,gBAAgB,CAChP,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;SACxF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,0DAA0D,WAAW,CAAC,IAAI,2BAA2B,eAAe,EAAE,2BAA2B,eAAe,EAAE,2EAA2E,CAC9O,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAGhB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,mGAAmG;AACnG,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAiB,EACjB,WAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,0DAA0D,WAAW,CAAC,IAAI,2BAA2B,gBAAgB,2BAA2B,gBAAgB,gBAAgB,CACjL,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/status.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EAQvB,MAAM,gBAAgB,CAAC;AAIxB,wBAAsB,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE1E"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EASvB,MAAM,gBAAgB,CAAC;AAIxB,wBAAsB,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE1E"}
@@ -1,58 +1,59 @@
1
- import * as prompts from "@clack/prompts";
2
- import { FAILED_STATUSES, SUCCESS_STATUSES, cloudInvocation, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, resolveEnvironment, } from "../../index.js";
1
+ import { CLOUD_INVOCATION, FAILED_STATUSES, SUCCESS_STATUSES, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, output, platformAddress, resolveEnvironment, } from "../../index.js";
3
2
  import { DEPLOYMENT_ID_PREFIX_MIN_LENGTH } from "../../lib/contract/wire-values.js";
4
3
  export async function status({ globals }) {
5
- const { environment } = await resolveEnvironment(globals);
6
- const client = createAuthenticatedClient(globals);
7
- const current = await client.get(`/environments/${environment.id}/status`);
8
- const env = current.environment;
9
- prompts.log.info(`Project: ${env.projectName}`);
10
- prompts.log.info(`Environment: ${env.name} (${env.type})`);
11
- prompts.log.info(`Runtime: ${env.runtimeState}`);
12
- if (env.branch) {
13
- prompts.log.info(`Branch: ${env.branch}`);
4
+ const { environment: selectedEnvironment } = await resolveEnvironment(globals);
5
+ const client = await createAuthenticatedClient(globals);
6
+ const current = await client.get(`/environments/${selectedEnvironment.id}/status`);
7
+ const statusEnvironment = current.environment;
8
+ output.info(`Project: ${statusEnvironment.projectName}`);
9
+ output.info(`Environment: ${statusEnvironment.name} (${statusEnvironment.type})`);
10
+ output.info(`Runtime: ${statusEnvironment.runtimeState}`);
11
+ // TODO: CLO-822 puts the hostname on the status response; read it from `statusEnvironment` then.
12
+ output.info(`URL: ${platformAddress(selectedEnvironment) ?? "not assigned"}`);
13
+ if (statusEnvironment.branch) {
14
+ output.info(`Branch: ${statusEnvironment.branch}`);
14
15
  }
15
16
  const dep = current.latestDeployment;
16
17
  if (!dep) {
17
- prompts.log.message("");
18
- prompts.log.warn(`No deployments yet. Run \`${cloudInvocation()} deploy\` to get started.`);
18
+ output.message("");
19
+ output.warn(`No deployments yet. Run \`${CLOUD_INVOCATION} deploy\` to get started.`);
19
20
  return;
20
21
  }
21
- prompts.log.message("");
22
- prompts.log.step("Latest Deployment");
22
+ output.message("");
23
+ output.step("Latest Deployment");
23
24
  const logStatus = FAILED_STATUSES.has(dep.status)
24
- ? prompts.log.error
25
+ ? output.error
25
26
  : SUCCESS_STATUSES.has(dep.status)
26
- ? prompts.log.success
27
- : prompts.log.warn;
28
- prompts.log.info(`ID: ${dep.id.slice(0, DEPLOYMENT_ID_PREFIX_MIN_LENGTH)}`);
27
+ ? output.success
28
+ : output.warn;
29
+ output.info(`ID: ${dep.id.slice(0, DEPLOYMENT_ID_PREFIX_MIN_LENGTH)}`);
29
30
  logStatus(`Status: ${dep.status}`);
30
- prompts.log.info(`Trigger: ${dep.trigger}`);
31
+ output.info(`Trigger: ${dep.trigger}`);
31
32
  if (dep.commitHash) {
32
33
  const short = dep.commitHash.slice(0, 7);
33
34
  const msg = dep.commitMessage ? ` — ${dep.commitMessage}` : "";
34
- prompts.log.info(`Commit: ${short}${msg}`);
35
+ output.info(`Commit: ${short}${msg}`);
35
36
  }
36
37
  if (dep.startedAt) {
37
- prompts.log.info(`Started: ${formatDateTime(dep.startedAt)}`);
38
+ output.info(`Started: ${formatDateTime(dep.startedAt)}`);
38
39
  }
39
40
  if (dep.completedAt) {
40
- prompts.log.info(`Completed: ${formatDateTime(dep.completedAt)}`);
41
+ output.info(`Completed: ${formatDateTime(dep.completedAt)}`);
41
42
  }
42
43
  if (dep.errorDetails) {
43
- prompts.log.error(`Error: ${formatUserFacingErrorDetails(dep.errorDetails, {
44
- projectSlug: env.projectSlug,
45
- environmentSlug: env.slug,
44
+ output.error(`Error: ${formatUserFacingErrorDetails(dep.errorDetails, {
45
+ projectSlug: statusEnvironment.projectSlug,
46
+ environmentSlug: statusEnvironment.slug,
46
47
  })}`);
47
48
  }
48
49
  if (current.services.length > 0) {
49
- prompts.log.message("");
50
- prompts.log.step("Resources");
50
+ output.message("");
51
+ output.step("Resources");
51
52
  for (const svc of current.services) {
52
53
  const runtime = svc.runtimeState === null
53
54
  ? ""
54
55
  : ` — ${svc.runtimeState}${svc.runtimeHealth ? ` / ${svc.runtimeHealth}` : ""}`;
55
- prompts.log.info(`${svc.label}${runtime}`);
56
+ output.info(`${svc.label}${runtime}`);
56
57
  }
57
58
  }
58
59
  }