@ttctl/cli 0.0.0 → 0.1.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/README.md +44 -9
  2. package/dist/commands/applications/index.d.ts +21 -0
  3. package/dist/commands/applications/index.d.ts.map +1 -0
  4. package/dist/commands/applications/index.js +87 -0
  5. package/dist/commands/applications/index.js.map +1 -0
  6. package/dist/commands/applications/list.d.ts +55 -0
  7. package/dist/commands/applications/list.d.ts.map +1 -0
  8. package/dist/commands/applications/list.js +106 -0
  9. package/dist/commands/applications/list.js.map +1 -0
  10. package/dist/commands/applications/shared.d.ts +14 -0
  11. package/dist/commands/applications/shared.d.ts.map +1 -0
  12. package/dist/commands/applications/shared.js +19 -0
  13. package/dist/commands/applications/shared.js.map +1 -0
  14. package/dist/commands/applications/show.d.ts +51 -0
  15. package/dist/commands/applications/show.d.ts.map +1 -0
  16. package/dist/commands/applications/show.js +154 -0
  17. package/dist/commands/applications/show.js.map +1 -0
  18. package/dist/commands/applications/stats.d.ts +42 -0
  19. package/dist/commands/applications/stats.d.ts.map +1 -0
  20. package/dist/commands/applications/stats.js +69 -0
  21. package/dist/commands/applications/stats.js.map +1 -0
  22. package/dist/commands/auth/index.d.ts +17 -0
  23. package/dist/commands/auth/index.d.ts.map +1 -0
  24. package/dist/commands/auth/index.js +69 -0
  25. package/dist/commands/auth/index.js.map +1 -0
  26. package/dist/commands/auth/init.d.ts +98 -0
  27. package/dist/commands/auth/init.d.ts.map +1 -0
  28. package/dist/commands/auth/init.js +387 -0
  29. package/dist/commands/auth/init.js.map +1 -0
  30. package/dist/commands/auth/signin.d.ts +81 -0
  31. package/dist/commands/auth/signin.d.ts.map +1 -0
  32. package/dist/commands/auth/signin.js +145 -0
  33. package/dist/commands/auth/signin.js.map +1 -0
  34. package/dist/commands/auth/signout.d.ts +133 -0
  35. package/dist/commands/auth/signout.d.ts.map +1 -0
  36. package/dist/commands/auth/signout.js +172 -0
  37. package/dist/commands/auth/signout.js.map +1 -0
  38. package/dist/commands/auth/status.d.ts +62 -0
  39. package/dist/commands/auth/status.d.ts.map +1 -0
  40. package/dist/commands/auth/status.js +98 -0
  41. package/dist/commands/auth/status.js.map +1 -0
  42. package/dist/commands/availability/allocated-hours.d.ts +27 -0
  43. package/dist/commands/availability/allocated-hours.d.ts.map +1 -0
  44. package/dist/commands/availability/allocated-hours.js +61 -0
  45. package/dist/commands/availability/allocated-hours.js.map +1 -0
  46. package/dist/commands/availability/index.d.ts +30 -0
  47. package/dist/commands/availability/index.d.ts.map +1 -0
  48. package/dist/commands/availability/index.js +124 -0
  49. package/dist/commands/availability/index.js.map +1 -0
  50. package/dist/commands/availability/shared.d.ts +11 -0
  51. package/dist/commands/availability/shared.d.ts.map +1 -0
  52. package/dist/commands/availability/shared.js +30 -0
  53. package/dist/commands/availability/shared.js.map +1 -0
  54. package/dist/commands/availability/show.d.ts +32 -0
  55. package/dist/commands/availability/show.d.ts.map +1 -0
  56. package/dist/commands/availability/show.js +86 -0
  57. package/dist/commands/availability/show.js.map +1 -0
  58. package/dist/commands/availability/working-hours.d.ts +53 -0
  59. package/dist/commands/availability/working-hours.d.ts.map +1 -0
  60. package/dist/commands/availability/working-hours.js +151 -0
  61. package/dist/commands/availability/working-hours.js.map +1 -0
  62. package/dist/commands/contracts/index.d.ts +69 -0
  63. package/dist/commands/contracts/index.d.ts.map +1 -0
  64. package/dist/commands/contracts/index.js +198 -0
  65. package/dist/commands/contracts/index.js.map +1 -0
  66. package/dist/commands/engagements/breaks.d.ts +81 -0
  67. package/dist/commands/engagements/breaks.d.ts.map +1 -0
  68. package/dist/commands/engagements/breaks.js +229 -0
  69. package/dist/commands/engagements/breaks.js.map +1 -0
  70. package/dist/commands/engagements/index.d.ts +29 -0
  71. package/dist/commands/engagements/index.d.ts.map +1 -0
  72. package/dist/commands/engagements/index.js +172 -0
  73. package/dist/commands/engagements/index.js.map +1 -0
  74. package/dist/commands/engagements/list.d.ts +49 -0
  75. package/dist/commands/engagements/list.d.ts.map +1 -0
  76. package/dist/commands/engagements/list.js +95 -0
  77. package/dist/commands/engagements/list.js.map +1 -0
  78. package/dist/commands/engagements/shared.d.ts +10 -0
  79. package/dist/commands/engagements/shared.d.ts.map +1 -0
  80. package/dist/commands/engagements/shared.js +31 -0
  81. package/dist/commands/engagements/shared.js.map +1 -0
  82. package/dist/commands/engagements/show.d.ts +19 -0
  83. package/dist/commands/engagements/show.d.ts.map +1 -0
  84. package/dist/commands/engagements/show.js +150 -0
  85. package/dist/commands/engagements/show.js.map +1 -0
  86. package/dist/commands/engagements/stats.d.ts +24 -0
  87. package/dist/commands/engagements/stats.d.ts.map +1 -0
  88. package/dist/commands/engagements/stats.js +51 -0
  89. package/dist/commands/engagements/stats.js.map +1 -0
  90. package/dist/commands/jobs/index.d.ts +49 -0
  91. package/dist/commands/jobs/index.d.ts.map +1 -0
  92. package/dist/commands/jobs/index.js +304 -0
  93. package/dist/commands/jobs/index.js.map +1 -0
  94. package/dist/commands/jobs/interest.d.ts +65 -0
  95. package/dist/commands/jobs/interest.d.ts.map +1 -0
  96. package/dist/commands/jobs/interest.js +172 -0
  97. package/dist/commands/jobs/interest.js.map +1 -0
  98. package/dist/commands/jobs/list.d.ts +81 -0
  99. package/dist/commands/jobs/list.d.ts.map +1 -0
  100. package/dist/commands/jobs/list.js +157 -0
  101. package/dist/commands/jobs/list.js.map +1 -0
  102. package/dist/commands/jobs/search.d.ts +71 -0
  103. package/dist/commands/jobs/search.d.ts.map +1 -0
  104. package/dist/commands/jobs/search.js +163 -0
  105. package/dist/commands/jobs/search.js.map +1 -0
  106. package/dist/commands/jobs/shared.d.ts +79 -0
  107. package/dist/commands/jobs/shared.d.ts.map +1 -0
  108. package/dist/commands/jobs/shared.js +133 -0
  109. package/dist/commands/jobs/shared.js.map +1 -0
  110. package/dist/commands/jobs/show.d.ts +20 -0
  111. package/dist/commands/jobs/show.d.ts.map +1 -0
  112. package/dist/commands/jobs/show.js +135 -0
  113. package/dist/commands/jobs/show.js.map +1 -0
  114. package/dist/commands/payments/index.d.ts +34 -0
  115. package/dist/commands/payments/index.d.ts.map +1 -0
  116. package/dist/commands/payments/index.js +160 -0
  117. package/dist/commands/payments/index.js.map +1 -0
  118. package/dist/commands/payments/methods.d.ts +17 -0
  119. package/dist/commands/payments/methods.d.ts.map +1 -0
  120. package/dist/commands/payments/methods.js +79 -0
  121. package/dist/commands/payments/methods.js.map +1 -0
  122. package/dist/commands/payments/payouts.d.ts +44 -0
  123. package/dist/commands/payments/payouts.d.ts.map +1 -0
  124. package/dist/commands/payments/payouts.js +147 -0
  125. package/dist/commands/payments/payouts.js.map +1 -0
  126. package/dist/commands/payments/rate.d.ts +48 -0
  127. package/dist/commands/payments/rate.d.ts.map +1 -0
  128. package/dist/commands/payments/rate.js +229 -0
  129. package/dist/commands/payments/rate.js.map +1 -0
  130. package/dist/commands/payments/shared.d.ts +10 -0
  131. package/dist/commands/payments/shared.d.ts.map +1 -0
  132. package/dist/commands/payments/shared.js +27 -0
  133. package/dist/commands/payments/shared.js.map +1 -0
  134. package/dist/commands/profile/basic/index.d.ts +18 -0
  135. package/dist/commands/profile/basic/index.d.ts.map +1 -0
  136. package/dist/commands/profile/basic/index.js +79 -0
  137. package/dist/commands/profile/basic/index.js.map +1 -0
  138. package/dist/commands/profile/basic/photo-show.d.ts +28 -0
  139. package/dist/commands/profile/basic/photo-show.d.ts.map +1 -0
  140. package/dist/commands/profile/basic/photo-show.js +112 -0
  141. package/dist/commands/profile/basic/photo-show.js.map +1 -0
  142. package/dist/commands/profile/basic/photo-upload.d.ts +10 -0
  143. package/dist/commands/profile/basic/photo-upload.d.ts.map +1 -0
  144. package/dist/commands/profile/basic/photo-upload.js +61 -0
  145. package/dist/commands/profile/basic/photo-upload.js.map +1 -0
  146. package/dist/commands/profile/basic/set.d.ts +54 -0
  147. package/dist/commands/profile/basic/set.d.ts.map +1 -0
  148. package/dist/commands/profile/basic/set.js +174 -0
  149. package/dist/commands/profile/basic/set.js.map +1 -0
  150. package/dist/commands/profile/basic/show.d.ts +95 -0
  151. package/dist/commands/profile/basic/show.d.ts.map +1 -0
  152. package/dist/commands/profile/basic/show.js +310 -0
  153. package/dist/commands/profile/basic/show.js.map +1 -0
  154. package/dist/commands/profile/certifications/index.d.ts +40 -0
  155. package/dist/commands/profile/certifications/index.d.ts.map +1 -0
  156. package/dist/commands/profile/certifications/index.js +350 -0
  157. package/dist/commands/profile/certifications/index.js.map +1 -0
  158. package/dist/commands/profile/education/index.d.ts +37 -0
  159. package/dist/commands/profile/education/index.d.ts.map +1 -0
  160. package/dist/commands/profile/education/index.js +331 -0
  161. package/dist/commands/profile/education/index.js.map +1 -0
  162. package/dist/commands/profile/employment/index.d.ts +49 -0
  163. package/dist/commands/profile/employment/index.d.ts.map +1 -0
  164. package/dist/commands/profile/employment/index.js +425 -0
  165. package/dist/commands/profile/employment/index.js.map +1 -0
  166. package/dist/commands/profile/external/_shared.d.ts +35 -0
  167. package/dist/commands/profile/external/_shared.d.ts.map +1 -0
  168. package/dist/commands/profile/external/_shared.js +59 -0
  169. package/dist/commands/profile/external/_shared.js.map +1 -0
  170. package/dist/commands/profile/external/advanced-wizard-show.d.ts +15 -0
  171. package/dist/commands/profile/external/advanced-wizard-show.d.ts.map +1 -0
  172. package/dist/commands/profile/external/advanced-wizard-show.js +82 -0
  173. package/dist/commands/profile/external/advanced-wizard-show.js.map +1 -0
  174. package/dist/commands/profile/external/custom-requirements-set.d.ts +32 -0
  175. package/dist/commands/profile/external/custom-requirements-set.d.ts.map +1 -0
  176. package/dist/commands/profile/external/custom-requirements-set.js +116 -0
  177. package/dist/commands/profile/external/custom-requirements-set.js.map +1 -0
  178. package/dist/commands/profile/external/custom-requirements-show.d.ts +16 -0
  179. package/dist/commands/profile/external/custom-requirements-show.d.ts.map +1 -0
  180. package/dist/commands/profile/external/custom-requirements-show.js +84 -0
  181. package/dist/commands/profile/external/custom-requirements-show.js.map +1 -0
  182. package/dist/commands/profile/external/index.d.ts +21 -0
  183. package/dist/commands/profile/external/index.d.ts.map +1 -0
  184. package/dist/commands/profile/external/index.js +113 -0
  185. package/dist/commands/profile/external/index.js.map +1 -0
  186. package/dist/commands/profile/external/readiness.d.ts +15 -0
  187. package/dist/commands/profile/external/readiness.d.ts.map +1 -0
  188. package/dist/commands/profile/external/readiness.js +104 -0
  189. package/dist/commands/profile/external/readiness.js.map +1 -0
  190. package/dist/commands/profile/external/recommendations.d.ts +17 -0
  191. package/dist/commands/profile/external/recommendations.d.ts.map +1 -0
  192. package/dist/commands/profile/external/recommendations.js +97 -0
  193. package/dist/commands/profile/external/recommendations.js.map +1 -0
  194. package/dist/commands/profile/external/show.d.ts +22 -0
  195. package/dist/commands/profile/external/show.d.ts.map +1 -0
  196. package/dist/commands/profile/external/show.js +83 -0
  197. package/dist/commands/profile/external/show.js.map +1 -0
  198. package/dist/commands/profile/external/update.d.ts +37 -0
  199. package/dist/commands/profile/external/update.d.ts.map +1 -0
  200. package/dist/commands/profile/external/update.js +125 -0
  201. package/dist/commands/profile/external/update.js.map +1 -0
  202. package/dist/commands/profile/index.d.ts +16 -0
  203. package/dist/commands/profile/index.d.ts.map +1 -0
  204. package/dist/commands/profile/index.js +81 -0
  205. package/dist/commands/profile/index.js.map +1 -0
  206. package/dist/commands/profile/industries/index.d.ts +43 -0
  207. package/dist/commands/profile/industries/index.d.ts.map +1 -0
  208. package/dist/commands/profile/industries/index.js +258 -0
  209. package/dist/commands/profile/industries/index.js.map +1 -0
  210. package/dist/commands/profile/portfolio/add.d.ts +43 -0
  211. package/dist/commands/profile/portfolio/add.d.ts.map +1 -0
  212. package/dist/commands/profile/portfolio/add.js +181 -0
  213. package/dist/commands/profile/portfolio/add.js.map +1 -0
  214. package/dist/commands/profile/portfolio/highlight.d.ts +11 -0
  215. package/dist/commands/profile/portfolio/highlight.d.ts.map +1 -0
  216. package/dist/commands/profile/portfolio/highlight.js +31 -0
  217. package/dist/commands/profile/portfolio/highlight.js.map +1 -0
  218. package/dist/commands/profile/portfolio/index.d.ts +16 -0
  219. package/dist/commands/profile/portfolio/index.d.ts.map +1 -0
  220. package/dist/commands/profile/portfolio/index.js +121 -0
  221. package/dist/commands/profile/portfolio/index.js.map +1 -0
  222. package/dist/commands/profile/portfolio/list.d.ts +83 -0
  223. package/dist/commands/profile/portfolio/list.d.ts.map +1 -0
  224. package/dist/commands/profile/portfolio/list.js +189 -0
  225. package/dist/commands/profile/portfolio/list.js.map +1 -0
  226. package/dist/commands/profile/portfolio/remove.d.ts +9 -0
  227. package/dist/commands/profile/portfolio/remove.d.ts.map +1 -0
  228. package/dist/commands/profile/portfolio/remove.js +24 -0
  229. package/dist/commands/profile/portfolio/remove.js.map +1 -0
  230. package/dist/commands/profile/portfolio/reorder.d.ts +17 -0
  231. package/dist/commands/profile/portfolio/reorder.d.ts.map +1 -0
  232. package/dist/commands/profile/portfolio/reorder.js +135 -0
  233. package/dist/commands/profile/portfolio/reorder.js.map +1 -0
  234. package/dist/commands/profile/portfolio/shared.d.ts +8 -0
  235. package/dist/commands/profile/portfolio/shared.d.ts.map +1 -0
  236. package/dist/commands/profile/portfolio/shared.js +10 -0
  237. package/dist/commands/profile/portfolio/shared.js.map +1 -0
  238. package/dist/commands/profile/portfolio/update.d.ts +18 -0
  239. package/dist/commands/profile/portfolio/update.d.ts.map +1 -0
  240. package/dist/commands/profile/portfolio/update.js +77 -0
  241. package/dist/commands/profile/portfolio/update.js.map +1 -0
  242. package/dist/commands/profile/portfolio/upload.d.ts +8 -0
  243. package/dist/commands/profile/portfolio/upload.d.ts.map +1 -0
  244. package/dist/commands/profile/portfolio/upload.js +131 -0
  245. package/dist/commands/profile/portfolio/upload.js.map +1 -0
  246. package/dist/commands/profile/resume/cancel-upload.d.ts +9 -0
  247. package/dist/commands/profile/resume/cancel-upload.d.ts.map +1 -0
  248. package/dist/commands/profile/resume/cancel-upload.js +30 -0
  249. package/dist/commands/profile/resume/cancel-upload.js.map +1 -0
  250. package/dist/commands/profile/resume/index.d.ts +15 -0
  251. package/dist/commands/profile/resume/index.d.ts.map +1 -0
  252. package/dist/commands/profile/resume/index.js +42 -0
  253. package/dist/commands/profile/resume/index.js.map +1 -0
  254. package/dist/commands/profile/resume/upload.d.ts +16 -0
  255. package/dist/commands/profile/resume/upload.d.ts.map +1 -0
  256. package/dist/commands/profile/resume/upload.js +65 -0
  257. package/dist/commands/profile/resume/upload.js.map +1 -0
  258. package/dist/commands/profile/reviews/_shared.d.ts +9 -0
  259. package/dist/commands/profile/reviews/_shared.d.ts.map +1 -0
  260. package/dist/commands/profile/reviews/_shared.js +15 -0
  261. package/dist/commands/profile/reviews/_shared.js.map +1 -0
  262. package/dist/commands/profile/reviews/approve-item.d.ts +30 -0
  263. package/dist/commands/profile/reviews/approve-item.d.ts.map +1 -0
  264. package/dist/commands/profile/reviews/approve-item.js +82 -0
  265. package/dist/commands/profile/reviews/approve-item.js.map +1 -0
  266. package/dist/commands/profile/reviews/approve-section.d.ts +15 -0
  267. package/dist/commands/profile/reviews/approve-section.d.ts.map +1 -0
  268. package/dist/commands/profile/reviews/approve-section.js +67 -0
  269. package/dist/commands/profile/reviews/approve-section.js.map +1 -0
  270. package/dist/commands/profile/reviews/index.d.ts +19 -0
  271. package/dist/commands/profile/reviews/index.d.ts.map +1 -0
  272. package/dist/commands/profile/reviews/index.js +71 -0
  273. package/dist/commands/profile/reviews/index.js.map +1 -0
  274. package/dist/commands/profile/reviews/list.d.ts +17 -0
  275. package/dist/commands/profile/reviews/list.d.ts.map +1 -0
  276. package/dist/commands/profile/reviews/list.js +96 -0
  277. package/dist/commands/profile/reviews/list.js.map +1 -0
  278. package/dist/commands/profile/reviews/submit-for-review.d.ts +16 -0
  279. package/dist/commands/profile/reviews/submit-for-review.d.ts.map +1 -0
  280. package/dist/commands/profile/reviews/submit-for-review.js +65 -0
  281. package/dist/commands/profile/reviews/submit-for-review.js.map +1 -0
  282. package/dist/commands/profile/shared.d.ts +46 -0
  283. package/dist/commands/profile/shared.d.ts.map +1 -0
  284. package/dist/commands/profile/shared.js +111 -0
  285. package/dist/commands/profile/shared.js.map +1 -0
  286. package/dist/commands/profile/skills/index.d.ts +29 -0
  287. package/dist/commands/profile/skills/index.d.ts.map +1 -0
  288. package/dist/commands/profile/skills/index.js +475 -0
  289. package/dist/commands/profile/skills/index.js.map +1 -0
  290. package/dist/commands/profile/visas/add.d.ts +19 -0
  291. package/dist/commands/profile/visas/add.d.ts.map +1 -0
  292. package/dist/commands/profile/visas/add.js +37 -0
  293. package/dist/commands/profile/visas/add.js.map +1 -0
  294. package/dist/commands/profile/visas/index.d.ts +13 -0
  295. package/dist/commands/profile/visas/index.d.ts.map +1 -0
  296. package/dist/commands/profile/visas/index.js +69 -0
  297. package/dist/commands/profile/visas/index.js.map +1 -0
  298. package/dist/commands/profile/visas/list.d.ts +40 -0
  299. package/dist/commands/profile/visas/list.d.ts.map +1 -0
  300. package/dist/commands/profile/visas/list.js +115 -0
  301. package/dist/commands/profile/visas/list.js.map +1 -0
  302. package/dist/commands/profile/visas/remove.d.ts +8 -0
  303. package/dist/commands/profile/visas/remove.d.ts.map +1 -0
  304. package/dist/commands/profile/visas/remove.js +23 -0
  305. package/dist/commands/profile/visas/remove.js.map +1 -0
  306. package/dist/commands/profile/visas/shared.d.ts +11 -0
  307. package/dist/commands/profile/visas/shared.d.ts.map +1 -0
  308. package/dist/commands/profile/visas/shared.js +16 -0
  309. package/dist/commands/profile/visas/shared.js.map +1 -0
  310. package/dist/commands/profile/visas/update.d.ts +13 -0
  311. package/dist/commands/profile/visas/update.d.ts.map +1 -0
  312. package/dist/commands/profile/visas/update.js +44 -0
  313. package/dist/commands/profile/visas/update.js.map +1 -0
  314. package/dist/commands/timesheet/index.d.ts +24 -0
  315. package/dist/commands/timesheet/index.d.ts.map +1 -0
  316. package/dist/commands/timesheet/index.js +98 -0
  317. package/dist/commands/timesheet/index.js.map +1 -0
  318. package/dist/commands/timesheet/list.d.ts +40 -0
  319. package/dist/commands/timesheet/list.d.ts.map +1 -0
  320. package/dist/commands/timesheet/list.js +79 -0
  321. package/dist/commands/timesheet/list.js.map +1 -0
  322. package/dist/commands/timesheet/shared.d.ts +10 -0
  323. package/dist/commands/timesheet/shared.d.ts.map +1 -0
  324. package/dist/commands/timesheet/shared.js +35 -0
  325. package/dist/commands/timesheet/shared.js.map +1 -0
  326. package/dist/commands/timesheet/show.d.ts +19 -0
  327. package/dist/commands/timesheet/show.d.ts.map +1 -0
  328. package/dist/commands/timesheet/show.js +109 -0
  329. package/dist/commands/timesheet/show.js.map +1 -0
  330. package/dist/commands/timesheet/submit.d.ts +50 -0
  331. package/dist/commands/timesheet/submit.d.ts.map +1 -0
  332. package/dist/commands/timesheet/submit.js +151 -0
  333. package/dist/commands/timesheet/submit.js.map +1 -0
  334. package/dist/crash-handlers.d.ts +67 -0
  335. package/dist/crash-handlers.d.ts.map +1 -0
  336. package/dist/crash-handlers.js +78 -0
  337. package/dist/crash-handlers.js.map +1 -0
  338. package/dist/errors.d.ts +45 -0
  339. package/dist/errors.d.ts.map +1 -0
  340. package/dist/errors.js +57 -0
  341. package/dist/errors.js.map +1 -0
  342. package/dist/index.d.ts +8 -0
  343. package/dist/index.d.ts.map +1 -0
  344. package/dist/index.js +15 -0
  345. package/dist/index.js.map +1 -0
  346. package/dist/lib/config-context.d.ts +41 -0
  347. package/dist/lib/config-context.d.ts.map +1 -0
  348. package/dist/lib/config-context.js +74 -0
  349. package/dist/lib/config-context.js.map +1 -0
  350. package/dist/lib/dry-run.d.ts +70 -0
  351. package/dist/lib/dry-run.d.ts.map +1 -0
  352. package/dist/lib/dry-run.js +114 -0
  353. package/dist/lib/dry-run.js.map +1 -0
  354. package/dist/lib/empty-state-cta.d.ts +63 -0
  355. package/dist/lib/empty-state-cta.d.ts.map +1 -0
  356. package/dist/lib/empty-state-cta.js +88 -0
  357. package/dist/lib/empty-state-cta.js.map +1 -0
  358. package/dist/lib/envelopes.d.ts +540 -0
  359. package/dist/lib/envelopes.d.ts.map +1 -0
  360. package/dist/lib/envelopes.js +598 -0
  361. package/dist/lib/envelopes.js.map +1 -0
  362. package/dist/lib/error-routing.d.ts +49 -0
  363. package/dist/lib/error-routing.d.ts.map +1 -0
  364. package/dist/lib/error-routing.js +72 -0
  365. package/dist/lib/error-routing.js.map +1 -0
  366. package/dist/lib/format-helpers.d.ts +65 -0
  367. package/dist/lib/format-helpers.d.ts.map +1 -0
  368. package/dist/lib/format-helpers.js +79 -0
  369. package/dist/lib/format-helpers.js.map +1 -0
  370. package/dist/lib/format-overrides.d.ts +81 -0
  371. package/dist/lib/format-overrides.d.ts.map +1 -0
  372. package/dist/lib/format-overrides.js +55 -0
  373. package/dist/lib/format-overrides.js.map +1 -0
  374. package/dist/lib/freetext.d.ts +83 -0
  375. package/dist/lib/freetext.d.ts.map +1 -0
  376. package/dist/lib/freetext.js +182 -0
  377. package/dist/lib/freetext.js.map +1 -0
  378. package/dist/lib/kill-switch-hook.d.ts +49 -0
  379. package/dist/lib/kill-switch-hook.d.ts.map +1 -0
  380. package/dist/lib/kill-switch-hook.js +34 -0
  381. package/dist/lib/kill-switch-hook.js.map +1 -0
  382. package/dist/lib/output.d.ts +173 -0
  383. package/dist/lib/output.d.ts.map +1 -0
  384. package/dist/lib/output.js +177 -0
  385. package/dist/lib/output.js.map +1 -0
  386. package/dist/lib/pagination.d.ts +49 -0
  387. package/dist/lib/pagination.d.ts.map +1 -0
  388. package/dist/lib/pagination.js +36 -0
  389. package/dist/lib/pagination.js.map +1 -0
  390. package/dist/program.d.ts +80 -0
  391. package/dist/program.d.ts.map +1 -0
  392. package/dist/program.js +273 -0
  393. package/dist/program.js.map +1 -0
  394. package/package.json +35 -13
  395. package/index.js +0 -7
