agent-messenger 2.7.0 → 2.8.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 (511) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.github/workflows/ci.yml +6 -0
  3. package/.oxfmtrc.json +13 -1
  4. package/.oxlintrc.json +10 -1
  5. package/README.md +1 -1
  6. package/dist/package.json +59 -58
  7. package/dist/src/platforms/channeltalk/client.d.ts.map +1 -1
  8. package/dist/src/platforms/channeltalk/client.js +2 -2
  9. package/dist/src/platforms/channeltalk/client.js.map +1 -1
  10. package/dist/src/platforms/channeltalk/commands/auth.d.ts.map +1 -1
  11. package/dist/src/platforms/channeltalk/commands/auth.js.map +1 -1
  12. package/dist/src/platforms/channeltalk/commands/message.d.ts.map +1 -1
  13. package/dist/src/platforms/channeltalk/commands/message.js.map +1 -1
  14. package/dist/src/platforms/channeltalk/commands/snapshot.d.ts.map +1 -1
  15. package/dist/src/platforms/channeltalk/commands/snapshot.js.map +1 -1
  16. package/dist/src/platforms/channeltalk/ensure-auth.d.ts.map +1 -1
  17. package/dist/src/platforms/channeltalk/ensure-auth.js.map +1 -1
  18. package/dist/src/platforms/channeltalk/token-extractor.d.ts +9 -23
  19. package/dist/src/platforms/channeltalk/token-extractor.d.ts.map +1 -1
  20. package/dist/src/platforms/channeltalk/token-extractor.js +109 -341
  21. package/dist/src/platforms/channeltalk/token-extractor.js.map +1 -1
  22. package/dist/src/platforms/channeltalkbot/client.d.ts +1 -1
  23. package/dist/src/platforms/channeltalkbot/client.d.ts.map +1 -1
  24. package/dist/src/platforms/channeltalkbot/client.js +4 -4
  25. package/dist/src/platforms/channeltalkbot/client.js.map +1 -1
  26. package/dist/src/platforms/channeltalkbot/commands/auth.d.ts.map +1 -1
  27. package/dist/src/platforms/channeltalkbot/commands/auth.js +4 -1
  28. package/dist/src/platforms/channeltalkbot/commands/auth.js.map +1 -1
  29. package/dist/src/platforms/channeltalkbot/commands/shared.d.ts.map +1 -1
  30. package/dist/src/platforms/channeltalkbot/commands/shared.js.map +1 -1
  31. package/dist/src/platforms/discord/commands/auth.js.map +1 -1
  32. package/dist/src/platforms/discord/commands/whoami.d.ts.map +1 -1
  33. package/dist/src/platforms/discord/commands/whoami.js.map +1 -1
  34. package/dist/src/platforms/discord/token-extractor.d.ts +2 -10
  35. package/dist/src/platforms/discord/token-extractor.d.ts.map +1 -1
  36. package/dist/src/platforms/discord/token-extractor.js +38 -172
  37. package/dist/src/platforms/discord/token-extractor.js.map +1 -1
  38. package/dist/src/platforms/discordbot/client.d.ts.map +1 -1
  39. package/dist/src/platforms/discordbot/client.js.map +1 -1
  40. package/dist/src/platforms/instagram/cli.d.ts.map +1 -1
  41. package/dist/src/platforms/instagram/cli.js +1 -4
  42. package/dist/src/platforms/instagram/cli.js.map +1 -1
  43. package/dist/src/platforms/instagram/client.d.ts.map +1 -1
  44. package/dist/src/platforms/instagram/client.js +8 -7
  45. package/dist/src/platforms/instagram/client.js.map +1 -1
  46. package/dist/src/platforms/instagram/commands/auth.d.ts.map +1 -1
  47. package/dist/src/platforms/instagram/commands/auth.js.map +1 -1
  48. package/dist/src/platforms/instagram/commands/chat.d.ts.map +1 -1
  49. package/dist/src/platforms/instagram/commands/chat.js.map +1 -1
  50. package/dist/src/platforms/instagram/commands/message.d.ts.map +1 -1
  51. package/dist/src/platforms/instagram/commands/message.js.map +1 -1
  52. package/dist/src/platforms/instagram/commands/shared.d.ts.map +1 -1
  53. package/dist/src/platforms/instagram/commands/shared.js.map +1 -1
  54. package/dist/src/platforms/instagram/credential-manager.d.ts.map +1 -1
  55. package/dist/src/platforms/instagram/credential-manager.js +1 -1
  56. package/dist/src/platforms/instagram/credential-manager.js.map +1 -1
  57. package/dist/src/platforms/instagram/ensure-auth.d.ts.map +1 -1
  58. package/dist/src/platforms/instagram/ensure-auth.js.map +1 -1
  59. package/dist/src/platforms/instagram/token-extractor.d.ts +7 -19
  60. package/dist/src/platforms/instagram/token-extractor.d.ts.map +1 -1
  61. package/dist/src/platforms/instagram/token-extractor.js +44 -270
  62. package/dist/src/platforms/instagram/token-extractor.js.map +1 -1
  63. package/dist/src/platforms/instagram/types.d.ts.map +1 -1
  64. package/dist/src/platforms/instagram/types.js +4 -2
  65. package/dist/src/platforms/instagram/types.js.map +1 -1
  66. package/dist/src/platforms/kakaotalk/auth/kakao-login.d.ts.map +1 -1
  67. package/dist/src/platforms/kakaotalk/auth/kakao-login.js +18 -4
  68. package/dist/src/platforms/kakaotalk/auth/kakao-login.js.map +1 -1
  69. package/dist/src/platforms/kakaotalk/client.d.ts.map +1 -1
  70. package/dist/src/platforms/kakaotalk/client.js +3 -3
  71. package/dist/src/platforms/kakaotalk/client.js.map +1 -1
  72. package/dist/src/platforms/kakaotalk/commands/auth.d.ts.map +1 -1
  73. package/dist/src/platforms/kakaotalk/commands/auth.js +15 -9
  74. package/dist/src/platforms/kakaotalk/commands/auth.js.map +1 -1
  75. package/dist/src/platforms/kakaotalk/commands/shared.d.ts.map +1 -1
  76. package/dist/src/platforms/kakaotalk/commands/shared.js.map +1 -1
  77. package/dist/src/platforms/kakaotalk/protocol/connection.d.ts.map +1 -1
  78. package/dist/src/platforms/kakaotalk/protocol/connection.js.map +1 -1
  79. package/dist/src/platforms/kakaotalk/protocol/crypto.js +1 -1
  80. package/dist/src/platforms/kakaotalk/protocol/crypto.js.map +1 -1
  81. package/dist/src/platforms/kakaotalk/protocol/session.d.ts.map +1 -1
  82. package/dist/src/platforms/kakaotalk/protocol/session.js +1 -3
  83. package/dist/src/platforms/kakaotalk/protocol/session.js.map +1 -1
  84. package/dist/src/platforms/kakaotalk/token-extractor.js +5 -2
  85. package/dist/src/platforms/kakaotalk/token-extractor.js.map +1 -1
  86. package/dist/src/platforms/kakaotalk/types.d.ts.map +1 -1
  87. package/dist/src/platforms/kakaotalk/types.js +4 -2
  88. package/dist/src/platforms/kakaotalk/types.js.map +1 -1
  89. package/dist/src/platforms/line/cli.d.ts.map +1 -1
  90. package/dist/src/platforms/line/cli.js +1 -4
  91. package/dist/src/platforms/line/cli.js.map +1 -1
  92. package/dist/src/platforms/line/client.d.ts.map +1 -1
  93. package/dist/src/platforms/line/client.js +5 -13
  94. package/dist/src/platforms/line/client.js.map +1 -1
  95. package/dist/src/platforms/line/commands/chat.d.ts.map +1 -1
  96. package/dist/src/platforms/line/commands/chat.js.map +1 -1
  97. package/dist/src/platforms/line/commands/message.d.ts.map +1 -1
  98. package/dist/src/platforms/line/commands/message.js.map +1 -1
  99. package/dist/src/platforms/line/listener.js +1 -1
  100. package/dist/src/platforms/line/listener.js.map +1 -1
  101. package/dist/src/platforms/slack/cli.d.ts.map +1 -1
  102. package/dist/src/platforms/slack/cli.js.map +1 -1
  103. package/dist/src/platforms/slack/client-mappers.d.ts +14 -0
  104. package/dist/src/platforms/slack/client-mappers.d.ts.map +1 -0
  105. package/dist/src/platforms/slack/client-mappers.js +245 -0
  106. package/dist/src/platforms/slack/client-mappers.js.map +1 -0
  107. package/dist/src/platforms/slack/client.d.ts +0 -1
  108. package/dist/src/platforms/slack/client.d.ts.map +1 -1
  109. package/dist/src/platforms/slack/client.js +41 -455
  110. package/dist/src/platforms/slack/client.js.map +1 -1
  111. package/dist/src/platforms/slack/commands/channel.d.ts.map +1 -1
  112. package/dist/src/platforms/slack/commands/channel.js.map +1 -1
  113. package/dist/src/platforms/slack/commands/emoji.d.ts.map +1 -1
  114. package/dist/src/platforms/slack/commands/emoji.js +1 -3
  115. package/dist/src/platforms/slack/commands/emoji.js.map +1 -1
  116. package/dist/src/platforms/slack/commands/message.d.ts.map +1 -1
  117. package/dist/src/platforms/slack/commands/message.js.map +1 -1
  118. package/dist/src/platforms/slack/commands/reminder.d.ts.map +1 -1
  119. package/dist/src/platforms/slack/commands/reminder.js.map +1 -1
  120. package/dist/src/platforms/slack/commands/user.d.ts.map +1 -1
  121. package/dist/src/platforms/slack/commands/user.js.map +1 -1
  122. package/dist/src/platforms/slack/commands/usergroup.d.ts.map +1 -1
  123. package/dist/src/platforms/slack/commands/usergroup.js.map +1 -1
  124. package/dist/src/platforms/slack/commands/whoami.d.ts.map +1 -1
  125. package/dist/src/platforms/slack/commands/whoami.js.map +1 -1
  126. package/dist/src/platforms/slack/token-extractor.d.ts +2 -6
  127. package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
  128. package/dist/src/platforms/slack/token-extractor.js +35 -229
  129. package/dist/src/platforms/slack/token-extractor.js.map +1 -1
  130. package/dist/src/platforms/slackbot/cli.d.ts.map +1 -1
  131. package/dist/src/platforms/slackbot/cli.js +1 -1
  132. package/dist/src/platforms/slackbot/cli.js.map +1 -1
  133. package/dist/src/platforms/teams/client.d.ts.map +1 -1
  134. package/dist/src/platforms/teams/client.js +1 -1
  135. package/dist/src/platforms/teams/client.js.map +1 -1
  136. package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
  137. package/dist/src/platforms/teams/commands/auth.js +4 -1
  138. package/dist/src/platforms/teams/commands/auth.js.map +1 -1
  139. package/dist/src/platforms/teams/commands/whoami.d.ts.map +1 -1
  140. package/dist/src/platforms/teams/commands/whoami.js.map +1 -1
  141. package/dist/src/platforms/teams/token-extractor.d.ts +6 -18
  142. package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
  143. package/dist/src/platforms/teams/token-extractor.js +71 -324
  144. package/dist/src/platforms/teams/token-extractor.js.map +1 -1
  145. package/dist/src/platforms/telegram/cli.d.ts.map +1 -1
  146. package/dist/src/platforms/telegram/cli.js +1 -4
  147. package/dist/src/platforms/telegram/cli.js.map +1 -1
  148. package/dist/src/platforms/telegram/client.d.ts.map +1 -1
  149. package/dist/src/platforms/telegram/client.js.map +1 -1
  150. package/dist/src/platforms/telegram/commands/auth.d.ts.map +1 -1
  151. package/dist/src/platforms/telegram/commands/auth.js +1 -1
  152. package/dist/src/platforms/telegram/commands/auth.js.map +1 -1
  153. package/dist/src/platforms/telegram/commands/chat.d.ts.map +1 -1
  154. package/dist/src/platforms/telegram/commands/chat.js.map +1 -1
  155. package/dist/src/platforms/telegram/commands/message.d.ts.map +1 -1
  156. package/dist/src/platforms/telegram/commands/message.js.map +1 -1
  157. package/dist/src/platforms/telegram/commands/whoami.js +1 -1
  158. package/dist/src/platforms/telegram/commands/whoami.js.map +1 -1
  159. package/dist/src/platforms/telegram/credential-manager.d.ts.map +1 -1
  160. package/dist/src/platforms/telegram/credential-manager.js +6 -2
  161. package/dist/src/platforms/telegram/credential-manager.js.map +1 -1
  162. package/dist/src/platforms/telegram/my-telegram-org.js.map +1 -1
  163. package/dist/src/platforms/webex/cli.d.ts.map +1 -1
  164. package/dist/src/platforms/webex/cli.js +1 -4
  165. package/dist/src/platforms/webex/cli.js.map +1 -1
  166. package/dist/src/platforms/webex/client.d.ts.map +1 -1
  167. package/dist/src/platforms/webex/client.js +3 -7
  168. package/dist/src/platforms/webex/client.js.map +1 -1
  169. package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -1
  170. package/dist/src/platforms/webex/commands/auth.js +1 -3
  171. package/dist/src/platforms/webex/commands/auth.js.map +1 -1
  172. package/dist/src/platforms/webex/commands/member.d.ts.map +1 -1
  173. package/dist/src/platforms/webex/commands/member.js +1 -3
  174. package/dist/src/platforms/webex/commands/member.js.map +1 -1
  175. package/dist/src/platforms/webex/commands/message.d.ts.map +1 -1
  176. package/dist/src/platforms/webex/commands/message.js.map +1 -1
  177. package/dist/src/platforms/webex/commands/snapshot.d.ts.map +1 -1
  178. package/dist/src/platforms/webex/commands/snapshot.js.map +1 -1
  179. package/dist/src/platforms/webex/commands/space.d.ts.map +1 -1
  180. package/dist/src/platforms/webex/commands/space.js.map +1 -1
  181. package/dist/src/platforms/webex/commands/whoami.d.ts.map +1 -1
  182. package/dist/src/platforms/webex/commands/whoami.js.map +1 -1
  183. package/dist/src/platforms/webex/credential-manager.d.ts.map +1 -1
  184. package/dist/src/platforms/webex/credential-manager.js.map +1 -1
  185. package/dist/src/platforms/webex/ensure-auth.d.ts.map +1 -1
  186. package/dist/src/platforms/webex/ensure-auth.js +1 -3
  187. package/dist/src/platforms/webex/ensure-auth.js.map +1 -1
  188. package/dist/src/platforms/webex/index.d.ts +1 -1
  189. package/dist/src/platforms/webex/index.d.ts.map +1 -1
  190. package/dist/src/platforms/webex/index.js.map +1 -1
  191. package/dist/src/platforms/webex/markdown-to-html.js.map +1 -1
  192. package/dist/src/platforms/webex/token-extractor.d.ts.map +1 -1
  193. package/dist/src/platforms/webex/token-extractor.js +5 -14
  194. package/dist/src/platforms/webex/token-extractor.js.map +1 -1
  195. package/dist/src/platforms/wechatbot/client.d.ts.map +1 -1
  196. package/dist/src/platforms/wechatbot/client.js.map +1 -1
  197. package/dist/src/platforms/wechatbot/commands/message.d.ts.map +1 -1
  198. package/dist/src/platforms/wechatbot/commands/message.js.map +1 -1
  199. package/dist/src/platforms/whatsapp/cli.d.ts.map +1 -1
  200. package/dist/src/platforms/whatsapp/cli.js +1 -4
  201. package/dist/src/platforms/whatsapp/cli.js.map +1 -1
  202. package/dist/src/platforms/whatsapp/commands/chat.d.ts.map +1 -1
  203. package/dist/src/platforms/whatsapp/commands/chat.js.map +1 -1
  204. package/dist/src/platforms/whatsapp/commands/message.d.ts.map +1 -1
  205. package/dist/src/platforms/whatsapp/commands/message.js.map +1 -1
  206. package/dist/src/platforms/whatsapp/commands/shared.d.ts.map +1 -1
  207. package/dist/src/platforms/whatsapp/commands/shared.js.map +1 -1
  208. package/dist/src/platforms/whatsapp/credential-manager.d.ts.map +1 -1
  209. package/dist/src/platforms/whatsapp/credential-manager.js +1 -1
  210. package/dist/src/platforms/whatsapp/credential-manager.js.map +1 -1
  211. package/dist/src/platforms/whatsapp/ensure-auth.d.ts.map +1 -1
  212. package/dist/src/platforms/whatsapp/ensure-auth.js.map +1 -1
  213. package/dist/src/platforms/whatsappbot/client.d.ts.map +1 -1
  214. package/dist/src/platforms/whatsappbot/client.js +2 -2
  215. package/dist/src/platforms/whatsappbot/client.js.map +1 -1
  216. package/dist/src/platforms/whatsappbot/commands/auth.d.ts.map +1 -1
  217. package/dist/src/platforms/whatsappbot/commands/auth.js +4 -1
  218. package/dist/src/platforms/whatsappbot/commands/auth.js.map +1 -1
  219. package/dist/src/platforms/whatsappbot/commands/message.d.ts.map +1 -1
  220. package/dist/src/platforms/whatsappbot/commands/message.js.map +1 -1
  221. package/dist/src/platforms/whatsappbot/commands/shared.d.ts.map +1 -1
  222. package/dist/src/platforms/whatsappbot/commands/shared.js.map +1 -1
  223. package/dist/src/shared/chromium/browsers.d.ts +7 -0
  224. package/dist/src/shared/chromium/browsers.d.ts.map +1 -0
  225. package/dist/src/shared/chromium/browsers.js +89 -0
  226. package/dist/src/shared/chromium/browsers.js.map +1 -0
  227. package/dist/src/shared/chromium/cookie-reader.d.ts +20 -0
  228. package/dist/src/shared/chromium/cookie-reader.d.ts.map +1 -0
  229. package/dist/src/shared/chromium/cookie-reader.js +99 -0
  230. package/dist/src/shared/chromium/cookie-reader.js.map +1 -0
  231. package/dist/src/shared/chromium/decryptor.d.ts +42 -0
  232. package/dist/src/shared/chromium/decryptor.d.ts.map +1 -0
  233. package/dist/src/shared/chromium/decryptor.js +205 -0
  234. package/dist/src/shared/chromium/decryptor.js.map +1 -0
  235. package/dist/src/shared/chromium/index.d.ts +6 -0
  236. package/dist/src/shared/chromium/index.d.ts.map +1 -0
  237. package/dist/src/shared/chromium/index.js +4 -0
  238. package/dist/src/shared/chromium/index.js.map +1 -0
  239. package/dist/src/shared/chromium/types.d.ts +11 -0
  240. package/dist/src/shared/chromium/types.d.ts.map +1 -0
  241. package/dist/src/shared/chromium/types.js +2 -0
  242. package/dist/src/shared/chromium/types.js.map +1 -0
  243. package/dist/src/shared/utils/derived-key-cache.d.ts +1 -1
  244. package/dist/src/shared/utils/derived-key-cache.d.ts.map +1 -1
  245. package/dist/src/shared/utils/linux-keyring.js +4 -1
  246. package/dist/src/shared/utils/linux-keyring.js.map +1 -1
  247. package/dist/src/tui/adapters/kakaotalk-adapter.d.ts.map +1 -1
  248. package/dist/src/tui/adapters/kakaotalk-adapter.js +6 -1
  249. package/dist/src/tui/adapters/kakaotalk-adapter.js.map +1 -1
  250. package/dist/src/tui/adapters/telegram-adapter.js +1 -1
  251. package/dist/src/tui/adapters/telegram-adapter.js.map +1 -1
  252. package/dist/src/tui/adapters/webex-adapter.js +1 -1
  253. package/dist/src/tui/adapters/webex-adapter.js.map +1 -1
  254. package/dist/src/tui/app.d.ts.map +1 -1
  255. package/dist/src/tui/app.js +112 -23
  256. package/dist/src/tui/app.js.map +1 -1
  257. package/dist/src/tui/utils.d.ts.map +1 -1
  258. package/dist/src/tui/utils.js +11 -13
  259. package/dist/src/tui/utils.js.map +1 -1
  260. package/dist/src/tui/views/channel-picker.d.ts.map +1 -1
  261. package/dist/src/tui/views/channel-picker.js.map +1 -1
  262. package/dist/src/tui/views/workspace-picker.d.ts.map +1 -1
  263. package/dist/src/tui/views/workspace-picker.js.map +1 -1
  264. package/docs/content/docs/cli/channeltalk.mdx +24 -22
  265. package/docs/content/docs/cli/channeltalkbot.mdx +7 -7
  266. package/docs/content/docs/cli/instagram.mdx +4 -4
  267. package/docs/content/docs/cli/kakaotalk.mdx +9 -8
  268. package/docs/content/docs/cli/line.mdx +14 -14
  269. package/docs/content/docs/cli/webex.mdx +19 -19
  270. package/docs/content/docs/cli/wechatbot.mdx +12 -11
  271. package/docs/content/docs/cli/whatsapp.mdx +5 -4
  272. package/docs/content/docs/cli/whatsappbot.mdx +11 -11
  273. package/docs/content/docs/index.mdx +7 -7
  274. package/docs/content/docs/meta.json +1 -9
  275. package/docs/content/docs/sdk/channeltalk.mdx +5 -6
  276. package/docs/content/docs/sdk/channeltalkbot.mdx +6 -12
  277. package/docs/content/docs/sdk/discord.mdx +36 -43
  278. package/docs/content/docs/sdk/instagram.mdx +18 -18
  279. package/docs/content/docs/sdk/kakaotalk.mdx +27 -18
  280. package/docs/content/docs/sdk/line.mdx +8 -13
  281. package/docs/content/docs/sdk/meta.json +14 -1
  282. package/docs/content/docs/sdk/slack.mdx +36 -42
  283. package/docs/content/docs/sdk/teams.mdx +2 -8
  284. package/docs/content/docs/sdk/webex.mdx +2 -12
  285. package/docs/content/docs/sdk/wechatbot.mdx +1 -5
  286. package/docs/content/docs/sdk/whatsapp.mdx +10 -19
  287. package/docs/content/docs/sdk/whatsappbot.mdx +2 -10
  288. package/docs/content/docs/tui.mdx +23 -23
  289. package/docs/src/app/page.tsx +353 -108
  290. package/e2e/channeltalkbot.e2e.test.ts +1 -5
  291. package/e2e/config.ts +6 -2
  292. package/package.json +59 -58
  293. package/scripts/prepublish.ts +1 -3
  294. package/skills/agent-channeltalk/SKILL.md +1 -1
  295. package/skills/agent-channeltalkbot/SKILL.md +1 -1
  296. package/skills/agent-discord/SKILL.md +1 -1
  297. package/skills/agent-discordbot/SKILL.md +1 -1
  298. package/skills/agent-instagram/SKILL.md +1 -1
  299. package/skills/agent-kakaotalk/SKILL.md +1 -1
  300. package/skills/agent-line/SKILL.md +1 -1
  301. package/skills/agent-slack/SKILL.md +1 -1
  302. package/skills/agent-slackbot/SKILL.md +1 -1
  303. package/skills/agent-teams/SKILL.md +1 -1
  304. package/skills/agent-telegram/SKILL.md +1 -1
  305. package/skills/agent-webex/SKILL.md +1 -1
  306. package/skills/agent-wechatbot/SKILL.md +1 -1
  307. package/skills/agent-whatsapp/SKILL.md +1 -1
  308. package/skills/agent-whatsappbot/SKILL.md +1 -1
  309. package/src/platforms/channeltalk/client.test.ts +116 -29
  310. package/src/platforms/channeltalk/client.ts +26 -6
  311. package/src/platforms/channeltalk/commands/auth.test.ts +5 -5
  312. package/src/platforms/channeltalk/commands/auth.ts +19 -5
  313. package/src/platforms/channeltalk/commands/message.test.ts +2 -6
  314. package/src/platforms/channeltalk/commands/message.ts +5 -1
  315. package/src/platforms/channeltalk/commands/snapshot.test.ts +19 -4
  316. package/src/platforms/channeltalk/commands/snapshot.ts +5 -1
  317. package/src/platforms/channeltalk/ensure-auth.test.ts +20 -17
  318. package/src/platforms/channeltalk/ensure-auth.ts +6 -7
  319. package/src/platforms/channeltalk/index.ts +0 -1
  320. package/src/platforms/channeltalk/token-extractor.test.ts +33 -25
  321. package/src/platforms/channeltalk/token-extractor.ts +120 -372
  322. package/src/platforms/channeltalkbot/client.test.ts +1 -3
  323. package/src/platforms/channeltalkbot/client.ts +39 -13
  324. package/src/platforms/channeltalkbot/commands/auth.test.ts +3 -1
  325. package/src/platforms/channeltalkbot/commands/auth.ts +4 -1
  326. package/src/platforms/channeltalkbot/commands/bot.test.ts +13 -5
  327. package/src/platforms/channeltalkbot/commands/message.test.ts +12 -6
  328. package/src/platforms/channeltalkbot/commands/shared.ts +6 -2
  329. package/src/platforms/channeltalkbot/commands/snapshot.test.ts +17 -5
  330. package/src/platforms/channeltalkbot/credential-manager.test.ts +1 -1
  331. package/src/platforms/channeltalkbot/index.test.ts +0 -2
  332. package/src/platforms/channeltalkbot/index.ts +0 -1
  333. package/src/platforms/discord/commands/auth.test.ts +6 -4
  334. package/src/platforms/discord/commands/auth.ts +14 -14
  335. package/src/platforms/discord/commands/whoami.test.ts +2 -4
  336. package/src/platforms/discord/commands/whoami.ts +2 -0
  337. package/src/platforms/discord/ensure-auth.test.ts +5 -3
  338. package/src/platforms/discord/index.ts +0 -1
  339. package/src/platforms/discord/listener.test.ts +7 -1
  340. package/src/platforms/discord/token-extractor.test.ts +18 -12
  341. package/src/platforms/discord/token-extractor.ts +46 -190
  342. package/src/platforms/discordbot/client.ts +1 -4
  343. package/src/platforms/discordbot/commands/auth.test.ts +3 -1
  344. package/src/platforms/discordbot/commands/channel.test.ts +3 -1
  345. package/src/platforms/discordbot/commands/message.test.ts +3 -1
  346. package/src/platforms/discordbot/commands/server.test.ts +3 -1
  347. package/src/platforms/discordbot/commands/snapshot.test.ts +3 -1
  348. package/src/platforms/discordbot/commands/thread.test.ts +3 -1
  349. package/src/platforms/discordbot/commands/user.test.ts +3 -1
  350. package/src/platforms/instagram/cli.ts +1 -4
  351. package/src/platforms/instagram/client.test.ts +3 -8
  352. package/src/platforms/instagram/client.ts +39 -34
  353. package/src/platforms/instagram/commands/auth.test.ts +13 -12
  354. package/src/platforms/instagram/commands/auth.ts +136 -71
  355. package/src/platforms/instagram/commands/chat.test.ts +21 -24
  356. package/src/platforms/instagram/commands/chat.ts +2 -0
  357. package/src/platforms/instagram/commands/message.test.ts +29 -24
  358. package/src/platforms/instagram/commands/message.ts +3 -4
  359. package/src/platforms/instagram/commands/shared.ts +2 -5
  360. package/src/platforms/instagram/commands/whoami.test.ts +4 -6
  361. package/src/platforms/instagram/credential-manager.ts +2 -6
  362. package/src/platforms/instagram/ensure-auth.test.ts +1 -4
  363. package/src/platforms/instagram/ensure-auth.ts +6 -3
  364. package/src/platforms/instagram/listener.test.ts +7 -3
  365. package/src/platforms/instagram/token-extractor.test.ts +4 -16
  366. package/src/platforms/instagram/token-extractor.ts +55 -309
  367. package/src/platforms/instagram/types.test.ts +2 -6
  368. package/src/platforms/instagram/types.ts +4 -2
  369. package/src/platforms/kakaotalk/auth/kakao-login.ts +30 -8
  370. package/src/platforms/kakaotalk/client.test.ts +37 -25
  371. package/src/platforms/kakaotalk/client.ts +23 -12
  372. package/src/platforms/kakaotalk/commands/auth.test.ts +6 -18
  373. package/src/platforms/kakaotalk/commands/auth.ts +101 -47
  374. package/src/platforms/kakaotalk/commands/chat.test.ts +8 -11
  375. package/src/platforms/kakaotalk/commands/message.test.ts +15 -24
  376. package/src/platforms/kakaotalk/commands/shared.ts +1 -0
  377. package/src/platforms/kakaotalk/commands/whoami.test.ts +6 -10
  378. package/src/platforms/kakaotalk/credential-manager.test.ts +1 -4
  379. package/src/platforms/kakaotalk/index.test.ts +1 -0
  380. package/src/platforms/kakaotalk/index.ts +0 -2
  381. package/src/platforms/kakaotalk/listener.test.ts +7 -1
  382. package/src/platforms/kakaotalk/protocol/connection.ts +4 -1
  383. package/src/platforms/kakaotalk/protocol/crypto.ts +1 -1
  384. package/src/platforms/kakaotalk/protocol/session.ts +12 -6
  385. package/src/platforms/kakaotalk/token-extractor.ts +5 -5
  386. package/src/platforms/kakaotalk/types.ts +8 -7
  387. package/src/platforms/line/cli.ts +1 -4
  388. package/src/platforms/line/client.ts +12 -20
  389. package/src/platforms/line/commands/auth.test.ts +2 -1
  390. package/src/platforms/line/commands/chat.test.ts +2 -1
  391. package/src/platforms/line/commands/chat.ts +1 -4
  392. package/src/platforms/line/commands/friend.test.ts +2 -1
  393. package/src/platforms/line/commands/message.test.ts +2 -1
  394. package/src/platforms/line/commands/message.ts +2 -9
  395. package/src/platforms/line/commands/whoami.test.ts +2 -1
  396. package/src/platforms/line/credential-manager.test.ts +1 -2
  397. package/src/platforms/line/index.test.ts +1 -0
  398. package/src/platforms/line/listener.ts +1 -1
  399. package/src/platforms/line/types.test.ts +1 -0
  400. package/src/platforms/slack/cli.ts +3 -1
  401. package/src/platforms/slack/client-mappers.ts +297 -0
  402. package/src/platforms/slack/client.test.ts +532 -17
  403. package/src/platforms/slack/client.ts +69 -458
  404. package/src/platforms/slack/commands/channel.ts +1 -4
  405. package/src/platforms/slack/commands/emoji.test.ts +6 -4
  406. package/src/platforms/slack/commands/emoji.ts +20 -22
  407. package/src/platforms/slack/commands/message.ts +6 -1
  408. package/src/platforms/slack/commands/pin.test.ts +14 -12
  409. package/src/platforms/slack/commands/reminder.ts +7 -6
  410. package/src/platforms/slack/commands/user.ts +6 -1
  411. package/src/platforms/slack/commands/usergroup.test.ts +3 -3
  412. package/src/platforms/slack/commands/usergroup.ts +10 -7
  413. package/src/platforms/slack/commands/whoami.test.ts +1 -1
  414. package/src/platforms/slack/commands/whoami.ts +2 -0
  415. package/src/platforms/slack/index.ts +0 -2
  416. package/src/platforms/slack/listener.test.ts +1 -0
  417. package/src/platforms/slack/token-extractor.test.ts +7 -12
  418. package/src/platforms/slack/token-extractor.ts +47 -255
  419. package/src/platforms/slackbot/cli.ts +8 -1
  420. package/src/platforms/slackbot/commands/auth.test.ts +3 -1
  421. package/src/platforms/teams/client.ts +1 -1
  422. package/src/platforms/teams/commands/auth.test.ts +1 -1
  423. package/src/platforms/teams/commands/auth.ts +4 -1
  424. package/src/platforms/teams/commands/whoami.test.ts +2 -4
  425. package/src/platforms/teams/commands/whoami.ts +2 -0
  426. package/src/platforms/teams/index.ts +0 -1
  427. package/src/platforms/teams/token-extractor.ts +82 -350
  428. package/src/platforms/telegram/app-config.test.ts +1 -0
  429. package/src/platforms/telegram/chat-utils.test.ts +5 -1
  430. package/src/platforms/telegram/cli.ts +2 -4
  431. package/src/platforms/telegram/client.test.ts +16 -3
  432. package/src/platforms/telegram/client.ts +14 -4
  433. package/src/platforms/telegram/commands/auth.test.ts +1 -0
  434. package/src/platforms/telegram/commands/auth.ts +3 -4
  435. package/src/platforms/telegram/commands/chat.test.ts +2 -5
  436. package/src/platforms/telegram/commands/chat.ts +1 -0
  437. package/src/platforms/telegram/commands/message.test.ts +2 -5
  438. package/src/platforms/telegram/commands/message.ts +1 -0
  439. package/src/platforms/telegram/commands/shared.test.ts +1 -0
  440. package/src/platforms/telegram/commands/whoami.test.ts +5 -7
  441. package/src/platforms/telegram/commands/whoami.ts +1 -1
  442. package/src/platforms/telegram/credential-manager.test.ts +1 -0
  443. package/src/platforms/telegram/credential-manager.ts +11 -2
  444. package/src/platforms/telegram/my-telegram-org.ts +6 -2
  445. package/src/platforms/telegram/types.test.ts +1 -0
  446. package/src/platforms/webex/app-config.test.ts +1 -0
  447. package/src/platforms/webex/cli.ts +1 -4
  448. package/src/platforms/webex/client.test.ts +4 -12
  449. package/src/platforms/webex/client.ts +14 -52
  450. package/src/platforms/webex/commands/auth.test.ts +7 -1
  451. package/src/platforms/webex/commands/auth.ts +12 -15
  452. package/src/platforms/webex/commands/member.test.ts +1 -3
  453. package/src/platforms/webex/commands/member.ts +14 -19
  454. package/src/platforms/webex/commands/message.ts +4 -15
  455. package/src/platforms/webex/commands/snapshot.test.ts +28 -3
  456. package/src/platforms/webex/commands/snapshot.ts +3 -3
  457. package/src/platforms/webex/commands/space.test.ts +3 -3
  458. package/src/platforms/webex/commands/space.ts +2 -9
  459. package/src/platforms/webex/commands/whoami.test.ts +12 -5
  460. package/src/platforms/webex/commands/whoami.ts +2 -0
  461. package/src/platforms/webex/credential-manager.ts +11 -2
  462. package/src/platforms/webex/ensure-auth.ts +1 -3
  463. package/src/platforms/webex/index.ts +1 -7
  464. package/src/platforms/webex/markdown-to-html.test.ts +6 -18
  465. package/src/platforms/webex/markdown-to-html.ts +8 -8
  466. package/src/platforms/webex/token-extractor.ts +6 -29
  467. package/src/platforms/wechatbot/client.test.ts +6 -2
  468. package/src/platforms/wechatbot/client.ts +6 -1
  469. package/src/platforms/wechatbot/commands/auth.test.ts +3 -7
  470. package/src/platforms/wechatbot/commands/message.test.ts +1 -4
  471. package/src/platforms/wechatbot/commands/message.ts +5 -1
  472. package/src/platforms/wechatbot/commands/template.test.ts +1 -4
  473. package/src/platforms/wechatbot/commands/user.test.ts +2 -7
  474. package/src/platforms/whatsapp/cli.ts +1 -4
  475. package/src/platforms/whatsapp/commands/auth.test.ts +19 -22
  476. package/src/platforms/whatsapp/commands/chat.test.ts +21 -24
  477. package/src/platforms/whatsapp/commands/chat.ts +2 -0
  478. package/src/platforms/whatsapp/commands/message.test.ts +22 -24
  479. package/src/platforms/whatsapp/commands/message.ts +3 -5
  480. package/src/platforms/whatsapp/commands/shared.ts +2 -5
  481. package/src/platforms/whatsapp/commands/whoami.test.ts +2 -2
  482. package/src/platforms/whatsapp/credential-manager.ts +2 -6
  483. package/src/platforms/whatsapp/ensure-auth.test.ts +1 -4
  484. package/src/platforms/whatsapp/ensure-auth.ts +14 -6
  485. package/src/platforms/whatsapp/index.ts +0 -2
  486. package/src/platforms/whatsappbot/client.test.ts +13 -7
  487. package/src/platforms/whatsappbot/client.ts +18 -4
  488. package/src/platforms/whatsappbot/commands/auth.ts +4 -1
  489. package/src/platforms/whatsappbot/commands/message.test.ts +12 -2
  490. package/src/platforms/whatsappbot/commands/message.ts +16 -3
  491. package/src/platforms/whatsappbot/commands/shared.ts +3 -1
  492. package/src/platforms/whatsappbot/commands/whoami.test.ts +1 -3
  493. package/src/platforms/whatsappbot/index.ts +0 -2
  494. package/src/shared/chromium/browsers.test.ts +274 -0
  495. package/src/shared/chromium/browsers.ts +86 -0
  496. package/src/shared/chromium/cookie-reader.test.ts +274 -0
  497. package/src/shared/chromium/cookie-reader.ts +111 -0
  498. package/src/shared/chromium/decryptor.test.ts +449 -0
  499. package/src/shared/chromium/decryptor.ts +227 -0
  500. package/src/shared/chromium/index.ts +11 -0
  501. package/src/shared/chromium/types.ts +11 -0
  502. package/src/shared/utils/derived-key-cache.ts +1 -1
  503. package/src/shared/utils/linux-keyring.ts +4 -4
  504. package/src/tui/adapters/kakaotalk-adapter.ts +6 -1
  505. package/src/tui/adapters/telegram-adapter.ts +1 -1
  506. package/src/tui/adapters/webex-adapter.ts +1 -1
  507. package/src/tui/app.ts +149 -59
  508. package/src/tui/utils.test.ts +144 -145
  509. package/src/tui/utils.ts +27 -29
  510. package/src/tui/views/channel-picker.ts +1 -1
  511. package/src/tui/views/workspace-picker.ts +1 -1
