@synteq/cli 0.1.0

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 (500) hide show
  1. package/bin/run.js +10 -0
  2. package/dist/api/client.d.ts +167 -0
  3. package/dist/api/client.js +367 -0
  4. package/dist/api/client.js.map +1 -0
  5. package/dist/api/errors.d.ts +16 -0
  6. package/dist/api/errors.js +76 -0
  7. package/dist/api/errors.js.map +1 -0
  8. package/dist/api/factory.d.ts +12 -0
  9. package/dist/api/factory.js +18 -0
  10. package/dist/api/factory.js.map +1 -0
  11. package/dist/api/types.d.ts +738 -0
  12. package/dist/api/types.js +2 -0
  13. package/dist/api/types.js.map +1 -0
  14. package/dist/auth/device-flow.d.ts +8 -0
  15. package/dist/auth/device-flow.js +36 -0
  16. package/dist/auth/device-flow.js.map +1 -0
  17. package/dist/auth/keychain.d.ts +3 -0
  18. package/dist/auth/keychain.js +34 -0
  19. package/dist/auth/keychain.js.map +1 -0
  20. package/dist/auth/logout.d.ts +4 -0
  21. package/dist/auth/logout.js +17 -0
  22. package/dist/auth/logout.js.map +1 -0
  23. package/dist/auth/tokens.d.ts +19 -0
  24. package/dist/auth/tokens.js +56 -0
  25. package/dist/auth/tokens.js.map +1 -0
  26. package/dist/base/command.d.ts +17 -0
  27. package/dist/base/command.js +89 -0
  28. package/dist/base/command.js.map +1 -0
  29. package/dist/commands/account/index.d.ts +5 -0
  30. package/dist/commands/account/index.js +9 -0
  31. package/dist/commands/account/index.js.map +1 -0
  32. package/dist/commands/account/show.d.ts +9 -0
  33. package/dist/commands/account/show.js +75 -0
  34. package/dist/commands/account/show.js.map +1 -0
  35. package/dist/commands/api.d.ts +17 -0
  36. package/dist/commands/api.js +144 -0
  37. package/dist/commands/api.js.map +1 -0
  38. package/dist/commands/bare-metal/index.d.ts +4 -0
  39. package/dist/commands/bare-metal/index.js +5 -0
  40. package/dist/commands/bare-metal/index.js.map +1 -0
  41. package/dist/commands/bare-metal/list.d.ts +9 -0
  42. package/dist/commands/bare-metal/list.js +38 -0
  43. package/dist/commands/bare-metal/list.js.map +1 -0
  44. package/dist/commands/bare-metal/order.d.ts +6 -0
  45. package/dist/commands/bare-metal/order.js +27 -0
  46. package/dist/commands/bare-metal/order.js.map +1 -0
  47. package/dist/commands/catalog.d.ts +11 -0
  48. package/dist/commands/catalog.js +115 -0
  49. package/dist/commands/catalog.js.map +1 -0
  50. package/dist/commands/config/index.d.ts +5 -0
  51. package/dist/commands/config/index.js +9 -0
  52. package/dist/commands/config/index.js.map +1 -0
  53. package/dist/commands/config/set-api-url.d.ts +10 -0
  54. package/dist/commands/config/set-api-url.js +43 -0
  55. package/dist/commands/config/set-api-url.js.map +1 -0
  56. package/dist/commands/config/show.d.ts +9 -0
  57. package/dist/commands/config/show.js +75 -0
  58. package/dist/commands/config/show.js.map +1 -0
  59. package/dist/commands/credits/add.d.ts +14 -0
  60. package/dist/commands/credits/add.js +117 -0
  61. package/dist/commands/credits/add.js.map +1 -0
  62. package/dist/commands/credits/index.d.ts +5 -0
  63. package/dist/commands/credits/index.js +9 -0
  64. package/dist/commands/credits/index.js.map +1 -0
  65. package/dist/commands/credits/list.d.ts +6 -0
  66. package/dist/commands/credits/list.js +43 -0
  67. package/dist/commands/credits/list.js.map +1 -0
  68. package/dist/commands/gpu/activity.d.ts +15 -0
  69. package/dist/commands/gpu/activity.js +8 -0
  70. package/dist/commands/gpu/activity.js.map +1 -0
  71. package/dist/commands/gpu/bandwidth.d.ts +14 -0
  72. package/dist/commands/gpu/bandwidth.js +8 -0
  73. package/dist/commands/gpu/bandwidth.js.map +1 -0
  74. package/dist/commands/gpu/boot-order.d.ts +15 -0
  75. package/dist/commands/gpu/boot-order.js +8 -0
  76. package/dist/commands/gpu/boot-order.js.map +1 -0
  77. package/dist/commands/gpu/console.d.ts +14 -0
  78. package/dist/commands/gpu/console.js +8 -0
  79. package/dist/commands/gpu/console.js.map +1 -0
  80. package/dist/commands/gpu/details.d.ts +15 -0
  81. package/dist/commands/gpu/details.js +8 -0
  82. package/dist/commands/gpu/details.js.map +1 -0
  83. package/dist/commands/gpu/index.d.ts +4 -0
  84. package/dist/commands/gpu/index.js +5 -0
  85. package/dist/commands/gpu/index.js.map +1 -0
  86. package/dist/commands/gpu/ip/add.d.ts +18 -0
  87. package/dist/commands/gpu/ip/add.js +8 -0
  88. package/dist/commands/gpu/ip/add.js.map +1 -0
  89. package/dist/commands/gpu/ip/list.d.ts +14 -0
  90. package/dist/commands/gpu/ip/list.js +8 -0
  91. package/dist/commands/gpu/ip/list.js.map +1 -0
  92. package/dist/commands/gpu/list.d.ts +6 -0
  93. package/dist/commands/gpu/list.js +13 -0
  94. package/dist/commands/gpu/list.js.map +1 -0
  95. package/dist/commands/gpu/order.d.ts +6 -0
  96. package/dist/commands/gpu/order.js +13 -0
  97. package/dist/commands/gpu/order.js.map +1 -0
  98. package/dist/commands/gpu/power.d.ts +17 -0
  99. package/dist/commands/gpu/power.js +8 -0
  100. package/dist/commands/gpu/power.js.map +1 -0
  101. package/dist/commands/gpu/reinstall.d.ts +22 -0
  102. package/dist/commands/gpu/reinstall.js +8 -0
  103. package/dist/commands/gpu/reinstall.js.map +1 -0
  104. package/dist/commands/gpu/resize.d.ts +22 -0
  105. package/dist/commands/gpu/resize.js +8 -0
  106. package/dist/commands/gpu/resize.js.map +1 -0
  107. package/dist/commands/gpu/stats.d.ts +14 -0
  108. package/dist/commands/gpu/stats.js +8 -0
  109. package/dist/commands/gpu/stats.js.map +1 -0
  110. package/dist/commands/help.d.ts +9 -0
  111. package/dist/commands/help.js +19 -0
  112. package/dist/commands/help.js.map +1 -0
  113. package/dist/commands/instant-metal/activity.d.ts +15 -0
  114. package/dist/commands/instant-metal/activity.js +8 -0
  115. package/dist/commands/instant-metal/activity.js.map +1 -0
  116. package/dist/commands/instant-metal/bandwidth.d.ts +14 -0
  117. package/dist/commands/instant-metal/bandwidth.js +8 -0
  118. package/dist/commands/instant-metal/bandwidth.js.map +1 -0
  119. package/dist/commands/instant-metal/boot-order.d.ts +15 -0
  120. package/dist/commands/instant-metal/boot-order.js +8 -0
  121. package/dist/commands/instant-metal/boot-order.js.map +1 -0
  122. package/dist/commands/instant-metal/console.d.ts +14 -0
  123. package/dist/commands/instant-metal/console.js +8 -0
  124. package/dist/commands/instant-metal/console.js.map +1 -0
  125. package/dist/commands/instant-metal/details.d.ts +15 -0
  126. package/dist/commands/instant-metal/details.js +8 -0
  127. package/dist/commands/instant-metal/details.js.map +1 -0
  128. package/dist/commands/instant-metal/index.d.ts +4 -0
  129. package/dist/commands/instant-metal/index.js +5 -0
  130. package/dist/commands/instant-metal/index.js.map +1 -0
  131. package/dist/commands/instant-metal/ip/add.d.ts +18 -0
  132. package/dist/commands/instant-metal/ip/add.js +8 -0
  133. package/dist/commands/instant-metal/ip/add.js.map +1 -0
  134. package/dist/commands/instant-metal/ip/list.d.ts +14 -0
  135. package/dist/commands/instant-metal/ip/list.js +8 -0
  136. package/dist/commands/instant-metal/ip/list.js.map +1 -0
  137. package/dist/commands/instant-metal/list.d.ts +6 -0
  138. package/dist/commands/instant-metal/list.js +13 -0
  139. package/dist/commands/instant-metal/list.js.map +1 -0
  140. package/dist/commands/instant-metal/order.d.ts +6 -0
  141. package/dist/commands/instant-metal/order.js +13 -0
  142. package/dist/commands/instant-metal/order.js.map +1 -0
  143. package/dist/commands/instant-metal/power.d.ts +17 -0
  144. package/dist/commands/instant-metal/power.js +8 -0
  145. package/dist/commands/instant-metal/power.js.map +1 -0
  146. package/dist/commands/instant-metal/reinstall.d.ts +22 -0
  147. package/dist/commands/instant-metal/reinstall.js +8 -0
  148. package/dist/commands/instant-metal/reinstall.js.map +1 -0
  149. package/dist/commands/instant-metal/resize.d.ts +22 -0
  150. package/dist/commands/instant-metal/resize.js +8 -0
  151. package/dist/commands/instant-metal/resize.js.map +1 -0
  152. package/dist/commands/instant-metal/stats.d.ts +14 -0
  153. package/dist/commands/instant-metal/stats.js +8 -0
  154. package/dist/commands/instant-metal/stats.js.map +1 -0
  155. package/dist/commands/login.d.ts +10 -0
  156. package/dist/commands/login.js +98 -0
  157. package/dist/commands/login.js.map +1 -0
  158. package/dist/commands/logout.d.ts +6 -0
  159. package/dist/commands/logout.js +20 -0
  160. package/dist/commands/logout.js.map +1 -0
  161. package/dist/commands/order/gpu.d.ts +6 -0
  162. package/dist/commands/order/gpu.js +13 -0
  163. package/dist/commands/order/gpu.js.map +1 -0
  164. package/dist/commands/order/instant-metal.d.ts +7 -0
  165. package/dist/commands/order/instant-metal.js +14 -0
  166. package/dist/commands/order/instant-metal.js.map +1 -0
  167. package/dist/commands/order/storage.d.ts +6 -0
  168. package/dist/commands/order/storage.js +11 -0
  169. package/dist/commands/order/storage.js.map +1 -0
  170. package/dist/commands/order/vps.d.ts +7 -0
  171. package/dist/commands/order/vps.js +14 -0
  172. package/dist/commands/order/vps.js.map +1 -0
  173. package/dist/commands/order.d.ts +6 -0
  174. package/dist/commands/order.js +46 -0
  175. package/dist/commands/order.js.map +1 -0
  176. package/dist/commands/payments/index.d.ts +5 -0
  177. package/dist/commands/payments/index.js +10 -0
  178. package/dist/commands/payments/index.js.map +1 -0
  179. package/dist/commands/payments/methods/add.d.ts +9 -0
  180. package/dist/commands/payments/methods/add.js +30 -0
  181. package/dist/commands/payments/methods/add.js.map +1 -0
  182. package/dist/commands/payments/methods/delete.d.ts +12 -0
  183. package/dist/commands/payments/methods/delete.js +58 -0
  184. package/dist/commands/payments/methods/delete.js.map +1 -0
  185. package/dist/commands/payments/methods/index.d.ts +5 -0
  186. package/dist/commands/payments/methods/index.js +9 -0
  187. package/dist/commands/payments/methods/index.js.map +1 -0
  188. package/dist/commands/payments/methods/list.d.ts +6 -0
  189. package/dist/commands/payments/methods/list.js +33 -0
  190. package/dist/commands/payments/methods/list.js.map +1 -0
  191. package/dist/commands/payments/methods/set-default.d.ts +9 -0
  192. package/dist/commands/payments/methods/set-default.js +31 -0
  193. package/dist/commands/payments/methods/set-default.js.map +1 -0
  194. package/dist/commands/projects/index.d.ts +5 -0
  195. package/dist/commands/projects/index.js +9 -0
  196. package/dist/commands/projects/index.js.map +1 -0
  197. package/dist/commands/projects/list.d.ts +6 -0
  198. package/dist/commands/projects/list.js +31 -0
  199. package/dist/commands/projects/list.js.map +1 -0
  200. package/dist/commands/resources.d.ts +11 -0
  201. package/dist/commands/resources.js +93 -0
  202. package/dist/commands/resources.js.map +1 -0
  203. package/dist/commands/settings/index.d.ts +6 -0
  204. package/dist/commands/settings/index.js +57 -0
  205. package/dist/commands/settings/index.js.map +1 -0
  206. package/dist/commands/settings/render-mode.d.ts +10 -0
  207. package/dist/commands/settings/render-mode.js +76 -0
  208. package/dist/commands/settings/render-mode.js.map +1 -0
  209. package/dist/commands/ssh-key/add.d.ts +11 -0
  210. package/dist/commands/ssh-key/add.js +89 -0
  211. package/dist/commands/ssh-key/add.js.map +1 -0
  212. package/dist/commands/ssh-key/delete.d.ts +12 -0
  213. package/dist/commands/ssh-key/delete.js +43 -0
  214. package/dist/commands/ssh-key/delete.js.map +1 -0
  215. package/dist/commands/ssh-key/list.d.ts +7 -0
  216. package/dist/commands/ssh-key/list.js +47 -0
  217. package/dist/commands/ssh-key/list.js.map +1 -0
  218. package/dist/commands/storage/attach.d.ts +12 -0
  219. package/dist/commands/storage/attach.js +48 -0
  220. package/dist/commands/storage/attach.js.map +1 -0
  221. package/dist/commands/storage/detach.d.ts +12 -0
  222. package/dist/commands/storage/detach.js +60 -0
  223. package/dist/commands/storage/detach.js.map +1 -0
  224. package/dist/commands/storage/list.d.ts +9 -0
  225. package/dist/commands/storage/list.js +41 -0
  226. package/dist/commands/storage/list.js.map +1 -0
  227. package/dist/commands/storage/order.d.ts +16 -0
  228. package/dist/commands/storage/order.js +223 -0
  229. package/dist/commands/storage/order.js.map +1 -0
  230. package/dist/commands/storage/resize.d.ts +16 -0
  231. package/dist/commands/storage/resize.js +129 -0
  232. package/dist/commands/storage/resize.js.map +1 -0
  233. package/dist/commands/team/details.d.ts +9 -0
  234. package/dist/commands/team/details.js +48 -0
  235. package/dist/commands/team/details.js.map +1 -0
  236. package/dist/commands/team/invite.d.ts +14 -0
  237. package/dist/commands/team/invite.js +65 -0
  238. package/dist/commands/team/invite.js.map +1 -0
  239. package/dist/commands/team.d.ts +15 -0
  240. package/dist/commands/team.js +123 -0
  241. package/dist/commands/team.js.map +1 -0
  242. package/dist/commands/tickets/close.d.ts +13 -0
  243. package/dist/commands/tickets/close.js +39 -0
  244. package/dist/commands/tickets/close.js.map +1 -0
  245. package/dist/commands/tickets/create.d.ts +16 -0
  246. package/dist/commands/tickets/create.js +111 -0
  247. package/dist/commands/tickets/create.js.map +1 -0
  248. package/dist/commands/tickets/departments.d.ts +7 -0
  249. package/dist/commands/tickets/departments.js +27 -0
  250. package/dist/commands/tickets/departments.js.map +1 -0
  251. package/dist/commands/tickets/list.d.ts +10 -0
  252. package/dist/commands/tickets/list.js +66 -0
  253. package/dist/commands/tickets/list.js.map +1 -0
  254. package/dist/commands/tickets/open.d.ts +10 -0
  255. package/dist/commands/tickets/open.js +70 -0
  256. package/dist/commands/tickets/open.js.map +1 -0
  257. package/dist/commands/tickets/reply.d.ts +13 -0
  258. package/dist/commands/tickets/reply.js +48 -0
  259. package/dist/commands/tickets/reply.js.map +1 -0
  260. package/dist/commands/transit.d.ts +9 -0
  261. package/dist/commands/transit.js +47 -0
  262. package/dist/commands/transit.js.map +1 -0
  263. package/dist/commands/tui/index.d.ts +7 -0
  264. package/dist/commands/tui/index.js +87 -0
  265. package/dist/commands/tui/index.js.map +1 -0
  266. package/dist/commands/vds/activity.d.ts +15 -0
  267. package/dist/commands/vds/activity.js +8 -0
  268. package/dist/commands/vds/activity.js.map +1 -0
  269. package/dist/commands/vds/bandwidth.d.ts +14 -0
  270. package/dist/commands/vds/bandwidth.js +8 -0
  271. package/dist/commands/vds/bandwidth.js.map +1 -0
  272. package/dist/commands/vds/boot-order.d.ts +15 -0
  273. package/dist/commands/vds/boot-order.js +8 -0
  274. package/dist/commands/vds/boot-order.js.map +1 -0
  275. package/dist/commands/vds/console.d.ts +14 -0
  276. package/dist/commands/vds/console.js +8 -0
  277. package/dist/commands/vds/console.js.map +1 -0
  278. package/dist/commands/vds/details.d.ts +15 -0
  279. package/dist/commands/vds/details.js +8 -0
  280. package/dist/commands/vds/details.js.map +1 -0
  281. package/dist/commands/vds/index.d.ts +4 -0
  282. package/dist/commands/vds/index.js +5 -0
  283. package/dist/commands/vds/index.js.map +1 -0
  284. package/dist/commands/vds/ip/add.d.ts +18 -0
  285. package/dist/commands/vds/ip/add.js +8 -0
  286. package/dist/commands/vds/ip/add.js.map +1 -0
  287. package/dist/commands/vds/ip/list.d.ts +14 -0
  288. package/dist/commands/vds/ip/list.js +8 -0
  289. package/dist/commands/vds/ip/list.js.map +1 -0
  290. package/dist/commands/vds/list.d.ts +6 -0
  291. package/dist/commands/vds/list.js +13 -0
  292. package/dist/commands/vds/list.js.map +1 -0
  293. package/dist/commands/vds/order.d.ts +6 -0
  294. package/dist/commands/vds/order.js +13 -0
  295. package/dist/commands/vds/order.js.map +1 -0
  296. package/dist/commands/vds/power.d.ts +17 -0
  297. package/dist/commands/vds/power.js +8 -0
  298. package/dist/commands/vds/power.js.map +1 -0
  299. package/dist/commands/vds/reinstall.d.ts +22 -0
  300. package/dist/commands/vds/reinstall.js +8 -0
  301. package/dist/commands/vds/reinstall.js.map +1 -0
  302. package/dist/commands/vds/resize.d.ts +22 -0
  303. package/dist/commands/vds/resize.js +8 -0
  304. package/dist/commands/vds/resize.js.map +1 -0
  305. package/dist/commands/vds/stats.d.ts +14 -0
  306. package/dist/commands/vds/stats.js +8 -0
  307. package/dist/commands/vds/stats.js.map +1 -0
  308. package/dist/commands/vps/activity.d.ts +13 -0
  309. package/dist/commands/vps/activity.js +50 -0
  310. package/dist/commands/vps/activity.js.map +1 -0
  311. package/dist/commands/vps/bandwidth.d.ts +9 -0
  312. package/dist/commands/vps/bandwidth.js +91 -0
  313. package/dist/commands/vps/bandwidth.js.map +1 -0
  314. package/dist/commands/vps/boot-order.d.ts +10 -0
  315. package/dist/commands/vps/boot-order.js +51 -0
  316. package/dist/commands/vps/boot-order.js.map +1 -0
  317. package/dist/commands/vps/console.d.ts +15 -0
  318. package/dist/commands/vps/console.js +198 -0
  319. package/dist/commands/vps/console.js.map +1 -0
  320. package/dist/commands/vps/details.d.ts +15 -0
  321. package/dist/commands/vps/details.js +78 -0
  322. package/dist/commands/vps/details.js.map +1 -0
  323. package/dist/commands/vps/ip/add.d.ts +17 -0
  324. package/dist/commands/vps/ip/add.js +212 -0
  325. package/dist/commands/vps/ip/add.js.map +1 -0
  326. package/dist/commands/vps/ip/list.d.ts +9 -0
  327. package/dist/commands/vps/ip/list.js +102 -0
  328. package/dist/commands/vps/ip/list.js.map +1 -0
  329. package/dist/commands/vps/list.d.ts +12 -0
  330. package/dist/commands/vps/list.js +55 -0
  331. package/dist/commands/vps/list.js.map +1 -0
  332. package/dist/commands/vps/order.d.ts +30 -0
  333. package/dist/commands/vps/order.js +497 -0
  334. package/dist/commands/vps/order.js.map +1 -0
  335. package/dist/commands/vps/power.d.ts +15 -0
  336. package/dist/commands/vps/power.js +123 -0
  337. package/dist/commands/vps/power.js.map +1 -0
  338. package/dist/commands/vps/reinstall.d.ts +20 -0
  339. package/dist/commands/vps/reinstall.js +166 -0
  340. package/dist/commands/vps/reinstall.js.map +1 -0
  341. package/dist/commands/vps/resize.d.ts +22 -0
  342. package/dist/commands/vps/resize.js +205 -0
  343. package/dist/commands/vps/resize.js.map +1 -0
  344. package/dist/commands/vps/stats.d.ts +12 -0
  345. package/dist/commands/vps/stats.js +83 -0
  346. package/dist/commands/vps/stats.js.map +1 -0
  347. package/dist/commands/whoami.d.ts +9 -0
  348. package/dist/commands/whoami.js +70 -0
  349. package/dist/commands/whoami.js.map +1 -0
  350. package/dist/config/paths.d.ts +3 -0
  351. package/dist/config/paths.js +17 -0
  352. package/dist/config/paths.js.map +1 -0
  353. package/dist/config/store.d.ts +15 -0
  354. package/dist/config/store.js +38 -0
  355. package/dist/config/store.js.map +1 -0
  356. package/dist/help.d.ts +9 -0
  357. package/dist/help.js +119 -0
  358. package/dist/help.js.map +1 -0
  359. package/dist/tui/App.d.ts +9 -0
  360. package/dist/tui/App.js +93 -0
  361. package/dist/tui/App.js.map +1 -0
  362. package/dist/tui/components/ActionButton.d.ts +9 -0
  363. package/dist/tui/components/ActionButton.js +52 -0
  364. package/dist/tui/components/ActionButton.js.map +1 -0
  365. package/dist/tui/components/AppHeader.d.ts +6 -0
  366. package/dist/tui/components/AppHeader.js +18 -0
  367. package/dist/tui/components/AppHeader.js.map +1 -0
  368. package/dist/tui/components/BackButton.d.ts +6 -0
  369. package/dist/tui/components/BackButton.js +15 -0
  370. package/dist/tui/components/BackButton.js.map +1 -0
  371. package/dist/tui/components/CenteredFrame.d.ts +8 -0
  372. package/dist/tui/components/CenteredFrame.js +14 -0
  373. package/dist/tui/components/CenteredFrame.js.map +1 -0
  374. package/dist/tui/components/Clickable.d.ts +9 -0
  375. package/dist/tui/components/Clickable.js +48 -0
  376. package/dist/tui/components/Clickable.js.map +1 -0
  377. package/dist/tui/components/ConfirmModal.d.ts +8 -0
  378. package/dist/tui/components/ConfirmModal.js +22 -0
  379. package/dist/tui/components/ConfirmModal.js.map +1 -0
  380. package/dist/tui/components/DataTable.d.ts +14 -0
  381. package/dist/tui/components/DataTable.js +26 -0
  382. package/dist/tui/components/DataTable.js.map +1 -0
  383. package/dist/tui/components/InputBar.d.ts +9 -0
  384. package/dist/tui/components/InputBar.js +10 -0
  385. package/dist/tui/components/InputBar.js.map +1 -0
  386. package/dist/tui/components/Menu.d.ts +16 -0
  387. package/dist/tui/components/Menu.js +78 -0
  388. package/dist/tui/components/Menu.js.map +1 -0
  389. package/dist/tui/components/NumberInput.d.ts +13 -0
  390. package/dist/tui/components/NumberInput.js +55 -0
  391. package/dist/tui/components/NumberInput.js.map +1 -0
  392. package/dist/tui/components/Panel.d.ts +13 -0
  393. package/dist/tui/components/Panel.js +11 -0
  394. package/dist/tui/components/Panel.js.map +1 -0
  395. package/dist/tui/components/Sparkline.d.ts +11 -0
  396. package/dist/tui/components/Sparkline.js +40 -0
  397. package/dist/tui/components/Sparkline.js.map +1 -0
  398. package/dist/tui/components/Spinner.d.ts +4 -0
  399. package/dist/tui/components/Spinner.js +11 -0
  400. package/dist/tui/components/Spinner.js.map +1 -0
  401. package/dist/tui/components/StatusBar.d.ts +6 -0
  402. package/dist/tui/components/StatusBar.js +9 -0
  403. package/dist/tui/components/StatusBar.js.map +1 -0
  404. package/dist/tui/components/Tip.d.ts +4 -0
  405. package/dist/tui/components/Tip.js +11 -0
  406. package/dist/tui/components/Tip.js.map +1 -0
  407. package/dist/tui/hooks/useApi.d.ts +12 -0
  408. package/dist/tui/hooks/useApi.js +15 -0
  409. package/dist/tui/hooks/useApi.js.map +1 -0
  410. package/dist/tui/hooks/useHeader.d.ts +18 -0
  411. package/dist/tui/hooks/useHeader.js +65 -0
  412. package/dist/tui/hooks/useHeader.js.map +1 -0
  413. package/dist/tui/hooks/useMouse.d.ts +27 -0
  414. package/dist/tui/hooks/useMouse.js +174 -0
  415. package/dist/tui/hooks/useMouse.js.map +1 -0
  416. package/dist/tui/hooks/useStdinCapture.d.ts +1 -0
  417. package/dist/tui/hooks/useStdinCapture.js +37 -0
  418. package/dist/tui/hooks/useStdinCapture.js.map +1 -0
  419. package/dist/tui/index.d.ts +12 -0
  420. package/dist/tui/index.js +19 -0
  421. package/dist/tui/index.js.map +1 -0
  422. package/dist/tui/router.d.ts +10 -0
  423. package/dist/tui/router.js +9 -0
  424. package/dist/tui/router.js.map +1 -0
  425. package/dist/tui/screens/Account.d.ts +2 -0
  426. package/dist/tui/screens/Account.js +212 -0
  427. package/dist/tui/screens/Account.js.map +1 -0
  428. package/dist/tui/screens/Billing.d.ts +2 -0
  429. package/dist/tui/screens/Billing.js +586 -0
  430. package/dist/tui/screens/Billing.js.map +1 -0
  431. package/dist/tui/screens/Dashboard.d.ts +2 -0
  432. package/dist/tui/screens/Dashboard.js +150 -0
  433. package/dist/tui/screens/Dashboard.js.map +1 -0
  434. package/dist/tui/screens/Order.d.ts +2 -0
  435. package/dist/tui/screens/Order.js +1169 -0
  436. package/dist/tui/screens/Order.js.map +1 -0
  437. package/dist/tui/screens/Resources.d.ts +2 -0
  438. package/dist/tui/screens/Resources.js +720 -0
  439. package/dist/tui/screens/Resources.js.map +1 -0
  440. package/dist/tui/screens/Tickets.d.ts +2 -0
  441. package/dist/tui/screens/Tickets.js +395 -0
  442. package/dist/tui/screens/Tickets.js.map +1 -0
  443. package/dist/tui/theme/colors.d.ts +12 -0
  444. package/dist/tui/theme/colors.js +29 -0
  445. package/dist/tui/theme/colors.js.map +1 -0
  446. package/dist/tui/theme/glyphs.d.ts +5 -0
  447. package/dist/tui/theme/glyphs.js +6 -0
  448. package/dist/tui/theme/glyphs.js.map +1 -0
  449. package/dist/ui/confirm.d.ts +7 -0
  450. package/dist/ui/confirm.js +18 -0
  451. package/dist/ui/confirm.js.map +1 -0
  452. package/dist/ui/glyphs.d.ts +18 -0
  453. package/dist/ui/glyphs.js +47 -0
  454. package/dist/ui/glyphs.js.map +1 -0
  455. package/dist/ui/payment.d.ts +33 -0
  456. package/dist/ui/payment.js +179 -0
  457. package/dist/ui/payment.js.map +1 -0
  458. package/dist/ui/pm-resolve.d.ts +3 -0
  459. package/dist/ui/pm-resolve.js +19 -0
  460. package/dist/ui/pm-resolve.js.map +1 -0
  461. package/dist/ui/portal.d.ts +1 -0
  462. package/dist/ui/portal.js +19 -0
  463. package/dist/ui/portal.js.map +1 -0
  464. package/dist/ui/render-mode.d.ts +10 -0
  465. package/dist/ui/render-mode.js +30 -0
  466. package/dist/ui/render-mode.js.map +1 -0
  467. package/dist/ui/sparkline.d.ts +6 -0
  468. package/dist/ui/sparkline.js +30 -0
  469. package/dist/ui/sparkline.js.map +1 -0
  470. package/dist/ui/spinner.d.ts +1 -0
  471. package/dist/ui/spinner.js +19 -0
  472. package/dist/ui/spinner.js.map +1 -0
  473. package/dist/ui/stats.d.ts +22 -0
  474. package/dist/ui/stats.js +71 -0
  475. package/dist/ui/stats.js.map +1 -0
  476. package/dist/ui/stdin.d.ts +1 -0
  477. package/dist/ui/stdin.js +8 -0
  478. package/dist/ui/stdin.js.map +1 -0
  479. package/dist/ui/table.d.ts +2 -0
  480. package/dist/ui/table.js +48 -0
  481. package/dist/ui/table.js.map +1 -0
  482. package/dist/ui/ticket-resolve.d.ts +2 -0
  483. package/dist/ui/ticket-resolve.js +17 -0
  484. package/dist/ui/ticket-resolve.js.map +1 -0
  485. package/dist/ui/volume-resolve.d.ts +3 -0
  486. package/dist/ui/volume-resolve.js +30 -0
  487. package/dist/ui/volume-resolve.js.map +1 -0
  488. package/dist/ui/vps-detail.d.ts +3 -0
  489. package/dist/ui/vps-detail.js +79 -0
  490. package/dist/ui/vps-detail.js.map +1 -0
  491. package/dist/ui/vps-resolve.d.ts +4 -0
  492. package/dist/ui/vps-resolve.js +24 -0
  493. package/dist/ui/vps-resolve.js.map +1 -0
  494. package/dist/ui/wait.d.ts +31 -0
  495. package/dist/ui/wait.js +66 -0
  496. package/dist/ui/wait.js.map +1 -0
  497. package/dist/ui/wizard.d.ts +33 -0
  498. package/dist/ui/wizard.js +168 -0
  499. package/dist/ui/wizard.js.map +1 -0
  500. package/package.json +142 -0
