microsoft-graph-client 1.0.8 → 1.0.10

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/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export { GraphClient } from './client.js';
2
2
  export { BaseApi, CalendarApi, ChatsApi, FilesApi, MailApi, MessagesApi, TranscriptsApi, UsersApi, } from './api/index.js';
3
3
  export { Authenticator } from './auth/index.js';
4
- export { encodeSharePointUrl, escapeODataString, extractChatIdFromJoinUrl, extractMeetingInfoFromJoinUrl, markdownToHtml, parseVttToCsv, parseVttToText, sanitizeHtml, } from './utils/index.js';
5
- export type { CsvMetadata, MeetingInfo } from './utils/index.js';
4
+ export { encodeSharePointUrl, escapeODataString, extractChatIdFromJoinUrl, extractMeetingInfoFromJoinUrl, markdownToHtml, sanitizeHtml, } from './utils/index.js';
5
+ export type { MeetingInfo } from './utils/index.js';
6
6
  export type { AuthResult, GraphApiResponse, GraphClientConfig, GraphError, GetUserParams, SearchUsersParams, User, PreferredPresenceAvailability, PresenceAvailability, SetPreferredPresenceParams, SetPresenceParams, Chat, ChatType, ConversationMember, CreateChatParams, GetChatParams, SearchChatsParams, SearchChatsResult, ChatMessage, ChatMessageAttachment, ChatMessageImportance, ChatMessageInfo, ChatMessageMention, GetChatMessagesParams, ItemBody, SearchHit, SearchHitsContainer, SearchMessagesParams, SearchRequest, SearchResponse, SearchResult, SendChatMessageParams, SetMessageReactionParams, UnsetMessageReactionParams, UpdateChatMessageParams, EmailAddress, ListMailsParams, Message, SendMailParams, Attendee, CancelCalendarEventParams, CreateCalendarEventParams, DateTimeTimeZone, Event, FindMeetingTimesParams, GetCalendarEventsParams, Location, MeetingTimeSuggestion, MeetingTimeSuggestionsResult, NullableOption, DownloadSharePointFileParams, DownloadSharePointFileResult, GrantFilePermissionParams, UpdateSharePointFileParams, UpdateSharePointFileResult, UploadToSharePointParams, UploadToSharePointResult, CallTranscript, GetMeetingByJoinUrlParams, GetTranscriptContentParams, ListTranscriptsParams, OnlineMeeting, } from './types/index.js';
7
7
  export { DEFAULT_SCOPES } from './types/index.js';