@@ -1,5 +1,19 @@
1
1
  import { WebClient } from '@slack/web-api'
2
2
 
3
+ import {
4
+ mapBookmark,
5
+ mapChannel,
6
+ mapDM,
7
+ mapFile,
8
+ mapMessage,
9
+ mapPin,
10
+ mapReminder,
11
+ mapSavedItem,
12
+ mapScheduledMessage,
13
+ mapUser,
14
+ mapUserProfile,
15
+ mapUsergroup,
16
+ } from './client-mappers'
3
17
  import type {
4
18
  SlackActivityItem,
5
19
  SlackBookmark,
@@ -132,28 +146,7 @@ export class SlackClient {
132
146
 
133
147
  if (response.channels) {
134
148
  for (const ch of response.channels) {
135
- channels.push({
136
- id: ch.id!,
137
- name: ch.name!,
138
- is_private: ch.is_private || false,
139
- is_archived: ch.is_archived || false,
140
- created: ch.created || 0,
141
- creator: ch.creator || '',
142
- topic: ch.topic
143
- ? {
144
- value: ch.topic.value || '',
145
- creator: ch.topic.creator || '',
146
- last_set: ch.topic.last_set || 0,
147
- }
148
- : undefined,
149
- purpose: ch.purpose
150
- ? {
151
- value: ch.purpose.value || '',
152
- creator: ch.purpose.creator || '',
153
- last_set: ch.purpose.last_set || 0,
154
- }
155
- : undefined,
156
- })
149
+ channels.push(mapChannel(ch))
157
150
  }
158
151
  }
159
152
 
@@ -180,11 +173,7 @@ export class SlackClient {
180
173
 
181
174
  if (response.channels) {
182
175
  for (const ch of response.channels) {
183
- dms.push({
184
- id: ch.id!,
185
- user: ch.user || ch.name || '',
186
- is_mpim: ch.is_mpim || false,
187
- })
176
+ dms.push(mapDM(ch))
188
177
  }
189
178
  }
190
179
 
@@ -200,29 +189,7 @@ export class SlackClient {
200
189
  const response = await this.ensureAuth().conversations.info({ channel: id })
201
190
  this.checkResponse(response)
202
191
 
203
- const ch = response.channel!
204
- return {
205
- id: ch.id!,
206
- name: ch.name!,
207
- is_private: ch.is_private || false,
208
- is_archived: ch.is_archived || false,
209
- created: ch.created || 0,
210
- creator: ch.creator || '',
211
- topic: ch.topic
212
- ? {
213
- value: ch.topic.value || '',
214
- creator: ch.topic.creator || '',
215
- last_set: ch.topic.last_set || 0,
216
- }
217
- : undefined,
218
- purpose: ch.purpose
219
- ? {
220
- value: ch.purpose.value || '',
221
- creator: ch.purpose.creator || '',
222
- last_set: ch.purpose.last_set || 0,
223
- }
224
- : undefined,
225
- }
192
+ return mapChannel(response.channel)
226
193
  })
227
194
  }
228
195
 
@@ -257,14 +224,7 @@ export class SlackClient {
257
224
  })
