@pachca/cli 2026.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/README.md +352 -0
  2. package/README.template.md +190 -0
  3. package/bin/dev.js +5 -0
  4. package/bin/run.js +5 -0
  5. package/dist/base-command.d.ts +74 -0
  6. package/dist/base-command.d.ts.map +1 -0
  7. package/dist/base-command.js +242 -0
  8. package/dist/base-command.js.map +1 -0
  9. package/dist/client.d.ts +45 -0
  10. package/dist/client.d.ts.map +1 -0
  11. package/dist/client.js +258 -0
  12. package/dist/client.js.map +1 -0
  13. package/dist/commands/api.d.ts +38 -0
  14. package/dist/commands/api.d.ts.map +1 -0
  15. package/dist/commands/api.js +212 -0
  16. package/dist/commands/api.js.map +1 -0
  17. package/dist/commands/auth/list.d.ts +23 -0
  18. package/dist/commands/auth/list.d.ts.map +1 -0
  19. package/dist/commands/auth/list.js +39 -0
  20. package/dist/commands/auth/list.js.map +1 -0
  21. package/dist/commands/auth/login.d.ts +23 -0
  22. package/dist/commands/auth/login.d.ts.map +1 -0
  23. package/dist/commands/auth/login.js +140 -0
  24. package/dist/commands/auth/login.js.map +1 -0
  25. package/dist/commands/auth/logout.d.ts +26 -0
  26. package/dist/commands/auth/logout.d.ts.map +1 -0
  27. package/dist/commands/auth/logout.js +81 -0
  28. package/dist/commands/auth/logout.js.map +1 -0
  29. package/dist/commands/auth/refresh.d.ts +26 -0
  30. package/dist/commands/auth/refresh.d.ts.map +1 -0
  31. package/dist/commands/auth/refresh.js +68 -0
  32. package/dist/commands/auth/refresh.js.map +1 -0
  33. package/dist/commands/auth/status.d.ts +23 -0
  34. package/dist/commands/auth/status.d.ts.map +1 -0
  35. package/dist/commands/auth/status.js +51 -0
  36. package/dist/commands/auth/status.js.map +1 -0
  37. package/dist/commands/auth/switch.d.ts +26 -0
  38. package/dist/commands/auth/switch.d.ts.map +1 -0
  39. package/dist/commands/auth/switch.js +37 -0
  40. package/dist/commands/auth/switch.js.map +1 -0
  41. package/dist/commands/bots/list-events.d.ts +31 -0
  42. package/dist/commands/bots/list-events.d.ts.map +1 -0
  43. package/dist/commands/bots/list-events.js +85 -0
  44. package/dist/commands/bots/list-events.js.map +1 -0
  45. package/dist/commands/bots/remove-event.d.ts +30 -0
  46. package/dist/commands/bots/remove-event.d.ts.map +1 -0
  47. package/dist/commands/bots/remove-event.js +48 -0
  48. package/dist/commands/bots/remove-event.js.map +1 -0
  49. package/dist/commands/bots/update.d.ts +34 -0
  50. package/dist/commands/bots/update.d.ts.map +1 -0
  51. package/dist/commands/bots/update.js +78 -0
  52. package/dist/commands/bots/update.js.map +1 -0
  53. package/dist/commands/changelog.d.ts +23 -0
  54. package/dist/commands/changelog.d.ts.map +1 -0
  55. package/dist/commands/changelog.js +40 -0
  56. package/dist/commands/changelog.js.map +1 -0
  57. package/dist/commands/chats/archive.d.ts +32 -0
  58. package/dist/commands/chats/archive.d.ts.map +1 -0
  59. package/dist/commands/chats/archive.js +35 -0
  60. package/dist/commands/chats/archive.js.map +1 -0
  61. package/dist/commands/chats/create.d.ts +33 -0
  62. package/dist/commands/chats/create.d.ts.map +1 -0
  63. package/dist/commands/chats/create.js +91 -0
  64. package/dist/commands/chats/create.js.map +1 -0
  65. package/dist/commands/chats/get.d.ts +33 -0
  66. package/dist/commands/chats/get.d.ts.map +1 -0
  67. package/dist/commands/chats/get.js +35 -0
  68. package/dist/commands/chats/get.js.map +1 -0
  69. package/dist/commands/chats/list.d.ts +37 -0
  70. package/dist/commands/chats/list.d.ts.map +1 -0
  71. package/dist/commands/chats/list.js +117 -0
  72. package/dist/commands/chats/list.js.map +1 -0
  73. package/dist/commands/chats/unarchive.d.ts +32 -0
  74. package/dist/commands/chats/unarchive.d.ts.map +1 -0
  75. package/dist/commands/chats/unarchive.js +34 -0
  76. package/dist/commands/chats/unarchive.js.map +1 -0
  77. package/dist/commands/chats/update.d.ts +35 -0
  78. package/dist/commands/chats/update.d.ts.map +1 -0
  79. package/dist/commands/chats/update.js +52 -0
  80. package/dist/commands/chats/update.js.map +1 -0
  81. package/dist/commands/commands.d.ts +24 -0
  82. package/dist/commands/commands.d.ts.map +1 -0
  83. package/dist/commands/commands.js +71 -0
  84. package/dist/commands/commands.js.map +1 -0
  85. package/dist/commands/common/custom-properties.d.ts +29 -0
  86. package/dist/commands/common/custom-properties.d.ts.map +1 -0
  87. package/dist/commands/common/custom-properties.js +68 -0
  88. package/dist/commands/common/custom-properties.js.map +1 -0
  89. package/dist/commands/common/direct-url.d.ts +35 -0
  90. package/dist/commands/common/direct-url.d.ts.map +1 -0
  91. package/dist/commands/common/direct-url.js +123 -0
  92. package/dist/commands/common/direct-url.js.map +1 -0
  93. package/dist/commands/common/get-exports.d.ts +34 -0
  94. package/dist/commands/common/get-exports.d.ts.map +1 -0
  95. package/dist/commands/common/get-exports.js +47 -0
  96. package/dist/commands/common/get-exports.js.map +1 -0
  97. package/dist/commands/common/request-export.d.ts +33 -0
  98. package/dist/commands/common/request-export.d.ts.map +1 -0
  99. package/dist/commands/common/request-export.js +90 -0
  100. package/dist/commands/common/request-export.js.map +1 -0
  101. package/dist/commands/common/uploads.d.ts +28 -0
  102. package/dist/commands/common/uploads.d.ts.map +1 -0
  103. package/dist/commands/common/uploads.js +29 -0
  104. package/dist/commands/common/uploads.js.map +1 -0
  105. package/dist/commands/config/get.d.ts +26 -0
  106. package/dist/commands/config/get.d.ts.map +1 -0
  107. package/dist/commands/config/get.js +28 -0
  108. package/dist/commands/config/get.js.map +1 -0
  109. package/dist/commands/config/list.d.ts +23 -0
  110. package/dist/commands/config/list.d.ts.map +1 -0
  111. package/dist/commands/config/list.js +49 -0
  112. package/dist/commands/config/list.js.map +1 -0
  113. package/dist/commands/config/set.d.ts +27 -0
  114. package/dist/commands/config/set.d.ts.map +1 -0
  115. package/dist/commands/config/set.js +30 -0
  116. package/dist/commands/config/set.js.map +1 -0
  117. package/dist/commands/doctor.d.ts +24 -0
  118. package/dist/commands/doctor.d.ts.map +1 -0
  119. package/dist/commands/doctor.js +175 -0
  120. package/dist/commands/doctor.js.map +1 -0
  121. package/dist/commands/group-tags/create.d.ts +29 -0
  122. package/dist/commands/group-tags/create.d.ts.map +1 -0
  123. package/dist/commands/group-tags/create.js +74 -0
  124. package/dist/commands/group-tags/create.js.map +1 -0
  125. package/dist/commands/group-tags/delete.d.ts +32 -0
  126. package/dist/commands/group-tags/delete.d.ts.map +1 -0
  127. package/dist/commands/group-tags/delete.js +45 -0
  128. package/dist/commands/group-tags/delete.js.map +1 -0
  129. package/dist/commands/group-tags/get.d.ts +32 -0
  130. package/dist/commands/group-tags/get.d.ts.map +1 -0
  131. package/dist/commands/group-tags/get.js +32 -0
  132. package/dist/commands/group-tags/get.js.map +1 -0
  133. package/dist/commands/group-tags/list-users.d.ts +36 -0
  134. package/dist/commands/group-tags/list-users.d.ts.map +1 -0
  135. package/dist/commands/group-tags/list-users.js +90 -0
  136. package/dist/commands/group-tags/list-users.js.map +1 -0
  137. package/dist/commands/group-tags/list.d.ts +32 -0
  138. package/dist/commands/group-tags/list.d.ts.map +1 -0
  139. package/dist/commands/group-tags/list.js +91 -0
  140. package/dist/commands/group-tags/list.js.map +1 -0
  141. package/dist/commands/group-tags/update.d.ts +33 -0
  142. package/dist/commands/group-tags/update.d.ts.map +1 -0
  143. package/dist/commands/group-tags/update.js +75 -0
  144. package/dist/commands/group-tags/update.js.map +1 -0
  145. package/dist/commands/guide.d.ts +26 -0
  146. package/dist/commands/guide.d.ts.map +1 -0
  147. package/dist/commands/guide.js +86 -0
  148. package/dist/commands/guide.js.map +1 -0
  149. package/dist/commands/introspect.d.ts +27 -0
  150. package/dist/commands/introspect.d.ts.map +1 -0
  151. package/dist/commands/introspect.js +82 -0
  152. package/dist/commands/introspect.js.map +1 -0
  153. package/dist/commands/link-previews/add.d.ts +33 -0
  154. package/dist/commands/link-previews/add.d.ts.map +1 -0
  155. package/dist/commands/link-previews/add.js +76 -0
  156. package/dist/commands/link-previews/add.js.map +1 -0
  157. package/dist/commands/members/add-group-tags.d.ts +32 -0
  158. package/dist/commands/members/add-group-tags.d.ts.map +1 -0
  159. package/dist/commands/members/add-group-tags.js +73 -0
  160. package/dist/commands/members/add-group-tags.js.map +1 -0
  161. package/dist/commands/members/add.d.ts +34 -0
  162. package/dist/commands/members/add.d.ts.map +1 -0
  163. package/dist/commands/members/add.js +82 -0
  164. package/dist/commands/members/add.js.map +1 -0
  165. package/dist/commands/members/leave.d.ts +33 -0
  166. package/dist/commands/members/leave.d.ts.map +1 -0
  167. package/dist/commands/members/leave.js +48 -0
  168. package/dist/commands/members/leave.js.map +1 -0
  169. package/dist/commands/members/list.d.ts +37 -0
  170. package/dist/commands/members/list.d.ts.map +1 -0
  171. package/dist/commands/members/list.js +97 -0
  172. package/dist/commands/members/list.js.map +1 -0
  173. package/dist/commands/members/remove-group-tag.d.ts +36 -0
  174. package/dist/commands/members/remove-group-tag.d.ts.map +1 -0
  175. package/dist/commands/members/remove-group-tag.js +49 -0
  176. package/dist/commands/members/remove-group-tag.js.map +1 -0
  177. package/dist/commands/members/remove.d.ts +37 -0
  178. package/dist/commands/members/remove.d.ts.map +1 -0
  179. package/dist/commands/members/remove.js +53 -0
  180. package/dist/commands/members/remove.js.map +1 -0
  181. package/dist/commands/members/update.d.ts +36 -0
  182. package/dist/commands/members/update.d.ts.map +1 -0
  183. package/dist/commands/members/update.js +39 -0
  184. package/dist/commands/members/update.js.map +1 -0
  185. package/dist/commands/messages/create.d.ts +38 -0
  186. package/dist/commands/messages/create.d.ts.map +1 -0
  187. package/dist/commands/messages/create.js +128 -0
  188. package/dist/commands/messages/create.js.map +1 -0
  189. package/dist/commands/messages/delete.d.ts +33 -0
  190. package/dist/commands/messages/delete.d.ts.map +1 -0
  191. package/dist/commands/messages/delete.js +50 -0
  192. package/dist/commands/messages/delete.js.map +1 -0
  193. package/dist/commands/messages/get.d.ts +33 -0
  194. package/dist/commands/messages/get.d.ts.map +1 -0
  195. package/dist/commands/messages/get.js +37 -0
  196. package/dist/commands/messages/get.js.map +1 -0
  197. package/dist/commands/messages/list.d.ts +33 -0
  198. package/dist/commands/messages/list.d.ts.map +1 -0
  199. package/dist/commands/messages/list.js +127 -0
  200. package/dist/commands/messages/list.js.map +1 -0
  201. package/dist/commands/messages/pin.d.ts +32 -0
  202. package/dist/commands/messages/pin.d.ts.map +1 -0
  203. package/dist/commands/messages/pin.js +35 -0
  204. package/dist/commands/messages/pin.js.map +1 -0
  205. package/dist/commands/messages/unpin.d.ts +33 -0
  206. package/dist/commands/messages/unpin.d.ts.map +1 -0
  207. package/dist/commands/messages/unpin.js +49 -0
  208. package/dist/commands/messages/unpin.js.map +1 -0
  209. package/dist/commands/messages/update.d.ts +38 -0
  210. package/dist/commands/messages/update.d.ts.map +1 -0
  211. package/dist/commands/messages/update.js +74 -0
  212. package/dist/commands/messages/update.js.map +1 -0
  213. package/dist/commands/profile/delete-status.d.ts +28 -0
  214. package/dist/commands/profile/delete-status.d.ts.map +1 -0
  215. package/dist/commands/profile/delete-status.js +44 -0
  216. package/dist/commands/profile/delete-status.js.map +1 -0
  217. package/dist/commands/profile/get-info.d.ts +27 -0
  218. package/dist/commands/profile/get-info.d.ts.map +1 -0
  219. package/dist/commands/profile/get-info.js +26 -0
  220. package/dist/commands/profile/get-info.js.map +1 -0
  221. package/dist/commands/profile/get-status.d.ts +28 -0
  222. package/dist/commands/profile/get-status.d.ts.map +1 -0
  223. package/dist/commands/profile/get-status.js +29 -0
  224. package/dist/commands/profile/get-status.js.map +1 -0
  225. package/dist/commands/profile/get.d.ts +28 -0
  226. package/dist/commands/profile/get.d.ts.map +1 -0
  227. package/dist/commands/profile/get.js +29 -0
  228. package/dist/commands/profile/get.js.map +1 -0
  229. package/dist/commands/profile/update-status.d.ts +33 -0
  230. package/dist/commands/profile/update-status.d.ts.map +1 -0
  231. package/dist/commands/profile/update-status.js +95 -0
  232. package/dist/commands/profile/update-status.js.map +1 -0
  233. package/dist/commands/reactions/add.d.ts +35 -0
  234. package/dist/commands/reactions/add.d.ts.map +1 -0
  235. package/dist/commands/reactions/add.js +82 -0
  236. package/dist/commands/reactions/add.js.map +1 -0
  237. package/dist/commands/reactions/list.d.ts +36 -0
  238. package/dist/commands/reactions/list.d.ts.map +1 -0
  239. package/dist/commands/reactions/list.js +91 -0
  240. package/dist/commands/reactions/list.js.map +1 -0
  241. package/dist/commands/reactions/remove.d.ts +35 -0
  242. package/dist/commands/reactions/remove.d.ts.map +1 -0
  243. package/dist/commands/reactions/remove.js +88 -0
  244. package/dist/commands/reactions/remove.js.map +1 -0
  245. package/dist/commands/read-member/list-readers.d.ts +35 -0
  246. package/dist/commands/read-member/list-readers.d.ts.map +1 -0
  247. package/dist/commands/read-member/list-readers.js +89 -0
  248. package/dist/commands/read-member/list-readers.js.map +1 -0
  249. package/dist/commands/search/list-chats.d.ts +38 -0
  250. package/dist/commands/search/list-chats.d.ts.map +1 -0
  251. package/dist/commands/search/list-chats.js +122 -0
  252. package/dist/commands/search/list-chats.js.map +1 -0
  253. package/dist/commands/search/list-messages.d.ts +38 -0
  254. package/dist/commands/search/list-messages.d.ts.map +1 -0
  255. package/dist/commands/search/list-messages.js +121 -0
  256. package/dist/commands/search/list-messages.js.map +1 -0
  257. package/dist/commands/search/list-users.d.ts +37 -0
  258. package/dist/commands/search/list-users.d.ts.map +1 -0
  259. package/dist/commands/search/list-users.js +117 -0
  260. package/dist/commands/search/list-users.js.map +1 -0
  261. package/dist/commands/security/list.d.ts +39 -0
  262. package/dist/commands/security/list.d.ts.map +1 -0
  263. package/dist/commands/security/list.js +155 -0
  264. package/dist/commands/security/list.js.map +1 -0
  265. package/dist/commands/tasks/create.d.ts +36 -0
  266. package/dist/commands/tasks/create.d.ts.map +1 -0
  267. package/dist/commands/tasks/create.js +111 -0
  268. package/dist/commands/tasks/create.js.map +1 -0
  269. package/dist/commands/tasks/delete.d.ts +33 -0
  270. package/dist/commands/tasks/delete.d.ts.map +1 -0
  271. package/dist/commands/tasks/delete.js +50 -0
  272. package/dist/commands/tasks/delete.js.map +1 -0
  273. package/dist/commands/tasks/get.d.ts +33 -0
  274. package/dist/commands/tasks/get.d.ts.map +1 -0
  275. package/dist/commands/tasks/get.js +37 -0
  276. package/dist/commands/tasks/get.js.map +1 -0
  277. package/dist/commands/tasks/list.d.ts +31 -0
  278. package/dist/commands/tasks/list.d.ts.map +1 -0
  279. package/dist/commands/tasks/list.js +87 -0
  280. package/dist/commands/tasks/list.js.map +1 -0
  281. package/dist/commands/tasks/update.d.ts +42 -0
  282. package/dist/commands/tasks/update.d.ts.map +1 -0
  283. package/dist/commands/tasks/update.js +90 -0
  284. package/dist/commands/tasks/update.js.map +1 -0
  285. package/dist/commands/thread/add.d.ts +33 -0
  286. package/dist/commands/thread/add.d.ts.map +1 -0
  287. package/dist/commands/thread/add.js +36 -0
  288. package/dist/commands/thread/add.js.map +1 -0
  289. package/dist/commands/thread/get.d.ts +32 -0
  290. package/dist/commands/thread/get.d.ts.map +1 -0
  291. package/dist/commands/thread/get.js +32 -0
  292. package/dist/commands/thread/get.js.map +1 -0
  293. package/dist/commands/users/create.d.ts +30 -0
  294. package/dist/commands/users/create.d.ts.map +1 -0
  295. package/dist/commands/users/create.js +78 -0
  296. package/dist/commands/users/create.js.map +1 -0
  297. package/dist/commands/users/delete.d.ts +33 -0
  298. package/dist/commands/users/delete.d.ts.map +1 -0
  299. package/dist/commands/users/delete.js +50 -0
  300. package/dist/commands/users/delete.js.map +1 -0
  301. package/dist/commands/users/get-status.d.ts +33 -0
  302. package/dist/commands/users/get-status.d.ts.map +1 -0
  303. package/dist/commands/users/get-status.js +37 -0
  304. package/dist/commands/users/get-status.js.map +1 -0
  305. package/dist/commands/users/get.d.ts +33 -0
  306. package/dist/commands/users/get.d.ts.map +1 -0
  307. package/dist/commands/users/get.js +37 -0
  308. package/dist/commands/users/get.js.map +1 -0
  309. package/dist/commands/users/list.d.ts +32 -0
  310. package/dist/commands/users/list.d.ts.map +1 -0
  311. package/dist/commands/users/list.js +92 -0
  312. package/dist/commands/users/list.js.map +1 -0
  313. package/dist/commands/users/remove-status.d.ts +33 -0
  314. package/dist/commands/users/remove-status.d.ts.map +1 -0
  315. package/dist/commands/users/remove-status.js +50 -0
  316. package/dist/commands/users/remove-status.js.map +1 -0
  317. package/dist/commands/users/update-status.d.ts +38 -0
  318. package/dist/commands/users/update-status.d.ts.map +1 -0
  319. package/dist/commands/users/update-status.js +101 -0
  320. package/dist/commands/users/update-status.js.map +1 -0
  321. package/dist/commands/users/update.d.ts +44 -0
  322. package/dist/commands/users/update.d.ts.map +1 -0
  323. package/dist/commands/users/update.js +90 -0
  324. package/dist/commands/users/update.js.map +1 -0
  325. package/dist/commands/version.d.ts +23 -0
  326. package/dist/commands/version.d.ts.map +1 -0
  327. package/dist/commands/version.js +23 -0
  328. package/dist/commands/version.js.map +1 -0
  329. package/dist/commands/views/open.d.ts +32 -0
  330. package/dist/commands/views/open.d.ts.map +1 -0
  331. package/dist/commands/views/open.js +103 -0
  332. package/dist/commands/views/open.js.map +1 -0
  333. package/dist/data/alternatives.json +73 -0
  334. package/dist/data/changelog.json +328 -0
  335. package/dist/data/workflows.json +990 -0
  336. package/dist/get-version.d.ts +7 -0
  337. package/dist/get-version.d.ts.map +1 -0
  338. package/dist/get-version.js +23 -0
  339. package/dist/get-version.js.map +1 -0
  340. package/dist/hooks/command-not-found.d.ts +4 -0
  341. package/dist/hooks/command-not-found.d.ts.map +1 -0
  342. package/dist/hooks/command-not-found.js +51 -0
  343. package/dist/hooks/command-not-found.js.map +1 -0
  344. package/dist/hooks/init.d.ts +4 -0
  345. package/dist/hooks/init.d.ts.map +1 -0
  346. package/dist/hooks/init.js +95 -0
  347. package/dist/hooks/init.js.map +1 -0
  348. package/dist/hooks/postrun.d.ts +4 -0
  349. package/dist/hooks/postrun.d.ts.map +1 -0
  350. package/dist/hooks/postrun.js +67 -0
  351. package/dist/hooks/postrun.js.map +1 -0
  352. package/dist/index.d.ts +2 -0
  353. package/dist/index.d.ts.map +1 -0
  354. package/dist/index.js +2 -0
  355. package/dist/index.js.map +1 -0
  356. package/dist/output.d.ts +26 -0
  357. package/dist/output.d.ts.map +1 -0
  358. package/dist/output.js +175 -0
  359. package/dist/output.js.map +1 -0
  360. package/dist/profiles.d.ts +52 -0
  361. package/dist/profiles.d.ts.map +1 -0
  362. package/dist/profiles.js +192 -0
  363. package/dist/profiles.js.map +1 -0
  364. package/dist/utils.d.ts +21 -0
  365. package/dist/utils.d.ts.map +1 -0
  366. package/dist/utils.js +62 -0
  367. package/dist/utils.js.map +1 -0
  368. package/oclif.manifest.json +12266 -0
  369. package/package.json +73 -0
