@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,2 @@
1
+ import React from "react";
2
+ export declare function Billing(): React.ReactElement;
@@ -0,0 +1,586 @@
1
+ import React, { useCallback, useEffect, useMemo, useState } from "react";
2
+ import { Box, Text, useInput } from "ink";
3
+ import TextInput from "ink-text-input";
4
+ import open from "open";
5
+ import { Panel } from "../components/Panel.js";
6
+ import { Menu } from "../components/Menu.js";
7
+ import { StatusBar } from "../components/StatusBar.js";
8
+ import { Tip } from "../components/Tip.js";
9
+ import { Spinner } from "../components/Spinner.js";
10
+ import { DataTable } from "../components/DataTable.js";
11
+ import { useApi, useAppContext } from "../hooks/useApi.js";
12
+ import { useHeader } from "../hooks/useHeader.js";
13
+ import { useRouter } from "../router.js";
14
+ import { colors, statusColor } from "../theme/colors.js";
15
+ import { glyphs } from "../theme/glyphs.js";
16
+ import { portalUrl } from "../../ui/portal.js";
17
+ import { CenteredFrame } from "../components/CenteredFrame.js";
18
+ import { ActionButton } from "../components/ActionButton.js";
19
+ import { BackButton } from "../components/BackButton.js";
20
+ import { Clickable } from "../components/Clickable.js";
21
+ import { useMousePause } from "../hooks/useMouse.js";
22
+ const TABS = [
23
+ { id: "credits", label: "Credits", key: "1" },
24
+ { id: "methods", label: "Payment methods", key: "2" },
25
+ { id: "invoices", label: "Invoices", key: "3" },
26
+ ];
27
+ const initial = () => ({
28
+ loading: true,
29
+ error: null,
30
+ data: null,
31
+ });
32
+ export function Billing() {
33
+ const api = useApi();
34
+ const { header, refresh: refreshHeader } = useHeader();
35
+ const { goBack } = useRouter();
36
+ const [tab, setTab] = useState("credits");
37
+ const [credits, setCredits] = useState(initial);
38
+ const [methods, setMethods] = useState(initial);
39
+ const [invoices, setInvoices] = useState(initial);
40
+ const [balance, setBalance] = useState(null);
41
+ const { config } = useAppContext();
42
+ const [addingCredits, setAddingCredits] = useState(null);
43
+ const openAddMethod = useCallback(async () => {
44
+ const url = portalUrl(config.get().api_base_url, "/organization/billing/payment-methods");
45
+ try {
46
+ await open(url);
47
+ }
48
+ catch { }
49
+ }, [config]);
50
+ const loadCredits = useCallback(async () => {
51
+ setCredits((s) => ({ ...s, loading: true, error: null }));
52
+ try {
53
+ const data = await api.billing.credits();
54
+ setCredits({ loading: false, error: null, data });
55
+ }
56
+ catch (e) {
57
+ setCredits({
58
+ loading: false,
59
+ error: e instanceof Error ? e.message : String(e),
60
+ data: null,
61
+ });
62
+ }
63
+ }, [api]);
64
+ const loadMethods = useCallback(async () => {
65
+ setMethods((s) => ({ ...s, loading: true, error: null }));
66
+ try {
67
+ const data = await api.payments.methods();
68
+ setMethods({ loading: false, error: null, data });
69
+ }
70
+ catch (e) {
71
+ setMethods({
72
+ loading: false,
73
+ error: e instanceof Error ? e.message : String(e),
74
+ data: null,
75
+ });
76
+ }
77
+ }, [api]);
78
+ const loadInvoices = useCallback(async () => {
79
+ setInvoices((s) => ({ ...s, loading: true, error: null }));
80
+ try {
81
+ const data = await api.request("GET", "/billing/invoices");
82
+ const rows = Array.isArray(data) ? data : (data?.items ?? []);
83
+ setInvoices({ loading: false, error: null, data: rows });
84
+ }
85
+ catch (e) {
86
+ setInvoices({
87
+ loading: false,
88
+ error: e instanceof Error ? e.message : String(e),
89
+ data: null,
90
+ });
91
+ }
92
+ }, [api]);
93
+ const loadBalance = useCallback(async () => {
94
+ try {
95
+ const data = await api.billing.balance();
96
+ setBalance(data);
97
+ }
98
+ catch { }
99
+ }, [api]);
100
+ useEffect(() => {
101
+ loadBalance();
102
+ loadCredits();
103
+ }, [loadBalance, loadCredits]);
104
+ const methodsUntouched = methods.data === null && methods.error === null;
105
+ const invoicesUntouched = invoices.data === null && invoices.error === null;
106
+ useEffect(() => {
107
+ if (tab === "methods" && methodsUntouched) {
108
+ loadMethods();
109
+ }
110
+ else if (tab === "invoices" && invoicesUntouched) {
111
+ loadInvoices();
112
+ }
113
+ }, [tab, methodsUntouched, invoicesUntouched, loadMethods, loadInvoices]);
114
+ const subFormActive = addingCredits !== null;
115
+ useInput((input, key) => {
116
+ if (subFormActive)
117
+ return;
118
+ if (key.escape) {
119
+ goBack();
120
+ return;
121
+ }
122
+ if (input === "1")
123
+ setTab("credits");
124
+ else if (input === "2")
125
+ setTab("methods");
126
+ else if (input === "3")
127
+ setTab("invoices");
128
+ else if (key.leftArrow) {
129
+ const i = TABS.findIndex((t) => t.id === tab);
130
+ if (i > 0)
131
+ setTab(TABS[i - 1].id);
132
+ }
133
+ else if (key.rightArrow) {
134
+ const i = TABS.findIndex((t) => t.id === tab);
135
+ if (i < TABS.length - 1)
136
+ setTab(TABS[i + 1].id);
137
+ }
138
+ else if (input === "r") {
139
+ if (tab === "credits")
140
+ loadCredits();
141
+ else if (tab === "methods")
142
+ loadMethods();
143
+ else if (tab === "invoices")
144
+ loadInvoices();
145
+ loadBalance();
146
+ refreshHeader();
147
+ }
148
+ else if (input === "a") {
149
+ if (tab === "credits") {
150
+ setAddingCredits({
151
+ step: "amount",
152
+ amount: "",
153
+ paymentMethodId: null,
154
+ submitting: false,
155
+ error: null,
156
+ result: null,
157
+ });
158
+ }
159
+ else if (tab === "methods") {
160
+ void openAddMethod().then(() => loadMethods());
161
+ }
162
+ }
163
+ }, { isActive: !subFormActive });
164
+ return (React.createElement(CenteredFrame, { fullHeight: true, maxWidth: 120 },
165
+ React.createElement(Box, { paddingX: 1, paddingY: 0 },
166
+ React.createElement(BackButton, null),
167
+ React.createElement(Text, { color: colors.dim }, " · "),
168
+ React.createElement(Text, { bold: true, color: colors.text }, "Billing")),
169
+ React.createElement(Box, { paddingX: 2, marginTop: 1 },
170
+ React.createElement(Panel, { paddingX: 2, paddingY: 0, width: 70 },
171
+ React.createElement(Box, null,
172
+ React.createElement(Box, { flexDirection: "column", marginRight: 6 },
173
+ React.createElement(Text, { color: colors.dim }, "Credit balance"),
174
+ React.createElement(Text, { color: colors.accent }, header.balance ?? formatMoney(balance?.credit, balance?.currency) ?? "$0.00")),
175
+ React.createElement(Box, { flexDirection: "column" },
176
+ React.createElement(Text, { color: colors.dim }, "Outstanding"),
177
+ React.createElement(Text, { color: hasOutstanding(balance) ? colors.error : colors.text }, formatMoney(balance?.outstanding, balance?.currency) ?? "$0.00"))))),
178
+ React.createElement(Box, { paddingX: 1, marginTop: 1 }, TABS.map((t) => {
179
+ const active = t.id === tab;
180
+ return (React.createElement(Box, { key: t.id, marginRight: 3, flexDirection: "column" },
181
+ React.createElement(ClickableTabLabel, { label: `${t.key}. ${t.label}`, underline: active
182
+ ? "─".repeat(t.label.length + 3)
183
+ : " ".repeat(t.label.length + 3), active: active, onPick: () => setTab(t.id) })));
184
+ })),
185
+ React.createElement(Box, { flexGrow: 1, flexDirection: "column", paddingX: 2, marginTop: 1 },
186
+ tab === "credits" &&
187
+ (addingCredits ? (React.createElement(AddCreditsForm, { state: addingCredits, setState: setAddingCredits, onClose: (refresh) => {
188
+ setAddingCredits(null);
189
+ if (refresh) {
190
+ loadCredits();
191
+ loadBalance();
192
+ refreshHeader();
193
+ }
194
+ } })) : (React.createElement(CreditsTab, { state: credits, active: !subFormActive, onAdd: () => setAddingCredits({
195
+ step: "amount",
196
+ amount: "",
197
+ paymentMethodId: null,
198
+ submitting: false,
199
+ error: null,
200
+ result: null,
201
+ }), onRefresh: () => {
202
+ loadCredits();
203
+ loadBalance();
204
+ refreshHeader();
205
+ } }))),
206
+ tab === "methods" && (React.createElement(MethodsTab, { state: methods, active: !subFormActive, onAdd: openAddMethod, onRefresh: loadMethods })),
207
+ tab === "invoices" && (React.createElement(InvoicesTab, { state: invoices, active: !subFormActive }))),
208
+ React.createElement(Box, { flexDirection: "column" },
209
+ React.createElement(Tip, null, addingCredits
210
+ ? "Enter to confirm · Esc to cancel"
211
+ : "1/2/3 or ←/→ to switch tabs · a to add · r to refresh · Esc back"),
212
+ React.createElement(StatusBar, { right: [
213
+ header.teamName ? `Team: ${header.teamName}` : "",
214
+ header.projectName ? `Project: ${header.projectName}` : "",
215
+ header.balance ?? "",
216
+ header.userEmail ?? "",
217
+ ].filter(Boolean) }))));
218
+ }
219
+ function useVisibleRows() {
220
+ const [rows, setRows] = useState(() => Math.max(5, (process.stdout.rows ?? 24) - 18));
221
+ useEffect(() => {
222
+ const onResize = () => {
223
+ setRows(Math.max(5, (process.stdout.rows ?? 24) - 18));
224
+ };
225
+ process.stdout.on("resize", onResize);
226
+ return () => {
227
+ process.stdout.off("resize", onResize);
228
+ };
229
+ }, []);
230
+ return Math.min(15, rows);
231
+ }
232
+ function useScrollWindow(total, visible, active) {
233
+ const [offset, setOffset] = useState(0);
234
+ useEffect(() => {
235
+ setOffset((o) => Math.max(0, Math.min(o, Math.max(0, total - visible))));
236
+ }, [total, visible]);
237
+ const maxOffset = Math.max(0, total - visible);
238
+ const scrollUp = useCallback((n = 1) => setOffset((o) => Math.max(0, o - n)), []);
239
+ const scrollDown = useCallback((n = 1) => setOffset((o) => Math.min(maxOffset, o + n)), [maxOffset]);
240
+ useInput((input, key) => {
241
+ if (!active)
242
+ return;
243
+ if (key.upArrow || input === "k")
244
+ scrollUp(1);
245
+ else if (key.downArrow || input === "j")
246
+ scrollDown(1);
247
+ else if (key.pageUp)
248
+ scrollUp(visible);
249
+ else if (key.pageDown)
250
+ scrollDown(visible);
251
+ else if (input === "g" || (key.ctrl && input === "a"))
252
+ setOffset(0);
253
+ else if (input === "G" || (key.ctrl && input === "e"))
254
+ setOffset(maxOffset);
255
+ }, { isActive: active });
256
+ return {
257
+ start: offset,
258
+ end: Math.min(total, offset + visible),
259
+ scrollUp,
260
+ scrollDown,
261
+ };
262
+ }
263
+ function ScrollFooter({ start, end, total, }) {
264
+ if (end - start >= total)
265
+ return null;
266
+ return (React.createElement(Box, { marginTop: 1 },
267
+ React.createElement(Text, { color: colors.dim }, `Showing ${start + 1}-${end} of ${total} · ↑↓ scroll · PgUp/PgDn page`)));
268
+ }
269
+ function CreditsTab({ state, onAdd, onRefresh, active, }) {
270
+ const rows = state.data ?? [];
271
+ const visible = useVisibleRows();
272
+ const { start, end, scrollUp, scrollDown } = useScrollWindow(rows.length, visible, active);
273
+ const columns = useMemo(() => [
274
+ { header: "Number", width: 14, render: (r) => r.credit_number ?? shortId(r.id) },
275
+ { header: "Amount", width: 10, align: "right", render: (r) => `$${fmt(r.amount)}` },
276
+ { header: "Remaining", width: 10, align: "right", render: (r) => `$${fmt(r.remaining)}` },
277
+ { header: "Currency", width: 4, render: (r) => r.currency ?? "—" },
278
+ { header: "Created", width: 12, render: (r) => fmtDate(r.created_at) },
279
+ { header: "Description", width: 30, render: (r) => r.description ?? "—" },
280
+ ], []);
281
+ if (state.loading)
282
+ return React.createElement(CenteredSpinner, { label: "Loading credits\u2026" });
283
+ if (state.error)
284
+ return React.createElement(ErrorPanel, { message: state.error });
285
+ const slice = rows.slice(start, end);
286
+ return (React.createElement(Box, { flexDirection: "column" },
287
+ rows.length === 0 ? (React.createElement(EmptyState, { message: "No credits yet." })) : (React.createElement(Clickable, { onWheel: (d) => (d === "up" ? scrollUp(1) : scrollDown(1)) },
288
+ React.createElement(Box, { flexDirection: "column" },
289
+ React.createElement(DataTable, { columns: columns, rows: slice, rowKey: (r) => r.id, emptyMessage: "No credits yet." }),
290
+ React.createElement(ScrollFooter, { start: start, end: end, total: rows.length })))),
291
+ React.createElement(Box, { marginTop: 1 },
292
+ React.createElement(ActionButton, { keybind: "a", label: "Add credits", onPress: onAdd }),
293
+ React.createElement(Box, { marginLeft: 2 },
294
+ React.createElement(ActionButton, { keybind: "r", label: "Refresh", onPress: onRefresh })))));
295
+ }
296
+ function MethodsTab({ state, onAdd, onRefresh, active, }) {
297
+ const rows = state.data ?? [];
298
+ const visible = useVisibleRows();
299
+ const { start, end, scrollUp, scrollDown } = useScrollWindow(rows.length, visible, active);
300
+ const columns = useMemo(() => [
301
+ { header: "Provider", width: 10, render: (m) => m.provider },
302
+ { header: "Brand", width: 10, render: (m) => m.card_brand ?? "—" },
303
+ { header: "Last4", width: 8, render: (m) => (m.card_last4 ? `••${m.card_last4}` : "—") },
304
+ { header: "Nickname", width: 18, render: (m) => m.nickname ?? "—" },
305
+ {
306
+ header: "Default",
307
+ width: 8,
308
+ render: (m) => (React.createElement(Box, { width: "100%", justifyContent: "center" }, m.is_default ? (React.createElement(Text, { color: colors.success }, glyphs.check)) : (React.createElement(Text, { color: colors.dim }, "\u2014")))),
309
+ },
310
+ ], []);
311
+ if (state.loading)
312
+ return React.createElement(CenteredSpinner, { label: "Loading payment methods\u2026" });
313
+ if (state.error)
314
+ return React.createElement(ErrorPanel, { message: state.error });
315
+ const slice = rows.slice(start, end);
316
+ return (React.createElement(Box, { flexDirection: "column" },
317
+ rows.length === 0 ? (React.createElement(EmptyState, { message: "No payment methods yet." })) : (React.createElement(Clickable, { onWheel: (d) => (d === "up" ? scrollUp(1) : scrollDown(1)) },
318
+ React.createElement(Box, { flexDirection: "column" },
319
+ React.createElement(DataTable, { columns: columns, rows: slice, rowKey: (m) => m.id, emptyMessage: "No payment methods yet." }),
320
+ React.createElement(ScrollFooter, { start: start, end: end, total: rows.length })))),
321
+ React.createElement(Box, { marginTop: 1 },
322
+ React.createElement(ActionButton, { keybind: "a", label: "Add new method", hint: "(opens browser)", onPress: onAdd }),
323
+ React.createElement(Box, { marginLeft: 2 },
324
+ React.createElement(ActionButton, { keybind: "r", label: "Refresh", onPress: onRefresh })))));
325
+ }
326
+ function InvoicesTab({ state, active, }) {
327
+ const rows = state.data ?? [];
328
+ const visible = useVisibleRows();
329
+ const { start, end, scrollUp, scrollDown } = useScrollWindow(rows.length, visible, active);
330
+ const columns = useMemo(() => [
331
+ {
332
+ header: "Number",
333
+ width: 12,
334
+ render: (r) => r.InvoiceNumber ?? shortId(r.InvoiceID),
335
+ },
336
+ {
337
+ header: "Amount",
338
+ width: 12,
339
+ align: "right",
340
+ render: (r) => `$${fmt(r.Total ?? r.AmountDue)}`,
341
+ },
342
+ {
343
+ header: "Status",
344
+ width: 14,
345
+ render: (r) => {
346
+ const status = r.Status ?? "—";
347
+ return (React.createElement(Text, { color: statusColor(status) }, truncate(status, 14)));
348
+ },
349
+ },
350
+ { header: "Issued", width: 12, render: (r) => fmtDate(r.Date) },
351
+ { header: "Due", width: 12, render: (r) => fmtDate(r.DueDate) },
352
+ ], []);
353
+ if (state.loading)
354
+ return React.createElement(CenteredSpinner, { label: "Loading invoices\u2026" });
355
+ if (state.error)
356
+ return React.createElement(ErrorPanel, { message: state.error });
357
+ if (rows.length === 0)
358
+ return React.createElement(EmptyState, { message: "No invoices yet." });
359
+ const slice = rows.slice(start, end);
360
+ return (React.createElement(Clickable, { onWheel: (d) => (d === "up" ? scrollUp(1) : scrollDown(1)) },
361
+ React.createElement(Box, { flexDirection: "column" },
362
+ React.createElement(DataTable, { columns: columns, rows: slice, rowKey: (r) => r.InvoiceID, emptyMessage: "No invoices yet." }),
363
+ React.createElement(ScrollFooter, { start: start, end: end, total: rows.length }))));
364
+ }
365
+ function AddCreditsForm({ state, setState, onClose, }) {
366
+ const api = useApi();
367
+ const [methods, setMethods] = useState(null);
368
+ const [methodsErr, setMethodsErr] = useState(null);
369
+ useMousePause(true);
370
+ useEffect(() => {
371
+ if (state.step !== "method" || methods !== null)
372
+ return;
373
+ let cancelled = false;
374
+ (async () => {
375
+ try {
376
+ const data = await api.payments.methods();
377
+ if (!cancelled) {
378
+ setMethods(data.filter((m) => !(m.provider === "stripe" && m.card_brand === "us_bank_account")));
379
+ }
380
+ }
381
+ catch (e) {
382
+ if (!cancelled) {
383
+ setMethodsErr(e instanceof Error ? e.message : String(e));
384
+ }
385
+ }
386
+ })();
387
+ return () => {
388
+ cancelled = true;
389
+ };
390
+ }, [state.step, methods, api]);
391
+ useInput((_input, key) => {
392
+ if (key.escape) {
393
+ onClose(false);
394
+ }
395
+ });
396
+ if (state.step === "amount") {
397
+ return (React.createElement(Panel, { paddingX: 2, paddingY: 1, width: 60 },
398
+ React.createElement(Text, { bold: true, color: colors.text }, "Add credits"),
399
+ React.createElement(Box, { marginTop: 1 },
400
+ React.createElement(Text, { color: colors.dim }, "Amount (USD): "),
401
+ React.createElement(TextInput, { value: state.amount, onChange: (v) => setState({ ...state, amount: v }), onSubmit: (v) => {
402
+ const n = Number(v);
403
+ if (!Number.isFinite(n) || n <= 0) {
404
+ setState({ ...state, error: "Enter a positive number." });
405
+ return;
406
+ }
407
+ setState({ ...state, amount: String(n), step: "method", error: null });
408
+ }, placeholder: "e.g. 100" })),
409
+ state.error ? (React.createElement(Box, { marginTop: 1 },
410
+ React.createElement(Text, { color: colors.error }, state.error))) : null));
411
+ }
412
+ if (state.step === "method") {
413
+ if (methodsErr)
414
+ return React.createElement(ErrorPanel, { message: methodsErr });
415
+ if (methods === null)
416
+ return React.createElement(CenteredSpinner, { label: "Loading payment methods\u2026" });
417
+ if (methods.length === 0) {
418
+ return (React.createElement(Panel, { paddingX: 2, paddingY: 1, width: 60 },
419
+ React.createElement(Text, { color: colors.warning }, "No payment methods on file. Go to the Payment methods tab and add one first."),
420
+ React.createElement(Box, { marginTop: 1 },
421
+ React.createElement(Text, { color: colors.dim }, "Press Esc to cancel."))));
422
+ }
423
+ const items = methods.map((m) => ({
424
+ value: m.id,
425
+ label: describeMethod(m),
426
+ hint: m.is_default ? "(default)" : undefined,
427
+ }));
428
+ return (React.createElement(Panel, { paddingX: 2, paddingY: 1, width: 70 },
429
+ React.createElement(Text, { bold: true, color: colors.text },
430
+ "Pick a payment method for $",
431
+ state.amount),
432
+ React.createElement(Box, { marginTop: 1 },
433
+ React.createElement(Menu, { items: items, onSelect: (id) => setState({ ...state, paymentMethodId: id, step: "submit" }) }))));
434
+ }
435
+ if (state.step === "submit") {
436
+ return (React.createElement(SubmitTopup, { amount: state.amount, paymentMethodId: state.paymentMethodId, api: api, onDone: (result) => setState({
437
+ ...state,
438
+ submitting: false,
439
+ step: "done",
440
+ result,
441
+ }), onError: (msg) => setState({
442
+ ...state,
443
+ submitting: false,
444
+ error: msg,
445
+ }), error: state.error }));
446
+ }
447
+ return (React.createElement(Panel, { paddingX: 2, paddingY: 1, width: 60 },
448
+ React.createElement(Text, { color: colors.success },
449
+ glyphs.check,
450
+ " Top-up ",
451
+ state.result?.status ?? "submitted"),
452
+ React.createElement(Box, { marginTop: 1 },
453
+ React.createElement(Text, { color: colors.dim },
454
+ "Invoice: ",
455
+ state.result?.invoice_id)),
456
+ state.result?.checkout_url ? (React.createElement(Box, { marginTop: 1 },
457
+ React.createElement(Text, { color: colors.dim },
458
+ "Crypto checkout opened in browser: ",
459
+ state.result.checkout_url))) : null,
460
+ React.createElement(Box, { marginTop: 1 },
461
+ React.createElement(DonePrompt, { onClose: () => onClose(true) }))));
462
+ }
463
+ function DonePrompt({ onClose }) {
464
+ useInput((_input, key) => {
465
+ if (key.return || key.escape)
466
+ onClose();
467
+ });
468
+ return React.createElement(Text, { color: colors.dim }, "Press Enter to return.");
469
+ }
470
+ function SubmitTopup({ amount, paymentMethodId, api, onDone, onError, error, }) {
471
+ useEffect(() => {
472
+ let cancelled = false;
473
+ (async () => {
474
+ try {
475
+ const result = await api.payments.topup({
476
+ payment_method_id: paymentMethodId,
477
+ amount: Number(amount),
478
+ });
479
+ if (cancelled)
480
+ return;
481
+ if (result.checkout_url) {
482
+ try {
483
+ await open(result.checkout_url);
484
+ }
485
+ catch { }
486
+ }
487
+ onDone({
488
+ invoice_id: result.invoice_id,
489
+ status: result.status,
490
+ checkout_url: result.checkout_url,
491
+ });
492
+ }
493
+ catch (e) {
494
+ if (!cancelled)
495
+ onError(e instanceof Error ? e.message : String(e));
496
+ }
497
+ })();
498
+ return () => {
499
+ cancelled = true;
500
+ };
501
+ // eslint-disable-next-line react-hooks/exhaustive-deps
502
+ }, []);
503
+ return (React.createElement(Panel, { paddingX: 2, paddingY: 1, width: 60 }, error ? (React.createElement(React.Fragment, null,
504
+ React.createElement(Text, { color: colors.error },
505
+ "Top-up failed: ",
506
+ error),
507
+ React.createElement(Box, { marginTop: 1 },
508
+ React.createElement(Text, { color: colors.dim }, "Press Esc to close.")))) : (React.createElement(Spinner, { label: "Submitting top-up\u2026" }))));
509
+ }
510
+ function CenteredSpinner({ label }) {
511
+ return (React.createElement(Box, { flexGrow: 1, justifyContent: "center", alignItems: "center" },
512
+ React.createElement(Spinner, { label: label })));
513
+ }
514
+ function EmptyState({ message }) {
515
+ return (React.createElement(Box, { flexGrow: 1, justifyContent: "center", alignItems: "center" },
516
+ React.createElement(Text, { color: colors.dim }, message)));
517
+ }
518
+ function ErrorPanel({ message }) {
519
+ return (React.createElement(Box, null,
520
+ React.createElement(Panel, { paddingX: 2, paddingY: 1, borderColor: colors.error },
521
+ React.createElement(Text, { color: colors.error }, message),
522
+ React.createElement(Text, { color: colors.dim }, "Press r to retry."))));
523
+ }
524
+ function fmt(v) {
525
+ if (v === null || v === undefined)
526
+ return "—";
527
+ const n = typeof v === "number" ? v : Number(v);
528
+ if (!Number.isFinite(n))
529
+ return String(v);
530
+ return n.toFixed(2);
531
+ }
532
+ function fmtDate(s) {
533
+ if (!s)
534
+ return "—";
535
+ try {
536
+ return new Date(s).toISOString().slice(0, 10);
537
+ }
538
+ catch {
539
+ return s;
540
+ }
541
+ }
542
+ function shortId(id) {
543
+ return id.slice(0, 8);
544
+ }
545
+ function truncate(s, n) {
546
+ if (!s)
547
+ return "—";
548
+ return s.length > n ? `${s.slice(0, n - 1)}…` : s;
549
+ }
550
+ function describeMethod(m) {
551
+ const parts = [m.provider];
552
+ if (m.card_brand)
553
+ parts.push(m.card_brand);
554
+ if (m.card_last4)
555
+ parts.push(`••${m.card_last4}`);
556
+ if (m.nickname)
557
+ parts.push(`"${m.nickname}"`);
558
+ return parts.join(" · ");
559
+ }
560
+ function formatMoney(v, currency) {
561
+ if (v === undefined || v === null)
562
+ return null;
563
+ const n = typeof v === "number" ? v : Number(v);
564
+ if (!Number.isFinite(n))
565
+ return null;
566
+ return `$${n.toFixed(2)}${currency ? ` ${currency}` : ""}`;
567
+ }
568
+ function hasOutstanding(b) {
569
+ if (!b)
570
+ return false;
571
+ const v = b.outstanding;
572
+ if (v === undefined || v === null)
573
+ return false;
574
+ const n = typeof v === "number" ? v : Number(v);
575
+ return Number.isFinite(n) && n > 0;
576
+ }
577
+ function ClickableTabLabel({ label, underline, active, onPick, }) {
578
+ const [hover, setHover] = React.useState(false);
579
+ const labelBg = hover && !active ? colors.selectionBg : undefined;
580
+ const labelColor = active ? colors.accent : hover ? colors.text : colors.dim;
581
+ return (React.createElement(Clickable, { onClick: onPick, onHover: setHover, fitContent: true },
582
+ React.createElement(Box, { flexDirection: "column" },
583
+ React.createElement(Text, { color: labelColor, bold: active, backgroundColor: labelBg }, label),
584
+ React.createElement(Text, { color: active ? colors.accent : colors.dim }, underline))));
585
+ }
586
+ //# sourceMappingURL=Billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Billing.js","sourceRoot":"","sources":["../../../src/tui/screens/Billing.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare function Dashboard(): React.ReactElement;