teams-api 0.19.3 → 0.19.4

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.
package/README.md CHANGED
@@ -180,6 +180,9 @@ Manual token usage, debug-session auth, and programmatic Node.js usage are cover
180
180
  | **CLI & MCP server** | Full support | Full support |
181
181
  | **Programmatic API** | Full support | Full support |
182
182
 
183
+ > [!NOTE]
184
+ > **Windows Defender false positive:** Older versions of this package used inline PowerShell to call the Windows DPAPI — a pattern that Windows Defender flags as ransomware-like behavior. This has been replaced with native Windows Credential Manager storage via [keytar](https://github.com/atom/node-keytar). If you hit issues on an older version, upgrade and re-run `teams-api auth --login`. See [SECURITY.md](./SECURITY.md) for details.
185
+
183
186
  ## Authentication
184
187
 
185
188
  Most users do not need to manage tokens manually.
@@ -7,7 +7,7 @@
7
7
  * | Platform | Mechanism |
8
8
  * |----------|--------------------------------------------------------|
9
9
  * | macOS | System Keychain via `security` CLI |
10
- * | Windows | DPAPI encryption file in %APPDATA%/teams-api/ |
10
+ * | Windows | Windows Credential Manager via keytar (native wincred) |
11
11
  * | Linux | `secret-tool` (libsecret) if available, else file with |
12
12
  * | | 0o600 perms at ~/.config/teams-api/ |
13
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAcH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AA6PD,wBAAgB,qBAAqB,IAAI,eAAe,CASvD"}
1
+ {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAcH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAqOD,wBAAgB,qBAAqB,IAAI,eAAe,CASvD"}
@@ -8,7 +8,7 @@
8
8
  * | Platform | Mechanism |
9
9
  * |----------|--------------------------------------------------------|
10
10
  * | macOS | System Keychain via `security` CLI |
11
- * | Windows | DPAPI encryption file in %APPDATA%/teams-api/ |
11
+ * | Windows | Windows Credential Manager via keytar (native wincred) |
12
12
  * | Linux | `secret-tool` (libsecret) if available, else file with |
13
13
  * | | 0o600 perms at ~/.config/teams-api/ |
14
14
  */
@@ -20,7 +20,7 @@ const node_os_1 = require("node:os");
20
20
  const node_path_1 = require("node:path");
21
21
  const node_crypto_1 = require("node:crypto");
22
22
  // ── macOS: System Keychain ────────────────────────────────────────────
23
- const KEYCHAIN_SERVICE = "teams-api";
23
+ const CREDENTIAL_SERVICE = "teams-api";
24
24
  class KeychainStore {
25
25
  save(account, data) {
26
26
  (0, node_child_process_1.execFileSync)("security", [
@@ -28,7 +28,7 @@ class KeychainStore {
28
28
  "-a",
29
29
  account,
30
30
  "-s",
31
- KEYCHAIN_SERVICE,
31
+ CREDENTIAL_SERVICE,
32
32
  "-w",
33
33
  data,
34
34
  "-U",
@@ -36,7 +36,7 @@ class KeychainStore {
36
36
  }
37
37
  load(account) {
38
38
  try {
39
- return (0, node_child_process_1.execFileSync)("security", ["find-generic-password", "-a", account, "-s", KEYCHAIN_SERVICE, "-w"], { encoding: "utf-8" }).trim();
39
+ return (0, node_child_process_1.execFileSync)("security", ["find-generic-password", "-a", account, "-s", CREDENTIAL_SERVICE, "-w"], { encoding: "utf-8" }).trim();
40
40
  }
41
41
  catch {
42
42
  return null;
@@ -49,7 +49,7 @@ class KeychainStore {
49
49
  "-a",
50
50
  account,
51
51
  "-s",
52
- KEYCHAIN_SERVICE,
52
+ CREDENTIAL_SERVICE,
53
53
  ]);
54
54
  }
55
55
  catch {
@@ -57,70 +57,50 @@ class KeychainStore {
57
57
  }
58
58
  }
59
59
  }
60
- // ── Windows: DPAPI encryption file ─────────────────────────────────
61
- function getWindowsStorePath() {
62
- const appData = process.env.APPDATA ??
63
- (0, node_path_1.join)(process.env.USERPROFILE ?? (0, node_os_1.homedir)(), "AppData", "Roaming");
64
- return (0, node_path_1.join)(appData, "teams-api");
60
+ // ── Windows: Windows Credential Manager via keytar ───────────────────
61
+ //
62
+ // The previous implementation spawned PowerShell with an inline script that
63
+ // loaded System.Security.Cryptography.ProtectedData to call DPAPI.
64
+ // That pattern (PowerShell + Add-Type + Protect/Unprotect on binary data) is
65
+ // a textbook ransomware behavioral signature and is reliably flagged by
66
+ // Windows Defender. keytar calls the native wincred API directly from C++,
67
+ // with no PowerShell or inline scripting involved.
68
+ function accountKey(account) {
69
+ return (0, node_crypto_1.createHash)("sha256").update(account).digest("hex");
65
70
  }
66
71
  function accountToFileName(account) {
67
72
  return (0, node_crypto_1.createHash)("sha256").update(account).digest("hex") + ".dat";
68
73
  }
69
74
  class WinCredStore {
70
- getFilePath(account) {
71
- const dir = getWindowsStorePath();
72
- return (0, node_path_1.join)(dir, accountToFileName(account));
73
- }
74
- ensureDir() {
75
- const dir = getWindowsStorePath();
76
- if (!(0, node_fs_1.existsSync)(dir)) {
77
- (0, node_fs_1.mkdirSync)(dir, { recursive: true });
78
- }
79
- }
80
75
  save(account, data) {
81
- this.ensureDir();
82
- const base64Input = Buffer.from(data, "utf-8").toString("base64");
83
- // Use DPAPI to encrypt data tied to the current Windows user account
84
- const encrypted = (0, node_child_process_1.execFileSync)("powershell", [
85
- "-NoProfile",
86
- "-Command",
87
- `Add-Type -AssemblyName System.Security; ` +
88
- `$bytes = [System.Convert]::FromBase64String('${base64Input}'); ` +
89
- `$encrypted = [System.Security.Cryptography.ProtectedData]::Protect($bytes, $null, [System.Security.Cryptography.DataProtectionScope]::CurrentUser); ` +
90
- `[System.Convert]::ToBase64String($encrypted)`,
91
- ], { encoding: "utf-8" }).trim();
92
- (0, node_fs_1.writeFileSync)(this.getFilePath(account), encrypted, { encoding: "utf-8" });
76
+ // keytar is async; run it in a child Node process so the sync interface
77
+ // is preserved without requiring top-level async.
78
+ (0, node_child_process_1.execFileSync)(process.execPath, [
79
+ "-e",
80
+ `const k = require("keytar"); k.setPassword(${JSON.stringify(CREDENTIAL_SERVICE)}, ${JSON.stringify(accountKey(account))}, ${JSON.stringify(data)}).catch(e => { process.stderr.write(e.message); process.exit(1); });`,
81
+ ], { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
93
82
  }
94
83
  load(account) {
95
- const filePath = this.getFilePath(account);
96
- if (!(0, node_fs_1.existsSync)(filePath)) {
97
- return null;
98
- }
99
84
  try {
100
- const encrypted = (0, node_fs_1.readFileSync)(filePath, { encoding: "utf-8" }).trim();
101
- const decrypted = (0, node_child_process_1.execFileSync)("powershell", [
102
- "-NoProfile",
103
- "-Command",
104
- `Add-Type -AssemblyName System.Security; ` +
105
- `$encrypted = [System.Convert]::FromBase64String('${encrypted}'); ` +
106
- `$bytes = [System.Security.Cryptography.ProtectedData]::Unprotect($encrypted, $null, [System.Security.Cryptography.DataProtectionScope]::CurrentUser); ` +
107
- `[System.Text.Encoding]::UTF8.GetString($bytes)`,
108
- ], { encoding: "utf-8" }).trim();
109
- return decrypted;
85
+ const result = (0, node_child_process_1.execFileSync)(process.execPath, [
86
+ "-e",
87
+ `const k = require("keytar"); k.getPassword(${JSON.stringify(CREDENTIAL_SERVICE)}, ${JSON.stringify(accountKey(account))}).then(v => { if (v !== null) process.stdout.write(v); }).catch(e => { process.stderr.write(e.message); process.exit(1); });`,
88
+ ], { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
89
+ return result === "" ? null : result;
110
90
  }
111
91
  catch {
112
- // Encrypted data may be corrupted or from a different user
113
- this.clear(account);
114
92
  return null;
115
93
  }
116
94
  }
117
95
  clear(account) {
118
- const filePath = this.getFilePath(account);
119
96
  try {
120
- (0, node_fs_1.unlinkSync)(filePath);
97
+ (0, node_child_process_1.execFileSync)(process.execPath, [
98
+ "-e",
99
+ `const k = require("keytar"); k.deletePassword(${JSON.stringify(CREDENTIAL_SERVICE)}, ${JSON.stringify(accountKey(account))}).catch(e => { process.stderr.write(e.message); process.exit(1); });`,
100
+ ], { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
121
101
  }
122
102
  catch {
123
- // File may not exist, that's fine
103
+ // Entry may not exist
124
104
  }
125
105
  }
126
106
  }
@@ -161,7 +141,7 @@ class LinuxStore {
161
141
  "--label",
162
142
  "teams-api",
163
143
  "service",
164
- KEYCHAIN_SERVICE,
144
+ CREDENTIAL_SERVICE,
165
145
  "account",
166
146
  account,
167
147
  ], { input: data, encoding: "utf-8" });
@@ -181,7 +161,7 @@ class LinuxStore {
181
161
  load(account) {
182
162
  if (this.useSecretTool) {
183
163
  try {
184
- return (0, node_child_process_1.execFileSync)("secret-tool", ["lookup", "service", KEYCHAIN_SERVICE, "account", account], { encoding: "utf-8" }).trim();
164
+ return (0, node_child_process_1.execFileSync)("secret-tool", ["lookup", "service", CREDENTIAL_SERVICE, "account", account], { encoding: "utf-8" }).trim();
185
165
  }
186
166
  catch {
187
167
  // Secret not found or secret-tool failed
@@ -205,7 +185,7 @@ class LinuxStore {
205
185
  (0, node_child_process_1.execFileSync)("secret-tool", [
206
186
  "clear",
207
187
  "service",
208
- KEYCHAIN_SERVICE,
188
+ CREDENTIAL_SERVICE,
209
189
  "account",
210
190
  account,
211
191
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "teams-api",
3
- "version": "0.19.3",
3
+ "version": "0.19.4",
4
4
  "description": "AI-native Microsoft Teams integration — read conversations, send messages, manage members via the Teams Chat Service REST API",
5
5
  "type": "commonjs",
6
6
  "repository": {
@@ -51,6 +51,7 @@
51
51
  "dependencies": {
52
52
  "@modelcontextprotocol/sdk": "^1.27.1",
53
53
  "commander": "^14.0.3",
54
+ "keytar": "^7.9.0",
54
55
  "markdown-it": "^14.1.1",
55
56
  "playwright": "^1.58.2",
56
57
  "puppeteer-core": "^24.39.1",