258
225
  this.checkResponse(response)
259
226
 
260
- const msg = response.message!
261
- return {
262
- ts: response.ts!,
263
- text: msg.text || text,
264
- type: msg.type || 'message',
265
- user: msg.user,
266
- thread_ts: msg.thread_ts,
267
- }
227
+ return mapMessage(response.message, { ts: response.ts!, text, type: 'message' })
268
228
  })
269
229
  }
270
230
 
@@ -284,34 +244,7 @@ export class SlackClient {
284
244
  })
285
245
  this.checkResponse(response)
286
246
 
287
- return (response.messages || []).map((msg) => ({
288
- ts: msg.ts!,
289
- text: msg.text || '',
290
- type: msg.type || 'message',
291
- user: msg.user,
292
- username: msg.username,
293
- thread_ts: msg.thread_ts,
294
- reply_count: msg.reply_count,
295
- replies: (msg as any).replies,
296
- reactions: (msg as any).reactions,
297
- edited: msg.edited
298
- ? {
299
- user: msg.edited.user || '',
300
- ts: msg.edited.ts || '',
301
- }
302
- : undefined,
303
- files: (msg as any).files?.map((f: any) => ({
304
- id: f.id!,
305
- name: f.name!,
306
- title: f.title || f.name || '',
307
- mimetype: f.mimetype || 'application/octet-stream',
308
- size: f.size || 0,
309
- url_private: f.url_private || '',
310
- created: f.created || 0,
311
- user: f.user || '',
312
- channels: f.channels,
313
- })),
314
- }))
247
+ return (response.messages || []).map((msg) => mapMessage(msg))
315
248
  })
