@kaa5945/slack-cli 2026.4.11

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 (320) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +620 -0
  3. package/README.zh-TW.md +620 -0
  4. package/dist/commands/bookmark.d.ts +3 -0
  5. package/dist/commands/bookmark.d.ts.map +1 -0
  6. package/dist/commands/bookmark.js +62 -0
  7. package/dist/commands/bookmark.js.map +1 -0
  8. package/dist/commands/canvas.d.ts +3 -0
  9. package/dist/commands/canvas.d.ts.map +1 -0
  10. package/dist/commands/canvas.js +92 -0
  11. package/dist/commands/canvas.js.map +1 -0
  12. package/dist/commands/channel.d.ts +3 -0
  13. package/dist/commands/channel.d.ts.map +1 -0
  14. package/dist/commands/channel.js +53 -0
  15. package/dist/commands/channel.js.map +1 -0
  16. package/dist/commands/channels.d.ts +3 -0
  17. package/dist/commands/channels.d.ts.map +1 -0
  18. package/dist/commands/channels.js +41 -0
  19. package/dist/commands/channels.js.map +1 -0
  20. package/dist/commands/config-subcommands.d.ts +17 -0
  21. package/dist/commands/config-subcommands.d.ts.map +1 -0
  22. package/dist/commands/config-subcommands.js +170 -0
  23. package/dist/commands/config-subcommands.js.map +1 -0
  24. package/dist/commands/config.d.ts +3 -0
  25. package/dist/commands/config.d.ts.map +1 -0
  26. package/dist/commands/config.js +40 -0
  27. package/dist/commands/config.js.map +1 -0
  28. package/dist/commands/delete.d.ts +3 -0
  29. package/dist/commands/delete.d.ts.map +1 -0
  30. package/dist/commands/delete.js +28 -0
  31. package/dist/commands/delete.js.map +1 -0
  32. package/dist/commands/edit.d.ts +3 -0
  33. package/dist/commands/edit.d.ts.map +1 -0
  34. package/dist/commands/edit.js +29 -0
  35. package/dist/commands/edit.js.map +1 -0
  36. package/dist/commands/history-display.d.ts +9 -0
  37. package/dist/commands/history-display.d.ts.map +1 -0
  38. package/dist/commands/history-display.js +17 -0
  39. package/dist/commands/history-display.js.map +1 -0
  40. package/dist/commands/history-validators.d.ts +5 -0
  41. package/dist/commands/history-validators.d.ts.map +1 -0
  42. package/dist/commands/history-validators.js +35 -0
  43. package/dist/commands/history-validators.js.map +1 -0
  44. package/dist/commands/history.d.ts +3 -0
  45. package/dist/commands/history.d.ts.map +1 -0
  46. package/dist/commands/history.js +141 -0
  47. package/dist/commands/history.js.map +1 -0
  48. package/dist/commands/invite.d.ts +3 -0
  49. package/dist/commands/invite.d.ts.map +1 -0
  50. package/dist/commands/invite.js +34 -0
  51. package/dist/commands/invite.js.map +1 -0
  52. package/dist/commands/join.d.ts +3 -0
  53. package/dist/commands/join.d.ts.map +1 -0
  54. package/dist/commands/join.js +25 -0
  55. package/dist/commands/join.js.map +1 -0
  56. package/dist/commands/leave.d.ts +3 -0
  57. package/dist/commands/leave.d.ts.map +1 -0
  58. package/dist/commands/leave.js +25 -0
  59. package/dist/commands/leave.js.map +1 -0
  60. package/dist/commands/members.d.ts +3 -0
  61. package/dist/commands/members.d.ts.map +1 -0
  62. package/dist/commands/members.js +53 -0
  63. package/dist/commands/members.js.map +1 -0
  64. package/dist/commands/pin.d.ts +3 -0
  65. package/dist/commands/pin.d.ts.map +1 -0
  66. package/dist/commands/pin.js +91 -0
  67. package/dist/commands/pin.js.map +1 -0
  68. package/dist/commands/reaction.d.ts +3 -0
  69. package/dist/commands/reaction.d.ts.map +1 -0
  70. package/dist/commands/reaction.js +45 -0
  71. package/dist/commands/reaction.js.map +1 -0
  72. package/dist/commands/reminder.d.ts +3 -0
  73. package/dist/commands/reminder.d.ts.map +1 -0
  74. package/dist/commands/reminder.js +78 -0
  75. package/dist/commands/reminder.js.map +1 -0
  76. package/dist/commands/scheduled.d.ts +3 -0
  77. package/dist/commands/scheduled.d.ts.map +1 -0
  78. package/dist/commands/scheduled.js +69 -0
  79. package/dist/commands/scheduled.js.map +1 -0
  80. package/dist/commands/search.d.ts +3 -0
  81. package/dist/commands/search.d.ts.map +1 -0
  82. package/dist/commands/search.js +51 -0
  83. package/dist/commands/search.js.map +1 -0
  84. package/dist/commands/send-ephemeral.d.ts +3 -0
  85. package/dist/commands/send-ephemeral.d.ts.map +1 -0
  86. package/dist/commands/send-ephemeral.js +36 -0
  87. package/dist/commands/send-ephemeral.js.map +1 -0
  88. package/dist/commands/send.d.ts +3 -0
  89. package/dist/commands/send.d.ts.map +1 -0
  90. package/dist/commands/send.js +125 -0
  91. package/dist/commands/send.js.map +1 -0
  92. package/dist/commands/unread.d.ts +3 -0
  93. package/dist/commands/unread.d.ts.map +1 -0
  94. package/dist/commands/unread.js +92 -0
  95. package/dist/commands/unread.js.map +1 -0
  96. package/dist/commands/upload.d.ts +3 -0
  97. package/dist/commands/upload.d.ts.map +1 -0
  98. package/dist/commands/upload.js +99 -0
  99. package/dist/commands/upload.js.map +1 -0
  100. package/dist/commands/users.d.ts +3 -0
  101. package/dist/commands/users.d.ts.map +1 -0
  102. package/dist/commands/users.js +138 -0
  103. package/dist/commands/users.js.map +1 -0
  104. package/dist/index.d.ts +5 -0
  105. package/dist/index.d.ts.map +1 -0
  106. package/dist/index.js +76 -0
  107. package/dist/index.js.map +1 -0
  108. package/dist/types/commands.d.ts +216 -0
  109. package/dist/types/commands.d.ts.map +1 -0
  110. package/dist/types/commands.js +3 -0
  111. package/dist/types/commands.js.map +1 -0
  112. package/dist/types/config.d.ts +18 -0
  113. package/dist/types/config.d.ts.map +1 -0
  114. package/dist/types/config.js +3 -0
  115. package/dist/types/config.js.map +1 -0
  116. package/dist/types/slack.d.ts +198 -0
  117. package/dist/types/slack.d.ts.map +1 -0
  118. package/dist/types/slack.js +3 -0
  119. package/dist/types/slack.js.map +1 -0
  120. package/dist/utils/attachment-downloader.d.ts +22 -0
  121. package/dist/utils/attachment-downloader.d.ts.map +1 -0
  122. package/dist/utils/attachment-downloader.js +138 -0
  123. package/dist/utils/attachment-downloader.js.map +1 -0
  124. package/dist/utils/channel-formatter.d.ts +13 -0
  125. package/dist/utils/channel-formatter.d.ts.map +1 -0
  126. package/dist/utils/channel-formatter.js +43 -0
  127. package/dist/utils/channel-formatter.js.map +1 -0
  128. package/dist/utils/channel-resolver.d.ts +27 -0
  129. package/dist/utils/channel-resolver.d.ts.map +1 -0
  130. package/dist/utils/channel-resolver.js +76 -0
  131. package/dist/utils/channel-resolver.js.map +1 -0
  132. package/dist/utils/client-factory.d.ts +6 -0
  133. package/dist/utils/client-factory.d.ts.map +1 -0
  134. package/dist/utils/client-factory.js +13 -0
  135. package/dist/utils/client-factory.js.map +1 -0
  136. package/dist/utils/command-support.d.ts +16 -0
  137. package/dist/utils/command-support.d.ts.map +1 -0
  138. package/dist/utils/command-support.js +29 -0
  139. package/dist/utils/command-support.js.map +1 -0
  140. package/dist/utils/command-wrapper.d.ts +6 -0
  141. package/dist/utils/command-wrapper.d.ts.map +1 -0
  142. package/dist/utils/command-wrapper.js +27 -0
  143. package/dist/utils/command-wrapper.js.map +1 -0
  144. package/dist/utils/config-helper.d.ts +8 -0
  145. package/dist/utils/config-helper.d.ts.map +1 -0
  146. package/dist/utils/config-helper.js +19 -0
  147. package/dist/utils/config-helper.js.map +1 -0
  148. package/dist/utils/constants.d.ts +64 -0
  149. package/dist/utils/constants.d.ts.map +1 -0
  150. package/dist/utils/constants.js +77 -0
  151. package/dist/utils/constants.js.map +1 -0
  152. package/dist/utils/date-utils.d.ts +4 -0
  153. package/dist/utils/date-utils.d.ts.map +1 -0
  154. package/dist/utils/date-utils.js +24 -0
  155. package/dist/utils/date-utils.js.map +1 -0
  156. package/dist/utils/error-utils.d.ts +4 -0
  157. package/dist/utils/error-utils.d.ts.map +1 -0
  158. package/dist/utils/error-utils.js +46 -0
  159. package/dist/utils/error-utils.js.map +1 -0
  160. package/dist/utils/errors.d.ts +17 -0
  161. package/dist/utils/errors.d.ts.map +1 -0
  162. package/dist/utils/errors.js +36 -0
  163. package/dist/utils/errors.js.map +1 -0
  164. package/dist/utils/format-utils.d.ts +4 -0
  165. package/dist/utils/format-utils.d.ts.map +1 -0
  166. package/dist/utils/format-utils.js +24 -0
  167. package/dist/utils/format-utils.js.map +1 -0
  168. package/dist/utils/formatters/base-formatter.d.ts +23 -0
  169. package/dist/utils/formatters/base-formatter.d.ts.map +1 -0
  170. package/dist/utils/formatters/base-formatter.js +27 -0
  171. package/dist/utils/formatters/base-formatter.js.map +1 -0
  172. package/dist/utils/formatters/bookmark-formatters.d.ts +14 -0
  173. package/dist/utils/formatters/bookmark-formatters.d.ts.map +1 -0
  174. package/dist/utils/formatters/bookmark-formatters.js +60 -0
  175. package/dist/utils/formatters/bookmark-formatters.js.map +1 -0
  176. package/dist/utils/formatters/channel-formatters.d.ts +7 -0
  177. package/dist/utils/formatters/channel-formatters.d.ts.map +1 -0
  178. package/dist/utils/formatters/channel-formatters.js +65 -0
  179. package/dist/utils/formatters/channel-formatters.js.map +1 -0
  180. package/dist/utils/formatters/channel-info-formatters.d.ts +6 -0
  181. package/dist/utils/formatters/channel-info-formatters.d.ts.map +1 -0
  182. package/dist/utils/formatters/channel-info-formatters.js +69 -0
  183. package/dist/utils/formatters/channel-info-formatters.js.map +1 -0
  184. package/dist/utils/formatters/channels-list-formatters.d.ts +6 -0
  185. package/dist/utils/formatters/channels-list-formatters.d.ts.map +1 -0
  186. package/dist/utils/formatters/channels-list-formatters.js +49 -0
  187. package/dist/utils/formatters/channels-list-formatters.js.map +1 -0
  188. package/dist/utils/formatters/history-formatters.d.ts +10 -0
  189. package/dist/utils/formatters/history-formatters.d.ts.map +1 -0
  190. package/dist/utils/formatters/history-formatters.js +87 -0
  191. package/dist/utils/formatters/history-formatters.js.map +1 -0
  192. package/dist/utils/formatters/members-formatters.d.ts +10 -0
  193. package/dist/utils/formatters/members-formatters.d.ts.map +1 -0
  194. package/dist/utils/formatters/members-formatters.js +42 -0
  195. package/dist/utils/formatters/members-formatters.js.map +1 -0
  196. package/dist/utils/formatters/message-formatters.d.ts +12 -0
  197. package/dist/utils/formatters/message-formatters.d.ts.map +1 -0
  198. package/dist/utils/formatters/message-formatters.js +95 -0
  199. package/dist/utils/formatters/message-formatters.js.map +1 -0
  200. package/dist/utils/formatters/reminder-formatters.d.ts +12 -0
  201. package/dist/utils/formatters/reminder-formatters.d.ts.map +1 -0
  202. package/dist/utils/formatters/reminder-formatters.js +64 -0
  203. package/dist/utils/formatters/reminder-formatters.js.map +1 -0
  204. package/dist/utils/formatters/search-formatters.d.ts +10 -0
  205. package/dist/utils/formatters/search-formatters.d.ts.map +1 -0
  206. package/dist/utils/formatters/search-formatters.js +87 -0
  207. package/dist/utils/formatters/search-formatters.js.map +1 -0
  208. package/dist/utils/mention-utils.d.ts +17 -0
  209. package/dist/utils/mention-utils.d.ts.map +1 -0
  210. package/dist/utils/mention-utils.js +45 -0
  211. package/dist/utils/mention-utils.js.map +1 -0
  212. package/dist/utils/option-parsers.d.ts +47 -0
  213. package/dist/utils/option-parsers.d.ts.map +1 -0
  214. package/dist/utils/option-parsers.js +75 -0
  215. package/dist/utils/option-parsers.js.map +1 -0
  216. package/dist/utils/profile-config.d.ts +19 -0
  217. package/dist/utils/profile-config.d.ts.map +1 -0
  218. package/dist/utils/profile-config.js +203 -0
  219. package/dist/utils/profile-config.js.map +1 -0
  220. package/dist/utils/schedule-utils.d.ts +3 -0
  221. package/dist/utils/schedule-utils.d.ts.map +1 -0
  222. package/dist/utils/schedule-utils.js +34 -0
  223. package/dist/utils/schedule-utils.js.map +1 -0
  224. package/dist/utils/slack-api-client.d.ts +3 -0
  225. package/dist/utils/slack-api-client.d.ts.map +1 -0
  226. package/dist/utils/slack-api-client.js +22 -0
  227. package/dist/utils/slack-api-client.js.map +1 -0
  228. package/dist/utils/slack-client-service.d.ts +66 -0
  229. package/dist/utils/slack-client-service.d.ts.map +1 -0
  230. package/dist/utils/slack-client-service.js +181 -0
  231. package/dist/utils/slack-client-service.js.map +1 -0
  232. package/dist/utils/slack-operations/base-client.d.ts +18 -0
  233. package/dist/utils/slack-operations/base-client.d.ts.map +1 -0
  234. package/dist/utils/slack-operations/base-client.js +52 -0
  235. package/dist/utils/slack-operations/base-client.js.map +1 -0
  236. package/dist/utils/slack-operations/canvas-operations.d.ts +10 -0
  237. package/dist/utils/slack-operations/canvas-operations.d.ts.map +1 -0
  238. package/dist/utils/slack-operations/canvas-operations.js +28 -0
  239. package/dist/utils/slack-operations/canvas-operations.js.map +1 -0
  240. package/dist/utils/slack-operations/channel-operations.d.ts +33 -0
  241. package/dist/utils/slack-operations/channel-operations.d.ts.map +1 -0
  242. package/dist/utils/slack-operations/channel-operations.js +276 -0
  243. package/dist/utils/slack-operations/channel-operations.js.map +1 -0
  244. package/dist/utils/slack-operations/file-operations.d.ts +19 -0
  245. package/dist/utils/slack-operations/file-operations.d.ts.map +1 -0
  246. package/dist/utils/slack-operations/file-operations.js +51 -0
  247. package/dist/utils/slack-operations/file-operations.js.map +1 -0
  248. package/dist/utils/slack-operations/index.d.ts +5 -0
  249. package/dist/utils/slack-operations/index.d.ts.map +1 -0
  250. package/dist/utils/slack-operations/index.js +12 -0
  251. package/dist/utils/slack-operations/index.js.map +1 -0
  252. package/dist/utils/slack-operations/message-history-operations.d.ts +17 -0
  253. package/dist/utils/slack-operations/message-history-operations.d.ts.map +1 -0
  254. package/dist/utils/slack-operations/message-history-operations.js +101 -0
  255. package/dist/utils/slack-operations/message-history-operations.js.map +1 -0
  256. package/dist/utils/slack-operations/message-operations.d.ts +24 -0
  257. package/dist/utils/slack-operations/message-operations.d.ts.map +1 -0
  258. package/dist/utils/slack-operations/message-operations.js +61 -0
  259. package/dist/utils/slack-operations/message-operations.js.map +1 -0
  260. package/dist/utils/slack-operations/message-permalink-operations.d.ts +10 -0
  261. package/dist/utils/slack-operations/message-permalink-operations.d.ts.map +1 -0
  262. package/dist/utils/slack-operations/message-permalink-operations.js +49 -0
  263. package/dist/utils/slack-operations/message-permalink-operations.js.map +1 -0
  264. package/dist/utils/slack-operations/message-user-resolver.d.ts +7 -0
  265. package/dist/utils/slack-operations/message-user-resolver.d.ts.map +1 -0
  266. package/dist/utils/slack-operations/message-user-resolver.js +27 -0
  267. package/dist/utils/slack-operations/message-user-resolver.js.map +1 -0
  268. package/dist/utils/slack-operations/message-write-operations.d.ts +17 -0
  269. package/dist/utils/slack-operations/message-write-operations.d.ts.map +1 -0
  270. package/dist/utils/slack-operations/message-write-operations.js +76 -0
  271. package/dist/utils/slack-operations/message-write-operations.js.map +1 -0
  272. package/dist/utils/slack-operations/pin-operations.d.ts +11 -0
  273. package/dist/utils/slack-operations/pin-operations.d.ts.map +1 -0
  274. package/dist/utils/slack-operations/pin-operations.js +34 -0
  275. package/dist/utils/slack-operations/pin-operations.js.map +1 -0
  276. package/dist/utils/slack-operations/reaction-operations.d.ts +10 -0
  277. package/dist/utils/slack-operations/reaction-operations.d.ts.map +1 -0
  278. package/dist/utils/slack-operations/reaction-operations.js +32 -0
  279. package/dist/utils/slack-operations/reaction-operations.js.map +1 -0
  280. package/dist/utils/slack-operations/reminder-operations.d.ts +10 -0
  281. package/dist/utils/slack-operations/reminder-operations.d.ts.map +1 -0
  282. package/dist/utils/slack-operations/reminder-operations.js +32 -0
  283. package/dist/utils/slack-operations/reminder-operations.js.map +1 -0
  284. package/dist/utils/slack-operations/search-operations.d.ts +11 -0
  285. package/dist/utils/slack-operations/search-operations.d.ts.map +1 -0
  286. package/dist/utils/slack-operations/search-operations.js +116 -0
  287. package/dist/utils/slack-operations/search-operations.js.map +1 -0
  288. package/dist/utils/slack-operations/star-operations.d.ts +9 -0
  289. package/dist/utils/slack-operations/star-operations.d.ts.map +1 -0
  290. package/dist/utils/slack-operations/star-operations.js +32 -0
  291. package/dist/utils/slack-operations/star-operations.js.map +1 -0
  292. package/dist/utils/slack-operations/user-operations.d.ts +12 -0
  293. package/dist/utils/slack-operations/user-operations.d.ts.map +1 -0
  294. package/dist/utils/slack-operations/user-operations.js +69 -0
  295. package/dist/utils/slack-operations/user-operations.js.map +1 -0
  296. package/dist/utils/slack-patterns.d.ts +20 -0
  297. package/dist/utils/slack-patterns.d.ts.map +1 -0
  298. package/dist/utils/slack-patterns.js +54 -0
  299. package/dist/utils/slack-patterns.js.map +1 -0
  300. package/dist/utils/terminal-sanitizer.d.ts +7 -0
  301. package/dist/utils/terminal-sanitizer.d.ts.map +1 -0
  302. package/dist/utils/terminal-sanitizer.js +51 -0
  303. package/dist/utils/terminal-sanitizer.js.map +1 -0
  304. package/dist/utils/token-crypto-service.d.ts +40 -0
  305. package/dist/utils/token-crypto-service.d.ts.map +1 -0
  306. package/dist/utils/token-crypto-service.js +273 -0
  307. package/dist/utils/token-crypto-service.js.map +1 -0
  308. package/dist/utils/token-utils.d.ts +7 -0
  309. package/dist/utils/token-utils.d.ts.map +1 -0
  310. package/dist/utils/token-utils.js +18 -0
  311. package/dist/utils/token-utils.js.map +1 -0
  312. package/dist/utils/update-notifier.d.ts +10 -0
  313. package/dist/utils/update-notifier.d.ts.map +1 -0
  314. package/dist/utils/update-notifier.js +147 -0
  315. package/dist/utils/update-notifier.js.map +1 -0
  316. package/dist/utils/validators.d.ts +147 -0
  317. package/dist/utils/validators.d.ts.map +1 -0
  318. package/dist/utils/validators.js +401 -0
  319. package/dist/utils/validators.js.map +1 -0
  320. package/package.json +58 -0
