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 +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -2
- package/dist/utils/vtt.d.ts +0 -17
- package/dist/utils/vtt.d.ts.map +0 -1
- package/dist/utils/vtt.js +0 -105
- package/dist/utils/vtt.js.map +0 -1
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,
|
|
5
|
-
export type {
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/utils/index.js
CHANGED
|
@@ -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
|
package/dist/utils/index.js.map
CHANGED
|
@@ -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
|
|
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.
|
|
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"
|
package/dist/utils/vtt.d.ts
DELETED
|
@@ -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
|
package/dist/utils/vtt.d.ts.map
DELETED
|
@@ -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
|
package/dist/utils/vtt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vtt.js","sourceRoot":"","sources":["../../src/utils/vtt.ts"],"names":[],"mappings":"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"}
|