@synteq/cli 0.1.6 → 1.1.1

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 (705) hide show
  1. package/bin/run.js +61 -2
  2. package/dist/api/client.d.ts +363 -5
  3. package/dist/api/client.js +559 -44
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/factory.d.ts +3 -0
  6. package/dist/api/factory.js +6 -3
  7. package/dist/api/factory.js.map +1 -1
  8. package/dist/api/types.d.ts +896 -4
  9. package/dist/apps-support/deploy.d.ts +197 -0
  10. package/dist/apps-support/deploy.js +639 -0
  11. package/dist/apps-support/deploy.js.map +1 -0
  12. package/dist/apps-support/dotenv.d.ts +67 -0
  13. package/dist/apps-support/dotenv.js +136 -0
  14. package/dist/apps-support/dotenv.js.map +1 -0
  15. package/dist/apps-support/env-rollout.d.ts +18 -0
  16. package/dist/apps-support/env-rollout.js +52 -0
  17. package/dist/apps-support/env-rollout.js.map +1 -0
  18. package/dist/apps-support/git.d.ts +14 -0
  19. package/dist/apps-support/git.js +25 -0
  20. package/dist/apps-support/git.js.map +1 -0
  21. package/dist/apps-support/link.d.ts +25 -0
  22. package/dist/apps-support/link.js +39 -0
  23. package/dist/apps-support/link.js.map +1 -0
  24. package/dist/apps-support/log-stream.d.ts +25 -0
  25. package/dist/apps-support/log-stream.js +85 -0
  26. package/dist/apps-support/log-stream.js.map +1 -0
  27. package/dist/apps-support/paid-app.d.ts +64 -0
  28. package/dist/apps-support/paid-app.js +195 -0
  29. package/dist/apps-support/paid-app.js.map +1 -0
  30. package/dist/apps-support/plans.d.ts +44 -0
  31. package/dist/apps-support/plans.js +43 -0
  32. package/dist/apps-support/plans.js.map +1 -0
  33. package/dist/apps-support/resolve.d.ts +10 -0
  34. package/dist/apps-support/resolve.js +53 -0
  35. package/dist/apps-support/resolve.js.map +1 -0
  36. package/dist/apps-support/time.d.ts +20 -0
  37. package/dist/apps-support/time.js +82 -0
  38. package/dist/apps-support/time.js.map +1 -0
  39. package/dist/auth/scope.d.ts +19 -0
  40. package/dist/auth/scope.js +69 -0
  41. package/dist/auth/scope.js.map +1 -0
  42. package/dist/auth/tokens.d.ts +3 -0
  43. package/dist/auth/tokens.js +6 -4
  44. package/dist/auth/tokens.js.map +1 -1
  45. package/dist/base/command.d.ts +36 -1
  46. package/dist/base/command.js +132 -0
  47. package/dist/base/command.js.map +1 -1
  48. package/dist/commands/account/index.d.ts +1 -0
  49. package/dist/commands/account/index.js +1 -0
  50. package/dist/commands/account/index.js.map +1 -1
  51. package/dist/commands/account/show.d.ts +1 -0
  52. package/dist/commands/account/show.js +1 -0
  53. package/dist/commands/account/show.js.map +1 -1
  54. package/dist/commands/agents.d.ts +10 -0
  55. package/dist/commands/agents.js +53 -0
  56. package/dist/commands/agents.js.map +1 -0
  57. package/dist/commands/api.d.ts +1 -1
  58. package/dist/commands/api.js +6 -4
  59. package/dist/commands/api.js.map +1 -1
  60. package/dist/commands/app/deployment/list.d.ts +14 -0
  61. package/dist/commands/app/deployment/list.js +45 -0
  62. package/dist/commands/app/deployment/list.js.map +1 -0
  63. package/dist/commands/app/deployment/rollback.d.ts +18 -0
  64. package/dist/commands/app/deployment/rollback.js +57 -0
  65. package/dist/commands/app/deployment/rollback.js.map +1 -0
  66. package/dist/commands/app/deployment/show.d.ts +26 -0
  67. package/dist/commands/app/deployment/show.js +98 -0
  68. package/dist/commands/app/deployment/show.js.map +1 -0
  69. package/dist/commands/app/domain/add.d.ts +17 -0
  70. package/dist/commands/app/domain/add.js +59 -0
  71. package/dist/commands/app/domain/add.js.map +1 -0
  72. package/dist/commands/app/domain/list.d.ts +14 -0
  73. package/dist/commands/app/domain/list.js +42 -0
  74. package/dist/commands/app/domain/list.js.map +1 -0
  75. package/dist/commands/app/domain/remove.d.ts +16 -0
  76. package/dist/commands/app/domain/remove.js +51 -0
  77. package/dist/commands/app/domain/remove.js.map +1 -0
  78. package/dist/commands/app/domain/verify.d.ts +15 -0
  79. package/dist/commands/app/domain/verify.js +39 -0
  80. package/dist/commands/app/domain/verify.js.map +1 -0
  81. package/dist/commands/app/env/add.d.ts +22 -0
  82. package/dist/commands/app/env/add.js +103 -0
  83. package/dist/commands/app/env/add.js.map +1 -0
  84. package/dist/commands/app/env/list.d.ts +17 -0
  85. package/dist/commands/app/env/list.js +40 -0
  86. package/dist/commands/app/env/list.js.map +1 -0
  87. package/dist/commands/app/env/reveal.d.ts +17 -0
  88. package/dist/commands/app/env/reveal.js +40 -0
  89. package/dist/commands/app/env/reveal.js.map +1 -0
  90. package/dist/commands/app/env/rm.d.ts +16 -0
  91. package/dist/commands/app/env/rm.js +48 -0
  92. package/dist/commands/app/env/rm.js.map +1 -0
  93. package/dist/commands/app/health.d.ts +14 -0
  94. package/dist/commands/app/health.js +40 -0
  95. package/dist/commands/app/health.js.map +1 -0
  96. package/dist/commands/app/index.d.ts +6 -0
  97. package/dist/commands/app/index.js +7 -0
  98. package/dist/commands/app/index.js.map +1 -0
  99. package/dist/commands/app/link.d.ts +22 -0
  100. package/dist/commands/app/link.js +31 -0
  101. package/dist/commands/app/link.js.map +1 -0
  102. package/dist/commands/app/logs.d.ts +25 -0
  103. package/dist/commands/app/logs.js +121 -0
  104. package/dist/commands/app/logs.js.map +1 -0
  105. package/dist/commands/app/metrics.d.ts +21 -0
  106. package/dist/commands/app/metrics.js +123 -0
  107. package/dist/commands/app/metrics.js.map +1 -0
  108. package/dist/commands/app/plan/change.d.ts +18 -0
  109. package/dist/commands/app/plan/change.js +79 -0
  110. package/dist/commands/app/plan/change.js.map +1 -0
  111. package/dist/commands/app/plan/show.d.ts +14 -0
  112. package/dist/commands/app/plan/show.js +40 -0
  113. package/dist/commands/app/plan/show.js.map +1 -0
  114. package/dist/commands/app/settings/set.d.ts +25 -0
  115. package/dist/commands/app/settings/set.js +96 -0
  116. package/dist/commands/app/settings/set.js.map +1 -0
  117. package/dist/commands/app/settings/show.d.ts +14 -0
  118. package/dist/commands/app/settings/show.js +48 -0
  119. package/dist/commands/app/settings/show.js.map +1 -0
  120. package/dist/commands/app/unlink.d.ts +8 -0
  121. package/dist/commands/app/unlink.js +25 -0
  122. package/dist/commands/app/unlink.js.map +1 -0
  123. package/dist/commands/apps/create.d.ts +26 -0
  124. package/dist/commands/apps/create.js +91 -0
  125. package/dist/commands/apps/create.js.map +1 -0
  126. package/dist/commands/apps/list.d.ts +16 -0
  127. package/dist/commands/apps/list.js +54 -0
  128. package/dist/commands/apps/list.js.map +1 -0
  129. package/dist/commands/baremetal/activity.d.ts +14 -0
  130. package/dist/commands/baremetal/activity.js +53 -0
  131. package/dist/commands/baremetal/activity.js.map +1 -0
  132. package/dist/commands/baremetal/bandwidth.d.ts +10 -0
  133. package/dist/commands/baremetal/bandwidth.js +86 -0
  134. package/dist/commands/baremetal/bandwidth.js.map +1 -0
  135. package/dist/commands/baremetal/console.d.ts +20 -0
  136. package/dist/commands/baremetal/console.js +72 -0
  137. package/dist/commands/baremetal/console.js.map +1 -0
  138. package/dist/commands/baremetal/details.d.ts +11 -0
  139. package/dist/commands/baremetal/details.js +116 -0
  140. package/dist/commands/baremetal/details.js.map +1 -0
  141. package/dist/commands/baremetal/index.d.ts +5 -0
  142. package/dist/commands/baremetal/index.js +6 -0
  143. package/dist/commands/baremetal/index.js.map +1 -0
  144. package/dist/commands/baremetal/install-password.d.ts +14 -0
  145. package/dist/commands/baremetal/install-password.js +80 -0
  146. package/dist/commands/baremetal/install-password.js.map +1 -0
  147. package/dist/commands/baremetal/list.d.ts +11 -0
  148. package/dist/commands/baremetal/list.js +59 -0
  149. package/dist/commands/baremetal/list.js.map +1 -0
  150. package/dist/commands/baremetal/order.d.ts +34 -0
  151. package/dist/commands/baremetal/order.js +394 -0
  152. package/dist/commands/baremetal/order.js.map +1 -0
  153. package/dist/commands/baremetal/power.d.ts +18 -0
  154. package/dist/commands/baremetal/power.js +168 -0
  155. package/dist/commands/baremetal/power.js.map +1 -0
  156. package/dist/commands/baremetal/reinstall.d.ts +21 -0
  157. package/dist/commands/baremetal/reinstall.js +168 -0
  158. package/dist/commands/baremetal/reinstall.js.map +1 -0
  159. package/dist/commands/catalog.d.ts +1 -0
  160. package/dist/commands/catalog.js +5 -0
  161. package/dist/commands/catalog.js.map +1 -1
  162. package/dist/commands/config/index.d.ts +1 -0
  163. package/dist/commands/config/index.js +1 -0
  164. package/dist/commands/config/index.js.map +1 -1
  165. package/dist/commands/config/profile/add.d.ts +11 -0
  166. package/dist/commands/config/profile/add.js +51 -0
  167. package/dist/commands/config/profile/add.js.map +1 -0
  168. package/dist/commands/config/profile/list.d.ts +7 -0
  169. package/dist/commands/config/profile/list.js +29 -0
  170. package/dist/commands/config/profile/list.js.map +1 -0
  171. package/dist/commands/config/profile/remove.d.ts +11 -0
  172. package/dist/commands/config/profile/remove.js +35 -0
  173. package/dist/commands/config/profile/remove.js.map +1 -0
  174. package/dist/commands/config/profile/use.d.ts +10 -0
  175. package/dist/commands/config/profile/use.js +44 -0
  176. package/dist/commands/config/profile/use.js.map +1 -0
  177. package/dist/commands/config/set-api-url.d.ts +1 -0
  178. package/dist/commands/config/set-api-url.js +1 -0
  179. package/dist/commands/config/set-api-url.js.map +1 -1
  180. package/dist/commands/config/show.d.ts +1 -0
  181. package/dist/commands/config/show.js +5 -1
  182. package/dist/commands/config/show.js.map +1 -1
  183. package/dist/commands/credits/add.d.ts +1 -0
  184. package/dist/commands/credits/add.js +3 -2
  185. package/dist/commands/credits/add.js.map +1 -1
  186. package/dist/commands/credits/index.d.ts +1 -0
  187. package/dist/commands/credits/index.js +6 -1
  188. package/dist/commands/credits/index.js.map +1 -1
  189. package/dist/commands/credits/list.d.ts +1 -0
  190. package/dist/commands/credits/list.js +1 -0
  191. package/dist/commands/credits/list.js.map +1 -1
  192. package/dist/commands/deploy.d.ts +51 -0
  193. package/dist/commands/deploy.js +515 -0
  194. package/dist/commands/deploy.js.map +1 -0
  195. package/dist/commands/function/create.d.ts +29 -0
  196. package/dist/commands/function/create.js +113 -0
  197. package/dist/commands/function/create.js.map +1 -0
  198. package/dist/commands/function/credits/add.d.ts +29 -0
  199. package/dist/commands/function/credits/add.js +209 -0
  200. package/dist/commands/function/credits/add.js.map +1 -0
  201. package/dist/commands/function/credits/auto-reload.d.ts +27 -0
  202. package/dist/commands/function/credits/auto-reload.js +107 -0
  203. package/dist/commands/function/credits/auto-reload.js.map +1 -0
  204. package/dist/commands/function/credits/index.d.ts +22 -0
  205. package/dist/commands/function/credits/index.js +80 -0
  206. package/dist/commands/function/credits/index.js.map +1 -0
  207. package/dist/commands/function/cron/add.d.ts +19 -0
  208. package/dist/commands/function/cron/add.js +74 -0
  209. package/dist/commands/function/cron/add.js.map +1 -0
  210. package/dist/commands/function/cron/list.d.ts +12 -0
  211. package/dist/commands/function/cron/list.js +55 -0
  212. package/dist/commands/function/cron/list.js.map +1 -0
  213. package/dist/commands/function/cron/rm.d.ts +17 -0
  214. package/dist/commands/function/cron/rm.js +73 -0
  215. package/dist/commands/function/cron/rm.js.map +1 -0
  216. package/dist/commands/function/cron/run.d.ts +16 -0
  217. package/dist/commands/function/cron/run.js +59 -0
  218. package/dist/commands/function/cron/run.js.map +1 -0
  219. package/dist/commands/function/cron/update.d.ts +21 -0
  220. package/dist/commands/function/cron/update.js +87 -0
  221. package/dist/commands/function/cron/update.js.map +1 -0
  222. package/dist/commands/function/delete.d.ts +23 -0
  223. package/dist/commands/function/delete.js +90 -0
  224. package/dist/commands/function/delete.js.map +1 -0
  225. package/dist/commands/function/deploy.d.ts +64 -0
  226. package/dist/commands/function/deploy.js +608 -0
  227. package/dist/commands/function/deploy.js.map +1 -0
  228. package/dist/commands/function/env/list.d.ts +12 -0
  229. package/dist/commands/function/env/list.js +46 -0
  230. package/dist/commands/function/env/list.js.map +1 -0
  231. package/dist/commands/function/env/reveal.d.ts +21 -0
  232. package/dist/commands/function/env/reveal.js +54 -0
  233. package/dist/commands/function/env/reveal.js.map +1 -0
  234. package/dist/commands/function/env/rm.d.ts +17 -0
  235. package/dist/commands/function/env/rm.js +62 -0
  236. package/dist/commands/function/env/rm.js.map +1 -0
  237. package/dist/commands/function/env/set.d.ts +28 -0
  238. package/dist/commands/function/env/set.js +124 -0
  239. package/dist/commands/function/env/set.js.map +1 -0
  240. package/dist/commands/function/index.d.ts +14 -0
  241. package/dist/commands/function/index.js +11 -0
  242. package/dist/commands/function/index.js.map +1 -0
  243. package/dist/commands/function/init.d.ts +47 -0
  244. package/dist/commands/function/init.js +269 -0
  245. package/dist/commands/function/init.js.map +1 -0
  246. package/dist/commands/function/invoke.d.ts +29 -0
  247. package/dist/commands/function/invoke.js +138 -0
  248. package/dist/commands/function/invoke.js.map +1 -0
  249. package/dist/commands/function/link.d.ts +23 -0
  250. package/dist/commands/function/link.js +80 -0
  251. package/dist/commands/function/link.js.map +1 -0
  252. package/dist/commands/function/list.d.ts +16 -0
  253. package/dist/commands/function/list.js +55 -0
  254. package/dist/commands/function/list.js.map +1 -0
  255. package/dist/commands/function/logs.d.ts +29 -0
  256. package/dist/commands/function/logs.js +171 -0
  257. package/dist/commands/function/logs.js.map +1 -0
  258. package/dist/commands/function/pause.d.ts +19 -0
  259. package/dist/commands/function/pause.js +50 -0
  260. package/dist/commands/function/pause.js.map +1 -0
  261. package/dist/commands/function/releases.d.ts +15 -0
  262. package/dist/commands/function/releases.js +62 -0
  263. package/dist/commands/function/releases.js.map +1 -0
  264. package/dist/commands/function/resume.d.ts +16 -0
  265. package/dist/commands/function/resume.js +47 -0
  266. package/dist/commands/function/resume.js.map +1 -0
  267. package/dist/commands/function/rollback.d.ts +18 -0
  268. package/dist/commands/function/rollback.js +69 -0
  269. package/dist/commands/function/rollback.js.map +1 -0
  270. package/dist/commands/function/settings/set.d.ts +23 -0
  271. package/dist/commands/function/settings/set.js +119 -0
  272. package/dist/commands/function/settings/set.js.map +1 -0
  273. package/dist/commands/function/show.d.ts +15 -0
  274. package/dist/commands/function/show.js +80 -0
  275. package/dist/commands/function/show.js.map +1 -0
  276. package/dist/commands/function/unlink.d.ts +9 -0
  277. package/dist/commands/function/unlink.js +34 -0
  278. package/dist/commands/function/unlink.js.map +1 -0
  279. package/dist/commands/gpu/activity.d.ts +1 -0
  280. package/dist/commands/gpu/activity.js +1 -0
  281. package/dist/commands/gpu/activity.js.map +1 -1
  282. package/dist/commands/gpu/bandwidth.d.ts +1 -0
  283. package/dist/commands/gpu/bandwidth.js +1 -0
  284. package/dist/commands/gpu/bandwidth.js.map +1 -1
  285. package/dist/commands/gpu/boot-order.d.ts +1 -0
  286. package/dist/commands/gpu/boot-order.js +1 -0
  287. package/dist/commands/gpu/boot-order.js.map +1 -1
  288. package/dist/commands/gpu/console.d.ts +1 -0
  289. package/dist/commands/gpu/console.js +1 -0
  290. package/dist/commands/gpu/console.js.map +1 -1
  291. package/dist/commands/gpu/details.d.ts +1 -0
  292. package/dist/commands/gpu/details.js +1 -0
  293. package/dist/commands/gpu/details.js.map +1 -1
  294. package/dist/commands/gpu/index.d.ts +1 -0
  295. package/dist/commands/gpu/index.js +1 -0
  296. package/dist/commands/gpu/index.js.map +1 -1
  297. package/dist/commands/gpu/ip/add.d.ts +1 -0
  298. package/dist/commands/gpu/ip/add.js +1 -0
  299. package/dist/commands/gpu/ip/add.js.map +1 -1
  300. package/dist/commands/gpu/ip/list.d.ts +1 -0
  301. package/dist/commands/gpu/ip/list.js +1 -0
  302. package/dist/commands/gpu/ip/list.js.map +1 -1
  303. package/dist/commands/gpu/list.d.ts +1 -0
  304. package/dist/commands/gpu/list.js +1 -0
  305. package/dist/commands/gpu/list.js.map +1 -1
  306. package/dist/commands/gpu/order.d.ts +1 -0
  307. package/dist/commands/gpu/order.js +1 -0
  308. package/dist/commands/gpu/order.js.map +1 -1
  309. package/dist/commands/gpu/power.d.ts +1 -0
  310. package/dist/commands/gpu/power.js +1 -0
  311. package/dist/commands/gpu/power.js.map +1 -1
  312. package/dist/commands/gpu/reinstall.d.ts +1 -0
  313. package/dist/commands/gpu/reinstall.js +1 -0
  314. package/dist/commands/gpu/reinstall.js.map +1 -1
  315. package/dist/commands/gpu/resize.d.ts +1 -0
  316. package/dist/commands/gpu/resize.js +1 -0
  317. package/dist/commands/gpu/resize.js.map +1 -1
  318. package/dist/commands/gpu/stats.d.ts +1 -0
  319. package/dist/commands/gpu/stats.js +1 -0
  320. package/dist/commands/gpu/stats.js.map +1 -1
  321. package/dist/commands/help.d.ts +2 -0
  322. package/dist/commands/help.js +5 -0
  323. package/dist/commands/help.js.map +1 -1
  324. package/dist/commands/instant-metal/activity.d.ts +1 -0
  325. package/dist/commands/instant-metal/activity.js +1 -0
  326. package/dist/commands/instant-metal/activity.js.map +1 -1
  327. package/dist/commands/instant-metal/bandwidth.d.ts +1 -0
  328. package/dist/commands/instant-metal/bandwidth.js +1 -0
  329. package/dist/commands/instant-metal/bandwidth.js.map +1 -1
  330. package/dist/commands/instant-metal/boot-order.d.ts +1 -0
  331. package/dist/commands/instant-metal/boot-order.js +1 -0
  332. package/dist/commands/instant-metal/boot-order.js.map +1 -1
  333. package/dist/commands/instant-metal/console.d.ts +1 -0
  334. package/dist/commands/instant-metal/console.js +1 -0
  335. package/dist/commands/instant-metal/console.js.map +1 -1
  336. package/dist/commands/instant-metal/details.d.ts +1 -0
  337. package/dist/commands/instant-metal/details.js +1 -0
  338. package/dist/commands/instant-metal/details.js.map +1 -1
  339. package/dist/commands/instant-metal/index.d.ts +1 -0
  340. package/dist/commands/instant-metal/index.js +1 -0
  341. package/dist/commands/instant-metal/index.js.map +1 -1
  342. package/dist/commands/instant-metal/ip/add.d.ts +1 -0
  343. package/dist/commands/instant-metal/ip/add.js +1 -0
  344. package/dist/commands/instant-metal/ip/add.js.map +1 -1
  345. package/dist/commands/instant-metal/ip/list.d.ts +1 -0
  346. package/dist/commands/instant-metal/ip/list.js +1 -0
  347. package/dist/commands/instant-metal/ip/list.js.map +1 -1
  348. package/dist/commands/instant-metal/list.d.ts +1 -0
  349. package/dist/commands/instant-metal/list.js +1 -0
  350. package/dist/commands/instant-metal/list.js.map +1 -1
  351. package/dist/commands/instant-metal/order.d.ts +1 -0
  352. package/dist/commands/instant-metal/order.js +1 -0
  353. package/dist/commands/instant-metal/order.js.map +1 -1
  354. package/dist/commands/instant-metal/power.d.ts +1 -0
  355. package/dist/commands/instant-metal/power.js +1 -0
  356. package/dist/commands/instant-metal/power.js.map +1 -1
  357. package/dist/commands/instant-metal/reinstall.d.ts +1 -0
  358. package/dist/commands/instant-metal/reinstall.js +1 -0
  359. package/dist/commands/instant-metal/reinstall.js.map +1 -1
  360. package/dist/commands/instant-metal/resize.d.ts +1 -0
  361. package/dist/commands/instant-metal/resize.js +1 -0
  362. package/dist/commands/instant-metal/resize.js.map +1 -1
  363. package/dist/commands/instant-metal/stats.d.ts +1 -0
  364. package/dist/commands/instant-metal/stats.js +1 -0
  365. package/dist/commands/instant-metal/stats.js.map +1 -1
  366. package/dist/commands/link.d.ts +77 -0
  367. package/dist/commands/link.js +530 -0
  368. package/dist/commands/link.js.map +1 -0
  369. package/dist/commands/login.d.ts +1 -0
  370. package/dist/commands/login.js +10 -0
  371. package/dist/commands/login.js.map +1 -1
  372. package/dist/commands/logout.d.ts +1 -0
  373. package/dist/commands/logout.js +1 -0
  374. package/dist/commands/logout.js.map +1 -1
  375. package/dist/commands/order/gpu.d.ts +1 -0
  376. package/dist/commands/order/gpu.js +1 -0
  377. package/dist/commands/order/gpu.js.map +1 -1
  378. package/dist/commands/order/instant-metal.d.ts +1 -0
  379. package/dist/commands/order/instant-metal.js +1 -0
  380. package/dist/commands/order/instant-metal.js.map +1 -1
  381. package/dist/commands/order/storage.d.ts +1 -0
  382. package/dist/commands/order/storage.js +1 -0
  383. package/dist/commands/order/storage.js.map +1 -1
  384. package/dist/commands/order/vps.d.ts +1 -0
  385. package/dist/commands/order/vps.js +1 -0
  386. package/dist/commands/order/vps.js.map +1 -1
  387. package/dist/commands/order.d.ts +1 -0
  388. package/dist/commands/order.js +4 -1
  389. package/dist/commands/order.js.map +1 -1
  390. package/dist/commands/os-images.d.ts +1 -0
  391. package/dist/commands/os-images.js +3 -0
  392. package/dist/commands/os-images.js.map +1 -1
  393. package/dist/commands/payments/index.d.ts +1 -0
  394. package/dist/commands/payments/index.js +1 -0
  395. package/dist/commands/payments/index.js.map +1 -1
  396. package/dist/commands/payments/methods/add.d.ts +1 -0
  397. package/dist/commands/payments/methods/add.js +1 -0
  398. package/dist/commands/payments/methods/add.js.map +1 -1
  399. package/dist/commands/payments/methods/delete.d.ts +1 -0
  400. package/dist/commands/payments/methods/delete.js +3 -2
  401. package/dist/commands/payments/methods/delete.js.map +1 -1
  402. package/dist/commands/payments/methods/index.d.ts +1 -0
  403. package/dist/commands/payments/methods/index.js +1 -0
  404. package/dist/commands/payments/methods/index.js.map +1 -1
  405. package/dist/commands/payments/methods/list.d.ts +1 -0
  406. package/dist/commands/payments/methods/list.js +1 -0
  407. package/dist/commands/payments/methods/list.js.map +1 -1
  408. package/dist/commands/payments/methods/set-default.d.ts +1 -0
  409. package/dist/commands/payments/methods/set-default.js +1 -0
  410. package/dist/commands/payments/methods/set-default.js.map +1 -1
  411. package/dist/commands/projects/index.d.ts +1 -0
  412. package/dist/commands/projects/index.js +1 -0
  413. package/dist/commands/projects/index.js.map +1 -1
  414. package/dist/commands/projects/list.d.ts +1 -0
  415. package/dist/commands/projects/list.js +1 -0
  416. package/dist/commands/projects/list.js.map +1 -1
  417. package/dist/commands/resources.d.ts +1 -0
  418. package/dist/commands/resources.js +61 -7
  419. package/dist/commands/resources.js.map +1 -1
  420. package/dist/commands/settings/index.d.ts +1 -0
  421. package/dist/commands/settings/index.js +1 -0
  422. package/dist/commands/settings/index.js.map +1 -1
  423. package/dist/commands/settings/render-mode.d.ts +1 -0
  424. package/dist/commands/settings/render-mode.js +1 -0
  425. package/dist/commands/settings/render-mode.js.map +1 -1
  426. package/dist/commands/ssh-key/add.d.ts +1 -0
  427. package/dist/commands/ssh-key/add.js +1 -0
  428. package/dist/commands/ssh-key/add.js.map +1 -1
  429. package/dist/commands/ssh-key/delete.d.ts +1 -0
  430. package/dist/commands/ssh-key/delete.js +1 -0
  431. package/dist/commands/ssh-key/delete.js.map +1 -1
  432. package/dist/commands/ssh-key/list.d.ts +1 -0
  433. package/dist/commands/ssh-key/list.js +1 -0
  434. package/dist/commands/ssh-key/list.js.map +1 -1
  435. package/dist/commands/status.d.ts +12 -0
  436. package/dist/commands/status.js +71 -0
  437. package/dist/commands/status.js.map +1 -0
  438. package/dist/commands/storage/attach.d.ts +1 -0
  439. package/dist/commands/storage/attach.js +1 -0
  440. package/dist/commands/storage/attach.js.map +1 -1
  441. package/dist/commands/storage/detach.d.ts +1 -0
  442. package/dist/commands/storage/detach.js +2 -1
  443. package/dist/commands/storage/detach.js.map +1 -1
  444. package/dist/commands/storage/list.d.ts +1 -0
  445. package/dist/commands/storage/list.js +7 -2
  446. package/dist/commands/storage/list.js.map +1 -1
  447. package/dist/commands/storage/order.d.ts +3 -0
  448. package/dist/commands/storage/order.js +101 -18
  449. package/dist/commands/storage/order.js.map +1 -1
  450. package/dist/commands/storage/resize.d.ts +1 -0
  451. package/dist/commands/storage/resize.js +20 -6
  452. package/dist/commands/storage/resize.js.map +1 -1
  453. package/dist/commands/team/details.d.ts +1 -0
  454. package/dist/commands/team/details.js +1 -0
  455. package/dist/commands/team/details.js.map +1 -1
  456. package/dist/commands/team/invite.d.ts +1 -0
  457. package/dist/commands/team/invite.js +1 -0
  458. package/dist/commands/team/invite.js.map +1 -1
  459. package/dist/commands/team.d.ts +1 -0
  460. package/dist/commands/team.js +1 -0
  461. package/dist/commands/team.js.map +1 -1
  462. package/dist/commands/tickets/close.d.ts +1 -0
  463. package/dist/commands/tickets/close.js +1 -0
  464. package/dist/commands/tickets/close.js.map +1 -1
  465. package/dist/commands/tickets/create.d.ts +3 -0
  466. package/dist/commands/tickets/create.js +41 -1
  467. package/dist/commands/tickets/create.js.map +1 -1
  468. package/dist/commands/tickets/departments.d.ts +1 -0
  469. package/dist/commands/tickets/departments.js +1 -0
  470. package/dist/commands/tickets/departments.js.map +1 -1
  471. package/dist/commands/tickets/download.d.ts +18 -0
  472. package/dist/commands/tickets/download.js +138 -0
  473. package/dist/commands/tickets/download.js.map +1 -0
  474. package/dist/commands/tickets/list.d.ts +1 -0
  475. package/dist/commands/tickets/list.js +14 -7
  476. package/dist/commands/tickets/list.js.map +1 -1
  477. package/dist/commands/tickets/open.d.ts +1 -0
  478. package/dist/commands/tickets/open.js +1 -0
  479. package/dist/commands/tickets/open.js.map +1 -1
  480. package/dist/commands/tickets/reopen.d.ts +11 -0
  481. package/dist/commands/tickets/reopen.js +34 -0
  482. package/dist/commands/tickets/reopen.js.map +1 -0
  483. package/dist/commands/tickets/reply.d.ts +3 -0
  484. package/dist/commands/tickets/reply.js +34 -4
  485. package/dist/commands/tickets/reply.js.map +1 -1
  486. package/dist/commands/transit.d.ts +1 -0
  487. package/dist/commands/transit.js +1 -0
  488. package/dist/commands/transit.js.map +1 -1
  489. package/dist/commands/tui/index.d.ts +1 -0
  490. package/dist/commands/tui/index.js +21 -0
  491. package/dist/commands/tui/index.js.map +1 -1
  492. package/dist/commands/vds/activity.d.ts +1 -0
  493. package/dist/commands/vds/activity.js +1 -0
  494. package/dist/commands/vds/activity.js.map +1 -1
  495. package/dist/commands/vds/bandwidth.d.ts +1 -0
  496. package/dist/commands/vds/bandwidth.js +1 -0
  497. package/dist/commands/vds/bandwidth.js.map +1 -1
  498. package/dist/commands/vds/boot-order.d.ts +1 -0
  499. package/dist/commands/vds/boot-order.js +1 -0
  500. package/dist/commands/vds/boot-order.js.map +1 -1
  501. package/dist/commands/vds/console.d.ts +1 -0
  502. package/dist/commands/vds/console.js +1 -0
  503. package/dist/commands/vds/console.js.map +1 -1
  504. package/dist/commands/vds/details.d.ts +1 -0
  505. package/dist/commands/vds/details.js +1 -0
  506. package/dist/commands/vds/details.js.map +1 -1
  507. package/dist/commands/vds/index.d.ts +1 -0
  508. package/dist/commands/vds/index.js +1 -0
  509. package/dist/commands/vds/index.js.map +1 -1
  510. package/dist/commands/vds/ip/add.d.ts +1 -0
  511. package/dist/commands/vds/ip/add.js +1 -0
  512. package/dist/commands/vds/ip/add.js.map +1 -1
  513. package/dist/commands/vds/ip/list.d.ts +1 -0
  514. package/dist/commands/vds/ip/list.js +1 -0
  515. package/dist/commands/vds/ip/list.js.map +1 -1
  516. package/dist/commands/vds/list.d.ts +1 -0
  517. package/dist/commands/vds/list.js +1 -0
  518. package/dist/commands/vds/list.js.map +1 -1
  519. package/dist/commands/vds/order.d.ts +1 -0
  520. package/dist/commands/vds/order.js +73 -7
  521. package/dist/commands/vds/order.js.map +1 -1
  522. package/dist/commands/vds/power.d.ts +1 -0
  523. package/dist/commands/vds/power.js +1 -0
  524. package/dist/commands/vds/power.js.map +1 -1
  525. package/dist/commands/vds/reinstall.d.ts +1 -0
  526. package/dist/commands/vds/reinstall.js +1 -0
  527. package/dist/commands/vds/reinstall.js.map +1 -1
  528. package/dist/commands/vds/resize.d.ts +1 -0
  529. package/dist/commands/vds/resize.js +1 -0
  530. package/dist/commands/vds/resize.js.map +1 -1
  531. package/dist/commands/vds/stats.d.ts +1 -0
  532. package/dist/commands/vds/stats.js +1 -0
  533. package/dist/commands/vds/stats.js.map +1 -1
  534. package/dist/commands/vps/activity.d.ts +1 -0
  535. package/dist/commands/vps/activity.js +1 -0
  536. package/dist/commands/vps/activity.js.map +1 -1
  537. package/dist/commands/vps/bandwidth.d.ts +1 -0
  538. package/dist/commands/vps/bandwidth.js +1 -0
  539. package/dist/commands/vps/bandwidth.js.map +1 -1
  540. package/dist/commands/vps/boot-order.d.ts +1 -0
  541. package/dist/commands/vps/boot-order.js +1 -0
  542. package/dist/commands/vps/boot-order.js.map +1 -1
  543. package/dist/commands/vps/console.d.ts +1 -0
  544. package/dist/commands/vps/console.js +15 -6
  545. package/dist/commands/vps/console.js.map +1 -1
  546. package/dist/commands/vps/details.d.ts +1 -0
  547. package/dist/commands/vps/details.js +8 -1
  548. package/dist/commands/vps/details.js.map +1 -1
  549. package/dist/commands/vps/ip/add.d.ts +1 -0
  550. package/dist/commands/vps/ip/add.js +77 -9
  551. package/dist/commands/vps/ip/add.js.map +1 -1
  552. package/dist/commands/vps/ip/list.d.ts +1 -0
  553. package/dist/commands/vps/ip/list.js +1 -0
  554. package/dist/commands/vps/ip/list.js.map +1 -1
  555. package/dist/commands/vps/list.d.ts +1 -0
  556. package/dist/commands/vps/list.js +14 -4
  557. package/dist/commands/vps/list.js.map +1 -1
  558. package/dist/commands/vps/order.d.ts +20 -0
  559. package/dist/commands/vps/order.js +180 -23
  560. package/dist/commands/vps/order.js.map +1 -1
  561. package/dist/commands/vps/power.d.ts +1 -0
  562. package/dist/commands/vps/power.js +3 -2
  563. package/dist/commands/vps/power.js.map +1 -1
  564. package/dist/commands/vps/reinstall.d.ts +1 -0
  565. package/dist/commands/vps/reinstall.js +3 -2
  566. package/dist/commands/vps/reinstall.js.map +1 -1
  567. package/dist/commands/vps/resize.d.ts +1 -0
  568. package/dist/commands/vps/resize.js +37 -13
  569. package/dist/commands/vps/resize.js.map +1 -1
  570. package/dist/commands/vps/stats.d.ts +1 -0
  571. package/dist/commands/vps/stats.js +1 -0
  572. package/dist/commands/vps/stats.js.map +1 -1
  573. package/dist/commands/whoami.d.ts +6 -0
  574. package/dist/commands/whoami.js +8 -2
  575. package/dist/commands/whoami.js.map +1 -1
  576. package/dist/config/paths.d.ts +1 -1
  577. package/dist/config/paths.js +6 -1
  578. package/dist/config/paths.js.map +1 -1
  579. package/dist/config/store.d.ts +58 -0
  580. package/dist/config/store.js +84 -2
  581. package/dist/config/store.js.map +1 -1
  582. package/dist/functions-support/credits.d.ts +64 -0
  583. package/dist/functions-support/credits.js +181 -0
  584. package/dist/functions-support/credits.js.map +1 -0
  585. package/dist/functions-support/cron.d.ts +17 -0
  586. package/dist/functions-support/cron.js +99 -0
  587. package/dist/functions-support/cron.js.map +1 -0
  588. package/dist/functions-support/env.d.ts +23 -0
  589. package/dist/functions-support/env.js +44 -0
  590. package/dist/functions-support/env.js.map +1 -0
  591. package/dist/functions-support/link.d.ts +25 -0
  592. package/dist/functions-support/link.js +51 -0
  593. package/dist/functions-support/link.js.map +1 -0
  594. package/dist/functions-support/poll.d.ts +40 -0
  595. package/dist/functions-support/poll.js +109 -0
  596. package/dist/functions-support/poll.js.map +1 -0
  597. package/dist/functions-support/resolve.d.ts +3 -0
  598. package/dist/functions-support/resolve.js +31 -0
  599. package/dist/functions-support/resolve.js.map +1 -0
  600. package/dist/functions-support/runtime.d.ts +30 -0
  601. package/dist/functions-support/runtime.js +52 -0
  602. package/dist/functions-support/runtime.js.map +1 -0
  603. package/dist/functions-support/source.d.ts +92 -0
  604. package/dist/functions-support/source.js +343 -0
  605. package/dist/functions-support/source.js.map +1 -0
  606. package/dist/help/help-filter.d.ts +10 -0
  607. package/dist/help/help-filter.js +9 -0
  608. package/dist/help/help-filter.js.map +1 -0
  609. package/dist/help/scope-aware-help.d.ts +30 -0
  610. package/dist/help/scope-aware-help.js +80 -0
  611. package/dist/help/scope-aware-help.js.map +1 -0
  612. package/dist/tui/App.js +11 -26
  613. package/dist/tui/App.js.map +1 -1
  614. package/dist/tui/components/Menu.d.ts +3 -1
  615. package/dist/tui/components/Menu.js +7 -3
  616. package/dist/tui/components/Menu.js.map +1 -1
  617. package/dist/tui/components/NumberInput.js +1 -1
  618. package/dist/tui/components/Sparkline.js +1 -1
  619. package/dist/tui/router.d.ts +1 -1
  620. package/dist/tui/router.js.map +1 -1
  621. package/dist/tui/screens/Billing.js +66 -14
  622. package/dist/tui/screens/Billing.js.map +1 -1
  623. package/dist/tui/screens/Dashboard.js +8 -7
  624. package/dist/tui/screens/Dashboard.js.map +1 -1
  625. package/dist/tui/screens/Deploy.d.ts +2 -0
  626. package/dist/tui/screens/Deploy.js +912 -0
  627. package/dist/tui/screens/Deploy.js.map +1 -0
  628. package/dist/tui/screens/Order.js +385 -52
  629. package/dist/tui/screens/Order.js.map +1 -1
  630. package/dist/tui/screens/Resources.js +277 -35
  631. package/dist/tui/screens/Resources.js.map +1 -1
  632. package/dist/tui/screens/Tickets.js +47 -26
  633. package/dist/tui/screens/Tickets.js.map +1 -1
  634. package/dist/tui/screens/deployPreset.d.ts +20 -0
  635. package/dist/tui/screens/deployPreset.js +11 -0
  636. package/dist/tui/screens/deployPreset.js.map +1 -0
  637. package/dist/tui/screens/resources/AppDetail.d.ts +7 -0
  638. package/dist/tui/screens/resources/AppDetail.js +810 -0
  639. package/dist/tui/screens/resources/AppDetail.js.map +1 -0
  640. package/dist/tui/screens/resources/FunctionDetail.d.ts +7 -0
  641. package/dist/tui/screens/resources/FunctionDetail.js +751 -0
  642. package/dist/tui/screens/resources/FunctionDetail.js.map +1 -0
  643. package/dist/ui/attach.d.ts +15 -0
  644. package/dist/ui/attach.js +63 -0
  645. package/dist/ui/attach.js.map +1 -0
  646. package/dist/ui/baremetal-resolve.d.ts +10 -0
  647. package/dist/ui/baremetal-resolve.js +50 -0
  648. package/dist/ui/baremetal-resolve.js.map +1 -0
  649. package/dist/ui/confirm.js +1 -1
  650. package/dist/ui/confirm.js.map +1 -1
  651. package/dist/ui/cycle.d.ts +66 -0
  652. package/dist/ui/cycle.js +96 -0
  653. package/dist/ui/cycle.js.map +1 -0
  654. package/dist/ui/deploy-ui.d.ts +75 -0
  655. package/dist/ui/deploy-ui.js +243 -0
  656. package/dist/ui/deploy-ui.js.map +1 -0
  657. package/dist/ui/order-result.d.ts +4 -0
  658. package/dist/ui/order-result.js +32 -0
  659. package/dist/ui/order-result.js.map +1 -0
  660. package/dist/ui/payment-gate.d.ts +26 -0
  661. package/dist/ui/payment-gate.js +70 -0
  662. package/dist/ui/payment-gate.js.map +1 -0
  663. package/dist/ui/payment.js +10 -3
  664. package/dist/ui/payment.js.map +1 -1
  665. package/dist/ui/portal.d.ts +1 -1
  666. package/dist/ui/portal.js +7 -2
  667. package/dist/ui/portal.js.map +1 -1
  668. package/dist/ui/project-resolve.d.ts +25 -0
  669. package/dist/ui/project-resolve.js +31 -0
  670. package/dist/ui/project-resolve.js.map +1 -0
  671. package/dist/ui/render-mode.d.ts +5 -0
  672. package/dist/ui/render-mode.js +1 -1
  673. package/dist/ui/render-mode.js.map +1 -1
  674. package/dist/ui/resource-detail.js +0 -3
  675. package/dist/ui/resource-detail.js.map +1 -1
  676. package/dist/ui/resource-resolve.d.ts +9 -2
  677. package/dist/ui/resource-resolve.js +11 -4
  678. package/dist/ui/resource-resolve.js.map +1 -1
  679. package/dist/ui/spinner.d.ts +10 -1
  680. package/dist/ui/spinner.js +12 -3
  681. package/dist/ui/spinner.js.map +1 -1
  682. package/dist/ui/table.d.ts +7 -0
  683. package/dist/ui/table.js +11 -0
  684. package/dist/ui/table.js.map +1 -1
  685. package/dist/ui/tax.d.ts +10 -0
  686. package/dist/ui/tax.js +31 -0
  687. package/dist/ui/tax.js.map +1 -0
  688. package/dist/ui/ticket-resolve.d.ts +9 -1
  689. package/dist/ui/ticket-resolve.js +13 -2
  690. package/dist/ui/ticket-resolve.js.map +1 -1
  691. package/dist/ui/volume-resolve.js +4 -1
  692. package/dist/ui/volume-resolve.js.map +1 -1
  693. package/dist/ui/wait.d.ts +4 -0
  694. package/dist/ui/wait.js +7 -2
  695. package/dist/ui/wait.js.map +1 -1
  696. package/dist/ui/wizard.d.ts +2 -1
  697. package/dist/ui/wizard.js +1 -1
  698. package/dist/ui/wizard.js.map +1 -1
  699. package/dist/version-check-bin.d.ts +35 -0
  700. package/dist/version-check-bin.js +123 -0
  701. package/dist/version-check-bin.js.map +1 -0
  702. package/dist/version-check.d.ts +44 -0
  703. package/dist/version-check.js +153 -0
  704. package/dist/version-check.js.map +1 -0
  705. package/package.json +59 -4
