microsoft-graph-client 1.0.33 → 1.0.35
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/api/calendar.d.ts +6 -2
- package/dist/api/calendar.d.ts.map +1 -1
- package/dist/api/calendar.js +10 -3
- package/dist/api/calendar.js.map +1 -1
- package/dist/api/chats.d.ts +133 -4
- package/dist/api/chats.d.ts.map +1 -1
- package/dist/api/chats.js +194 -17
- package/dist/api/chats.js.map +1 -1
- package/dist/api/files.js +1 -1
- package/dist/api/files.js.map +1 -1
- package/dist/api/mail.d.ts.map +1 -1
- package/dist/api/mail.js +6 -0
- package/dist/api/mail.js.map +1 -1
- package/dist/api/messages.d.ts +122 -3
- package/dist/api/messages.d.ts.map +1 -1
- package/dist/api/messages.js +215 -50
- package/dist/api/messages.js.map +1 -1
- package/dist/api/users.d.ts +4 -3
- package/dist/api/users.d.ts.map +1 -1
- package/dist/api/users.js +13 -4
- package/dist/api/users.js.map +1 -1
- package/dist/types/calendar.d.ts +9 -0
- package/dist/types/calendar.d.ts.map +1 -1
- package/dist/types/calendar.js +14 -1
- package/dist/types/calendar.js.map +1 -1
- package/dist/types/chat.d.ts +42 -0
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/types/file.d.ts +2 -0
- package/dist/types/file.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/mail.d.ts +4 -0
- package/dist/types/mail.d.ts.map +1 -1
- package/dist/types/message.d.ts +113 -8
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/user.d.ts +12 -0
- package/dist/types/user.d.ts.map +1 -1
- package/dist/types/user.js +4 -1
- package/dist/types/user.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/odata.d.ts +59 -8
- package/dist/utils/odata.d.ts.map +1 -1
- package/dist/utils/odata.js +64 -9
- package/dist/utils/odata.js.map +1 -1
- package/package.json +1 -1
package/dist/api/messages.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseApi } from './base.js';
|
|
2
|
-
import type { ChatMessage, DeleteChatMessageParams, DownloadHostedContentParams, DownloadHostedContentResult, GetChatMessagesParams, GetMessageParams, SearchMessagesParams, SearchResponse, SendChatMessageParams, SetMessageReactionParams, UnsetMessageReactionParams, UpdateChatMessageParams } from '../types/index.js';
|
|
2
|
+
import type { ChatMessage, DeleteChatMessageParams, DownloadHostedContentParams, DownloadHostedContentResult, GetChatMessagesParams, GetMessageParams, ListMessagesParams, ListMessagesResult, SearchMessagesParams, SearchResponse, SendChatMessageParams, SetMessageReactionParams, UnsetMessageReactionParams, UpdateChatMessageParams } from '../types/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* API for message operations.
|
|
5
5
|
*/
|
|
@@ -14,9 +14,69 @@ export declare class MessagesApi extends BaseApi {
|
|
|
14
14
|
*/
|
|
15
15
|
get(params: GetMessageParams): Promise<ChatMessage>;
|
|
16
16
|
/**
|
|
17
|
-
* Get messages from a chat.
|
|
17
|
+
* Get messages from a chat. Returns a flat array of `ChatMessage`.
|
|
18
|
+
*
|
|
19
|
+
* Backward-compat method: prefer `listMessages` for new code, which exposes
|
|
20
|
+
* pagination metadata and a richer return shape.
|
|
21
|
+
*
|
|
22
|
+
* **Bug fix history**: this method previously built the OData filter
|
|
23
|
+
* `from/user/id eq '<id>'` for the `fromUser` param. Graph rejects this
|
|
24
|
+
* with "The entity property 'user/id' and operationKind 'Equal' is not
|
|
25
|
+
* allowed in $filter query." (HTTP 400). The filter is now applied
|
|
26
|
+
* client-side after fetching the page — see the doc on `listMessages`
|
|
27
|
+
* for the full reasoning.
|
|
18
28
|
*/
|
|
19
29
|
getChatMessages(params: GetChatMessagesParams): Promise<ChatMessage[]>;
|
|
30
|
+
/**
|
|
31
|
+
* List messages in a chat with caller-driven pagination.
|
|
32
|
+
*
|
|
33
|
+
* Returns one page plus a `nextLink` token. The caller passes the token
|
|
34
|
+
* back as `nextLink` on a follow-up call to fetch the next page. This
|
|
35
|
+
* method does NOT loop through pages.
|
|
36
|
+
*
|
|
37
|
+
* **Server-side capabilities of `/chats/{id}/messages`** (verified
|
|
38
|
+
* empirically — Microsoft's docs are vague on most of this):
|
|
39
|
+
*
|
|
40
|
+
* - `$top` ✓ (works, max ~50)
|
|
41
|
+
* - `$orderby=createdDateTime desc` ✓ (default)
|
|
42
|
+
* - `$filter=lastModifiedDateTime gt|lt <iso>` ✓ — the only content-ish
|
|
43
|
+
* filter that works
|
|
44
|
+
* - `$search` ✗ — "Query option 'Search' is not allowed"
|
|
45
|
+
* - `$filter=contains(body/content, 'X')` ✗ — "Only binary operation
|
|
46
|
+
* expressions are allowed"
|
|
47
|
+
* - `$filter=from/user/id eq 'X'` ✗ — "operationKind 'Equal' is not
|
|
48
|
+
* allowed"
|
|
49
|
+
*
|
|
50
|
+
* Microsoft's recommended approach for keyword search within a chat is:
|
|
51
|
+
* use the global `/search/query` endpoint and filter `chatId` client-side.
|
|
52
|
+
* That global path is implemented in `messages.search()`. This local path
|
|
53
|
+
* is for chronological reading of a chat with optional date filter.
|
|
54
|
+
*
|
|
55
|
+
* **The `containing` and `fromUser` params are client-side filters** —
|
|
56
|
+
* they keep only messages from the returned page that match. The
|
|
57
|
+
* `scanned` and `matched` fields in the result tell the caller how many
|
|
58
|
+
* messages were inspected vs how many matched, so the agent can paginate
|
|
59
|
+
* forward if it wants more.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* // Read the most recent 50 messages from a chat:
|
|
63
|
+
* const r = await client.messages.listMessages({ chatId, limit: 50 });
|
|
64
|
+
* console.log(r.messages, r.nextLink);
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* // Find messages containing "ticket" in the most recent 50:
|
|
68
|
+
* const r = await client.messages.listMessages({
|
|
69
|
+
* chatId, limit: 50, containing: 'ticket'
|
|
70
|
+
* });
|
|
71
|
+
* // r.scanned === 50, r.matched === r.messages.length
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* // Page forward:
|
|
75
|
+
* const r2 = await client.messages.listMessages({
|
|
76
|
+
* chatId, nextLink: r.nextLink
|
|
77
|
+
* });
|
|
78
|
+
*/
|
|
79
|
+
listMessages(params: ListMessagesParams): Promise<ListMessagesResult>;
|
|
20
80
|
/**
|
|
21
81
|
* Send a message to a chat.
|
|
22
82
|
*/
|
|
@@ -26,7 +86,66 @@ export declare class MessagesApi extends BaseApi {
|
|
|
26
86
|
*/
|
|
27
87
|
updateChatMessage(params: UpdateChatMessageParams): Promise<void>;
|
|
28
88
|
/**
|
|
29
|
-
* Search messages across chats and channels.
|
|
89
|
+
* Search chat messages across the signed-in user's chats and channels.
|
|
90
|
+
*
|
|
91
|
+
* Uses the BETA `/search/query` endpoint with `entityTypes: ['chatMessage']`.
|
|
92
|
+
* Beta is the canonical example in Microsoft's docs and is functionally
|
|
93
|
+
* equivalent to v1.0 (verified empirically — same results, same latency)
|
|
94
|
+
* but is the documented forward path. See:
|
|
95
|
+
* https://learn.microsoft.com/en-us/graph/search-concept-chat-messages
|
|
96
|
+
*
|
|
97
|
+
* **What this method DOES support:**
|
|
98
|
+
*
|
|
99
|
+
* - Free-text full-text search across message body and attachments.
|
|
100
|
+
* Microsoft Search indexes all messages the user has access to —
|
|
101
|
+
* NOT recency-windowed, unlike `/me/chats` filters.
|
|
102
|
+
* - The full set of documented KQL operators (`from:`, `to:`, `mentions:`,
|
|
103
|
+
* `IsRead:`, `hasAttachment:`, `sent>`, `sent<`) via typed params.
|
|
104
|
+
* - Real pagination via `from_offset` (skip N hits) and `size` (page size).
|
|
105
|
+
* Caller drives pagination — this method does NOT loop.
|
|
106
|
+
* - Up to 500 hits per call (Graph hard cap is 501).
|
|
107
|
+
*
|
|
108
|
+
* **What this method does NOT support, and why:**
|
|
109
|
+
*
|
|
110
|
+
* - **No `chatId` / `channelId` / `scope` filter.** Microsoft has not built
|
|
111
|
+
* server-side filtering by chat or channel for `chatMessage` search.
|
|
112
|
+
* Verified exhaustively against ~12 KQL operator variants and request
|
|
113
|
+
* body shapes (`stringInputs`, `sourceFilters`, etc.) — none filter.
|
|
114
|
+
* Confirmed by Microsoft on
|
|
115
|
+
* https://learn.microsoft.com/en-us/answers/questions/5510799 :
|
|
116
|
+
* "All scoping beyond keyword/KQL must be done client-side."
|
|
117
|
+
*
|
|
118
|
+
* - **`from:` does NOT accept user IDs.** Per docs and verified empirically,
|
|
119
|
+
* `from:` accepts a display name (`from:Bob`, `from:"Bob Smith"`) or an
|
|
120
|
+
* email (`from:bob@contoso.com`). Passing a GUID returns 0 hits silently.
|
|
121
|
+
* Resolve a user ID to a name/email before passing it here.
|
|
122
|
+
*
|
|
123
|
+
* - **`mentions:` is the inverse:** it ONLY accepts the user ID, and the
|
|
124
|
+
* GUID must have dashes stripped. Per docs.
|
|
125
|
+
*
|
|
126
|
+
* **About `total` in the response:** Microsoft's docs say total is "the
|
|
127
|
+
* number of results on the page, not the total number of matching results."
|
|
128
|
+
* That documentation is wrong (or outdated). Verified empirically: `total`
|
|
129
|
+
* IS the grand total of matching messages across all pages, regardless of
|
|
130
|
+
* `size`. For very common terms total can be in the thousands.
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* // Find messages I sent containing "delivery", page 1:
|
|
134
|
+
* const r = await client.messages.search({
|
|
135
|
+
* query: 'delivery',
|
|
136
|
+
* from: 'evrim.a@first.bet',
|
|
137
|
+
* size: 25,
|
|
138
|
+
* });
|
|
139
|
+
* // r.value[0].hitsContainers[0]: { total, moreResultsAvailable, hits[] }
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* // Page 2:
|
|
143
|
+
* const r2 = await client.messages.search({
|
|
144
|
+
* query: 'delivery',
|
|
145
|
+
* from: 'evrim.a@first.bet',
|
|
146
|
+
* size: 25,
|
|
147
|
+
* from_offset: 25,
|
|
148
|
+
* });
|
|
30
149
|
*/
|
|
31
150
|
search(params: SearchMessagesParams): Promise<SearchResponse>;
|
|
32
151
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/api/messages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EACV,WAAW,EAGX,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,EAGhB,oBAAoB,EAEpB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAG3B;;GAEG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC;;;OAGG;IACU,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAW7G;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAIhE
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/api/messages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EACV,WAAW,EAGX,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,EAGhB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EAEpB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAG3B;;GAEG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC;;;OAGG;IACU,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAW7G;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAIhE;;;;;;;;;;;;OAYG;IACU,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAyBnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACU,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgDlF;;OAEG;IACU,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IA6DjF;;OAEG;IACU,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACU,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAoD1E;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzE;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE;;OAEG;IACU,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E;;OAEG;IACU,aAAa,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7E;;OAEG;YACW,qBAAqB;CAiEpC"}
|
package/dist/api/messages.js
CHANGED
|
@@ -25,39 +25,132 @@ export class MessagesApi extends BaseApi {
|
|
|
25
25
|
return this.client.api(`/chats/${params.chatId}/messages/${params.messageId}`).get();
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
* Get messages from a chat.
|
|
28
|
+
* Get messages from a chat. Returns a flat array of `ChatMessage`.
|
|
29
|
+
*
|
|
30
|
+
* Backward-compat method: prefer `listMessages` for new code, which exposes
|
|
31
|
+
* pagination metadata and a richer return shape.
|
|
32
|
+
*
|
|
33
|
+
* **Bug fix history**: this method previously built the OData filter
|
|
34
|
+
* `from/user/id eq '<id>'` for the `fromUser` param. Graph rejects this
|
|
35
|
+
* with "The entity property 'user/id' and operationKind 'Equal' is not
|
|
36
|
+
* allowed in $filter query." (HTTP 400). The filter is now applied
|
|
37
|
+
* client-side after fetching the page — see the doc on `listMessages`
|
|
38
|
+
* for the full reasoning.
|
|
29
39
|
*/
|
|
30
40
|
async getChatMessages(params) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
// Client-side filtering for date ranges
|
|
41
|
+
const result = await this.listMessages({
|
|
42
|
+
chatId: params.chatId,
|
|
43
|
+
limit: params.limit,
|
|
44
|
+
fromUser: params.fromUser,
|
|
45
|
+
});
|
|
46
|
+
let messages = result.messages;
|
|
47
|
+
// Client-side date filtering preserved for backward compat with the old
|
|
48
|
+
// `from`/`to` params. New code should use `listMessages({ since })` for
|
|
49
|
+
// server-side date filtering via `lastModifiedDateTime gt`.
|
|
41
50
|
if ((params.from || params.to) && messages.length > 0) {
|
|
42
51
|
messages = messages.filter((message) => {
|
|
43
52
|
if (!message.createdDateTime)
|
|
44
53
|
return true;
|
|
45
54
|
const messageDate = new Date(message.createdDateTime);
|
|
46
|
-
if (params.from)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
if (params.to) {
|
|
52
|
-
const toDate = new Date(params.to);
|
|
53
|
-
if (messageDate >= toDate)
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
55
|
+
if (params.from && messageDate <= new Date(params.from))
|
|
56
|
+
return false;
|
|
57
|
+
if (params.to && messageDate >= new Date(params.to))
|
|
58
|
+
return false;
|
|
56
59
|
return true;
|
|
57
60
|
});
|
|
58
61
|
}
|
|
59
62
|
return messages;
|
|
60
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* List messages in a chat with caller-driven pagination.
|
|
66
|
+
*
|
|
67
|
+
* Returns one page plus a `nextLink` token. The caller passes the token
|
|
68
|
+
* back as `nextLink` on a follow-up call to fetch the next page. This
|
|
69
|
+
* method does NOT loop through pages.
|
|
70
|
+
*
|
|
71
|
+
* **Server-side capabilities of `/chats/{id}/messages`** (verified
|
|
72
|
+
* empirically — Microsoft's docs are vague on most of this):
|
|
73
|
+
*
|
|
74
|
+
* - `$top` ✓ (works, max ~50)
|
|
75
|
+
* - `$orderby=createdDateTime desc` ✓ (default)
|
|
76
|
+
* - `$filter=lastModifiedDateTime gt|lt <iso>` ✓ — the only content-ish
|
|
77
|
+
* filter that works
|
|
78
|
+
* - `$search` ✗ — "Query option 'Search' is not allowed"
|
|
79
|
+
* - `$filter=contains(body/content, 'X')` ✗ — "Only binary operation
|
|
80
|
+
* expressions are allowed"
|
|
81
|
+
* - `$filter=from/user/id eq 'X'` ✗ — "operationKind 'Equal' is not
|
|
82
|
+
* allowed"
|
|
83
|
+
*
|
|
84
|
+
* Microsoft's recommended approach for keyword search within a chat is:
|
|
85
|
+
* use the global `/search/query` endpoint and filter `chatId` client-side.
|
|
86
|
+
* That global path is implemented in `messages.search()`. This local path
|
|
87
|
+
* is for chronological reading of a chat with optional date filter.
|
|
88
|
+
*
|
|
89
|
+
* **The `containing` and `fromUser` params are client-side filters** —
|
|
90
|
+
* they keep only messages from the returned page that match. The
|
|
91
|
+
* `scanned` and `matched` fields in the result tell the caller how many
|
|
92
|
+
* messages were inspected vs how many matched, so the agent can paginate
|
|
93
|
+
* forward if it wants more.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* // Read the most recent 50 messages from a chat:
|
|
97
|
+
* const r = await client.messages.listMessages({ chatId, limit: 50 });
|
|
98
|
+
* console.log(r.messages, r.nextLink);
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* // Find messages containing "ticket" in the most recent 50:
|
|
102
|
+
* const r = await client.messages.listMessages({
|
|
103
|
+
* chatId, limit: 50, containing: 'ticket'
|
|
104
|
+
* });
|
|
105
|
+
* // r.scanned === 50, r.matched === r.messages.length
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* // Page forward:
|
|
109
|
+
* const r2 = await client.messages.listMessages({
|
|
110
|
+
* chatId, nextLink: r.nextLink
|
|
111
|
+
* });
|
|
112
|
+
*/
|
|
113
|
+
async listMessages(params) {
|
|
114
|
+
let query;
|
|
115
|
+
if (params.nextLink) {
|
|
116
|
+
// Follow the @odata.nextLink directly. All filters and ordering are
|
|
117
|
+
// already baked into the URL.
|
|
118
|
+
query = this.client.api(params.nextLink);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
query = this.client
|
|
122
|
+
.api(`/chats/${params.chatId}/messages`)
|
|
123
|
+
.top(params.limit ?? 20)
|
|
124
|
+
.orderby('createdDateTime desc');
|
|
125
|
+
if (params.since) {
|
|
126
|
+
// The only content-related $filter Graph accepts on this endpoint.
|
|
127
|
+
query = query.filter(`lastModifiedDateTime gt ${params.since}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const response = (await query.get());
|
|
131
|
+
const all = response?.value ?? [];
|
|
132
|
+
const nextLink = response?.['@odata.nextLink'];
|
|
133
|
+
const scanned = all.length;
|
|
134
|
+
let messages = all;
|
|
135
|
+
// Client-side: substring match against body content. We have to do this
|
|
136
|
+
// here because Graph doesn't support content filters on this endpoint
|
|
137
|
+
// (see method-level doc above).
|
|
138
|
+
if (params.containing && params.containing.trim().length > 0) {
|
|
139
|
+
const needle = params.containing.toLowerCase();
|
|
140
|
+
messages = messages.filter((m) => m.body?.content?.toLowerCase().includes(needle) ?? false);
|
|
141
|
+
}
|
|
142
|
+
// Client-side: filter by sender user ID. Same reason — `from/user/id eq`
|
|
143
|
+
// is rejected server-side.
|
|
144
|
+
if (params.fromUser) {
|
|
145
|
+
messages = messages.filter((m) => m.from?.user?.id === params.fromUser);
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
messages,
|
|
149
|
+
scanned,
|
|
150
|
+
matched: messages.length,
|
|
151
|
+
nextLink,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
61
154
|
/**
|
|
62
155
|
* Send a message to a chat.
|
|
63
156
|
*/
|
|
@@ -146,41 +239,113 @@ export class MessagesApi extends BaseApi {
|
|
|
146
239
|
await this.client.api(`/chats/${params.chatId}/messages/${params.messageId}`).patch(messagePayload);
|
|
147
240
|
}
|
|
148
241
|
/**
|
|
149
|
-
* Search messages across chats and channels.
|
|
242
|
+
* Search chat messages across the signed-in user's chats and channels.
|
|
243
|
+
*
|
|
244
|
+
* Uses the BETA `/search/query` endpoint with `entityTypes: ['chatMessage']`.
|
|
245
|
+
* Beta is the canonical example in Microsoft's docs and is functionally
|
|
246
|
+
* equivalent to v1.0 (verified empirically — same results, same latency)
|
|
247
|
+
* but is the documented forward path. See:
|
|
248
|
+
* https://learn.microsoft.com/en-us/graph/search-concept-chat-messages
|
|
249
|
+
*
|
|
250
|
+
* **What this method DOES support:**
|
|
251
|
+
*
|
|
252
|
+
* - Free-text full-text search across message body and attachments.
|
|
253
|
+
* Microsoft Search indexes all messages the user has access to —
|
|
254
|
+
* NOT recency-windowed, unlike `/me/chats` filters.
|
|
255
|
+
* - The full set of documented KQL operators (`from:`, `to:`, `mentions:`,
|
|
256
|
+
* `IsRead:`, `hasAttachment:`, `sent>`, `sent<`) via typed params.
|
|
257
|
+
* - Real pagination via `from_offset` (skip N hits) and `size` (page size).
|
|
258
|
+
* Caller drives pagination — this method does NOT loop.
|
|
259
|
+
* - Up to 500 hits per call (Graph hard cap is 501).
|
|
260
|
+
*
|
|
261
|
+
* **What this method does NOT support, and why:**
|
|
262
|
+
*
|
|
263
|
+
* - **No `chatId` / `channelId` / `scope` filter.** Microsoft has not built
|
|
264
|
+
* server-side filtering by chat or channel for `chatMessage` search.
|
|
265
|
+
* Verified exhaustively against ~12 KQL operator variants and request
|
|
266
|
+
* body shapes (`stringInputs`, `sourceFilters`, etc.) — none filter.
|
|
267
|
+
* Confirmed by Microsoft on
|
|
268
|
+
* https://learn.microsoft.com/en-us/answers/questions/5510799 :
|
|
269
|
+
* "All scoping beyond keyword/KQL must be done client-side."
|
|
270
|
+
*
|
|
271
|
+
* - **`from:` does NOT accept user IDs.** Per docs and verified empirically,
|
|
272
|
+
* `from:` accepts a display name (`from:Bob`, `from:"Bob Smith"`) or an
|
|
273
|
+
* email (`from:bob@contoso.com`). Passing a GUID returns 0 hits silently.
|
|
274
|
+
* Resolve a user ID to a name/email before passing it here.
|
|
275
|
+
*
|
|
276
|
+
* - **`mentions:` is the inverse:** it ONLY accepts the user ID, and the
|
|
277
|
+
* GUID must have dashes stripped. Per docs.
|
|
278
|
+
*
|
|
279
|
+
* **About `total` in the response:** Microsoft's docs say total is "the
|
|
280
|
+
* number of results on the page, not the total number of matching results."
|
|
281
|
+
* That documentation is wrong (or outdated). Verified empirically: `total`
|
|
282
|
+
* IS the grand total of matching messages across all pages, regardless of
|
|
283
|
+
* `size`. For very common terms total can be in the thousands.
|
|
284
|
+
*
|
|
285
|
+
* @example
|
|
286
|
+
* // Find messages I sent containing "delivery", page 1:
|
|
287
|
+
* const r = await client.messages.search({
|
|
288
|
+
* query: 'delivery',
|
|
289
|
+
* from: 'evrim.a@first.bet',
|
|
290
|
+
* size: 25,
|
|
291
|
+
* });
|
|
292
|
+
* // r.value[0].hitsContainers[0]: { total, moreResultsAvailable, hits[] }
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* // Page 2:
|
|
296
|
+
* const r2 = await client.messages.search({
|
|
297
|
+
* query: 'delivery',
|
|
298
|
+
* from: 'evrim.a@first.bet',
|
|
299
|
+
* size: 25,
|
|
300
|
+
* from_offset: 25,
|
|
301
|
+
* });
|
|
150
302
|
*/
|
|
151
303
|
async search(params) {
|
|
152
|
-
const
|
|
153
|
-
if (params.query) {
|
|
154
|
-
|
|
304
|
+
const parts = [];
|
|
305
|
+
if (params.query && params.query.trim().length > 0) {
|
|
306
|
+
parts.push(params.query);
|
|
307
|
+
}
|
|
308
|
+
if (params.from) {
|
|
309
|
+
// Quote multi-word values so KQL parses them as a single token.
|
|
310
|
+
const v = params.from.includes(' ') ? `"${params.from}"` : params.from;
|
|
311
|
+
parts.push(`from:${v}`);
|
|
312
|
+
}
|
|
313
|
+
if (params.to) {
|
|
314
|
+
const v = params.to.includes(' ') ? `"${params.to}"` : params.to;
|
|
315
|
+
parts.push(`to:${v}`);
|
|
155
316
|
}
|
|
156
317
|
if (params.mentions) {
|
|
157
|
-
|
|
318
|
+
// Per docs: must be the user ID without dashes.
|
|
319
|
+
parts.push(`mentions:${params.mentions.replace(/-/g, '')}`);
|
|
158
320
|
}
|
|
159
|
-
if (params.
|
|
160
|
-
|
|
161
|
-
queryParts.push(`sent>=${dateOnly}`);
|
|
321
|
+
if (params.unread) {
|
|
322
|
+
parts.push(`IsRead:false`);
|
|
162
323
|
}
|
|
163
|
-
if (params.
|
|
164
|
-
|
|
324
|
+
if (params.hasAttachment) {
|
|
325
|
+
parts.push(`hasAttachment:true`);
|
|
165
326
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
if (scope === 'channels') {
|
|
169
|
-
enhancedQuery = `${enhancedQuery} AND (channelIdentity/channelId:*)`;
|
|
327
|
+
if (params.sentAfter) {
|
|
328
|
+
parts.push(`sent>${params.sentAfter.split('T')[0]}`);
|
|
170
329
|
}
|
|
171
|
-
|
|
172
|
-
|
|
330
|
+
if (params.sentBefore) {
|
|
331
|
+
parts.push(`sent<${params.sentBefore.split('T')[0]}`);
|
|
173
332
|
}
|
|
333
|
+
// KQL combines tokens with implicit AND. We use explicit AND for
|
|
334
|
+
// readability in error messages and tests.
|
|
335
|
+
const queryString = parts.length > 0 ? parts.join(' AND ') : '*';
|
|
174
336
|
const searchRequest = {
|
|
175
337
|
entityTypes: ['chatMessage'],
|
|
176
|
-
query: {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
enableTopResults: params.enableTopResults
|
|
338
|
+
query: { queryString },
|
|
339
|
+
from: params.from_offset ?? 0,
|
|
340
|
+
size: params.size ?? 25,
|
|
341
|
+
// Default to recency ordering (Graph's default for chatMessage). Caller
|
|
342
|
+
// can opt into relevance ordering with `enableTopResults: true`.
|
|
343
|
+
enableTopResults: params.enableTopResults ?? false,
|
|
182
344
|
};
|
|
183
|
-
return this.client
|
|
345
|
+
return this.client
|
|
346
|
+
.api('/search/query')
|
|
347
|
+
.version('beta')
|
|
348
|
+
.post({ requests: [searchRequest] });
|
|
184
349
|
}
|
|
185
350
|
/**
|
|
186
351
|
* Set a reaction on a message.
|
|
@@ -221,18 +386,18 @@ export class MessagesApi extends BaseApi {
|
|
|
221
386
|
if (matches.length === 0) {
|
|
222
387
|
return { content: message, mentions: [], contentType: 'text' };
|
|
223
388
|
}
|
|
224
|
-
// Resolve unique emails to user info
|
|
389
|
+
// Resolve unique emails to user info, in parallel.
|
|
225
390
|
const uniqueEmails = [...new Set(matches.map((m) => m[1]))];
|
|
226
|
-
const
|
|
227
|
-
for (const email of uniqueEmails) {
|
|
391
|
+
const resolved = await Promise.all(uniqueEmails.map(async (email) => {
|
|
228
392
|
try {
|
|
229
393
|
const user = (await this.client.api(`/users/${email}`).select('id,displayName').get());
|
|
230
|
-
|
|
394
|
+
return [email, { id: user.id, displayName: user.displayName || email }];
|
|
231
395
|
}
|
|
232
396
|
catch {
|
|
233
|
-
|
|
397
|
+
return [email, null];
|
|
234
398
|
}
|
|
235
|
-
}
|
|
399
|
+
}));
|
|
400
|
+
const userMap = new Map(resolved);
|
|
236
401
|
// Assign IDs to resolvable mentions in forward order
|
|
237
402
|
const mentionData = [];
|
|
238
403
|
let mentionId = 0;
|
package/dist/api/messages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/api/messages.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/api/messages.ts"],"names":[],"mappings":"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"}
|
package/dist/api/users.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { BaseApi } from './base.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type GetCurrentUserParams, type GetUserParams, type SearchUsersParams, type User } from '../types/index.js';
|
|
3
3
|
import type { SetPreferredPresenceParams } from '../types/presence.js';
|
|
4
4
|
/**
|
|
5
5
|
* API for user operations.
|
|
6
6
|
*/
|
|
7
7
|
export declare class UsersApi extends BaseApi {
|
|
8
8
|
/**
|
|
9
|
-
* Get the current authenticated user.
|
|
9
|
+
* Get the current authenticated user. Uses a sensible `$select` projection
|
|
10
|
+
* by default; pass `select` to override.
|
|
10
11
|
*/
|
|
11
|
-
getCurrentUser(): Promise<User>;
|
|
12
|
+
getCurrentUser(params?: GetCurrentUserParams): Promise<User>;
|
|
12
13
|
/**
|
|
13
14
|
* Get a user by ID or userPrincipalName.
|
|
14
15
|
*/
|
package/dist/api/users.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/api/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/api/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;GAEG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC;;;OAGG;IACU,cAAc,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7E;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD;;OAEG;IACU,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAU/D;;OAEG;IACU,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;CAOrF"}
|
package/dist/api/users.js
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
import { BaseApi } from './base.js';
|
|
2
|
+
import { DEFAULT_USER_SEARCH_SELECT, DEFAULT_USER_SELECT, } from '../types/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* API for user operations.
|
|
4
5
|
*/
|
|
5
6
|
export class UsersApi extends BaseApi {
|
|
6
7
|
/**
|
|
7
|
-
* Get the current authenticated user.
|
|
8
|
+
* Get the current authenticated user. Uses a sensible `$select` projection
|
|
9
|
+
* by default; pass `select` to override.
|
|
8
10
|
*/
|
|
9
|
-
async getCurrentUser() {
|
|
10
|
-
return this.client
|
|
11
|
+
async getCurrentUser(params = {}) {
|
|
12
|
+
return this.client
|
|
13
|
+
.api('/me')
|
|
14
|
+
.select((params.select ?? DEFAULT_USER_SELECT).join(','))
|
|
15
|
+
.get();
|
|
11
16
|
}
|
|
12
17
|
/**
|
|
13
18
|
* Get a user by ID or userPrincipalName.
|
|
14
19
|
*/
|
|
15
20
|
async get(params) {
|
|
16
|
-
return this.client
|
|
21
|
+
return this.client
|
|
22
|
+
.api(`/users/${params.userId}`)
|
|
23
|
+
.select((params.select ?? DEFAULT_USER_SELECT).join(','))
|
|
24
|
+
.get();
|
|
17
25
|
}
|
|
18
26
|
/**
|
|
19
27
|
* Search for users by name or email.
|
|
@@ -22,6 +30,7 @@ export class UsersApi extends BaseApi {
|
|
|
22
30
|
const response = (await this.client
|
|
23
31
|
.api('/users?ConsistencyLevel=eventual')
|
|
24
32
|
.search(`"mail:${params.query}" OR "displayName:${params.query}"`)
|
|
33
|
+
.select((params.select ?? DEFAULT_USER_SEARCH_SELECT).join(','))
|
|
25
34
|
.get());
|
|
26
35
|
return response.value ?? [];
|
|
27
36
|
}
|
package/dist/api/users.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/api/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/api/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,GAMpB,MAAM,mBAAmB,CAAC;AAG3B;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,OAAO;IACnC;;;OAGG;IACI,KAAK,CAAC,cAAc,CAAC,SAA+B,EAAE;QAC3D,OAAO,IAAI,CAAC,MAAM;aACf,GAAG,CAAC,KAAK,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACxD,GAAG,EAAmB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,GAAG,CAAC,MAAqB;QACpC,OAAO,IAAI,CAAC,MAAM;aACf,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC;aAC9B,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACxD,GAAG,EAAmB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM,CAAC,MAAyB;QAC3C,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM;aAChC,GAAG,CAAC,kCAAkC,CAAC;aACvC,MAAM,CAAC,SAAS,MAAM,CAAC,KAAK,qBAAqB,MAAM,CAAC,KAAK,GAAG,CAAC;aACjE,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,0BAA0B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/D,GAAG,EAAE,CAA2B,CAAC;QAEpC,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAClE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,IAAI,CAAC;YAClE,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY;YAChD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;SAC9C,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/types/calendar.d.ts
CHANGED
|
@@ -7,7 +7,16 @@ export interface GetCalendarEventsParams {
|
|
|
7
7
|
limit?: number;
|
|
8
8
|
/** Filter by event subject */
|
|
9
9
|
subject?: string;
|
|
10
|
+
/** Override the default `$select` projection. */
|
|
11
|
+
select?: string[];
|
|
12
|
+
/** Opaque `@odata.nextLink` from a previous response — when set, all other params are ignored. */
|
|
13
|
+
nextLink?: string;
|
|
10
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Default projection for calendar event lists. Matches what `optimizeEvent`
|
|
17
|
+
* in the CLI strips to. Saves ~80% bandwidth vs. the full Event shape.
|
|
18
|
+
*/
|
|
19
|
+
export declare const DEFAULT_EVENT_SELECT: string[];
|
|
11
20
|
export interface CreateCalendarEventParams {
|
|
12
21
|
subject: string;
|
|
13
22
|
/** ISO datetime */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/types/calendar.ts"],"names":[],"mappings":"AACA,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,GACf,MAAM,kCAAkC,CAAC;AAM1C,MAAM,WAAW,uBAAuB;IACtC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/types/calendar.ts"],"names":[],"mappings":"AACA,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,GACf,MAAM,kCAAkC,CAAC;AAM1C,MAAM,WAAW,uBAAuB;IACtC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,UAShC,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,CACR,MAAM,GACN;QACE,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;KAC7C,CACJ,EAAE,CAAC;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;KAC/B,EAAE,CAAC;IACJ,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,kBAAkB,CAAC,EAAE;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,SAAS,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;SAAE,EAAE,CAAC;KACtE,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,CACR,MAAM,GACN;QACE,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;KAC7C,CACJ,EAAE,CAAC;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,mBAAmB,CAAC;IACrD,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
|
package/dist/types/calendar.js
CHANGED
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Default projection for calendar event lists. Matches what `optimizeEvent`
|
|
3
|
+
* in the CLI strips to. Saves ~80% bandwidth vs. the full Event shape.
|
|
4
|
+
*/
|
|
5
|
+
export const DEFAULT_EVENT_SELECT = [
|
|
6
|
+
'id',
|
|
7
|
+
'subject',
|
|
8
|
+
'start',
|
|
9
|
+
'end',
|
|
10
|
+
'location',
|
|
11
|
+
'attendees',
|
|
12
|
+
'isOnlineMeeting',
|
|
13
|
+
'onlineMeeting',
|
|
14
|
+
];
|
|
2
15
|
//# sourceMappingURL=calendar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/types/calendar.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/types/calendar.ts"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI;IACJ,SAAS;IACT,OAAO;IACP,KAAK;IACL,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,eAAe;CAChB,CAAC"}
|