316
249
  }
317
250
 
@@ -330,34 +263,7 @@ export class SlackClient {
330
263
  return null
331
264
  }
332
265
 
333
- return {
334
- ts: msg.ts!,
335
- text: msg.text || '',
336
- type: msg.type || 'message',
337
- user: msg.user,
338
- username: msg.username,
339
- thread_ts: msg.thread_ts,
340
- reply_count: msg.reply_count,
341
- replies: (msg as any).replies,
342
- reactions: (msg as any).reactions,
343
- edited: msg.edited
344
- ? {
345
- user: msg.edited.user || '',
346
- ts: msg.edited.ts || '',
347
- }
348
- : undefined,
349
- files: (msg as any).files?.map((f: any) => ({
350
- id: f.id!,
351
- name: f.name!,
352
- title: f.title || f.name || '',
353
- mimetype: f.mimetype || 'application/octet-stream',
354
- size: f.size || 0,
355
- url_private: f.url_private || '',
356
- created: f.created || 0,
357
- user: f.user || '',
358
- channels: f.channels,
359
- })),
360
- }
266
+ return mapMessage(msg)
361
267
  })
362
268
  }
363
269
 
@@ -370,13 +276,7 @@ export class SlackClient {
370
276
  })
371
277
  this.checkResponse(response)
