agent-messenger 1.0.0 → 1.1.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 (330) hide show
  1. package/.claude/commands/release.md +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.github/workflows/ci.yml +1 -1
  4. package/.github/workflows/e2e.yml.disabled +69 -0
  5. package/README.md +16 -14
  6. package/biome.json +33 -1
  7. package/bun.lock +63 -0
  8. package/dist/package.json +8 -4
  9. package/dist/src/cli.d.ts.map +1 -1
  10. package/dist/src/cli.js +4 -1
  11. package/dist/src/cli.js.map +1 -1
  12. package/dist/src/platforms/discord/cli.js +1 -1
  13. package/dist/src/platforms/discord/client.d.ts.map +1 -1
  14. package/dist/src/platforms/discord/client.js +3 -3
  15. package/dist/src/platforms/discord/client.js.map +1 -1
  16. package/dist/src/platforms/discord/commands/user.d.ts.map +1 -1
  17. package/dist/src/platforms/discord/commands/user.js +10 -1
  18. package/dist/src/platforms/discord/commands/user.js.map +1 -1
  19. package/dist/src/platforms/discord/credential-manager.d.ts.map +1 -1
  20. package/dist/src/platforms/discord/credential-manager.js +18 -12
  21. package/dist/src/platforms/discord/credential-manager.js.map +1 -1
  22. package/dist/src/platforms/slack/cli.js +1 -1
  23. package/dist/src/platforms/slack/credential-manager.d.ts.map +1 -1
  24. package/dist/src/platforms/slack/credential-manager.js +20 -6
  25. package/dist/src/platforms/slack/credential-manager.js.map +1 -1
  26. package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
  27. package/dist/src/platforms/slack/token-extractor.js +34 -9
  28. package/dist/src/platforms/slack/token-extractor.js.map +1 -1
  29. package/dist/src/platforms/teams/cli.d.ts.map +1 -0
  30. package/dist/{cli.js → src/platforms/teams/cli.js} +11 -10
  31. package/dist/src/platforms/teams/cli.js.map +1 -0
  32. package/dist/src/platforms/teams/client.d.ts +32 -0
  33. package/dist/src/platforms/teams/client.d.ts.map +1 -0
  34. package/dist/src/platforms/teams/client.js +202 -0
  35. package/dist/src/platforms/teams/client.js.map +1 -0
  36. package/dist/src/platforms/teams/commands/auth.d.ts +14 -0
  37. package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -0
  38. package/dist/src/platforms/teams/commands/auth.js +176 -0
  39. package/dist/src/platforms/teams/commands/auth.js.map +1 -0
  40. package/dist/src/platforms/teams/commands/channel.d.ts +13 -0
  41. package/dist/src/platforms/teams/commands/channel.d.ts.map +1 -0
  42. package/dist/src/platforms/teams/commands/channel.js +97 -0
  43. package/dist/src/platforms/teams/commands/channel.js.map +1 -0
  44. package/dist/src/platforms/teams/commands/file.d.ts +12 -0
  45. package/dist/src/platforms/teams/commands/file.d.ts.map +1 -0
  46. package/dist/src/platforms/teams/commands/file.js +104 -0
  47. package/dist/src/platforms/teams/commands/file.js.map +1 -0
  48. package/dist/{commands → src/platforms/teams/commands}/index.d.ts +5 -2
  49. package/dist/src/platforms/teams/commands/index.d.ts.map +1 -0
  50. package/dist/{commands → src/platforms/teams/commands}/index.js +5 -2
  51. package/dist/src/platforms/teams/commands/index.js.map +1 -0
  52. package/dist/src/platforms/teams/commands/message.d.ts +17 -0
  53. package/dist/src/platforms/teams/commands/message.d.ts.map +1 -0
  54. package/dist/src/platforms/teams/commands/message.js +133 -0
  55. package/dist/src/platforms/teams/commands/message.js.map +1 -0
  56. package/dist/src/platforms/teams/commands/reaction.d.ts +9 -0
  57. package/dist/src/platforms/teams/commands/reaction.d.ts.map +1 -0
  58. package/dist/src/platforms/teams/commands/reaction.js +68 -0
  59. package/dist/src/platforms/teams/commands/reaction.js.map +1 -0
  60. package/dist/src/platforms/teams/commands/snapshot.d.ts +10 -0
  61. package/dist/src/platforms/teams/commands/snapshot.d.ts.map +1 -0
  62. package/dist/src/platforms/teams/commands/snapshot.js +85 -0
  63. package/dist/src/platforms/teams/commands/snapshot.js.map +1 -0
  64. package/dist/src/platforms/teams/commands/team.d.ts +18 -0
  65. package/dist/src/platforms/teams/commands/team.d.ts.map +1 -0
  66. package/dist/src/platforms/teams/commands/team.js +130 -0
  67. package/dist/src/platforms/teams/commands/team.js.map +1 -0
  68. package/dist/src/platforms/teams/commands/user.d.ts.map +1 -0
  69. package/dist/src/platforms/teams/commands/user.js +88 -0
  70. package/dist/src/platforms/teams/commands/user.js.map +1 -0
  71. package/dist/src/platforms/teams/credential-manager.d.ts +18 -0
  72. package/dist/src/platforms/teams/credential-manager.d.ts.map +1 -0
  73. package/dist/src/platforms/teams/credential-manager.js +81 -0
  74. package/dist/src/platforms/teams/credential-manager.js.map +1 -0
  75. package/dist/src/platforms/teams/index.d.ts +4 -0
  76. package/dist/src/platforms/teams/index.d.ts.map +1 -0
  77. package/dist/src/platforms/teams/index.js +6 -0
  78. package/dist/src/platforms/teams/index.js.map +1 -0
  79. package/dist/src/platforms/teams/token-extractor.d.ts +36 -0
  80. package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -0
  81. package/dist/src/platforms/teams/token-extractor.js +335 -0
  82. package/dist/src/platforms/teams/token-extractor.js.map +1 -0
  83. package/dist/src/platforms/teams/types.d.ts +209 -0
  84. package/dist/src/platforms/teams/types.d.ts.map +1 -0
  85. package/dist/src/platforms/teams/types.js +65 -0
  86. package/dist/src/platforms/teams/types.js.map +1 -0
  87. package/docs/teams.md +321 -0
  88. package/e2e/README.md +256 -0
  89. package/e2e/config.ts +45 -0
  90. package/e2e/discord.e2e.test.ts +252 -0
  91. package/e2e/helpers.ts +107 -0
  92. package/e2e/slack.e2e.test.ts +309 -0
  93. package/package.json +8 -4
  94. package/scripts/postbuild.ts +15 -0
  95. package/skills/agent-teams/SKILL.md +292 -0
  96. package/skills/agent-teams/references/authentication.md +375 -0
  97. package/skills/agent-teams/references/common-patterns.md +596 -0
  98. package/skills/agent-teams/templates/monitor-channel.sh +239 -0
  99. package/skills/agent-teams/templates/post-message.sh +224 -0
  100. package/skills/agent-teams/templates/team-summary.sh +210 -0
  101. package/src/cli.ts +4 -0
  102. package/src/platforms/discord/client.ts +3 -3
  103. package/src/platforms/discord/commands/auth.test.ts +48 -32
  104. package/src/platforms/discord/commands/channel.test.ts +54 -42
  105. package/src/platforms/discord/commands/file.test.ts +40 -53
  106. package/src/platforms/discord/commands/guild.test.ts +47 -27
  107. package/src/platforms/discord/commands/message.test.ts +54 -51
  108. package/src/platforms/discord/commands/reaction.test.ts +54 -42
  109. package/src/platforms/discord/commands/user.ts +12 -1
  110. package/src/platforms/discord/credential-manager.test.ts +137 -136
  111. package/src/platforms/discord/credential-manager.ts +20 -13
  112. package/src/platforms/discord/token-extractor.test.ts +133 -383
  113. package/{tests → src/platforms/slack}/cli.test.ts +3 -3
  114. package/{tests/slack-client.test.ts → src/platforms/slack/client.test.ts} +1 -1
  115. package/{tests → src/platforms/slack}/commands/auth.test.ts +25 -13
  116. package/{tests → src/platforms/slack}/commands/channel.test.ts +2 -2
  117. package/{tests → src/platforms/slack}/commands/file.test.ts +2 -2
  118. package/{tests → src/platforms/slack}/commands/message.test.ts +2 -2
  119. package/{tests → src/platforms/slack}/commands/reaction.test.ts +1 -1
  120. package/{tests → src/platforms/slack}/commands/snapshot.test.ts +117 -105
  121. package/{tests → src/platforms/slack}/commands/user.test.ts +3 -3
  122. package/{tests → src/platforms/slack}/commands/workspace.test.ts +44 -95
  123. package/{tests → src/platforms/slack}/credential-manager.test.ts +2 -2
  124. package/src/platforms/slack/credential-manager.ts +22 -7
  125. package/src/platforms/slack/token-extractor-node-test.ts +40 -0
  126. package/src/platforms/slack/token-extractor-node.test.ts +10 -0
  127. package/src/platforms/slack/token-extractor.ts +36 -10
  128. package/{tests → src/platforms/slack}/types.test.ts +1 -1
  129. package/src/platforms/teams/cli.ts +36 -0
  130. package/src/platforms/teams/client.test.ts +500 -0
  131. package/src/platforms/teams/client.ts +365 -0
  132. package/src/platforms/teams/commands/auth.test.ts +99 -0
  133. package/src/platforms/teams/commands/auth.ts +232 -0
  134. package/src/platforms/teams/commands/channel.test.ts +147 -0
  135. package/src/platforms/teams/commands/channel.ts +129 -0
  136. package/src/platforms/teams/commands/file.test.ts +88 -0
  137. package/src/platforms/teams/commands/file.ts +144 -0
  138. package/src/platforms/teams/commands/index.ts +12 -0
  139. package/src/platforms/teams/commands/message.test.ts +110 -0
  140. package/src/platforms/teams/commands/message.ts +188 -0
  141. package/src/platforms/teams/commands/reaction.test.ts +87 -0
  142. package/src/platforms/teams/commands/reaction.ts +104 -0
  143. package/src/platforms/teams/commands/snapshot.test.ts +35 -0
  144. package/src/platforms/teams/commands/snapshot.ts +115 -0
  145. package/src/platforms/teams/commands/team.test.ts +157 -0
  146. package/src/platforms/teams/commands/team.ts +164 -0
  147. package/src/platforms/teams/commands/user.test.ts +83 -0
  148. package/src/platforms/teams/commands/user.ts +112 -0
  149. package/src/platforms/teams/credential-manager.test.ts +178 -0
  150. package/src/platforms/teams/credential-manager.ts +92 -0
  151. package/src/platforms/teams/index.ts +5 -0
  152. package/src/platforms/teams/token-extractor.test.ts +429 -0
  153. package/src/platforms/teams/token-extractor.ts +462 -0
  154. package/src/platforms/teams/types.test.ts +226 -0
  155. package/src/platforms/teams/types.ts +140 -0
  156. package/tsconfig.json +1 -1
  157. package/dist/cli.d.ts.map +0 -1
  158. package/dist/cli.js.map +0 -1
  159. package/dist/commands/auth.d.ts +0 -3
  160. package/dist/commands/auth.d.ts.map +0 -1
  161. package/dist/commands/auth.js +0 -140
  162. package/dist/commands/auth.js.map +0 -1
  163. package/dist/commands/channel.d.ts +0 -3
  164. package/dist/commands/channel.d.ts.map +0 -1
  165. package/dist/commands/channel.js +0 -118
  166. package/dist/commands/channel.js.map +0 -1
  167. package/dist/commands/file.d.ts +0 -3
  168. package/dist/commands/file.d.ts.map +0 -1
  169. package/dist/commands/file.js +0 -113
  170. package/dist/commands/file.js.map +0 -1
  171. package/dist/commands/index.d.ts.map +0 -1
  172. package/dist/commands/index.js.map +0 -1
  173. package/dist/commands/message.d.ts +0 -3
  174. package/dist/commands/message.d.ts.map +0 -1
  175. package/dist/commands/message.js +0 -214
  176. package/dist/commands/message.js.map +0 -1
  177. package/dist/commands/reaction.d.ts +0 -3
  178. package/dist/commands/reaction.d.ts.map +0 -1
  179. package/dist/commands/reaction.js +0 -100
  180. package/dist/commands/reaction.js.map +0 -1
  181. package/dist/commands/snapshot.d.ts +0 -3
  182. package/dist/commands/snapshot.d.ts.map +0 -1
  183. package/dist/commands/snapshot.js +0 -88
  184. package/dist/commands/snapshot.js.map +0 -1
  185. package/dist/commands/user.d.ts.map +0 -1
  186. package/dist/commands/user.js +0 -96
  187. package/dist/commands/user.js.map +0 -1
  188. package/dist/commands/workspace.d.ts +0 -3
  189. package/dist/commands/workspace.d.ts.map +0 -1
  190. package/dist/commands/workspace.js +0 -89
  191. package/dist/commands/workspace.js.map +0 -1
  192. package/dist/lib/credential-manager.d.ts +0 -13
  193. package/dist/lib/credential-manager.d.ts.map +0 -1
  194. package/dist/lib/credential-manager.js +0 -58
  195. package/dist/lib/credential-manager.js.map +0 -1
  196. package/dist/lib/index.d.ts +0 -3
  197. package/dist/lib/index.d.ts.map +0 -1
  198. package/dist/lib/index.js +0 -3
  199. package/dist/lib/index.js.map +0 -1
  200. package/dist/lib/ref-manager.d.ts +0 -26
  201. package/dist/lib/ref-manager.d.ts.map +0 -1
  202. package/dist/lib/ref-manager.js +0 -92
  203. package/dist/lib/ref-manager.js.map +0 -1
  204. package/dist/lib/slack-client.d.ts +0 -37
  205. package/dist/lib/slack-client.d.ts.map +0 -1
  206. package/dist/lib/slack-client.js +0 -379
  207. package/dist/lib/slack-client.js.map +0 -1
  208. package/dist/lib/token-extractor.d.ts +0 -28
  209. package/dist/lib/token-extractor.d.ts.map +0 -1
  210. package/dist/lib/token-extractor.js +0 -401
  211. package/dist/lib/token-extractor.js.map +0 -1
  212. package/dist/src/platforms/discord/client.test.d.ts +0 -2
  213. package/dist/src/platforms/discord/client.test.d.ts.map +0 -1
  214. package/dist/src/platforms/discord/client.test.js +0 -367
  215. package/dist/src/platforms/discord/client.test.js.map +0 -1
  216. package/dist/src/platforms/discord/commands/auth.test.d.ts +0 -2
  217. package/dist/src/platforms/discord/commands/auth.test.d.ts.map +0 -1
  218. package/dist/src/platforms/discord/commands/auth.test.js +0 -65
  219. package/dist/src/platforms/discord/commands/auth.test.js.map +0 -1
  220. package/dist/src/platforms/discord/commands/channel.test.d.ts +0 -2
  221. package/dist/src/platforms/discord/commands/channel.test.d.ts.map +0 -1
  222. package/dist/src/platforms/discord/commands/channel.test.js +0 -136
  223. package/dist/src/platforms/discord/commands/channel.test.js.map +0 -1
  224. package/dist/src/platforms/discord/commands/file.test.d.ts +0 -2
  225. package/dist/src/platforms/discord/commands/file.test.d.ts.map +0 -1
  226. package/dist/src/platforms/discord/commands/file.test.js +0 -83
  227. package/dist/src/platforms/discord/commands/file.test.js.map +0 -1
  228. package/dist/src/platforms/discord/commands/guild.test.d.ts +0 -2
  229. package/dist/src/platforms/discord/commands/guild.test.d.ts.map +0 -1
  230. package/dist/src/platforms/discord/commands/guild.test.js +0 -100
  231. package/dist/src/platforms/discord/commands/guild.test.js.map +0 -1
  232. package/dist/src/platforms/discord/commands/message.test.d.ts +0 -2
  233. package/dist/src/platforms/discord/commands/message.test.d.ts.map +0 -1
  234. package/dist/src/platforms/discord/commands/message.test.js +0 -91
  235. package/dist/src/platforms/discord/commands/message.test.js.map +0 -1
  236. package/dist/src/platforms/discord/commands/reaction.test.d.ts +0 -2
  237. package/dist/src/platforms/discord/commands/reaction.test.d.ts.map +0 -1
  238. package/dist/src/platforms/discord/commands/reaction.test.js +0 -115
  239. package/dist/src/platforms/discord/commands/reaction.test.js.map +0 -1
  240. package/dist/src/platforms/discord/commands/snapshot.test.d.ts +0 -2
  241. package/dist/src/platforms/discord/commands/snapshot.test.d.ts.map +0 -1
  242. package/dist/src/platforms/discord/commands/snapshot.test.js +0 -25
  243. package/dist/src/platforms/discord/commands/snapshot.test.js.map +0 -1
  244. package/dist/src/platforms/discord/commands/user.test.d.ts +0 -2
  245. package/dist/src/platforms/discord/commands/user.test.d.ts.map +0 -1
  246. package/dist/src/platforms/discord/commands/user.test.js +0 -103
  247. package/dist/src/platforms/discord/commands/user.test.js.map +0 -1
  248. package/dist/src/platforms/discord/credential-manager.test.d.ts +0 -2
  249. package/dist/src/platforms/discord/credential-manager.test.d.ts.map +0 -1
  250. package/dist/src/platforms/discord/credential-manager.test.js +0 -136
  251. package/dist/src/platforms/discord/credential-manager.test.js.map +0 -1
  252. package/dist/src/platforms/discord/token-extractor.test.d.ts +0 -2
  253. package/dist/src/platforms/discord/token-extractor.test.d.ts.map +0 -1
  254. package/dist/src/platforms/discord/token-extractor.test.js +0 -789
  255. package/dist/src/platforms/discord/token-extractor.test.js.map +0 -1
  256. package/dist/src/platforms/discord/types.test.d.ts +0 -2
  257. package/dist/src/platforms/discord/types.test.d.ts.map +0 -1
  258. package/dist/src/platforms/discord/types.test.js +0 -211
  259. package/dist/src/platforms/discord/types.test.js.map +0 -1
  260. package/dist/src/shared/utils/concurrency.test.d.ts +0 -2
  261. package/dist/src/shared/utils/concurrency.test.d.ts.map +0 -1
  262. package/dist/src/shared/utils/concurrency.test.js +0 -39
  263. package/dist/src/shared/utils/concurrency.test.js.map +0 -1
  264. package/dist/tests/cli.test.d.ts +0 -2
  265. package/dist/tests/cli.test.d.ts.map +0 -1
  266. package/dist/tests/cli.test.js +0 -83
  267. package/dist/tests/cli.test.js.map +0 -1
  268. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/CURRENT +0 -1
  269. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/LOCK +0 -0
  270. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/LOG +0 -3
  271. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/LOG.old +0 -1
  272. package/dist/tests/commands/.test-slack-data/Local Storage/leveldb/MANIFEST-000004 +0 -0
  273. package/dist/tests/commands/auth.test.d.ts +0 -2
  274. package/dist/tests/commands/auth.test.d.ts.map +0 -1
  275. package/dist/tests/commands/auth.test.js +0 -304
  276. package/dist/tests/commands/auth.test.js.map +0 -1
  277. package/dist/tests/commands/channel.test.d.ts +0 -2
  278. package/dist/tests/commands/channel.test.d.ts.map +0 -1
  279. package/dist/tests/commands/channel.test.js +0 -166
  280. package/dist/tests/commands/channel.test.js.map +0 -1
  281. package/dist/tests/commands/file.test.d.ts +0 -2
  282. package/dist/tests/commands/file.test.d.ts.map +0 -1
  283. package/dist/tests/commands/file.test.js +0 -175
  284. package/dist/tests/commands/file.test.js.map +0 -1
  285. package/dist/tests/commands/message.test.d.ts +0 -2
  286. package/dist/tests/commands/message.test.d.ts.map +0 -1
  287. package/dist/tests/commands/message.test.js +0 -293
  288. package/dist/tests/commands/message.test.js.map +0 -1
  289. package/dist/tests/commands/reaction.test.d.ts +0 -2
  290. package/dist/tests/commands/reaction.test.d.ts.map +0 -1
  291. package/dist/tests/commands/reaction.test.js +0 -84
  292. package/dist/tests/commands/reaction.test.js.map +0 -1
  293. package/dist/tests/commands/snapshot.test.d.ts +0 -2
  294. package/dist/tests/commands/snapshot.test.d.ts.map +0 -1
  295. package/dist/tests/commands/snapshot.test.js +0 -280
  296. package/dist/tests/commands/snapshot.test.js.map +0 -1
  297. package/dist/tests/commands/user.test.d.ts +0 -2
  298. package/dist/tests/commands/user.test.d.ts.map +0 -1
  299. package/dist/tests/commands/user.test.js +0 -117
  300. package/dist/tests/commands/user.test.js.map +0 -1
  301. package/dist/tests/commands/workspace.test.d.ts +0 -2
  302. package/dist/tests/commands/workspace.test.d.ts.map +0 -1
  303. package/dist/tests/commands/workspace.test.js +0 -453
  304. package/dist/tests/commands/workspace.test.js.map +0 -1
  305. package/dist/tests/credential-manager.test.d.ts +0 -2
  306. package/dist/tests/credential-manager.test.d.ts.map +0 -1
  307. package/dist/tests/credential-manager.test.js +0 -199
  308. package/dist/tests/credential-manager.test.js.map +0 -1
  309. package/dist/tests/slack-client.test.d.ts +0 -2
  310. package/dist/tests/slack-client.test.d.ts.map +0 -1
  311. package/dist/tests/slack-client.test.js +0 -741
  312. package/dist/tests/slack-client.test.js.map +0 -1
  313. package/dist/tests/types.test.d.ts +0 -2
  314. package/dist/tests/types.test.d.ts.map +0 -1
  315. package/dist/tests/types.test.js +0 -215
  316. package/dist/tests/types.test.js.map +0 -1
  317. package/dist/types/index.d.ts +0 -369
  318. package/dist/types/index.d.ts.map +0 -1
  319. package/dist/types/index.js +0 -92
  320. package/dist/types/index.js.map +0 -1
  321. package/dist/utils/error-handler.d.ts +0 -2
  322. package/dist/utils/error-handler.d.ts.map +0 -1
  323. package/dist/utils/error-handler.js +0 -5
  324. package/dist/utils/error-handler.js.map +0 -1
  325. package/dist/utils/output.d.ts +0 -2
  326. package/dist/utils/output.d.ts.map +0 -1
  327. package/dist/utils/output.js +0 -4
  328. package/dist/utils/output.js.map +0 -1
  329. /package/dist/{cli.d.ts → src/platforms/teams/cli.d.ts} +0 -0
  330. /package/dist/{commands → src/platforms/teams/commands}/user.d.ts +0 -0