@@ -0,0 +1,620 @@
1
+ # Slack CLI
2
+
3
+ [![Version](https://img.shields.io/badge/version-2026.4.11-blue.svg)](https://github.com/adamtan945/slack-cli/blob/main/CHANGELOG.md)
4
+ [![Node.js](https://img.shields.io/badge/Node.js-%3E%3D20-339933.svg)](https://nodejs.org/)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-6.0-3178C6.svg)](https://www.typescriptlang.org/)
6
+ [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/adamtan945/slack-cli/blob/main/LICENSE)
7
+ [![English](https://img.shields.io/badge/lang-English-blue.svg)](https://github.com/adamtan945/slack-cli/blob/main/README.md)
8
+ [![Changelog](https://img.shields.io/badge/changelog-CHANGELOG.md-orange.svg)](https://github.com/adamtan945/slack-cli/blob/main/CHANGELOG.md)
9
+
10
+ 透過 Slack API 發送訊息的命令列工具。
11
+
12
+ ## 安裝
13
+
14
+ ```bash
15
+ npm install -g @kaa5945/slack-cli
16
+ ```
17
+
18
+ 執行指令時,若 npm 有新版本,CLI 預設會顯示更新提示。若要關閉,設定 `SLACK_CLI_DISABLE_UPDATE_NOTIFIER=1`。
19
+
20
+ ## 設定
21
+
22
+ 首次使用前需設定 Slack API Token:
23
+
24
+ ```bash
25
+ # 互動式安全輸入(推薦)
26
+ slack-cli config set
27
+
28
+ # 非互動式(CI/腳本環境)
29
+ printf '%s\n' "$SLACK_API_TOKEN" | slack-cli config set --token-stdin
30
+ ```
31
+
32
+ Token 儲存安全性:
33
+ - Token 以 AES-256-GCM 加密後寫入磁碟。
34
+ - 主金鑰建立於 `~/.slack-cli-secrets/master.key`,僅擁有者可讀。
35
+ - 舊版 `~/.slack-cli/master.key` 首次使用時自動遷移。
36
+ - 臨時環境可設定 `SLACK_CLI_MASTER_KEY` 環境變數覆蓋本地金鑰。
37
+
38
+ ## 使用方式
39
+
40
+ ### 管理多個工作區(Profile)
41
+
42
+ ```bash
43
+ # 設定不同工作區的 token
44
+ printf '%s\n' "$WORK_SLACK_TOKEN" | slack-cli config set --profile work --token-stdin
45
+ printf '%s\n' "$PERSONAL_SLACK_TOKEN" | slack-cli config set --profile personal --token-stdin
46
+
47
+ # 顯示所有 profile
48
+ slack-cli config profiles
49
+
50
+ # 切換預設 profile
51
+ slack-cli config use work
52
+
53
+ # 查看目前使用的 profile
54
+ slack-cli config current
55
+
56
+ # 查看指定 profile 設定
57
+ slack-cli config get --profile personal
58
+
59
+ # 清除指定 profile
60
+ slack-cli config clear --profile work
61
+ ```
62
+
63
+ ### 發送訊息
64
+
65
+ ```bash
66
+ # 基本用法(使用預設 profile)
67
+ slack-cli send -c channel-name -m "訊息內容"
68
+
69
+ # 使用指定 profile
70
+ slack-cli send -c channel-name -m "訊息內容" --profile personal
71
+
72
+ # 使用頻道 ID
73
+ slack-cli send -c C1234567890 -m "訊息內容"
74
+
75
+ # 多行訊息
76
+ slack-cli send -c general -m "第一行\n第二行\n第三行"
77
+
78
+ # 從檔案讀取訊息
79
+ slack-cli send -c random -f message.txt
80
+
81
+ # 回覆 thread
82
+ slack-cli send -c channel-name -m "回覆內容" --thread 1719207629.000100
83
+
84
+ # 回覆 thread(簡短選項)
85
+ slack-cli send -c channel-name -m "回覆內容" -t 1719207629.000100
86
+
87
+ # 排程發送(絕對時間,Unix 秒或 ISO 8601)
88
+ slack-cli send -c channel-name -m "排程訊息" --at "2026-03-01T09:00:00+08:00"
89
+
90
+ # N 分鐘後發送
91
+ slack-cli send -c channel-name -m "排程訊息" --after 30
92
+
93
+ # 傳送 DM(依使用者名稱)
94
+ slack-cli send --user @john -m "Hello via DM!"
95
+
96
+ # 傳送 DM(依 Email)
97
+ slack-cli send --email john@example.com -m "Hello via DM!"
98
+ ```
99
+
100
+ ### 列出頻道
101
+
102
+ ```bash
103
+ # 列出所有頻道(使用預設 profile)
104
+ slack-cli channels
105
+
106
+ # 使用指定 profile
107
+ slack-cli channels --profile work
108
+
109
+ # 只列出公開頻道
110
+ slack-cli channels --type public
111
+
112
+ # 只列出私有頻道
113
+ slack-cli channels --type private
114
+
115
+ # 列出所有類型(包含 DM 和群組 DM)
116
+ slack-cli channels --type all
117
+
118
+ # 包含已封存頻道
119
+ slack-cli channels --include-archived
120
+
121
+ # 限制顯示數量
122
+ slack-cli channels --limit 20
123
+
124
+ # 指定輸出格式
125
+ slack-cli channels --format json
126
+ slack-cli channels --format simple
127
+ ```
128
+
129
+ ### 頻道資訊與管理
130
+
131
+ ```bash
132
+ # 顯示頻道詳細資訊
133
+ slack-cli channel info -c general
134
+
135
+ # 指定輸出格式
136
+ slack-cli channel info -c general --format json
137
+ slack-cli channel info -c general --format simple
138
+
139
+ # 設定頻道主題
140
+ slack-cli channel set-topic -c general --topic "目前衝刺:v2.0"
141
+
142
+ # 設定頻道用途
143
+ slack-cli channel set-purpose -c general --purpose "專案 X 開發頻道"
144
+ ```
145
+
146
+ ### 查看訊息歷史
147
+
148
+ ```bash
149
+ # 取得最新 10 則訊息(預設)
150
+ slack-cli history -c general
151
+
152
+ # 指定筆數
153
+ slack-cli history -c general -n 20
154
+
155
+ # 取得指定日期後的訊息(本地時間)
156
+ slack-cli history -c general --since "2024-01-01 00:00:00"
157
+
158
+ # 取得完整 thread 對話(依 timestamp)
159
+ slack-cli history -c general --thread 1719207629.000100
160
+
161
+ # 取得完整 thread 對話(直接貼 Slack URL)
162
+ slack-cli history -u "https://yourworkspace.slack.com/archives/C1234567890/p1719207629000100"
163
+
164
+ # 也支援回覆訊息的 URL(自動從 query param 取得 thread_ts)
165
+ slack-cli history -u "https://yourworkspace.slack.com/archives/C1234567890/p1719207629999999?thread_ts=1719207629.000100&cid=C1234567890"
166
+
167
+ # 下載訊息中的附件(預設放到 /tmp/slack-files/{channelId}_{threadTs 或 "history"}/)
168
+ slack-cli history -u "https://yourworkspace.slack.com/archives/C1234567890/p1719207629000100" -a
169
+
170
+ # 自訂下載目錄
171
+ slack-cli history -c general -n 20 -a -o ~/Downloads/slack-assets
172
+
173
+ # 指定輸出格式
174
+ slack-cli history -c general --format json
175
+ slack-cli history -c general --format simple
176
+
177
+ # 每則訊息附上永久連結
178
+ slack-cli history -c general --with-link
179
+
180
+ # 使用指定 profile
181
+ slack-cli history -c general --profile work
182
+ ```
183
+
184
+ ### 查看未讀訊息
185
+
186
+ ```bash
187
+ # 取得所有頻道的未讀訊息
188
+ slack-cli unread
189
+
190
+ # 取得指定頻道的未讀訊息
191
+ slack-cli unread -c general
192
+
193
+ # 只顯示未讀數量(不顯示訊息內容)
194
+ slack-cli unread --count-only
195
+
196
+ # 取得後標記為已讀
197
+ slack-cli unread --mark-read
198
+
199
+ # 指定頻道取得後標記為已讀
200
+ slack-cli unread -c general --mark-read
201
+
202
+ # 限制顯示頻道數量
203
+ slack-cli unread --limit 10
204
+
205
+ # 指定輸出格式
206
+ slack-cli unread --format json
207
+ slack-cli unread --format simple
208
+ ```
209
+
210
+ ### 搜尋訊息
211
+
212
+ ```bash
213
+ # 基本搜尋
214
+ slack-cli search -q "deploy error"
215
+
216
+ # 依時間排序(最新優先)
217
+ slack-cli search -q "meeting" --sort timestamp
218
+
219
+ # 依時間排序(最舊優先)
220
+ slack-cli search -q "release" --sort timestamp --sort-dir asc
221
+
222
+ # 限制每頁筆數
223
+ slack-cli search -q "bug fix" -n 50
224
+
225
+ # 翻頁
226
+ slack-cli search -q "deploy" --page 2
227
+
228
+ # 使用 Slack 搜尋修飾詞
229
+ slack-cli search -q "in:general from:@alice deploy"
230
+
231
+ # 指定輸出格式
232
+ slack-cli search -q "error" --format json
233
+ slack-cli search -q "error" --format simple
234
+
235
+ # 使用指定 profile
236
+ slack-cli search -q "release" --profile work
237
+ ```
238
+
239
+ ### 編輯訊息
240
+
241
+ ```bash
242
+ # 編輯已發送的訊息
243
+ slack-cli edit -c general --ts 1234567890.123456 -m "修正後的訊息"
244
+
245
+ # 使用指定 profile
246
+ slack-cli edit -c general --ts 1234567890.123456 -m "修正錯字" --profile work
247
+ ```
248
+
249
+ ### 刪除訊息
250
+
251
+ ```bash
252
+ # 刪除訊息
253
+ slack-cli delete -c general --ts 1234567890.123456
254
+
255
+ # 使用指定 profile
256
+ slack-cli delete -c general --ts 1234567890.123456 --profile work
257
+ ```
258
+
259
+ ### 上傳檔案
260
+
261
+ ```bash
262
+ # 上傳檔案
263
+ slack-cli upload -c general -f ./report.csv
264
+
265
+ # 上傳並附上標題與說明
266
+ slack-cli upload -c general -f ./report.csv --title "每日報表" -m "報表附上"
267
+
268
+ # 上傳文字片段
269
+ slack-cli upload -c general --content 'console.log("hello")' --filename snippet.js --filetype javascript
270
+
271
+ # 在 thread 中上傳
272
+ slack-cli upload -c general -f ./logs.txt -t 1234567890.123456
273
+ ```
274
+
275
+ ### 表情符號反應
276
+
277
+ ```bash
278
+ # 新增反應
279
+ slack-cli reaction add -c general -t 1234567890.123456 -e thumbsup
280
+
281
+ # 移除反應
282
+ slack-cli reaction remove -c general -t 1234567890.123456 -e thumbsup
283
+ ```
284
+
285
+ ### 釘選
286
+
287
+ ```bash
288
+ # 釘選訊息
289
+ slack-cli pin add -c general -t 1234567890.123456
290
+
291
+ # 取消釘選
292
+ slack-cli pin remove -c general -t 1234567890.123456
293
+
294
+ # 列出頻道釘選項目
295
+ slack-cli pin list -c general
296
+
297
+ # 指定輸出格式
298
+ slack-cli pin list -c general --format json
299
+ slack-cli pin list -c general --format simple
300
+ ```
301
+
302
+ ### 使用者
303
+
304
+ ```bash
305
+ # 列出工作區使用者
306
+ slack-cli users list
307
+
308
+ # 限制數量
309
+ slack-cli users list --limit 50
310
+
311
+ # 指定輸出格式
312
+ slack-cli users list --format json
313
+ slack-cli users list --format simple
314
+
315
+ # 查詢指定使用者詳細資訊
316
+ slack-cli users info --id U01ABCDEF
317
+
318
+ # 依 Email 查詢使用者
319
+ slack-cli users lookup --email user@example.com
320
+
321
+ # 使用指定 profile
322
+ slack-cli users list --profile work
323
+ ```
324
+
325
+ ### 排程訊息
326
+
327
+ ```bash
328
+ # 列出排程訊息
329
+ slack-cli scheduled list
330
+
331
+ # 依頻道篩選
332
+ slack-cli scheduled list -c general
333
+
334
+ # 限制筆數
335
+ slack-cli scheduled list --limit 20
336
+
337
+ # 指定輸出格式
338
+ slack-cli scheduled list --format json
339
+ slack-cli scheduled list --format simple
340
+
341
+ # 取消排程訊息
342
+ slack-cli scheduled cancel -c general --id Q1298393284
343
+ ```
344
+
345
+ ### Canvas
346
+
347
+ ```bash
348
+ # 讀取 Canvas 區塊
349
+ slack-cli canvas read -i F01234567890
350
+
351
+ # 指定輸出格式
352
+ slack-cli canvas read -i F01234567890 --format json
353
+ slack-cli canvas read -i F01234567890 --format simple
354
+
355
+ # 列出頻道連結的 Canvas
356
+ slack-cli canvas list -c general
357
+
358
+ # 指定輸出格式
359
+ slack-cli canvas list -c general --format json
360
+ slack-cli canvas list -c general --format simple
361
+
362
+ # 使用指定 profile
363
+ slack-cli canvas read -i F01234567890 --profile work
364
+ slack-cli canvas list -c general --profile work
365
+ ```
366
+
367
+ ### 其他指令
368
+
369
+ ```bash
370
+ # 顯示說明
371
+ slack-cli --help
372
+
373
+ # 顯示版本
374
+ slack-cli --version
375
+
376
+ # 顯示目前設定
377
+ slack-cli config get
378
+
379
+ # 更新預設 profile 的 token
380
+ printf '%s\n' "$NEW_TOKEN" | slack-cli config set --token-stdin
381
+ ```
382
+
383
+ ## 選項說明
384
+
385
+ ### 全域選項
386
+
387
+ | 選項 | 簡短 | 說明 |
388
+ | --------- | ---- | ------------------------- |
389
+ | --profile | -p | 使用指定的工作區 profile |
390
+
391
+ ### send 指令
392
+
393
+ | 選項 | 簡短 | 說明 |
394
+ | --------- | ---- | -------------------------------------- |
395
+ | --channel | -c | 目標頻道名稱或 ID(必填) |
396
+ | --message | -m | 要發送的訊息 |
397
+ | --file | -f | 含有訊息內容的檔案 |
398
+ | --thread | -t | 要回覆的 thread timestamp |
399
+ | --at | | 排程時間(Unix 秒或 ISO 8601) |
400
+ | --after | | N 分鐘後發送 |
401
+
402
+ ### channels 指令
403
+
404
+ | 選項 | 簡短 | 說明 |
405
+ | ------------------ | ---- | ----------------------------------------------------------- |
406
+ | --type | | 頻道類型:public, private, im, mpim, all(預設:public) |
407
+ | --include-archived | | 包含已封存頻道 |
408
+ | --format | | 輸出格式:table, simple, json(預設:table) |
409
+ | --limit | | 最大顯示數量(預設:100) |
410
+
411
+ ### history 指令
412
+
413
+ | 選項 | 簡短 | 說明 |
414
+ | ------------- | ---- | ------------------------------------------------------------------- |
415
+ | --channel | -c | 目標頻道名稱或 ID(未使用 --url 時必填) |
416
+ | --url | -u | Slack thread URL(自動解析 channel 與 thread_ts) |
417
+ | --number | -n | 取得訊息筆數(預設:10) |
418
+ | --since | | 取得指定日期後的訊息(YYYY-MM-DD HH:MM:SS,本地時間) |
419
+ | --thread | -t | Thread timestamp,取得完整 thread 對話 |
420
+ | --attachments | -a | 下載訊息附帶的檔案附件 |
421
+ | --output | -o | 下載附件的目錄(需搭配 -a;預設為 /tmp/slack-files/…) |
422
+ | --with-link | | 每則訊息附上永久連結 |
423
+ | --format | | 輸出格式:table, simple, json(預設:table) |
424
+
425
+ ### unread 指令
426
+
427
+ | 選項 | 簡短 | 說明 |
428
+ | ------------ | ---- | ------------------------------------------- |
429
+ | --channel | -c | 指定頻道 |
430
+ | --format | | 輸出格式:table, simple, json(預設:table) |
431
+ | --count-only | | 只顯示未讀數量 |
432
+ | --limit | | 最大顯示頻道數(預設:50) |
433
+ | --mark-read | | 取得後標記為已讀 |
434
+
435
+ ### search 指令
436
+
437
+ | 選項 | 簡短 | 說明 |
438
+ | ---------- | ---- | ------------------------------------------- |
439
+ | --query | -q | 搜尋關鍵字(必填) |
440
+ | --sort | | 排序依據:score 或 timestamp(預設:score) |
441
+ | --sort-dir | | 排序方向:asc 或 desc(預設:desc) |
442
+ | --number | -n | 每頁筆數,1-100(預設:20) |
443
+ | --page | | 頁碼,1-100(預設:1) |
444
+ | --format | | 輸出格式:table, simple, json(預設:table) |
445
+
446
+ ### edit 指令
447
+
448
+ | 選項 | 簡短 | 說明 |
449
+ | --------- | ---- | -------------------------- |
450
+ | --channel | -c | 目標頻道名稱或 ID(必填) |
451
+ | --ts | | 要編輯的訊息 timestamp(必填)|
452
+ | --message | -m | 新訊息內容(必填) |
453
+
454
+ ### delete 指令
455
+
456
+ | 選項 | 簡短 | 說明 |
457
+ | --------- | ---- | -------------------------- |
458
+ | --channel | -c | 目標頻道名稱或 ID(必填) |
459
+ | --ts | | 要刪除的訊息 timestamp(必填)|
460
+
461
+ ### upload 指令
462
+
463
+ | 選項 | 簡短 | 說明 |
464
+ | ---------- | ---- | --------------------------------- |
465
+ | --channel | -c | 目標頻道名稱或 ID(必填) |
466
+ | --file | -f | 要上傳的檔案路徑 |
467
+ | --content | | 要上傳的文字片段內容 |
468
+ | --filename | | 覆寫檔案名稱 |
469
+ | --title | | 檔案標題 |
470
+ | --message | -m | 附帶說明訊息 |
471
+ | --filetype | | 片段類型(如 python, javascript) |
472
+ | --thread | -t | 要回覆的 thread timestamp |
473
+
474
+ ### reaction 指令
475
+
476
+ 子指令:`add`、`remove`
477
+
478
+ | 選項 | 簡短 | 說明 |
479
+ | ----------- | ---- | ----------------------- |
480
+ | --channel | -c | 頻道名稱或 ID(必填) |
481
+ | --timestamp | -t | 訊息 timestamp(必填) |
482
+ | --emoji | -e | Emoji 名稱,不含冒號(必填)|
483
+
484
+ ### pin 指令
485
+
486
+ 子指令:`add`、`remove`、`list`
487
+
488
+ #### pin add / pin remove
489
+
490
+ | 選項 | 簡短 | 說明 |
491
+ | ----------- | ---- | ----------------------- |
492
+ | --channel | -c | 頻道名稱或 ID(必填) |
493
+ | --timestamp | -t | 訊息 timestamp(必填) |
494
+
495
+ #### pin list
496
+
497
+ | 選項 | 簡短 | 說明 |
498
+ | --------- | ---- | ------------------------------------------- |
499
+ | --channel | -c | 頻道名稱或 ID(必填) |
500
+ | --format | | 輸出格式:table, simple, json(預設:table) |
501
+
502
+ ### users 指令
503
+
504
+ 子指令:`list`、`info`、`lookup`
505
+
506
+ #### users list
507
+
508
+ | 選項 | 簡短 | 說明 |
509
+ | -------- | ---- | ------------------------------------------- |
510
+ | --limit | | 最大列出數量(預設:100) |
511
+ | --format | | 輸出格式:table, simple, json(預設:table) |
512
+
513
+ #### users info
514
+
515
+ | 選項 | 簡短 | 說明 |
516
+ | -------- | ---- | ------------------------------------------- |
517
+ | --id | | 使用者 ID(必填) |
518
+ | --format | | 輸出格式:table, simple, json(預設:table) |
519
+
520
+ #### users lookup
521
+
522
+ | 選項 | 簡短 | 說明 |
523
+ | -------- | ---- | ------------------------------------------- |
524
+ | --email | | 要查詢的 Email(必填) |
525
+ | --format | | 輸出格式:table, simple, json(預設:table) |
526
+
527
+ ### scheduled 指令
528
+
529
+ 子指令:`list`、`cancel`
530
+
531
+ #### scheduled list
532
+
533
+ | 選項 | 簡短 | 說明 |
534
+ | --------- | ---- | ------------------------------------------- |
535
+ | --channel | -c | 依頻道篩選 |
536
+ | --limit | | 最大顯示筆數(預設:50) |
537
+ | --format | | 輸出格式:table, simple, json(預設:table) |
538
+
539
+ #### scheduled cancel
540
+
541
+ | 選項 | 簡短 | 說明 |
542
+ | --------- | ---- | ----------------------- |
543
+ | --channel | -c | 頻道名稱或 ID(必填) |
544
+ | --id | | 排程訊息 ID(必填) |
545
+
546
+ ### canvas 指令
547
+
548
+ 子指令:`read`、`list`
549
+
550
+ #### canvas read
551
+
552
+ | 選項 | 簡短 | 說明 |
553
+ | -------- | ---- | ------------------------------------------- |
554
+ | --id | -i | Canvas ID(必填) |
555
+ | --format | | 輸出格式:table, simple, json(預設:table) |
556
+
557
+ #### canvas list
558
+
559
+ | 選項 | 簡短 | 說明 |
560
+ | --------- | ---- | ------------------------------------------- |
561
+ | --channel | -c | 頻道名稱或 ID(必填) |
562
+ | --format | | 輸出格式:table, simple, json(預設:table) |
563
+
564
+ ## 所需權限
565
+
566
+ Slack API Token 需要以下 scopes:
567
+
568
+ - `chat:write` - 發送與編輯訊息
569
+ - `channels:read` - 列出公開頻道與取得頻道資訊
570
+ - `channels:write` - 設定公開頻道的主題/用途
571
+ - `groups:read` - 列出私有頻道與取得頻道資訊
572
+ - `groups:write` - 設定私有頻道的主題/用途
573
+ - `channels:history` - 讀取頻道訊息歷史
574
+ - `groups:history` - 讀取私有頻道訊息歷史
575
+ - `im:history` - 讀取私訊歷史
576
+ - `im:write` - 開啟 DM 頻道(供 --user/--email 使用)
577
+ - `users:read` - 取得使用者資訊
578
+ - `users:read.email` - 依 Email 查詢使用者
579
+ - `search:read` - 搜尋訊息(僅支援 user token,不支援 bot token)
580
+ - `reactions:write` - 新增與移除反應
581
+ - `pins:read` - 列出頻道釘選項目
582
+ - `pins:write` - 釘選與取消釘選訊息
583
+ - `files:write` - 上傳檔案與片段
584
+ - `files:read` - 列出頻道連結的 Canvas
585
+ - `canvases:read` - 讀取 Canvas 區塊
586
+
587
+ ## 進階功能
588
+
589
+ ### 速率限制
590
+
591
+ CLI 內建速率限制以因應 Slack API 限制:
592
+
593
+ - 並發請求數:3
594
+ - 自動指數退避重試(最多 3 次)
595
+ - 速率限制錯誤的優雅處理
596
+
597
+ ### 輸出格式
598
+
599
+ 大多數指令支援多種輸出格式:
600
+
601
+ - `table`(預設)- 人類可讀的表格格式
602
+ - `simple` - 簡化文字輸出
603
+ - `json` - 機器可讀的 JSON 格式
604
+
605
+ ### Markdown 支援
606
+
607
+ `send` 指令發送的訊息自動支援 Slack 的 mrkdwn 格式:
608
+
609
+ - `*粗體*`
610
+ - `_斜體_`
611
+ - `~刪除線~`
612
+ - `` `行內程式碼` ``
613
+ - ` ```程式碼區塊``` `
614
+ - 連結會自動轉為超連結
615
+ - 使用者提及:`<@USER_ID>`
616
+ - 頻道提及:`<#CHANNEL_ID>`
617
+
618
+ ## 授權
619
+
620
+ MIT
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function setupBookmarkCommand(): Command;
3
+ //# sourceMappingURL=bookmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bookmark.d.ts","sourceRoot":"","sources":["../../src/commands/bookmark.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,oBAAoB,IAAI,OAAO,CA8D9C"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.setupBookmarkCommand = setupBookmarkCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const commander_1 = require("commander");
9
+ const client_factory_1 = require("../utils/client-factory");
10
+ const command_wrapper_1 = require("../utils/command-wrapper");
11
+ const bookmark_formatters_1 = require("../utils/formatters/bookmark-formatters");
12
+ const option_parsers_1 = require("../utils/option-parsers");
13
+ const validators_1 = require("../utils/validators");
14
+ function setupBookmarkCommand() {
15
+ const bookmarkCommand = new commander_1.Command('bookmark').description('Manage saved items (あとで読む)');
16
+ const addCommand = new commander_1.Command('add')
17
+ .description('Save a message for later')
18
+ .requiredOption('-c, --channel <channel>', 'Channel ID')
19
+ .requiredOption('--ts <timestamp>', 'Message timestamp')
20
+ .option('--profile <profile>', 'Use specific workspace profile')
21
+ .action((0, command_wrapper_1.wrapCommand)(async (options) => {
22
+ const profile = (0, option_parsers_1.parseProfile)(options.profile);
23
+ const client = await (0, client_factory_1.createSlackClient)(profile);
24
+ await client.addStar(options.channel, options.ts);
25
+ console.log(chalk_1.default.green(`✓ Saved message ${options.ts} in ${options.channel}`));
26
+ }));
27
+ const listCommand = new commander_1.Command('list')
28
+ .description('List saved items')
29
+ .option('--limit <limit>', 'Number of items to display', '100')
30
+ .option('--format <format>', 'Output format: table, simple, json', 'table')
31
+ .option('--profile <profile>', 'Use specific workspace profile')
32
+ .hook('preAction', (0, validators_1.createValidationHook)([validators_1.optionValidators.format]))
33
+ .action((0, command_wrapper_1.wrapCommand)(async (options) => {
34
+ const profile = (0, option_parsers_1.parseProfile)(options.profile);
35
+ const client = await (0, client_factory_1.createSlackClient)(profile);
36
+ const limit = (0, option_parsers_1.parseLimit)(options.limit, 100);
37
+ const result = await client.listStars(limit);
38
+ if (result.items.length === 0) {
39
+ console.log('No saved items found');
40
+ return;
41
+ }
42
+ const format = (0, option_parsers_1.parseFormat)(options.format);
43
+ const formatter = (0, bookmark_formatters_1.createBookmarkFormatter)(format);
44
+ formatter.format({ items: result.items });
45
+ }));
46
+ const removeCommand = new commander_1.Command('remove')
47
+ .description('Remove a saved item')
48
+ .requiredOption('-c, --channel <channel>', 'Channel ID')
49
+ .requiredOption('--ts <timestamp>', 'Message timestamp')
50
+ .option('--profile <profile>', 'Use specific workspace profile')
51
+ .action((0, command_wrapper_1.wrapCommand)(async (options) => {
52
+ const profile = (0, option_parsers_1.parseProfile)(options.profile);
53
+ const client = await (0, client_factory_1.createSlackClient)(profile);
54
+ await client.removeStar(options.channel, options.ts);
55
+ console.log(chalk_1.default.green(`✓ Removed saved item ${options.ts} from ${options.channel}`));
56
+ }));
57
+ bookmarkCommand.addCommand(addCommand);
58
+ bookmarkCommand.addCommand(listCommand);
59
+ bookmarkCommand.addCommand(removeCommand);
60
+ return bookmarkCommand;
61
+ }
62
+ //# sourceMappingURL=bookmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bookmark.js","sourceRoot":"","sources":["../../src/commands/bookmark.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function setupCanvasCommand(): Command;
3
+ //# sourceMappingURL=canvas.d.ts.map