microsoft-graph-client 1.0.1

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 (117) hide show
  1. package/dist/api/base.d.ts +10 -0
  2. package/dist/api/base.d.ts.map +1 -0
  3. package/dist/api/base.js +11 -0
  4. package/dist/api/base.js.map +1 -0
  5. package/dist/api/calendar.d.ts +24 -0
  6. package/dist/api/calendar.d.ts.map +1 -0
  7. package/dist/api/calendar.js +117 -0
  8. package/dist/api/calendar.js.map +1 -0
  9. package/dist/api/chats.d.ts +20 -0
  10. package/dist/api/chats.d.ts.map +1 -0
  11. package/dist/api/chats.js +71 -0
  12. package/dist/api/chats.js.map +1 -0
  13. package/dist/api/files.d.ts +24 -0
  14. package/dist/api/files.d.ts.map +1 -0
  15. package/dist/api/files.js +77 -0
  16. package/dist/api/files.js.map +1 -0
  17. package/dist/api/index.d.ts +9 -0
  18. package/dist/api/index.d.ts.map +1 -0
  19. package/dist/api/index.js +9 -0
  20. package/dist/api/index.js.map +1 -0
  21. package/dist/api/mail.d.ts +16 -0
  22. package/dist/api/mail.d.ts.map +1 -0
  23. package/dist/api/mail.js +74 -0
  24. package/dist/api/mail.js.map +1 -0
  25. package/dist/api/messages.d.ts +36 -0
  26. package/dist/api/messages.d.ts.map +1 -0
  27. package/dist/api/messages.js +227 -0
  28. package/dist/api/messages.js.map +1 -0
  29. package/dist/api/transcripts.d.ts +20 -0
  30. package/dist/api/transcripts.d.ts.map +1 -0
  31. package/dist/api/transcripts.js +53 -0
  32. package/dist/api/transcripts.js.map +1 -0
  33. package/dist/api/users.d.ts +25 -0
  34. package/dist/api/users.d.ts.map +1 -0
  35. package/dist/api/users.js +39 -0
  36. package/dist/api/users.js.map +1 -0
  37. package/dist/auth/authenticator.d.ts +48 -0
  38. package/dist/auth/authenticator.d.ts.map +1 -0
  39. package/dist/auth/authenticator.js +159 -0
  40. package/dist/auth/authenticator.js.map +1 -0
  41. package/dist/auth/index.d.ts +2 -0
  42. package/dist/auth/index.d.ts.map +1 -0
  43. package/dist/auth/index.js +2 -0
  44. package/dist/auth/index.js.map +1 -0
  45. package/dist/client.d.ts +100 -0
  46. package/dist/client.d.ts.map +1 -0
  47. package/dist/client.js +161 -0
  48. package/dist/client.js.map +1 -0
  49. package/dist/index.d.ts +9 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +10 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/types/calendar.d.ts +42 -0
  54. package/dist/types/calendar.d.ts.map +1 -0
  55. package/dist/types/calendar.js +2 -0
  56. package/dist/types/calendar.js.map +1 -0
  57. package/dist/types/chat.d.ts +21 -0
  58. package/dist/types/chat.d.ts.map +1 -0
  59. package/dist/types/chat.js +2 -0
  60. package/dist/types/chat.js.map +1 -0
  61. package/dist/types/common.d.ts +77 -0
  62. package/dist/types/common.d.ts.map +1 -0
  63. package/dist/types/common.js +19 -0
  64. package/dist/types/common.js.map +1 -0
  65. package/dist/types/file.d.ts +34 -0
  66. package/dist/types/file.d.ts.map +1 -0
  67. package/dist/types/file.js +5 -0
  68. package/dist/types/file.js.map +1 -0
  69. package/dist/types/index.d.ts +11 -0
  70. package/dist/types/index.d.ts.map +1 -0
  71. package/dist/types/index.js +2 -0
  72. package/dist/types/index.js.map +1 -0
  73. package/dist/types/mail.d.ts +25 -0
  74. package/dist/types/mail.d.ts.map +1 -0
  75. package/dist/types/mail.js +2 -0
  76. package/dist/types/mail.js.map +1 -0
  77. package/dist/types/message.d.ts +90 -0
  78. package/dist/types/message.d.ts.map +1 -0
  79. package/dist/types/message.js +2 -0
  80. package/dist/types/message.js.map +1 -0
  81. package/dist/types/presence.d.ts +15 -0
  82. package/dist/types/presence.d.ts.map +1 -0
  83. package/dist/types/presence.js +5 -0
  84. package/dist/types/presence.js.map +1 -0
  85. package/dist/types/transcript.d.ts +12 -0
  86. package/dist/types/transcript.d.ts.map +1 -0
  87. package/dist/types/transcript.js +2 -0
  88. package/dist/types/transcript.js.map +1 -0
  89. package/dist/types/user.d.ts +9 -0
  90. package/dist/types/user.d.ts.map +1 -0
  91. package/dist/types/user.js +2 -0
  92. package/dist/types/user.js.map +1 -0
  93. package/dist/utils/index.d.ts +7 -0
  94. package/dist/utils/index.d.ts.map +1 -0
  95. package/dist/utils/index.js +6 -0
  96. package/dist/utils/index.js.map +1 -0
  97. package/dist/utils/markdown.d.ts +13 -0
  98. package/dist/utils/markdown.d.ts.map +1 -0
  99. package/dist/utils/markdown.js +106 -0
  100. package/dist/utils/markdown.js.map +1 -0
  101. package/dist/utils/odata.d.ts +17 -0
  102. package/dist/utils/odata.d.ts.map +1 -0
  103. package/dist/utils/odata.js +19 -0
  104. package/dist/utils/odata.js.map +1 -0
  105. package/dist/utils/sharepoint.d.ts +11 -0
  106. package/dist/utils/sharepoint.d.ts.map +1 -0
  107. package/dist/utils/sharepoint.js +17 -0
  108. package/dist/utils/sharepoint.js.map +1 -0
  109. package/dist/utils/teams.d.ts +34 -0
  110. package/dist/utils/teams.d.ts.map +1 -0
  111. package/dist/utils/teams.js +67 -0
  112. package/dist/utils/teams.js.map +1 -0
  113. package/dist/utils/vtt.d.ts +7 -0
  114. package/dist/utils/vtt.d.ts.map +1 -0
  115. package/dist/utils/vtt.js +43 -0
  116. package/dist/utils/vtt.js.map +1 -0
  117. package/package.json +54 -0