@@ -0,0 +1,47 @@
1
+ function colorsEnabled() {
2
+ if (process.env.NO_COLOR)
3
+ return false;
4
+ if (process.env.FORCE_COLOR && process.env.FORCE_COLOR !== "0")
5
+ return true;
6
+ return Boolean(process.stdout.isTTY);
7
+ }
8
+ const SGR = (code, s) => colorsEnabled() ? `\x1b[${code}m${s}\x1b[0m` : s;
9
+ export const green = (s) => SGR("38;2;182;226;176", s);
10
+ export const red = (s) => SGR("38;2;255;180;171", s);
11
+ export const yellow = (s) => SGR("38;2;246;176;126", s);
12
+ export const cyan = (s) => SGR("36", s);
13
+ export const dim = (s) => SGR("2", s);
14
+ export const bold = (s) => SGR("1", s);
15
+ const unicodeOK = process.env.LANG?.toLowerCase().includes("utf") ||
16
+ process.env.LC_ALL?.toLowerCase().includes("utf") ||
17
+ process.platform === "darwin";
18
+ export const G = {
19
+ check: unicodeOK ? "✓" : "v",
20
+ cross: unicodeOK ? "✗" : "x",
21
+ arrow: unicodeOK ? "→" : "->",
22
+ dot: unicodeOK ? "•" : "*",
23
+ bullet: unicodeOK ? "·" : "-",
24
+ hbar: unicodeOK ? "─" : "-",
25
+ };
26
+ export const ok = (msg) => `${green(G.check)} ${msg}`;
27
+ export const fail = (msg) => `${red(G.cross)} ${msg}`;
28
+ export const heading = (msg) => bold(msg);
29
+ export function statusColor(status) {
30
+ if (!status)
31
+ return "";
32
+ const s = String(status).toLowerCase();
33
+ if (/(running|active|healthy|attached|complete|paid|^ok$|in_stock)/.test(s)) {
34
+ return green(status);
35
+ }
36
+ if (/(pending|provisioning|shutdown|suspend|awaiting|in_progress|in progress|queued|draft|installing|resizing|booting)/.test(s)) {
37
+ return yellow(status);
38
+ }
39
+ if (/(error|failed|cancel|void|denied|expired|unauthorized|refund|out of stock|out_of_stock)/.test(s)) {
40
+ return red(status);
41
+ }
42
+ if (/(inactive|detached|archived|deleted|unknown)/.test(s)) {
43
+ return dim(status);
44
+ }
45
+ return status;
46
+ }
47
+ //# sourceMappingURL=glyphs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../src/ui/glyphs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { ApiClient } from "../api/client.js";
2
+ import type { ConfigStore } from "../config/store.js";
3
+ import type { TokenStore } from "../auth/tokens.js";
4
+ import type { PaymentMethod } from "../api/types.js";
5
+ export type PaymentFlow = "vps_order" | "storage_order" | "credits_topup" | "invoice_pay" | "vps_addon";
6
+ export declare class PaymentPickerError extends Error {
7
+ constructor(message: string);
8
+ }
9
+ export interface PickPaymentInput {
10
+ api: ApiClient;
11
+ tokens: TokenStore;
12
+ config: ConfigStore;
13
+ flow: PaymentFlow;
14
+ estimatedCost?: number;
15
+ prefill?: {
16
+ paymentMethodId?: string;
17
+ bitpay?: boolean;
18
+ applyCredits?: boolean;
19
+ };
20
+ noInteractive?: boolean;
21
+ log?: (msg: string) => void;
22
+ }
23
+ export interface PickPaymentResult {
24
+ payment_method_id?: string;
25
+ payment_kind: "method" | "bitpay";
26
+ apply_credits: boolean;
27
+ summary: string;
28
+ picked_method?: PaymentMethod;
29
+ credit_balance: number;
30
+ balance_currency: string;
31
+ methods: PaymentMethod[];
32
+ }
33
+ export declare function pickPayment(opts: PickPaymentInput): Promise<PickPaymentResult>;
@@ -0,0 +1,179 @@
1
+ import { confirmAction, describePaymentMethod, pickFromCatalog, readBalance, } from "./wizard.js";
2
+ export class PaymentPickerError extends Error {
3
+ constructor(message) {
4
+ super(message);
5
+ this.name = "PaymentPickerError";
6
+ }
7
+ }
8
+ export async function pickPayment(opts) {
9
+ const log = opts.log ?? (() => { });
10
+ const prefill = opts.prefill ?? {};
11
+ const estimatedCost = opts.estimatedCost ?? 0;
12
+ const [allMethods, balance] = await Promise.all([
13
+ opts.api.payments.methods().catch(() => []),
14
+ opts.api.billing.balance().catch(() => ({})),
15
+ ]);
16
+ const creditBalance = readBalance(balance.credit);
17
+ const balanceCurrency = balance.currency ?? "";
18
+ const methods = opts.flow === "invoice_pay" ? allMethods : allMethods.filter((m) => !isAch(m));
19
+ if (prefill.bitpay) {
20
+ const applyCredits = false;
21
+ if (prefill.applyCredits) {
22
+ log("Note: crypto payment doesn't combine with credits — skipping credits.");
23
+ }
24
+ return {
25
+ payment_method_id: undefined,
26
+ payment_kind: "bitpay",
27
+ apply_credits: applyCredits,
28
+ summary: formatSummary({
29
+ applyCredits,
30
+ creditBalance,
31
+ balanceCurrency,
32
+ paymentKind: "bitpay",
33
+ method: undefined,
34
+ }),
35
+ credit_balance: creditBalance,
36
+ balance_currency: balanceCurrency,
37
+ methods,
38
+ };
39
+ }
40
+ if (prefill.paymentMethodId) {
41
+ const chosen = allMethods.find((m) => m.id === prefill.paymentMethodId);
42
+ if (!chosen) {
43
+ throw new PaymentPickerError(`Payment method ${prefill.paymentMethodId} not found on this team. ` +
44
+ "Run `synteq payments methods list`.");
45
+ }
46
+ if (opts.flow !== "invoice_pay" && isAch(chosen)) {
47
+ throw new PaymentPickerError("Stripe ACH (us_bank_account) can't be used for instant charges. " +
48
+ "Pick a card or BitPay instead — ACH only works for paying an existing invoice.");
49
+ }
50
+ return finalizePickedMethod({
51
+ chosen,
52
+ applyCreditsRequested: Boolean(prefill.applyCredits),
53
+ creditBalance,
54
+ balanceCurrency,
55
+ methods,
56
+ log,
57
+ });
58
+ }
59
+ if (prefill.applyCredits) {
60
+ const coversCost = estimatedCost > 0 && creditBalance >= estimatedCost;
61
+ if (coversCost || methods.length === 0) {
62
+ return {
63
+ payment_method_id: undefined,
64
+ payment_kind: "method",
65
+ apply_credits: true,
66
+ summary: formatSummary({
67
+ applyCredits: true,
68
+ creditBalance,
69
+ balanceCurrency,
70
+ paymentKind: "method",
71
+ method: undefined,
72
+ }),
73
+ credit_balance: creditBalance,
74
+ balance_currency: balanceCurrency,
75
+ methods,
76
+ };
77
+ }
78
+ }
79
+ if (opts.noInteractive) {
80
+ throw new PaymentPickerError("Provide --payment-method, --bitpay, or --apply-credits.");
81
+ }
82
+ let applyCredits = Boolean(prefill.applyCredits);
83
+ if (opts.flow !== "credits_topup" && !applyCredits && creditBalance > 0) {
84
+ applyCredits = await confirmAction(`Apply your credit balance ($${creditBalance.toFixed(2)}${balanceCurrency ? ` ${balanceCurrency}` : ""})?`, true);
85
+ }
86
+ const creditsCover = applyCredits && estimatedCost > 0 && creditBalance >= estimatedCost;
87
+ if (creditsCover) {
88
+ return {
89
+ payment_method_id: undefined,
90
+ payment_kind: "method",
91
+ apply_credits: true,
92
+ summary: formatSummary({
93
+ applyCredits: true,
94
+ creditBalance,
95
+ balanceCurrency,
96
+ paymentKind: "method",
97
+ method: undefined,
98
+ }),
99
+ credit_balance: creditBalance,
100
+ balance_currency: balanceCurrency,
101
+ methods,
102
+ };
103
+ }
104
+ if (methods.length === 0) {
105
+ if (applyCredits) {
106
+ return {
107
+ payment_method_id: undefined,
108
+ payment_kind: "method",
109
+ apply_credits: true,
110
+ summary: formatSummary({
111
+ applyCredits: true,
112
+ creditBalance,
113
+ balanceCurrency,
114
+ paymentKind: "method",
115
+ method: undefined,
116
+ }),
117
+ credit_balance: creditBalance,
118
+ balance_currency: balanceCurrency,
119
+ methods,
120
+ };
121
+ }
122
+ throw new PaymentPickerError("No saved payment methods. Run `synteq payments methods add` first.");
123
+ }
124
+ const paymentMethodId = await pickFromCatalog("Pick a payment method", methods.map((m) => ({
125
+ value: m.id,
126
+ name: describePaymentMethod(m),
127
+ })), { defaultValue: methods.find((m) => m.is_default)?.id });
128
+ const chosen = methods.find((m) => m.id === paymentMethodId);
129
+ return finalizePickedMethod({
130
+ chosen,
131
+ applyCreditsRequested: applyCredits,
132
+ creditBalance,
133
+ balanceCurrency,
134
+ methods,
135
+ log,
136
+ });
137
+ }
138
+ function finalizePickedMethod(args) {
139
+ const isBitpay = args.chosen.provider === "bitpay";
140
+ let applyCredits = args.applyCreditsRequested;
141
+ if (isBitpay && applyCredits) {
142
+ args.log("Note: crypto payment doesn't combine with credits — skipping credits.");
143
+ applyCredits = false;
144
+ }
145
+ const paymentKind = isBitpay ? "bitpay" : "method";
146
+ return {
147
+ payment_method_id: args.chosen.id,
148
+ payment_kind: paymentKind,
149
+ apply_credits: applyCredits,
150
+ summary: formatSummary({
151
+ applyCredits,
152
+ creditBalance: args.creditBalance,
153
+ balanceCurrency: args.balanceCurrency,
154
+ paymentKind,
155
+ method: args.chosen,
156
+ }),
157
+ picked_method: args.chosen,
158
+ credit_balance: args.creditBalance,
159
+ balance_currency: args.balanceCurrency,
160
+ methods: args.methods,
161
+ };
162
+ }
163
+ function isAch(m) {
164
+ return m.provider === "stripe" && m.card_brand === "us_bank_account";
165
+ }
166
+ function formatSummary(args) {
167
+ const parts = [];
168
+ if (args.applyCredits) {
169
+ parts.push(`credits ($${args.creditBalance.toFixed(2)}${args.balanceCurrency ? ` ${args.balanceCurrency}` : ""})`);
170
+ }
171
+ if (args.method) {
172
+ parts.push(describePaymentMethod(args.method));
173
+ }
174
+ else if (args.paymentKind === "bitpay") {
175
+ parts.push("BitPay (crypto)");
176
+ }
177
+ return parts.length ? parts.join(" + ") : "(none selected)";
178
+ }
179
+ //# sourceMappingURL=payment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/ui/payment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ApiClient } from "../api/client.js";
2
+ import type { PaymentMethod } from "../api/types.js";
3
+ export declare function resolvePaymentMethod(api: ApiClient, raw: string): Promise<PaymentMethod>;
@@ -0,0 +1,19 @@
1
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
2
+ export async function resolvePaymentMethod(api, raw) {
3
+ const arg = raw.trim().toLowerCase();
4
+ const methods = await api.payments.methods();
5
+ if (UUID_RE.test(arg)) {
6
+ const exact = methods.find((m) => m.id.toLowerCase() === arg);
7
+ if (exact)
8
+ return exact;
9
+ throw new Error(`No payment method with id "${raw}". Run \`synteq payments methods list\`.`);
10
+ }
11
+ const hits = methods.filter((m) => m.id.toLowerCase().startsWith(arg));
12
+ if (hits.length === 1)
13
+ return hits[0];
14
+ if (hits.length === 0) {
15
+ throw new Error(`No payment method matches "${raw}". Run \`synteq payments methods list\` to see the ids.`);
16
+ }
17
+ throw new Error(`"${raw}" is ambiguous — matches ${hits.length} methods. Use a longer id (see \`synteq payments methods list\`).`);
18
+ }
19
+ //# sourceMappingURL=pm-resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pm-resolve.js","sourceRoot":"","sources":["../../src/ui/pm-resolve.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GACX,iEAAiE,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAc,EACd,GAAW;IAEX,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAE7C,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,GAAG,CAAC,CAAC;QAC9D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,8BAA8B,GAAG,0CAA0C,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,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,8BAA8B,GAAG,yDAAyD,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CACb,IAAI,GAAG,4BAA4B,IAAI,CAAC,MAAM,mEAAmE,CAClH,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function portalUrl(apiBaseUrl: string, path?: string): string;
@@ -0,0 +1,19 @@
1
+ export function portalUrl(apiBaseUrl, path = "/") {
2
+ let origin;
3
+ try {
4
+ const u = new URL(apiBaseUrl);
5
+ if (u.port === "8000" && (u.hostname === "localhost" || u.hostname === "127.0.0.1")) {
6
+ u.port = "3000";
7
+ }
8
+ u.pathname = path.startsWith("/") ? path : `/${path}`;
9
+ u.search = "";
10
+ u.hash = "";
11
+ origin = u.toString();
12
+ }
13
+ catch {
14
+ const base = apiBaseUrl.replace(/\/+$/, "");
15
+ origin = `${base}${path.startsWith("/") ? path : `/${path}`}`;
16
+ }
17
+ return origin;
18
+ }
19
+ //# sourceMappingURL=portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../src/ui/portal.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,UAAkB,EAAE,IAAI,GAAG,GAAG;IACtD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,EAAE,CAAC;YACpF,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;QAClB,CAAC;QACD,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACtD,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;QACd,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACZ,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { TuiMode } from "../config/store.js";
2
+ export type RenderMode = "on" | "off";
3
+ export declare function setRenderMode(opts: {
4
+ persisted: TuiMode;
5
+ envOverride?: string;
6
+ noColor?: boolean;
7
+ isTty?: boolean;
8
+ }): RenderMode;
9
+ export declare function getRenderMode(): RenderMode;
10
+ export declare const isTui: () => boolean;
@@ -0,0 +1,30 @@
1
+ let current = "off";
2
+ export function setRenderMode(opts) {
3
+ if (opts.noColor) {
4
+ current = "off";
5
+ return current;
6
+ }
7
+ if (opts.envOverride === "1" || opts.envOverride === "true") {
8
+ current = "on";
9
+ return current;
10
+ }
11
+ if (opts.envOverride === "0" || opts.envOverride === "false") {
12
+ current = "off";
13
+ return current;
14
+ }
15
+ if (opts.persisted === "on") {
16
+ current = "on";
17
+ return current;
18
+ }
19
+ if (opts.persisted === "off") {
20
+ current = "off";
21
+ return current;
22
+ }
23
+ current = opts.isTty ? "on" : "off";
24
+ return current;
25
+ }
26
+ export function getRenderMode() {
27
+ return current;
28
+ }
29
+ export const isTui = () => current === "on";
30
+ //# sourceMappingURL=render-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-mode.js","sourceRoot":"","sources":["../../src/ui/render-mode.ts"],"names":[],"mappings":"AAIA,IAAI,OAAO,GAAe,KAAK,CAAC;AAEhC,MAAM,UAAU,aAAa,CAAC,IAK7B;IACC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,GAAG,KAAK,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC5D,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;QAC7D,OAAO,GAAG,KAAK,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,GAAG,KAAK,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,GAAY,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface SparklineOptions {
2
+ width?: number;
3
+ min?: number;
4
+ max?: number;
5
+ }
6
+ export declare function sparkline(data: ReadonlyArray<number | null | undefined>, opts?: SparklineOptions): string;
@@ -0,0 +1,30 @@
1
+ const BLOCKS = ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"];
2
+ export function sparkline(data, opts = {}) {
3
+ const width = opts.width ?? 20;
4
+ const numbers = data
5
+ .map((d) => (typeof d === "number" && Number.isFinite(d) ? d : null))
6
+ .filter((d) => d !== null);
7
+ if (numbers.length === 0)
8
+ return "";
9
+ const bucketed = [];
10
+ for (let i = 0; i < width; i++) {
11
+ const lo = Math.floor((i * numbers.length) / width);
12
+ const hi = Math.max(lo + 1, Math.floor(((i + 1) * numbers.length) / width));
13
+ let m = numbers[lo];
14
+ for (let j = lo + 1; j < hi; j++)
15
+ m = Math.max(m, numbers[j]);
16
+ bucketed.push(m);
17
+ }
18
+ const lo = opts.min ?? Math.min(...bucketed);
19
+ const hi = opts.max ?? Math.max(...bucketed);
20
+ const range = hi - lo;
21
+ return bucketed
22
+ .map((v) => {
23
+ if (range <= 0)
24
+ return BLOCKS[0];
25
+ const idx = Math.round(((v - lo) / range) * (BLOCKS.length - 1));
26
+ return BLOCKS[Math.max(0, Math.min(BLOCKS.length - 1, idx))];
27
+ })
28
+ .join("");
29
+ }
30
+ //# sourceMappingURL=sparkline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparkline.js","sourceRoot":"","sources":["../../src/ui/sparkline.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAQxD,MAAM,UAAU,SAAS,CACvB,IAA8C,EAC9C,OAAyB,EAAE;IAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACpE,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAE1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;IAEtB,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function withSpinner<T>(label: string, fn: () => Promise<T>): Promise<T>;
@@ -0,0 +1,19 @@
1
+ import * as clack from "@clack/prompts";
2
+ import { isTui } from "./render-mode.js";
3
+ export async function withSpinner(label, fn) {
4
+ if (!isTui()) {
5
+ return fn();
6
+ }
7
+ const s = clack.spinner();
8
+ s.start(label);
9
+ try {
10
+ const result = await fn();
11
+ s.stop(label);
12
+ return result;
13
+ }
14
+ catch (err) {
15
+ s.error(label);
16
+ throw err;
17
+ }
18
+ }
19
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +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"}
@@ -0,0 +1,22 @@
1
+ export interface RrdPoint {
2
+ time?: number;
3
+ cpu?: number | null;
4
+ mem?: number | null;
5
+ maxmem?: number | null;
6
+ disk?: number | null;
7
+ maxdisk?: number | null;
8
+ netin?: number | null;
9
+ netout?: number | null;
10
+ status?: string | null;
11
+ uptime?: number | null;
12
+ [k: string]: unknown;
13
+ }
14
+ export type StatsPayload = RrdPoint | RrdPoint[] | null | undefined;
15
+ export declare function numOrNull(v: unknown): number | null;
16
+ export declare function pickLatestPoint(raw: StatsPayload): RrdPoint | null;
17
+ export declare function asPoints(raw: StatsPayload): RrdPoint[];
18
+ export declare function formatBytes(n: number | null | undefined): string;
19
+ export declare function formatRate(n: number | null | undefined): string;
20
+ export declare function formatUptime(sec: number | null | undefined): string;
21
+ export declare function formatCpu(cpu: number | null | undefined): string;
22
+ export declare function formatUsagePair(used: number | null | undefined, total: number | null | undefined): string;
@@ -0,0 +1,71 @@
1
+ export function numOrNull(v) {
2
+ return typeof v === "number" && Number.isFinite(v) ? v : null;
3
+ }
4
+ export function pickLatestPoint(raw) {
5
+ if (!raw)
6
+ return null;
7
+ if (Array.isArray(raw)) {
8
+ for (let i = raw.length - 1; i >= 0; i--) {
9
+ const p = raw[i];
10
+ if (p && typeof p === "object" && p.cpu !== undefined && p.cpu !== null) {
11
+ return p;
12
+ }
13
+ }
14
+ return raw[raw.length - 1] ?? null;
15
+ }
16
+ return raw;
17
+ }
18
+ export function asPoints(raw) {
19
+ if (!raw)
20
+ return [];
21
+ return Array.isArray(raw) ? raw : [raw];
22
+ }
23
+ export function formatBytes(n) {
24
+ if (n === null || n === undefined || !Number.isFinite(n))
25
+ return "—";
26
+ const units = ["B", "KB", "MB", "GB", "TB", "PB"];
27
+ let i = 0;
28
+ let x = n;
29
+ while (x >= 1024 && i < units.length - 1) {
30
+ x /= 1024;
31
+ i++;
32
+ }
33
+ return `${x.toFixed(x >= 10 || i === 0 ? 0 : 1)} ${units[i]}`;
34
+ }
35
+ export function formatRate(n) {
36
+ if (n === null || n === undefined || !Number.isFinite(n))
37
+ return "—";
38
+ return `${formatBytes(n)}/s`;
39
+ }
40
+ export function formatUptime(sec) {
41
+ if (sec === null || sec === undefined || !Number.isFinite(sec) || sec < 0) {
42
+ return "—";
43
+ }
44
+ const s = Math.floor(sec);
45
+ const d = Math.floor(s / 86400);
46
+ const h = Math.floor((s % 86400) / 3600);
47
+ const m = Math.floor((s % 3600) / 60);
48
+ const ss = s % 60;
49
+ if (d > 0)
50
+ return `${d}d ${h}h ${m}m`;
51
+ if (h > 0)
52
+ return `${h}h ${m}m`;
53
+ if (m > 0)
54
+ return `${m}m ${String(ss).padStart(2, "0")}s`;
55
+ return `${ss}s`;
56
+ }
57
+ export function formatCpu(cpu) {
58
+ const n = numOrNull(cpu);
59
+ if (n === null)
60
+ return "—";
61
+ return `${(n * 100).toFixed(1)}%`;
62
+ }
63
+ export function formatUsagePair(used, total) {
64
+ const u = numOrNull(used);
65
+ const t = numOrNull(total);
66
+ if (u === null && t === null)
67
+ return "—";
68
+ const pct = u !== null && t && t > 0 ? ` (${((u / t) * 100).toFixed(0)}%)` : "";
69
+ return `${formatBytes(u)} / ${formatBytes(t)}${pct}`;
70
+ }
71
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/ui/stats.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,SAAS,CAAC,CAAU;IAClC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAiB;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxE,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAiB;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAA4B;IACtD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,CAAC,IAAI,IAAI,CAAC;QACV,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAA4B;IACrD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACrE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAA8B;IACzD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1E,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;IAC1D,OAAO,GAAG,EAAE,GAAG,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAA8B;IACtD,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAC3B,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAA+B,EAC/B,KAAgC;IAEhC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IACzC,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function readStdin(): Promise<string>;
@@ -0,0 +1,8 @@
1
+ export async function readStdin() {
2
+ const chunks = [];
3
+ for await (const chunk of process.stdin) {
4
+ chunks.push(chunk);
5
+ }
6
+ return Buffer.concat(chunks).toString("utf8");
7
+ }
8
+ //# sourceMappingURL=stdin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.js","sourceRoot":"","sources":["../../src/ui/stdin.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function renderTable(headers: string[], rows: string[][]): string;
2
+ export declare function shortId(id: string): string;
@@ -0,0 +1,48 @@
1
+ import { dim } from "./glyphs.js";
2
+ import { isTui } from "./render-mode.js";
3
+ function sanitize(cell) {
4
+ if (cell == null)
5
+ return "";
6
+ return String(cell)
7
+ .replace(/\t/g, " ")
8
+ .replace(/[\r\n\b\f\v\x00-\x08\x0e-\x1a\x1c-\x1f\x7f]/g, "");
9
+ }
10
+ function visibleWidth(s) {
11
+ return s.replace(/\x1b\[[0-9;]*m/g, "").length;
12
+ }
13
+ function padVisible(s, width) {
14
+ const w = visibleWidth(s);
15
+ return w >= width ? s : s + " ".repeat(width - w);
16
+ }
17
+ function sentenceCase(h) {
18
+ return h
19
+ .toLowerCase()
20
+ .split(/(\s+|-)/)
21
+ .map((part) => (part.match(/^[a-z]/) ? part[0].toUpperCase() + part.slice(1) : part))
22
+ .join("");
23
+ }
24
+ export function renderTable(headers, rows) {
25
+ const safe = rows.map((r) => r.map(sanitize));
26
+ const formattedHeaders = headers.map(sentenceCase);
27
+ const widths = formattedHeaders.map((h, i) => Math.max(visibleWidth(h), ...safe.map((r) => visibleWidth(r[i] ?? ""))));
28
+ if (!isTui()) {
29
+ const pad = (cells) => cells.map((c, i) => padVisible(c ?? "", widths[i])).join(" ").trimEnd();
30
+ return [dim(pad(formattedHeaders)), ...safe.map(pad)].join("\n");
31
+ }
32
+ const sep = dim(" │ ");
33
+ const padCell = (c, i) => padVisible(c ?? "", widths[i]);
34
+ const row = (cells) => dim("│ ") + cells.map(padCell).join(sep) + dim(" │");
35
+ const inner = widths.reduce((a, b) => a + b, 0) + (widths.length - 1) * 3;
36
+ const rule = dim("─".repeat(inner + 2));
37
+ return [
38
+ dim("╭") + rule + dim("╮"),
39
+ row(formattedHeaders),
40
+ dim("├") + rule + dim("┤"),
41
+ ...safe.map(row),
42
+ dim("╰") + rule + dim("╯"),
43
+ ].join("\n");
44
+ }
45
+ export function shortId(id) {
46
+ return id.slice(0, 8);
47
+ }
48
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/ui/table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ApiClient } from "../api/client.js";
2
+ export declare function resolveTicketId(api: ApiClient, raw: string): Promise<string>;