@synteq/cli 0.2.0 → 1.1.2

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 (433) hide show
  1. package/dist/api/client.d.ts +362 -5
  2. package/dist/api/client.js +559 -44
  3. package/dist/api/client.js.map +1 -1
  4. package/dist/api/factory.js +5 -2
  5. package/dist/api/factory.js.map +1 -1
  6. package/dist/api/types.d.ts +892 -3
  7. package/dist/apps-support/deploy.d.ts +197 -0
  8. package/dist/apps-support/deploy.js +639 -0
  9. package/dist/apps-support/deploy.js.map +1 -0
  10. package/dist/apps-support/dotenv.d.ts +67 -0
  11. package/dist/apps-support/dotenv.js +136 -0
  12. package/dist/apps-support/dotenv.js.map +1 -0
  13. package/dist/apps-support/env-rollout.d.ts +18 -0
  14. package/dist/apps-support/env-rollout.js +52 -0
  15. package/dist/apps-support/env-rollout.js.map +1 -0
  16. package/dist/apps-support/git.d.ts +14 -0
  17. package/dist/apps-support/git.js +25 -0
  18. package/dist/apps-support/git.js.map +1 -0
  19. package/dist/apps-support/link.d.ts +25 -0
  20. package/dist/apps-support/link.js +39 -0
  21. package/dist/apps-support/link.js.map +1 -0
  22. package/dist/apps-support/log-stream.d.ts +25 -0
  23. package/dist/apps-support/log-stream.js +85 -0
  24. package/dist/apps-support/log-stream.js.map +1 -0
  25. package/dist/apps-support/paid-app.d.ts +64 -0
  26. package/dist/apps-support/paid-app.js +195 -0
  27. package/dist/apps-support/paid-app.js.map +1 -0
  28. package/dist/apps-support/plans.d.ts +44 -0
  29. package/dist/apps-support/plans.js +43 -0
  30. package/dist/apps-support/plans.js.map +1 -0
  31. package/dist/apps-support/resolve.d.ts +10 -0
  32. package/dist/apps-support/resolve.js +53 -0
  33. package/dist/apps-support/resolve.js.map +1 -0
  34. package/dist/apps-support/time.d.ts +20 -0
  35. package/dist/apps-support/time.js +82 -0
  36. package/dist/apps-support/time.js.map +1 -0
  37. package/dist/auth/scope.js +4 -0
  38. package/dist/auth/scope.js.map +1 -1
  39. package/dist/auth/tokens.d.ts +3 -0
  40. package/dist/auth/tokens.js +6 -4
  41. package/dist/auth/tokens.js.map +1 -1
  42. package/dist/base/command.d.ts +35 -0
  43. package/dist/base/command.js +87 -4
  44. package/dist/base/command.js.map +1 -1
  45. package/dist/commands/agents.d.ts +10 -0
  46. package/dist/commands/agents.js +53 -0
  47. package/dist/commands/agents.js.map +1 -0
  48. package/dist/commands/api.d.ts +0 -1
  49. package/dist/commands/api.js +6 -5
  50. package/dist/commands/api.js.map +1 -1
  51. package/dist/commands/app/deployment/list.d.ts +14 -0
  52. package/dist/commands/app/deployment/list.js +45 -0
  53. package/dist/commands/app/deployment/list.js.map +1 -0
  54. package/dist/commands/app/deployment/rollback.d.ts +18 -0
  55. package/dist/commands/app/deployment/rollback.js +57 -0
  56. package/dist/commands/app/deployment/rollback.js.map +1 -0
  57. package/dist/commands/app/deployment/show.d.ts +26 -0
  58. package/dist/commands/app/deployment/show.js +98 -0
  59. package/dist/commands/app/deployment/show.js.map +1 -0
  60. package/dist/commands/app/domain/add.d.ts +17 -0
  61. package/dist/commands/app/domain/add.js +59 -0
  62. package/dist/commands/app/domain/add.js.map +1 -0
  63. package/dist/commands/app/domain/list.d.ts +14 -0
  64. package/dist/commands/app/domain/list.js +42 -0
  65. package/dist/commands/app/domain/list.js.map +1 -0
  66. package/dist/commands/app/domain/remove.d.ts +16 -0
  67. package/dist/commands/app/domain/remove.js +51 -0
  68. package/dist/commands/app/domain/remove.js.map +1 -0
  69. package/dist/commands/app/domain/verify.d.ts +15 -0
  70. package/dist/commands/app/domain/verify.js +39 -0
  71. package/dist/commands/app/domain/verify.js.map +1 -0
  72. package/dist/commands/app/env/add.d.ts +22 -0
  73. package/dist/commands/app/env/add.js +103 -0
  74. package/dist/commands/app/env/add.js.map +1 -0
  75. package/dist/commands/app/env/list.d.ts +17 -0
  76. package/dist/commands/app/env/list.js +40 -0
  77. package/dist/commands/app/env/list.js.map +1 -0
  78. package/dist/commands/app/env/reveal.d.ts +17 -0
  79. package/dist/commands/app/env/reveal.js +40 -0
  80. package/dist/commands/app/env/reveal.js.map +1 -0
  81. package/dist/commands/app/env/rm.d.ts +16 -0
  82. package/dist/commands/app/env/rm.js +48 -0
  83. package/dist/commands/app/env/rm.js.map +1 -0
  84. package/dist/commands/app/health.d.ts +14 -0
  85. package/dist/commands/app/health.js +40 -0
  86. package/dist/commands/app/health.js.map +1 -0
  87. package/dist/commands/app/index.d.ts +6 -0
  88. package/dist/commands/app/index.js +7 -0
  89. package/dist/commands/app/index.js.map +1 -0
  90. package/dist/commands/app/link.d.ts +22 -0
  91. package/dist/commands/app/link.js +31 -0
  92. package/dist/commands/app/link.js.map +1 -0
  93. package/dist/commands/app/logs.d.ts +25 -0
  94. package/dist/commands/app/logs.js +121 -0
  95. package/dist/commands/app/logs.js.map +1 -0
  96. package/dist/commands/app/metrics.d.ts +21 -0
  97. package/dist/commands/app/metrics.js +123 -0
  98. package/dist/commands/app/metrics.js.map +1 -0
  99. package/dist/commands/app/plan/change.d.ts +18 -0
  100. package/dist/commands/app/plan/change.js +79 -0
  101. package/dist/commands/app/plan/change.js.map +1 -0
  102. package/dist/commands/app/plan/show.d.ts +14 -0
  103. package/dist/commands/app/plan/show.js +40 -0
  104. package/dist/commands/app/plan/show.js.map +1 -0
  105. package/dist/commands/app/settings/set.d.ts +25 -0
  106. package/dist/commands/app/settings/set.js +96 -0
  107. package/dist/commands/app/settings/set.js.map +1 -0
  108. package/dist/commands/app/settings/show.d.ts +14 -0
  109. package/dist/commands/app/settings/show.js +48 -0
  110. package/dist/commands/app/settings/show.js.map +1 -0
  111. package/dist/commands/app/unlink.d.ts +8 -0
  112. package/dist/commands/app/unlink.js +25 -0
  113. package/dist/commands/app/unlink.js.map +1 -0
  114. package/dist/commands/apps/create.d.ts +26 -0
  115. package/dist/commands/apps/create.js +91 -0
  116. package/dist/commands/apps/create.js.map +1 -0
  117. package/dist/commands/apps/list.d.ts +17 -0
  118. package/dist/commands/apps/list.js +56 -0
  119. package/dist/commands/apps/list.js.map +1 -0
  120. package/dist/commands/baremetal/activity.d.ts +14 -0
  121. package/dist/commands/baremetal/activity.js +53 -0
  122. package/dist/commands/baremetal/activity.js.map +1 -0
  123. package/dist/commands/baremetal/bandwidth.d.ts +10 -0
  124. package/dist/commands/baremetal/bandwidth.js +86 -0
  125. package/dist/commands/baremetal/bandwidth.js.map +1 -0
  126. package/dist/commands/baremetal/console.d.ts +20 -0
  127. package/dist/commands/baremetal/console.js +72 -0
  128. package/dist/commands/baremetal/console.js.map +1 -0
  129. package/dist/commands/baremetal/details.d.ts +11 -0
  130. package/dist/commands/baremetal/details.js +116 -0
  131. package/dist/commands/baremetal/details.js.map +1 -0
  132. package/dist/commands/baremetal/index.d.ts +5 -0
  133. package/dist/commands/baremetal/index.js +6 -0
  134. package/dist/commands/baremetal/index.js.map +1 -0
  135. package/dist/commands/baremetal/install-password.d.ts +14 -0
  136. package/dist/commands/baremetal/install-password.js +80 -0
  137. package/dist/commands/baremetal/install-password.js.map +1 -0
  138. package/dist/commands/baremetal/list.d.ts +11 -0
  139. package/dist/commands/baremetal/list.js +59 -0
  140. package/dist/commands/baremetal/list.js.map +1 -0
  141. package/dist/commands/baremetal/order.d.ts +34 -0
  142. package/dist/commands/baremetal/order.js +394 -0
  143. package/dist/commands/baremetal/order.js.map +1 -0
  144. package/dist/commands/baremetal/power.d.ts +18 -0
  145. package/dist/commands/baremetal/power.js +168 -0
  146. package/dist/commands/baremetal/power.js.map +1 -0
  147. package/dist/commands/baremetal/reinstall.d.ts +21 -0
  148. package/dist/commands/baremetal/reinstall.js +168 -0
  149. package/dist/commands/baremetal/reinstall.js.map +1 -0
  150. package/dist/commands/config/profile/add.d.ts +11 -0
  151. package/dist/commands/config/profile/add.js +51 -0
  152. package/dist/commands/config/profile/add.js.map +1 -0
  153. package/dist/commands/config/profile/list.d.ts +7 -0
  154. package/dist/commands/config/profile/list.js +29 -0
  155. package/dist/commands/config/profile/list.js.map +1 -0
  156. package/dist/commands/config/profile/remove.d.ts +11 -0
  157. package/dist/commands/config/profile/remove.js +35 -0
  158. package/dist/commands/config/profile/remove.js.map +1 -0
  159. package/dist/commands/config/profile/use.d.ts +10 -0
  160. package/dist/commands/config/profile/use.js +44 -0
  161. package/dist/commands/config/profile/use.js.map +1 -0
  162. package/dist/commands/config/show.js +4 -1
  163. package/dist/commands/config/show.js.map +1 -1
  164. package/dist/commands/credits/add.js +2 -2
  165. package/dist/commands/credits/add.js.map +1 -1
  166. package/dist/commands/credits/index.js +5 -1
  167. package/dist/commands/credits/index.js.map +1 -1
  168. package/dist/commands/deploy.d.ts +51 -0
  169. package/dist/commands/deploy.js +515 -0
  170. package/dist/commands/deploy.js.map +1 -0
  171. package/dist/commands/function/create.d.ts +29 -0
  172. package/dist/commands/function/create.js +113 -0
  173. package/dist/commands/function/create.js.map +1 -0
  174. package/dist/commands/function/credits/add.d.ts +29 -0
  175. package/dist/commands/function/credits/add.js +209 -0
  176. package/dist/commands/function/credits/add.js.map +1 -0
  177. package/dist/commands/function/credits/auto-reload.d.ts +27 -0
  178. package/dist/commands/function/credits/auto-reload.js +107 -0
  179. package/dist/commands/function/credits/auto-reload.js.map +1 -0
  180. package/dist/commands/function/credits/index.d.ts +22 -0
  181. package/dist/commands/function/credits/index.js +80 -0
  182. package/dist/commands/function/credits/index.js.map +1 -0
  183. package/dist/commands/function/cron/add.d.ts +19 -0
  184. package/dist/commands/function/cron/add.js +74 -0
  185. package/dist/commands/function/cron/add.js.map +1 -0
  186. package/dist/commands/function/cron/list.d.ts +12 -0
  187. package/dist/commands/function/cron/list.js +55 -0
  188. package/dist/commands/function/cron/list.js.map +1 -0
  189. package/dist/commands/function/cron/rm.d.ts +17 -0
  190. package/dist/commands/function/cron/rm.js +73 -0
  191. package/dist/commands/function/cron/rm.js.map +1 -0
  192. package/dist/commands/function/cron/run.d.ts +16 -0
  193. package/dist/commands/function/cron/run.js +59 -0
  194. package/dist/commands/function/cron/run.js.map +1 -0
  195. package/dist/commands/function/cron/update.d.ts +21 -0
  196. package/dist/commands/function/cron/update.js +87 -0
  197. package/dist/commands/function/cron/update.js.map +1 -0
  198. package/dist/commands/function/delete.d.ts +23 -0
  199. package/dist/commands/function/delete.js +90 -0
  200. package/dist/commands/function/delete.js.map +1 -0
  201. package/dist/commands/function/deploy.d.ts +64 -0
  202. package/dist/commands/function/deploy.js +616 -0
  203. package/dist/commands/function/deploy.js.map +1 -0
  204. package/dist/commands/function/env/list.d.ts +12 -0
  205. package/dist/commands/function/env/list.js +46 -0
  206. package/dist/commands/function/env/list.js.map +1 -0
  207. package/dist/commands/function/env/reveal.d.ts +21 -0
  208. package/dist/commands/function/env/reveal.js +54 -0
  209. package/dist/commands/function/env/reveal.js.map +1 -0
  210. package/dist/commands/function/env/rm.d.ts +17 -0
  211. package/dist/commands/function/env/rm.js +62 -0
  212. package/dist/commands/function/env/rm.js.map +1 -0
  213. package/dist/commands/function/env/set.d.ts +28 -0
  214. package/dist/commands/function/env/set.js +124 -0
  215. package/dist/commands/function/env/set.js.map +1 -0
  216. package/dist/commands/function/index.d.ts +14 -0
  217. package/dist/commands/function/index.js +11 -0
  218. package/dist/commands/function/index.js.map +1 -0
  219. package/dist/commands/function/init.d.ts +48 -0
  220. package/dist/commands/function/init.js +277 -0
  221. package/dist/commands/function/init.js.map +1 -0
  222. package/dist/commands/function/invoke.d.ts +29 -0
  223. package/dist/commands/function/invoke.js +138 -0
  224. package/dist/commands/function/invoke.js.map +1 -0
  225. package/dist/commands/function/link.d.ts +23 -0
  226. package/dist/commands/function/link.js +80 -0
  227. package/dist/commands/function/link.js.map +1 -0
  228. package/dist/commands/function/list.d.ts +16 -0
  229. package/dist/commands/function/list.js +55 -0
  230. package/dist/commands/function/list.js.map +1 -0
  231. package/dist/commands/function/logs.d.ts +29 -0
  232. package/dist/commands/function/logs.js +171 -0
  233. package/dist/commands/function/logs.js.map +1 -0
  234. package/dist/commands/function/pause.d.ts +19 -0
  235. package/dist/commands/function/pause.js +50 -0
  236. package/dist/commands/function/pause.js.map +1 -0
  237. package/dist/commands/function/releases.d.ts +15 -0
  238. package/dist/commands/function/releases.js +62 -0
  239. package/dist/commands/function/releases.js.map +1 -0
  240. package/dist/commands/function/resume.d.ts +16 -0
  241. package/dist/commands/function/resume.js +47 -0
  242. package/dist/commands/function/resume.js.map +1 -0
  243. package/dist/commands/function/rollback.d.ts +18 -0
  244. package/dist/commands/function/rollback.js +69 -0
  245. package/dist/commands/function/rollback.js.map +1 -0
  246. package/dist/commands/function/settings/set.d.ts +23 -0
  247. package/dist/commands/function/settings/set.js +119 -0
  248. package/dist/commands/function/settings/set.js.map +1 -0
  249. package/dist/commands/function/show.d.ts +15 -0
  250. package/dist/commands/function/show.js +80 -0
  251. package/dist/commands/function/show.js.map +1 -0
  252. package/dist/commands/function/unlink.d.ts +9 -0
  253. package/dist/commands/function/unlink.js +34 -0
  254. package/dist/commands/function/unlink.js.map +1 -0
  255. package/dist/commands/link.d.ts +82 -0
  256. package/dist/commands/link.js +532 -0
  257. package/dist/commands/link.js.map +1 -0
  258. package/dist/commands/login.js +9 -0
  259. package/dist/commands/login.js.map +1 -1
  260. package/dist/commands/order.js +3 -1
  261. package/dist/commands/order.js.map +1 -1
  262. package/dist/commands/payments/methods/delete.js +2 -2
  263. package/dist/commands/payments/methods/delete.js.map +1 -1
  264. package/dist/commands/resources.js +50 -7
  265. package/dist/commands/resources.js.map +1 -1
  266. package/dist/commands/status.d.ts +12 -0
  267. package/dist/commands/status.js +71 -0
  268. package/dist/commands/status.js.map +1 -0
  269. package/dist/commands/storage/detach.js +1 -1
  270. package/dist/commands/storage/detach.js.map +1 -1
  271. package/dist/commands/storage/list.js +6 -2
  272. package/dist/commands/storage/list.js.map +1 -1
  273. package/dist/commands/storage/order.d.ts +2 -0
  274. package/dist/commands/storage/order.js +100 -18
  275. package/dist/commands/storage/order.js.map +1 -1
  276. package/dist/commands/storage/resize.js +19 -6
  277. package/dist/commands/storage/resize.js.map +1 -1
  278. package/dist/commands/tickets/create.d.ts +2 -0
  279. package/dist/commands/tickets/create.js +40 -1
  280. package/dist/commands/tickets/create.js.map +1 -1
  281. package/dist/commands/tickets/download.d.ts +18 -0
  282. package/dist/commands/tickets/download.js +138 -0
  283. package/dist/commands/tickets/download.js.map +1 -0
  284. package/dist/commands/tickets/list.js +13 -7
  285. package/dist/commands/tickets/list.js.map +1 -1
  286. package/dist/commands/tickets/reply.d.ts +2 -0
  287. package/dist/commands/tickets/reply.js +33 -4
  288. package/dist/commands/tickets/reply.js.map +1 -1
  289. package/dist/commands/vds/order.js +72 -7
  290. package/dist/commands/vds/order.js.map +1 -1
  291. package/dist/commands/vps/console.js +14 -6
  292. package/dist/commands/vps/console.js.map +1 -1
  293. package/dist/commands/vps/details.js +7 -1
  294. package/dist/commands/vps/details.js.map +1 -1
  295. package/dist/commands/vps/ip/add.js +76 -9
  296. package/dist/commands/vps/ip/add.js.map +1 -1
  297. package/dist/commands/vps/list.js +13 -4
  298. package/dist/commands/vps/list.js.map +1 -1
  299. package/dist/commands/vps/order.d.ts +19 -0
  300. package/dist/commands/vps/order.js +179 -23
  301. package/dist/commands/vps/order.js.map +1 -1
  302. package/dist/commands/vps/power.js +2 -2
  303. package/dist/commands/vps/power.js.map +1 -1
  304. package/dist/commands/vps/reinstall.js +2 -2
  305. package/dist/commands/vps/reinstall.js.map +1 -1
  306. package/dist/commands/vps/resize.js +36 -13
  307. package/dist/commands/vps/resize.js.map +1 -1
  308. package/dist/commands/whoami.d.ts +5 -0
  309. package/dist/commands/whoami.js +8 -3
  310. package/dist/commands/whoami.js.map +1 -1
  311. package/dist/config/paths.d.ts +1 -1
  312. package/dist/config/paths.js +6 -1
  313. package/dist/config/paths.js.map +1 -1
  314. package/dist/config/store.d.ts +58 -0
  315. package/dist/config/store.js +84 -2
  316. package/dist/config/store.js.map +1 -1
  317. package/dist/functions-support/credits.d.ts +64 -0
  318. package/dist/functions-support/credits.js +181 -0
  319. package/dist/functions-support/credits.js.map +1 -0
  320. package/dist/functions-support/cron.d.ts +17 -0
  321. package/dist/functions-support/cron.js +99 -0
  322. package/dist/functions-support/cron.js.map +1 -0
  323. package/dist/functions-support/env.d.ts +23 -0
  324. package/dist/functions-support/env.js +44 -0
  325. package/dist/functions-support/env.js.map +1 -0
  326. package/dist/functions-support/link.d.ts +25 -0
  327. package/dist/functions-support/link.js +51 -0
  328. package/dist/functions-support/link.js.map +1 -0
  329. package/dist/functions-support/poll.d.ts +40 -0
  330. package/dist/functions-support/poll.js +109 -0
  331. package/dist/functions-support/poll.js.map +1 -0
  332. package/dist/functions-support/resolve.d.ts +3 -0
  333. package/dist/functions-support/resolve.js +31 -0
  334. package/dist/functions-support/resolve.js.map +1 -0
  335. package/dist/functions-support/runtime.d.ts +30 -0
  336. package/dist/functions-support/runtime.js +52 -0
  337. package/dist/functions-support/runtime.js.map +1 -0
  338. package/dist/functions-support/source.d.ts +92 -0
  339. package/dist/functions-support/source.js +343 -0
  340. package/dist/functions-support/source.js.map +1 -0
  341. package/dist/help/scope-aware-help.js +10 -1
  342. package/dist/help/scope-aware-help.js.map +1 -1
  343. package/dist/tui/App.js +10 -25
  344. package/dist/tui/App.js.map +1 -1
  345. package/dist/tui/components/Menu.d.ts +3 -1
  346. package/dist/tui/components/Menu.js +7 -3
  347. package/dist/tui/components/Menu.js.map +1 -1
  348. package/dist/tui/router.d.ts +1 -1
  349. package/dist/tui/router.js.map +1 -1
  350. package/dist/tui/screens/Billing.js +56 -4
  351. package/dist/tui/screens/Billing.js.map +1 -1
  352. package/dist/tui/screens/Dashboard.js +8 -7
  353. package/dist/tui/screens/Dashboard.js.map +1 -1
  354. package/dist/tui/screens/Deploy.d.ts +2 -0
  355. package/dist/tui/screens/Deploy.js +912 -0
  356. package/dist/tui/screens/Deploy.js.map +1 -0
  357. package/dist/tui/screens/Order.js +359 -26
  358. package/dist/tui/screens/Order.js.map +1 -1
  359. package/dist/tui/screens/Resources.js +273 -31
  360. package/dist/tui/screens/Resources.js.map +1 -1
  361. package/dist/tui/screens/Tickets.js +18 -6
  362. package/dist/tui/screens/Tickets.js.map +1 -1
  363. package/dist/tui/screens/deployPreset.d.ts +20 -0
  364. package/dist/tui/screens/deployPreset.js +11 -0
  365. package/dist/tui/screens/deployPreset.js.map +1 -0
  366. package/dist/tui/screens/resources/AppDetail.d.ts +7 -0
  367. package/dist/tui/screens/resources/AppDetail.js +810 -0
  368. package/dist/tui/screens/resources/AppDetail.js.map +1 -0
  369. package/dist/tui/screens/resources/FunctionDetail.d.ts +7 -0
  370. package/dist/tui/screens/resources/FunctionDetail.js +751 -0
  371. package/dist/tui/screens/resources/FunctionDetail.js.map +1 -0
  372. package/dist/ui/attach.d.ts +15 -0
  373. package/dist/ui/attach.js +63 -0
  374. package/dist/ui/attach.js.map +1 -0
  375. package/dist/ui/baremetal-resolve.d.ts +10 -0
  376. package/dist/ui/baremetal-resolve.js +50 -0
  377. package/dist/ui/baremetal-resolve.js.map +1 -0
  378. package/dist/ui/confirm.js +1 -1
  379. package/dist/ui/confirm.js.map +1 -1
  380. package/dist/ui/cycle.d.ts +66 -0
  381. package/dist/ui/cycle.js +96 -0
  382. package/dist/ui/cycle.js.map +1 -0
  383. package/dist/ui/deploy-ui.d.ts +75 -0
  384. package/dist/ui/deploy-ui.js +243 -0
  385. package/dist/ui/deploy-ui.js.map +1 -0
  386. package/dist/ui/order-result.d.ts +4 -0
  387. package/dist/ui/order-result.js +32 -0
  388. package/dist/ui/order-result.js.map +1 -0
  389. package/dist/ui/payment-gate.d.ts +26 -0
  390. package/dist/ui/payment-gate.js +70 -0
  391. package/dist/ui/payment-gate.js.map +1 -0
  392. package/dist/ui/payment.js +10 -3
  393. package/dist/ui/payment.js.map +1 -1
  394. package/dist/ui/portal.d.ts +1 -1
  395. package/dist/ui/portal.js +7 -2
  396. package/dist/ui/portal.js.map +1 -1
  397. package/dist/ui/project-resolve.d.ts +25 -0
  398. package/dist/ui/project-resolve.js +31 -0
  399. package/dist/ui/project-resolve.js.map +1 -0
  400. package/dist/ui/render-mode.d.ts +5 -0
  401. package/dist/ui/render-mode.js +1 -1
  402. package/dist/ui/render-mode.js.map +1 -1
  403. package/dist/ui/resource-detail.js +0 -3
  404. package/dist/ui/resource-detail.js.map +1 -1
  405. package/dist/ui/resource-resolve.d.ts +9 -2
  406. package/dist/ui/resource-resolve.js +11 -4
  407. package/dist/ui/resource-resolve.js.map +1 -1
  408. package/dist/ui/spinner.d.ts +10 -1
  409. package/dist/ui/spinner.js +12 -3
  410. package/dist/ui/spinner.js.map +1 -1
  411. package/dist/ui/table.d.ts +7 -0
  412. package/dist/ui/table.js +11 -0
  413. package/dist/ui/table.js.map +1 -1
  414. package/dist/ui/tax.d.ts +10 -0
  415. package/dist/ui/tax.js +31 -0
  416. package/dist/ui/tax.js.map +1 -0
  417. package/dist/ui/ticket-resolve.d.ts +9 -1
  418. package/dist/ui/ticket-resolve.js +13 -2
  419. package/dist/ui/ticket-resolve.js.map +1 -1
  420. package/dist/ui/volume-resolve.js +4 -1
  421. package/dist/ui/volume-resolve.js.map +1 -1
  422. package/dist/ui/wait.d.ts +4 -0
  423. package/dist/ui/wait.js +7 -2
  424. package/dist/ui/wait.js.map +1 -1
  425. package/dist/ui/wizard.d.ts +2 -1
  426. package/dist/ui/wizard.js +1 -1
  427. package/dist/ui/wizard.js.map +1 -1
  428. package/dist/version-check-bin.js +2 -2
  429. package/dist/version-check-bin.js.map +1 -1
  430. package/dist/version-check.d.ts +5 -0
  431. package/dist/version-check.js +6 -1
  432. package/dist/version-check.js.map +1 -1
  433. package/package.json +53 -6
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Pretty rendering for `synteq deploy` — a live build-progress view and a
3
+ * hero end-state card with a link to the running deployment.
4
+ *
5
+ * Two render layers, same as the rest of the CLI (see ui/render-mode.ts):
6
+ * - TUI on: a clack spinner cycles through the build phases, then a dim
7
+ * hairline card announces the deployment with its URL.
8
+ * - TUI off: clean per-phase lines (one per transition) + a plain summary.
9
+ * Copy-paste friendly for agents / CI logs.
10
+ *
11
+ * The renderer is driven by coarse build statuses — the same enum the backend
12
+ * emits (pending | building | pushing | succeeded | failed) — mapped onto four
13
+ * human phases so the user sees forward motion, not opaque status codes.
14
+ */
15
+ import * as clack from "@clack/prompts";
16
+ import { isTui } from "./render-mode.js";
17
+ import { G, ok, fail, dim, cyan, bold, green, red, statusColor } from "./glyphs.js";
18
+ import { panel } from "./wizard.js";
19
+ /** Coarse build status → the phase label we show the user. */
20
+ const PHASE_LABEL = {
21
+ pending: "Preparing build environment",
22
+ building: "Building image",
23
+ pushing: "Pushing to registry",
24
+ // The build's own finish line. The release that follows is its own
25
+ // progress (releaseProgress below), not a fourth build phase — a
26
+ // "Deploying release" ✓ used to appear here before the release had
27
+ // started anything.
28
+ succeeded: "Image built",
29
+ failed: "Build failed",
30
+ };
31
+ /** Ordered phases for the "step N of M" progress hint (terminal excluded). */
32
+ const PHASE_ORDER = ["pending", "building", "pushing"];
33
+ /** Release status (the backend's ReleaseStatus) → the rollout phase label.
34
+ * `traffic_flip` and `draining` are one phase to the user: the new
35
+ * instance is taking traffic and the old one is being retired. */
36
+ const RELEASE_PHASE_LABEL = {
37
+ pending: "Scheduling release",
38
+ starting: "Starting instance",
39
+ health_gate: "Health check",
40
+ traffic_flip: "Rolling out",
41
+ draining: "Rolling out",
42
+ live: "Live",
43
+ start_failed: "Instance failed to start",
44
+ health_failed: "Health check failed",
45
+ superseded: "Superseded by a newer deploy",
46
+ };
47
+ /** Ordered rollout phases for the hint (terminal excluded; the two
48
+ * rolling-out statuses share a slot). */
49
+ const RELEASE_PHASE_ORDER = ["starting", "health_gate", "traffic_flip"];
50
+ function phaseHint(status, labels = PHASE_LABEL, order = PHASE_ORDER) {
51
+ const label = labels[status] ?? status;
52
+ // A status that shares a label with an ordered phase (draining → Rolling
53
+ // out) takes that phase's slot.
54
+ const idx = order.findIndex((s) => labels[s] === label);
55
+ if (idx < 0)
56
+ return label;
57
+ return `${label} ${dim(`(${idx + 1}/${order.length})`)}`;
58
+ }
59
+ /**
60
+ * A live build-progress reporter. Call `.update(status)` on every observed
61
+ * status; it only redraws on an actual change. `.done()` / `.failed()` finalize.
62
+ *
63
+ * In TUI mode this drives a single clack spinner whose message swaps per phase.
64
+ * In plain mode it prints one line per transition (with a ✓ for completed
65
+ * phases) so a scrollback log reads as a clean checklist.
66
+ */
67
+ export function buildProgress(headline, opts = {}) {
68
+ return phasedProgress(headline, PHASE_LABEL, PHASE_ORDER, "pending", opts.out);
69
+ }
70
+ /**
71
+ * The rollout that follows a successful build, as its own checklist:
72
+ * Starting instance → Health check → Rolling out → ✓ Live. Driven by the
73
+ * release statuses `waitForReleaseOutcome` observes (starting, health_gate,
74
+ * traffic_flip/draining, live | start_failed | health_failed | superseded).
75
+ * Same two render layers as buildProgress. A phase the poller never sees
76
+ * (a health gate that passed between two polls) is still ticked off when a
77
+ * later phase arrives, so the checklist reads complete either way.
78
+ */
79
+ export function releaseProgress(headline, opts = {}) {
80
+ const p = phasedProgress(headline, RELEASE_PHASE_LABEL, RELEASE_PHASE_ORDER, "pending", opts.out);
81
+ return {
82
+ update: (status) => {
83
+ if (status)
84
+ p.update(status);
85
+ },
86
+ done: p.done,
87
+ failed: (message) => p.failed(message ?? "Release did not go live"),
88
+ };
89
+ }
90
+ function phasedProgress(headline, labels, order, initial, out = process.stdout) {
91
+ let last = "";
92
+ let lastDetail = "";
93
+ const tui = isTui() && out === process.stdout;
94
+ const spinner = tui ? clack.spinner() : null;
95
+ if (spinner)
96
+ spinner.start(phaseHint(initial, labels, order));
97
+ else
98
+ out.write(`${dim(G.arrow)} ${headline}\n`);
99
+ const slotOf = (status) => order.findIndex((s) => labels[s] === labels[status]);
100
+ function markPlainDone(status) {
101
+ // Print a ✓ line for the phase we just left (plain mode only).
102
+ const label = labels[status];
103
+ if (label)
104
+ out.write(` ${ok(label)}\n`);
105
+ }
106
+ const withDetail = (hint, detail) => (detail ? `${hint} ${dim(`— ${detail}`)}` : hint);
107
+ return {
108
+ update(status, detail) {
109
+ const d = detail ?? "";
110
+ if (status === last) {
111
+ // Same phase, new detail (the queue moved, the build VM was
112
+ // assigned): redraw the line, no new phase.
113
+ if (d !== lastDetail) {
114
+ lastDetail = d;
115
+ if (spinner)
116
+ spinner.message(withDetail(phaseHint(status, labels, order), d));
117
+ else if (d)
118
+ out.write(` ${dim(d)}\n`);
119
+ }
120
+ return;
121
+ }
122
+ const from = last ? slotOf(last) : -1;
123
+ const to = slotOf(status);
124
+ // Same slot (traffic_flip → draining): nothing new to say.
125
+ if (from >= 0 && from === to) {
126
+ last = status;
127
+ return;
128
+ }
129
+ // In plain mode, moving on means the previous phase finished — and any
130
+ // phase skipped between polls finished too.
131
+ if (!tui && from >= 0) {
132
+ markPlainDone(last);
133
+ if (to > from + 1)
134
+ for (let i = from + 1; i < to; i++)
135
+ markPlainDone(order[i]);
136
+ }
137
+ last = status;
138
+ lastDetail = d;
139
+ if (spinner)
140
+ spinner.message(withDetail(phaseHint(status, labels, order), d));
141
+ else if (to >= 0)
142
+ out.write(` ${dim(G.dot)} ${withDetail(phaseHint(status, labels, order), d)}\n`);
143
+ },
144
+ done(finalStatus) {
145
+ if (spinner)
146
+ spinner.stop(`${green(G.check)} ${labels[finalStatus] ?? finalStatus}`);
147
+ else {
148
+ // Plain mode: tick the phase we were in, any phase after it, then the
149
+ // finish line itself.
150
+ const from = last ? slotOf(last) : -1;
151
+ if (from >= 0)
152
+ for (let i = from; i < order.length; i++)
153
+ markPlainDone(order[i]);
154
+ out.write(` ${ok(labels[finalStatus] ?? finalStatus)}\n`);
155
+ }
156
+ },
157
+ failed(message) {
158
+ const msg = message ?? labels.failed ?? "Failed";
159
+ if (spinner)
160
+ spinner.stop(`${red(G.cross)} ${msg}`);
161
+ else
162
+ out.write(` ${fail(msg)}\n`);
163
+ },
164
+ };
165
+ }
166
+ /** Best-effort deployment URL for an app from its hostname. */
167
+ export function deploymentUrl(hostname) {
168
+ if (!hostname)
169
+ return null;
170
+ return /^https?:\/\//.test(hostname) ? hostname : `https://${hostname}`;
171
+ }
172
+ /**
173
+ * The hero end-state card shown after a successful deploy. Leads with the live
174
+ * URL so the very next thing the user does is click it, then the build facts
175
+ * and the two most useful follow-up commands.
176
+ */
177
+ export function deployedCard(opts) {
178
+ const lines = [];
179
+ lines.push("");
180
+ lines.push(panel(`${green(G.check)} Deployed ${bold(opts.appSlug)}`, [
181
+ ["Release", opts.release != null ? `#${opts.release}` : "—"],
182
+ ["Status", statusColor("live")],
183
+ ["Image", opts.digest ? opts.digest.replace(/^sha256:/, "").slice(0, 19) : undefined],
184
+ ["Built in", opts.durationMs != null ? fmtDuration(opts.durationMs) : undefined],
185
+ ["URL", opts.url ? cyan(opts.url) : dim("no domain yet")],
186
+ ["Details", opts.panelUrl ? cyan(opts.panelUrl) : undefined],
187
+ ]));
188
+ lines.push("");
189
+ lines.push(dim(" Next:"));
190
+ lines.push(` ${dim("synteq app logs -f")} ${dim(G.bullet)} stream runtime logs`);
191
+ lines.push(` ${dim("synteq status")} ${dim(G.bullet)} health + replicas`);
192
+ return lines.join("\n");
193
+ }
194
+ /** The end-state card for a build that succeeded but whose RELEASE failed its
195
+ * rollout (start_failed / health_failed) — the image is fine, the deploy is
196
+ * not, and saying "Deployed ✓" here was a lie the portal then contradicted. */
197
+ export function deployFailedCard(opts) {
198
+ const lines = [
199
+ "",
200
+ panel(`${red(G.cross)} Deploy failed for ${bold(opts.appSlug)}`, [
201
+ ["Release", `#${opts.release}`],
202
+ ["Build", statusColor("succeeded")],
203
+ ["Rollout", statusColor(opts.status)],
204
+ ["Details", opts.panelUrl ? cyan(opts.panelUrl) : undefined],
205
+ ]),
206
+ "",
207
+ dim(opts.status === "health_failed"
208
+ ? ` The instance started but failed its health check — check the app listens on its configured port and the health path responds.`
209
+ : ` The instance failed to start — open the link above for the release detail.`),
210
+ ];
211
+ if (opts.failureReason) {
212
+ lines.push("", dim(" Why it failed:"), ...opts.failureReason.split("\n").map((line) => dim(` ${line}`)));
213
+ }
214
+ return lines.join("\n");
215
+ }
216
+ /** The end-state card for a failed build — points the user at the logs. */
217
+ export function failedCard(opts) {
218
+ const lines = [
219
+ "",
220
+ panel(`${red(G.cross)} Build failed for ${bold(opts.appSlug)}`, [
221
+ ["Build", opts.buildId.slice(0, 8)],
222
+ ["Status", statusColor("failed")],
223
+ ["Logs", opts.panelUrl ? cyan(opts.panelUrl) : undefined],
224
+ ]),
225
+ ];
226
+ if (opts.failureReason) {
227
+ lines.push("", dim(" Why it failed:"), ...opts.failureReason.split("\n").map((line) => dim(` ${line}`)));
228
+ }
229
+ lines.push("", dim(opts.panelUrl
230
+ ? ` Open the link above for the full build log, or re-run with --no-wait then poll.`
231
+ : ` See the full build log in the portal, or re-run with --no-wait then poll.`));
232
+ return lines.join("\n");
233
+ }
234
+ function fmtDuration(ms) {
235
+ if (ms < 1000)
236
+ return `${ms}ms`;
237
+ const s = Math.round(ms / 1000);
238
+ if (s < 60)
239
+ return `${s}s`;
240
+ const m = Math.floor(s / 60);
241
+ return `${m}m ${s % 60}s`;
242
+ }
243
+ //# sourceMappingURL=deploy-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-ui.js","sourceRoot":"","sources":["../../src/ui/deploy-ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function orderResultMessage(status: string | undefined, checkoutUrl: string | null | undefined): {
2
+ text: string;
3
+ tone: "success" | "warning";
4
+ };
@@ -0,0 +1,32 @@
1
+ // QA-21: the order-result closing line, driven by the ORDER STATUS rather
2
+ // than checkout-URL absence. Before this helper, the TUI said "All done" for
3
+ // any result without a checkout URL — including orders that came back
4
+ // awaiting_customer / payment_pending with an unpaid invoice (the backend's
5
+ // BitPay dispatch gap), so the customer walked away believing they had paid.
6
+ /** Statuses where no payment has landed yet — the order needs the customer
7
+ * to pay (or finish the wizard) before anything provisions. */
8
+ const UNPAID_STATUSES = new Set([
9
+ "awaiting_customer",
10
+ "payment_pending",
11
+ "draft",
12
+ ]);
13
+ export function orderResultMessage(status, checkoutUrl) {
14
+ if (checkoutUrl) {
15
+ return {
16
+ tone: "success",
17
+ text: "Open the checkout URL in your browser to complete payment.",
18
+ };
19
+ }
20
+ if (status !== undefined && UNPAID_STATUSES.has(status)) {
21
+ return {
22
+ tone: "warning",
23
+ text: "No payment has been taken yet - pay this order's invoice from " +
24
+ "Billing to start provisioning.",
25
+ };
26
+ }
27
+ return {
28
+ tone: "success",
29
+ text: "All done - see Resources to watch provisioning.",
30
+ };
31
+ }
32
+ //# sourceMappingURL=order-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-result.js","sourceRoot":"","sources":["../../src/ui/order-result.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,6EAA6E;AAC7E,sEAAsE;AACtE,4EAA4E;AAC5E,6EAA6E;AAE7E;+DAC+D;AAC/D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,mBAAmB;IACnB,iBAAiB;IACjB,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAChC,MAA0B,EAC1B,WAAsC;IAEtC,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,4DAA4D;SACnE,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EACF,gEAAgE;gBAChE,gCAAgC;SACnC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,iDAAiD;KACxD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { ApiClient } from "../api/client.js";
2
+ /** Where the portal takes payment methods. The CLI never collects card data
3
+ * itself — it hands off to the browser and waits. */
4
+ export declare const PAYMENT_METHODS_PATH = "/organization/billing/payment-methods";
5
+ export declare class PaymentMethodRequired extends Error {
6
+ url: string;
7
+ constructor(url: string);
8
+ }
9
+ /**
10
+ * Make sure the active team has at least one active payment method before a
11
+ * deploy or a create. Every tier is gated, free included.
12
+ *
13
+ * On a TTY with none on file: open the portal's payment-methods page, then
14
+ * ask "added one?" and re-check, up to a few times. Declining stops the
15
+ * command with the URL. Non-interactive runs (`-o json`, pipes, --yes
16
+ * scripts) never wait — they fail at once with the same URL so a CI log says
17
+ * exactly what to do.
18
+ */
19
+ export declare function ensurePaymentMethod(opts: {
20
+ api: ApiClient;
21
+ apiBaseUrl: string;
22
+ interactive: boolean;
23
+ log: (line: string) => void;
24
+ /** Word for what is about to happen, for the prompt: "deploy" / "create the app". */
25
+ action?: string;
26
+ }): Promise<void>;
@@ -0,0 +1,70 @@
1
+ import open from "open";
2
+ import { portalUrl } from "./portal.js";
3
+ import { confirmAction } from "./wizard.js";
4
+ import { dim, ok } from "./glyphs.js";
5
+ /** Where the portal takes payment methods. The CLI never collects card data
6
+ * itself — it hands off to the browser and waits. */
7
+ export const PAYMENT_METHODS_PATH = "/organization/billing/payment-methods";
8
+ export class PaymentMethodRequired extends Error {
9
+ url;
10
+ constructor(url) {
11
+ super([
12
+ "A saved payment method is required before deploying (free tiers too — it is how we keep the free tier for real people).",
13
+ `Add one here: ${url}`,
14
+ "or run `synteq payments methods add`, then deploy again.",
15
+ ].join("\n"));
16
+ this.url = url;
17
+ this.name = "PaymentMethodRequired";
18
+ }
19
+ }
20
+ /**
21
+ * Make sure the active team has at least one active payment method before a
22
+ * deploy or a create. Every tier is gated, free included.
23
+ *
24
+ * On a TTY with none on file: open the portal's payment-methods page, then
25
+ * ask "added one?" and re-check, up to a few times. Declining stops the
26
+ * command with the URL. Non-interactive runs (`-o json`, pipes, --yes
27
+ * scripts) never wait — they fail at once with the same URL so a CI log says
28
+ * exactly what to do.
29
+ */
30
+ export async function ensurePaymentMethod(opts) {
31
+ const has = async () => {
32
+ // No `.catch(() => [])`: a 401 / 5xx / network fault must propagate so the
33
+ // command maps it to the right exit code (2 / 3), not be swallowed into a
34
+ // false "no payment method" that fails open on an expired session and
35
+ // prints the wrong fix on a transient outage.
36
+ const methods = await opts.api.payments.methods();
37
+ return methods.some((m) => m.is_active !== false);
38
+ };
39
+ if (await has())
40
+ return;
41
+ const url = portalUrl(opts.apiBaseUrl, PAYMENT_METHODS_PATH);
42
+ if (!opts.interactive)
43
+ throw new PaymentMethodRequired(url);
44
+ opts.log("");
45
+ opts.log(`No payment method on this team yet — one is needed to ${opts.action ?? "deploy"}.`);
46
+ // Ask before taking over the browser: the user sees why first, and a "no"
47
+ // stops the command with the URL instead of a tab they did not want.
48
+ const proceed = await confirmAction("Continue in the browser to add one?", true);
49
+ if (!proceed)
50
+ throw new PaymentMethodRequired(url);
51
+ opts.log(dim(`Opening ${url}`));
52
+ try {
53
+ await open(url);
54
+ }
55
+ catch {
56
+ // Headless shell: the URL is printed above; the user can open it by hand.
57
+ }
58
+ for (let attempt = 0; attempt < 5; attempt++) {
59
+ const again = await confirmAction("Added a payment method? Check again", true);
60
+ if (!again)
61
+ throw new PaymentMethodRequired(url);
62
+ if (await has()) {
63
+ opts.log(ok("Payment method on file."));
64
+ return;
65
+ }
66
+ opts.log(dim("Still none on file. Give the portal a second, then confirm again."));
67
+ }
68
+ throw new PaymentMethodRequired(url);
69
+ }
70
+ //# sourceMappingURL=payment-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-gate.js","sourceRoot":"","sources":["../../src/ui/payment-gate.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC;sDACsD;AACtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,uCAAuC,CAAC;AAE5E,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC3B;IAAnB,YAAmB,GAAW;QAC5B,KAAK,CACH;YACE,yHAAyH;YACzH,iBAAiB,GAAG,EAAE;YACtB,0DAA0D;SAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QAPe,QAAG,GAAH,GAAG,CAAQ;QAQ5B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAOzC;IACC,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;QACrB,2EAA2E;QAC3E,0EAA0E;QAC1E,sEAAsE;QACtE,8CAA8C;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,IAAI,MAAM,GAAG,EAAE;QAAE,OAAO;IAExB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC7D,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAE5D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,yDAAyD,IAAI,CAAC,MAAM,IAAI,QAAQ,GAAG,CAAC,CAAC;IAC9F,0EAA0E;IAC1E,qEAAqE;IACrE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;IACjF,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;IAC5E,CAAC;IAED,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC"}
@@ -9,9 +9,13 @@ export async function pickPayment(opts) {
9
9
  const log = opts.log ?? (() => { });
10
10
  const prefill = opts.prefill ?? {};
11
11
  const estimatedCost = opts.estimatedCost ?? 0;
12
+ // No blanket `.catch`: on a charge path a swallowed 401 / 5xx / network
13
+ // fault becomes either a false "no methods" (fails open on auth, wrong
14
+ // remediation) or a silent zero balance (credits quietly dropped → a full
15
+ // card charge). Let the typed error propagate so the command maps its exit.
12
16
  const [allMethods, balance] = await Promise.all([
13
- opts.api.payments.methods().catch(() => []),
14
- opts.api.billing.balance().catch(() => ({})),
17
+ opts.api.payments.methods(),
18
+ opts.api.billing.balance(),
15
19
  ]);
16
20
  const creditBalance = readBalance(balance.credit);
17
21
  const balanceCurrency = balance.currency ?? "";
@@ -77,7 +81,10 @@ export async function pickPayment(opts) {
77
81
  }
78
82
  }
