@newpeak/barista-cli 0.1.8 → 0.1.10

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 (340) hide show
  1. package/README.md +10 -10
  2. package/dist/commands/liberica/index.d.ts.map +1 -1
  3. package/dist/commands/liberica/index.js +9 -0
  4. package/dist/commands/liberica/index.js.map +1 -1
  5. package/dist/commands/liberica/materials/create.d.ts.map +1 -1
  6. package/dist/commands/liberica/materials/create.js +13 -6
  7. package/dist/commands/liberica/materials/create.js.map +1 -1
  8. package/dist/commands/liberica/materials/update.js +1 -1
  9. package/dist/commands/liberica/materials/update.js.map +1 -1
  10. package/dist/commands/liberica/mould/get.d.ts +3 -0
  11. package/dist/commands/liberica/mould/get.d.ts.map +1 -0
  12. package/dist/commands/liberica/mould/get.js +90 -0
  13. package/dist/commands/liberica/mould/get.js.map +1 -0
  14. package/dist/commands/liberica/mould/index.d.ts +3 -0
  15. package/dist/commands/liberica/mould/index.d.ts.map +1 -0
  16. package/dist/commands/liberica/mould/index.js +15 -0
  17. package/dist/commands/liberica/mould/index.js.map +1 -0
  18. package/dist/commands/liberica/mould/list.d.ts +3 -0
  19. package/dist/commands/liberica/mould/list.d.ts.map +1 -0
  20. package/dist/commands/liberica/mould/list.js +114 -0
  21. package/dist/commands/liberica/mould/list.js.map +1 -0
  22. package/dist/commands/liberica/mould/set-status.d.ts +3 -0
  23. package/dist/commands/liberica/mould/set-status.d.ts.map +1 -0
  24. package/dist/commands/liberica/mould/set-status.js +84 -0
  25. package/dist/commands/liberica/mould/set-status.js.map +1 -0
  26. package/dist/commands/liberica/mould/stock-in.d.ts +3 -0
  27. package/dist/commands/liberica/mould/stock-in.d.ts.map +1 -0
  28. package/dist/commands/liberica/mould/stock-in.js +160 -0
  29. package/dist/commands/liberica/mould/stock-in.js.map +1 -0
  30. package/dist/commands/liberica/teams/index.d.ts +3 -0
  31. package/dist/commands/liberica/teams/index.d.ts.map +1 -0
  32. package/dist/commands/liberica/teams/index.js +15 -0
  33. package/dist/commands/liberica/teams/index.js.map +1 -0
  34. package/dist/commands/liberica/teams/issues/close.d.ts +3 -0
  35. package/dist/commands/liberica/teams/issues/close.d.ts.map +1 -0
  36. package/dist/commands/liberica/teams/issues/close.js +99 -0
  37. package/dist/commands/liberica/teams/issues/close.js.map +1 -0
  38. package/dist/commands/liberica/teams/issues/create.d.ts +3 -0
  39. package/dist/commands/liberica/teams/issues/create.d.ts.map +1 -0
  40. package/dist/commands/liberica/teams/issues/create.js +255 -0
  41. package/dist/commands/liberica/teams/issues/create.js.map +1 -0
  42. package/dist/commands/liberica/teams/issues/delete.d.ts +3 -0
  43. package/dist/commands/liberica/teams/issues/delete.d.ts.map +1 -0
  44. package/dist/commands/liberica/teams/issues/delete.js +55 -0
  45. package/dist/commands/liberica/teams/issues/delete.js.map +1 -0
  46. package/dist/commands/liberica/teams/issues/get.d.ts +3 -0
  47. package/dist/commands/liberica/teams/issues/get.d.ts.map +1 -0
  48. package/dist/commands/liberica/teams/issues/get.js +68 -0
  49. package/dist/commands/liberica/teams/issues/get.js.map +1 -0
  50. package/dist/commands/liberica/teams/issues/index.d.ts +3 -0
  51. package/dist/commands/liberica/teams/issues/index.d.ts.map +1 -0
  52. package/dist/commands/liberica/teams/issues/index.js +19 -0
  53. package/dist/commands/liberica/teams/issues/index.js.map +1 -0
  54. package/dist/commands/liberica/teams/issues/list.d.ts +3 -0
  55. package/dist/commands/liberica/teams/issues/list.d.ts.map +1 -0
  56. package/dist/commands/liberica/teams/issues/list.js +111 -0
  57. package/dist/commands/liberica/teams/issues/list.js.map +1 -0
  58. package/dist/commands/liberica/teams/issues/update.d.ts +3 -0
  59. package/dist/commands/liberica/teams/issues/update.d.ts.map +1 -0
  60. package/dist/commands/liberica/teams/issues/update.js +132 -0
  61. package/dist/commands/liberica/teams/issues/update.js.map +1 -0
  62. package/dist/commands/liberica/teams/projects/create.d.ts +3 -0
  63. package/dist/commands/liberica/teams/projects/create.d.ts.map +1 -0
  64. package/dist/commands/liberica/teams/projects/create.js +164 -0
  65. package/dist/commands/liberica/teams/projects/create.js.map +1 -0
  66. package/dist/commands/liberica/teams/projects/delete.d.ts +3 -0
  67. package/dist/commands/liberica/teams/projects/delete.d.ts.map +1 -0
  68. package/dist/commands/liberica/teams/projects/delete.js +55 -0
  69. package/dist/commands/liberica/teams/projects/delete.js.map +1 -0
  70. package/dist/commands/liberica/teams/projects/get.d.ts +3 -0
  71. package/dist/commands/liberica/teams/projects/get.d.ts.map +1 -0
  72. package/dist/commands/liberica/teams/projects/get.js +77 -0
  73. package/dist/commands/liberica/teams/projects/get.js.map +1 -0
  74. package/dist/commands/liberica/teams/projects/index.d.ts +3 -0
  75. package/dist/commands/liberica/teams/projects/index.d.ts.map +1 -0
  76. package/dist/commands/liberica/teams/projects/index.js +17 -0
  77. package/dist/commands/liberica/teams/projects/index.js.map +1 -0
  78. package/dist/commands/liberica/teams/projects/list.d.ts +3 -0
  79. package/dist/commands/liberica/teams/projects/list.d.ts.map +1 -0
  80. package/dist/commands/liberica/teams/projects/list.js +115 -0
  81. package/dist/commands/liberica/teams/projects/list.js.map +1 -0
  82. package/dist/commands/liberica/teams/projects/update.d.ts +3 -0
  83. package/dist/commands/liberica/teams/projects/update.d.ts.map +1 -0
  84. package/dist/commands/liberica/teams/projects/update.js +115 -0
  85. package/dist/commands/liberica/teams/projects/update.js.map +1 -0
  86. package/dist/commands/liberica/teams/tasks/create.d.ts +3 -0
  87. package/dist/commands/liberica/teams/tasks/create.d.ts.map +1 -0
  88. package/dist/commands/liberica/teams/tasks/create.js +88 -0
  89. package/dist/commands/liberica/teams/tasks/create.js.map +1 -0
  90. package/dist/commands/liberica/teams/tasks/delete.d.ts +3 -0
  91. package/dist/commands/liberica/teams/tasks/delete.d.ts.map +1 -0
  92. package/dist/commands/liberica/teams/tasks/delete.js +73 -0
  93. package/dist/commands/liberica/teams/tasks/delete.js.map +1 -0
  94. package/dist/commands/liberica/teams/tasks/get.d.ts +3 -0
  95. package/dist/commands/liberica/teams/tasks/get.d.ts.map +1 -0
  96. package/dist/commands/liberica/teams/tasks/get.js +51 -0
  97. package/dist/commands/liberica/teams/tasks/get.js.map +1 -0
  98. package/dist/commands/liberica/teams/tasks/index.d.ts +3 -0
  99. package/dist/commands/liberica/teams/tasks/index.d.ts.map +1 -0
  100. package/dist/commands/liberica/teams/tasks/index.js +17 -0
  101. package/dist/commands/liberica/teams/tasks/index.js.map +1 -0
  102. package/dist/commands/liberica/teams/tasks/list.d.ts +3 -0
  103. package/dist/commands/liberica/teams/tasks/list.d.ts.map +1 -0
  104. package/dist/commands/liberica/teams/tasks/list.js +82 -0
  105. package/dist/commands/liberica/teams/tasks/list.js.map +1 -0
  106. package/dist/commands/liberica/teams/tasks/update.d.ts +3 -0
  107. package/dist/commands/liberica/teams/tasks/update.d.ts.map +1 -0
  108. package/dist/commands/liberica/teams/tasks/update.js +114 -0
  109. package/dist/commands/liberica/teams/tasks/update.js.map +1 -0
  110. package/dist/commands/liberica/teams/work-logs/create.d.ts +3 -0
  111. package/dist/commands/liberica/teams/work-logs/create.d.ts.map +1 -0
  112. package/dist/commands/liberica/teams/work-logs/create.js +183 -0
  113. package/dist/commands/liberica/teams/work-logs/create.js.map +1 -0
  114. package/dist/commands/liberica/teams/work-logs/delete.d.ts +3 -0
  115. package/dist/commands/liberica/teams/work-logs/delete.d.ts.map +1 -0
  116. package/dist/commands/liberica/teams/work-logs/delete.js +55 -0
  117. package/dist/commands/liberica/teams/work-logs/delete.js.map +1 -0
  118. package/dist/commands/liberica/teams/work-logs/get.d.ts +3 -0
  119. package/dist/commands/liberica/teams/work-logs/get.d.ts.map +1 -0
  120. package/dist/commands/liberica/teams/work-logs/get.js +77 -0
  121. package/dist/commands/liberica/teams/work-logs/get.js.map +1 -0
  122. package/dist/commands/liberica/teams/work-logs/index.d.ts +3 -0
  123. package/dist/commands/liberica/teams/work-logs/index.d.ts.map +1 -0
  124. package/dist/commands/liberica/teams/work-logs/index.js +17 -0
  125. package/dist/commands/liberica/teams/work-logs/index.js.map +1 -0
  126. package/dist/commands/liberica/teams/work-logs/list.d.ts +3 -0
  127. package/dist/commands/liberica/teams/work-logs/list.d.ts.map +1 -0
  128. package/dist/commands/liberica/teams/work-logs/list.js +109 -0
  129. package/dist/commands/liberica/teams/work-logs/list.js.map +1 -0
  130. package/dist/commands/liberica/teams/work-logs/update.d.ts +3 -0
  131. package/dist/commands/liberica/teams/work-logs/update.d.ts.map +1 -0
  132. package/dist/commands/liberica/teams/work-logs/update.js +105 -0
  133. package/dist/commands/liberica/teams/work-logs/update.js.map +1 -0
  134. package/dist/commands/liberica/transfer-in-forms/batch-delete.d.ts +3 -0
  135. package/dist/commands/liberica/transfer-in-forms/batch-delete.d.ts.map +1 -0
  136. package/dist/commands/liberica/transfer-in-forms/batch-delete.js +147 -0
  137. package/dist/commands/liberica/transfer-in-forms/batch-delete.js.map +1 -0
  138. package/dist/commands/liberica/transfer-in-forms/batch-review.d.ts +3 -0
  139. package/dist/commands/liberica/transfer-in-forms/batch-review.d.ts.map +1 -0
  140. package/dist/commands/liberica/transfer-in-forms/batch-review.js +146 -0
  141. package/dist/commands/liberica/transfer-in-forms/batch-review.js.map +1 -0
  142. package/dist/commands/liberica/transfer-in-forms/batch-unreview.d.ts +3 -0
  143. package/dist/commands/liberica/transfer-in-forms/batch-unreview.d.ts.map +1 -0
  144. package/dist/commands/liberica/transfer-in-forms/batch-unreview.js +147 -0
  145. package/dist/commands/liberica/transfer-in-forms/batch-unreview.js.map +1 -0
  146. package/dist/commands/liberica/transfer-in-forms/create.d.ts +3 -0
  147. package/dist/commands/liberica/transfer-in-forms/create.d.ts.map +1 -0
  148. package/dist/commands/liberica/transfer-in-forms/create.js +168 -0
  149. package/dist/commands/liberica/transfer-in-forms/create.js.map +1 -0
  150. package/dist/commands/liberica/transfer-in-forms/get.d.ts +3 -0
  151. package/dist/commands/liberica/transfer-in-forms/get.d.ts.map +1 -0
  152. package/dist/commands/liberica/transfer-in-forms/get.js +94 -0
  153. package/dist/commands/liberica/transfer-in-forms/get.js.map +1 -0
  154. package/dist/commands/liberica/transfer-in-forms/index.d.ts +3 -0
  155. package/dist/commands/liberica/transfer-in-forms/index.d.ts.map +1 -0
  156. package/dist/commands/liberica/transfer-in-forms/index.js +21 -0
  157. package/dist/commands/liberica/transfer-in-forms/index.js.map +1 -0
  158. package/dist/commands/liberica/transfer-in-forms/list.d.ts +3 -0
  159. package/dist/commands/liberica/transfer-in-forms/list.d.ts.map +1 -0
  160. package/dist/commands/liberica/transfer-in-forms/list.js +94 -0
  161. package/dist/commands/liberica/transfer-in-forms/list.js.map +1 -0
  162. package/dist/commands/liberica/transfer-in-forms/update.d.ts +3 -0
  163. package/dist/commands/liberica/transfer-in-forms/update.d.ts.map +1 -0
  164. package/dist/commands/liberica/transfer-in-forms/update.js +206 -0
  165. package/dist/commands/liberica/transfer-in-forms/update.js.map +1 -0
  166. package/dist/commands/liberica/transfer-out-forms/batch-delete.d.ts +3 -0
  167. package/dist/commands/liberica/transfer-out-forms/batch-delete.d.ts.map +1 -0
  168. package/dist/commands/liberica/transfer-out-forms/batch-delete.js +80 -0
  169. package/dist/commands/liberica/transfer-out-forms/batch-delete.js.map +1 -0
  170. package/dist/commands/liberica/transfer-out-forms/batch-review.d.ts +3 -0
  171. package/dist/commands/liberica/transfer-out-forms/batch-review.d.ts.map +1 -0
  172. package/dist/commands/liberica/transfer-out-forms/batch-review.js +142 -0
  173. package/dist/commands/liberica/transfer-out-forms/batch-review.js.map +1 -0
  174. package/dist/commands/liberica/transfer-out-forms/batch-unreview.d.ts +3 -0
  175. package/dist/commands/liberica/transfer-out-forms/batch-unreview.d.ts.map +1 -0
  176. package/dist/commands/liberica/transfer-out-forms/batch-unreview.js +53 -0
  177. package/dist/commands/liberica/transfer-out-forms/batch-unreview.js.map +1 -0
  178. package/dist/commands/liberica/transfer-out-forms/create.d.ts +3 -0
  179. package/dist/commands/liberica/transfer-out-forms/create.d.ts.map +1 -0
  180. package/dist/commands/liberica/transfer-out-forms/create.js +191 -0
  181. package/dist/commands/liberica/transfer-out-forms/create.js.map +1 -0
  182. package/dist/commands/liberica/transfer-out-forms/get.d.ts +3 -0
  183. package/dist/commands/liberica/transfer-out-forms/get.d.ts.map +1 -0
  184. package/dist/commands/liberica/transfer-out-forms/get.js +87 -0
  185. package/dist/commands/liberica/transfer-out-forms/get.js.map +1 -0
  186. package/dist/commands/liberica/transfer-out-forms/index.d.ts +3 -0
  187. package/dist/commands/liberica/transfer-out-forms/index.d.ts.map +1 -0
  188. package/dist/commands/liberica/transfer-out-forms/index.js +21 -0
  189. package/dist/commands/liberica/transfer-out-forms/index.js.map +1 -0
  190. package/dist/commands/liberica/transfer-out-forms/list.d.ts +3 -0
  191. package/dist/commands/liberica/transfer-out-forms/list.d.ts.map +1 -0
  192. package/dist/commands/liberica/transfer-out-forms/list.js +118 -0
  193. package/dist/commands/liberica/transfer-out-forms/list.js.map +1 -0
  194. package/dist/commands/liberica/transfer-out-forms/update.d.ts +3 -0
  195. package/dist/commands/liberica/transfer-out-forms/update.d.ts.map +1 -0
  196. package/dist/commands/liberica/transfer-out-forms/update.js +197 -0
  197. package/dist/commands/liberica/transfer-out-forms/update.js.map +1 -0
  198. package/dist/core/api/client.d.ts +59 -0
  199. package/dist/core/api/client.d.ts.map +1 -1
  200. package/dist/core/api/client.js +1106 -136
  201. package/dist/core/api/client.js.map +1 -1
  202. package/dist/index.js +1 -1
  203. package/dist/index.js.map +1 -1
  204. package/dist/types/index.d.ts +7 -0
  205. package/dist/types/index.d.ts.map +1 -1
  206. package/dist/types/index.js +5 -0
  207. package/dist/types/index.js.map +1 -1
  208. package/dist/types/material.d.ts +1 -1
  209. package/dist/types/material.d.ts.map +1 -1
  210. package/dist/types/mould-stock-in.d.ts +70 -0
  211. package/dist/types/mould-stock-in.d.ts.map +1 -0
  212. package/dist/types/mould-stock-in.js +3 -0
  213. package/dist/types/mould-stock-in.js.map +1 -0
  214. package/dist/types/mould.d.ts +61 -0
  215. package/dist/types/mould.d.ts.map +1 -0
  216. package/dist/types/mould.js +2 -0
  217. package/dist/types/mould.js.map +1 -0
  218. package/dist/types/team-issue.d.ts +87 -0
  219. package/dist/types/team-issue.d.ts.map +1 -0
  220. package/dist/types/team-issue.js +2 -0
  221. package/dist/types/team-issue.js.map +1 -0
  222. package/dist/types/team-project.d.ts +68 -0
  223. package/dist/types/team-project.d.ts.map +1 -0
  224. package/dist/types/team-project.js +2 -0
  225. package/dist/types/team-project.js.map +1 -0
  226. package/dist/types/team-task.d.ts +91 -0
  227. package/dist/types/team-task.d.ts.map +1 -0
  228. package/dist/types/team-task.js +2 -0
  229. package/dist/types/team-task.js.map +1 -0
  230. package/dist/types/team-work-log.d.ts +81 -0
  231. package/dist/types/team-work-log.d.ts.map +1 -0
  232. package/dist/types/team-work-log.js +2 -0
  233. package/dist/types/team-work-log.js.map +1 -0
  234. package/dist/types/transfer-in-form.d.ts +242 -0
  235. package/dist/types/transfer-in-form.d.ts.map +1 -0
  236. package/dist/types/transfer-in-form.js +2 -0
  237. package/dist/types/transfer-in-form.js.map +1 -0
  238. package/dist/types/transfer-out-form.d.ts +252 -0
  239. package/dist/types/transfer-out-form.d.ts.map +1 -0
  240. package/dist/types/transfer-out-form.js +4 -0
  241. package/dist/types/transfer-out-form.js.map +1 -0
  242. package/docs/commands/liberica/teams/issues/close.md +161 -0
  243. package/docs/commands/liberica/teams/issues/create.md +212 -0
  244. package/docs/commands/liberica/teams/issues/delete.md +179 -0
  245. package/docs/commands/liberica/teams/issues/get.md +167 -0
  246. package/docs/commands/liberica/teams/issues/list.md +182 -0
  247. package/docs/commands/liberica/teams/issues/tests-design.md +341 -0
  248. package/docs/commands/liberica/teams/issues/update.md +202 -0
  249. package/docs/commands/liberica/teams/projects/create.md +174 -0
  250. package/docs/commands/liberica/teams/projects/delete.md +180 -0
  251. package/docs/commands/liberica/teams/projects/get.md +150 -0
  252. package/docs/commands/liberica/teams/projects/list.md +179 -0
  253. package/docs/commands/liberica/teams/projects/update.md +175 -0
  254. package/docs/commands/liberica/teams/tasks/create.md +163 -0
  255. package/docs/commands/liberica/teams/tasks/delete.md +109 -0
  256. package/docs/commands/liberica/teams/tasks/get.md +121 -0
  257. package/docs/commands/liberica/teams/tasks/list.md +148 -0
  258. package/docs/commands/liberica/teams/tasks/update.md +158 -0
  259. package/docs/commands/liberica/teams/work-logs/create.md +151 -0
  260. package/docs/commands/liberica/teams/work-logs/delete.md +130 -0
  261. package/docs/commands/liberica/teams/work-logs/get.md +131 -0
  262. package/docs/commands/liberica/teams/work-logs/list.md +153 -0
  263. package/docs/commands/liberica/teams/work-logs/update.md +150 -0
  264. package/docs/commands/liberica/transfer-in-forms/batch-delete.md +157 -0
  265. package/docs/commands/liberica/transfer-in-forms/batch-review.md +157 -0
  266. package/docs/commands/liberica/transfer-in-forms/batch-unreview.md +157 -0
  267. package/docs/commands/liberica/transfer-in-forms/create.md +220 -0
  268. package/docs/commands/liberica/transfer-in-forms/get.md +221 -0
  269. package/docs/commands/liberica/transfer-in-forms/list.md +242 -0
  270. package/docs/commands/liberica/transfer-in-forms/update.md +185 -0
  271. package/docs/commands/liberica/transfer-out-forms/batch-delete.md +187 -0
  272. package/docs/commands/liberica/transfer-out-forms/batch-review.md +157 -0
  273. package/docs/commands/liberica/transfer-out-forms/batch-unreview.md +157 -0
  274. package/docs/commands/liberica/transfer-out-forms/create.md +280 -0
  275. package/docs/commands/liberica/transfer-out-forms/get.md +211 -0
  276. package/docs/commands/liberica/transfer-out-forms/list.md +233 -0
  277. package/docs/commands/liberica/transfer-out-forms/update.md +286 -0
  278. package/package.json +1 -1
  279. package/src/commands/liberica/index.ts +10 -1
  280. package/src/commands/liberica/materials/create.ts +13 -5
  281. package/src/commands/liberica/materials/update.ts +1 -1
  282. package/src/commands/liberica/mould/get.ts +111 -0
  283. package/src/commands/liberica/mould/index.ts +17 -0
  284. package/src/commands/liberica/mould/list.ts +157 -0
  285. package/src/commands/liberica/mould/set-status.ts +99 -0
  286. package/src/commands/liberica/mould/stock-in.ts +165 -0
  287. package/src/commands/liberica/teams/index.ts +17 -0
  288. package/src/commands/liberica/teams/issues/close.ts +104 -0
  289. package/src/commands/liberica/teams/issues/create.ts +254 -0
  290. package/src/commands/liberica/teams/issues/delete.ts +58 -0
  291. package/src/commands/liberica/teams/issues/get.ts +78 -0
  292. package/src/commands/liberica/teams/issues/index.ts +21 -0
  293. package/src/commands/liberica/teams/issues/list.ts +144 -0
  294. package/src/commands/liberica/teams/issues/update.ts +141 -0
  295. package/src/commands/liberica/teams/projects/create.ts +159 -0
  296. package/src/commands/liberica/teams/projects/delete.ts +58 -0
  297. package/src/commands/liberica/teams/projects/get.ts +87 -0
  298. package/src/commands/liberica/teams/projects/index.ts +19 -0
  299. package/src/commands/liberica/teams/projects/list.ts +147 -0
  300. package/src/commands/liberica/teams/projects/update.ts +117 -0
  301. package/src/commands/liberica/teams/tasks/create.ts +102 -0
  302. package/src/commands/liberica/teams/tasks/delete.ts +92 -0
  303. package/src/commands/liberica/teams/tasks/get.ts +64 -0
  304. package/src/commands/liberica/teams/tasks/index.ts +19 -0
  305. package/src/commands/liberica/teams/tasks/list.ts +102 -0
  306. package/src/commands/liberica/teams/tasks/update.ts +122 -0
  307. package/src/commands/liberica/teams/work-logs/create.ts +204 -0
  308. package/src/commands/liberica/teams/work-logs/delete.ts +58 -0
  309. package/src/commands/liberica/teams/work-logs/get.ts +87 -0
  310. package/src/commands/liberica/teams/work-logs/index.ts +19 -0
  311. package/src/commands/liberica/teams/work-logs/list.ts +141 -0
  312. package/src/commands/liberica/teams/work-logs/update.ts +120 -0
  313. package/src/commands/liberica/transfer-in-forms/batch-delete.ts +152 -0
  314. package/src/commands/liberica/transfer-in-forms/batch-review.ts +151 -0
  315. package/src/commands/liberica/transfer-in-forms/batch-unreview.ts +152 -0
  316. package/src/commands/liberica/transfer-in-forms/create.ts +179 -0
  317. package/src/commands/liberica/transfer-in-forms/get.ts +107 -0
  318. package/src/commands/liberica/transfer-in-forms/index.ts +23 -0
  319. package/src/commands/liberica/transfer-in-forms/list.ts +97 -0
  320. package/src/commands/liberica/transfer-in-forms/update.ts +213 -0
  321. package/src/commands/liberica/transfer-out-forms/batch-delete.ts +83 -0
  322. package/src/commands/liberica/transfer-out-forms/batch-review.ts +148 -0
  323. package/src/commands/liberica/transfer-out-forms/batch-unreview.ts +56 -0
  324. package/src/commands/liberica/transfer-out-forms/create.ts +194 -0
  325. package/src/commands/liberica/transfer-out-forms/get.ts +114 -0
  326. package/src/commands/liberica/transfer-out-forms/index.ts +23 -0
  327. package/src/commands/liberica/transfer-out-forms/list.ts +125 -0
  328. package/src/commands/liberica/transfer-out-forms/update.ts +197 -0
  329. package/src/core/api/client.ts +1351 -121
  330. package/src/index.ts +1 -1
  331. package/src/types/index.ts +7 -0
  332. package/src/types/material.ts +1 -1
  333. package/src/types/mould-stock-in.ts +82 -0
  334. package/src/types/mould.ts +74 -0
  335. package/src/types/team-issue.ts +94 -0
  336. package/src/types/team-project.ts +74 -0
  337. package/src/types/team-task.ts +98 -0
  338. package/src/types/team-work-log.ts +87 -0
  339. package/src/types/transfer-in-form.ts +265 -0
  340. package/src/types/transfer-out-form.ts +290 -0
