@awolve/myoffice 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +271 -0
  2. package/dist/auth/cache-plugin.d.ts +20 -0
  3. package/dist/auth/cache-plugin.d.ts.map +1 -0
  4. package/dist/auth/cache-plugin.js +49 -0
  5. package/dist/auth/cache-plugin.js.map +1 -0
  6. package/dist/auth/config.d.ts +40 -0
  7. package/dist/auth/config.d.ts.map +1 -0
  8. package/dist/auth/config.js +135 -0
  9. package/dist/auth/config.js.map +1 -0
  10. package/dist/auth/device-code.d.ts +2 -0
  11. package/dist/auth/device-code.d.ts.map +1 -0
  12. package/dist/auth/device-code.js +40 -0
  13. package/dist/auth/device-code.js.map +1 -0
  14. package/dist/auth/index.d.ts +4 -0
  15. package/dist/auth/index.d.ts.map +1 -0
  16. package/dist/auth/index.js +4 -0
  17. package/dist/auth/index.js.map +1 -0
  18. package/dist/auth/login.d.ts +7 -0
  19. package/dist/auth/login.d.ts.map +1 -0
  20. package/dist/auth/login.js +22 -0
  21. package/dist/auth/login.js.map +1 -0
  22. package/dist/auth/token-manager.d.ts +4 -0
  23. package/dist/auth/token-manager.d.ts.map +1 -0
  24. package/dist/auth/token-manager.js +85 -0
  25. package/dist/auth/token-manager.js.map +1 -0
  26. package/dist/cli/formatter.d.ts +5 -0
  27. package/dist/cli/formatter.d.ts.map +1 -0
  28. package/dist/cli/formatter.js +317 -0
  29. package/dist/cli/formatter.js.map +1 -0
  30. package/dist/cli.d.ts +3 -0
  31. package/dist/cli.d.ts.map +1 -0
  32. package/dist/cli.js +973 -0
  33. package/dist/cli.js.map +1 -0
  34. package/dist/core/handler.d.ts +8 -0
  35. package/dist/core/handler.d.ts.map +1 -0
  36. package/dist/core/handler.js +327 -0
  37. package/dist/core/handler.js.map +1 -0
  38. package/dist/index.d.ts +3 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +924 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/tools/calendar.d.ts +124 -0
  43. package/dist/tools/calendar.d.ts.map +1 -0
  44. package/dist/tools/calendar.js +129 -0
  45. package/dist/tools/calendar.js.map +1 -0
  46. package/dist/tools/chats.d.ts +66 -0
  47. package/dist/tools/chats.d.ts.map +1 -0
  48. package/dist/tools/chats.js +102 -0
  49. package/dist/tools/chats.js.map +1 -0
  50. package/dist/tools/contacts.d.ts +138 -0
  51. package/dist/tools/contacts.d.ts.map +1 -0
  52. package/dist/tools/contacts.js +189 -0
  53. package/dist/tools/contacts.js.map +1 -0
  54. package/dist/tools/index.d.ts +10 -0
  55. package/dist/tools/index.d.ts.map +1 -0
  56. package/dist/tools/index.js +10 -0
  57. package/dist/tools/index.js.map +1 -0
  58. package/dist/tools/mail.d.ts +138 -0
  59. package/dist/tools/mail.d.ts.map +1 -0
  60. package/dist/tools/mail.js +187 -0
  61. package/dist/tools/mail.js.map +1 -0
  62. package/dist/tools/onedrive.d.ts +125 -0
  63. package/dist/tools/onedrive.d.ts.map +1 -0
  64. package/dist/tools/onedrive.js +203 -0
  65. package/dist/tools/onedrive.js.map +1 -0
  66. package/dist/tools/planner.d.ts +390 -0
  67. package/dist/tools/planner.d.ts.map +1 -0
  68. package/dist/tools/planner.js +693 -0
  69. package/dist/tools/planner.js.map +1 -0
  70. package/dist/tools/sharepoint.d.ts +138 -0
  71. package/dist/tools/sharepoint.d.ts.map +1 -0
  72. package/dist/tools/sharepoint.js +156 -0
  73. package/dist/tools/sharepoint.js.map +1 -0
  74. package/dist/tools/tasks.d.ts +107 -0
  75. package/dist/tools/tasks.d.ts.map +1 -0
  76. package/dist/tools/tasks.js +131 -0
  77. package/dist/tools/tasks.js.map +1 -0
  78. package/dist/tools/teams.d.ts +66 -0
  79. package/dist/tools/teams.d.ts.map +1 -0
  80. package/dist/tools/teams.js +69 -0
  81. package/dist/tools/teams.js.map +1 -0
  82. package/dist/utils/graph-client.d.ts +15 -0
  83. package/dist/utils/graph-client.d.ts.map +1 -0
  84. package/dist/utils/graph-client.js +126 -0
  85. package/dist/utils/graph-client.js.map +1 -0
  86. package/dist/utils/signature.d.ts +2 -0
  87. package/dist/utils/signature.d.ts.map +1 -0
  88. package/dist/utils/signature.js +17 -0
  89. package/dist/utils/signature.js.map +1 -0
  90. package/dist/utils/version.d.ts +2 -0
  91. package/dist/utils/version.d.ts.map +1 -0
  92. package/dist/utils/version.js +20 -0
  93. package/dist/utils/version.js.map +1 -0
  94. package/package.json +55 -0