372
278
 
373
- const msg = response.message!
374
- return {
375
- ts: response.ts!,
376
- text: msg.text || text,
377
- type: 'message',
378
- user: msg.user,
379
- }
279
+ return mapMessage(response.message, { ts: response.ts!, text, type: 'message' })
380
280
  })
381
281
  }
382
282
 
@@ -426,23 +326,7 @@ export class SlackClient {
426
326
 
427
327
  if (response.members) {
428
328
  for (const member of response.members) {
429
- users.push({
430
- id: member.id!,
431
- name: member.name!,
432
- real_name: member.real_name || member.name || '',
433
- is_admin: member.is_admin || false,
434
- is_owner: member.is_owner || false,
435
- is_bot: member.is_bot || false,
436
- is_app_user: member.is_app_user || false,
437
- profile: member.profile
438
- ? {
439
- email: member.profile.email,
440
- phone: member.profile.phone,
441
- title: member.profile.title,
442
- status_text: member.profile.status_text,
443
- }
444
- : undefined,
445
- })
329
+ users.push(mapUser(member))
446
330
  }
447
331
  }
448
332
 
@@ -482,24 +366,7 @@ export class SlackClient {
482
366
  const response = await this.ensureAuth().users.info({ user: id })
483
367
  this.checkResponse(response)
484
368
 
485
- const member = response.user!
486
- return {
487
- id: member.id!,
488
- name: member.name!,
489
- real_name: member.real_name || member.name || '',
490
- is_admin: member.is_admin || false,
491
- is_owner: member.is_owner || false,
492
- is_bot: member.is_bot || false,
493
- is_app_user: member.is_app_user || false,
494
- profile: member.profile
495
- ? {
496
- email: member.profile.email,
497
- phone: member.profile.phone,
498
- title: member.profile.title,
499
- status_text: member.profile.status_text,
500
- }
501
- : undefined,
502
- }
369
+ return mapUser(response.user)
503
370
  })
