@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,55 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../base/command.js";
3
+ import { renderTable, shortId, truncationNote } from "../../ui/table.js";
4
+ import { statusColor } from "../../ui/glyphs.js";
5
+ /**
6
+ * `synteq function list` — serverless functions in the active project.
7
+ *
8
+ * Backend: GET /functions. Scoping matches `apps list` — the server resolves
9
+ * the active project from the `X-Project-Id` header, so `--project` overrides it.
10
+ */
11
+ export default class FunctionList extends BaseCommand {
12
+ static apiKeyScope = "none";
13
+ static description = "List serverless functions in the active project.";
14
+ static examples = [
15
+ "<%= config.bin %> function list",
16
+ "<%= config.bin %> function list --project 019e... # scope to a specific project",
17
+ "<%= config.bin %> function list -o json",
18
+ ];
19
+ static flags = {
20
+ project: Flags.string({
21
+ description: "Project id to scope to (defaults to the active project).",
22
+ }),
23
+ };
24
+ async run() {
25
+ await this.initClients();
26
+ const { flags } = await this.parse(FunctionList);
27
+ try {
28
+ const page = await this.clients.api.functions.listPage(flags.project);
29
+ const fns = page.items;
30
+ const note = truncationNote(fns.length, page.total, "--project");
31
+ this.emit(fns, () => {
32
+ if (fns.length === 0) {
33
+ this.log("No functions. Create one with `synteq function init <name>`.");
34
+ return;
35
+ }
36
+ this.log(renderTable(["ID", "SLUG", "STATUS", "RUNTIME", "PLAN", "REGION", "REL", "HOSTNAME"], fns.map((f) => [
37
+ shortId(f.id),
38
+ f.slug,
39
+ statusColor(f.status),
40
+ f.runtime,
41
+ f.planTier,
42
+ f.region,
43
+ f.currentReleaseNumber != null ? String(f.currentReleaseNumber) : "—",
44
+ f.hostname,
45
+ ])));
46
+ });
47
+ if (note)
48
+ this.info(note);
49
+ }
50
+ catch (err) {
51
+ this.fail(err);
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/function/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,WAAW,GAAG,kDAAkD,CAAC;IACxE,MAAM,CAAC,QAAQ,GAAG;QAChB,iCAAiC;QACjC,mFAAmF;QACnF,yCAAyC;KAC1C,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,0DAA0D;SACxE,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBAClB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrB,IAAI,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;oBACzE,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,GAAG,CACN,WAAW,CACT,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,EACxE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACb,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACb,CAAC,CAAC,IAAI;oBACN,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;oBACrB,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG;oBACrE,CAAC,CAAC,QAAQ;iBACX,CAAC,CACH,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { BaseCommand } from "../../base/command.js";
2
+ /**
3
+ * `synteq function logs` — one line per invocation, newest first.
4
+ *
5
+ * Backend: GET /functions/{id}/runs. A run row is the unit here, not a log
6
+ * line: the runtime captures a function's stdout per invocation, so `--lines`
7
+ * indents the captured output under the run it belongs to (and `--follow`
8
+ * turns the same view into a tail).
9
+ */
10
+ export default class FunctionLogs extends BaseCommand {
11
+ static apiKeyScope: string;
12
+ static description: string;
13
+ static examples: string[];
14
+ static args: {
15
+ name: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
16
+ };
17
+ static flags: {
18
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
20
+ status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ release: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ search: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
+ lines: import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
+ follow: import("@oclif/core/interfaces").BooleanFlag<boolean>;
25
+ };
26
+ run(): Promise<void>;
27
+ /** One run as a single line, plus its captured output when --lines is on. */
28
+ private printRun;
29
+ }
@@ -0,0 +1,171 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../base/command.js";
3
+ import { resolveLinkedFunction } from "../../functions-support/link.js";
4
+ import { withSpinner } from "../../ui/spinner.js";
5
+ import { statusColor, dim, red, G } from "../../ui/glyphs.js";
6
+ /** Seconds between polls in --follow mode. */
7
+ const FOLLOW_INTERVAL_MS = 3000;
8
+ const MAX_LIMIT = 100;
9
+ /**
10
+ * `synteq function logs` — one line per invocation, newest first.
11
+ *
12
+ * Backend: GET /functions/{id}/runs. A run row is the unit here, not a log
13
+ * line: the runtime captures a function's stdout per invocation, so `--lines`
14
+ * indents the captured output under the run it belongs to (and `--follow`
15
+ * turns the same view into a tail).
16
+ */
17
+ export default class FunctionLogs extends BaseCommand {
18
+ static apiKeyScope = "none";
19
+ static description = [
20
+ "Show a function's recent invocations, newest first.",
21
+ "",
22
+ "Each row is one run: when it started, how it ended, how long it took. Add",
23
+ "`--lines` to print the output each run captured (and the HTTP calls it",
24
+ "made), or `--follow` to tail new runs as they arrive.",
25
+ ].join("\n");
26
+ static examples = [
27
+ "<%= config.bin %> function logs # bare: this directory's linked function",
28
+ "<%= config.bin %> function logs my-fn --lines # include each run's captured output",
29
+ "<%= config.bin %> function logs my-fn --status error --limit 50",
30
+ "<%= config.bin %> function logs my-fn --follow # tail new runs (Ctrl-C to stop)",
31
+ "<%= config.bin %> function logs my-fn -o json",
32
+ ];
33
+ static args = {
34
+ name: Args.string({
35
+ description: "Function slug (or uuid). Omit to use this directory's linked function.",
36
+ }),
37
+ };
38
+ static flags = {
39
+ name: Flags.string({
40
+ description: "Function slug (or uuid) — the flag form of the positional arg.",
41
+ }),
42
+ limit: Flags.integer({
43
+ default: 20,
44
+ description: `How many runs to fetch (default: 20, max: ${MAX_LIMIT}).`,
45
+ }),
46
+ status: Flags.string({
47
+ description: "Only runs with this status, e.g. success or error.",
48
+ }),
49
+ release: Flags.integer({
50
+ description: "Only runs served by this release number.",
51
+ }),
52
+ search: Flags.string({
53
+ description: "Substring filter the server applies over the run's path and captured output.",
54
+ }),
55
+ lines: Flags.boolean({
56
+ description: "Print each run's captured output (and outbound HTTP calls) indented under it.",
57
+ }),
58
+ follow: Flags.boolean({
59
+ char: "f",
60
+ description: `Poll every ${FOLLOW_INTERVAL_MS / 1000}s and print runs newer than the newest seen (Ctrl-C to stop).`,
61
+ }),
62
+ };
63
+ async run() {
64
+ await this.initClients();
65
+ const { args, flags } = await this.parse(FunctionLogs);
66
+ try {
67
+ const { fn, clients } = await resolveLinkedFunction(this.clients, {
68
+ ...flags,
69
+ name: args.name ?? flags.name,
70
+ }).catch((e) => {
71
+ if (e instanceof Error && !("status" in e))
72
+ this.error(e.message, { exit: 1 });
73
+ throw e;
74
+ });
75
+ this.clients = clients;
76
+ if (flags.limit < 1 || flags.limit > MAX_LIMIT) {
77
+ this.error(`--limit must be between 1 and ${MAX_LIMIT}.`, { exit: 1 });
78
+ }
79
+ const query = {
80
+ limit: flags.limit,
81
+ status: flags.status,
82
+ release: flags.release,
83
+ q: flags.search,
84
+ };
85
+ const page = await withSpinner("Loading runs", () => this.clients.api.functions.runs(fn.id, query));
86
+ if (!flags.follow) {
87
+ this.emit(page, () => {
88
+ if (page.items.length === 0) {
89
+ this.log(dim("No invocations recorded."));
90
+ return;
91
+ }
92
+ // The API returns newest first; print oldest first so a terminal
93
+ // reads top-to-bottom like a log.
94
+ for (const run of [...page.items].reverse())
95
+ this.printRun(run, flags.lines);
96
+ });
97
+ return;
98
+ }
99
+ // --follow: print the first page, then poll for anything newer. Run ids
100
+ // are UUIDv7 strings — lexicographically ordered by creation — so
101
+ // "newer than" is a plain string comparison, no clock involved.
102
+ for (const run of [...page.items].reverse())
103
+ this.printRun(run, flags.lines);
104
+ let newest = page.items.reduce((m, r) => (r.id > m ? r.id : m), "");
105
+ this.log(dim(`${G.dot} Following ${fn.slug}. Ctrl-C to stop.`));
106
+ let stop = false;
107
+ const onSigint = () => {
108
+ stop = true;
109
+ };
110
+ process.on("SIGINT", onSigint);
111
+ try {
112
+ for (;;) {
113
+ await sleep(FOLLOW_INTERVAL_MS);
114
+ if (stop)
115
+ break;
116
+ let next;
117
+ try {
118
+ next = await this.clients.api.functions.runs(fn.id, query);
119
+ }
120
+ catch {
121
+ continue; // transient — keep tailing
122
+ }
123
+ const fresh = next.items.filter((r) => r.id > newest).sort((a, b) => (a.id < b.id ? -1 : 1));
124
+ for (const run of fresh)
125
+ this.printRun(run, flags.lines);
126
+ if (fresh.length > 0)
127
+ newest = fresh[fresh.length - 1].id;
128
+ if (stop)
129
+ break;
130
+ }
131
+ }
132
+ finally {
133
+ process.removeListener("SIGINT", onSigint);
134
+ }
135
+ }
136
+ catch (err) {
137
+ this.fail(err);
138
+ }
139
+ }
140
+ /** One run as a single line, plus its captured output when --lines is on. */
141
+ printRun(run, withLines) {
142
+ const status = run.statusCode != null ? `${run.status}/${run.statusCode}` : run.status;
143
+ const parts = [
144
+ dim(run.startedAt),
145
+ statusColor(status),
146
+ run.durationMs != null ? `${run.durationMs}ms` : dim("—"),
147
+ run.releaseNumber != null ? dim(`#${run.releaseNumber}`) : "",
148
+ run.error ? red(run.error) : "",
149
+ ].filter(Boolean);
150
+ this.log(parts.join(` ${dim(G.bullet)} `));
151
+ if (!withLines)
152
+ return;
153
+ for (const line of run.logLines ?? [])
154
+ this.log(` ${line}`);
155
+ if (run.logTruncated)
156
+ this.log(dim(" … output truncated"));
157
+ for (const call of run.outbound ?? []) {
158
+ const method = call.method ?? "GET";
159
+ const outcome = call.error
160
+ ? red(call.error)
161
+ : `responded ${statusColor(String(call.status ?? "—"))}${call.durationMs != null ? ` in ${call.durationMs}ms` : ""}`;
162
+ this.log(dim(` ${G.arrow} ${method} ${call.url} `) + outcome);
163
+ }
164
+ if (run.outboundTruncated)
165
+ this.log(dim(" … outbound calls truncated"));
166
+ }
167
+ }
168
+ function sleep(ms) {
169
+ return new Promise((r) => setTimeout(r, ms));
170
+ }
171
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/commands/function/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { BaseCommand } from "../../base/command.js";
2
+ /** `synteq function pause` — stop a function serving traffic. Backend:
3
+ * PATCH /functions/{id} with `paused: true`. A pause is also the first step
4
+ * of a delete: the API only allows DELETE once a function has been paused
5
+ * for 14 days (see `function delete`), and until now the CLI had no scripted
6
+ * way to start that clock. The TUI toggles `paused` without a confirm, so
7
+ * neither does this. */
8
+ export default class FunctionPause extends BaseCommand {
9
+ static apiKeyScope: string;
10
+ static description: string;
11
+ static examples: string[];
12
+ static args: {
13
+ name: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
14
+ };
15
+ static flags: {
16
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ };
18
+ run(): Promise<void>;
19
+ }
@@ -0,0 +1,50 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../base/command.js";
3
+ import { resolveLinkedFunction } from "../../functions-support/link.js";
4
+ import { withSpinner } from "../../ui/spinner.js";
5
+ import { ok, dim } from "../../ui/glyphs.js";
6
+ /** `synteq function pause` — stop a function serving traffic. Backend:
7
+ * PATCH /functions/{id} with `paused: true`. A pause is also the first step
8
+ * of a delete: the API only allows DELETE once a function has been paused
9
+ * for 14 days (see `function delete`), and until now the CLI had no scripted
10
+ * way to start that clock. The TUI toggles `paused` without a confirm, so
11
+ * neither does this. */
12
+ export default class FunctionPause extends BaseCommand {
13
+ static apiKeyScope = "none";
14
+ static description = "Pause a function so it stops serving traffic. Also starts the 14-day pause the API requires before a function can be deleted.";
15
+ static examples = [
16
+ "<%= config.bin %> function pause # bare: this directory's linked function",
17
+ "<%= config.bin %> function pause my-fn",
18
+ "<%= config.bin %> function pause my-fn -o json",
19
+ ];
20
+ static args = {
21
+ name: Args.string({
22
+ description: "Function slug (or uuid). Omit to use this directory's linked function.",
23
+ }),
24
+ };
25
+ static flags = {
26
+ name: Flags.string({
27
+ description: "Function slug (or uuid) — the flag form of the positional arg.",
28
+ }),
29
+ };
30
+ async run() {
31
+ await this.initClients();
32
+ const { args, flags } = await this.parse(FunctionPause);
33
+ try {
34
+ const { fn, clients } = await resolveLinkedFunction(this.clients, {
35
+ ...flags,
36
+ name: args.name ?? flags.name,
37
+ });
38
+ this.clients = clients;
39
+ const updated = await withSpinner(`Pausing ${fn.slug}`, () => this.clients.api.functions.update(fn.id, { paused: true }));
40
+ this.emit(updated, () => {
41
+ this.log(ok(`Paused ${fn.slug} — it is no longer serving traffic.`));
42
+ this.log(dim("Resume it with `synteq function resume`."));
43
+ });
44
+ }
45
+ catch (err) {
46
+ this.fail(err);
47
+ }
48
+ }
49
+ }
50
+ //# sourceMappingURL=pause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pause.js","sourceRoot":"","sources":["../../../src/commands/function/pause.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;;;;yBAKyB;AACzB,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,WAAW,GAChB,+HAA+H,CAAC;IAClI,MAAM,CAAC,QAAQ,GAAG;QAChB,0FAA0F;QAC1F,wCAAwC;QACxC,gDAAgD;KACjD,CAAC;IACF,MAAM,CAAC,IAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,wEAAwE;SACtF,CAAC;KACH,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,gEAAgE;SAC9E,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChE,GAAG,KAAK;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;aAC9B,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YAEvB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAC3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAC3D,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,qCAAqC,CAAC,CAAC,CAAC;gBACrE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;YAC5D,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,15 @@
1
+ import { BaseCommand } from "../../base/command.js";
2
+ /** `synteq function releases` — a function's release history, newest first.
3
+ * Backend: GET /functions/{id}/releases. Roll back with `function rollback`. */
4
+ export default class FunctionReleases extends BaseCommand {
5
+ static apiKeyScope: string;
6
+ static description: string;
7
+ static examples: string[];
8
+ static args: {
9
+ name: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
10
+ };
11
+ static flags: {
12
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,62 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../base/command.js";
3
+ import { resolveLinkedFunction } from "../../functions-support/link.js";
4
+ import { withSpinner } from "../../ui/spinner.js";
5
+ import { renderTable, shortId } from "../../ui/table.js";
6
+ import { statusColor, dim, G } from "../../ui/glyphs.js";
7
+ /** `synteq function releases` — a function's release history, newest first.
8
+ * Backend: GET /functions/{id}/releases. Roll back with `function rollback`. */
9
+ export default class FunctionReleases extends BaseCommand {
10
+ static apiKeyScope = "none";
11
+ static description = "List a function's releases, newest first, marking the current one.";
12
+ static examples = [
13
+ "<%= config.bin %> function releases # bare: this directory's linked function",
14
+ "<%= config.bin %> function releases my-fn",
15
+ "<%= config.bin %> function releases my-fn -o json",
16
+ ];
17
+ static args = {
18
+ name: Args.string({
19
+ description: "Function slug (or uuid). Omit to use this directory's linked function.",
20
+ }),
21
+ };
22
+ static flags = {
23
+ name: Flags.string({
24
+ description: "Function slug (or uuid) — the flag form of the positional arg.",
25
+ }),
26
+ };
27
+ async run() {
28
+ await this.initClients();
29
+ const { args, flags } = await this.parse(FunctionReleases);
30
+ try {
31
+ const { fn, clients } = await resolveLinkedFunction(this.clients, {
32
+ ...flags,
33
+ name: args.name ?? flags.name,
34
+ }).catch((e) => {
35
+ if (e instanceof Error && !("status" in e))
36
+ this.error(e.message, { exit: 1 });
37
+ throw e;
38
+ });
39
+ this.clients = clients;
40
+ const releases = await withSpinner("Loading releases", () => this.clients.api.functions.releases(fn.id));
41
+ const sorted = [...releases].sort((a, b) => b.number - a.number);
42
+ this.emit(sorted, () => {
43
+ if (sorted.length === 0) {
44
+ this.log(`No releases yet. Deploy one: synteq function deploy --name ${fn.slug}`);
45
+ return;
46
+ }
47
+ this.log(renderTable(["NUMBER", "STATUS", "CURRENT", "DEPLOYED_AT", "BUILD", "DIGEST"], sorted.map((r) => [
48
+ `#${r.number}`,
49
+ statusColor(r.status),
50
+ r.isCurrent ? G.check : dim("—"),
51
+ r.deployedAt,
52
+ r.buildId ? shortId(r.buildId) : dim("—"),
53
+ r.imageDigest ? r.imageDigest.replace(/^sha256:/, "").slice(0, 12) : dim("—"),
54
+ ])));
55
+ });
56
+ }
57
+ catch (err) {
58
+ this.fail(err);
59
+ }
60
+ }
61
+ }
62
+ //# sourceMappingURL=releases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"releases.js","sourceRoot":"","sources":["../../../src/commands/function/releases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { BaseCommand } from "../../base/command.js";
2
+ /** `synteq function resume` — put a paused function back into service.
3
+ * Backend: PATCH /functions/{id} with `paused: false`. The inverse of
4
+ * `function pause`; like the TUI toggle it takes no confirmation. */
5
+ export default class FunctionResume extends BaseCommand {
6
+ static apiKeyScope: string;
7
+ static description: string;
8
+ static examples: string[];
9
+ static args: {
10
+ name: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
11
+ };
12
+ static flags: {
13
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ };
15
+ run(): Promise<void>;
16
+ }
@@ -0,0 +1,47 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../base/command.js";
3
+ import { resolveLinkedFunction } from "../../functions-support/link.js";
4
+ import { withSpinner } from "../../ui/spinner.js";
5
+ import { ok, dim } from "../../ui/glyphs.js";
6
+ /** `synteq function resume` — put a paused function back into service.
7
+ * Backend: PATCH /functions/{id} with `paused: false`. The inverse of
8
+ * `function pause`; like the TUI toggle it takes no confirmation. */
9
+ export default class FunctionResume extends BaseCommand {
10
+ static apiKeyScope = "none";
11
+ static description = "Resume a paused function so it starts serving traffic again.";
12
+ static examples = [
13
+ "<%= config.bin %> function resume # bare: this directory's linked function",
14
+ "<%= config.bin %> function resume my-fn",
15
+ "<%= config.bin %> function resume my-fn -o json",
16
+ ];
17
+ static args = {
18
+ name: Args.string({
19
+ description: "Function slug (or uuid). Omit to use this directory's linked function.",
20
+ }),
21
+ };
22
+ static flags = {
23
+ name: Flags.string({
24
+ description: "Function slug (or uuid) — the flag form of the positional arg.",
25
+ }),
26
+ };
27
+ async run() {
28
+ await this.initClients();
29
+ const { args, flags } = await this.parse(FunctionResume);
30
+ try {
31
+ const { fn, clients } = await resolveLinkedFunction(this.clients, {
32
+ ...flags,
33
+ name: args.name ?? flags.name,
34
+ });
35
+ this.clients = clients;
36
+ const updated = await withSpinner(`Resuming ${fn.slug}`, () => this.clients.api.functions.update(fn.id, { paused: false }));
37
+ this.emit(updated, () => {
38
+ this.log(ok(`Resumed ${fn.slug} — it is serving traffic again.`));
39
+ this.log(dim("Pause it again with `synteq function pause`."));
40
+ });
41
+ }
42
+ catch (err) {
43
+ this.fail(err);
44
+ }
45
+ }
46
+ }
47
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/commands/function/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;sEAEsE;AACtE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,WAAW,GAAG,8DAA8D,CAAC;IACpF,MAAM,CAAC,QAAQ,GAAG;QAChB,2FAA2F;QAC3F,yCAAyC;QACzC,iDAAiD;KAClD,CAAC;IACF,MAAM,CAAC,IAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,wEAAwE;SACtF,CAAC;KACH,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,gEAAgE;SAC9E,CAAC;KACH,CAAC;IAEF,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,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChE,GAAG,KAAK;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;aAC9B,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YAEvB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAC5D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAC5D,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,iCAAiC,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;YAChE,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 function rollback --to N` — re-point a function at an earlier
3
+ * release. Backend: POST /functions/{id}/rollback; the server mints a NEW
4
+ * release carrying the old image, so history stays append-only. */
5
+ export default class FunctionRollback extends BaseCommand {
6
+ static apiKeyScope: string;
7
+ static description: string;
8
+ static examples: string[];
9
+ static args: {
10
+ name: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
11
+ };
12
+ static flags: {
13
+ name: 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,69 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../base/command.js";
3
+ import { resolveLinkedFunction } from "../../functions-support/link.js";
4
+ import { withSpinner } from "../../ui/spinner.js";
5
+ import { isInteractive, confirmAction } from "../../ui/wizard.js";
6
+ import { ok, dim } from "../../ui/glyphs.js";
7
+ /** `synteq function rollback --to N` — re-point a function at an earlier
8
+ * release. Backend: POST /functions/{id}/rollback; the server mints a NEW
9
+ * release carrying the old image, so history stays append-only. */
10
+ export default class FunctionRollback extends BaseCommand {
11
+ static apiKeyScope = "none";
12
+ static description = "Roll a function back to an earlier release (mints a new release with that image).";
13
+ static examples = [
14
+ "<%= config.bin %> function rollback --to 3 # bare: this directory's linked function",
15
+ "<%= config.bin %> function rollback my-fn --to 3 --yes # no prompt (required when piped)",
16
+ "<%= config.bin %> function rollback my-fn --to 3 --yes -o json",
17
+ ];
18
+ static args = {
19
+ name: Args.string({
20
+ description: "Function slug (or uuid). Omit to use this directory's linked function.",
21
+ }),
22
+ };
23
+ static flags = {
24
+ name: Flags.string({
25
+ description: "Function slug (or uuid) — the flag form of the positional arg.",
26
+ }),
27
+ to: Flags.integer({
28
+ required: true,
29
+ description: "Release number to roll back to — see `synteq function releases`.",
30
+ }),
31
+ yes: Flags.boolean({
32
+ char: "y",
33
+ description: "Skip the confirmation prompt (required for non-interactive use).",
34
+ }),
35
+ };
36
+ async run() {
37
+ await this.initClients();
38
+ const { args, flags } = await this.parse(FunctionRollback);
39
+ try {
40
+ const { fn, clients } = await resolveLinkedFunction(this.clients, {
41
+ ...flags,
42
+ name: args.name ?? flags.name,
43
+ }).catch((e) => {
44
+ if (e instanceof Error && !("status" in e))
45
+ this.error(e.message, { exit: 1 });
46
+ throw e;
47
+ });
48
+ this.clients = clients;
49
+ if (!flags.yes) {
50
+ if (!(isInteractive() && this.outputFormat === "table")) {
51
+ this.error("Refusing to roll back without --yes in a non-interactive session.", { exit: 1 });
52
+ }
53
+ const go = await confirmAction(`Roll ${fn.slug} back to release #${flags.to}?`, false);
54
+ if (!go) {
55
+ this.log("Aborted.");
56
+ return;
57
+ }
58
+ }
59
+ const result = await withSpinner(`Rolling back to #${flags.to}`, () => this.clients.api.functions.rollback(fn.id, flags.to));
60
+ this.emit(result, () => {
61
+ this.log(ok(`${fn.slug} is now serving release #${result.release} ${dim(`(rolled back to #${result.rolledBackTo})`)}`));
62
+ });
63
+ }
64
+ catch (err) {
65
+ this.fail(err);
66
+ }
67
+ }
68
+ }
69
+ //# sourceMappingURL=rollback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../src/commands/function/rollback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { BaseCommand } from "../../../base/command.js";
2
+ /** `synteq function settings set` — patch one or more of a function's
3
+ * runtime/scaling settings. Only the flags you pass are changed; the rest
4
+ * are left as they are. Backend: PATCH /functions/{id}. The bounds enforced
5
+ * here mirror the portal's Function detail editor so a change made from the
6
+ * terminal is accepted on exactly the same terms as one made in the TUI. */
7
+ export default class FunctionSettingsSet extends BaseCommand {
8
+ static apiKeyScope: string;
9
+ static description: string;
10
+ static examples: string[];
11
+ static args: {
12
+ name: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
13
+ };
14
+ static flags: {
15
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ runtime: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ concurrency: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ timeout: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ "min-instances": import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ "max-instances": import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ };
22
+ run(): Promise<void>;
23
+ }