8
8
  export type { Client as GraphSDKClient, ResponseType } from '@microsoft/microsoft-graph-client';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGjE,YAAY,EAEV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EAEV,aAAa,EACb,iBAAiB,EACjB,IAAI,EAEJ,6BAA6B,EAC7B,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EAEjB,IAAI,EACJ,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EAEjB,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EAEvB,YAAY,EACZ,eAAe,EACf,OAAO,EACP,cAAc,EAEd,QAAQ,EACR,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,KAAK,EACL,sBAAsB,EACtB,uBAAuB,EACvB,QAAQ,EACR,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EAEd,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EAExB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,YAAY,EAAE,MAAM,IAAI,cAAc,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,YAAY,EAEV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EAEV,aAAa,EACb,iBAAiB,EACjB,IAAI,EAEJ,6BAA6B,EAC7B,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EAEjB,IAAI,EACJ,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EAEjB,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EAEvB,YAAY,EACZ,eAAe,EACf,OAAO,EACP,cAAc,EAEd,QAAQ,EACR,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,KAAK,EACL,sBAAsB,EACtB,uBAAuB,EACvB,QAAQ,EACR,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EAEd,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EAExB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,YAAY,EAAE,MAAM,IAAI,cAAc,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,6 @@ export { BaseApi, CalendarApi, ChatsApi, FilesApi, MailApi, MessagesApi, Transcr
5
5
  // Auth exports
6
6
  export { Authenticator } from './auth/index.js';
7
7
  // Utility exports
8
- export { encodeSharePointUrl, escapeODataString, extractChatIdFromJoinUrl, extractMeetingInfoFromJoinUrl, markdownToHtml, parseVttToCsv, parseVttToText, sanitizeHtml, } from './utils/index.js';
8
+ export { encodeSharePointUrl, escapeODataString, extractChatIdFromJoinUrl, extractMeetingInfoFromJoinUrl, markdownToHtml, sanitizeHtml, } from './utils/index.js';
9
9
  export { DEFAULT_SCOPES } from './types/index.js';
10
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAqB;AACrB,OAAO,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAExB,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,kBAAkB;AAClB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,kBAAkB,CAAC;AA8E1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAqB;AACrB,OAAO,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAExB,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,kBAAkB;AAClB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,YAAY,GACb,MAAM,kBAAkB,CAAC;AA8E1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -3,6 +3,4 @@ export { escapeODataString } from './odata.js';
3
3
  export { encodeSharePointUrl } from './sharepoint.js';
4
4
  export { extractChatIdFromJoinUrl, extractMeetingInfoFromJoinUrl } from './teams.js';
5
5
  export type { MeetingInfo } from './teams.js';
6
- export { parseVttToCsv, parseVttToText } from './vtt.js';
7
- export type { CsvMetadata } from './vtt.js';
8
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AACrF,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AACrF,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -2,5 +2,4 @@ export { markdownToHtml, sanitizeHtml } from './markdown.js';
2
2
  export { escapeODataString } from './odata.js';
3
3
  export { encodeSharePointUrl } from './sharepoint.js';
4
4
  export { extractChatIdFromJoinUrl, extractMeetingInfoFromJoinUrl } from './teams.js';
5
- export { parseVttToCsv, parseVttToText } from './vtt.js';
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microsoft-graph-client",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "publish": true,
5
5
  "description": "TypeScript client library for Microsoft Graph API with built-in authentication",
6
6
  "type": "module",
@@ -25,7 +25,6 @@
25
25
  "@azure/identity-cache-persistence": "^1.2.0",
26
26
  "@microsoft/microsoft-graph-client": "^3.0.7",
27
27
  "@microsoft/microsoft-graph-types": "^2.43.1",
28
- "csv-stringify": "^6.6.0",
29
28
  "dompurify": "^3.2.6",
30
29
  "jsdom": "^26.1.0",
31
30
  "marked": "^16.0.0"
@@ -1,17 +0,0 @@
1
- /**
2
- * Parse WebVTT transcript to clean text format.
3
- * Strips timestamps, WEBVTT header, and XML-like voice tags.
4
- * Consolidates consecutive lines from the same speaker.
5
- */
6
- export declare function parseVttToText(vttContent: string): string;
7
- export interface CsvMetadata {
8
- meeting: string;
9
- start: string;
10
- end: string;
11
- }
12
- /**
13
- * Parse WebVTT transcript to CSV format with metadata header.
14
- * Each row contains: start, end, speaker, text
15
- */
16
- export declare function parseVttToCsv(vttContent: string, metadata: CsvMetadata): string;
17
- //# sourceMappingURL=vtt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vtt.d.ts","sourceRoot":"","sources":["../../src/utils/vtt.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA0CzD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AA2BD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,MAAM,CA2C/E"}
package/dist/utils/vtt.js DELETED
@@ -1,105 +0,0 @@
1
- import { stringify } from 'csv-stringify/sync';
2
- /**
3
- * Parse WebVTT transcript to clean text format.
4
- * Strips timestamps, WEBVTT header, and XML-like voice tags.
5
- * Consolidates consecutive lines from the same speaker.
6
- */
7
- export function parseVttToText(vttContent) {
8
- const lines = vttContent.split('\n');
9
- const entries = [];
10
- let currentSpeaker = '';
11
- let currentText = '';
12
- for (const line of lines) {
13
- const trimmed = line.trim();
14
- // Skip empty lines, WEBVTT header, and timestamp lines
15
- if (!trimmed || trimmed === 'WEBVTT' || /^\d{2}:\d{2}/.test(trimmed)) {
16
- continue;
17
- }
18
- // Parse voice tag: <v Speaker Name>Text</v>
19
- const voiceMatch = /^<v ([^>]+)>(.+)<\/v>$/.exec(trimmed);
20
- if (voiceMatch) {
21
- const speaker = voiceMatch[1];
22
- const text = voiceMatch[2];
23
- // If same speaker, append to current text
24
- if (speaker === currentSpeaker) {
25
- currentText += ` ${text}`;
26
- }
27
- else {
28
- // Save previous entry if exists
29
- if (currentSpeaker && currentText) {
30
- entries.push({ speaker: currentSpeaker, text: currentText.trim() });
31
- }
32
- currentSpeaker = speaker;
33
- currentText = text;
34
- }
35
- }
36
- }
37
- // Don't forget the last entry
38
- if (currentSpeaker && currentText) {
39
- entries.push({ speaker: currentSpeaker, text: currentText.trim() });
40
- }
41
- // Format as "Speaker: Text" lines
42
- return entries.map((e) => `${e.speaker}: ${e.text}`).join('\n\n');
43
- }
44
- /**
45
- * Format duration between two ISO date strings as human-readable string.
46
- * Examples: "45m", "1h", "1h 23m"
47
- */
48
- function formatDuration(startDate, endDate) {
49
- const start = new Date(startDate);
50
- const end = new Date(endDate);
51
- const durationMs = end.getTime() - start.getTime();
52
- const hours = Math.floor(durationMs / 3600000);
53
- const minutes = Math.floor((durationMs % 3600000) / 60000);
54
- if (hours > 0) {
55
- return minutes > 0 ? `${hours}h ${minutes}m` : `${hours}h`;
56
- }
57
- return `${minutes}m`;
58
- }
59
- /**
60
- * Strip milliseconds from VTT timestamp: "00:01:04.309" -> "00:01:04"
61
- */
62
- function stripMs(timestamp) {
63
- return timestamp.split('.')[0];
64
- }
65
- /**
66
- * Parse WebVTT transcript to CSV format with metadata header.
67
- * Each row contains: start, end, speaker, text
68
- */
69
- export function parseVttToCsv(vttContent, metadata) {
70
- const lines = vttContent.split('\n');
71
- const records = [];
72
- let lastStart = '';
73
- let lastEnd = '';
74
- for (const line of lines) {
75
- const trimmed = line.trim();
76
- // Skip empty lines and WEBVTT header
77
- if (!trimmed || trimmed === 'WEBVTT') {
78
- continue;
79
- }
80
- // Capture timestamp line: "00:00:04.309 --> 00:00:05.109"
81
- const timestampMatch = /^(\d{2}:\d{2}:\d{2}\.\d+)\s*-->\s*(\d{2}:\d{2}:\d{2}\.\d+)$/.exec(trimmed);
82
- if (timestampMatch) {
83
- lastStart = stripMs(timestampMatch[1]);
84
- lastEnd = stripMs(timestampMatch[2]);
85
- continue;
86
- }
87
- // Parse voice tag: <v Speaker Name>Text</v>
88
- const voiceMatch = /^<v ([^>]+)>(.+)<\/v>$/.exec(trimmed);
89
- if (voiceMatch) {
90
- const speaker = voiceMatch[1];
91
- const text = voiceMatch[2];
92
- records.push([lastStart, lastEnd, speaker, text]);
93
- }
94
- }
95
- // Build CSV with csv-stringify
96
- const csv = stringify(records, {
97
- header: true,
98
- columns: ['start', 'end', 'speaker', 'text'],
99
- });
100
- // Prepend metadata comment line
101
- const duration = formatDuration(metadata.start, metadata.end);
102
- const metadataLine = `# ${metadata.meeting} | Start: ${metadata.start} | End: ${metadata.end} | Duration: ${duration}`;
103
- return metadataLine + '\n' + csv;
104
- }
105
- //# sourceMappingURL=vtt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vtt.js","sourceRoot":"","sources":["../../src/utils/vtt.ts"],"names":[],"mappings":"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"}