@@ -0,0 +1,155 @@
1
+ // Auto-generated from openapi.yaml — DO NOT EDIT
2
+ import { Flags } from '@oclif/core';
3
+ import { BaseCommand } from '../../base-command.js';
4
+ import * as clack from '@clack/prompts';
5
+ export default class SecurityList extends BaseCommand {
6
+ static description = "Журнал аудита событий";
7
+ static examples = [
8
+ "Получить журнал аудита событий:\n $ pachca security list",
9
+ "Мониторинг подозрительных входов:\n $ pachca security list",
10
+ "Экспорт логов за период:\n $ pachca security list"
11
+ ];
12
+ static scope = "audit_events:read";
13
+ static plan = "corporation";
14
+ static apiMethod = "GET";
15
+ static apiPath = "/audit_events";
16
+ static defaultColumns = ["id", "created_at", "event_key", "entity_id", "entity_type"];
17
+ static args = {};
18
+ static flags = {
19
+ ...BaseCommand.baseFlags,
20
+ 'start-time': Flags.string({
21
+ description: "Начальная метка времени (включительно)",
22
+ }),
23
+ 'end-time': Flags.string({
24
+ description: "Конечная метка времени (исключительно)",
25
+ }),
26
+ 'event-key': Flags.string({
27
+ description: "Фильтр по конкретному типу события",
28
+ options: ["user_login", "user_logout", "user_2fa_fail", "user_2fa_success", "user_created", "user_deleted", "user_role_changed", "user_updated", "tag_created", "tag_deleted", "user_added_to_tag", "user_removed_from_tag", "chat_created", "chat_renamed", "chat_permission_changed", "user_chat_join", "user_chat_leave", "tag_added_to_chat", "tag_removed_from_chat", "message_updated", "message_deleted", "message_created", "reaction_created", "reaction_deleted", "thread_created", "access_token_created", "access_token_updated", "access_token_destroy", "kms_encrypt", "kms_decrypt", "audit_events_accessed", "dlp_violation_detected", "search_users_api", "search_chats_api", "search_messages_api"],
29
+ }),
30
+ 'actor-id': Flags.string({
31
+ description: "Идентификатор пользователя, выполнившего действие",
32
+ }),
33
+ 'actor-type': Flags.string({
34
+ description: "Тип актора",
35
+ }),
36
+ 'entity-id': Flags.string({
37
+ description: "Идентификатор затронутой сущности",
38
+ }),
39
+ 'entity-type': Flags.string({
40
+ description: "Тип сущности",
41
+ }),
42
+ limit: Flags.integer({
43
+ description: 'Количество результатов на страницу',
44
+ }),
45
+ cursor: Flags.string({
46
+ description: 'Курсор для следующей страницы',
47
+ }),
48
+ all: Flags.boolean({
49
+ description: 'Загрузить все страницы автоматически',
50
+ default: false,
51
+ }),
52
+ };
53
+ async run() {
54
+ const { args, flags } = await this.parse(SecurityList);
55
+ this.parsedFlags = flags;
56
+ const missingRequired = [
57
+ { flag: 'start-time', label: "Начальная метка времени (включительно)", type: 'string' },
58
+ { flag: 'end-time', label: "Конечная метка времени (исключительно)", type: 'string' },
59
+ ].filter((f) => flags[f.flag] === undefined || flags[f.flag] === null);
60
+ if (missingRequired.length > 0) {
61
+ if (this.isInteractive()) {
62
+ for (const field of missingRequired) {
63
+ const value = await clack.text({ message: field.label, validate: (v) => v.length === 0 ? 'Обязательное поле' : undefined });
64
+ if (clack.isCancel(value)) {
65
+ process.stderr.write('Отменено.\n');
66
+ this.exit(0);
67
+ }
68
+ if (field.type === 'integer') {
69
+ flags[field.flag] = Number.parseInt(value, 10);
70
+ }
71
+ else if (field.type === 'boolean') {
72
+ flags[field.flag] = value === 'true';
73
+ }
74
+ else {
75
+ flags[field.flag] = value;
76
+ }
77
+ }
78
+ }
79
+ else {
80
+ for (const field of missingRequired) {
81
+ process.stderr.write(`✗ Обязательный флаг --${field.flag} не передан\n`);
82
+ }
83
+ this.exit(2);
84
+ }
85
+ }
86
+ this.checkScope("audit_events:read");
87
+ if (flags.all) {
88
+ // Auto-pagination
89
+ const allData = [];
90
+ let nextCursor = undefined;
91
+ let pages = 0;
92
+ const seenCursors = new Set();
93
+ while (pages < 500) {
94
+ const query = {
95
+ 'start_time': flags['start-time'],
96
+ 'end_time': flags['end-time'],
97
+ 'event_key': flags['event-key'],
98
+ 'actor_id': flags['actor-id'],
99
+ 'actor_type': flags['actor-type'],
100
+ 'entity_id': flags['entity-id'],
101
+ 'entity_type': flags['entity-type'],
102
+ limit: flags.limit,
103
+ cursor: nextCursor,
104
+ };
105
+ const response = await this.apiRequest({ method: 'GET', path: '/audit_events', query });
106
+ const body = response.data;
107
+ const items = body.data;
108
+ if (items)
109
+ allData.push(...items);
110
+ const meta = body.meta;
111
+ const paginate = meta?.paginate;
112
+ nextCursor = paginate?.next_page;
113
+ pages++;
114
+ if (process.stderr.isTTY) {
115
+ const total = paginate?.total;
116
+ const progress = total ? `${allData.length} / ${total}` : String(allData.length);
117
+ process.stderr.write(`\r Загружено: ${progress}...`);
118
+ }
119
+ if (!nextCursor)
120
+ break;
121
+ if (seenCursors.has(nextCursor)) {
122
+ process.stderr.write('\n⚠ Обнаружен цикл пагинации, остановка.\n');
123
+ break;
124
+ }
125
+ seenCursors.add(nextCursor);
126
+ }
127
+ if (pages >= 500) {
128
+ process.stderr.write('\n⚠ Достигнут лимит 500 страниц.\n');
129
+ }
130
+ if (process.stderr.isTTY)
131
+ process.stderr.write('\n');
132
+ this.output(allData);
133
+ return;
134
+ }
135
+ const { data } = await this.apiRequest({
136
+ method: 'GET',
137
+ path: '/audit_events',
138
+ query: {
139
+ 'start_time': flags['start-time'],
140
+ 'end_time': flags['end-time'],
141
+ 'event_key': flags['event-key'],
142
+ 'actor_id': flags['actor-id'],
143
+ 'actor_type': flags['actor-type'],
144
+ 'entity_id': flags['entity-id'],
145
+ 'entity_type': flags['entity-type'],
146
+ limit: flags.limit,
147
+ cursor: flags.cursor,
148
+ },
149
+ });
150
+ const responseBody = data;
151
+ const items = responseBody.data ?? responseBody;
152
+ this.output(items);
153
+ }
154
+ }
155
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/security/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { BaseCommand } from '../../base-command.js';
2
+ export default class TasksCreate extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static scope: string;
6
+ static apiMethod: string;
7
+ static apiPath: string;
8
+ static defaultColumns: string[];
9
+ static args: {};
10
+ static flags: {
11
+ kind: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ content: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ 'due-at': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ priority: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ 'performer-ids': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ 'chat-id': import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ 'all-day': import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ 'custom-properties': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ columns: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ 'no-header': import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
+ 'no-truncate': import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
+ profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
+ token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
+ quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
26
+ 'no-color': import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
+ 'no-input': import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
+ timeout: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
31
+ 'no-retry': import("@oclif/core/interfaces").BooleanFlag<boolean>;
32
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
33
+ };
34
+ run(): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/create.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,OAAgB,WAAW,SAAuB;IAElD,OAAgB,QAAQ,WAItB;IAEF,MAAM,CAAC,KAAK,SAAkB;IAC9B,MAAM,CAAC,SAAS,SAAU;IAC1B,MAAM,CAAC,OAAO,SAAY;IAC1B,MAAM,CAAC,cAAc,WAAiD;IAEtE,OAAgB,IAAI,KAElB;IAEF,OAAgB,KAAK;;;;;;;;;;;;;;;;;;;;;;;MA0BnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4D3B"}
@@ -0,0 +1,111 @@
1
+ // Auto-generated from openapi.yaml — DO NOT EDIT
2
+ import { Flags } from '@oclif/core';
3
+ import { BaseCommand } from '../../base-command.js';
4
+ import * as clack from '@clack/prompts';
5
+ export default class TasksCreate extends BaseCommand {
6
+ static description = "Новое напоминание";
7
+ static examples = [
8
+ "Создать напоминание:\n $ pachca tasks create",
9
+ "Получить список предстоящих задач:\n $ pachca tasks list",
10
+ "Создать серию напоминаний:\n $ pachca tasks create"
11
+ ];
12
+ static scope = "tasks:create";
13
+ static apiMethod = "POST";
14
+ static apiPath = "/tasks";
15
+ static defaultColumns = ["id", "content", "created_at", "kind", "due_at"];
16
+ static args = {};
17
+ static flags = {
18
+ ...BaseCommand.baseFlags,
19
+ 'kind': Flags.string({
20
+ description: "Тип",
21
+ }),
22
+ 'content': Flags.string({
23
+ description: "Описание (по умолчанию — название типа)",
24
+ }),
25
+ 'due-at': Flags.string({
26
+ description: "Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).",
27
+ }),
28
+ 'priority': Flags.integer({
29
+ description: "Приоритет: 1, 2 (важно) или 3 (очень важно).",
30
+ }),
31
+ 'performer-ids': Flags.string({
32
+ description: "Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы)",
33
+ }),
34
+ 'chat-id': Flags.integer({
35
+ description: "Идентификатор чата, к которому привязывается напоминание",
36
+ }),
37
+ 'all-day': Flags.boolean({
38
+ description: "Напоминание на весь день (без указания времени)",
39
+ }),
40
+ 'custom-properties': Flags.string({
41
+ description: "Задаваемые дополнительные поля",
42
+ }),
43
+ };
44
+ async run() {
45
+ const { args, flags } = await this.parse(TasksCreate);
46
+ this.parsedFlags = flags;
47
+ // Read from stdin if --content not provided and stdin is not TTY
48
+ if (!flags['content'] && !process.stdin.isTTY) {
49
+ const chunks = [];
50
+ for await (const chunk of process.stdin) {
51
+ chunks.push(chunk);
52
+ }
53
+ flags['content'] = Buffer.concat(chunks).toString('utf-8').trimEnd();
54
+ }
55
+ const missingRequired = [
56
+ { flag: 'kind', label: "Тип", type: 'string' },
57
+ ].filter((f) => flags[f.flag] === undefined || flags[f.flag] === null);
58
+ if (missingRequired.length > 0) {
59
+ if (this.isInteractive()) {
60
+ for (const field of missingRequired) {
61
+ const value = await clack.text({ message: field.label, validate: (v) => v.length === 0 ? 'Обязательное поле' : undefined });
62
+ if (clack.isCancel(value)) {
63
+ process.stderr.write('Отменено.\n');
64
+ this.exit(0);
65
+ }
66
+ if (field.type === 'integer') {
67
+ flags[field.flag] = Number.parseInt(value, 10);
68
+ }
69
+ else if (field.type === 'boolean') {
70
+ flags[field.flag] = value === 'true';
71
+ }
72
+ else {
73
+ flags[field.flag] = value;
74
+ }
75
+ }
76
+ }
77
+ else {
78
+ for (const field of missingRequired) {
79
+ process.stderr.write(`✗ Обязательный флаг --${field.flag} не передан\n`);
80
+ }
81
+ this.exit(2);
82
+ }
83
+ }
84
+ this.checkScope("tasks:create");
85
+ const body = { task: {
86
+ kind: flags['kind'],
87
+ content: flags['content'],
88
+ due_at: flags['due-at'],
89
+ priority: flags['priority'],
90
+ performer_ids: flags['performer-ids'] ? JSON.parse(flags['performer-ids']) : undefined,
91
+ chat_id: flags['chat-id'],
92
+ all_day: flags['all-day'],
93
+ custom_properties: flags['custom-properties'] ? JSON.parse(flags['custom-properties']) : undefined,
94
+ } };
95
+ // Clean undefined fields
96
+ const inner = body['task'];
97
+ for (const [k, v] of Object.entries(inner)) {
98
+ if (v === undefined)
99
+ delete inner[k];
100
+ }
101
+ const { data } = await this.apiRequest({
102
+ method: 'POST',
103
+ path: '/tasks',
104
+ body,
105
+ });
106
+ const responseBody = data;
107
+ const result = responseBody.data ?? responseBody;
108
+ this.output(result);
109
+ }
110
+ }
111
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/tasks/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { BaseCommand } from '../../base-command.js';
2
+ export default class TasksDelete extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static scope: string;
6
+ static apiMethod: string;
7
+ static apiPath: string;
8
+ static args: {
9
+ id: import("@oclif/core/interfaces").Arg<number, {
10
+ max?: number;
11
+ min?: number;
12
+ }>;
13
+ };
14
+ static flags: {
15
+ force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ columns: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ 'no-header': import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ 'no-truncate': import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
+ 'no-color': import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
25
+ 'no-input': import("@oclif/core/interfaces").BooleanFlag<boolean>;
26
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
+ timeout: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ 'no-retry': import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
+ };
31
+ run(): Promise<void>;
32
+ }
33
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/delete.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,OAAgB,WAAW,SAA0B;IAErD,OAAgB,QAAQ,WAItB;IAEF,MAAM,CAAC,KAAK,SAAkB;IAC9B,MAAM,CAAC,SAAS,SAAY;IAC5B,MAAM,CAAC,OAAO,SAAiB;IAE/B,OAAgB,IAAI;;;;;MAKlB;IAEF,OAAgB,KAAK;;;;;;;;;;;;;;;;MAMnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyB3B"}
@@ -0,0 +1,50 @@
1
+ // Auto-generated from openapi.yaml — DO NOT EDIT
2
+ import { Args, Flags } from '@oclif/core';
3
+ import { BaseCommand } from '../../base-command.js';
4
+ import * as clack from '@clack/prompts';
5
+ export default class TasksDelete extends BaseCommand {
6
+ static description = "Удаление напоминания";
7
+ static examples = [
8
+ "Получить задачу по ID:\n $ pachca tasks get",
9
+ "Отметить задачу выполненной:\n $ pachca tasks update",
10
+ "Обновить задачу (перенести срок, сменить ответственных):\n $ pachca tasks update"
11
+ ];
12
+ static scope = "tasks:delete";
13
+ static apiMethod = "DELETE";
14
+ static apiPath = "/tasks/{id}";
15
+ static args = {
16
+ id: Args.integer({
17
+ description: "Идентификатор напоминания",
18
+ required: true,
19
+ }),
20
+ };
21
+ static flags = {
22
+ ...BaseCommand.baseFlags,
23
+ force: Flags.boolean({
24
+ description: 'Пропустить подтверждение',
25
+ default: false,
26
+ }),
27
+ };
28
+ async run() {
29
+ const { args, flags } = await this.parse(TasksDelete);
30
+ this.parsedFlags = flags;
31
+ if (!flags.force) {
32
+ if (!this.isInteractive()) {
33
+ process.stderr.write('✗ Деструктивная операция требует флага --force в неинтерактивном режиме\n');
34
+ this.exit(2);
35
+ }
36
+ const confirm = await clack.confirm({ message: 'Вы уверены?' });
37
+ if (clack.isCancel(confirm) || !confirm) {
38
+ process.stderr.write('Отменено.\n');
39
+ this.exit(0);
40
+ }
41
+ }
42
+ this.checkScope("tasks:delete");
43
+ const { data } = await this.apiRequest({
44
+ method: 'DELETE',
45
+ path: `/tasks/${args.id}`,
46
+ });
47
+ this.success('Удалено');
48
+ }
49
+ }
50
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/tasks/delete.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAU,WAAW,GAAG,sBAAsB,CAAC;IAErD,MAAM,CAAU,QAAQ,GAAG;QACvB,8CAA8C;QAC9C,uDAAuD;QACvD,mFAAmF;KACtF,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC;IAC9B,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC;IAE/B,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;YACf,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;QACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,0BAA0B;YACvC,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;gBAClG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAChE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAEhC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;YACrC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { BaseCommand } from '../../base-command.js';
2
+ export default class TasksGet extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static scope: string;
6
+ static apiMethod: string;
7
+ static apiPath: string;
8
+ static defaultColumns: string[];
9
+ static args: {
10
+ id: import("@oclif/core/interfaces").Arg<number, {
11
+ max?: number;
12
+ min?: number;
13
+ }>;
14
+ };
15
+ static flags: {
16
+ output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ columns: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ 'no-header': import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ 'no-truncate': import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
+ 'no-color': import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
25
+ 'no-input': import("@oclif/core/interfaces").BooleanFlag<boolean>;
26
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
+ timeout: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ 'no-retry': import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
+ };
31
+ run(): Promise<void>;
32
+ }
33
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/get.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,OAAgB,WAAW,SAA8B;IAEzD,OAAgB,QAAQ,WAItB;IAEF,MAAM,CAAC,KAAK,SAAgB;IAC5B,MAAM,CAAC,SAAS,SAAS;IACzB,MAAM,CAAC,OAAO,SAAiB;IAC/B,MAAM,CAAC,cAAc,WAAiD;IAEtE,OAAgB,IAAI;;;;;MAKlB;IAEF,OAAgB,KAAK;;;;;;;;;;;;;;;MAGnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAe3B"}
@@ -0,0 +1,37 @@
1
+ // Auto-generated from openapi.yaml — DO NOT EDIT
2
+ import { Args } from '@oclif/core';
3
+ import { BaseCommand } from '../../base-command.js';
4
+ export default class TasksGet extends BaseCommand {
5
+ static description = "Информация о напоминании";
6
+ static examples = [
7
+ "Получить задачу по ID:\n $ pachca tasks get",
8
+ "Отметить задачу выполненной:\n $ pachca tasks update",
9
+ "Обновить задачу (перенести срок, сменить ответственных):\n $ pachca tasks update"
10
+ ];
11
+ static scope = "tasks:read";
12
+ static apiMethod = "GET";
13
+ static apiPath = "/tasks/{id}";
14
+ static defaultColumns = ["id", "content", "created_at", "kind", "due_at"];
15
+ static args = {
16
+ id: Args.integer({
17
+ description: "Идентификатор напоминания",
18
+ required: true,
19
+ }),
20
+ };
21
+ static flags = {
22
+ ...BaseCommand.baseFlags,
23
+ };
24
+ async run() {
25
+ const { args, flags } = await this.parse(TasksGet);
26
+ this.parsedFlags = flags;
27
+ this.checkScope("tasks:read");
28
+ const { data } = await this.apiRequest({
29
+ method: 'GET',
30
+ path: `/tasks/${args.id}`,
31
+ });
32
+ const responseBody = data;
33
+ const result = responseBody.data ?? responseBody;
34
+ this.output(result);
35
+ }
36
+ }
37
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/tasks/get.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EAAE,IAAI,EAAS,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAU,WAAW,GAAG,0BAA0B,CAAC;IAEzD,MAAM,CAAU,QAAQ,GAAG;QACvB,8CAA8C;QAC9C,uDAAuD;QACvD,mFAAmF;KACtF,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;IAC5B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC;IAC/B,MAAM,CAAC,cAAc,GAAG,CAAC,IAAI,EAAC,SAAS,EAAC,YAAY,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;IAEtE,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;YACf,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;KAEzB,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAE9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAA+B,CAAC;QACrD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { BaseCommand } from '../../base-command.js';
2
+ export default class TasksList extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static scope: string;
6
+ static apiMethod: string;
7
+ static apiPath: string;
8
+ static defaultColumns: string[];
9
+ static args: {};
10
+ static flags: {
11
+ limit: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ cursor: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ columns: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ 'no-header': import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ 'no-truncate': import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ 'no-color': import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
+ 'no-input': import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
25
+ timeout: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
26
+ 'no-retry': import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
+ };
29
+ run(): Promise<void>;
30
+ }
31
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/list.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,OAAgB,WAAW,SAAwB;IAEnD,OAAgB,QAAQ,WAItB;IAEF,MAAM,CAAC,KAAK,SAAgB;IAC5B,MAAM,CAAC,SAAS,SAAS;IACzB,MAAM,CAAC,OAAO,SAAY;IAC1B,MAAM,CAAC,cAAc,WAAiD;IAEtE,OAAgB,IAAI,KAElB;IAEF,OAAgB,KAAK;;;;;;;;;;;;;;;;;;MAYnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8D3B"}
@@ -0,0 +1,87 @@
1
+ // Auto-generated from openapi.yaml — DO NOT EDIT
2
+ import { Flags } from '@oclif/core';
3
+ import { BaseCommand } from '../../base-command.js';
4
+ export default class TasksList extends BaseCommand {
5
+ static description = "Список напоминаний";
6
+ static examples = [
7
+ "Создать напоминание:\n $ pachca tasks create",
8
+ "Получить список предстоящих задач:\n $ pachca tasks list",
9
+ "Создать серию напоминаний:\n $ pachca tasks create"
10
+ ];
11
+ static scope = "tasks:read";
12
+ static apiMethod = "GET";
13
+ static apiPath = "/tasks";
14
+ static defaultColumns = ["id", "content", "created_at", "kind", "due_at"];
15
+ static args = {};
16
+ static flags = {
17
+ ...BaseCommand.baseFlags,
18
+ limit: Flags.integer({
19
+ description: 'Количество результатов на страницу',
20
+ }),
21
+ cursor: Flags.string({
22
+ description: 'Курсор для следующей страницы',
23
+ }),
24
+ all: Flags.boolean({
25
+ description: 'Загрузить все страницы автоматически',
26
+ default: false,
27
+ }),
28
+ };
29
+ async run() {
30
+ const { args, flags } = await this.parse(TasksList);
31
+ this.parsedFlags = flags;
32
+ this.checkScope("tasks:read");
33
+ if (flags.all) {
34
+ // Auto-pagination
35
+ const allData = [];
36
+ let nextCursor = undefined;
37
+ let pages = 0;
38
+ const seenCursors = new Set();
39
+ while (pages < 500) {
40
+ const query = {
41
+ limit: flags.limit,
42
+ cursor: nextCursor,
43
+ };
44
+ const response = await this.apiRequest({ method: 'GET', path: '/tasks', query });
45
+ const body = response.data;
46
+ const items = body.data;
47
+ if (items)
48
+ allData.push(...items);
49
+ const meta = body.meta;
50
+ const paginate = meta?.paginate;
51
+ nextCursor = paginate?.next_page;
52
+ pages++;
53
+ if (process.stderr.isTTY) {
54
+ const total = paginate?.total;
55
+ const progress = total ? `${allData.length} / ${total}` : String(allData.length);
56
+ process.stderr.write(`\r Загружено: ${progress}...`);
57
+ }
58
+ if (!nextCursor)
59
+ break;
60
+ if (seenCursors.has(nextCursor)) {
61
+ process.stderr.write('\n⚠ Обнаружен цикл пагинации, остановка.\n');
62
+ break;
63
+ }
64
+ seenCursors.add(nextCursor);
65
+ }
66
+ if (pages >= 500) {
67
+ process.stderr.write('\n⚠ Достигнут лимит 500 страниц.\n');
68
+ }
69
+ if (process.stderr.isTTY)
70
+ process.stderr.write('\n');
71
+ this.output(allData);
72
+ return;
73
+ }
74
+ const { data } = await this.apiRequest({
75
+ method: 'GET',
76
+ path: '/tasks',
77
+ query: {
78
+ limit: flags.limit,
79
+ cursor: flags.cursor,
80
+ },
81
+ });
82
+ const responseBody = data;
83
+ const items = responseBody.data ?? responseBody;
84
+ this.output(items);
85
+ }
86
+ }
87
+ //# sourceMappingURL=list.js.map