@@ -1,4 +1,11 @@
1
1
  import type { ApiClient } from "../api/client.js";
2
2
  import type { Resource } from "../api/types.js";
3
- export declare function resolveResourceRef(api: ApiClient, query: string, projectId?: string): Promise<Resource>;
4
- export declare function resolveResourceId(api: ApiClient, query: string, projectId?: string): Promise<string>;
3
+ /**
4
+ * hostname / id prefix / IP → Resource. GET /resources is paged (50 by
5
+ * default, 200 at most, portal #419) and its `q=` matches hostname / id /
6
+ * IP / location server-side, so the query goes to the server (with `kind`
7
+ * when the command knows it) and `resolveResource`'s precedence ladder
8
+ * runs over that page as before.
9
+ */
10
+ export declare function resolveResourceRef(api: ApiClient, query: string, projectId?: string, kind?: string): Promise<Resource>;
11
+ export declare function resolveResourceId(api: ApiClient, query: string, projectId?: string, kind?: string): Promise<string>;
@@ -1,11 +1,18 @@
1
1
  import { resolveResource } from "./resource-detail.js";
2
2
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
3
- export async function resolveResourceRef(api, query, projectId) {
3
+ /**
4
+ * hostname / id prefix / IP → Resource. GET /resources is paged (50 by
5
+ * default, 200 at most, portal #419) and its `q=` matches hostname / id /
6
+ * IP / location server-side, so the query goes to the server (with `kind`
7
+ * when the command knows it) and `resolveResource`'s precedence ladder
8
+ * runs over that page as before.
9
+ */
10
+ export async function resolveResourceRef(api, query, projectId, kind) {
4
11
  const q = query.trim();
5
12
  if (UUID_RE.test(q)) {
6
13
  return api.virtualized.get(q);
7
14
  }
8
- const list = await api.virtualized.list(projectId);
15
+ const list = await api.virtualized.list(projectId, { q, kind });
9
16
  const hits = resolveResource(list, q);
10
17
  if (hits.length === 1)
11
18
  return hits[0];
@@ -18,7 +25,7 @@ export async function resolveResourceRef(api, query, projectId) {
18
25
  .join(", ");
19
26
  throw new Error(`"${query}" matches ${hits.length} resources (${preview}${hits.length > 5 ? ", …" : ""}). Use a longer id or the full hostname.`);
20
27
  }
21
- export async function resolveResourceId(api, query, projectId) {
22
- return (await resolveResourceRef(api, query, projectId)).id;
28
+ export async function resolveResourceId(api, query, projectId, kind) {
29
+ return (await resolveResourceRef(api, query, projectId, kind)).id;
23
30
  }
24
31
  //# sourceMappingURL=resource-resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-resolve.js","sourceRoot":"","sources":["../../src/ui/resource-resolve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,GACX,iEAAiE,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAc,EACd,KAAa,EACb,SAAkB;IAElB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAEvB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,qDAAqD,CACnF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI;SACjB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,aAAa,IAAI,CAAC,MAAM,eAAe,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,0CAA0C,CACjI,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAc,EACd,KAAa,EACb,SAAkB;IAElB,OAAO,CAAC,MAAM,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"resource-resolve.js","sourceRoot":"","sources":["../../src/ui/resource-resolve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,GACX,iEAAiE,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAc,EACd,KAAa,EACb,SAAkB,EAClB,IAAa;IAEb,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAEvB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,qDAAqD,CACnF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI;SACjB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,aAAa,IAAI,CAAC,MAAM,eAAe,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,0CAA0C,CACjI,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAc,EACd,KAAa,EACb,SAAkB,EAClB,IAAa;IAEb,OAAO,CAAC,MAAM,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC"}
@@ -1 +1,10 @@
1
- export declare function withSpinner<T>(label: string, fn: () => Promise<T>): Promise<T>;
1
+ /**
2
+ * `fn` may take an `update(text)` callback to change the spinner's message
3
+ * mid-flight (e.g. upload progress). Callers that don't need it can keep
4
+ * writing a plain zero-arg `() => ...` — TS accepts the shorter signature.
5
+ * In basic (non-TUI) mode `update` is a no-op, matching the existing
6
+ * no-spinner behaviour. The same applies whenever stdout is not a terminal:
7
+ * a spinner's frames would land in the pipe (or the JSON document) rather
8
+ * than be erased, so callers never need their own JSON-mode guard.
9
+ */
10
+ export declare function withSpinner<T>(label: string, fn: (update: (text: string) => void) => Promise<T>): Promise<T>;
@@ -1,13 +1,22 @@
1
1
  import * as clack from "@clack/prompts";
2
2
  import { isTui } from "./render-mode.js";
3
+ /**
4
+ * `fn` may take an `update(text)` callback to change the spinner's message
5
+ * mid-flight (e.g. upload progress). Callers that don't need it can keep
6
+ * writing a plain zero-arg `() => ...` — TS accepts the shorter signature.
7
+ * In basic (non-TUI) mode `update` is a no-op, matching the existing
8
+ * no-spinner behaviour. The same applies whenever stdout is not a terminal:
9
+ * a spinner's frames would land in the pipe (or the JSON document) rather
10
+ * than be erased, so callers never need their own JSON-mode guard.
11
+ */
3
12
  export async function withSpinner(label, fn) {
4
- if (!isTui()) {
5
- return fn();
13
+ if (!isTui() || !process.stdout.isTTY) {
14
+ return fn(() => { });
6
15
  }
7
16
  const s = clack.spinner();
8
17
  s.start(label);
9
18
  try {
10
- const result = await fn();
19
+ const result = await fn((text) => s.message(text));
11
20
  s.stop(label);
12
21
  return result;
13
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/ui/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,KAAa,EAAE,EAAoB;IACtE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACf,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/ui/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,EAAkD;IAElD,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACf,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -1,2 +1,9 @@
1
1
  export declare function renderTable(headers: string[], rows: string[][]): string;
2
+ /**
3
+ * The one-line "this list is a page, not the whole set" note the list
4
+ * commands and TUI screens print under a table when the server's `total`
5
+ * exceeds the rows shown (the list routes are paged since portal #419).
6
+ * Null when nothing was left out, so callers can `if (note) log(note)`.
7
+ */
8
+ export declare function truncationNote(shown: number, total: number, narrowHint: string): string | null;
2
9
  export declare function shortId(id: string): string;
package/dist/ui/table.js CHANGED
@@ -42,6 +42,17 @@ export function renderTable(headers, rows) {
42
42
  dim("╰") + rule + dim("╯"),
43
43
  ].join("\n");
44
44
  }
45
+ /**
46
+ * The one-line "this list is a page, not the whole set" note the list
47
+ * commands and TUI screens print under a table when the server's `total`
48
+ * exceeds the rows shown (the list routes are paged since portal #419).
49
+ * Null when nothing was left out, so callers can `if (note) log(note)`.
50
+ */
51
+ export function truncationNote(shown, total, narrowHint) {
52
+ if (!(total > shown))
53
+ return null;
54
+ return `Showing ${shown} of ${total} — use ${narrowHint} to narrow`;
55
+ }
45
56
  export function shortId(id) {
46
57
  return id.slice(0, 8);
47
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/ui/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/ui/table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface TaxBreakdownRow {
2
+ jurisdiction?: string;
3
+ rate?: string;
4
+ }
5
+ /**
6
+ * One-line summary of a per-jurisdiction tax breakdown, for display next to a
7
+ * tax total — e.g. "US-TX 8.25%" or "GB 20%, DE 19%". Returns null when there
8
+ * is nothing meaningful to show.
9
+ */
10
+ export declare function formatTaxBreakdown(rows?: TaxBreakdownRow[] | null): string | null;
package/dist/ui/tax.js ADDED
@@ -0,0 +1,31 @@
1
+ /**
2
+ * One-line summary of a per-jurisdiction tax breakdown, for display next to a
3
+ * tax total — e.g. "US-TX 8.25%" or "GB 20%, DE 19%". Returns null when there
4
+ * is nothing meaningful to show.
5
+ */
6
+ export function formatTaxBreakdown(rows) {
7
+ if (!rows?.length)
8
+ return null;
9
+ const parts = [];
10
+ for (const row of rows) {
11
+ const where = (row.jurisdiction ?? "").trim();
12
+ const rate = formatRatePercent(row.rate);
13
+ const label = [where, rate].filter(Boolean).join(" ");
14
+ if (label)
15
+ parts.push(label);
16
+ }
17
+ return parts.length ? parts.join(", ") : null;
18
+ }
19
+ function formatRatePercent(rate) {
20
+ if (rate == null || rate === "")
21
+ return "";
22
+ const n = Number(rate);
23
+ if (!Number.isFinite(n))
24
+ return "";
25
+ // Rates may arrive as a fraction (0.0825) or already as a percent (8.25);
26
+ // realistic tax rates are >= 1% so a value <= 1 is a fraction to scale up.
27
+ const pct = n <= 1 ? n * 100 : n;
28
+ // Two decimals max, trailing zeros dropped: 8.25 -> "8.25%", 20 -> "20%".
29
+ return `${parseFloat(pct.toFixed(2))}%`;
30
+ }
31
+ //# sourceMappingURL=tax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax.js","sourceRoot":"","sources":["../../src/ui/tax.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,IAAI,CAAC,IAAI,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa;IACtC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,0EAA0E;IAC1E,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1C,CAAC"}
@@ -1,2 +1,10 @@
1
- import type { ApiClient } from "../api/client.js";
1
+ import { type ApiClient } from "../api/client.js";
2
+ /**
3
+ * `#<n>` → ticket uuid. GET /tickets is paged (25 by default, 100 at most,
4
+ * portal #419), so the lookup asks the server for `q=<n>` — which matches
5
+ * `display_id == n` OR a subject / body substring — and keeps the exact
6
+ * `display_id` match client-side, because "ticket 12" in a subject also
7
+ * answers `q=12`. Only when a full q-page still holds no match does it walk
8
+ * the remaining pages.
9
+ */
2
10
  export declare function resolveTicketId(api: ApiClient, raw: string): Promise<string>;
@@ -1,4 +1,13 @@
1
+ import { pageThrough, TICKET_PAGE_MAX } from "../api/client.js";
1
2
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
3
+ /**
4
+ * `#<n>` → ticket uuid. GET /tickets is paged (25 by default, 100 at most,
5
+ * portal #419), so the lookup asks the server for `q=<n>` — which matches
6
+ * `display_id == n` OR a subject / body substring — and keeps the exact
7
+ * `display_id` match client-side, because "ticket 12" in a subject also
8
+ * answers `q=12`. Only when a full q-page still holds no match does it walk
9
+ * the remaining pages.
10
+ */
2
11
  export async function resolveTicketId(api, raw) {
3
12
  const arg = raw.trim();
4
13
  if (UUID_RE.test(arg))
@@ -7,8 +16,10 @@ export async function resolveTicketId(api, raw) {
7
16
  if (!/^\d+$/.test(wanted)) {
8
17
  throw new Error(`"${raw}" is neither a ticket UUID nor a #display number. Run \`synteq ticket list\` to see your tickets.`);
9
18
  }
10
- const tickets = await api.tickets.list();
11
- const match = tickets.find((t) => String(t.display_id) === wanted);
19
+ const n = Number(wanted);
20
+ const isWanted = (t) => t.display_id === n;
21
+ const tickets = await pageThrough((page) => api.tickets.listPage({ q: wanted, per_page: TICKET_PAGE_MAX, page }), (page) => page.items.some(isWanted));
22
+ const match = tickets.find(isWanted);
12
23
  if (!match) {
13
24
  throw new Error(`No ticket #${wanted} in your list. Run \`synteq ticket list\` to see open tickets.`);
14
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ticket-resolve.js","sourceRoot":"","sources":["../../src/ui/ticket-resolve.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GACX,iEAAiE,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAc,EACd,GAAW;IAEX,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,IAAI,GAAG,mGAAmG,CAC3G,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,gEAAgE,CACrF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"ticket-resolve.js","sourceRoot":"","sources":["../../src/ui/ticket-resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAkB,MAAM,kBAAkB,CAAC;AAEhF,MAAM,OAAO,GACX,iEAAiE,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAc,EACd,GAAW;IAEX,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,IAAI,GAAG,mGAAmG,CAC3G,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,CAAyB,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAC9E,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CACpC,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,gEAAgE,CACrF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,EAAE,CAAC;AAClB,CAAC"}
@@ -2,7 +2,10 @@ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/
2
2
  export async function resolveVolume(api, query, projectId) {
3
3
  const arg = query.trim();
4
4
  const q = arg.toLowerCase();
5
- const volumes = await api.storage.list(projectId);
5
+ // GET /resources/block_volume is paged (50/200, portal #419); its `q=`
6
+ // matches name / id / attached VM, so the server narrows before the
7
+ // precedence ladder below runs.
8
+ const volumes = await api.storage.list(projectId, { q: arg });
6
9
  if (UUID_RE.test(arg)) {
7
10
  const exact = volumes.find((v) => v.id.toLowerCase() === q);
8
11
  if (exact)
@@ -1 +1 @@
1
- {"version":3,"file":"volume-resolve.js","sourceRoot":"","sources":["../../src/ui/volume-resolve.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GACX,iEAAiE,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAc,EACd,KAAa,EACb,SAAkB;IAElB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAElD,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,iCAAiC,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,aAAa,QAAQ,CAAC,MAAM,uEAAuE,CAC7G,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3F,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,aAAa,OAAO,CAAC,MAAM,aAAa,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,mCAAmC,CAC9H,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,oDAAoD,CAChF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"volume-resolve.js","sourceRoot":"","sources":["../../src/ui/volume-resolve.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GACX,iEAAiE,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAc,EACd,KAAa,EACb,SAAkB;IAElB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5B,uEAAuE;IACvE,oEAAoE;IACpE,gCAAgC;IAChC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9D,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,iCAAiC,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,aAAa,QAAQ,CAAC,MAAM,uEAAuE,CAC7G,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3F,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,aAAa,OAAO,CAAC,MAAM,aAAa,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,mCAAmC,CAC9H,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,oDAAoD,CAChF,CAAC;AACJ,CAAC"}
package/dist/ui/wait.d.ts CHANGED
@@ -25,6 +25,10 @@ export type WaitResult<T> = {
25
25
  lastLabel: string | null;
26
26
  elapsedSeconds: number;
27
27
  };
28
+ /** A fault worth polling through: the network dropped, or the API answered
29
+ * 5xx. Anything else — an expired session, a 403/404, a bad reference — is
30
+ * a real outcome and must surface, not be retried until a deadline. */
31
+ export declare function isTransientError(err: unknown): boolean;
28
32
  export declare function waitFor<T>(opts: WaitOpts<T>): Promise<WaitResult<T>>;
29
33
  export declare function resourceStatusClassifier(target: "running" | "stopped"): (resource: {
30
34
  status: string;
package/dist/ui/wait.js CHANGED
@@ -1,4 +1,10 @@
1
1
  import { ApiError, NetworkError } from "../api/errors.js";
2
+ /** A fault worth polling through: the network dropped, or the API answered
3
+ * 5xx. Anything else — an expired session, a 403/404, a bad reference — is
4
+ * a real outcome and must surface, not be retried until a deadline. */
5
+ export function isTransientError(err) {
6
+ return err instanceof NetworkError || (err instanceof ApiError && err.status >= 500);
7
+ }
2
8
  export async function waitFor(opts) {
3
9
  const minMs = opts.minIntervalMs ?? 4000;
4
10
  const maxMs = opts.maxIntervalMs ?? 6000;
@@ -16,8 +22,7 @@ export async function waitFor(opts) {
16
22
  consecutiveErrors = 0;
17
23
  }
18
24
  catch (err) {
19
- const transient = err instanceof NetworkError || (err instanceof ApiError && err.status >= 500);
20
- if (!transient || ++consecutiveErrors >= 3)
25
+ if (!isTransientError(err) || ++consecutiveErrors >= 3)
21
26
  throw err;
22
27
  }
23
28
  if (polled) {
@@ -1 +1 @@
1
- {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/ui/wait.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/ui/wait.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@ export declare function pickFromCatalog<T>(message: string, items: CatalogPickIt
12
12
  export declare function promptString(message: string, opts?: {
13
13
  default?: string;
14
14
  allowEmpty?: boolean;
15
- validate?: (s: string) => string | true;
15
+ /** May be async — a prompt that has to ask the API (a name check) answers on Enter. */
16
+ validate?: (s: string) => string | true | Promise<string | true>;
16
17
  }): Promise<string>;
17
18
  export declare function promptNumber(message: string, opts?: {
18
19
  default?: number;
package/dist/ui/wizard.js CHANGED
@@ -18,7 +18,7 @@ export async function pickFromCatalog(message, items, opts = {}) {
18
18
  options: items.map((i) => ({
19
19
  value: i.value,
20
20
  label: i.name,
21
- hint: i.disabled ? `${i.disabled} (unavailable)` : i.description,
21
+ hint: i.disabled ? `(${i.disabled})` : i.description,
22
22
  })),
23
23
  }));
24
24
  if (clack.isCancel(picked)) {
@@ -1 +1 @@
1
- {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/ui/wizard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/ui/wizard.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,KAA2B,EAC3B,OAAgD,EAAE;IAElD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,KAAK,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC;YACjC,OAAO;YACP,YAAY,EAAE,IAAI,CAAC,YAAuB;YAC1C,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,KAAK,EAAE,CAAC,CAAC,KAAgB;gBACzB,KAAK,EAAE,CAAC,CAAC,IAAI;gBACb,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;aACrD,CAAC,CAAC;SACJ,CAAC,CAAe,CAAC;QAClB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAI;QACf,OAAO;QACP,OAAO,EAAE,IAAI,CAAC,YAAY;QAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;QACrD,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,OAKI,EAAE;IAEN,OAAO,KAAK,CAAC;QACX,OAAO;QACP,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;YAC9C,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,OAAyD,EAAE;IAE3D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC;QACtB,OAAO;QACP,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QACtE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,mBAAmB,CAAC;YACpD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;gBAAE,OAAO,aAAa,IAAI,CAAC,GAAG,GAAG,CAAC;YAC5E,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;gBAAE,OAAO,aAAa,IAAI,CAAC,GAAG,GAAG,CAAC;YAC5E,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,UAAU,GAAG,KAAK;IACrE,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe;IAChD,IAAI,KAAK,EAAE,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACjE,OAAO,KAAe,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;QACzB,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1B,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;YAC3B,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;YAC/B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC/B,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,CAAC;oBACb,OAAO;gBACT,CAAC;gBACD,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACpB,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBACxC,OAAO;gBACT,CAAC;gBACD,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBACnC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACvB,SAAS;gBACX,CAAC;gBACD,IAAI,EAAE,IAAI,GAAG;oBAAE,GAAG,IAAI,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAMrC;IACC,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC;IAC/E,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAU;IACpC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9E,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAa,EACb,IAAoD;IAEpD,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,KAAa,EACb,IAA0E;IAE1E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CACA,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAC3B,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,EAAE,CACjE,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACb,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACpD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5B,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAC/B,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,KAAK;QACf,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC1F,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CACrF,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { CLI_VERSION } from "./api/client.js";
2
+ import { VERSION_CHECK_EXEMPT } from "./version-check.js";
3
+ export { VERSION_CHECK_EXEMPT, CLI_VERSION };
4
+ export declare function minVersionCachePath(): string;
5
+ /** True when SYNTEQ_SKIP_VERSION_CHECK=1 — mirrors the check in
6
+ * version-check.ts's loadOrFetchMinVersion (F2a). */
7
+ export declare function isSkipEnvSet(): boolean;
8
+ /** Does this argv invocation resolve to a VERSION_CHECK_EXEMPT command?
9
+ * (F2b/F2c)
10
+ *
11
+ * Two drift bugs this fixes relative to the old inline bin logic:
12
+ * - F2b (colon form): oclif accepts both `settings render-mode` and
13
+ * `settings:render-mode`. VERSION_CHECK_EXEMPT already lists both the
14
+ * bare topic ("settings") and the colon form ("settings:render-mode"),
15
+ * so testing each token both as-is AND split on ":" (topic-only) covers
16
+ * `settings`, `settings:render-mode`, and `settings render-mode` (two
17
+ * separate tokens, "settings" alone already matches).
18
+ * - F2c (flag-value false match): the old code took "the first non-flag
19
+ * token" as THE command, so `synteq -o json login` saw "json" first and
20
+ * never reached "login". Scanning ALL non-flag tokens for ANY exempt
21
+ * match is simpler and robust — login/logout/settings are commands here,
22
+ * never legitimate flag values in this CLI's grammar, so a false
23
+ * positive would require a flag value that's literally the string
24
+ * "login"/"logout"/"settings" — an acceptable, documented trade-off
25
+ * favoring "recovery command wrongly let through" over "recovery
26
+ * command wrongly blocked".
27
+ */
28
+ export declare function isExemptFromVersionCheck(argv: readonly string[]): boolean;
29
+ /** The single entry point bin/run.js calls. Returns the upgrade message to
30
+ * print (caller writes to stderr + exit 4), or null to proceed normally.
31
+ * Never throws — every failure mode (skip-env, exempt command, missing/
32
+ * corrupt/stale cache, invalid semver) resolves to null, i.e. fail-open,
33
+ * except the one case that's supposed to block: a validly-cached,
34
+ * unexpired min_version that's genuinely newer than CLI_VERSION. */
35
+ export declare function checkOutdatedFromCacheForBin(argv: readonly string[]): string | null;
@@ -0,0 +1,123 @@
1
+ // Shared shim consumed by bin/run.js (compiled to dist/version-check-bin.js).
2
+ //
3
+ // bin/run.js needs to answer "is this invocation outdated?" from the
4
+ // cache file alone, synchronously, BEFORE oclif boots — no network call,
5
+ // no command-class introspection. That's a materially different job than
6
+ // version-check.ts's guardCliVersion() (which runs inside a live command
7
+ // with a resolved ApiClient and cmdId). This module exists so the bin-level
8
+ // answer reuses the SAME exempt set, comparator, cache-path resolver, and
9
+ // skip-env check as the module — no second copy to drift out of sync.
10
+ //
11
+ // bin/run.js can safely import from dist/ because package.json's
12
+ // oclif.commands / oclif.helpClass already point at ./dist/*, meaning
13
+ // dist/ must exist for the CLI to run at all in production. The separate
14
+ // bin/dev.js (ts-node) path never touches this file.
15
+ import { existsSync, readFileSync } from "node:fs";
16
+ import { join } from "node:path";
17
+ import * as semver from "semver";
18
+ import { CLI_VERSION } from "./api/client.js";
19
+ import { configDir } from "./config/paths.js";
20
+ import { UPGRADE_COMMAND, VERSION_CHECK_EXEMPT, stripControlChars } from "./version-check.js";
21
+ export { VERSION_CHECK_EXEMPT, CLI_VERSION };
22
+ export function minVersionCachePath() {
23
+ return join(configDir(), "min-version.json");
24
+ }
25
+ /** True when SYNTEQ_SKIP_VERSION_CHECK=1 — mirrors the check in
26
+ * version-check.ts's loadOrFetchMinVersion (F2a). */
27
+ export function isSkipEnvSet() {
28
+ return process.env.SYNTEQ_SKIP_VERSION_CHECK === "1";
29
+ }
30
+ /** Does this argv invocation resolve to a VERSION_CHECK_EXEMPT command?
31
+ * (F2b/F2c)
32
+ *
33
+ * Two drift bugs this fixes relative to the old inline bin logic:
34
+ * - F2b (colon form): oclif accepts both `settings render-mode` and
35
+ * `settings:render-mode`. VERSION_CHECK_EXEMPT already lists both the
36
+ * bare topic ("settings") and the colon form ("settings:render-mode"),
37
+ * so testing each token both as-is AND split on ":" (topic-only) covers
38
+ * `settings`, `settings:render-mode`, and `settings render-mode` (two
39
+ * separate tokens, "settings" alone already matches).
40
+ * - F2c (flag-value false match): the old code took "the first non-flag
41
+ * token" as THE command, so `synteq -o json login` saw "json" first and
42
+ * never reached "login". Scanning ALL non-flag tokens for ANY exempt
43
+ * match is simpler and robust — login/logout/settings are commands here,
44
+ * never legitimate flag values in this CLI's grammar, so a false
45
+ * positive would require a flag value that's literally the string
46
+ * "login"/"logout"/"settings" — an acceptable, documented trade-off
47
+ * favoring "recovery command wrongly let through" over "recovery
48
+ * command wrongly blocked".
49
+ */
50
+ export function isExemptFromVersionCheck(argv) {
51
+ for (let i = 2; i < argv.length; i++) {
52
+ const arg = argv[i];
53
+ if (!arg || arg.startsWith("-"))
54
+ continue;
55
+ if (VERSION_CHECK_EXEMPT.has(arg))
56
+ return true;
57
+ const topic = arg.split(":")[0];
58
+ if (topic && VERSION_CHECK_EXEMPT.has(topic))
59
+ return true;
60
+ }
61
+ return false;
62
+ }
63
+ /** Read + validate the on-disk cache. Fails open (returns null) on any
64
+ * parse error, missing/wrong-typed fields, staleness, clock skew, or
65
+ * invalid semver in min_version (F5-cli) — never throws. */
66
+ function readMinVersionCacheForBin(cachePath) {
67
+ if (!existsSync(cachePath))
68
+ return null;
69
+ try {
70
+ const parsed = JSON.parse(readFileSync(cachePath, "utf8"));
71
+ if (typeof parsed?.min_version !== "string" || typeof parsed?.fetched_at !== "number")
72
+ return null;
73
+ if (!semver.valid(parsed.min_version))
74
+ return null; // corrupt/overflowed → fail open
75
+ const now = Date.now();
76
+ if (now - parsed.fetched_at > 6 * 60 * 60 * 1000)
77
+ return null; // stale (6h TTL)
78
+ if (now - parsed.fetched_at < 0)
79
+ return null; // clock went backward
80
+ return {
81
+ min: parsed.min_version,
82
+ msg: typeof parsed.deprecated_message === "string" ? parsed.deprecated_message : null,
83
+ };
84
+ }
85
+ catch {
86
+ return null;
87
+ }
88
+ }
89
+ function buildOutdatedMessage(min, deprecatedMessage) {
90
+ const lines = [
91
+ `synteq: this CLI (v${CLI_VERSION}) is older than the portal's required minimum (v${min}).`,
92
+ `Upgrade with: ${UPGRADE_COMMAND}`,
93
+ ];
94
+ if (deprecatedMessage) {
95
+ lines.push("");
96
+ lines.push(stripControlChars(deprecatedMessage));
97
+ }
98
+ return lines.join("\n");
99
+ }
100
+ /** The single entry point bin/run.js calls. Returns the upgrade message to
101
+ * print (caller writes to stderr + exit 4), or null to proceed normally.
102
+ * Never throws — every failure mode (skip-env, exempt command, missing/
103
+ * corrupt/stale cache, invalid semver) resolves to null, i.e. fail-open,
104
+ * except the one case that's supposed to block: a validly-cached,
105
+ * unexpired min_version that's genuinely newer than CLI_VERSION. */
106
+ export function checkOutdatedFromCacheForBin(argv) {
107
+ if (isSkipEnvSet())
108
+ return null;
109
+ if (isExemptFromVersionCheck(argv))
110
+ return null;
111
+ const cache = readMinVersionCacheForBin(minVersionCachePath());
112
+ if (!cache)
113
+ return null;
114
+ try {
115
+ if (!semver.lt(CLI_VERSION, cache.min))
116
+ return null;
117
+ }
118
+ catch {
119
+ return null; // fail open on any comparator surprise (F5-cli)
120
+ }
121
+ return buildOutdatedMessage(cache.min, cache.msg);
122
+ }
123
+ //# sourceMappingURL=version-check-bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check-bin.js","sourceRoot":"","sources":["../src/version-check-bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { ApiClient } from "./api/client.js";
2
+ export declare const VERSION_CHECK_CACHE_TTL_MS: number;
3
+ /** The npm package this CLI ships as (package.json `name`) — the one string
4
+ * every upgrade hint agrees on, pinned by test/version-check.test.ts.
5
+ * `@synteq/cli`, which the hints used to print, is not the published name. */
6
+ export declare const NPM_PACKAGE = "synteq";
7
+ export declare const UPGRADE_COMMAND = "npm i -g synteq@latest";
8
+ /** Commands that MUST work even when the local CLI is outdated. Keep tight:
9
+ * login/logout so users can complete a re-auth if upgrade requires it;
10
+ * settings so users can inspect the state they're stuck in. Nothing else. */
11
+ export declare const VERSION_CHECK_EXEMPT: ReadonlySet<string>;
12
+ export interface MinVersionInfo {
13
+ minVersion: string;
14
+ deprecatedMessage: string | null;
15
+ fetchedAt: number;
16
+ }
17
+ /** Fetch the min-version record. Returns null when we couldn't get one AND
18
+ * had no stale cache to fall back on — the caller MUST treat null as
19
+ * "unknown, allow through" per the spec's fail-open error handling. */
20
+ export declare function loadOrFetchMinVersion(api: Pick<ApiClient, "auth"> | {
21
+ auth: {
22
+ minCliVersion: () => Promise<{
23
+ min_cli_version: string;
24
+ deprecated_message: string | null;
25
+ }>;
26
+ };
27
+ }, cacheFilePath?: string): Promise<MinVersionInfo | null>;
28
+ export declare function isCliOutdated(current: string, min: string): boolean;
29
+ /** Strip C0/C1 control characters (except newline) and bidi-override
30
+ * codepoints from a string. Defence-in-depth for `deprecatedMessage`,
31
+ * which originates as unauthenticated, admin-free-text server input
32
+ * (`GET /auth/device/version`) and is printed raw to the user's terminal.
33
+ * The backend sanitizes on write (see `text_sanitize.py`); this is a
34
+ * second, independent line of defence on the print path in case that
35
+ * ever regresses or a stale cache from before the backend fix lingers
36
+ * on disk. Shared by `formatUpgradeMessage` here and the bin-level shim
37
+ * (`version-check-bin.ts`) so both print paths agree. */
38
+ export declare function stripControlChars(s: string): string;
39
+ export declare function formatUpgradeMessage(current: string, min: string, deprecatedMessage: string | null, binName: string): string;
40
+ export interface GuardResult {
41
+ outdated: boolean;
42
+ message?: string;
43
+ }
44
+ export declare function guardCliVersion(api: Pick<ApiClient, "auth">, cmdId: string, binName: string, cacheFilePath?: string): Promise<GuardResult>;