@@ -0,0 +1,79 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ import Table from "cli-table3";
4
+ import { payments } from "@ttctl/core";
5
+ import { wrapListEnvelope } from "../../lib/envelopes.js";
6
+ import { emitResult } from "../../lib/output.js";
7
+ import { handlePaymentsError, loadAuthTokenOrExit } from "./shared.js";
8
+ /**
9
+ * Action handler for `ttctl payments methods list`. Lists configured
10
+ * payment methods. The preferred method is annotated with a leading
11
+ * marker in pretty / table rendering.
12
+ */
13
+ export async function runPaymentsMethodsList(output) {
14
+ const token = await loadAuthTokenOrExit("payments methods list", output);
15
+ let items;
16
+ try {
17
+ items = await payments.methods.list(token);
18
+ }
19
+ catch (err) {
20
+ handlePaymentsError("payments methods list", err, output);
21
+ }
22
+ emitResult(wrapListEnvelope(items), output, {
23
+ pretty: (data) => formatMethodsTable(data.items),
24
+ table: (data) => formatMethodsTable(data.items),
25
+ empty: { command: "payments.methods.list" },
26
+ });
27
+ }
28
+ /**
29
+ * Action handler for `ttctl payments methods show <id>`. No
30
+ * per-id wire op exists; the service performs a client-side filter
31
+ * on the full methods list.
32
+ */
33
+ export async function runPaymentsMethodsShow(id, output) {
34
+ const token = await loadAuthTokenOrExit("payments methods show", output);
35
+ let item;
36
+ try {
37
+ item = await payments.methods.show(token, id);
38
+ }
39
+ catch (err) {
40
+ handlePaymentsError("payments methods show", err, output);
41
+ }
42
+ emitResult(item, output, {
43
+ pretty: (data) => formatMethodDetail(data),
44
+ });
45
+ }
46
+ export function formatMethodsTable(items) {
47
+ const table = new Table({
48
+ head: ["id", "method", "preferred", "name", "extra"],
49
+ colAligns: ["left", "left", "center", "left", "left"],
50
+ });
51
+ for (const m of items) {
52
+ const extra = [];
53
+ if (m.payoneerId !== null && m.payoneerId !== "")
54
+ extra.push(`payoneer=${m.payoneerId}`);
55
+ if (m.toptalPaymentsPending === true)
56
+ extra.push("pending");
57
+ if (m.comment !== null && m.comment !== "")
58
+ extra.push(m.comment);
59
+ table.push([m.id, m.paymentMethod, m.preferredOption ? "★" : "", m.fullName ?? "(no name)", extra.join("; ")]);
60
+ }
61
+ return table.toString();
62
+ }
63
+ export function formatMethodDetail(m) {
64
+ const lines = [];
65
+ lines.push(`Payment method ${m.id}`);
66
+ lines.push(` Method: ${m.paymentMethod}`);
67
+ lines.push(` Preferred: ${m.preferredOption ? "yes" : "no"}`);
68
+ if (m.fullName !== null)
69
+ lines.push(` Name: ${m.fullName}`);
70
+ if (m.payoneerId !== null && m.payoneerId !== "")
71
+ lines.push(` Payoneer ID: ${m.payoneerId}`);
72
+ if (m.toptalPaymentsPending !== null) {
73
+ lines.push(` Toptal Payments pending: ${m.toptalPaymentsPending ? "yes" : "no"}`);
74
+ }
75
+ if (m.comment !== null && m.comment !== "")
76
+ lines.push(` Comment: ${m.comment}`);
77
+ return lines.join("\n");
78
+ }
79
+ //# sourceMappingURL=methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../src/commands/payments/methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { payments } from "@ttctl/core";
2
+ import type { OutputFormat } from "../../lib/output.js";
3
+ /**
4
+ * Action handler for `ttctl payments payouts list [--from <date>]
5
+ * [--to <date>]`. Lists historical payouts (default: most-recent first,
6
+ * server order). Optional `--from` / `--to` filter by `createdOn`
7
+ * (inclusive YYYY-MM-DD).
8
+ *
9
+ * Returns the payouts wrapped in the v0.4 list envelope. The wire op
10
+ * also returns aggregate summary totals for the same window; the CLI's
11
+ * `pretty` rendering surfaces them as a header line above the table,
12
+ * while `json` / `yaml` carry the bare list shape per envelope contract
13
+ * (the summary is intentionally NOT in the envelope — it's a portal
14
+ * feature; if users ask for it on the wire we'll add a parallel
15
+ * `payments payouts summary` leaf).
16
+ */
17
+ export interface PaymentsPayoutsListOptions {
18
+ from?: string;
19
+ to?: string;
20
+ output: OutputFormat;
21
+ }
22
+ export declare function runPaymentsPayoutsList(opts: PaymentsPayoutsListOptions): Promise<void>;
23
+ /**
24
+ * Action handler for `ttctl payments payouts show <id>`. Fetches a
25
+ * single payout's detail by `TalentPayment.id`.
26
+ */
27
+ export declare function runPaymentsPayoutsShow(id: string, output: OutputFormat): Promise<void>;
28
+ /**
29
+ * Render payouts as a header summary + cli-table3 table. `pretty`
30
+ * combines both; `table` (the alternate emit-result mode) keeps just
31
+ * the table for terminal-piped use.
32
+ */
33
+ export declare function formatPayoutsBlock(items: payments.Payout[], summary: payments.PayoutsSummary): string;
34
+ export declare function formatPayoutsTable(items: payments.Payout[], terminalWidth?: number): string;
35
+ /**
36
+ * Render the single-payout detail as a sectioned multi-line block.
37
+ */
38
+ export declare function formatPayoutDetail(p: payments.Payout): string;
39
+ /**
40
+ * Format an ISO-8601 date string as YYYY-MM-DD for table compactness.
41
+ * Returns `"—"` for `null`.
42
+ */
43
+ export declare function formatDate(value: string | null): string;
44
+ //# sourceMappingURL=payouts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payouts.d.ts","sourceRoot":"","sources":["../../../src/commands/payments/payouts.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB5F;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAa5F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,GAAG,MAAM,CAQrG;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EACxB,aAAa,GAAE,MAAsC,GACpD,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CA2C7D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIvD"}
@@ -0,0 +1,147 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ import Table from "cli-table3";
4
+ import { payments } from "@ttctl/core";
5
+ import { wrapListEnvelope } from "../../lib/envelopes.js";
6
+ import { emitResult } from "../../lib/output.js";
7
+ import { handlePaymentsError, loadAuthTokenOrExit } from "./shared.js";
8
+ export async function runPaymentsPayoutsList(opts) {
9
+ const token = await loadAuthTokenOrExit("payments payouts list", opts.output);
10
+ const listOpts = {};
11
+ if (opts.from !== undefined)
12
+ listOpts.fromDate = opts.from;
13
+ if (opts.to !== undefined)
14
+ listOpts.toDate = opts.to;
15
+ let result;
16
+ try {
17
+ result = await payments.payouts.list(token, listOpts);
18
+ }
19
+ catch (err) {
20
+ handlePaymentsError("payments payouts list", err, opts.output);
21
+ }
22
+ emitResult(wrapListEnvelope(result.items), opts.output, {
23
+ pretty: (data) => formatPayoutsBlock(data.items, result.summary),
24
+ table: (data) => formatPayoutsTable(data.items),
25
+ empty: { command: "payments.payouts.list" },
26
+ });
27
+ }
28
+ /**
29
+ * Action handler for `ttctl payments payouts show <id>`. Fetches a
30
+ * single payout's detail by `TalentPayment.id`.
31
+ */
32
+ export async function runPaymentsPayoutsShow(id, output) {
33
+ const token = await loadAuthTokenOrExit("payments payouts show", output);
34
+ let item;
35
+ try {
36
+ item = await payments.payouts.show(token, id);
37
+ }
38
+ catch (err) {
39
+ handlePaymentsError("payments payouts show", err, output);
40
+ }
41
+ emitResult(item, output, {
42
+ pretty: (data) => formatPayoutDetail(data),
43
+ });
44
+ }
45
+ /**
46
+ * Render payouts as a header summary + cli-table3 table. `pretty`
47
+ * combines both; `table` (the alternate emit-result mode) keeps just
48
+ * the table for terminal-piped use.
49
+ */
50
+ export function formatPayoutsBlock(items, summary) {
51
+ const lines = [];
52
+ lines.push(`Paid: ${summary.totalPaid} Due: ${summary.totalDue} Outstanding: ${summary.totalOutstanding} Overdue: ${summary.totalOverdue} On hold: ${summary.totalOnHold} Disputed: ${summary.totalDisputed}`);
53
+ lines.push("");
54
+ lines.push(formatPayoutsTable(items));
55
+ return lines.join("\n");
56
+ }
57
+ export function formatPayoutsTable(items, terminalWidth = process.stdout.columns || 100) {
58
+ if (items.length === 0) {
59
+ const empty = new Table({ head: ["id", "number", "status", "amount", "due", "client"] });
60
+ return empty.toString();
61
+ }
62
+ const idWidth = 22;
63
+ const numberWidth = 9;
64
+ const statusWidth = 12;
65
+ const amountWidth = 12;
66
+ const dueWidth = 12;
67
+ // 6 columns × 2 padding + 7 borders ≈ 19
68
+ const remaining = Math.max(15, terminalWidth - idWidth - numberWidth - statusWidth - amountWidth - dueWidth - 19);
69
+ const clientWidth = Math.max(15, remaining);
70
+ const table = new Table({
71
+ head: ["id", "number", "status", "amount", "due", "client"],
72
+ colWidths: [idWidth, numberWidth, statusWidth, amountWidth, dueWidth, clientWidth],
73
+ colAligns: ["left", "right", "left", "right", "left", "left"],
74
+ wordWrap: true,
75
+ });
76
+ for (const p of items) {
77
+ table.push([
78
+ p.id,
79
+ p.number.toString(),
80
+ p.status,
81
+ p.amount,
82
+ formatDate(p.dueDate),
83
+ p.job?.client?.fullName ?? "(no client)",
84
+ ]);
85
+ }
86
+ return table.toString();
87
+ }
88
+ /**
89
+ * Render the single-payout detail as a sectioned multi-line block.
90
+ */
91
+ export function formatPayoutDetail(p) {
92
+ const lines = [];
93
+ lines.push(`Payout ${p.id}`);
94
+ lines.push(` Number: ${p.number.toString()}`);
95
+ lines.push(` Status: ${p.status}`);
96
+ lines.push(` Kind: ${p.kindCategory}`);
97
+ lines.push(` Amount: ${p.amount}`);
98
+ if (p.correctionAmount !== "0" && p.correctionAmount !== "0.0" && p.correctionAmount !== "0.00") {
99
+ lines.push(` Correction: ${p.correctionAmount}`);
100
+ }
101
+ if (p.description !== null && p.description !== "") {
102
+ lines.push(` Description: ${p.description}`);
103
+ }
104
+ if (p.billingCycle !== null) {
105
+ lines.push(` Billing cycle: ${p.billingCycle.startDate} → ${p.billingCycle.endDate} (${p.billingCycle.id})`);
106
+ }
107
+ lines.push(` Created: ${p.createdAt}`);
108
+ lines.push(` Updated: ${p.updatedAt}`);
109
+ if (p.dueDate !== null)
110
+ lines.push(` Due: ${p.dueDate}`);
111
+ if (p.paidAt !== null)
112
+ lines.push(` Paid: ${p.paidAt}`);
113
+ if (p.paymentGroupId !== null)
114
+ lines.push(` Group ID: ${p.paymentGroupId}`);
115
+ if (p.downloadPdfUrl !== null)
116
+ lines.push(` PDF: ${p.downloadPdfUrl}`);
117
+ if (p.job !== null) {
118
+ lines.push("");
119
+ lines.push("Job");
120
+ lines.push(` ID: ${p.job.id}`);
121
+ if (p.job.title !== null)
122
+ lines.push(` Title: ${p.job.title}`);
123
+ if (p.job.client?.fullName != null) {
124
+ lines.push(` Client: ${p.job.client.fullName}`);
125
+ }
126
+ }
127
+ if (p.memorandums.length > 0) {
128
+ lines.push("");
129
+ lines.push(`Memorandums (${p.memorandums.length.toString()})`);
130
+ for (const m of p.memorandums) {
131
+ const date = m.effectiveDate ?? "(no date)";
132
+ lines.push(` ${m.id}: ${date} — ${m.amount} (balance ${m.balance})`);
133
+ }
134
+ }
135
+ return lines.join("\n");
136
+ }
137
+ /**
138
+ * Format an ISO-8601 date string as YYYY-MM-DD for table compactness.
139
+ * Returns `"—"` for `null`.
140
+ */
141
+ export function formatDate(value) {
142
+ if (value === null || value === "")
143
+ return "—";
144
+ const m = /^(\d{4}-\d{2}-\d{2})/.exec(value);
145
+ return m?.[1] ?? value;
146
+ }
147
+ //# sourceMappingURL=payouts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payouts.js","sourceRoot":"","sources":["../../../src/commands/payments/payouts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { payments } from "@ttctl/core";
2
+ import type { OutputFormat } from "../../lib/output.js";
3
+ /**
4
+ * Action handler for `ttctl payments rate show`. Shows the current rate
5
+ * + most-recent / ongoing rate-change request + market insight +
6
+ * validation rules as a unified projection.
7
+ */
8
+ export declare function runPaymentsRateShow(output: OutputFormat): Promise<void>;
9
+ /**
10
+ * Action handler for `ttctl payments rate questions`. Lists the form
11
+ * questions the user must answer when submitting `rate change`. Mirrors
12
+ * the `engagements breaks reasons list` discovery pattern.
13
+ */
14
+ export declare function runPaymentsRateQuestions(output: OutputFormat): Promise<void>;
15
+ /**
16
+ * Action handler for `ttctl payments rate change`. Submits a rate
17
+ * change request. Validation (kind/engagement combo) lives in the
18
+ * service; the CLI gates on `--confirm` per the standard mutation
19
+ * safety pattern + non-TTY refusal.
20
+ *
21
+ * `--answer <question-id> <value>` is the two-arg form (NOT
22
+ * `<id>=<value>`) to avoid `=` collisions with TEXT-kind answer values.
23
+ * Commander parses each repeat into a `[id, value]` pair via the
24
+ * variadic-option parser; this handler reshapes the flat array into
25
+ * the structured `answers[]` shape.
26
+ *
27
+ * Optional `--answer-comment <question-id> <text>` allows attaching a
28
+ * comment to a previously-supplied answer when the picked option's
29
+ * `commentRequired` is true (rare but present in the wire shape).
30
+ */
31
+ export interface PaymentsRateChangeOptions {
32
+ kind: payments.RateChangeKind;
33
+ rate: string;
34
+ engagement?: string;
35
+ comment?: string;
36
+ answer?: string[];
37
+ answerComment?: string[];
38
+ confirm?: boolean;
39
+ output: OutputFormat;
40
+ }
41
+ export declare function runPaymentsRateChange(opts: PaymentsRateChangeOptions): Promise<void>;
42
+ /**
43
+ * Render `rate show` as a sectioned multi-line block.
44
+ */
45
+ export declare function formatRateShow(p: payments.RateProjection): string;
46
+ export declare function formatRateChangeRequestEntity(r: payments.RateChangeRequest): string;
47
+ export declare function formatQuestionsBlock(items: payments.RateQuestion[]): string;
48
+ //# sourceMappingURL=rate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate.d.ts","sourceRoot":"","sources":["../../../src/commands/payments/rate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUxD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAa7E;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAelF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD1F;AA2CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,cAAc,GAAG,MAAM,CAoDjE;AAoBD,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAQnF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,GAAG,MAAM,CAiB3E"}
@@ -0,0 +1,229 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ import Table from "cli-table3";
4
+ import { payments } from "@ttctl/core";
5
+ import { getCliDryRun } from "../../lib/dry-run.js";
6
+ import { emitAddSuccess, emitDryRunSuccess, wrapListEnvelope } from "../../lib/envelopes.js";
7
+ import { emitResult } from "../../lib/output.js";
8
+ import { handlePaymentsError, loadAuthTokenOrExit } from "./shared.js";
9
+ /**
10
+ * Stderr message emitted when `rate change` is invoked without
11
+ * `--confirm`. Matches the safety pattern of other mutations.
12
+ */
13
+ const NO_CONFIRM_NOTE = "`rate change` requires `--confirm` (state-changing). Pass `--confirm` explicitly to acknowledge.";
14
+ /**
15
+ * Action handler for `ttctl payments rate show`. Shows the current rate
16
+ * + most-recent / ongoing rate-change request + market insight +
17
+ * validation rules as a unified projection.
18
+ */
19
+ export async function runPaymentsRateShow(output) {
20
+ const token = await loadAuthTokenOrExit("payments rate show", output);
21
+ let proj;
22
+ try {
23
+ proj = await payments.rate.show(token);
24
+ }
25
+ catch (err) {
26
+ handlePaymentsError("payments rate show", err, output);
27
+ }
28
+ emitResult(proj, output, {
29
+ pretty: (data) => formatRateShow(data),
30
+ });
31
+ }
32
+ /**
33
+ * Action handler for `ttctl payments rate questions`. Lists the form
34
+ * questions the user must answer when submitting `rate change`. Mirrors
35
+ * the `engagements breaks reasons list` discovery pattern.
36
+ */
37
+ export async function runPaymentsRateQuestions(output) {
38
+ const token = await loadAuthTokenOrExit("payments rate questions", output);
39
+ let items;
40
+ try {
41
+ items = await payments.rate.questions(token);
42
+ }
43
+ catch (err) {
44
+ handlePaymentsError("payments rate questions", err, output);
45
+ }
46
+ emitResult(wrapListEnvelope(items), output, {
47
+ pretty: (data) => formatQuestionsBlock(data.items),
48
+ table: (data) => formatQuestionsBlock(data.items),
49
+ empty: { command: "payments.rate.questions" },
50
+ });
51
+ }
52
+ export async function runPaymentsRateChange(opts) {
53
+ // Confirmation gate — always refuse without `--confirm`, regardless
54
+ // of TTY. The standard mutation safety pattern is "explicit confirm
55
+ // flag, no interactive override"; keeping the surface deterministic
56
+ // across TTY and non-TTY rules out an accidental apply from a stray
57
+ // keystroke at the prompt.
58
+ if (opts.confirm !== true) {
59
+ process.stderr.write(`${NO_CONFIRM_NOTE}\n`);
60
+ process.exit(1);
61
+ }
62
+ const token = await loadAuthTokenOrExit("payments rate change", opts.output);
63
+ const dryRun = getCliDryRun();
64
+ const answers = parseAnswerFlags(opts.answer ?? [], opts.answerComment ?? []);
65
+ const changeOpts = {
66
+ kind: opts.kind,
67
+ desiredRate: opts.rate,
68
+ answers,
69
+ };
70
+ if (opts.engagement !== undefined)
71
+ changeOpts.engagementId = opts.engagement;
72
+ if (opts.comment !== undefined)
73
+ changeOpts.talentComment = opts.comment;
74
+ let outcome;
75
+ try {
76
+ outcome = await payments.rate.change(token, changeOpts, { dryRun });
77
+ }
78
+ catch (err) {
79
+ handlePaymentsError("payments rate change", err, opts.output);
80
+ }
81
+ if (outcome.kind === "preview") {
82
+ emitDryRunSuccess({
83
+ operation: "payments.rate.change",
84
+ format: opts.output,
85
+ preview: outcome.preview,
86
+ });
87
+ return;
88
+ }
89
+ const { result: created, notice } = outcome;
90
+ emitAddSuccess({
91
+ operation: "payments.rate.change",
92
+ format: opts.output,
93
+ created,
94
+ prettySummary: `rate-change request ${created.id} (${created.requestType}, desired ${created.desiredRate})`,
95
+ prettyEntity: (r) => formatRateChangeRequestEntity(r),
96
+ notice: notice ?? undefined,
97
+ });
98
+ }
99
+ /**
100
+ * Parse the flat `--answer <q> <v>` repeats into structured
101
+ * answers[]. `--answer-comment <q> <text>` repeats attach comments by
102
+ * question id — the comment is matched to the most-recent `--answer`
103
+ * with the same question id.
104
+ *
105
+ * Throws via `process.exit(1)` on malformed input (odd-length arrays).
106
+ */
107
+ function parseAnswerFlags(answerFlat, commentFlat) {
108
+ if (answerFlat.length % 2 !== 0) {
109
+ process.stderr.write("`--answer` must be passed as `--answer <question-id> <value>` (two args per repeat). Example: `--answer q1 yes`.\n");
110
+ process.exit(1);
111
+ }
112
+ if (commentFlat.length % 2 !== 0) {
113
+ process.stderr.write("`--answer-comment` must be passed as `--answer-comment <question-id> <text>` (two args per repeat).\n");
114
+ process.exit(1);
115
+ }
116
+ const commentsByQ = new Map();
117
+ for (let i = 0; i < commentFlat.length; i += 2) {
118
+ const qid = commentFlat[i] ?? "";
119
+ const text = commentFlat[i + 1] ?? "";
120
+ commentsByQ.set(qid, text);
121
+ }
122
+ const answers = [];
123
+ for (let i = 0; i < answerFlat.length; i += 2) {
124
+ const questionId = answerFlat[i] ?? "";
125
+ const value = answerFlat[i + 1] ?? "";
126
+ const entry = { questionId, value };
127
+ const cmt = commentsByQ.get(questionId);
128
+ if (cmt !== undefined)
129
+ entry.comment = cmt;
130
+ answers.push(entry);
131
+ }
132
+ return answers;
133
+ }
134
+ /**
135
+ * Render `rate show` as a sectioned multi-line block.
136
+ */
137
+ export function formatRateShow(p) {
138
+ const lines = [];
139
+ lines.push("Current rate");
140
+ if (p.currentRateVerbose !== null) {
141
+ lines.push(` ${p.currentRateVerbose}`);
142
+ }
143
+ else if (p.currentRateDecimal !== null) {
144
+ lines.push(` ${p.currentRateDecimal}/hr`);
145
+ }
146
+ else {
147
+ lines.push(" (no rate on file)");
148
+ }
149
+ if (p.validation !== null) {
150
+ lines.push("");
151
+ lines.push("Validation");
152
+ if (p.validation.minRate !== null)
153
+ lines.push(` Min rate: ${p.validation.minRate}`);
154
+ if (p.validation.rateStep !== null)
155
+ lines.push(` Step: ${p.validation.rateStep}`);
156
+ }
157
+ if (p.marketInsight !== null) {
158
+ lines.push("");
159
+ lines.push("Market insight (hourly)");
160
+ if (p.marketInsight.currentRateCompetitive !== null) {
161
+ lines.push(` Current rate vs market: ${p.marketInsight.currentRateCompetitive ? "competitive" : "below market"}`);
162
+ }
163
+ if (p.marketInsight.recommendedRate !== null) {
164
+ lines.push(` Recommended rate: ${p.marketInsight.recommendedRate}`);
165
+ }
166
+ if (p.marketInsight.recentApplicationRate !== null) {
167
+ lines.push(` Recent app rate: ${p.marketInsight.recentApplicationRate}`);
168
+ }
169
+ }
170
+ if (p.ongoingChange !== null) {
171
+ lines.push("");
172
+ lines.push(`Ongoing rate-change request (${p.ongoingChange.statusVerbose})`);
173
+ appendRateChangeRequestLines(lines, p.ongoingChange);
174
+ }
175
+ if (p.lastChange !== null && (p.ongoingChange === null || p.lastChange.id !== p.ongoingChange.id)) {
176
+ lines.push("");
177
+ lines.push(`Last rate-change request (${p.lastChange.statusVerbose})`);
178
+ appendRateChangeRequestLines(lines, p.lastChange);
179
+ }
180
+ if (p.lastChange === null && p.ongoingChange === null) {
181
+ lines.push("");
182
+ lines.push("No rate-change history. Run `ttctl payments rate change --help` for the next step.");
183
+ }
184
+ return lines.join("\n");
185
+ }
186
+ function appendRateChangeRequestLines(lines, r) {
187
+ lines.push(` ID: ${r.id}`);
188
+ lines.push(` Created: ${r.createdAt}`);
189
+ lines.push(` Type: ${r.requestType}`);
190
+ lines.push(` Desired rate: ${r.desiredRate}`);
191
+ if (r.outcomeRate !== "" && r.outcomeRate !== r.desiredRate) {
192
+ lines.push(` Outcome rate: ${r.outcomeRate}`);
193
+ }
194
+ if (r.engagementId !== null) {
195
+ const job = r.engagementTitle ?? "(untitled)";
196
+ const client = r.clientName ?? "(no client)";
197
+ lines.push(` Engagement: ${r.engagementId} — ${client} / ${job}`);
198
+ }
199
+ if (r.talentComment !== "") {
200
+ lines.push(` Comment: ${r.talentComment}`);
201
+ }
202
+ }
203
+ export function formatRateChangeRequestEntity(r) {
204
+ const lines = [];
205
+ appendRateChangeRequestLines(lines, r);
206
+ // The shared appender prefixes each line with two spaces (matching
207
+ // the `rate show` sub-section format); `emitAddSuccess` adds its own
208
+ // 2-space `indent()` on top. Strip the leading indent so the final
209
+ // output has the correct nesting (matches `engagements breaks add`).
210
+ return lines.map((l) => l.replace(/^ {2}/, "")).join("\n");
211
+ }
212
+ export function formatQuestionsBlock(items) {
213
+ if (items.length === 0) {
214
+ return "(no questions returned by the server)";
215
+ }
216
+ const table = new Table({
217
+ head: ["id", "kind", "label", "options"],
218
+ colAligns: ["left", "left", "left", "left"],
219
+ wordWrap: true,
220
+ });
221
+ for (const q of items) {
222
+ const opts = q.options.length === 0
223
+ ? "(free text)"
224
+ : q.options.map((o) => `${o.label}${o.commentRequired ? " (comment required)" : ""}`).join(" / ");
225
+ table.push([q.id, q.kind, q.label, opts]);
226
+ }
227
+ return table.toString();
228
+ }
229
+ //# sourceMappingURL=rate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate.js","sourceRoot":"","sources":["../../../src/commands/payments/rate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { OutputFormat } from "../../lib/output.js";
2
+ export { loadAuthTokenOrExit } from "../profile/shared.js";
3
+ /**
4
+ * Thin wrapper around the shared CLI error router (#330) closed over
5
+ * `payments.PaymentsError` and {@link hintForPaymentsCode}. The router
6
+ * applies the envelope ABI (#128) branching uniformly across
7
+ * sub-domains.
8
+ */
9
+ export declare function handlePaymentsError(commandLabel: string, err: unknown, format?: OutputFormat): never;
10
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/payments/shared.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,YAAuB,GAAG,KAAK,CAE9G"}
@@ -0,0 +1,27 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ import { payments } from "@ttctl/core";
4
+ import { handleDomainError } from "../../lib/error-routing.js";
5
+ export { loadAuthTokenOrExit } from "../profile/shared.js";
6
+ /**
7
+ * Thin wrapper around the shared CLI error router (#330) closed over
8
+ * `payments.PaymentsError` and {@link hintForPaymentsCode}. The router
9
+ * applies the envelope ABI (#128) branching uniformly across
10
+ * sub-domains.
11
+ */
12
+ export function handlePaymentsError(commandLabel, err, format = "pretty") {
13
+ handleDomainError(commandLabel, err, payments.PaymentsError, format, hintForPaymentsCode);
14
+ }
15
+ function hintForPaymentsCode(code) {
16
+ switch (code) {
17
+ case "NOT_FOUND":
18
+ return "Verify the id (use `ttctl payments payouts list` / `ttctl payments methods list` to discover ids).";
19
+ case "MISSING_INPUT":
20
+ return "Inspect `--help` for the verb's required flags and re-run.";
21
+ case "MUTATION_ERROR":
22
+ return "The mutation was rejected by the server (often: rate below `minRate`, missing answers, ineligibility). Check the message above and try `ttctl payments rate questions` for the form catalog.";
23
+ default:
24
+ return undefined;
25
+ }
26
+ }
27
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/payments/shared.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB,EAAE,GAAY,EAAE,SAAuB,QAAQ;IACrG,iBAAiB,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAgC;IAC3D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW;YACd,OAAO,oGAAoG,CAAC;QAC9G,KAAK,eAAe;YAClB,OAAO,4DAA4D,CAAC;QACtE,KAAK,gBAAgB;YACnB,OAAO,8LAA8L,CAAC;QACxM;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}