@@ -0,0 +1,141 @@
1
+ import { Command, Option } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../../core/config/manager.js';
4
+ import { apiClient } from '../../../../core/api/client.js';
5
+ import { Environment } from '../../../../types/index.js';
6
+ import {
7
+ UpdateTeamIssueRequest,
8
+ IssueType,
9
+ TeamIssueStatus,
10
+ TeamIssuePriority,
11
+ } from '../../../../types/team-issue.js';
12
+
13
+ export function createTeamIssueUpdateCommand(): Command {
14
+ const updateCommand = new Command('update');
15
+ updateCommand
16
+ .description('Update team issue information')
17
+ .argument('<issue-id>', 'Issue ID')
18
+ .option('--title <string>', 'Issue title')
19
+ .option('--desc <string>', 'Issue description')
20
+ .option('--type <string>', 'Issue type: BUG/REQUIREMENT/QUESTION')
21
+ .option('--status <string>', 'Status: OPEN/IN_PROGRESS/RESOLVED/CLOSED')
22
+ .option('--priority <string>', 'Priority: LOW/MEDIUM/HIGH/URGENT')
23
+ .option('--project-id <string>', 'Project ID')
24
+ .option('--project-code <string>', 'Project code')
25
+ .option('--project-name <string>', 'Project name')
26
+ .option('--reporter-name <string>', 'Reporter name')
27
+ .option('--reporter-email <string>', 'Reporter email')
28
+ .option('--assign-to <string>', 'Assignee user IDs (comma-separated)')
29
+ .option('--tags <string>', 'Tags (comma-separated)')
30
+ .addOption(new Option('--env <string>').hideHelp())
31
+ .addOption(new Option('--tenant <string>').hideHelp())
32
+ .option('--json', 'Output as JSON');
33
+
34
+ updateCommand.action(async (issueId: string, options: Record<string, unknown>) => {
35
+ const context = configManager.getCurrentContext();
36
+ const environment = context.environment as Environment;
37
+ const tenant = context.tenant;
38
+
39
+ const fields: Partial<UpdateTeamIssueRequest> = { teamIssueId: issueId };
40
+ if (options.title) fields.issueTitle = options.title as string;
41
+ if (options.desc) fields.issueDesc = options.desc as string;
42
+ if (options.type) fields.issueType = options.type as IssueType;
43
+ if (options.status) fields.teamIssueStatus = options.status as TeamIssueStatus;
44
+ if (options.priority) fields.priority = options.priority as TeamIssuePriority;
45
+ if (options.projectId) fields.projectId = options.projectId as string;
46
+ if (options.projectCode) fields.projectCode = options.projectCode as string;
47
+ if (options.projectName) fields.projectName = options.projectName as string;
48
+ if (options.reporterName) fields.reporterName = options.reporterName as string;
49
+ if (options.reporterEmail) fields.reporterEmail = options.reporterEmail as string;
50
+ if (options.assignTo) {
51
+ fields.assignTo = (options.assignTo as string).split(',').map((s) => s.trim());
52
+ }
53
+ if (options.tags) {
54
+ fields.tags = (options.tags as string).split(',').map((s) => s.trim());
55
+ }
56
+
57
+ const fieldsToUpdate = Object.keys(fields).filter((k) => k !== 'teamIssueId');
58
+ if (fieldsToUpdate.length === 0) {
59
+ console.error(
60
+ chalk.red(
61
+ '\nāœ— No fields to update. Provide at least one option: --title, --desc, --type, --status, --priority, --project-id, --project-code, --project-name, --reporter-name, --reporter-email, --assign-to, --tags\n'
62
+ )
63
+ );
64
+ process.exit(1);
65
+ }
66
+
67
+ try {
68
+ const existingResponse = await apiClient.getTeamIssue(environment, tenant, issueId);
69
+
70
+ if (!existingResponse.success || !existingResponse.data) {
71
+ if (options.json) {
72
+ console.log(JSON.stringify({ success: false, error: existingResponse.error }, null, 2));
73
+ } else {
74
+ console.error(chalk.red(`\nāœ— Failed to fetch existing issue: ${existingResponse.error?.message || 'Unknown error'}`));
75
+ if (existingResponse.error?.code) {
76
+ console.error(chalk.gray(` Error code: ${existingResponse.error.code}`));
77
+ }
78
+ console.error();
79
+ }
80
+ process.exit(1);
81
+ }
82
+
83
+ const existing = existingResponse.data as any;
84
+
85
+ const updateData: UpdateTeamIssueRequest = {
86
+ teamIssueId: issueId,
87
+ issueTitle: fields.issueTitle || existing.issueTitle,
88
+ issueDesc: fields.issueDesc || existing.issueDesc,
89
+ issueType: fields.issueType || existing.issueType,
90
+ teamIssueStatus: fields.teamIssueStatus || existing.teamIssueStatus,
91
+ priority: fields.priority || existing.priority,
92
+ projectId: fields.projectId || existing.projectId,
93
+ projectCode: fields.projectCode || existing.projectCode,
94
+ projectName: fields.projectName || existing.projectName,
95
+ reporterName: fields.reporterName || existing.reporterName,
96
+ reporterEmail: fields.reporterEmail || existing.reporterEmail,
97
+ // assignTo is already an array from API, don't wrap it again
98
+ assignTo: fields.assignTo || (Array.isArray(existing.assignTo) ? existing.assignTo : undefined),
99
+ // tags is already an array from API
100
+ tags: fields.tags || (Array.isArray(existing.tags) ? existing.tags : undefined),
101
+ };
102
+
103
+ const response = await apiClient.updateTeamIssue(environment, tenant, updateData);
104
+
105
+ if (response.success) {
106
+ if (options.json) {
107
+ console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
108
+ } else {
109
+ console.log(chalk.green('\nāœ“ Team issue updated successfully\n'));
110
+ }
111
+ } else {
112
+ if (options.json) {
113
+ console.log(JSON.stringify({ success: false, error: response.error }, null, 2));
114
+ } else {
115
+ console.error(chalk.red(`\nāœ— Update failed: ${response.error?.message || 'Unknown error'}`));
116
+ if (response.error?.code) {
117
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
118
+ }
119
+ console.error();
120
+ }
121
+ process.exit(1);
122
+ }
123
+ } catch (error) {
124
+ if (options.json) {
125
+ console.log(
126
+ JSON.stringify({
127
+ success: false,
128
+ error: { message: error instanceof Error ? error.message : 'Unknown error' },
129
+ })
130
+ );
131
+ } else {
132
+ console.error(
133
+ chalk.red(`\nāœ— Error: ${error instanceof Error ? error.message : 'Unknown error'}\n`)
134
+ );
135
+ }
136
+ process.exit(1);
137
+ }
138
+ });
139
+
140
+ return updateCommand;
141
+ }
@@ -0,0 +1,159 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { apiClient } from '../../../../core/api/client.js';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { CreateTeamProjectRequest, ProjectStatus, ProjectPriority, TeamProject } from '../../../../types/team-project.js';
6
+
7
+ function formatTable(data: CreateTeamProjectRequest): string {
8
+ const lines: string[] = [];
9
+ lines.push(` ${chalk.gray('Name:')} ${data.projectName}`);
10
+ lines.push(` ${chalk.gray('Code:')} ${data.projectCode}`);
11
+ if (data.projectDesc) lines.push(` ${chalk.gray('Description:')} ${data.projectDesc}`);
12
+ if (data.projectStatus) lines.push(` ${chalk.gray('Status:')} ${data.projectStatus}`);
13
+ if (data.priority) lines.push(` ${chalk.gray('Priority:')} ${data.priority}`);
14
+ if (data.startDate) lines.push(` ${chalk.gray('Start Date:')} ${data.startDate}`);
15
+ if (data.endDate) lines.push(` ${chalk.gray('End Date:')} ${data.endDate}`);
16
+ if (data.managerId) lines.push(` ${chalk.gray('Manager ID:')} ${data.managerId}`);
17
+ if (data.teamId) lines.push(` ${chalk.gray('Team ID:')} ${data.teamId}`);
18
+ return lines.join('\n');
19
+ }
20
+
21
+ export function createTeamProjectCreateCommand(): Command {
22
+ const cmd = new Command('create');
23
+ cmd.description('Create a new team project');
24
+
25
+ cmd
26
+ .option('--name <string>', 'Project name (required)')
27
+ .option('--code <string>', 'Project code (required)')
28
+ .option('--desc <string>', 'Project description')
29
+ .option('--status <string>', 'Project status: ACTIVE/INACTIVE/ARCHIVED', 'ACTIVE')
30
+ .option('--priority <string>', 'Priority: LOW/MEDIUM/HIGH/URGENT')
31
+ .option('--start-date <string>', 'Start date (YYYY-MM-DD)')
32
+ .option('--end-date <string>', 'End date (YYYY-MM-DD)')
33
+ .option('--manager-id <string>', 'Manager user ID')
34
+ .option('--team-id <string>', 'Team ID')
35
+ .option('--dry-run', 'Preview without making API call')
36
+ .option('--json', 'Output as JSON');
37
+
38
+ cmd.action(async () => {
39
+ const context = configManager.getCurrentContext();
40
+ const opts = cmd.opts();
41
+
42
+ const name = opts.name as string | undefined;
43
+ const code = opts.code as string | undefined;
44
+ const desc = opts.desc as string | undefined;
45
+ const statusInput = opts.status as string | undefined;
46
+ const priorityInput = opts.priority as string | undefined;
47
+ const startDate = opts.startDate as string | undefined;
48
+ const endDate = opts.endDate as string | undefined;
49
+ const managerId = opts.managerId as string | undefined;
50
+ const teamId = opts.teamId as string | undefined;
51
+ const dryRun = opts.dryRun === true;
52
+ const jsonOutput = opts.json === true;
53
+
54
+ // Validate required fields
55
+ if (!name) {
56
+ if (jsonOutput) {
57
+ console.log(JSON.stringify({ success: false, error: { code: 'MISSING_OPTION', message: 'Option --name is required' } }));
58
+ } else {
59
+ console.error(chalk.red('\nāœ— Error: --name is required\n'));
60
+ }
61
+ process.exit(1);
62
+ }
63
+
64
+ if (!code) {
65
+ if (jsonOutput) {
66
+ console.log(JSON.stringify({ success: false, error: { code: 'MISSING_OPTION', message: 'Option --code is required' } }));
67
+ } else {
68
+ console.error(chalk.red('\nāœ— Error: --code is required\n'));
69
+ }
70
+ process.exit(1);
71
+ }
72
+
73
+ // Validate status
74
+ let projectStatus: ProjectStatus | undefined;
75
+ if (statusInput) {
76
+ if (!['ACTIVE', 'INACTIVE', 'ARCHIVED'].includes(statusInput)) {
77
+ if (jsonOutput) {
78
+ console.log(JSON.stringify({ success: false, error: { code: 'INVALID_OPTION', message: 'Invalid --status. Valid values: ACTIVE, INACTIVE, ARCHIVED' } }));
79
+ } else {
80
+ console.error(chalk.red('\nāœ— Error: Invalid --status\n Valid values: ACTIVE, INACTIVE, ARCHIVED\n'));
81
+ }
82
+ process.exit(1);
83
+ }
84
+ projectStatus = statusInput as ProjectStatus;
85
+ }
86
+
87
+ // Validate priority
88
+ const priority = priorityInput && ['LOW', 'MEDIUM', 'HIGH', 'URGENT'].includes(priorityInput)
89
+ ? priorityInput as ProjectPriority
90
+ : undefined;
91
+
92
+ const data: CreateTeamProjectRequest = {
93
+ projectName: name,
94
+ projectCode: code,
95
+ projectDesc: desc,
96
+ projectStatus: projectStatus,
97
+ priority: priority,
98
+ startDate: startDate,
99
+ endDate: endDate,
100
+ managerId: managerId,
101
+ teamId: teamId,
102
+ };
103
+
104
+ if (dryRun) {
105
+ if (jsonOutput) {
106
+ console.log(JSON.stringify({ success: true, dryRun: true, data }));
107
+ } else {
108
+ console.log(chalk.bold('\nšŸ” Dry-Run Mode: No changes will be made\n'));
109
+ console.log(' Project to be created:');
110
+ console.log(formatTable(data));
111
+ console.log();
112
+ }
113
+ return;
114
+ }
115
+
116
+ if (!jsonOutput) {
117
+ console.log(chalk.bold('\nšŸ“ Creating Team Project\n'));
118
+ }
119
+
120
+ const response = await apiClient.createTeamProject(context.environment, context.tenant, data);
121
+
122
+ if (!response.success) {
123
+ const errorMsg = response.error?.message || 'Failed to create team project';
124
+ const errorCode = response.error?.code || 'CREATE_TEAM_PROJECT_ERROR';
125
+ if (jsonOutput) {
126
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
127
+ } else {
128
+ console.error(chalk.red(`\nāœ— Failed to create team project: ${errorMsg}`));
129
+ if (response.error?.code) {
130
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
131
+ }
132
+ console.error();
133
+ }
134
+ process.exit(1);
135
+ }
136
+
137
+ if (response.success) {
138
+ const project = response.data as TeamProject | undefined;
139
+
140
+ if (jsonOutput) {
141
+ console.log(JSON.stringify({ success: true, data: project }));
142
+ } else {
143
+ console.log(chalk.green('āœ“ Team project created successfully\n'));
144
+ if (project?.teamProjectId) console.log(` ${chalk.gray('Project ID:')} ${chalk.green(project.teamProjectId)}`);
145
+ if (project?.projectCode) console.log(` ${chalk.gray('Code:')} ${project.projectCode}`);
146
+ if (project?.projectName) console.log(` ${chalk.gray('Name:')} ${project.projectName}`);
147
+ if (project?.projectDesc) console.log(` ${chalk.gray('Description:')} ${project.projectDesc}`);
148
+ if (project?.projectStatus) console.log(` ${chalk.gray('Status:')} ${project.projectStatus}`);
149
+ if (project?.priority) console.log(` ${chalk.gray('Priority:')} ${project.priority}`);
150
+ if (project?.startDate) console.log(` ${chalk.gray('Start Date:')} ${project.startDate}`);
151
+ if (project?.endDate) console.log(` ${chalk.gray('End Date:')} ${project.endDate}`);
152
+ if (project?.createTime) console.log(` ${chalk.gray('Created:')} ${project.createTime}`);
153
+ console.log();
154
+ }
155
+ }
156
+ });
157
+
158
+ return cmd;
159
+ }
@@ -0,0 +1,58 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../../core/config/manager.js';
4
+ import { apiClient } from '../../../../core/api/client.js';
5
+
6
+ export function createTeamProjectDeleteCommand(): Command {
7
+ const deleteCommand = new Command('delete');
8
+ deleteCommand
9
+ .description('Delete a team project')
10
+ .argument('<project-id>', 'Project ID')
11
+ .option('--force', 'Skip confirmation prompt')
12
+ .option('--dry-run', 'Preview the operation without executing')
13
+ .option('--json', 'Output as JSON');
14
+
15
+ deleteCommand.action(async (projectId: string, options: Record<string, unknown>) => {
16
+ const context = configManager.getCurrentContext();
17
+ const jsonOutput = options.json === true;
18
+
19
+ if (!projectId || projectId.trim() === '') {
20
+ console.error(chalk.red('\nāœ— Project ID is required\n'));
21
+ process.exit(1);
22
+ }
23
+
24
+ if (options.dryRun) {
25
+ if (jsonOutput) {
26
+ console.log(JSON.stringify({ success: true, dryRun: true, projectId }));
27
+ } else {
28
+ console.log(chalk.bold('\nšŸ—‘ļø Delete Project (Dry Run)\n'));
29
+ console.log(chalk.gray(` Project ID: ${projectId}`));
30
+ console.log(chalk.cyan('\n This operation will delete the project.\n'));
31
+ }
32
+ return;
33
+ }
34
+
35
+ if (!options.force) {
36
+ if (!jsonOutput) {
37
+ console.log(chalk.bold('\nšŸ—‘ļø Delete Project\n'));
38
+ console.log(chalk.gray(` Project ID: ${projectId}`));
39
+ console.log(chalk.yellow('\n āš ļø Add --force to confirm deletion\n'));
40
+ }
41
+ process.exit(0);
42
+ }
43
+
44
+ const response = await apiClient.deleteTeamProject(context.environment, context.tenant, projectId);
45
+ if (response.success) {
46
+ if (jsonOutput) {
47
+ console.log(JSON.stringify({ success: true, projectId }));
48
+ } else {
49
+ console.log(chalk.green(`\nāœ“ Project ${projectId} deleted\n`));
50
+ }
51
+ } else {
52
+ console.error(chalk.red(`\nāœ— Failed: ${response.error?.message || 'Unknown error'}\n`));
53
+ process.exit(1);
54
+ }
55
+ });
56
+
57
+ return deleteCommand;
58
+ }
@@ -0,0 +1,87 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../../core/config/manager.js';
4
+ import { apiClient } from '../../../../core/api/client.js';
5
+ import { Environment } from '../../../../types/index.js';
6
+ import { TeamProject } from '../../../../types/team-project.js';
7
+
8
+ export function createTeamProjectGetCommand(): Command {
9
+ const getCommand = new Command('get');
10
+ getCommand.description('Get team project details by ID');
11
+ getCommand.arguments('<project-id>');
12
+ getCommand.option('--json', 'Output as JSON');
13
+
14
+ getCommand.action(async (projectId: string, options: Record<string, unknown>) => {
15
+ const context = configManager.getCurrentContext();
16
+ const environment = (options.env as Environment) || context.environment;
17
+ const tenant = (options.tenant as string) || context.tenant;
18
+
19
+ if (!projectId || projectId.trim() === '') {
20
+ console.error(chalk.red('\nāœ— Project ID is required\n'));
21
+ process.exit(1);
22
+ }
23
+
24
+ try {
25
+ const response = await apiClient.getTeamProject(environment, tenant, projectId);
26
+
27
+ if (!response.success) {
28
+ const errorCode = response.error?.code || 'UNKNOWN_ERROR';
29
+ const errorMessage = response.error?.message || 'Unknown error';
30
+ console.error(chalk.red(`\nāœ— Error: ${errorMessage} (${errorCode})\n`));
31
+ process.exit(1);
32
+ }
33
+
34
+ const project = response.data as TeamProject | null;
35
+
36
+ if (!project) {
37
+ console.error(chalk.red('\nāœ— Project not found\n'));
38
+ process.exit(1);
39
+ }
40
+
41
+ if (options.json) {
42
+ console.log(JSON.stringify({
43
+ success: true,
44
+ data: project,
45
+ }, null, 2));
46
+ return;
47
+ }
48
+
49
+ console.log(chalk.bold('\nšŸ“ Project Details\n'));
50
+ console.log(` ${chalk.gray('ID:')} ${project.teamProjectId}`);
51
+ console.log(` ${chalk.gray('Code:')} ${project.projectCode || '-'}`);
52
+ console.log(` ${chalk.gray('Name:')} ${project.projectName}`);
53
+ if (project.projectDesc) {
54
+ console.log(` ${chalk.gray('Description:')} ${project.projectDesc}`);
55
+ }
56
+ console.log(` ${chalk.gray('Status:')} ${project.projectStatus || '-'}`);
57
+ console.log(` ${chalk.gray('Priority:')} ${project.priority || '-'}`);
58
+ if (project.teamName) {
59
+ console.log(` ${chalk.gray('Team:')} ${project.teamName}`);
60
+ }
61
+ if (project.managerName) {
62
+ console.log(` ${chalk.gray('Manager:')} ${project.managerName}`);
63
+ }
64
+ if (project.startDate) {
65
+ console.log(` ${chalk.gray('Start Date:')} ${project.startDate}`);
66
+ }
67
+ if (project.endDate) {
68
+ console.log(` ${chalk.gray('End Date:')} ${project.endDate}`);
69
+ }
70
+ if (project.memberCount !== undefined) {
71
+ console.log(` ${chalk.gray('Members:')} ${project.memberCount}`);
72
+ }
73
+ if (project.createBy) {
74
+ console.log(` ${chalk.gray('Created By:')} ${project.createBy} (${project.createTime})`);
75
+ }
76
+ if (project.updateBy) {
77
+ console.log(` ${chalk.gray('Updated By:')} ${project.updateBy} (${project.updateTime})`);
78
+ }
79
+ console.log();
80
+ } catch (error) {
81
+ console.error(chalk.red(`\nāœ— Unexpected error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
82
+ process.exit(1);
83
+ }
84
+ });
85
+
86
+ return getCommand;
87
+ }
@@ -0,0 +1,19 @@
1
+ import { Command } from 'commander';
2
+ import { createTeamProjectListCommand } from './list.js';
3
+ import { createTeamProjectGetCommand } from './get.js';
4
+ import { createTeamProjectDeleteCommand } from './delete.js';
5
+ import { createTeamProjectCreateCommand } from './create.js';
6
+ import { createTeamProjectUpdateCommand } from './update.js';
7
+
8
+ export function createTeamProjectsCommand(): Command {
9
+ const projectsCommand = new Command('projects');
10
+ projectsCommand.description('Manage team projects');
11
+
12
+ projectsCommand.addCommand(createTeamProjectListCommand());
13
+ projectsCommand.addCommand(createTeamProjectGetCommand());
14
+ projectsCommand.addCommand(createTeamProjectDeleteCommand());
15
+ projectsCommand.addCommand(createTeamProjectCreateCommand());
16
+ projectsCommand.addCommand(createTeamProjectUpdateCommand());
17
+
18
+ return projectsCommand;
19
+ }
@@ -0,0 +1,147 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import Table from 'cli-table3';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { apiClient } from '../../../../core/api/client.js';
6
+ import {
7
+ TeamProjectQueryParams,
8
+ TeamProjectListResponse,
9
+ ProjectStatus,
10
+ ProjectPriority,
11
+ } from '../../../../types/team-project.js';
12
+ import { Environment } from '../../../../types/index.js';
13
+
14
+ export function createTeamProjectListCommand(): Command {
15
+ const listCommand = new Command('list');
16
+ listCommand.description('List team projects with pagination');
17
+
18
+ listCommand
19
+ .option('-p, --page <number>', 'Page number', '1')
20
+ .option('-s, --size <number>', 'Page size', '20')
21
+ .option('--status <string>', 'Filter by status (ACTIVE/INACTIVE/ARCHIVED)')
22
+ .option('--name <string>', 'Filter by project name (fuzzy search)')
23
+ .option('--code <string>', 'Filter by project code (fuzzy search)')
24
+ .option('--priority <string>', 'Filter by priority (LOW/MEDIUM/HIGH/URGENT)')
25
+ .option('--team-id <string>', 'Filter by team ID')
26
+ .option('--manager-id <string>', 'Filter by manager ID')
27
+ .option('--json', 'Output as JSON')
28
+ .action(async (options) => {
29
+ const context = configManager.getCurrentContext();
30
+ const environment = (options.env as Environment) || context.environment;
31
+ const tenant = options.tenant || context.tenant;
32
+
33
+ const page = parseInt(options.page as string, 10) - 1; // API uses 0-based
34
+ const size = parseInt(options.size as string, 10);
35
+
36
+ const params: TeamProjectQueryParams = {
37
+ pageNo: page,
38
+ pageSize: size,
39
+ };
40
+
41
+ if (options.status) {
42
+ params.projectStatus = options.status as ProjectStatus;
43
+ }
44
+ if (options.name) {
45
+ params.projectName = options.name as string;
46
+ }
47
+ if (options.code) {
48
+ params.projectCode = options.code as string;
49
+ }
50
+ if (options.priority) {
51
+ params.priority = options.priority as ProjectPriority;
52
+ }
53
+ if (options.teamId) {
54
+ params.teamId = options.teamId as string;
55
+ }
56
+ if (options.managerId) {
57
+ params.managerId = options.managerId as string;
58
+ }
59
+
60
+ const response = await apiClient.listTeamProjects(environment, tenant, params);
61
+
62
+ if (!response.success) {
63
+ console.error(chalk.red(`\nāœ— Failed to list team projects: ${response.error?.message || 'Unknown error'}`));
64
+ if (response.error?.code) {
65
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
66
+ }
67
+ console.error();
68
+ process.exit(1);
69
+ }
70
+
71
+ const data = response.data as TeamProjectListResponse | null;
72
+
73
+ if (!data) {
74
+ if (options.json) {
75
+ console.log(JSON.stringify({ success: true, data: { items: [], pagination: { pageNo: 0, pageSize: 20, totalRows: 0 } } }, null, 2));
76
+ } else {
77
+ console.log(chalk.bold('\nšŸ“ Team Project List\n'));
78
+ console.log(chalk.gray(' No team projects found\n'));
79
+ }
80
+ return;
81
+ }
82
+
83
+ if (options.json) {
84
+ console.log(
85
+ JSON.stringify(
86
+ {
87
+ success: true,
88
+ data: {
89
+ items: data.rows || [],
90
+ pagination: {
91
+ pageNo: data.pageNo,
92
+ pageSize: data.pageSize,
93
+ totalRows: data.totalRows,
94
+ },
95
+ },
96
+ },
97
+ null,
98
+ 2
99
+ )
100
+ );
101
+ return;
102
+ }
103
+
104
+ const records = data.rows || [];
105
+
106
+ if (records.length === 0) {
107
+ console.log(chalk.bold('\nšŸ“ Team Project List\n'));
108
+ console.log(chalk.gray(' No team projects found\n'));
109
+ return;
110
+ }
111
+
112
+ console.log(chalk.bold('\nšŸ“ Team Project List\n'));
113
+
114
+ const table = new Table({
115
+ head: [chalk.bold('ID'), chalk.bold('Code'), chalk.bold('Name'), chalk.bold('Status'), chalk.bold('Priority'), chalk.bold('Team'), chalk.bold('Manager')],
116
+ colWidths: [12, 15, 25, 12, 10, 18, 18],
117
+ style: {
118
+ head: [],
119
+ border: [],
120
+ },
121
+ });
122
+
123
+ for (const project of records) {
124
+ const statusColor = project.projectStatus === 'ACTIVE' ? chalk.green : project.projectStatus === 'INACTIVE' ? chalk.yellow : chalk.gray;
125
+ table.push([
126
+ project.teamProjectId,
127
+ project.projectCode || '-',
128
+ project.projectName.substring(0, 24) + (project.projectName.length > 24 ? '...' : ''),
129
+ statusColor(project.projectStatus || '-'),
130
+ project.priority || '-',
131
+ project.teamName || '-',
132
+ project.managerName || '-',
133
+ ]);
134
+ }
135
+
136
+ console.log(table.toString());
137
+ console.log();
138
+ console.log(
139
+ chalk.gray(
140
+ ` Total: ${data.totalRows} | Page: ${data.pageNo} / ${Math.ceil(data.totalRows / data.pageSize) || 1} | Size: ${data.pageSize}`
141
+ )
142
+ );
143
+ console.log();
144
+ });
145
+
146
+ return listCommand;
147
+ }