@@ -0,0 +1,36 @@
1
+ export interface ExtractedTeamsToken {
2
+ token: string;
3
+ }
4
+ interface KeychainVariant {
5
+ service: string;
6
+ account: string;
7
+ }
8
+ export declare class TeamsTokenExtractor {
9
+ private platform;
10
+ constructor(platform?: NodeJS.Platform);
11
+ getTeamsCookiesPaths(): string[];
12
+ getLocalStatePath(): string;
13
+ getKeychainVariants(): KeychainVariant[];
14
+ isValidSkypeToken(token: string): boolean;
15
+ isEncryptedValue(value: Buffer): boolean;
16
+ extract(): Promise<ExtractedTeamsToken | null>;
17
+ private extractFromCookiesDB;
18
+ private copyAndExtract;
19
+ private copyDatabaseToTemp;
20
+ private cleanupTempFile;
21
+ private extractFromSQLite;
22
+ private decryptCookie;
23
+ private decryptWindowsCookie;
24
+ private decryptDPAPI;
25
+ private decryptMacCookie;
26
+ private decryptLinuxCookie;
27
+ private getKeychainPassword;
28
+ private execSecurityCommand;
29
+ private decryptAESCBC;
30
+ private decryptAESGCM;
31
+ isTeamsRunning(): Promise<boolean>;
32
+ private getProcessName;
33
+ private checkProcessRunning;
34
+ }
35
+ export {};
36
+ //# sourceMappingURL=token-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-extractor.d.ts","sourceRoot":"","sources":["../../../../src/platforms/teams/token-extractor.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAiBD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAiB;gBAErB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ;IAItC,oBAAoB,IAAI,MAAM,EAAE;IAiGhC,iBAAiB,IAAI,MAAM;IAkC3B,mBAAmB,IAAI,eAAe,EAAE;IAgBxC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAMzC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAMlC,OAAO,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAUtC,oBAAoB;YAcpB,cAAc;IAe5B,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,eAAe;YAUT,iBAAiB;IAwC/B,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,aAAa;IAmBf,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAKxC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,mBAAmB;CAiB5B"}
@@ -0,0 +1,335 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { createDecipheriv, pbkdf2Sync } from 'node:crypto';
3
+ import { copyFileSync, existsSync, readFileSync, unlinkSync } from 'node:fs';
4
+ import { homedir, tmpdir } from 'node:os';
5
+ import { join } from 'node:path';
6
+ const TEAMS_PROCESS_NAMES = {
7
+ darwin: 'Microsoft Teams',
8
+ win32: 'Teams.exe',
9
+ linux: 'teams',
10
+ };
11
+ const SKYPETOKEN_COOKIE_NAME = 'skypetoken_asm';
12
+ const TEAMS_HOST_PATTERNS = [
13
+ '.asyncgw.teams.microsoft.com',
14
+ '.asm.skype.com',
15
+ 'teams.microsoft.com',
16
+ 'teams.live.com',
17
+ '.microsoft.com',
18
+ ];
19
+ export class TeamsTokenExtractor {
20
+ platform;
21
+ constructor(platform) {
22
+ this.platform = platform ?? process.platform;
23
+ }
24
+ getTeamsCookiesPaths() {
25
+ switch (this.platform) {
26
+ case 'darwin':
27
+ return [
28
+ join(homedir(), 'Library', 'Containers', 'com.microsoft.teams2', 'Data', 'Library', 'Application Support', 'Microsoft', 'MSTeams', 'EBWebView', 'WV2Profile_tfw', 'Cookies'),
29
+ join(homedir(), 'Library', 'Containers', 'com.microsoft.teams2', 'Data', 'Library', 'Application Support', 'Microsoft', 'MSTeams', 'EBWebView', 'WV2Profile_tfl', 'Cookies'),
30
+ join(homedir(), 'Library', 'Containers', 'com.microsoft.teams2', 'Data', 'Library', 'Application Support', 'Microsoft', 'MSTeams', 'EBWebView', 'Default', 'Cookies'),
31
+ join(homedir(), 'Library', 'Application Support', 'Microsoft', 'Teams', 'Cookies'),
32
+ ];
33
+ case 'linux':
34
+ return [join(homedir(), '.config', 'Microsoft', 'Microsoft Teams', 'Cookies')];
35
+ case 'win32': {
36
+ const localAppData = process.env.LOCALAPPDATA || join(homedir(), 'AppData', 'Local');
37
+ const appdata = process.env.APPDATA || join(homedir(), 'AppData', 'Roaming');
38
+ return [
39
+ // New Teams (MSIX/Store) - WebView2 profile paths
40
+ join(localAppData, 'Packages', 'MSTeams_8wekyb3d8bbwe', 'LocalCache', 'Microsoft', 'MSTeams', 'EBWebView', 'WV2Profile_tfw', 'Cookies'),
41
+ join(localAppData, 'Packages', 'MSTeams_8wekyb3d8bbwe', 'LocalCache', 'Microsoft', 'MSTeams', 'EBWebView', 'WV2Profile_tfl', 'Cookies'),
42
+ join(localAppData, 'Packages', 'MSTeams_8wekyb3d8bbwe', 'LocalCache', 'Microsoft', 'MSTeams', 'EBWebView', 'Default', 'Cookies'),
43
+ // Classic Teams fallback
44
+ join(appdata, 'Microsoft', 'Teams', 'Cookies'),
45
+ ];
46
+ }
47
+ default:
48
+ return [];
49
+ }
50
+ }
51
+ getLocalStatePath() {
52
+ switch (this.platform) {
53
+ case 'darwin':
54
+ return join(homedir(), 'Library', 'Application Support', 'Microsoft', 'Teams', 'Local State');
55
+ case 'linux':
56
+ return join(homedir(), '.config', 'Microsoft', 'Microsoft Teams', 'Local State');
57
+ case 'win32': {
58
+ const localAppData = process.env.LOCALAPPDATA || join(homedir(), 'AppData', 'Local');
59
+ const appdata = process.env.APPDATA || join(homedir(), 'AppData', 'Roaming');
60
+ const newTeamsPath = join(localAppData, 'Packages', 'MSTeams_8wekyb3d8bbwe', 'LocalCache', 'Microsoft', 'MSTeams', 'EBWebView', 'Local State');
61
+ if (existsSync(newTeamsPath))
62
+ return newTeamsPath;
63
+ return join(appdata, 'Microsoft', 'Teams', 'Local State');
64
+ }
65
+ default:
66
+ return '';
67
+ }
68
+ }
69
+ getKeychainVariants() {
70
+ return [
71
+ // New Teams (com.microsoft.teams2) keychain entry - try first
72
+ { service: 'Microsoft Teams Safe Storage', account: 'Microsoft Teams' },
73
+ // Work/school variant
74
+ {
75
+ service: 'Microsoft Teams (work or school) Safe Storage',
76
+ account: 'Microsoft Teams (work or school)',
77
+ },
78
+ // Edge WebView2 fallback
79
+ { service: 'Microsoft Edge Safe Storage', account: 'Microsoft Edge' },
80
+ // Classic Teams fallback
81
+ { service: 'Teams Safe Storage', account: 'Teams' },
82
+ ];
83
+ }
84
+ isValidSkypeToken(token) {
85
+ if (!token || token.length === 0)
86
+ return false;
87
+ // Skype tokens are typically JWT format or long base64 strings (50+ chars)
88
+ return token.length >= 50;
89
+ }
90
+ isEncryptedValue(value) {
91
+ if (!value || value.length < 4)
92
+ return false;
93
+ const prefix = value.subarray(0, 3).toString('utf8');
94
+ return prefix === 'v10' || prefix === 'v11';
95
+ }
96
+ async extract() {
97
+ // Extract from Cookies database (works for both New Teams and Classic Teams)
98
+ const cookieToken = await this.extractFromCookiesDB();
99
+ if (cookieToken && this.isValidSkypeToken(cookieToken)) {
100
+ return { token: cookieToken };
101
+ }
102
+ return null;
103
+ }
104
+ async extractFromCookiesDB() {
105
+ const dbPaths = this.getTeamsCookiesPaths();
106
+ for (const dbPath of dbPaths) {
107
+ if (!dbPath || !existsSync(dbPath))
108
+ continue;
109
+ // Try copy-first strategy to handle file locking
110
+ const token = await this.copyAndExtract(dbPath);
111
+ if (token)
112
+ return token;
113
+ }
114
+ return null;
115
+ }
116
+ async copyAndExtract(dbPath) {
117
+ const tempPath = join(tmpdir(), `teams-cookies-${Date.now()}`);
118
+ try {
119
+ this.copyDatabaseToTemp(dbPath, tempPath);
120
+ const token = await this.extractFromSQLite(tempPath);
121
+ this.cleanupTempFile(tempPath);
122
+ return token;
123
+ }
124
+ catch {
125
+ // File locked or copy failed
126
+ this.cleanupTempFile(tempPath);
127
+ return null;
128
+ }
129
+ }
130
+ copyDatabaseToTemp(sourcePath, destPath) {
131
+ copyFileSync(sourcePath, destPath);
132
+ return destPath;
133
+ }
134
+ cleanupTempFile(tempPath) {
135
+ try {
136
+ if (existsSync(tempPath)) {
137
+ unlinkSync(tempPath);
138
+ }
139
+ }
140
+ catch {
141
+ // Ignore cleanup errors
142
+ }
143
+ }
144
+ async extractFromSQLite(dbPath) {
145
+ try {
146
+ for (const hostPattern of TEAMS_HOST_PATTERNS) {
147
+ const sql = `
148
+ SELECT encrypted_value
149
+ FROM cookies
150
+ WHERE name = '${SKYPETOKEN_COOKIE_NAME}'
151
+ AND host_key LIKE '%${hostPattern}%'
152
+ LIMIT 1
153
+ `;
154
+ let row;
155
+ if (typeof globalThis.Bun !== 'undefined') {
156
+ const { Database } = require('bun:sqlite');
157
+ const db = new Database(dbPath, { readonly: true });
158
+ row = db.query(sql).get();
159
+ db.close();
160
+ }
161
+ else {
162
+ const Database = require('better-sqlite3');
163
+ const db = new Database(dbPath, { readonly: true });
164
+ row = db.prepare(sql).get();
165
+ db.close();
166
+ }
167
+ if (row?.encrypted_value) {
168
+ const decrypted = this.decryptCookie(Buffer.from(row.encrypted_value));
169
+ if (decrypted && this.isValidSkypeToken(decrypted)) {
170
+ return decrypted;
171
+ }
172
+ }
173
+ }
174
+ return null;
175
+ }
176
+ catch {
177
+ return null;
178
+ }
179
+ }
180
+ decryptCookie(encryptedValue) {
181
+ if (!this.isEncryptedValue(encryptedValue)) {
182
+ // Not encrypted, return as-is
183
+ return encryptedValue.toString('utf8');
184
+ }
185
+ if (this.platform === 'win32') {
186
+ return this.decryptWindowsCookie(encryptedValue);
187
+ }
188
+ else if (this.platform === 'darwin') {
189
+ return this.decryptMacCookie(encryptedValue);
190
+ }
191
+ else if (this.platform === 'linux') {
192
+ return this.decryptLinuxCookie(encryptedValue);
193
+ }
194
+ return null;
195
+ }
196
+ decryptWindowsCookie(encryptedData) {
197
+ try {
198
+ const localStatePath = this.getLocalStatePath();
199
+ if (!existsSync(localStatePath))
200
+ return null;
201
+ const localState = JSON.parse(readFileSync(localStatePath, 'utf8'));
202
+ const encryptedKey = Buffer.from(localState.os_crypt.encrypted_key, 'base64');
203
+ // Remove DPAPI prefix (5 bytes)
204
+ const dpapiBlobKey = encryptedKey.subarray(5);
205
+ const masterKey = this.decryptDPAPI(dpapiBlobKey);
206
+ if (!masterKey)
207
+ return null;
208
+ return this.decryptAESGCM(encryptedData, masterKey);
209
+ }
210
+ catch {
211
+ return null;
212
+ }
213
+ }
214
+ decryptDPAPI(encryptedBlob) {
215
+ try {
216
+ const b64 = encryptedBlob.toString('base64');
217
+ const psScript = `
218
+ Add-Type -AssemblyName System.Security
219
+ $bytes = [Convert]::FromBase64String('${b64}')
220
+ $decrypted = [Security.Cryptography.ProtectedData]::Unprotect($bytes, $null, 'CurrentUser')
221
+ [Convert]::ToBase64String($decrypted)
222
+ `.replace(/\n/g, ' ');
223
+ const result = execSync(`powershell -Command "${psScript}"`, { encoding: 'utf8' });
224
+ return Buffer.from(result.trim(), 'base64');
225
+ }
226
+ catch {
227
+ return null;
228
+ }
229
+ }
230
+ decryptMacCookie(encryptedData) {
231
+ const password = this.getKeychainPassword();
232
+ if (!password)
233
+ return null;
234
+ // Derive key using PBKDF2 (Chromium uses 1003 iterations, 16 byte key for AES-128-CBC)
235
+ const key = pbkdf2Sync(password, 'saltysalt', 1003, 16, 'sha1');
236
+ return this.decryptAESCBC(encryptedData, key);
237
+ }
238
+ decryptLinuxCookie(encryptedData) {
239
+ // Linux uses a hardcoded password 'peanuts' for Chromium-based apps
240
+ const key = pbkdf2Sync('peanuts', 'saltysalt', 1, 16, 'sha1');
241
+ return this.decryptAESCBC(encryptedData, key);
242
+ }
243
+ getKeychainPassword() {
244
+ const variants = this.getKeychainVariants();
245
+ for (const variant of variants) {
246
+ const password = this.execSecurityCommand(variant.service, variant.account);
247
+ if (password)
248
+ return password;
249
+ }
250
+ return null;
251
+ }
252
+ execSecurityCommand(service, account) {
253
+ try {
254
+ // Escape double quotes in service/account to prevent command injection
255
+ const safeService = service.replace(/"/g, '\\"');
256
+ const safeAccount = account.replace(/"/g, '\\"');
257
+ const result = execSync(`security find-generic-password -s "${safeService}" -a "${safeAccount}" -w 2>/dev/null`, { encoding: 'utf8' });
258
+ return result.trim();
259
+ }
260
+ catch {
261
+ return null;
262
+ }
263
+ }
264
+ decryptAESCBC(encryptedData, key) {
265
+ try {
266
+ const ciphertext = encryptedData.subarray(3);
267
+ const iv = Buffer.alloc(16, 0x20);
268
+ const decipher = createDecipheriv('aes-128-cbc', key, iv);
269
+ decipher.setAutoPadding(true);
270
+ const decrypted = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
271
+ const decryptedStr = decrypted.toString('utf8');
272
+ // Chromium v24+ prepends a 32-byte integrity hash before the actual value
273
+ // Look for JWT token start (eyJ) or other token patterns
274
+ const jwtStart = decryptedStr.indexOf('eyJ');
275
+ if (jwtStart > 0 && jwtStart <= 32) {
276
+ return decryptedStr.substring(jwtStart);
277
+ }
278
+ // If no JWT prefix found but decryption succeeded, check if first 32 bytes are garbage
279
+ if (decrypted.length > 32) {
280
+ const possibleToken = decryptedStr.substring(32);
281
+ if (possibleToken.length > 50 && /^[A-Za-z0-9._-]+$/.test(possibleToken.substring(0, 50))) {
282
+ return possibleToken;
283
+ }
284
+ }
285
+ return decryptedStr;
286
+ }
287
+ catch {
288
+ return null;
289
+ }
290
+ }
291
+ decryptAESGCM(encryptedData, key) {
292
+ try {
293
+ // Format: v10 (3 bytes) + IV (12 bytes) + ciphertext + auth tag (16 bytes)
294
+ if (encryptedData.length < 3 + 12 + 16)
295
+ return null;
296
+ const iv = encryptedData.subarray(3, 15);
297
+ const authTag = encryptedData.subarray(-16);
298
+ const ciphertext = encryptedData.subarray(15, -16);
299
+ const decipher = createDecipheriv('aes-256-gcm', key, iv);
300
+ decipher.setAuthTag(authTag);
301
+ const decrypted = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
302
+ return decrypted.toString('utf8');
303
+ }
304
+ catch {
305
+ return null;
306
+ }
307
+ }
308
+ async isTeamsRunning() {
309
+ const processName = this.getProcessName();
310
+ return this.checkProcessRunning(processName);
311
+ }
312
+ getProcessName() {
313
+ return TEAMS_PROCESS_NAMES[this.platform] || TEAMS_PROCESS_NAMES.linux;
314
+ }
315
+ checkProcessRunning(processName) {
316
+ try {
317
+ if (this.platform === 'win32') {
318
+ const result = execSync(`tasklist /FI "IMAGENAME eq ${processName}" 2>nul`, {
319
+ encoding: 'utf8',
320
+ });
321
+ return result.toLowerCase().includes(processName.toLowerCase());
322
+ }
323
+ else {
324
+ const result = execSync(`pgrep -f "${processName}" 2>/dev/null || true`, {
325
+ encoding: 'utf8',
326
+ });
327
+ return result.trim().length > 0;
328
+ }
329
+ }
330
+ catch {
331
+ return false;
332
+ }
333
+ }
334
+ }
335
+ //# sourceMappingURL=token-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-extractor.js","sourceRoot":"","sources":["../../../../src/platforms/teams/token-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Core type definitions for Microsoft Teams platform
3
+ */
4
+ import { z } from 'zod';
5
+ export interface TeamsTeam {
6
+ id: string;
7
+ name: string;
8
+ description?: string;
9
+ }
10
+ export interface TeamsChannel {
11
+ id: string;
12
+ team_id: string;
13
+ name: string;
14
+ type: string;
15
+ }
16
+ export interface TeamsMessage {
17
+ id: string;
18
+ channel_id: string;
19
+ author: {
20
+ id: string;
21
+ displayName: string;
22
+ };
23
+ content: string;
24
+ timestamp: string;
25
+ }
26
+ export interface TeamsUser {
27
+ id: string;
28
+ displayName: string;
29
+ email?: string;
30
+ userPrincipalName?: string;
31
+ }
32
+ export interface TeamsReaction {
33
+ emoji: string;
34
+ count: number;
35
+ }
36
+ export interface TeamsFile {
37
+ id: string;
38
+ name: string;
39
+ size: number;
40
+ url: string;
41
+ contentType?: string;
42
+ }
43
+ export interface TeamsCredentials {
44
+ token: string;
45
+ cookie?: string;
46
+ }
47
+ export interface TeamsConfig {
48
+ current_team: string | null;
49
+ token: string;
50
+ token_expires_at?: string;
51
+ teams: Record<string, {
52
+ team_id: string;
53
+ team_name: string;
54
+ }>;
55
+ }
56
+ export declare const TeamsTeamSchema: z.ZodObject<{
57
+ id: z.ZodString;
58
+ name: z.ZodString;
59
+ description: z.ZodOptional<z.ZodString>;
60
+ }, "strip", z.ZodTypeAny, {
61
+ id: string;
62
+ name: string;
63
+ description?: string | undefined;
64
+ }, {
65
+ id: string;
66
+ name: string;
67
+ description?: string | undefined;
68
+ }>;
69
+ export declare const TeamsChannelSchema: z.ZodObject<{
70
+ id: z.ZodString;
71
+ team_id: z.ZodString;
72
+ name: z.ZodString;
73
+ type: z.ZodString;
74
+ }, "strip", z.ZodTypeAny, {
75
+ id: string;
76
+ name: string;
77
+ type: string;
78
+ team_id: string;
79
+ }, {
80
+ id: string;
81
+ name: string;
82
+ type: string;
83
+ team_id: string;
84
+ }>;
85
+ export declare const TeamsMessageSchema: z.ZodObject<{
86
+ id: z.ZodString;
87
+ channel_id: z.ZodString;
88
+ author: z.ZodObject<{
89
+ id: z.ZodString;
90
+ displayName: z.ZodString;
91
+ }, "strip", z.ZodTypeAny, {
92
+ id: string;
93
+ displayName: string;
94
+ }, {
95
+ id: string;
96
+ displayName: string;
97
+ }>;
98
+ content: z.ZodString;
99
+ timestamp: z.ZodString;
100
+ }, "strip", z.ZodTypeAny, {
101
+ id: string;
102
+ channel_id: string;
103
+ author: {
104
+ id: string;
105
+ displayName: string;
106
+ };
107
+ content: string;
108
+ timestamp: string;
109
+ }, {
110
+ id: string;
111
+ channel_id: string;
112
+ author: {
113
+ id: string;
114
+ displayName: string;
115
+ };
116
+ content: string;
117
+ timestamp: string;
118
+ }>;
119
+ export declare const TeamsUserSchema: z.ZodObject<{
120
+ id: z.ZodString;
121
+ displayName: z.ZodString;
122
+ email: z.ZodOptional<z.ZodString>;
123
+ userPrincipalName: z.ZodOptional<z.ZodString>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ id: string;
126
+ displayName: string;
127
+ email?: string | undefined;
128
+ userPrincipalName?: string | undefined;
129
+ }, {
130
+ id: string;
131
+ displayName: string;
132
+ email?: string | undefined;
133
+ userPrincipalName?: string | undefined;
134
+ }>;
135
+ export declare const TeamsReactionSchema: z.ZodObject<{
136
+ emoji: z.ZodString;
137
+ count: z.ZodNumber;
138
+ }, "strip", z.ZodTypeAny, {
139
+ emoji: string;
140
+ count: number;
141
+ }, {
142
+ emoji: string;
143
+ count: number;
144
+ }>;
145
+ export declare const TeamsFileSchema: z.ZodObject<{
146
+ id: z.ZodString;
147
+ name: z.ZodString;
148
+ size: z.ZodNumber;
149
+ url: z.ZodString;
150
+ contentType: z.ZodOptional<z.ZodString>;
151
+ }, "strip", z.ZodTypeAny, {
152
+ id: string;
153
+ name: string;
154
+ size: number;
155
+ url: string;
156
+ contentType?: string | undefined;
157
+ }, {
158
+ id: string;
159
+ name: string;
160
+ size: number;
161
+ url: string;
162
+ contentType?: string | undefined;
163
+ }>;
164
+ export declare const TeamsCredentialsSchema: z.ZodObject<{
165
+ token: z.ZodString;
166
+ cookie: z.ZodOptional<z.ZodString>;
167
+ }, "strip", z.ZodTypeAny, {
168
+ token: string;
169
+ cookie?: string | undefined;
170
+ }, {
171
+ token: string;
172
+ cookie?: string | undefined;
173
+ }>;
174
+ export declare const TeamsConfigSchema: z.ZodObject<{
175
+ current_team: z.ZodNullable<z.ZodString>;
176
+ token: z.ZodString;
177
+ token_expires_at: z.ZodOptional<z.ZodString>;
178
+ teams: z.ZodRecord<z.ZodString, z.ZodObject<{
179
+ team_id: z.ZodString;
180
+ team_name: z.ZodString;
181
+ }, "strip", z.ZodTypeAny, {
182
+ team_id: string;
183
+ team_name: string;
184
+ }, {
185
+ team_id: string;
186
+ team_name: string;
187
+ }>>;
188
+ }, "strip", z.ZodTypeAny, {
189
+ teams: Record<string, {
190
+ team_id: string;
191
+ team_name: string;
192
+ }>;
193
+ token: string;
194
+ current_team: string | null;
195
+ token_expires_at?: string | undefined;
196
+ }, {
197
+ teams: Record<string, {
198
+ team_id: string;
199
+ team_name: string;
200
+ }>;
201
+ token: string;
202
+ current_team: string | null;
203
+ token_expires_at?: string | undefined;
204
+ }>;
205
+ export declare class TeamsError extends Error {
206
+ code: string;
207
+ constructor(message: string, code: string);
208
+ }
209
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/platforms/teams/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;KAClB,CACF,CAAA;CACF;AAGD,eAAO,MAAM,eAAe;;;;;;;;;;;;EAI1B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAM1B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5B,CAAA;AAEF,qBAAa,UAAW,SAAQ,KAAK;IACnC,IAAI,EAAE,MAAM,CAAA;gBAEA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Core type definitions for Microsoft Teams platform
3
+ */
4
+ import { z } from 'zod';
5
+ // Zod validation schemas
6
+ export const TeamsTeamSchema = z.object({
7
+ id: z.string(),
8
+ name: z.string(),
9
+ description: z.string().optional(),
10
+ });
11
+ export const TeamsChannelSchema = z.object({
12
+ id: z.string(),
13
+ team_id: z.string(),
14
+ name: z.string(),
15
+ type: z.string(),
16
+ });
17
+ export const TeamsMessageSchema = z.object({
18
+ id: z.string(),
19
+ channel_id: z.string(),
20
+ author: z.object({
21
+ id: z.string(),
22
+ displayName: z.string(),
23
+ }),
24
+ content: z.string(),
25
+ timestamp: z.string(),
26
+ });
27
+ export const TeamsUserSchema = z.object({
28
+ id: z.string(),
29
+ displayName: z.string(),
30
+ email: z.string().optional(),
31
+ userPrincipalName: z.string().optional(),
32
+ });
33
+ export const TeamsReactionSchema = z.object({
34
+ emoji: z.string(),
35
+ count: z.number(),
36
+ });
37
+ export const TeamsFileSchema = z.object({
38
+ id: z.string(),
39
+ name: z.string(),
40
+ size: z.number(),
41
+ url: z.string(),
42
+ contentType: z.string().optional(),
43
+ });
44
+ export const TeamsCredentialsSchema = z.object({
45
+ token: z.string(),
46
+ cookie: z.string().optional(),
47
+ });
48
+ export const TeamsConfigSchema = z.object({
49
+ current_team: z.string().nullable(),
50
+ token: z.string(),
51
+ token_expires_at: z.string().optional(),
52
+ teams: z.record(z.string(), z.object({
53
+ team_id: z.string(),
54
+ team_name: z.string(),
55
+ })),
56
+ });
57
+ export class TeamsError extends Error {
58
+ code;
59
+ constructor(message, code) {
60
+ super(message);
61
+ this.name = 'TeamsError';
62
+ this.code = code;
63
+ }
64
+ }
65
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/platforms/teams/types.ts"],"names":[],"mappings":"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"}