79
83
  if (opts.noInteractive) {
80
- throw new PaymentPickerError("Provide --payment-method, --bitpay, or --apply-credits.");
84
+ // Shared by every ordering command; only `vps order` has --bitpay, and
85
+ // it names that flag in its own missing-payment error before reaching
86
+ // here.
87
+ throw new PaymentPickerError("Provide --payment-method or --apply-credits.");
81
88
  }
82
89
  let applyCredits = Boolean(prefill.applyCredits);
83
90
  if (opts.flow !== "credits_topup" && !applyCredits && creditBalance > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/ui/payment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/ui/payment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function portalUrl(apiBaseUrl: string, path?: string): string;
1
+ export declare function portalUrl(apiBaseUrl: string, path?: string, query?: Record<string, string>): string;
package/dist/ui/portal.js CHANGED
@@ -1,4 +1,4 @@
1
- export function portalUrl(apiBaseUrl, path = "/") {
1
+ export function portalUrl(apiBaseUrl, path = "/", query) {
2
2
  let origin;
3
3
  try {
4
4
  const u = new URL(apiBaseUrl);
@@ -11,11 +11,16 @@ export function portalUrl(apiBaseUrl, path = "/") {
11
11
  u.pathname = path.startsWith("/") ? path : `/${path}`;
12
12
  u.search = "";
13
13
  u.hash = "";
14
+ if (query) {
15
+ for (const [k, v] of Object.entries(query))
16
+ u.searchParams.set(k, v);
17
+ }
14
18
  origin = u.toString();
15
19
  }
16
20
  catch {
17
21
  const base = apiBaseUrl.replace(/\/+$/, "");
18
- origin = `${base}${path.startsWith("/") ? path : `/${path}`}`;
22
+ const qs = query ? `?${new URLSearchParams(query).toString()}` : "";
23
+ origin = `${base}${path.startsWith("/") ? path : `/${path}`}${qs}`;
19
24
  }
20
25
  return origin;
21
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../src/ui/portal.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,UAAkB,EAAE,IAAI,GAAG,GAAG;IACtD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,EAAE,CAAC;YACpF,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;QAClB,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACtD,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;QACd,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACZ,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../src/ui/portal.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CACvB,UAAkB,EAClB,IAAI,GAAG,GAAG,EACV,KAA8B;IAE9B,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,EAAE,CAAC;YACpF,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;QAClB,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACtD,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;QACd,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACZ,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { ApiClient } from "../api/client.js";
2
+ import type { AuthMode } from "../auth/scope.js";
3
+ import type { Project } from "../api/types.js";
4
+ export interface OrderWizardProjects {
5
+ projects: Project[];
6
+ /** Team id + name to print in the wizard's "Team: …" banner, when known.
7
+ * Only populated under API-key auth — session mode resolves the active
8
+ * team from local config/tokens instead (see callers). */
9
+ team?: {
10
+ id: string;
11
+ name: string;
12
+ };
13
+ }
14
+ /**
15
+ * Resolve the projects an order wizard should offer to bill against.
16
+ *
17
+ * `GET /account/projects` is session-only (no entry in the backend's
18
+ * `_API_KEY_RULES`, so an API key gets a hard 403 — see
19
+ * `backend/app/dependencies.py::_resolve_api_key`). Under API-key auth we
20
+ * use `GET /organization/api-keys/whoami` instead: it's granted to any
21
+ * valid key regardless of scope (introspection) and already returns the
22
+ * key's addressable projects (narrowed to the key's `api_key_projects`
23
+ * allowlist when it has one, otherwise every project on the key's team).
24
+ */
25
+ export declare function resolveOrderWizardProjects(api: ApiClient, authMode: AuthMode): Promise<OrderWizardProjects>;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Resolve the projects an order wizard should offer to bill against.
3
+ *
4
+ * `GET /account/projects` is session-only (no entry in the backend's
5
+ * `_API_KEY_RULES`, so an API key gets a hard 403 — see
6
+ * `backend/app/dependencies.py::_resolve_api_key`). Under API-key auth we
7
+ * use `GET /organization/api-keys/whoami` instead: it's granted to any
8
+ * valid key regardless of scope (introspection) and already returns the
9
+ * key's addressable projects (narrowed to the key's `api_key_projects`
10
+ * allowlist when it has one, otherwise every project on the key's team).
11
+ */
12
+ export async function resolveOrderWizardProjects(api, authMode) {
13
+ if (authMode === "api_key") {
14
+ const who = await api.auth.apiKeyWhoami();
15
+ const now = new Date().toISOString();
16
+ return {
17
+ projects: who.projects.map((p) => ({
18
+ id: p.id,
19
+ team_id: who.team_id,
20
+ name: p.name,
21
+ description: null,
22
+ is_default: p.is_default,
23
+ created_at: now,
24
+ })),
25
+ team: { id: who.team_id, name: who.team_name },
26
+ };
27
+ }
28
+ const projects = await api.projects.list();
29
+ return { projects };
30
+ }
31
+ //# sourceMappingURL=project-resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-resolve.js","sourceRoot":"","sources":["../../src/ui/project-resolve.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,GAAc,EACd,QAAkB;IAElB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO;YACL,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;YACH,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE;SAC/C,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC"}
@@ -5,6 +5,11 @@ export declare function setRenderMode(opts: {
5
5
  envOverride?: string;
6
6
  noColor?: boolean;
7
7
  isTty?: boolean;
8
+ /** stdout carries a JSON document (`-o json`, or piped). Chrome — clack
9
+ * spinners and pickers, progress checklists — draws on stdout and would
10
+ * corrupt it, so JSON output forces plain mode whatever the persisted
11
+ * setting or SYNTEQ_TUI says. */
12
+ jsonOutput?: boolean;
8
13
  }): RenderMode;
9
14
  export declare function getRenderMode(): RenderMode;
10
15
  export declare const isTui: () => boolean;
@@ -1,6 +1,6 @@
1
1
  let current = "off";
2
2
  export function setRenderMode(opts) {
3
- if (opts.noColor) {
3
+ if (opts.noColor || opts.jsonOutput) {
4
4
  current = "off";
5
5
  return current;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render-mode.js","sourceRoot":"","sources":["../../src/ui/render-mode.ts"],"names":[],"mappings":"AAIA,IAAI,OAAO,GAAe,KAAK,CAAC;AAEhC,MAAM,UAAU,aAAa,CAAC,IAK7B;IACC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,GAAG,KAAK,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC5D,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;QAC7D,OAAO,GAAG,KAAK,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,GAAG,KAAK,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,GAAY,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"render-mode.js","sourceRoot":"","sources":["../../src/ui/render-mode.ts"],"names":[],"mappings":"AAIA,IAAI,OAAO,GAAe,KAAK,CAAC;AAEhC,MAAM,UAAU,aAAa,CAAC,IAU7B;IACC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,GAAG,KAAK,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC5D,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;QAC7D,OAAO,GAAG,KAAK,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,GAAG,KAAK,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,GAAY,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC"}
@@ -28,9 +28,6 @@ export function formatResourceDetail(v) {
28
28
  };
29
29
  addPanel(`${v.hostname} — ${statusColor(v.status)}`, [
30
30
  ["Id", v.id],
31
- ["VMID", v.vmid],
32
- ["Node", v.node],
33
- ["Cluster", v.cluster_id],
34
31
  ["Location", v.location?.city ?? v.location?.name ?? undefined],
35
32
  ["Project", v.project_name ?? undefined],
36
33
  ["Team", v.team_name ?? undefined],
@@ -1 +1 @@
1
- {"version":3,"file":"resource-detail.js","sourceRoot":"","sources":["../../src/ui/resource-detail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-detail.js","sourceRoot":"","sources":["../../src/ui/resource-detail.ts"],"names":[],"mappings":"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"}