504
371
  }
505
372
 
@@ -517,17 +384,7 @@ export class SlackClient {
517
384
  if (!f) {
518
385
  throw new SlackError('No file returned in upload response', 'file_not_found')
519
386
  }
520
- return {
521
- id: f.id!,
522
- name: f.name!,
523
- title: f.title || f.name || '',
524
- mimetype: f.mimetype || 'application/octet-stream',
525
- size: f.size || 0,
526
- url_private: f.url_private || '',
527
- created: f.created || 0,
528
- user: f.user || '',
529
- channels: f.channels,
530
- }
387
+ return mapFile(f)
531
388
  })
532
389
  }
533
390
 
@@ -538,17 +395,7 @@ export class SlackClient {
538
395
  })
539
396
  this.checkResponse(response)
540
397
 
541
- return (response.files || []).map((f) => ({
542
- id: f.id!,
543
- name: f.name!,
544
- title: f.title || f.name || '',
545
- mimetype: f.mimetype || 'application/octet-stream',
546
- size: f.size || 0,
547
- url_private: f.url_private || '',
548
- created: f.created || 0,
549
- user: f.user || '',
550
- channels: f.channels,
551
- }))
398
+ return (response.files || []).map((f) => mapFile(f))
552
399
  })
553
400
  }
554
401
 
@@ -557,18 +404,7 @@ export class SlackClient {
557
404
  const response = await this.ensureAuth().files.info({ file: fileId })
558
405
  this.checkResponse(response)
559
406
 
560
- const f = response.file!
561
- return {
562
- id: f.id!,
563
- name: f.name!,
564
- title: f.title || f.name || '',
565
- mimetype: f.mimetype || 'application/octet-stream',
566
- size: f.size || 0,
567
- url_private: f.url_private || '',
568
- created: f.created || 0,
569
- user: f.user || '',
570
- channels: f.channels,
571
- }
407
+ return mapFile(response.file)
572
408
  })
573
409
  }
574
410
 
@@ -642,33 +478,7 @@ export class SlackClient {
642
478
  })
643
479
  this.checkResponse(response)
644
480
 
645
- const messages = (response.messages || []).map((msg: any) => ({
646
- ts: msg.ts!,
647
- text: msg.text || '',
648
- type: msg.type || 'message',
649
- user: msg.user,
650
- username: msg.username,
651
- thread_ts: msg.thread_ts,
652
- reply_count: msg.reply_count,
653
- edited: msg.edited
654
- ? {
655
- user: msg.edited.user || '',
656
- ts: msg.edited.ts || '',
657
- }
658
- : undefined,
659
- reactions: msg.reactions,
660
- files: msg.files?.map((f: any) => ({
661
- id: f.id!,
662
- name: f.name!,
663
- title: f.title || f.name || '',
664
- mimetype: f.mimetype || 'application/octet-stream',
665
- size: f.size || 0,
666
- url_private: f.url_private || '',
667
- created: f.created || 0,
668
- user: f.user || '',
669
- channels: f.channels,
670
- })),
671
- }))
481
+ const messages = (response.messages || []).map((msg: unknown) => mapMessage(msg))
672
482
 
673
483
  return {
674
484
  messages,
@@ -762,30 +572,7 @@ export class SlackClient {
762
572
  })
763
573
  this.checkResponse(response)
764
574
 