@@ -0,0 +1,10 @@
1
+ import type { Client } from '@microsoft/microsoft-graph-client';
2
+ /**
3
+ * Base class for all domain APIs.
4
+ * Provides access to the Microsoft Graph SDK client.
5
+ */
6
+ export declare class BaseApi {
7
+ protected client: Client;
8
+ constructor(client: Client);
9
+ }
10
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAEhE;;;GAGG;AACH,qBAAa,OAAO;IAClB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEN,MAAM,EAAE,MAAM;CAGlC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Base class for all domain APIs.
3
+ * Provides access to the Microsoft Graph SDK client.
4
+ */
5
+ export class BaseApi {
6
+ client;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ }
11
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,OAAO;IACR,MAAM,CAAS;IAEzB,YAAmB,MAAc;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import { BaseApi } from './base.js';
2
+ import type { CancelCalendarEventParams, CreateCalendarEventParams, Event, FindMeetingTimesParams, GetCalendarEventsParams, MeetingTimeSuggestionsResult } from '../types/index.js';
3
+ /**
4
+ * API for calendar operations.
5
+ */
6
+ export declare class CalendarApi extends BaseApi {
7
+ /**
8
+ * Get calendar events within a time range.
9
+ */
10
+ getEvents(params?: GetCalendarEventsParams): Promise<Event[]>;
11
+ /**
12
+ * Create a calendar event.
13
+ */
14
+ createEvent(params: CreateCalendarEventParams): Promise<Event>;
15
+ /**
16
+ * Find available meeting times for attendees.
17
+ */
18
+ findMeetingTimes(params: FindMeetingTimesParams): Promise<MeetingTimeSuggestionsResult>;
19
+ /**
20
+ * Cancel a calendar event.
21
+ */
22
+ cancelEvent(params: CancelCalendarEventParams): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/api/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EACzB,KAAK,EACL,sBAAsB,EACtB,uBAAuB,EAEvB,4BAA4B,EAC7B,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC;;OAEG;IACU,SAAS,CAAC,MAAM,GAAE,uBAA4B,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAyB9E;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC;IAiD3E;;OAEG;IACU,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAgCpG;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAI3E"}
@@ -0,0 +1,117 @@
1
+ import { BaseApi } from './base.js';
2
+ /**
3
+ * API for calendar operations.
4
+ */
5
+ export class CalendarApi extends BaseApi {
6
+ /**
7
+ * Get calendar events within a time range.
8
+ */
9
+ async getEvents(params = {}) {
10
+ const limit = params.limit || 50;
11
+ const now = new Date().toISOString();
12
+ const thirtyDaysFromNow = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString();
13
+ const startDateTime = params.from || now;
14
+ const endDateTime = params.to || thirtyDaysFromNow;
15
+ let query = this.client
16
+ .api('/me/calendarView')
17
+ .query({
18
+ startDateTime,
19
+ endDateTime,
20
+ })
21
+ .top(limit)
22
+ .orderby('start/dateTime');
23
+ if (params.subject) {
24
+ query = query.filter(`contains(subject, '${params.subject}')`);
25
+ }
26
+ const response = (await query.get());
27
+ return response.value || [];
28
+ }
29
+ /**
30
+ * Create a calendar event.
31
+ */
32
+ async createEvent(params) {
33
+ const event = {
34
+ subject: params.subject,
35
+ start: {
36
+ dateTime: params.startDateTime,
37
+ timeZone: 'UTC',
38
+ },
39
+ end: {
40
+ dateTime: params.endDateTime,
41
+ timeZone: 'UTC',
42
+ },
43
+ body: {
44
+ contentType: 'text',
45
+ content: params.body,
46
+ },
47
+ };
48
+ if (params.attendees && params.attendees.length > 0) {
49
+ event.attendees = params.attendees.map((attendee) => {
50
+ if (typeof attendee === 'string') {
51
+ return {
52
+ emailAddress: { address: attendee },
53
+ type: 'required',
54
+ };
55
+ }
56
+ return {
57
+ emailAddress: {
58
+ address: attendee.email,
59
+ ...(attendee.name && { name: attendee.name }),
60
+ },
61
+ type: attendee.type || 'required',
62
+ };
63
+ });
64
+ }
65
+ if (params.location) {
66
+ event.location = {
67
+ displayName: params.location,
68
+ };
69
+ }
70
+ if (params.isOnlineMeeting) {
71
+ event.isOnlineMeeting = true;
72
+ event.onlineMeetingProvider = 'teamsForBusiness';
73
+ }
74
+ return this.client.api('/me/events').post(event);
75
+ }
76
+ /**
77
+ * Find available meeting times for attendees.
78
+ */
79
+ async findMeetingTimes(params) {
80
+ const requestBody = {
81
+ attendees: params.attendees.map((attendee) => ({
82
+ type: attendee.type,
83
+ emailAddress: {
84
+ address: attendee.email,
85
+ },
86
+ })),
87
+ timeConstraint: {
88
+ activityDomain: 'work',
89
+ timeSlots: [
90
+ {
91
+ start: {
92
+ dateTime: params.startDateTime,
93
+ timeZone: 'UTC',
94
+ },
95
+ end: {
96
+ dateTime: params.endDateTime,
97
+ timeZone: 'UTC',
98
+ },
99
+ },
100
+ ],
101
+ },
102
+ meetingDuration: params.meetingDuration,
103
+ isOrganizerOptional: true,
104
+ minimumAttendeePercentage: 100,
105
+ maxCandidates: 10,
106
+ };
107
+ return this.client.api('/me/findMeetingTimes').post(requestBody);
108
+ }
109
+ /**
110
+ * Cancel a calendar event.
111
+ */
112
+ async cancelEvent(params) {
113
+ const body = params.comment ? { Comment: params.comment } : {};
114
+ await this.client.api(`/me/events/${params.eventId}/cancel`).post(body);
115
+ }
116
+ }
117
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/api/calendar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { BaseApi } from './base.js';
2
+ import type { Chat, CreateChatParams, GetChatParams, SearchChatsParams, SearchChatsResult } from '../types/index.js';
3
+ /**
4
+ * API for chat operations.
5
+ */
6
+ export declare class ChatsApi extends BaseApi {
7
+ /**
8
+ * Get a chat by ID with members expanded.
9
+ */
10
+ get(params: GetChatParams): Promise<Chat>;
11
+ /**
12
+ * Search for chats by topic, member name, or chat type.
13
+ */
14
+ search(params: SearchChatsParams): Promise<SearchChatsResult>;
15
+ /**
16
+ * Create a new chat (1:1 or group).
17
+ */
18
+ create(params: CreateChatParams): Promise<Chat>;
19
+ }
20
+ //# sourceMappingURL=chats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../src/api/chats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EACV,IAAI,EACJ,gBAAgB,EAChB,aAAa,EAEb,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;OAEG;IACU,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsD1E;;OAEG;IACU,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAS7D"}
@@ -0,0 +1,71 @@
1
+ import { BaseApi } from './base.js';
2
+ import { escapeODataString } from '../utils/odata.js';
3
+ /**
4
+ * API for chat operations.
5
+ */
6
+ export class ChatsApi extends BaseApi {
7
+ /**
8
+ * Get a chat by ID with members expanded.
9
+ */
10
+ async get(params) {
11
+ return this.client.api(`/me/chats/${params.chatId}`).expand('members').get();
12
+ }
13
+ /**
14
+ * Search for chats by topic, member name, or chat type.
15
+ */
16
+ async search(params) {
17
+ let query = this.client.api('/me/chats').expand('members');
18
+ // Apply limit (default 20 if not specified)
19
+ const limit = params.limit || 20;
20
+ query = query.top(limit);
21
+ // Apply skipToken if provided (for pagination)
22
+ if (params.skipToken) {
23
+ query = query.query({ $skiptoken: params.skipToken });
24
+ }
25
+ const filters = [];
26
+ if (params.searchTerm) {
27
+ // Escape special characters (e.g., apostrophes) to prevent OData injection
28
+ const escapedTerm = escapeODataString(params.searchTerm);
29
+ filters.push(`contains(topic, '${escapedTerm}')`);
30
+ }
31
+ if (params.memberName) {
32
+ // Escape special characters (e.g., apostrophes) to prevent OData injection
33
+ const escapedName = escapeODataString(params.memberName);
34
+ filters.push(`members/any(c:contains(c/displayName, '${escapedName}'))`);
35
+ }
36
+ if (params.chatTypes && params.chatTypes.length > 0) {
37
+ // Build filter for chat types using 'or' operator
38
+ const chatTypeFilters = params.chatTypes.map((type) => `chatType eq '${type}'`).join(' or ');
39
+ filters.push(`(${chatTypeFilters})`);
40
+ }
41
+ if (filters.length > 0) {
42
+ query = query.filter(filters.join(' and '));
43
+ }
44
+ const response = (await query.get());
45
+ // Extract nextToken from @odata.nextLink if present
46
+ let nextToken;
47
+ if (response['@odata.nextLink']) {
48
+ const url = new URL(response['@odata.nextLink']);
49
+ const token = url.searchParams.get('$skiptoken');
50
+ if (token) {
51
+ nextToken = token;
52
+ }
53
+ }
54
+ return {
55
+ chats: response.value || [],
56
+ nextToken,
57
+ };
58
+ }
59
+ /**
60
+ * Create a new chat (1:1 or group).
61
+ */
62
+ async create(params) {
63
+ const payload = {
64
+ chatType: params.chatType,
65
+ members: params.members,
66
+ ...(params.topic && { topic: params.topic }),
67
+ };
68
+ return this.client.api('/chats').post(payload);
69
+ }
70
+ }
71
+ //# sourceMappingURL=chats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/api/chats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { BaseApi } from './base.js';
2
+ import type { DownloadSharePointFileParams, DownloadSharePointFileResult, GrantFilePermissionParams, UpdateSharePointFileParams, UpdateSharePointFileResult, UploadToSharePointParams, UploadToSharePointResult } from '../types/index.js';
3
+ /**
4
+ * API for SharePoint/OneDrive file operations.
5
+ */
6
+ export declare class FilesApi extends BaseApi {
7
+ /**
8
+ * Download a file from SharePoint using its URL.
9
+ */
10
+ download(params: DownloadSharePointFileParams): Promise<DownloadSharePointFileResult>;
11
+ /**
12
+ * Upload a file to the user's OneDrive and get a sharing link.
13
+ */
14
+ upload(params: UploadToSharePointParams): Promise<UploadToSharePointResult>;
15
+ /**
16
+ * Update an existing file's content.
17
+ */
18
+ update(params: UpdateSharePointFileParams): Promise<UpdateSharePointFileResult>;
19
+ /**
20
+ * Grant file permissions to users.
21
+ */
22
+ grantPermission(params: GrantFilePermissionParams): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/api/files.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EACV,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAG3B;;GAEG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC;;OAEG;IACU,QAAQ,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC;IA0BlG;;OAEG;IACU,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAwBxF;;OAEG;IACU,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAY5F;;OAEG;IACU,eAAe,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ/E"}
@@ -0,0 +1,77 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { basename } from 'node:path';
3
+ import { BaseApi } from './base.js';
4
+ import { encodeSharePointUrl } from '../utils/sharepoint.js';
5
+ /**
6
+ * API for SharePoint/OneDrive file operations.
7
+ */
8
+ export class FilesApi extends BaseApi {
9
+ /**
10
+ * Download a file from SharePoint using its URL.
11
+ */
12
+ async download(params) {
13
+ const encodedUrl = encodeSharePointUrl(params.contentUrl);
14
+ // Get driveItem metadata including IDs for subsequent operations
15
+ const driveItem = (await this.client
16
+ .api(`/shares/${encodedUrl}/driveItem`)
17
+ .select('id,name,parentReference')
18
+ .get());
19
+ // Download content
20
+ const response = (await this.client
21
+ .api(`/shares/${encodedUrl}/driveItem/content`)
22
+ .responseType('arraybuffer')
23
+ .get());
24
+ const data = Buffer.from(response);
25
+ return {
26
+ data,
27
+ filename: driveItem.name,
28
+ size: data.length,
29
+ itemId: driveItem.id,
30
+ driveId: driveItem.parentReference?.driveId,
31
+ };
32
+ }
33
+ /**
34
+ * Upload a file to the user's OneDrive and get a sharing link.
35
+ */
36
+ async upload(params) {
37
+ const filename = basename(params.filePath);
38
+ const fileContent = await readFile(params.filePath);
39
+ // Step 1: Upload file to OneDrive
40
+ const uploadResponse = (await this.client.api(`/me/drive/root:/${filename}:/content`).put(fileContent));
41
+ // Step 2: Create a sharing link
42
+ const linkResponse = (await this.client.api(`/me/drive/items/${uploadResponse.id}/createLink`).post({
43
+ type: 'view',
44
+ scope: 'organization',
45
+ }));
46
+ return {
47
+ itemId: uploadResponse.id,
48
+ driveId: uploadResponse.parentReference?.driveId,
49
+ shareUrl: linkResponse.link?.webUrl || uploadResponse.webUrl,
50
+ };
51
+ }
52
+ /**
53
+ * Update an existing file's content.
54
+ */
55
+ async update(params) {
56
+ const fileContent = await readFile(params.filePath);
57
+ const result = (await this.client
58
+ .api(`/drives/${params.driveId}/items/${params.itemId}/content`)
59
+ .put(fileContent));
60
+ return {
61
+ filename: result.name,
62
+ size: result.size,
63
+ };
64
+ }
65
+ /**
66
+ * Grant file permissions to users.
67
+ */
68
+ async grantPermission(params) {
69
+ await this.client.api(`/drives/${params.driveId}/items/${params.itemId}/invite`).post({
70
+ recipients: params.emails.map((email) => ({ email })),
71
+ roles: [params.role],
72
+ sendInvitation: true,
73
+ requireSignIn: true,
74
+ });
75
+ }
76
+ }
77
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/api/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { BaseApi } from './base.js';
2
+ export { CalendarApi } from './calendar.js';
3
+ export { ChatsApi } from './chats.js';
4
+ export { FilesApi } from './files.js';
5
+ export { MailApi } from './mail.js';
6
+ export { MessagesApi } from './messages.js';
7
+ export { TranscriptsApi } from './transcripts.js';
8
+ export { UsersApi } from './users.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { BaseApi } from './base.js';
2
+ export { CalendarApi } from './calendar.js';
3
+ export { ChatsApi } from './chats.js';
4
+ export { FilesApi } from './files.js';
5
+ export { MailApi } from './mail.js';
6
+ export { MessagesApi } from './messages.js';
7
+ export { TranscriptsApi } from './transcripts.js';
8
+ export { UsersApi } from './users.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { BaseApi } from './base.js';
2
+ import type { GraphApiResponse, ListMailsParams, Message, SendMailParams } from '../types/index.js';
3
+ /**
4
+ * API for mail operations.
5
+ */
6
+ export declare class MailApi extends BaseApi {
7
+ /**
8
+ * List emails from the user's mailbox.
9
+ */
10
+ list(params?: ListMailsParams): Promise<GraphApiResponse<Message>>;
11
+ /**
12
+ * Send an email.
13
+ */
14
+ send(params: SendMailParams): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=mail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/api/mail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpG;;GAEG;AACH,qBAAa,OAAQ,SAAQ,OAAO;IAClC;;OAEG;IACU,IAAI,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAiDnF;;OAEG;IACU,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAgCzD"}
@@ -0,0 +1,74 @@
1
+ import { BaseApi } from './base.js';
2
+ /**
3
+ * API for mail operations.
4
+ */
5
+ export class MailApi extends BaseApi {
6
+ /**
7
+ * List emails from the user's mailbox.
8
+ */
9
+ async list(params = {}) {
10
+ const limit = params.limit || 20;
11
+ const includeBody = params.includeBody || false;
12
+ const bodyFormat = params.bodyFormat || 'html';
13
+ // Build select fields based on whether full body is requested
14
+ const selectFields = includeBody
15
+ ? 'id,subject,from,receivedDateTime,body,bodyPreview,isRead,hasAttachments'
16
+ : 'id,subject,from,receivedDateTime,bodyPreview,isRead,hasAttachments';
17
+ let query = this.client.api('/me/messages').top(limit).orderby('receivedDateTime desc').select(selectFields);
18
+ // Set body content format preference (only applies when body is included in select)
19
+ if (includeBody && bodyFormat === 'text') {
20
+ query = query.header('Prefer', 'outlook.body-content-type="text"');
21
+ }
22
+ // Build filter conditions - receivedDateTime must be first since it's in orderby
23
+ const filters = [];
24
+ if (params.since) {
25
+ filters.push(`receivedDateTime ge ${params.since}`);
26
+ }
27
+ else {
28
+ // Use a broad date range if not specified to satisfy API requirement
29
+ filters.push(`receivedDateTime ge 1900-01-01T00:00:00Z`);
30
+ }
31
+ if (params.until) {
32
+ filters.push(`receivedDateTime le ${params.until}`);
33
+ }
34
+ // Other filters must come after receivedDateTime (the orderby field)
35
+ if (params.from) {
36
+ filters.push(`from/emailAddress/address eq '${params.from}'`);
37
+ }
38
+ if (params.unreadOnly) {
39
+ filters.push('isRead eq false');
40
+ }
41
+ if (params.hasAttachments !== undefined) {
42
+ filters.push(`hasAttachments eq ${params.hasAttachments}`);
43
+ }
44
+ query = query.filter(filters.join(' and '));
45
+ return query.get();
46
+ }
47
+ /**
48
+ * Send an email.
49
+ */
50
+ async send(params) {
51
+ const message = {
52
+ subject: params.subject,
53
+ body: {
54
+ contentType: params.bodyType || 'text',
55
+ content: params.body,
56
+ },
57
+ toRecipients: params.to.map((email) => ({
58
+ emailAddress: { address: email },
59
+ })),
60
+ };
61
+ if (params.cc && params.cc.length > 0) {
62
+ message.ccRecipients = params.cc.map((email) => ({
63
+ emailAddress: { address: email },
64
+ }));
65
+ }
66
+ if (params.bcc && params.bcc.length > 0) {
67
+ message.bccRecipients = params.bcc.map((email) => ({
68
+ emailAddress: { address: email },
69
+ }));
70
+ }
71
+ await this.client.api('/me/sendMail').post({ message });
72
+ }
73
+ }
74
+ //# sourceMappingURL=mail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/api/mail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { BaseApi } from './base.js';
2
+ import type { ChatMessage, GetChatMessagesParams, SearchMessagesParams, SearchResponse, SendChatMessageParams, SetMessageReactionParams, UnsetMessageReactionParams, UpdateChatMessageParams } from '../types/index.js';
3
+ /**
4
+ * API for message operations.
5
+ */
6
+ export declare class MessagesApi extends BaseApi {
7
+ /**
8
+ * Get messages from a chat.
9
+ */
10
+ getChatMessages(params: GetChatMessagesParams): Promise<ChatMessage[]>;
11
+ /**
12
+ * Send a message to a chat.
13
+ */
14
+ sendChatMessage(params: SendChatMessageParams): Promise<ChatMessage>;
15
+ /**
16
+ * Update an existing chat message.
17
+ */
18
+ updateChatMessage(params: UpdateChatMessageParams): Promise<void>;
19
+ /**
20
+ * Search messages across chats and channels.
21
+ */
22
+ search(params: SearchMessagesParams): Promise<SearchResponse>;
23
+ /**
24
+ * Set a reaction on a message.
25
+ */
26
+ setReaction(params: SetMessageReactionParams): Promise<void>;
27
+ /**
28
+ * Remove a reaction from a message.
29
+ */
30
+ unsetReaction(params: UnsetMessageReactionParams): Promise<void>;
31
+ /**
32
+ * Process inline @email mentions in message text.
33
+ */
34
+ private processInlineMentions;
35
+ }
36
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +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,qBAAqB,EAGrB,oBAAoB,EAEpB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC;;OAEG;IACU,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAkCnF;;OAEG;IACU,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IA2DjF;;OAEG;IACU,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B9E;;OAEG;IACU,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IA0C1E;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE;;OAEG;IACU,aAAa,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E;;OAEG;YACW,qBAAqB;CAgEpC"}