@@ -0,0 +1,85 @@
1
+ import { PublicClientApplication } from '@azure/msal-node';
2
+ import { getAuthConfig, MSAL_CACHE_FILE, getTokenCache } from './config.js';
3
+ import { FileCachePlugin } from './cache-plugin.js';
4
+ let msalInstance = null;
5
+ let msalClientId = null;
6
+ const cachePlugin = new FileCachePlugin(MSAL_CACHE_FILE);
7
+ function getMsalInstance() {
8
+ const config = getAuthConfig();
9
+ // Recreate instance if client ID changed
10
+ if (msalInstance && msalClientId !== config.clientId) {
11
+ msalInstance = null;
12
+ }
13
+ if (!msalInstance) {
14
+ if (!config.clientId) {
15
+ throw new Error('No client ID configured. Run: myoffice login --client-id <your-azure-app-client-id>\n' +
16
+ 'Or set M365_CLIENT_ID environment variable.');
17
+ }
18
+ msalClientId = config.clientId;
19
+ msalInstance = new PublicClientApplication({
20
+ auth: {
21
+ clientId: config.clientId,
22
+ authority: `https://login.microsoftonline.com/${config.tenantId}`,
23
+ },
24
+ cache: {
25
+ cachePlugin,
26
+ },
27
+ });
28
+ }
29
+ return msalInstance;
30
+ }
31
+ export async function getAccessToken() {
32
+ const pca = getMsalInstance();
33
+ // Get accounts from MSAL's persisted cache
34
+ const accounts = await pca.getTokenCache().getAllAccounts();
35
+ if (accounts.length === 0) {
36
+ // No accounts in MSAL cache - check legacy token.json for migration hint
37
+ const legacyCache = getTokenCache();
38
+ if (legacyCache?.account) {
39
+ console.error('[Auth] Found legacy token.json but no MSAL cache.');
40
+ console.error('[Auth] Please re-authenticate to migrate to new cache format.');
41
+ }
42
+ throw new Error('Not authenticated. Please run "npm run login" in the myoffice-mcp directory.');
43
+ }
44
+ // Use the first account (typically there's only one for personal use)
45
+ const account = accounts[0];
46
+ // Try silent token acquisition (MSAL handles refresh automatically)
47
+ try {
48
+ const config = getAuthConfig();
49
+ const silentRequest = {
50
+ scopes: config.scopes,
51
+ account: account,
52
+ };
53
+ const result = await pca.acquireTokenSilent(silentRequest);
54
+ return result.accessToken;
55
+ }
56
+ catch (error) {
57
+ // Silent refresh failed - log the actual error
58
+ const errorMessage = error instanceof Error ? error.message : String(error);
59
+ console.error('[Auth] Silent token acquisition FAILED:', errorMessage);
60
+ console.error('[Auth] Please re-authenticate by running: npm run login');
61
+ throw new Error(`Token acquisition failed: ${errorMessage}. ` +
62
+ `Please re-authenticate by running 'npm run login' in the myoffice-mcp directory.`);
63
+ }
64
+ }
65
+ export async function isAuthenticated() {
66
+ try {
67
+ const pca = getMsalInstance();
68
+ const accounts = await pca.getTokenCache().getAllAccounts();
69
+ return accounts.length > 0;
70
+ }
71
+ catch {
72
+ return false;
73
+ }
74
+ }
75
+ export async function getCurrentUser() {
76
+ try {
77
+ const pca = getMsalInstance();
78
+ const accounts = await pca.getTokenCache().getAllAccounts();
79
+ return accounts[0]?.username || null;
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ }
85
+ //# sourceMappingURL=token-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-manager.js","sourceRoot":"","sources":["../../src/auth/token-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Output formatter for CLI - provides human-readable output
3
+ */
4
+ export declare function formatOutput(data: unknown, toolName?: string): string;
5
+ //# sourceMappingURL=formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/cli/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoWH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAsErE"}
@@ -0,0 +1,317 @@
1
+ /**
2
+ * Output formatter for CLI - provides human-readable output
3
+ */
4
+ // Helper to truncate strings
5
+ function truncate(str, maxLen) {
6
+ if (!str)
7
+ return '';
8
+ if (str.length <= maxLen)
9
+ return str;
10
+ return str.substring(0, maxLen - 3) + '...';
11
+ }
12
+ // Helper to format date
13
+ function formatDate(dateStr) {
14
+ if (!dateStr)
15
+ return '';
16
+ try {
17
+ const date = new Date(dateStr);
18
+ return date.toLocaleString('en-US', {
19
+ month: 'short',
20
+ day: 'numeric',
21
+ hour: 'numeric',
22
+ minute: '2-digit',
23
+ });
24
+ }
25
+ catch {
26
+ return dateStr;
27
+ }
28
+ }
29
+ // Helper to pad string
30
+ function pad(str, len) {
31
+ if (str.length >= len)
32
+ return str.substring(0, len);
33
+ return str + ' '.repeat(len - str.length);
34
+ }
35
+ // Format email list
36
+ function formatMailList(data) {
37
+ const emails = data.value;
38
+ if (!emails || emails.length === 0) {
39
+ return 'No emails found.';
40
+ }
41
+ const lines = [];
42
+ lines.push(`${pad('FROM', 25)} ${pad('SUBJECT', 40)} ${pad('DATE', 16)} READ`);
43
+ lines.push('-'.repeat(90));
44
+ for (const email of emails) {
45
+ const from = truncate(email.from?.emailAddress?.address || '', 24);
46
+ const subject = truncate(email.subject || '(no subject)', 39);
47
+ const date = formatDate(email.receivedDateTime);
48
+ const read = email.isRead ? '✓' : '○';
49
+ lines.push(`${pad(from, 25)} ${pad(subject, 40)} ${pad(date, 16)} ${read}`);
50
+ }
51
+ const unreadCount = emails.filter(e => !e.isRead).length;
52
+ lines.push('');
53
+ lines.push(`${emails.length} emails (${unreadCount} unread)`);
54
+ return lines.join('\n');
55
+ }
56
+ // Format calendar events
57
+ function formatCalendarList(data) {
58
+ const events = data.value;
59
+ if (!events || events.length === 0) {
60
+ return 'No events found.';
61
+ }
62
+ const lines = [];
63
+ lines.push(`${pad('DATE/TIME', 20)} ${pad('SUBJECT', 35)} ${pad('LOCATION', 25)}`);
64
+ lines.push('-'.repeat(85));
65
+ for (const event of events) {
66
+ const dateTime = formatDate(event.start?.dateTime);
67
+ const subject = truncate(event.subject || '(no subject)', 34);
68
+ let location = event.location?.displayName || '';
69
+ if (event.isOnlineMeeting && !location)
70
+ location = 'Teams Meeting';
71
+ location = truncate(location, 24);
72
+ lines.push(`${pad(dateTime, 20)} ${pad(subject, 35)} ${pad(location, 25)}`);
73
+ }
74
+ lines.push('');
75
+ lines.push(`${events.length} events`);
76
+ return lines.join('\n');
77
+ }
78
+ // Format task lists
79
+ function formatTaskLists(data) {
80
+ const lists = data.value;
81
+ if (!lists || lists.length === 0) {
82
+ return 'No task lists found.';
83
+ }
84
+ const lines = [];
85
+ lines.push(`${pad('NAME', 40)} ID`);
86
+ lines.push('-'.repeat(80));
87
+ for (const list of lists) {
88
+ const name = truncate(list.displayName || '', 39);
89
+ const id = truncate(list.id || '', 38);
90
+ lines.push(`${pad(name, 40)} ${id}`);
91
+ }
92
+ lines.push('');
93
+ lines.push(`${lists.length} task lists`);
94
+ return lines.join('\n');
95
+ }
96
+ // Format tasks
97
+ function formatTasks(data) {
98
+ const tasks = data.value;
99
+ if (!tasks || tasks.length === 0) {
100
+ return 'No tasks found.';
101
+ }
102
+ const lines = [];
103
+ lines.push(`${pad('STATUS', 8)} ${pad('TITLE', 40)} ${pad('DUE', 16)} IMP`);
104
+ lines.push('-'.repeat(75));
105
+ for (const task of tasks) {
106
+ const status = task.status === 'completed' ? '✓' : '○';
107
+ const title = truncate(task.title || '', 39);
108
+ const due = task.dueDateTime?.dateTime ? formatDate(task.dueDateTime.dateTime) : '';
109
+ const imp = task.importance === 'high' ? '!' : task.importance === 'low' ? '↓' : '';
110
+ lines.push(`${pad(status, 8)} ${pad(title, 40)} ${pad(due, 16)} ${imp}`);
111
+ }
112
+ lines.push('');
113
+ const completed = tasks.filter(t => t.status === 'completed').length;
114
+ lines.push(`${tasks.length} tasks (${completed} completed)`);
115
+ return lines.join('\n');
116
+ }
117
+ // Format files/folders
118
+ function formatFiles(data) {
119
+ const items = data.value;
120
+ if (!items || items.length === 0) {
121
+ return 'No files found.';
122
+ }
123
+ const lines = [];
124
+ lines.push(`${pad('TYPE', 6)} ${pad('NAME', 40)} ${pad('SIZE', 12)} MODIFIED`);
125
+ lines.push('-'.repeat(85));
126
+ for (const item of items) {
127
+ const type = item.folder ? '📁' : '📄';
128
+ const name = truncate(item.name || '', 39);
129
+ const size = item.folder ? '' : formatSize(item.size || 0);
130
+ const modified = formatDate(item.lastModifiedDateTime);
131
+ lines.push(`${pad(type, 6)} ${pad(name, 40)} ${pad(size, 12)} ${modified}`);
132
+ }
133
+ lines.push('');
134
+ lines.push(`${items.length} items`);
135
+ return lines.join('\n');
136
+ }
137
+ function formatSize(bytes) {
138
+ if (bytes === 0)
139
+ return '0 B';
140
+ const units = ['B', 'KB', 'MB', 'GB'];
141
+ const i = Math.floor(Math.log(bytes) / Math.log(1024));
142
+ return (bytes / Math.pow(1024, i)).toFixed(i > 0 ? 1 : 0) + ' ' + units[i];
143
+ }
144
+ // Format teams list
145
+ function formatTeams(data) {
146
+ const teams = data.value;
147
+ if (!teams || teams.length === 0) {
148
+ return 'No teams found.';
149
+ }
150
+ const lines = [];
151
+ lines.push(`${pad('NAME', 35)} DESCRIPTION`);
152
+ lines.push('-'.repeat(80));
153
+ for (const team of teams) {
154
+ const name = truncate(team.displayName || '', 34);
155
+ const desc = truncate(team.description || '', 43);
156
+ lines.push(`${pad(name, 35)} ${desc}`);
157
+ }
158
+ lines.push('');
159
+ lines.push(`${teams.length} teams`);
160
+ return lines.join('\n');
161
+ }
162
+ // Format chats list
163
+ function formatChats(data) {
164
+ const chats = data.value;
165
+ if (!chats || chats.length === 0) {
166
+ return 'No chats found.';
167
+ }
168
+ const lines = [];
169
+ lines.push(`${pad('TYPE', 10)} ${pad('TOPIC', 40)} LAST ACTIVE`);
170
+ lines.push('-'.repeat(75));
171
+ for (const chat of chats) {
172
+ const type = chat.chatType || 'unknown';
173
+ const topic = truncate(chat.topic || '(unnamed chat)', 39);
174
+ const lastActive = formatDate(chat.lastUpdatedDateTime);
175
+ lines.push(`${pad(type, 10)} ${pad(topic, 40)} ${lastActive}`);
176
+ }
177
+ lines.push('');
178
+ lines.push(`${chats.length} chats`);
179
+ return lines.join('\n');
180
+ }
181
+ // Format planner plans
182
+ function formatPlans(data) {
183
+ const plans = data.value;
184
+ if (!plans || plans.length === 0) {
185
+ return 'No plans found.';
186
+ }
187
+ const lines = [];
188
+ lines.push(`${pad('TITLE', 45)} ID`);
189
+ lines.push('-'.repeat(90));
190
+ for (const plan of plans) {
191
+ const title = truncate(plan.title || '', 44);
192
+ const id = truncate(plan.id || '', 43);
193
+ lines.push(`${pad(title, 45)} ${id}`);
194
+ }
195
+ lines.push('');
196
+ lines.push(`${plans.length} plans`);
197
+ return lines.join('\n');
198
+ }
199
+ // Format planner tasks
200
+ function formatPlannerTasks(data) {
201
+ const tasks = data.value;
202
+ if (!tasks || tasks.length === 0) {
203
+ return 'No tasks found.';
204
+ }
205
+ const lines = [];
206
+ lines.push(`${pad('STATUS', 8)} ${pad('TITLE', 40)} ${pad('DUE', 16)} PRI`);
207
+ lines.push('-'.repeat(75));
208
+ for (const task of tasks) {
209
+ const pct = task.percentComplete || 0;
210
+ const status = pct === 100 ? '✓' : pct > 0 ? '◐' : '○';
211
+ const title = truncate(task.title || '', 39);
212
+ const due = task.dueDateTime ? formatDate(task.dueDateTime) : '';
213
+ const pri = task.priority === 1 ? '!!!' : task.priority === 3 ? '!!' : task.priority === 5 ? '!' : '';
214
+ lines.push(`${pad(status, 8)} ${pad(title, 40)} ${pad(due, 16)} ${pri}`);
215
+ }
216
+ lines.push('');
217
+ const completed = tasks.filter(t => t.percentComplete === 100).length;
218
+ lines.push(`${tasks.length} tasks (${completed} completed)`);
219
+ return lines.join('\n');
220
+ }
221
+ // Format auth status
222
+ function formatAuthStatus(data) {
223
+ if (data.authenticated && data.user) {
224
+ return `Authenticated as: ${data.user.displayName || data.user.mail || 'Unknown'}`;
225
+ }
226
+ return 'Not authenticated. Run: myoffice login';
227
+ }
228
+ // Format contacts
229
+ function formatContacts(data) {
230
+ const contacts = data.value;
231
+ if (!contacts || contacts.length === 0) {
232
+ return 'No contacts found.';
233
+ }
234
+ const lines = [];
235
+ lines.push(`${pad('NAME', 30)} ${pad('EMAIL', 30)} COMPANY`);
236
+ lines.push('-'.repeat(85));
237
+ for (const contact of contacts) {
238
+ const name = truncate(contact.displayName || '', 29);
239
+ const email = truncate(contact.emailAddresses?.[0]?.address || '', 29);
240
+ const company = truncate(contact.companyName || '', 23);
241
+ lines.push(`${pad(name, 30)} ${pad(email, 30)} ${company}`);
242
+ }
243
+ lines.push('');
244
+ lines.push(`${contacts.length} contacts`);
245
+ return lines.join('\n');
246
+ }
247
+ // Generic object formatter
248
+ function formatObject(data) {
249
+ return JSON.stringify(data, null, 2);
250
+ }
251
+ // Main format function
252
+ export function formatOutput(data, toolName) {
253
+ if (data === null || data === undefined) {
254
+ return 'No data';
255
+ }
256
+ // Try to detect the data type and format appropriately
257
+ const obj = data;
258
+ // Check for specific tool outputs
259
+ if (toolName === 'auth_status') {
260
+ return formatAuthStatus(data);
261
+ }
262
+ // Check for list responses (most Graph API responses have a 'value' array)
263
+ if (Array.isArray(obj.value)) {
264
+ // Try to determine the type of list
265
+ const items = obj.value;
266
+ if (items.length === 0) {
267
+ return 'No items found.';
268
+ }
269
+ const sample = items[0];
270
+ // Email detection
271
+ if ('receivedDateTime' in sample && 'from' in sample) {
272
+ return formatMailList(obj);
273
+ }
274
+ // Calendar event detection
275
+ if ('start' in sample && 'end' in sample && 'subject' in sample) {
276
+ return formatCalendarList(obj);
277
+ }
278
+ // To Do task list detection
279
+ if ('displayName' in sample && !('folder' in sample) && !('emailAddresses' in sample) && !('members' in sample)) {
280
+ // Could be task lists or teams - check for wellknownListName
281
+ if ('wellknownListName' in sample || items.every(i => 'displayName' in i && !('description' in i))) {
282
+ return formatTaskLists(obj);
283
+ }
284
+ }
285
+ // To Do tasks detection
286
+ if ('status' in sample && 'title' in sample && !('percentComplete' in sample)) {
287
+ return formatTasks(obj);
288
+ }
289
+ // OneDrive/SharePoint files detection
290
+ if ('name' in sample && ('folder' in sample || 'file' in sample || 'size' in sample)) {
291
+ return formatFiles(obj);
292
+ }
293
+ // Teams detection
294
+ if ('displayName' in sample && 'description' in sample && !('emailAddresses' in sample)) {
295
+ return formatTeams(obj);
296
+ }
297
+ // Chats detection
298
+ if ('chatType' in sample) {
299
+ return formatChats(obj);
300
+ }
301
+ // Planner plans detection
302
+ if ('title' in sample && 'owner' in sample && !('percentComplete' in sample)) {
303
+ return formatPlans(obj);
304
+ }
305
+ // Planner tasks detection
306
+ if ('percentComplete' in sample && 'title' in sample) {
307
+ return formatPlannerTasks(obj);
308
+ }
309
+ // Contacts detection
310
+ if ('emailAddresses' in sample) {
311
+ return formatContacts(obj);
312
+ }
313
+ }
314
+ // Default: JSON output
315
+ return formatObject(data);
316
+ }
317
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/cli/formatter.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}