765
- const items = (response.items || []).map((item: any) => ({
766
- type: item.type || 'message',
767
- message: {
768
- ts: item.message?.ts || '',
769
- text: item.message?.text || '',
770
- user: item.message?.user,
771
- username: item.message?.username,
772
- type: item.message?.type || 'message',
773
- thread_ts: item.message?.thread_ts,
774
- reply_count: item.message?.reply_count,
775
- replies: item.message?.replies,
776
- edited: item.message?.edited
777
- ? {
778
- user: item.message.edited.user || '',
779
- ts: item.message.edited.ts || '',
780
- }
781
- : undefined,
782
- },
783
- channel: {
784
- id: item.channel?.id || '',
785
- name: item.channel?.name || '',
786
- },
787
- date_created: item.date_created || 0,
788
- }))
575
+ const items = (response.items || []).map((item: unknown) => mapSavedItem(item))
789
576
 
790
577
  return {
791
578
  items,
@@ -879,20 +666,7 @@ export class SlackClient {
879
666
 
880
667
  return ((response as any).items || [])
881
668
  .filter((item: any) => item.message)
882
- .map((item: any) => ({
883
- channel,
884
- message: {
885
- ts: item.message.ts || '',
886
- text: item.message.text || '',
887
- user: item.message.user,
888
- username: item.message.username,
889
- type: item.message.type || 'message',
890
- thread_ts: item.message.thread_ts,
891
- reply_count: item.message.reply_count,
892
- },
893
- date_created: item.created || 0,
894
- created_by: item.created_by || '',
895
- }))
669
+ .map((item: unknown) => mapPin(item, channel))
896
670
  })
897
671
  }
898
672
 
@@ -912,19 +686,12 @@ export class SlackClient {
912
686
  })
913
687
  this.checkResponse(response)
914
688
 
915
- const b = (response as any).bookmark
916
- return {
917
- id: b.id || '',
918
- channel_id: b.channel_id || channel,
919
- title: b.title || title,
920
- link: b.link || link,
921
- emoji: b.emoji,
922
- icon_url: b.icon_url,
923
- type: b.type || 'link',
924
- date_created: b.date_created || 0,
925
- date_updated: b.date_updated || 0,
926
- created_by: b.created_by || '',
927
- }
689
+ return mapBookmark((response as any).bookmark, {
690
+ channel_id: channel,
691
+ title,
692
+ link,
693
+ type: options?.type || 'link',
694
+ })
928
695
  })
929
696
  }
930
697
 
@@ -941,19 +708,7 @@ export class SlackClient {
941
708
  })
942
709
  this.checkResponse(response)
943
710
 
944
- const b = (response as any).bookmark
945
- return {
946
- id: b.id || bookmarkId,
947
- channel_id: b.channel_id || channel,
948
- title: b.title || '',
949
- link: b.link || '',
950
- emoji: b.emoji,
951
- icon_url: b.icon_url,
952
- type: b.type || 'link',
953
- date_created: b.date_created || 0,
954
- date_updated: b.date_updated || 0,
955
- created_by: b.created_by || '',
956
- }
711
+ return mapBookmark((response as any).bookmark, { id: bookmarkId, channel_id: channel, type: 'link' })
957
712
  })
958
713
  }
959
714
 
@@ -972,22 +727,18 @@ export class SlackClient {
972
727
  const response = await this.ensureAuth().apiCall('bookmarks.list', { channel_id: channel })
973
728
  this.checkResponse(response)
974
729
 
975
- return ((response as any).bookmarks || []).map((b: any) => ({
976
- id: b.id || '',
977
- channel_id: b.channel_id || channel,
978
- title: b.title || '',
979
- link: b.link || '',
980
- emoji: b.emoji,
981
- icon_url: b.icon_url,
982
- type: b.type || 'link',
983
- date_created: b.date_created || 0,
984
- date_updated: b.date_updated || 0,
985
- created_by: b.created_by || '',
986
- }))
730
+ return ((response as any).bookmarks || []).map((bookmark: unknown) =>
731
+ mapBookmark(bookmark, { channel_id: channel, type: 'link' }),
732
+ )
987
733
  })
988
734
  }
989
735
 
990
- async scheduleMessage(channel: string, text: string, postAt: number, threadTs?: string): Promise<SlackScheduledMessage> {
736
+ async scheduleMessage(
737
+ channel: string,
738
+ text: string,
739
+ postAt: number,
740
+ threadTs?: string,
741
+ ): Promise<SlackScheduledMessage> {
991
742
  return this.withRetry(async () => {
992
743
  const response = await this.ensureAuth().chat.scheduleMessage({
993
744
  channel,
@@ -997,13 +748,12 @@ export class SlackClient {
997
748
  })
998
749
  this.checkResponse(response)
999
750
 
1000
- return {
1001
- id: (response as any).scheduled_message_id || '',
751
+ return mapScheduledMessage(response, {
1002
752
  channel_id: channel,
1003
753
  post_at: postAt,
1004
754
  date_created: Math.floor(Date.now() / 1000),
1005
755
  text,
1006
- }
756
+ })
1007
757
  })
1008
758
  }
1009
759
 
@@ -1019,13 +769,9 @@ export class SlackClient {
1019
769
  })
1020
770
  this.checkResponse(response)
1021
771
 
1022
- const messages = ((response as any).scheduled_messages || []).map((msg: any) => ({
1023
- id: msg.id || msg.scheduled_message_id || '',
1024
- channel_id: msg.channel_id || '',
1025
- post_at: msg.post_at || 0,
1026
- date_created: msg.date_created || 0,
1027
- text: msg.text || '',
1028
- }))
772
+ const messages = ((response as any).scheduled_messages || []).map((message: unknown) =>
773
+ mapScheduledMessage(message),
774
+ )
1029
775
  allMessages.push(...messages)
1030
776
  cursor = (response as any).response_metadata?.next_cursor
1031
777
  } while (cursor)
@@ -1049,29 +795,7 @@ export class SlackClient {
1049
795
  const response = await this.ensureAuth().conversations.create({ name, is_private: isPrivate })
1050
796
  this.checkResponse(response)
1051
797
 
1052
- const ch = response.channel!
1053
- return {
1054
- id: ch.id!,
1055
- name: ch.name!,
1056
- is_private: ch.is_private || false,
1057
- is_archived: ch.is_archived || false,
1058
- created: ch.created || 0,
1059
- creator: ch.creator || '',
1060
- topic: ch.topic
1061
- ? {
1062
- value: ch.topic.value || '',
1063
- creator: ch.topic.creator || '',
1064
- last_set: ch.topic.last_set || 0,
1065
- }
1066
- : undefined,
1067
- purpose: ch.purpose
1068
- ? {
1069
- value: ch.purpose.value || '',
1070
- creator: ch.purpose.creator || '',
1071
- last_set: ch.purpose.last_set || 0,
1072
- }
1073
- : undefined,
1074
- }
798
+ return mapChannel(response.channel, { name })
1075
799
  })
1076
800
  }
1077
801
 
@@ -1103,15 +827,7 @@ export class SlackClient {
1103
827
  const response = await this.ensureAuth().conversations.invite({ channel, users })
1104
828
  this.checkResponse(response)
1105
829
 
1106
- const ch = response.channel!
1107
- return {
1108
- id: ch.id!,
1109
- name: ch.name!,
1110
- is_private: ch.is_private || false,
1111
- is_archived: ch.is_archived || false,
1112
- created: ch.created || 0,
1113
- creator: ch.creator || '',
1114
- }
830
+ return mapChannel(response.channel)
1115
831
  })
1116
832
  }
1117
833
 
@@ -1120,15 +836,7 @@ export class SlackClient {
1120
836
  const response = await this.ensureAuth().conversations.join({ channel })
1121
837
  this.checkResponse(response)
1122
838
 
1123
- const ch = response.channel!
1124
- return {
1125
- id: ch.id!,
1126
- name: ch.name!,
1127
- is_private: ch.is_private || false,
1128
- is_archived: ch.is_archived || false,
1129
- created: ch.created || 0,
1130
- creator: ch.creator || '',
1131
- }
839
+ return mapChannel(response.channel)
1132
840
  })
1133
841
  }
1134
842
 
