@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
@@ -1,3 +1,4 @@
1
+ import { linkKind } from "../config/store.js";
1
2
  import { Command, Flags, Errors } from "@oclif/core";
2
3
  import { makeClients } from "../api/factory.js";
3
4
  import { ApiError, AuthExpiredError, NetworkError } from "../api/errors.js";
@@ -5,6 +6,13 @@ import { PaymentPickerError } from "../ui/payment.js";
5
6
  import { setRenderMode } from "../ui/render-mode.js";
6
7
  import { detectAuthMode, scopeAllowsCommand, formatOutOfScopeMessage, formatSessionOnlyMessage, isAuthRecoveryCommand, } from "../auth/scope.js";
7
8
  import { guardCliVersion } from "../version-check.js";
9
+ import { resolveApp } from "../apps-support/resolve.js";
10
+ import { Args } from "@oclif/core";
11
+ /** Positional app target shared by the `app …` commands that act on one app. */
12
+ export const appTargetArg = {
13
+ target: Args.string({ required: false, description: "App slug or id (default: the directory's linked app)." }),
14
+ };
15
+ import { clientsForLinkTeam, notLinkedError } from "../apps-support/link.js";
8
16
  export class BaseCommand extends Command {
9
17
  static baseFlags = {
10
18
  output: Flags.string({
@@ -29,10 +37,11 @@ export class BaseCommand extends Command {
29
37
  if (this.clients.authMode === "api_key") {
30
38
  const ctorScope = this.constructor.apiKeyScope;
31
39
  // Skip the whoami round-trip for session-only commands (apiKeyScope
32
- // "none" or undefined). The guard below deny-session-onlys from the
33
- // label alone — no scope set is needed — so forcing a network call
34
- // for e.g. `synteq logout` under an offline API-key mode is a bad UX.
35
- if (ctorScope !== undefined && ctorScope !== "none") {
40
+ // "none" or undefined) and for "any" commands. The guard below decides
41
+ // both from the label alone — no scope set is needed — so forcing a
42
+ // network call for e.g. `synteq logout` under an offline API-key mode
43
+ // is a bad UX.
44
+ if (ctorScope !== undefined && ctorScope !== "none" && ctorScope !== "any") {
36
45
  try {
37
46
  const who = await this.clients.api.auth.apiKeyWhoami();
38
47
  this.clients.apiKeyScopes = new Set(who.scopes);
@@ -50,6 +59,7 @@ export class BaseCommand extends Command {
50
59
  envOverride: process.env.SYNTEQ_TUI,
51
60
  noColor: Boolean(process.env.NO_COLOR),
52
61
  isTty,
62
+ jsonOutput: this.outputFormat === "json",
53
63
  });
54
64
  {
55
65
  const cmdId = this.id ?? "<command>";
@@ -87,6 +97,59 @@ export class BaseCommand extends Command {
87
97
  renderTable();
88
98
  }
89
99
  }
100
+ /** An informational line. stdout in table mode; stderr in JSON mode, where
101
+ * stdout carries the JSON document only (piped / `-o json` output must
102
+ * parse). */
103
+ info(line) {
104
+ if (this.outputFormat === "json")
105
+ this.logToStderr(line);
106
+ else
107
+ this.log(line);
108
+ }
109
+ /**
110
+ * The app-resolution dance every `app *` command shares: take an explicit
111
+ * `--app <slug|uuid>` or fall back to this directory's `synteq link`,
112
+ * rescope the client to the linked team, and resolve to a full App.
113
+ * Rescopes `this.clients` as a side effect (same as the inline blocks it
114
+ * replaces). A bad slug is a user error (exit 1); an API fault propagates
115
+ * to `this.fail`.
116
+ */
117
+ /**
118
+ * Commands with one required positional (a release ref, an env key, a
119
+ * hostname, a tier) also take the app as an optional LEADING positional:
120
+ * `app deployment show rackmap 1` and `app deployment show 1` both work.
121
+ * Returns [target, value]; errors when the value is missing.
122
+ */
123
+ positional(first, second, name) {
124
+ if (second !== undefined)
125
+ return [first, second];
126
+ if (first === undefined)
127
+ this.error(`Missing required argument: ${name}`, { exit: 1 });
128
+ return [undefined, first];
129
+ }
130
+ async resolveLinkedApp(flags, target) {
131
+ // `synteq app health my-api` and `--app my-api` are the same thing.
132
+ let appRef = target ?? flags.app;
133
+ let linkProjectId;
134
+ if (!appRef) {
135
+ const link = this.clients.config.linkFor(process.cwd());
136
+ if (!link)
137
+ this.error(notLinkedError("--app <slug>"), { exit: 1 });
138
+ if (linkKind(link) === "function") {
139
+ this.error(`This directory is linked to the function "${link.app_slug}", not an app. ` +
140
+ "Use `synteq function …` here, or pass --app <slug>.", { exit: 1 });
141
+ }
142
+ appRef = link.app_id;
143
+ linkProjectId = link.project_id;
144
+ this.clients = clientsForLinkTeam(this.clients, link, flags);
145
+ }
146
+ // Let the resolution failure propagate so the command's `this.fail` maps
147
+ // it: `resolveApp` throws a plain Error for a bad slug (→ exit 1) and an
148
+ // ApiError for a 404. The old `"status" in e` catch flattened a
149
+ // NetworkError / AuthExpiredError (neither carries `status`) to exit 1
150
+ // instead of its 3 / 2.
151
+ return resolveApp(this.clients.api, appRef, linkProjectId);
152
+ }
90
153
  failWith(detail, exit, status, requestId) {
91
154
  if (this.outputFormat === "json") {
92
155
  process.stderr.write(JSON.stringify({
@@ -115,6 +178,26 @@ export class BaseCommand extends Command {
115
178
  }
116
179
  return super.catch(err);
117
180
  }
181
+ /** A finished command gives the shell back. Interactive prompts (inquirer,
182
+ * clack) attach to stdin, and a TTY stdin that is left flowing or ref'd
183
+ * keeps Node's event loop — and so the process — alive after the last line
184
+ * of output, which reads as the CLI hanging. `run()` has resolved or thrown
185
+ * by the time oclif calls this, so nothing still needs the keyboard. */
186
+ async finally(err) {
187
+ try {
188
+ const { stdin } = process;
189
+ if (stdin.isTTY) {
190
+ if (stdin.isRaw)
191
+ stdin.setRawMode?.(false);
192
+ stdin.pause();
193
+ stdin.unref?.();
194
+ }
195
+ }
196
+ catch {
197
+ // releasing the terminal is best-effort; never mask the command's result
198
+ }
199
+ return super.finally(err);
200
+ }
118
201
  fail(err) {
119
202
  if (err instanceof AuthExpiredError) {
120
203
  this.failWith(err.message, 2, 401);
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/base/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/base/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Command } from "@oclif/core";
2
+ /** The CLI's contract for automation, as Markdown. Kept next to the code it
3
+ * describes; the portal's /agent-use.txt links here for the CLI details. */
4
+ export declare function agentGuide(bin: string): string;
5
+ export default class Agents extends Command {
6
+ static description: string;
7
+ static apiKeyScope: string;
8
+ static examples: string[];
9
+ run(): Promise<void>;
10
+ }
@@ -0,0 +1,53 @@
1
+ import { Command } from "@oclif/core";
2
+ import { UPGRADE_COMMAND } from "../version-check.js";
3
+ /** The CLI's contract for automation, as Markdown. Kept next to the code it
4
+ * describes; the portal's /agent-use.txt links here for the CLI details. */
5
+ export function agentGuide(bin) {
6
+ return [
7
+ `# ${bin} CLI: notes for AI agents and scripts`,
8
+ "",
9
+ "## Auth",
10
+ "- Create a team API key at https://cloud.synteq.com/organization/api-keys, then either",
11
+ ` \`export SYNTEQ_API_TOKEN=sk_...\` (this process only) or \`echo "$KEY" | ${bin} login --with-token\` (stored).`,
12
+ `- \`${bin} whoami\` shows who the CLI acts as.`,
13
+ `- API keys are scope-limited. With a key, \`${bin} --help\` lists only the commands the key can run.`,
14
+ "",
15
+ "## Output",
16
+ "- stdout is JSON whenever it is not a terminal (piped or captured). `-o json` / `-o table` force a format.",
17
+ '- In JSON mode an error is one line on stderr: `{"error":{"detail","status","request_id","exit_code"}}`.',
18
+ `- Exit codes: 0 ok, 1 bad input / not found / out of scope, 2 not signed in, 3 server or network error (safe to retry reads), 4 CLI too old (\`${UPGRADE_COMMAND}\`).`,
19
+ "",
20
+ "## Finding commands",
21
+ `- \`${bin} --help\` lists topics. \`${bin} <topic> --help\` and \`${bin} <topic> <verb> --help\` document every flag, with examples.`,
22
+ `- No command for it? \`${bin} api <METHOD> <path>\` calls any endpoint in https://api.cloud.synteq.com/openapi.json and prints the raw JSON.`,
23
+ ` Body from \`--input file.json\` or stdin; query params with \`--query key=value\`. Example: \`${bin} api GET /resources\`.`,
24
+ "",
25
+ "## Prompts and confirmation",
26
+ "- Pickers and confirmations only appear on a terminal. When piped, pass values as flags (each command's --help names them).",
27
+ "- Commands that destroy, reinstall, power-cycle, or charge money take `--yes` to skip their confirmation.",
28
+ "",
29
+ "## Rules",
30
+ "- Get explicit confirmation from the user before destroying, reinstalling, or power-cycling a resource.",
31
+ "- Get explicit confirmation from the user before placing an order, deploying to a paid plan, or changing billing.",
32
+ "- Resource IDs are UUID strings; treat them as opaque.",
33
+ "",
34
+ ].join("\n");
35
+ }
36
+ export default class Agents extends Command {
37
+ static description = [
38
+ "Print the automation guide for AI agents and scripts (auth, JSON output, exit codes, finding commands).",
39
+ "",
40
+ "Markdown on stdout, so it can be appended to a project's AGENTS.md or CLAUDE.md.",
41
+ "Needs no sign-in and makes no network calls.",
42
+ ].join("\n");
43
+ static apiKeyScope = "any";
44
+ static examples = [
45
+ "<%= config.bin %> agents",
46
+ "<%= config.bin %> agents >> AGENTS.md # give every agent in this repo the guide",
47
+ ];
48
+ async run() {
49
+ await this.parse(Agents);
50
+ process.stdout.write(agentGuide(this.config.bin));
51
+ }
52
+ }
53
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;6EAC6E;AAC7E,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO;QACL,KAAK,GAAG,uCAAuC;QAC/C,EAAE;QACF,SAAS;QACT,wFAAwF;QACxF,+EAA+E,GAAG,iCAAiC;QACnH,OAAO,GAAG,sCAAsC;QAChD,+CAA+C,GAAG,oDAAoD;QACtG,EAAE;QACF,WAAW;QACX,4GAA4G;QAC5G,0GAA0G;QAC1G,kJAAkJ,eAAe,MAAM;QACvK,EAAE;QACF,qBAAqB;QACrB,OAAO,GAAG,6BAA6B,GAAG,2BAA2B,GAAG,8DAA8D;QACtI,0BAA0B,GAAG,iHAAiH;QAC9I,mGAAmG,GAAG,wBAAwB;QAC9H,EAAE;QACF,6BAA6B;QAC7B,6HAA6H;QAC7H,2GAA2G;QAC3G,EAAE;QACF,UAAU;QACV,yGAAyG;QACzG,mHAAmH;QACnH,wDAAwD;QACxD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,GAAG;QACnB,yGAAyG;QACzG,EAAE;QACF,kFAAkF;QAClF,8CAA8C;KAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,MAAM,CAAC,QAAQ,GAAG;QAChB,0BAA0B;QAC1B,mFAAmF;KACpF,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { BaseCommand } from "../base/command.js";
2
2
  export default class Api extends BaseCommand {
3
- static hidden: boolean;
4
3
  static description: string;
5
4
  static apiKeyScope: string;
6
5
  static examples: string[];
@@ -5,18 +5,19 @@ import { readStdin } from "../ui/stdin.js";
5
5
  const METHODS = new Set(["GET", "POST", "PUT", "PATCH", "DELETE"]);
6
6
  const PROTECTED_HEADERS = new Set(["authorization", "x-api-key"]);
7
7
  export default class Api extends BaseCommand {
8
- static hidden = true;
9
8
  static description = [
10
- "Make a raw authenticated request to the portal API (escape hatch).",
9
+ "Make a raw authenticated request to any portal API endpoint (escape hatch).",
11
10
  "",
12
11
  "Prefer the dedicated commands (`synteq vps list`, `synteq ssh-key add`, …)",
13
12
  "when one exists — they validate input and format output. `synteq api` is",
14
- "for endpoints the CLI doesn't wrap yet: it authenticates as you (session",
13
+ "for endpoints the CLI doesn't wrap yet (see the OpenAPI spec at",
14
+ "https://api.cloud.synteq.com/openapi.json): it authenticates as you (session",
15
15
  "or API token), prints the raw JSON response to stdout (pretty on a TTY,",
16
16
  "compact when piped), and maps failures to the standard error envelope",
17
- "and exit codes (1 user / 2 auth / 3 server-or-network).",
17
+ "and exit codes (1 user / 2 auth / 3 server-or-network). With an API key,",
18
+ "the key's scopes decide which endpoints answer (403 otherwise).",
18
19
  ].join("\n");
19
- static apiKeyScope = "none";
20
+ static apiKeyScope = "any";
20
21
  static examples = [
21
22
  "<%= config.bin %> api GET /resources",
22
23
  "<%= config.bin %> api GET /billing/balance --include # status + headers on stderr",
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { BaseCommand } from "../../../base/command.js";
2
+ /** `synteq app deployment list` — release/deploy history for an app. */
3
+ export default class DeploymentList extends BaseCommand {
4
+ static apiKeyScope: string;
5
+ static description: string;
6
+ static examples: string[];
7
+ static args: {
8
+ target: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
9
+ };
10
+ static flags: {
11
+ app: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,45 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand, appTargetArg } from "../../../base/command.js";
3
+ import { withSpinner } from "../../../ui/spinner.js";
4
+ import { renderTable } from "../../../ui/table.js";
5
+ import { statusColor, dim } from "../../../ui/glyphs.js";
6
+ /** `synteq app deployment list` — release/deploy history for an app. */
7
+ export default class DeploymentList extends BaseCommand {
8
+ static apiKeyScope = "none";
9
+ static description = "List an app's deployment history (releases, newest first).";
10
+ static examples = [
11
+ "<%= config.bin %> app deployment list # bare: linked app",
12
+ "<%= config.bin %> app deployment list --app my-api",
13
+ "<%= config.bin %> app deployment list --app my-api -o json",
14
+ ];
15
+ static args = { ...appTargetArg };
16
+ static flags = {
17
+ app: Flags.string({ description: "App slug (or uuid) (default: the directory's linked app)." }),
18
+ };
19
+ async run() {
20
+ await this.initClients();
21
+ const { args, flags } = await this.parse(DeploymentList);
22
+ try {
23
+ const app = await this.resolveLinkedApp(flags, args.target);
24
+ const releases = await withSpinner("Loading deployments", () => this.clients.api.apps.releases(app.id));
25
+ this.emit(releases, () => {
26
+ if (releases.length === 0) {
27
+ this.log("No deployments yet.");
28
+ return;
29
+ }
30
+ this.log(renderTable(["#", "Status", "Created", "Build", "Message"], releases.map((r) => [
31
+ String(r.number),
32
+ statusColor(r.status ?? ""),
33
+ r.deployedAt ?? "",
34
+ r.buildId ? dim(r.buildId.slice(0, 8)) : dim("—"),
35
+ (r.commitMessage ?? "").slice(0, 48),
36
+ ])));
37
+ this.log(dim("\nInspect one: synteq app deployment show <#>"));
38
+ });
39
+ }
40
+ catch (err) {
41
+ this.fail(err);
42
+ }
43
+ }
44
+ }
45
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/app/deployment/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEzD,wEAAwE;AACxE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,WAAW,GAAG,4DAA4D,CAAC;IAClF,MAAM,CAAC,QAAQ,GAAG;QAChB,yEAAyE;QACzE,oDAAoD;QACpD,4DAA4D;KAC7D,CAAC;IACF,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2DAA2D,EAAE,CAAC;KAChG,CAAC;IACF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAC7D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CACvC,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,GAAG,CACN,WAAW,CACT,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAC9C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAClB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;oBAChB,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;oBAC3B,CAAC,CAAC,UAAU,IAAI,EAAE;oBAClB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;oBACjD,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACrC,CAAC,CACH,CACF,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { BaseCommand } from "../../../base/command.js";
2
+ /** `synteq app deployment rollback --to N` — re-deploy an earlier release's
3
+ * image. Backend: POST /apps/{id}/rollback; the server mints a NEW release
4
+ * carrying the old image, so history stays append-only. */
5
+ export default class DeploymentRollback extends BaseCommand {
6
+ static apiKeyScope: string;
7
+ static description: string;
8
+ static examples: string[];
9
+ static args: {
10
+ target: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
11
+ };
12
+ static flags: {
13
+ app: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ to: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
15
+ yes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
@@ -0,0 +1,57 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand, appTargetArg } from "../../../base/command.js";
3
+ import { withSpinner } from "../../../ui/spinner.js";
4
+ import { isInteractive, confirmAction } from "../../../ui/wizard.js";
5
+ import { ok, dim } from "../../../ui/glyphs.js";
6
+ /** `synteq app deployment rollback --to N` — re-deploy an earlier release's
7
+ * image. Backend: POST /apps/{id}/rollback; the server mints a NEW release
8
+ * carrying the old image, so history stays append-only. */
9
+ export default class DeploymentRollback extends BaseCommand {
10
+ static apiKeyScope = "none";
11
+ static description = "Roll an app back to an earlier release (re-deploys that release's image as a new release).";
12
+ static examples = [
13
+ "<%= config.bin %> app deployment rollback --to 12 # bare: this directory's linked app",
14
+ "<%= config.bin %> app deployment rollback --app my-api --to 12 --yes # no prompt (required when piped)",
15
+ "<%= config.bin %> app deployment rollback --app my-api --to 12 --yes -o json",
16
+ ];
17
+ static args = { ...appTargetArg };
18
+ static flags = {
19
+ app: Flags.string({ description: "App slug (or uuid) (default: the directory's linked app)." }),
20
+ to: Flags.integer({
21
+ required: true,
22
+ description: "Release number to roll back to — see `synteq app deployment list`.",
23
+ }),
24
+ yes: Flags.boolean({
25
+ char: "y",
26
+ description: "Skip the confirmation prompt (required for non-interactive use).",
27
+ }),
28
+ };
29
+ async run() {
30
+ await this.initClients();
31
+ const { args, flags } = await this.parse(DeploymentRollback);
32
+ try {
33
+ if (flags.to < 1)
34
+ this.error("--to must be a release number (1 or higher).", { exit: 1 });
35
+ const app = await this.resolveLinkedApp(flags, args.target);
36
+ if (!flags.yes) {
37
+ if (!(isInteractive() && this.outputFormat === "table")) {
38
+ this.error("Refusing to roll back without --yes in a non-interactive session.", { exit: 1 });
39
+ }
40
+ const go = await confirmAction(`Roll ${app.slug} back to release #${flags.to}?`, false);
41
+ if (!go) {
42
+ this.log("Aborted.");
43
+ return;
44
+ }
45
+ }
46
+ const build = await withSpinner(`Rolling back to #${flags.to}`, () => this.clients.api.apps.rollback(app.id, flags.to));
47
+ this.emit(build, () => {
48
+ this.log(ok(`Rollback to release #${flags.to} started on ${app.slug}.`));
49
+ this.log(dim("A new release carrying that image is rolling out — `synteq app deployment list` shows it."));
50
+ });
51
+ }
52
+ catch (err) {
53
+ this.fail(err);
54
+ }
55
+ }
56
+ }
57
+ //# sourceMappingURL=rollback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../../src/commands/app/deployment/rollback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { BaseCommand } from "../../../base/command.js";
2
+ /**
3
+ * `synteq app deployment show <ref>` — one build's full detail.
4
+ *
5
+ * `<ref>` may be a build id, a release id, or a release number (`9` or
6
+ * `#9`). Release ids and numbers are resolved to their build id via the
7
+ * release list, so `deployment show <n>` composes directly with the `#`
8
+ * column that `deployment list` prints.
9
+ */
10
+ export default class DeploymentShow extends BaseCommand {
11
+ static apiKeyScope: string;
12
+ static description: string;
13
+ static examples: string[];
14
+ static args: {
15
+ target: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
16
+ ref: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
17
+ };
18
+ static flags: {
19
+ app: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ };
21
+ run(): Promise<void>;
22
+ /** Resolve a user-supplied ref to a build id. A bare/`#`-prefixed integer,
23
+ * or an id that matches a release, is mapped through that release's
24
+ * buildId; anything else is treated as a build id already. */
25
+ private resolveBuildId;
26
+ }
@@ -0,0 +1,98 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../../base/command.js";
3
+ import { withSpinner } from "../../../ui/spinner.js";
4
+ import { panel } from "../../../ui/wizard.js";
5
+ import { statusColor, dim } from "../../../ui/glyphs.js";
6
+ import { pageThrough } from "../../../api/client.js";
7
+ /**
8
+ * `synteq app deployment show <ref>` — one build's full detail.
9
+ *
10
+ * `<ref>` may be a build id, a release id, or a release number (`9` or
11
+ * `#9`). Release ids and numbers are resolved to their build id via the
12
+ * release list, so `deployment show <n>` composes directly with the `#`
13
+ * column that `deployment list` prints.
14
+ */
15
+ export default class DeploymentShow extends BaseCommand {
16
+ static apiKeyScope = "none";
17
+ static description = "Show the details of one build/deployment (status, steps, who triggered it). Accepts a build id, a release id, or a release number.";
18
+ static examples = [
19
+ "<%= config.bin %> app deployment show 9 # by release number",
20
+ "<%= config.bin %> app deployment show 01a05963... # by build or release id",
21
+ "<%= config.bin %> app deployment show 9 --app my-api -o json",
22
+ ];
23
+ static args = {
24
+ target: Args.string({ required: false, description: "App slug or id (optional; default: the directory's linked app or --app)." }),
25
+ ref: Args.string({
26
+ required: false,
27
+ description: "A build id, a release id, or a release number (e.g. 9 or #9) from `app deployment list`.",
28
+ }),
29
+ };
30
+ static flags = {
31
+ app: Flags.string({ description: "App slug (or uuid) (default: the directory's linked app)." }),
32
+ };
33
+ async run() {
34
+ await this.initClients();
35
+ const { args, flags } = await this.parse(DeploymentShow);
36
+ const [target, ref] = this.positional(args.target, args.ref, "ref");
37
+ try {
38
+ const app = await this.resolveLinkedApp(flags, target);
39
+ const buildId = await withSpinner("Loading build", async () => {
40
+ const id = await this.resolveBuildId(app.id, ref);
41
+ return this.clients.api.apps.buildDetail(app.id, id).then((b) => ({ id, b }));
42
+ });
43
+ const { id, b } = buildId;
44
+ this.emit(b, () => {
45
+ this.log(panel(`Build ${id.slice(0, 12)}`, [
46
+ ["App", app.slug],
47
+ ["Status", statusColor(b.status ?? "")],
48
+ ["Triggered by", b.triggeredBy?.name ?? dim("—")],
49
+ ["Image digest", b.imageDigest ? dim(b.imageDigest.slice(0, 24)) : dim("—")],
50
+ ]));
51
+ for (const s of b.steps ?? []) {
52
+ this.log(` ${statusColor(s.status)} ${s.label}${s.durationMs != null ? dim(` (${s.durationMs}ms)`) : ""}`);
53
+ }
54
+ });
55
+ }
56
+ catch (err) {
57
+ this.fail(err);
58
+ }
59
+ }
60
+ /** Resolve a user-supplied ref to a build id. A bare/`#`-prefixed integer,
61
+ * or an id that matches a release, is mapped through that release's
62
+ * buildId; anything else is treated as a build id already. */
63
+ async resolveBuildId(appId, ref) {
64
+ const num = ref.startsWith("#") ? ref.slice(1) : ref;
65
+ const asNumber = /^\d+$/.test(num) ? Number(num) : null;
66
+ // Only fetch the release list when the ref could be a release (a number,
67
+ // or an id we can try to match) — a plain build id skips the round-trip.
68
+ if (asNumber !== null || /^[0-9a-f-]{20,}$/i.test(ref)) {
69
+ let releases = [];
70
+ try {
71
+ // The release list is paged (50/200, portal #419) and ordered by
72
+ // number desc, so a number past the first page is reached by
73
+ // walking until the page's last number is at or below it; a
74
+ // release id has no order to exploit and walks until found.
75
+ releases = await pageThrough((page) => this.clients.api.apps.releasesPage(appId, { page }), (page) => asNumber !== null
76
+ ? page.items.some((r) => r.number <= asNumber)
77
+ : page.items.some((r) => r.id === ref));
78
+ }
79
+ catch {
80
+ // If the list read fails, fall through and try the ref as a build id.
81
+ }
82
+ const match = asNumber !== null
83
+ ? releases.find((r) => r.number === asNumber)
84
+ : releases.find((r) => r.id === ref);
85
+ if (match) {
86
+ if (!match.buildId) {
87
+ this.error(`Release #${match.number} has no build (image-ref or seeded release) — nothing to show.`, { exit: 1 });
88
+ }
89
+ return match.buildId;
90
+ }
91
+ if (asNumber !== null) {
92
+ this.error(`No release #${asNumber} on this app.`, { exit: 1 });
93
+ }
94
+ }
95
+ return ref;
96
+ }
97
+ }
98
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../../src/commands/app/deployment/show.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { BaseCommand } from "../../../base/command.js";
2
+ /** `synteq app domain add <hostname>` — attach a custom domain (returns the
3
+ * DNS records to add). */
4
+ export default class DomainAdd extends BaseCommand {
5
+ static apiKeyScope: string;
6
+ static description: string;
7
+ static examples: string[];
8
+ static args: {
9
+ target: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
10
+ hostname: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
11
+ };
12
+ static flags: {
13
+ app: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ "accept-fee": import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ };
16
+ run(): Promise<void>;
17
+ }