teams-api 0.8.0 → 0.9.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.
- package/dist/actions/definitions.d.ts.map +1 -1
- package/dist/actions/definitions.js +2 -0
- package/dist/actions/definitions.js.map +1 -1
- package/dist/actions/file-actions.d.ts +8 -0
- package/dist/actions/file-actions.d.ts.map +1 -0
- package/dist/actions/file-actions.js +124 -0
- package/dist/actions/file-actions.js.map +1 -0
- package/dist/actions/formatters.d.ts +1 -1
- package/dist/actions/formatters.d.ts.map +1 -1
- package/dist/actions/message-actions.d.ts.map +1 -1
- package/dist/actions/message-actions.js +143 -5
- package/dist/actions/message-actions.js.map +1 -1
- package/dist/api/attachments.d.ts +106 -0
- package/dist/api/attachments.d.ts.map +1 -0
- package/dist/api/attachments.js +341 -0
- package/dist/api/attachments.js.map +1 -0
- package/dist/api/chat-service.d.ts +1 -1
- package/dist/api/chat-service.d.ts.map +1 -1
- package/dist/api/chat-service.js +8 -1
- package/dist/api/chat-service.js.map +1 -1
- package/dist/auth/auto-login.d.ts.map +1 -1
- package/dist/auth/auto-login.js +4 -1
- package/dist/auth/auto-login.js.map +1 -1
- package/dist/auth/interactive.d.ts.map +1 -1
- package/dist/auth/interactive.js +3 -1
- package/dist/auth/interactive.js.map +1 -1
- package/dist/auth/token-capture.d.ts +3 -0
- package/dist/auth/token-capture.d.ts.map +1 -1
- package/dist/auth/token-capture.js +67 -0
- package/dist/auth/token-capture.js.map +1 -1
- package/dist/cli.js +16 -3
- package/dist/cli.js.map +1 -1
- package/dist/mcp-server.js +9 -0
- package/dist/mcp-server.js.map +1 -1
- package/dist/teams-client.d.ts +78 -4
- package/dist/teams-client.d.ts.map +1 -1
- package/dist/teams-client.js +153 -8
- package/dist/teams-client.js.map +1 -1
- package/dist/token-store.d.ts.map +1 -1
- package/dist/token-store.js +6 -0
- package/dist/token-store.js.map +1 -1
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -113,11 +113,78 @@ async function captureTokensFromPage(page, log, interceptTimeout) {
|
|
|
113
113
|
if (substrateToken) {
|
|
114
114
|
log("Substrate token also captured for people/chat search");
|
|
115
115
|
}
|
|
116
|
+
// Read the AMS (IC3) token from the browser's MSAL cache in localStorage.
|
|
117
|
+
// This token has audience https://ic3.teams.office.com and is used for image uploads
|
|
118
|
+
// to the Async Media Service. It's acquired by MSAL during login but may not appear
|
|
119
|
+
// in network requests during a page reload (AMS requests only happen with images).
|
|
120
|
+
let amsToken;
|
|
121
|
+
let sharePointToken;
|
|
122
|
+
let sharePointHost;
|
|
123
|
+
try {
|
|
124
|
+
const msalTokens = await page.evaluate(() => {
|
|
125
|
+
let foundAmsToken = null;
|
|
126
|
+
let foundSharePointToken = null;
|
|
127
|
+
let foundSharePointHost = null;
|
|
128
|
+
for (let i = 0; i < localStorage.length; i++) {
|
|
129
|
+
const key = localStorage.key(i);
|
|
130
|
+
if (key && key.includes("accesstoken")) {
|
|
131
|
+
try {
|
|
132
|
+
const value = JSON.parse(localStorage.getItem(key) ?? "");
|
|
133
|
+
if (value.target &&
|
|
134
|
+
value.target.includes("ic3.teams.office.com") &&
|
|
135
|
+
value.secret) {
|
|
136
|
+
foundAmsToken = value.secret;
|
|
137
|
+
}
|
|
138
|
+
if (value.target &&
|
|
139
|
+
value.target.includes("sharepoint.com") &&
|
|
140
|
+
value.secret) {
|
|
141
|
+
foundSharePointToken = value.secret;
|
|
142
|
+
// Extract the SharePoint host from the MSAL target field.
|
|
143
|
+
// The target looks like "https://contoso-my.sharepoint.com/.default"
|
|
144
|
+
// or "contoso-my.sharepoint.com/AllSites.Write AllSites.Read".
|
|
145
|
+
// We also check the environment/realm fields from the MSAL cache key.
|
|
146
|
+
const targetString = value.target;
|
|
147
|
+
const hostMatch = targetString.match(/([a-z0-9-]+\.sharepoint\.com)/i);
|
|
148
|
+
if (hostMatch) {
|
|
149
|
+
foundSharePointHost = hostMatch[1];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// Skip malformed entries
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
amsToken: foundAmsToken,
|
|
160
|
+
sharePointToken: foundSharePointToken,
|
|
161
|
+
sharePointHost: foundSharePointHost,
|
|
162
|
+
};
|
|
163
|
+
});
|
|
164
|
+
amsToken = msalTokens?.amsToken ?? undefined;
|
|
165
|
+
sharePointToken = msalTokens?.sharePointToken ?? undefined;
|
|
166
|
+
sharePointHost = msalTokens?.sharePointHost ?? undefined;
|
|
167
|
+
if (amsToken) {
|
|
168
|
+
log("AMS token captured from MSAL cache for image upload");
|
|
169
|
+
}
|
|
170
|
+
if (sharePointToken) {
|
|
171
|
+
log("SharePoint token captured from MSAL cache for file download");
|
|
172
|
+
if (sharePointHost) {
|
|
173
|
+
log(`SharePoint host: ${sharePointHost}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
// page.evaluate may fail if the page context is unavailable
|
|
179
|
+
}
|
|
116
180
|
return {
|
|
117
181
|
skypeToken,
|
|
118
182
|
region: region ?? undefined,
|
|
119
183
|
bearerToken: bearerToken ?? undefined,
|
|
120
184
|
substrateToken: substrateToken ?? undefined,
|
|
185
|
+
amsToken: amsToken ?? undefined,
|
|
186
|
+
sharePointToken: sharePointToken ?? undefined,
|
|
187
|
+
sharePointHost: sharePointHost ?? undefined,
|
|
121
188
|
};
|
|
122
189
|
}
|
|
123
190
|
//# sourceMappingURL=token-capture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-capture.js","sourceRoot":"","sources":["../../src/auth/token-capture.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAmBH,
|
|
1
|
+
{"version":3,"file":"token-capture.js","sourceRoot":"","sources":["../../src/auth/token-capture.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -41,7 +41,11 @@ async function createClient(flags) {
|
|
|
41
41
|
console.error("Error: --region is required when using --token");
|
|
42
42
|
process.exit(1);
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
const client = teams_client_js_1.TeamsClient.fromToken(flags.token, flags.region, flags.bearerToken, flags.substrateToken);
|
|
45
|
+
if (flags.email) {
|
|
46
|
+
client.setEmail(flags.email);
|
|
47
|
+
}
|
|
48
|
+
return client;
|
|
45
49
|
}
|
|
46
50
|
if (flags.auto) {
|
|
47
51
|
if (!flags.email) {
|
|
@@ -62,7 +66,11 @@ async function createClient(flags) {
|
|
|
62
66
|
email: flags.email,
|
|
63
67
|
verbose: true,
|
|
64
68
|
};
|
|
65
|
-
|
|
69
|
+
const client = await teams_client_js_1.TeamsClient.fromInteractiveLogin(interactiveLoginOptions);
|
|
70
|
+
if (flags.email) {
|
|
71
|
+
client.setEmail(flags.email);
|
|
72
|
+
}
|
|
73
|
+
return client;
|
|
66
74
|
}
|
|
67
75
|
const manualOptions = {
|
|
68
76
|
debugPort: Number(flags.debugPort),
|
|
@@ -87,6 +95,8 @@ function coerceParameter(value, type) {
|
|
|
87
95
|
}
|
|
88
96
|
case "boolean":
|
|
89
97
|
return value === true || value === "true";
|
|
98
|
+
case "string[]":
|
|
99
|
+
return Array.isArray(value) ? value : [value];
|
|
90
100
|
default:
|
|
91
101
|
return value;
|
|
92
102
|
}
|
|
@@ -97,7 +107,10 @@ for (const action of definitions_js_1.actions) {
|
|
|
97
107
|
addAuthOptions(command);
|
|
98
108
|
for (const parameter of action.parameters) {
|
|
99
109
|
const flag = camelToKebab(parameter.name);
|
|
100
|
-
if (parameter.type === "
|
|
110
|
+
if (parameter.type === "string[]") {
|
|
111
|
+
command.option(`--${flag} <value...>`, parameter.description);
|
|
112
|
+
}
|
|
113
|
+
else if (parameter.type === "boolean") {
|
|
101
114
|
if (parameter.default === true) {
|
|
102
115
|
// Default-true boolean: define --no-* to allow opting out.
|
|
103
116
|
// Commander auto-sets the value to true when --no-* is absent.
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AACA;;;;;;;;;GASG;;AAEH,qCAAwC;AACxC,yCAAoC;AACpC,yCAAoC;AACpC,uDAAgD;AAChD,6DAAmD;AACnD,2DAAuD;AAEvD,qEAA8D;AAO9D,MAAM,aAAa,GAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAErE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC,CAAC;AAepB,SAAS,cAAc,CAAC,OAAgB;IACtC,OAAO,OAAO;SACX,MAAM,CAAC,QAAQ,EAAE,8CAA8C,CAAC;SAChE,MAAM,CACL,SAAS,EACT,4DAA4D,CAC7D;SACA,MAAM,CACL,iBAAiB,EACjB,+DAA+D,CAChE;SACA,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;SACjE,MAAM,CACL,wBAAwB,EACxB,iEAAiE,CAClE;SACA,MAAM,CACL,2BAA2B,EAC3B,wDAAwD,CACzD;SACA,MAAM,CACL,qBAAqB,EACrB,4CAA4C,EAC5C,MAAM,CACP;SACA,MAAM,CACL,mBAAmB,EACnB,mEAAmE,CACpE,CAAC;AACN,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAgB;IAC1C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -66,6 +66,9 @@ async function getClient(toolEmail) {
|
|
|
66
66
|
throw new Error("TEAMS_REGION is required when TEAMS_TOKEN is set");
|
|
67
67
|
}
|
|
68
68
|
clientInstance = teams_client_js_1.TeamsClient.fromToken(envToken, envRegion, envBearerToken, envSubstrateToken);
|
|
69
|
+
if (email) {
|
|
70
|
+
clientInstance.setEmail(email);
|
|
71
|
+
}
|
|
69
72
|
}
|
|
70
73
|
else if (envAuto) {
|
|
71
74
|
if (!email) {
|
|
@@ -84,6 +87,9 @@ async function getClient(toolEmail) {
|
|
|
84
87
|
email,
|
|
85
88
|
verbose: false,
|
|
86
89
|
});
|
|
90
|
+
if (email) {
|
|
91
|
+
clientInstance.setEmail(email);
|
|
92
|
+
}
|
|
87
93
|
}
|
|
88
94
|
else {
|
|
89
95
|
clientInstance = await teams_client_js_1.TeamsClient.fromDebugSession({
|
|
@@ -105,6 +111,9 @@ function parameterToZod(parameter) {
|
|
|
105
111
|
case "boolean":
|
|
106
112
|
schema = zod_1.z.boolean();
|
|
107
113
|
break;
|
|
114
|
+
case "string[]":
|
|
115
|
+
schema = zod_1.z.array(zod_1.z.string());
|
|
116
|
+
break;
|
|
108
117
|
}
|
|
109
118
|
schema = schema.describe(parameter.description);
|
|
110
119
|
if (!parameter.required) {
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;AAEH,oEAAoE;AACpE,wEAAiF;AACjF,6BAAwB;AACxB,uDAAgD;AAChD,6DAAmD;AACnD,2DAAuD;AAEvD,qEAA8D;AAE9D,IAAI,cAAc,GAAuB,IAAI,CAAC;AAE9C,MAAM,eAAgB,SAAQ,KAAK;IACjC;QACE,KAAK,CACH,yDAAyD;YACvD,qDAAqD,CACxD,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,KAAK,UAAU,SAAS,CAAC,SAAkB;IACzC,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACzC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACtD,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,SAAS,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC/C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,cAAc,GAAG,6BAAW,CAAC,SAAS,CACpC,QAAQ,EACR,SAAS,EACT,cAAc,EACd,iBAAiB,CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/teams-client.d.ts
CHANGED
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
* "optional-substrate-token",
|
|
30
30
|
* );
|
|
31
31
|
*/
|
|
32
|
-
import type { TeamsToken, AutoLoginOptions, InteractiveLoginOptions, ManualTokenOptions, Conversation, Message, MessageFormat, Member, SentMessage, EditedMessage, DeletedMessage, GetMessagesOptions, ListConversationsOptions, OneOnOneSearchResult, PersonSearchResult, ChatSearchResult, MessagesPage, TranscriptResult } from "./types.js";
|
|
32
|
+
import type { TeamsToken, AutoLoginOptions, InteractiveLoginOptions, ManualTokenOptions, Conversation, Message, MessageFormat, Member, SentMessage, EditedMessage, DeletedMessage, GetMessagesOptions, ListConversationsOptions, OneOnOneSearchResult, PersonSearchResult, ChatSearchResult, MessagesPage, TranscriptResult, MessageContentPart } from "./types.js";
|
|
33
33
|
export { acquireTokenViaAutoLogin } from "./auth/auto-login.js";
|
|
34
34
|
export { acquireTokenViaInteractiveLogin } from "./auth/interactive.js";
|
|
35
35
|
export { acquireTokenViaDebugSession } from "./auth/debug-session.js";
|
|
36
|
-
export type { TeamsToken, AutoLoginOptions, InteractiveLoginOptions, ManualTokenOptions, Conversation, Message, MessageFormat, Member, SentMessage, EditedMessage, DeletedMessage, GetMessagesOptions, ListConversationsOptions, OneOnOneSearchResult, MessagesPage, Mention, Reaction, Follower, UserProfile, PersonSearchResult, ChatSearchResult, TranscriptEntry, TranscriptResult, } from "./types.js";
|
|
36
|
+
export type { TeamsToken, AutoLoginOptions, InteractiveLoginOptions, ManualTokenOptions, Conversation, Message, MessageFormat, Member, SentMessage, EditedMessage, DeletedMessage, GetMessagesOptions, ListConversationsOptions, OneOnOneSearchResult, MessagesPage, Mention, Reaction, Follower, UserProfile, PersonSearchResult, ChatSearchResult, TranscriptEntry, TranscriptResult, ImageAttachment, FileAttachment, MessageContentPart, } from "./types.js";
|
|
37
37
|
export { SYSTEM_STREAM_TYPES } from "./types.js";
|
|
38
38
|
export { isTextMessageType } from "./constants.js";
|
|
39
39
|
export { parseRawMessage } from "./api/chat-service.js";
|
|
@@ -41,6 +41,8 @@ export { ApiAuthError, ApiRateLimitError } from "./api/common.js";
|
|
|
41
41
|
export { fetchProfiles } from "./api/middle-tier.js";
|
|
42
42
|
export { searchPeople, searchChats } from "./api/substrate.js";
|
|
43
43
|
export { fetchTranscript, fetchTranscriptVtt, parseVtt, extractTranscriptUrl, extractMeetingTitle, isSuccessfulRecording, } from "./api/transcripts.js";
|
|
44
|
+
export { fetchAmsImage, uploadAmsImage, buildAmsImageTag, parseInlineImages, parseFileAttachments, uploadSharePointFile, buildFilesPropertyJson, } from "./api/attachments.js";
|
|
45
|
+
export type { SharePointUploadResult } from "./api/attachments.js";
|
|
44
46
|
export { saveToken, loadToken, clearToken } from "./token-store.js";
|
|
45
47
|
export { actions } from "./actions/definitions.js";
|
|
46
48
|
export { formatOutput } from "./actions/formatters.js";
|
|
@@ -49,6 +51,7 @@ export declare class TeamsClient {
|
|
|
49
51
|
private token;
|
|
50
52
|
private autoLoginOptions;
|
|
51
53
|
private cachedDisplayName;
|
|
54
|
+
private userEmail;
|
|
52
55
|
private constructor();
|
|
53
56
|
/**
|
|
54
57
|
* Create a client with secure token caching and automatic refresh.
|
|
@@ -92,7 +95,7 @@ export declare class TeamsClient {
|
|
|
92
95
|
* enables reliable people/chat search. Both are optional; basic chat
|
|
93
96
|
* operations only require `skypeToken`.
|
|
94
97
|
*/
|
|
95
|
-
static fromToken(skypeToken: string, region?: string, bearerToken?: string, substrateToken?: string): TeamsClient;
|
|
98
|
+
static fromToken(skypeToken: string, region?: string, bearerToken?: string, substrateToken?: string, amsToken?: string, sharePointToken?: string, sharePointHost?: string): TeamsClient;
|
|
96
99
|
/**
|
|
97
100
|
* Clear a cached token from the macOS Keychain.
|
|
98
101
|
*
|
|
@@ -101,6 +104,14 @@ export declare class TeamsClient {
|
|
|
101
104
|
static clearCachedToken(email: string): void;
|
|
102
105
|
/** Get the underlying token (for persistence or debugging). */
|
|
103
106
|
getToken(): TeamsToken;
|
|
107
|
+
/**
|
|
108
|
+
* Set the user's email address (needed for SharePoint file uploads).
|
|
109
|
+
*
|
|
110
|
+
* Automatically set when using `create()` or `fromAutoLogin()`.
|
|
111
|
+
* Call this manually when using `fromToken()`, `fromDebugSession()`,
|
|
112
|
+
* or `fromInteractiveLogin()` if file upload is needed.
|
|
113
|
+
*/
|
|
114
|
+
setEmail(email: string): void;
|
|
104
115
|
/**
|
|
105
116
|
* List conversations (chats, group chats, meetings, channels).
|
|
106
117
|
*
|
|
@@ -167,7 +178,7 @@ export declare class TeamsClient {
|
|
|
167
178
|
* - `"markdown"` (default) — converted from Markdown to HTML
|
|
168
179
|
* - `"html"` — raw HTML, sent as-is
|
|
169
180
|
*/
|
|
170
|
-
sendMessage(conversationId: string, content: string, format?: MessageFormat): Promise<SentMessage>;
|
|
181
|
+
sendMessage(conversationId: string, content: string, format?: MessageFormat, amsReferences?: string[]): Promise<SentMessage>;
|
|
171
182
|
/**
|
|
172
183
|
* Edit an existing message in a conversation.
|
|
173
184
|
*
|
|
@@ -179,6 +190,69 @@ export declare class TeamsClient {
|
|
|
179
190
|
editMessage(conversationId: string, messageId: string, content: string, format?: MessageFormat): Promise<EditedMessage>;
|
|
180
191
|
/** Delete a message from a conversation. */
|
|
181
192
|
deleteMessage(conversationId: string, messageId: string): Promise<DeletedMessage>;
|
|
193
|
+
/**
|
|
194
|
+
* Download an image attachment from the AMS (Async Media Service).
|
|
195
|
+
*
|
|
196
|
+
* @param amsObjectId - The AMS object ID from an ImageAttachment
|
|
197
|
+
* @param fullSize - If true, download the full-size image; otherwise compressed (default: false)
|
|
198
|
+
* @returns Binary image data with content type and size
|
|
199
|
+
*/
|
|
200
|
+
downloadImage(amsObjectId: string, fullSize?: boolean): Promise<{
|
|
201
|
+
data: Buffer;
|
|
202
|
+
contentType: string;
|
|
203
|
+
size: number;
|
|
204
|
+
}>;
|
|
205
|
+
/**
|
|
206
|
+
* Download a file attachment from SharePoint.
|
|
207
|
+
*
|
|
208
|
+
* @param fileUrl - The direct SharePoint file URL from a FileAttachment
|
|
209
|
+
* @param itemId - The SharePoint item ID (unique GUID) from a FileAttachment
|
|
210
|
+
* @returns Binary file data with content type, size, and file name
|
|
211
|
+
*/
|
|
212
|
+
downloadFile(fileUrl: string, itemId: string): Promise<{
|
|
213
|
+
data: Buffer;
|
|
214
|
+
contentType: string;
|
|
215
|
+
size: number;
|
|
216
|
+
fileName: string;
|
|
217
|
+
}>;
|
|
218
|
+
/**
|
|
219
|
+
* Send a message with inline images.
|
|
220
|
+
*
|
|
221
|
+
* Uploads each image to AMS, sets permissions for the conversation,
|
|
222
|
+
* and constructs the message HTML with embedded `<img>` tags.
|
|
223
|
+
*
|
|
224
|
+
* Content sections and images are interleaved in order. Use `contentParts`
|
|
225
|
+
* to specify the sequence of text and image content.
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* await client.sendMessageWithImages(conversationId, [
|
|
229
|
+
* { type: "text", text: "Check out this screenshot:" },
|
|
230
|
+
* { type: "image", data: imageBuffer, fileName: "screenshot.png", contentType: "image/png" },
|
|
231
|
+
* { type: "text", text: "And another one:" },
|
|
232
|
+
* { type: "image", data: image2Buffer, fileName: "screenshot2.png", contentType: "image/png" },
|
|
233
|
+
* ]);
|
|
234
|
+
*/
|
|
235
|
+
sendMessageWithImages(conversationId: string, contentParts: MessageContentPart[]): Promise<SentMessage>;
|
|
236
|
+
/**
|
|
237
|
+
* Send a message with file attachments (uploaded to SharePoint).
|
|
238
|
+
*
|
|
239
|
+
* Uploads each file to the sender's OneDrive "Microsoft Teams Chat Files"
|
|
240
|
+
* folder, then sends a message referencing the uploaded files via
|
|
241
|
+
* `properties.files` JSON.
|
|
242
|
+
*
|
|
243
|
+
* Content sections, images, and files are handled together. Images are
|
|
244
|
+
* uploaded to AMS (inline), files to SharePoint (as attachments).
|
|
245
|
+
*
|
|
246
|
+
* Requires a SharePoint token (captured during authentication) and the
|
|
247
|
+
* user's email (set via `setEmail()` or automatically during `create()`).
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* await client.sendMessageWithFiles(conversationId, [
|
|
251
|
+
* { type: "text", text: "Here's the document:" },
|
|
252
|
+
* { type: "file", data: fileBuffer, fileName: "report.md" },
|
|
253
|
+
* ]);
|
|
254
|
+
*/
|
|
255
|
+
sendMessageWithFiles(conversationId: string, contentParts: MessageContentPart[]): Promise<SentMessage>;
|
|
182
256
|
/**
|
|
183
257
|
* Get members of a conversation.
|
|
184
258
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams-client.d.ts","sourceRoot":"","sources":["../src/teams-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,aAAa,EACb,MAAM,EACN,WAAW,EACX,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"teams-client.d.ts","sourceRoot":"","sources":["../src/teams-client.ts"],"names":[],"mappings":"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"}
|
package/dist/teams-client.js
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* );
|
|
32
32
|
*/
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.TeamsClient = exports.formatOutput = exports.actions = exports.clearToken = exports.loadToken = exports.saveToken = exports.isSuccessfulRecording = exports.extractMeetingTitle = exports.extractTranscriptUrl = exports.parseVtt = exports.fetchTranscriptVtt = exports.fetchTranscript = exports.searchChats = exports.searchPeople = exports.fetchProfiles = exports.ApiRateLimitError = exports.ApiAuthError = exports.parseRawMessage = exports.isTextMessageType = exports.SYSTEM_STREAM_TYPES = exports.acquireTokenViaDebugSession = exports.acquireTokenViaInteractiveLogin = exports.acquireTokenViaAutoLogin = void 0;
|
|
34
|
+
exports.TeamsClient = exports.formatOutput = exports.actions = exports.clearToken = exports.loadToken = exports.saveToken = exports.buildFilesPropertyJson = exports.uploadSharePointFile = exports.parseFileAttachments = exports.parseInlineImages = exports.buildAmsImageTag = exports.uploadAmsImage = exports.fetchAmsImage = exports.isSuccessfulRecording = exports.extractMeetingTitle = exports.extractTranscriptUrl = exports.parseVtt = exports.fetchTranscriptVtt = exports.fetchTranscript = exports.searchChats = exports.searchPeople = exports.fetchProfiles = exports.ApiRateLimitError = exports.ApiAuthError = exports.parseRawMessage = exports.isTextMessageType = exports.SYSTEM_STREAM_TYPES = exports.acquireTokenViaDebugSession = exports.acquireTokenViaInteractiveLogin = exports.acquireTokenViaAutoLogin = void 0;
|
|
35
35
|
const types_js_1 = require("./types.js");
|
|
36
36
|
const constants_js_1 = require("./constants.js");
|
|
37
37
|
const chat_service_js_1 = require("./api/chat-service.js");
|
|
@@ -39,6 +39,7 @@ const common_js_1 = require("./api/common.js");
|
|
|
39
39
|
const middle_tier_js_1 = require("./api/middle-tier.js");
|
|
40
40
|
const substrate_js_1 = require("./api/substrate.js");
|
|
41
41
|
const transcripts_js_1 = require("./api/transcripts.js");
|
|
42
|
+
const attachments_js_1 = require("./api/attachments.js");
|
|
42
43
|
const auto_login_js_1 = require("./auth/auto-login.js");
|
|
43
44
|
const interactive_js_1 = require("./auth/interactive.js");
|
|
44
45
|
const debug_session_js_1 = require("./auth/debug-session.js");
|
|
@@ -71,6 +72,14 @@ Object.defineProperty(exports, "parseVtt", { enumerable: true, get: function ()
|
|
|
71
72
|
Object.defineProperty(exports, "extractTranscriptUrl", { enumerable: true, get: function () { return transcripts_js_2.extractTranscriptUrl; } });
|
|
72
73
|
Object.defineProperty(exports, "extractMeetingTitle", { enumerable: true, get: function () { return transcripts_js_2.extractMeetingTitle; } });
|
|
73
74
|
Object.defineProperty(exports, "isSuccessfulRecording", { enumerable: true, get: function () { return transcripts_js_2.isSuccessfulRecording; } });
|
|
75
|
+
var attachments_js_2 = require("./api/attachments.js");
|
|
76
|
+
Object.defineProperty(exports, "fetchAmsImage", { enumerable: true, get: function () { return attachments_js_2.fetchAmsImage; } });
|
|
77
|
+
Object.defineProperty(exports, "uploadAmsImage", { enumerable: true, get: function () { return attachments_js_2.uploadAmsImage; } });
|
|
78
|
+
Object.defineProperty(exports, "buildAmsImageTag", { enumerable: true, get: function () { return attachments_js_2.buildAmsImageTag; } });
|
|
79
|
+
Object.defineProperty(exports, "parseInlineImages", { enumerable: true, get: function () { return attachments_js_2.parseInlineImages; } });
|
|
80
|
+
Object.defineProperty(exports, "parseFileAttachments", { enumerable: true, get: function () { return attachments_js_2.parseFileAttachments; } });
|
|
81
|
+
Object.defineProperty(exports, "uploadSharePointFile", { enumerable: true, get: function () { return attachments_js_2.uploadSharePointFile; } });
|
|
82
|
+
Object.defineProperty(exports, "buildFilesPropertyJson", { enumerable: true, get: function () { return attachments_js_2.buildFilesPropertyJson; } });
|
|
74
83
|
var token_store_js_2 = require("./token-store.js");
|
|
75
84
|
Object.defineProperty(exports, "saveToken", { enumerable: true, get: function () { return token_store_js_2.saveToken; } });
|
|
76
85
|
Object.defineProperty(exports, "loadToken", { enumerable: true, get: function () { return token_store_js_2.loadToken; } });
|
|
@@ -96,6 +105,7 @@ class TeamsClient {
|
|
|
96
105
|
token;
|
|
97
106
|
autoLoginOptions = null;
|
|
98
107
|
cachedDisplayName = null;
|
|
108
|
+
userEmail = null;
|
|
99
109
|
constructor(token) {
|
|
100
110
|
this.token = token;
|
|
101
111
|
}
|
|
@@ -117,14 +127,18 @@ class TeamsClient {
|
|
|
117
127
|
// Re-authenticate if the cached token is missing substrate or bearer
|
|
118
128
|
// tokens — these are required for people/chat search and profile
|
|
119
129
|
// resolution. Tokens captured before these were added will be stale.
|
|
120
|
-
if (!cachedToken.substrateToken ||
|
|
121
|
-
|
|
130
|
+
if (!cachedToken.substrateToken ||
|
|
131
|
+
!cachedToken.bearerToken ||
|
|
132
|
+
!cachedToken.amsToken ||
|
|
133
|
+
!cachedToken.sharePointHost) {
|
|
134
|
+
log("Cached token is missing substrate, bearer, AMS token, or SharePoint host, re-authenticating...");
|
|
122
135
|
(0, token_store_js_1.clearToken)(options.email);
|
|
123
136
|
const freshToken = await (0, auto_login_js_1.acquireTokenViaAutoLogin)(options);
|
|
124
137
|
(0, token_store_js_1.saveToken)(options.email, freshToken);
|
|
125
138
|
log("Fresh token saved to Keychain");
|
|
126
139
|
const client = new TeamsClient(freshToken);
|
|
127
140
|
client.autoLoginOptions = options;
|
|
141
|
+
client.userEmail = options.email;
|
|
128
142
|
return client;
|
|
129
143
|
}
|
|
130
144
|
const region = (0, region_js_1.resolveTeamsRegion)(options.region, cachedToken.region);
|
|
@@ -138,6 +152,7 @@ class TeamsClient {
|
|
|
138
152
|
}
|
|
139
153
|
const client = new TeamsClient(token);
|
|
140
154
|
client.autoLoginOptions = options;
|
|
155
|
+
client.userEmail = options.email;
|
|
141
156
|
return client;
|
|
142
157
|
}
|
|
143
158
|
log("No cached token found, acquiring via auto-login...");
|
|
@@ -146,6 +161,7 @@ class TeamsClient {
|
|
|
146
161
|
log("Token saved to Keychain");
|
|
147
162
|
const client = new TeamsClient(token);
|
|
148
163
|
client.autoLoginOptions = options;
|
|
164
|
+
client.userEmail = options.email;
|
|
149
165
|
return client;
|
|
150
166
|
}
|
|
151
167
|
/**
|
|
@@ -157,7 +173,9 @@ class TeamsClient {
|
|
|
157
173
|
*/
|
|
158
174
|
static async fromAutoLogin(options) {
|
|
159
175
|
const token = await (0, auto_login_js_1.acquireTokenViaAutoLogin)(options);
|
|
160
|
-
|
|
176
|
+
const client = new TeamsClient(token);
|
|
177
|
+
client.userEmail = options.email;
|
|
178
|
+
return client;
|
|
161
179
|
}
|
|
162
180
|
/**
|
|
163
181
|
* Create a client by connecting to a running Chrome debug session.
|
|
@@ -187,8 +205,16 @@ class TeamsClient {
|
|
|
187
205
|
* enables reliable people/chat search. Both are optional; basic chat
|
|
188
206
|
* operations only require `skypeToken`.
|
|
189
207
|
*/
|
|
190
|
-
static fromToken(skypeToken, region = region_js_1.DEFAULT_TEAMS_REGION, bearerToken, substrateToken) {
|
|
191
|
-
return new TeamsClient({
|
|
208
|
+
static fromToken(skypeToken, region = region_js_1.DEFAULT_TEAMS_REGION, bearerToken, substrateToken, amsToken, sharePointToken, sharePointHost) {
|
|
209
|
+
return new TeamsClient({
|
|
210
|
+
skypeToken,
|
|
211
|
+
region,
|
|
212
|
+
bearerToken,
|
|
213
|
+
substrateToken,
|
|
214
|
+
amsToken,
|
|
215
|
+
sharePointToken,
|
|
216
|
+
sharePointHost,
|
|
217
|
+
});
|
|
192
218
|
}
|
|
193
219
|
/**
|
|
194
220
|
* Clear a cached token from the macOS Keychain.
|
|
@@ -202,6 +228,16 @@ class TeamsClient {
|
|
|
202
228
|
getToken() {
|
|
203
229
|
return { ...this.token };
|
|
204
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Set the user's email address (needed for SharePoint file uploads).
|
|
233
|
+
*
|
|
234
|
+
* Automatically set when using `create()` or `fromAutoLogin()`.
|
|
235
|
+
* Call this manually when using `fromToken()`, `fromDebugSession()`,
|
|
236
|
+
* or `fromInteractiveLogin()` if file upload is needed.
|
|
237
|
+
*/
|
|
238
|
+
setEmail(email) {
|
|
239
|
+
this.userEmail = email;
|
|
240
|
+
}
|
|
205
241
|
/**
|
|
206
242
|
* List conversations (chats, group chats, meetings, channels).
|
|
207
243
|
*
|
|
@@ -556,10 +592,10 @@ class TeamsClient {
|
|
|
556
592
|
* - `"markdown"` (default) — converted from Markdown to HTML
|
|
557
593
|
* - `"html"` — raw HTML, sent as-is
|
|
558
594
|
*/
|
|
559
|
-
async sendMessage(conversationId, content, format = "markdown") {
|
|
595
|
+
async sendMessage(conversationId, content, format = "markdown", amsReferences = []) {
|
|
560
596
|
return this.withTokenRefresh(async () => {
|
|
561
597
|
const displayName = await this.getCurrentUserDisplayName();
|
|
562
|
-
return (0, chat_service_js_1.postMessage)(this.token, conversationId, content, displayName, format);
|
|
598
|
+
return (0, chat_service_js_1.postMessage)(this.token, conversationId, content, displayName, format, amsReferences);
|
|
563
599
|
});
|
|
564
600
|
}
|
|
565
601
|
/**
|
|
@@ -582,6 +618,115 @@ class TeamsClient {
|
|
|
582
618
|
return (0, chat_service_js_1.deleteMessage)(this.token, conversationId, messageId);
|
|
583
619
|
});
|
|
584
620
|
}
|
|
621
|
+
/**
|
|
622
|
+
* Download an image attachment from the AMS (Async Media Service).
|
|
623
|
+
*
|
|
624
|
+
* @param amsObjectId - The AMS object ID from an ImageAttachment
|
|
625
|
+
* @param fullSize - If true, download the full-size image; otherwise compressed (default: false)
|
|
626
|
+
* @returns Binary image data with content type and size
|
|
627
|
+
*/
|
|
628
|
+
async downloadImage(amsObjectId, fullSize = false) {
|
|
629
|
+
return this.withTokenRefresh(async () => {
|
|
630
|
+
const view = fullSize ? "imgpsh_fullsize_anim" : "imgo";
|
|
631
|
+
return (0, attachments_js_1.fetchAmsImage)(this.token, amsObjectId, view);
|
|
632
|
+
});
|
|
633
|
+
}
|
|
634
|
+
/**
|
|
635
|
+
* Download a file attachment from SharePoint.
|
|
636
|
+
*
|
|
637
|
+
* @param fileUrl - The direct SharePoint file URL from a FileAttachment
|
|
638
|
+
* @param itemId - The SharePoint item ID (unique GUID) from a FileAttachment
|
|
639
|
+
* @returns Binary file data with content type, size, and file name
|
|
640
|
+
*/
|
|
641
|
+
async downloadFile(fileUrl, itemId) {
|
|
642
|
+
return this.withTokenRefresh(async () => {
|
|
643
|
+
return (0, attachments_js_1.fetchSharePointFile)(this.token, fileUrl, itemId);
|
|
644
|
+
});
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* Send a message with inline images.
|
|
648
|
+
*
|
|
649
|
+
* Uploads each image to AMS, sets permissions for the conversation,
|
|
650
|
+
* and constructs the message HTML with embedded `<img>` tags.
|
|
651
|
+
*
|
|
652
|
+
* Content sections and images are interleaved in order. Use `contentParts`
|
|
653
|
+
* to specify the sequence of text and image content.
|
|
654
|
+
*
|
|
655
|
+
* @example
|
|
656
|
+
* await client.sendMessageWithImages(conversationId, [
|
|
657
|
+
* { type: "text", text: "Check out this screenshot:" },
|
|
658
|
+
* { type: "image", data: imageBuffer, fileName: "screenshot.png", contentType: "image/png" },
|
|
659
|
+
* { type: "text", text: "And another one:" },
|
|
660
|
+
* { type: "image", data: image2Buffer, fileName: "screenshot2.png", contentType: "image/png" },
|
|
661
|
+
* ]);
|
|
662
|
+
*/
|
|
663
|
+
async sendMessageWithImages(conversationId, contentParts) {
|
|
664
|
+
return this.withTokenRefresh(async () => {
|
|
665
|
+
const amsReferences = [];
|
|
666
|
+
const htmlParts = [];
|
|
667
|
+
for (const part of contentParts) {
|
|
668
|
+
if (part.type === "text") {
|
|
669
|
+
htmlParts.push(`<p>${part.text}</p>`);
|
|
670
|
+
}
|
|
671
|
+
else if (part.type === "image") {
|
|
672
|
+
const { amsObjectId } = await (0, attachments_js_1.uploadAmsImage)(this.token, part.data, part.fileName, conversationId);
|
|
673
|
+
amsReferences.push(amsObjectId);
|
|
674
|
+
htmlParts.push((0, attachments_js_1.buildAmsImageTag)(amsObjectId, part.width, part.height));
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
const content = `<div>${htmlParts.join("")}</div>`;
|
|
678
|
+
const displayName = await this.getCurrentUserDisplayName();
|
|
679
|
+
return (0, chat_service_js_1.postMessage)(this.token, conversationId, content, displayName, "html", amsReferences);
|
|
680
|
+
});
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* Send a message with file attachments (uploaded to SharePoint).
|
|
684
|
+
*
|
|
685
|
+
* Uploads each file to the sender's OneDrive "Microsoft Teams Chat Files"
|
|
686
|
+
* folder, then sends a message referencing the uploaded files via
|
|
687
|
+
* `properties.files` JSON.
|
|
688
|
+
*
|
|
689
|
+
* Content sections, images, and files are handled together. Images are
|
|
690
|
+
* uploaded to AMS (inline), files to SharePoint (as attachments).
|
|
691
|
+
*
|
|
692
|
+
* Requires a SharePoint token (captured during authentication) and the
|
|
693
|
+
* user's email (set via `setEmail()` or automatically during `create()`).
|
|
694
|
+
*
|
|
695
|
+
* @example
|
|
696
|
+
* await client.sendMessageWithFiles(conversationId, [
|
|
697
|
+
* { type: "text", text: "Here's the document:" },
|
|
698
|
+
* { type: "file", data: fileBuffer, fileName: "report.md" },
|
|
699
|
+
* ]);
|
|
700
|
+
*/
|
|
701
|
+
async sendMessageWithFiles(conversationId, contentParts) {
|
|
702
|
+
return this.withTokenRefresh(async () => {
|
|
703
|
+
if (!this.userEmail) {
|
|
704
|
+
throw new Error("User email is required for file upload but is not set. " +
|
|
705
|
+
"Call setEmail() on the client or use TeamsClient.create() which sets it automatically.");
|
|
706
|
+
}
|
|
707
|
+
const amsReferences = [];
|
|
708
|
+
const htmlParts = [];
|
|
709
|
+
const uploadResults = [];
|
|
710
|
+
for (const part of contentParts) {
|
|
711
|
+
if (part.type === "text") {
|
|
712
|
+
htmlParts.push(`<p>${part.text}</p>`);
|
|
713
|
+
}
|
|
714
|
+
else if (part.type === "image") {
|
|
715
|
+
const { amsObjectId } = await (0, attachments_js_1.uploadAmsImage)(this.token, part.data, part.fileName, conversationId);
|
|
716
|
+
amsReferences.push(amsObjectId);
|
|
717
|
+
htmlParts.push((0, attachments_js_1.buildAmsImageTag)(amsObjectId, part.width, part.height));
|
|
718
|
+
}
|
|
719
|
+
else if (part.type === "file") {
|
|
720
|
+
const result = await (0, attachments_js_1.uploadSharePointFile)(this.token, part.data, part.fileName, this.userEmail);
|
|
721
|
+
uploadResults.push(result);
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
const content = htmlParts.length > 0 ? `<div>${htmlParts.join("")}</div>` : "";
|
|
725
|
+
const filesJson = (0, attachments_js_1.buildFilesPropertyJson)(uploadResults);
|
|
726
|
+
const displayName = await this.getCurrentUserDisplayName();
|
|
727
|
+
return (0, chat_service_js_1.postMessage)(this.token, conversationId, content, displayName, "html", amsReferences, filesJson);
|
|
728
|
+
});
|
|
729
|
+
}
|
|
585
730
|
/**
|
|
586
731
|
* Get members of a conversation.
|
|
587
732
|
*
|