@@ -1144,24 +852,7 @@ export class SlackClient {
1144
852
  const response = await this.ensureAuth().users.lookupByEmail({ email })
1145
853
  this.checkResponse(response)
1146
854
 
1147
- const member = response.user!
1148
- return {
1149
- id: member.id!,
1150
- name: member.name!,
1151
- real_name: member.real_name || member.name || '',
1152
- is_admin: member.is_admin || false,
1153
- is_owner: member.is_owner || false,
1154
- is_bot: member.is_bot || false,
1155
- is_app_user: member.is_app_user || false,
1156
- profile: member.profile
1157
- ? {
1158
- email: member.profile.email,
1159
- phone: member.profile.phone,
1160
- title: member.profile.title,
1161
- status_text: member.profile.status_text,
1162
- }
1163
- : undefined,
1164
- }
855
+ return mapUser(response.user)
1165
856
  })
1166
857
  }
1167
858
 
@@ -1170,28 +861,7 @@ export class SlackClient {
1170
861
  const response = await this.ensureAuth().users.profile.get({ user: userId })
1171
862
  this.checkResponse(response)
1172
863
 
1173
- const p = (response as any).profile || {}
1174
- return {
1175
- title: p.title,
1176
- phone: p.phone,
1177
- skype: p.skype,
1178
- real_name: p.real_name,
1179
- real_name_normalized: p.real_name_normalized,
1180
- display_name: p.display_name,
1181
- display_name_normalized: p.display_name_normalized,
1182
- status_text: p.status_text,
1183
- status_emoji: p.status_emoji,
1184
- status_expiration: p.status_expiration,
1185
- email: p.email,
1186
- first_name: p.first_name,
1187
- last_name: p.last_name,
1188
- image_24: p.image_24,
1189
- image_32: p.image_32,
1190
- image_48: p.image_48,
1191
- image_72: p.image_72,
1192
- image_192: p.image_192,
1193
- image_512: p.image_512,
1194
- }
864
+ return mapUserProfile((response as any).profile)
1195
865
  })
1196
866
  }
1197
867
 
@@ -1200,28 +870,7 @@ export class SlackClient {
1200
870
  const response = await this.ensureAuth().users.profile.set({ profile: profile as any })
1201
871
  this.checkResponse(response)
1202
872
 
1203
- const p = (response as any).profile || {}
1204
- return {
1205
- title: p.title,
1206
- phone: p.phone,
1207
- skype: p.skype,
1208
- real_name: p.real_name,
1209
- real_name_normalized: p.real_name_normalized,
1210
- display_name: p.display_name,
1211
- display_name_normalized: p.display_name_normalized,
1212
- status_text: p.status_text,
1213
- status_emoji: p.status_emoji,
1214
- status_expiration: p.status_expiration,
1215
- email: p.email,
1216
- first_name: p.first_name,
1217
- last_name: p.last_name,
1218
- image_24: p.image_24,
1219
- image_32: p.image_32,
1220
- image_48: p.image_48,
1221
- image_72: p.image_72,
1222
- image_192: p.image_192,
1223
- image_512: p.image_512,
1224
- }
873
+ return mapUserProfile((response as any).profile)
1225
874
  })
1226
875
  }
1227
876
 
@@ -1246,16 +895,7 @@ export class SlackClient {
1246
895
  const response = await this.ensureAuth().reminders.add({ text, time: time as any, user: options?.user })
1247
896
  this.checkResponse(response)
1248
897
 
1249
- const r = (response as any).reminder || {}
1250
- return {
1251
- id: r.id || '',
1252
- creator: r.creator || '',
1253
- text: r.text || text,
1254
- user: r.user || '',
1255
- recurring: r.recurring || false,
1256
- time: r.time || time,
1257
- complete_ts: r.complete_ts || 0,
1258
- }
898
+ return mapReminder((response as any).reminder, { text, time })
1259
899
  })
1260
900
  }
1261
901
 
@@ -1264,15 +904,7 @@ export class SlackClient {
1264
904
  const response = await this.ensureAuth().reminders.list({})
1265
905
  this.checkResponse(response)
1266
906
 
1267
- return ((response as any).reminders || []).map((r: any) => ({
1268
- id: r.id || '',
1269
- creator: r.creator || '',
1270
- text: r.text || '',
1271
- user: r.user || '',
1272
- recurring: r.recurring || false,
1273
- time: r.time || 0,
1274
- complete_ts: r.complete_ts || 0,
1275
- }))
907
+ return ((response as any).reminders || []).map((reminder: unknown) => mapReminder(reminder))
1276
908
  })
1277
909
  }
1278
910
 
@@ -1305,32 +937,11 @@ export class SlackClient {
1305
937
  })
1306
938
  }
1307
939
 
1308
- private mapUsergroup(ug: any): SlackUsergroup {
1309
- return {
1310
- id: ug.id || '',
1311
- team_id: ug.team_id || '',
1312
- name: ug.name || '',
1313
- handle: ug.handle || '',
1314
- description: ug.description || '',
1315
- is_external: ug.is_external ?? false,
1316
- is_usergroup: ug.is_usergroup ?? true,
1317
- date_create: ug.date_create ?? 0,
1318
- date_update: ug.date_update ?? 0,
1319
- date_delete: ug.date_delete ?? 0,
1320
- auto_type: ug.auto_type ?? null,
1321
- created_by: ug.created_by || '',
1322
- updated_by: ug.updated_by || '',
1323
- deleted_by: ug.deleted_by ?? null,
1324
- prefs: {
1325
- channels: ug.prefs?.channels || [],
1326
- groups: ug.prefs?.groups || [],
1327
- },
1328
- users: ug.users || [],
1329
- user_count: ug.user_count ?? 0,
1330
- }
1331
- }
1332
-
1333
- async listUsergroups(options?: { includeDisabled?: boolean; includeUsers?: boolean; includeCount?: boolean }): Promise<SlackUsergroup[]> {
940
+ async listUsergroups(options?: {
941
+ includeDisabled?: boolean
942
+ includeUsers?: boolean
943
+ includeCount?: boolean
944
+ }): Promise<SlackUsergroup[]> {
1334
945
  return this.withRetry(async () => {
1335
946
  const response = await this.ensureAuth().apiCall('usergroups.list', {
1336
947
  include_disabled: options?.includeDisabled,
@@ -1338,7 +949,7 @@ export class SlackClient {
1338
949
  include_count: options?.includeCount,
1339
950
  })
1340
951
  this.checkResponse(response)
1341
- return ((response as any).usergroups || []).map((ug: any) => this.mapUsergroup(ug))
952
+ return ((response as any).usergroups || []).map((usergroup: unknown) => mapUsergroup(usergroup))
1342
953
  })
1343
954
  }
1344
955
 
@@ -1354,7 +965,7 @@ export class SlackClient {
1354
965
  channels: options?.channels?.join(','),
1355
966
  })
1356
967
  this.checkResponse(response)
1357
- return this.mapUsergroup((response as any).usergroup)
968
+ return mapUsergroup((response as any).usergroup)
1358
969
  })
1359
970
  }
1360
971
 
@@ -1371,7 +982,7 @@ export class SlackClient {
1371
982
  channels: options.channels?.join(','),
1372
983
  })
1373
984
  this.checkResponse(response)
1374
- return this.mapUsergroup((response as any).usergroup)
985
+ return mapUsergroup((response as any).usergroup)
1375
986
  })
1376
987
  }
1377
988
 
@@ -1381,7 +992,7 @@ export class SlackClient {
1381
992
  usergroup: usergroupId,
1382
993
  })
1383
994
  this.checkResponse(response)
1384
- return this.mapUsergroup((response as any).usergroup)
995
+ return mapUsergroup((response as any).usergroup)
1385
996
  })
1386
997
  }
1387
998
 
@@ -1391,7 +1002,7 @@ export class SlackClient {
1391
1002
  usergroup: usergroupId,
1392
1003
  })
1393
1004
  this.checkResponse(response)
1394
- return this.mapUsergroup((response as any).usergroup)
1005
+ return mapUsergroup((response as any).usergroup)
1395
1006
  })
1396
1007
  }
1397
1008
 
@@ -1413,7 +1024,7 @@ export class SlackClient {
1413
1024
  users: users.join(','),
1414
1025
  })
1415
1026
  this.checkResponse(response)
1416
- return this.mapUsergroup((response as any).usergroup)
1027
+ return mapUsergroup((response as any).usergroup)
1417
1028
  })
1418
1029
  }
1419
1030
  }