msoutlook-mcp 0.1.5 → 0.3.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.
- package/README.md +49 -12
- package/dist/api/calendar.d.ts +54 -0
- package/dist/api/calendar.d.ts.map +1 -1
- package/dist/api/calendar.js +40 -0
- package/dist/api/calendar.js.map +1 -1
- package/dist/api/client.d.ts +11 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +31 -0
- package/dist/api/client.js.map +1 -1
- package/dist/api/directory.d.ts +29 -0
- package/dist/api/directory.d.ts.map +1 -0
- package/dist/api/directory.js +28 -0
- package/dist/api/directory.js.map +1 -0
- package/dist/api/mail.d.ts +67 -1
- package/dist/api/mail.d.ts.map +1 -1
- package/dist/api/mail.js +162 -7
- package/dist/api/mail.js.map +1 -1
- package/dist/api/mailbox.d.ts +43 -0
- package/dist/api/mailbox.d.ts.map +1 -0
- package/dist/api/mailbox.js +32 -0
- package/dist/api/mailbox.js.map +1 -0
- package/dist/api/presence.d.ts +62 -0
- package/dist/api/presence.d.ts.map +1 -0
- package/dist/api/presence.js +130 -0
- package/dist/api/presence.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/calendar-tools.d.ts.map +1 -1
- package/dist/tools/calendar-tools.js +74 -1
- package/dist/tools/calendar-tools.js.map +1 -1
- package/dist/tools/contact-tools.d.ts.map +1 -1
- package/dist/tools/contact-tools.js +39 -0
- package/dist/tools/contact-tools.js.map +1 -1
- package/dist/tools/directory-tools.d.ts +6 -0
- package/dist/tools/directory-tools.d.ts.map +1 -0
- package/dist/tools/directory-tools.js +112 -0
- package/dist/tools/directory-tools.js.map +1 -0
- package/dist/tools/mail-tools.d.ts.map +1 -1
- package/dist/tools/mail-tools.js +181 -18
- package/dist/tools/mail-tools.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,16 +7,19 @@
|
|
|
7
7
|
|
|
8
8
|
MCP server for Microsoft Outlook Web. No app registration required.
|
|
9
9
|
|
|
10
|
-
Give any MCP client (Claude, Cursor, Devin, ...) read and write access to your Outlook mail, calendar, and
|
|
10
|
+
Give any MCP client (Claude, Cursor, Devin, ...) read and write access to your Outlook mail, calendar, contacts, and the org directory. It works by reusing your existing Outlook Web session, the same way [msteams-mcp](https://github.com/m0nkmaster/msteams-mcp) reuses the Teams web session: you sign in once in a browser, then tokens are cached and refreshed automatically.
|
|
11
11
|
|
|
12
12
|
## Why
|
|
13
13
|
|
|
14
|
-
Most Outlook MCP servers make you register an Azure AD application, grant admin consent, and manage client secrets. This one needs none of that. It
|
|
14
|
+
Most Outlook MCP servers make you register an Azure AD application, grant admin consent, and manage client secrets. This one needs none of that. It reuses Outlook Web's own first party client ID, so your access is exactly what your account already has, and nothing leaves your own machine.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
16
|
+
## Highlights
|
|
17
|
+
|
|
18
|
+
- **Zero setup auth.** No Azure app registration, no admin consent, no client secrets. Sign in once in a browser; tokens are cached encrypted and refreshed silently after that.
|
|
19
|
+
- **Over 50 tools** across mail, calendar, contacts, people, the org directory, and your own account settings.
|
|
20
|
+
- **Safe by default.** Email bodies are sent as HTML so line breaks always render, and the draft tools let you compose and review before anything is sent.
|
|
21
|
+
- **Scheduling and availability.** Read free/busy, find meeting times across attendees, and check who is out of office.
|
|
22
|
+
- **Cross platform.** macOS, Linux, and Windows, with automatic browser detection.
|
|
20
23
|
|
|
21
24
|
## How it works
|
|
22
25
|
|
|
@@ -25,7 +28,7 @@ Microsoft Outlook Web (OWA) uses MSAL to store OAuth tokens in `localStorage`. T
|
|
|
25
28
|
1. Opens a browser to `outlook.office.com` via Playwright
|
|
26
29
|
2. Extracts the MSAL token cache from `localStorage`, using OWA's own first party client ID (`9199bf20-a13f-4107-85dc-02114787ef48`)
|
|
27
30
|
3. Caches the access token, refresh token, and session state in `~/.msoutlook-mcp-server/` (AES-256-GCM encrypted)
|
|
28
|
-
4. Refreshes tokens automatically using the refresh token (HTTP, no browser) or headless browser as fallback
|
|
31
|
+
4. Refreshes tokens automatically using the refresh token (HTTP, no browser) or a headless browser as fallback
|
|
29
32
|
|
|
30
33
|
No Azure app registration. No admin consent. No client secrets. Your access is limited to what your account can already do.
|
|
31
34
|
|
|
@@ -44,6 +47,12 @@ No Azure app registration. No admin consent. No client secrets. Your access is l
|
|
|
44
47
|
|
|
45
48
|
Then run `outlook_login` from your MCP client. On first use a browser opens so you can sign in; after that, logins are silent and no browser appears. Do not close the window manually, it closes itself once you are signed in.
|
|
46
49
|
|
|
50
|
+
## Sending mail: behaviour to know
|
|
51
|
+
|
|
52
|
+
- **HTML by default.** `outlook_send_email`, `outlook_create_draft`, and the reply/forward tools render their body as HTML, so use `<br>`, `<br><br>`, and `<ul><li>` for structure. Plain text is still accepted: its newlines are converted to `<br>` automatically, so a message never arrives as one collapsed block.
|
|
53
|
+
- **Review before sending.** Prefer the draft tools (`outlook_create_draft`, `outlook_create_reply_draft`, `outlook_create_forward_draft`) so you can review or edit with `outlook_update_draft` and then send with `outlook_send_draft`. The immediate tools (`outlook_send_email`, `outlook_reply`, `outlook_forward`) send straight away.
|
|
54
|
+
- **Presence caveat.** `outlook_get_availability` reports free/busy and out of office, which is what Outlook can read. The live Teams presence dot (Available / Away / DoNotDisturb) needs a Teams token and is not available here.
|
|
55
|
+
|
|
47
56
|
## Tools
|
|
48
57
|
|
|
49
58
|
### Auth
|
|
@@ -61,17 +70,29 @@ Then run `outlook_login` from your MCP client. On first use a browser opens so y
|
|
|
61
70
|
| `outlook_list_emails` | List emails from any folder (Inbox by default) |
|
|
62
71
|
| `outlook_get_email` | Read full email content by ID |
|
|
63
72
|
| `outlook_get_unread` | Get unread emails from Inbox |
|
|
64
|
-
| `outlook_search_emails` | Search emails by keyword, with optional received date range and pagination |
|
|
65
|
-
| `outlook_send_email` | Send an email |
|
|
66
|
-
| `outlook_create_draft` | Create a draft without sending |
|
|
73
|
+
| `outlook_search_emails` | Search emails by keyword, with optional received date range and pagination. Omit the keyword to list everything in a date range |
|
|
74
|
+
| `outlook_send_email` | Send an email (HTML body by default; plain text newlines auto convert to `<br>`; supports file `attachments`) |
|
|
75
|
+
| `outlook_create_draft` | Create a new draft without sending (review-first flow; supports file `attachments`) |
|
|
67
76
|
| `outlook_send_draft` | Send a previously created draft |
|
|
68
|
-
| `
|
|
69
|
-
| `
|
|
77
|
+
| `outlook_update_draft` | Edit a draft's subject, recipients, body, or importance |
|
|
78
|
+
| `outlook_reply` | Reply to an email immediately (or reply all) |
|
|
79
|
+
| `outlook_create_reply_draft` | Create a reply (or reply all) as a draft to review before sending |
|
|
80
|
+
| `outlook_forward` | Forward an email immediately |
|
|
81
|
+
| `outlook_create_forward_draft` | Create a forward as a draft to review before sending |
|
|
82
|
+
| `outlook_add_attachment` | Attach a local file to an existing draft |
|
|
83
|
+
| `outlook_list_attachments` | List attachments on an email |
|
|
84
|
+
| `outlook_save_attachment` | Download an attachment to a local file |
|
|
85
|
+
| `outlook_get_conversation` | Get every message in a thread by conversation ID |
|
|
86
|
+
| `outlook_set_categories` | Set colour categories (labels) on an email |
|
|
70
87
|
| `outlook_mark_read` | Mark email as read or unread |
|
|
71
88
|
| `outlook_flag` | Flag or unflag an email |
|
|
72
89
|
| `outlook_move_email` | Move email to a different folder |
|
|
73
90
|
| `outlook_delete_email` | Delete an email |
|
|
91
|
+
| `outlook_batch` | Run one bulk action (mark read, mark unread, flag, unflag, move, delete) over many emails at once |
|
|
74
92
|
| `outlook_list_folders` | List all mail folders with unread counts |
|
|
93
|
+
| `outlook_create_folder` | Create a mail folder (optionally nested) |
|
|
94
|
+
| `outlook_rename_folder` | Rename a mail folder |
|
|
95
|
+
| `outlook_delete_folder` | Delete a mail folder |
|
|
75
96
|
|
|
76
97
|
### Calendar
|
|
77
98
|
|
|
@@ -85,6 +106,10 @@ Then run `outlook_login` from your MCP client. On first use a browser opens so y
|
|
|
85
106
|
| `outlook_respond_to_event` | Accept, decline, or tentatively accept an invite |
|
|
86
107
|
| `outlook_search_events` | Search events by keyword |
|
|
87
108
|
| `outlook_list_calendars` | List all calendars |
|
|
109
|
+
| `outlook_get_schedule` | Free/busy schedule (busy blocks + working hours) for people over a window |
|
|
110
|
+
| `outlook_find_meeting_times` | Suggest meeting slots that work across attendees |
|
|
111
|
+
| `outlook_cancel_event` | Cancel an event you organize and notify attendees |
|
|
112
|
+
| `outlook_forward_event` | Forward a meeting invite to more people |
|
|
88
113
|
|
|
89
114
|
### Contacts & People
|
|
90
115
|
|
|
@@ -95,6 +120,18 @@ Then run `outlook_login` from your MCP client. On first use a browser opens so y
|
|
|
95
120
|
| `outlook_create_contact` | Create a new contact |
|
|
96
121
|
| `outlook_delete_contact` | Delete a contact |
|
|
97
122
|
| `outlook_search_people` | Search the organisation directory |
|
|
123
|
+
| `outlook_get_availability` | Check whether people are free/busy now, their out-of-office status, and working hours (free/busy and mail tips; not the live Teams presence dot) |
|
|
124
|
+
| `outlook_get_user_profile` | Get a colleague's directory profile (title, department, office, phone) |
|
|
125
|
+
| `outlook_get_manager` | Get a person's manager from the org directory |
|
|
126
|
+
| `outlook_get_direct_reports` | List a person's direct reports |
|
|
127
|
+
| `outlook_get_user_photo` | Download a person's profile photo to a file |
|
|
128
|
+
|
|
129
|
+
### Account / Out of office
|
|
130
|
+
|
|
131
|
+
| Tool | Description |
|
|
132
|
+
|------|-------------|
|
|
133
|
+
| `outlook_get_automatic_replies` | Read your out-of-office / automatic reply settings |
|
|
134
|
+
| `outlook_set_automatic_replies` | Turn your out-of-office on (always or scheduled) or off |
|
|
98
135
|
|
|
99
136
|
## Session storage
|
|
100
137
|
|
package/dist/api/calendar.d.ts
CHANGED
|
@@ -87,4 +87,58 @@ export type EventResponse = 'accept' | 'decline' | 'tentativelyAccept';
|
|
|
87
87
|
export declare function respondToEvent(id: string, response: EventResponse, comment?: string): Promise<void>;
|
|
88
88
|
export declare function searchEvents(query: string, fromDate?: string, toDate?: string): Promise<CalendarEvent[]>;
|
|
89
89
|
export declare function listCalendars(): Promise<Calendar[]>;
|
|
90
|
+
export interface ScheduleItem {
|
|
91
|
+
Status?: string;
|
|
92
|
+
Start?: DateTimeTimeZone;
|
|
93
|
+
End?: DateTimeTimeZone;
|
|
94
|
+
Subject?: string;
|
|
95
|
+
Location?: string;
|
|
96
|
+
}
|
|
97
|
+
export interface ScheduleInformation {
|
|
98
|
+
ScheduleId: string;
|
|
99
|
+
AvailabilityView?: string;
|
|
100
|
+
ScheduleItems?: ScheduleItem[];
|
|
101
|
+
WorkingHours?: {
|
|
102
|
+
DaysOfWeek?: string[];
|
|
103
|
+
StartTime?: string;
|
|
104
|
+
EndTime?: string;
|
|
105
|
+
TimeZone?: {
|
|
106
|
+
Name?: string;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/** Free/busy for a batch of addresses over a window (one digit per interval). */
|
|
111
|
+
export declare function getSchedule(emails: string[], start: Date, end: Date, intervalMinutes?: number): Promise<ScheduleInformation[]>;
|
|
112
|
+
export interface MeetingTimeSuggestion {
|
|
113
|
+
Confidence?: number;
|
|
114
|
+
OrganizerAvailability?: string;
|
|
115
|
+
MeetingTimeSlot?: {
|
|
116
|
+
Start: DateTimeTimeZone;
|
|
117
|
+
End: DateTimeTimeZone;
|
|
118
|
+
};
|
|
119
|
+
AttendeeAvailability?: Array<{
|
|
120
|
+
Availability: string;
|
|
121
|
+
Attendee: {
|
|
122
|
+
EmailAddress: {
|
|
123
|
+
Address: string;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
}>;
|
|
127
|
+
}
|
|
128
|
+
export interface FindMeetingTimesOptions {
|
|
129
|
+
attendees: string[];
|
|
130
|
+
durationMinutes?: number;
|
|
131
|
+
start?: string;
|
|
132
|
+
end?: string;
|
|
133
|
+
maxCandidates?: number;
|
|
134
|
+
timeZone?: string;
|
|
135
|
+
}
|
|
136
|
+
export declare function findMeetingTimes(opts: FindMeetingTimesOptions): Promise<{
|
|
137
|
+
suggestions: MeetingTimeSuggestion[];
|
|
138
|
+
emptyReason?: string;
|
|
139
|
+
}>;
|
|
140
|
+
/** Cancel an event you organize, notifying attendees. */
|
|
141
|
+
export declare function cancelEvent(id: string, comment?: string): Promise<void>;
|
|
142
|
+
/** Forward a meeting invite to additional people. */
|
|
143
|
+
export declare function forwardEvent(id: string, to: string[], comment?: string): Promise<void>;
|
|
90
144
|
//# sourceMappingURL=calendar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/api/calendar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/api/calendar.ts"],"names":[],"mappings":"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"}
|
package/dist/api/calendar.js
CHANGED
|
@@ -99,4 +99,44 @@ export async function listCalendars() {
|
|
|
99
99
|
});
|
|
100
100
|
return res.value;
|
|
101
101
|
}
|
|
102
|
+
/** Free/busy for a batch of addresses over a window (one digit per interval). */
|
|
103
|
+
export async function getSchedule(emails, start, end, intervalMinutes = 30) {
|
|
104
|
+
const res = await owaPost('/calendar/getschedule', {
|
|
105
|
+
Schedules: emails,
|
|
106
|
+
StartTime: { DateTime: start.toISOString(), TimeZone: 'UTC' },
|
|
107
|
+
EndTime: { DateTime: end.toISOString(), TimeZone: 'UTC' },
|
|
108
|
+
AvailabilityViewInterval: intervalMinutes,
|
|
109
|
+
});
|
|
110
|
+
return res.value ?? [];
|
|
111
|
+
}
|
|
112
|
+
export async function findMeetingTimes(opts) {
|
|
113
|
+
const tz = opts.timeZone ?? 'UTC';
|
|
114
|
+
const now = new Date();
|
|
115
|
+
const start = opts.start ?? now.toISOString();
|
|
116
|
+
const end = opts.end ?? new Date(now.getTime() + 5 * 24 * 60 * 60 * 1000).toISOString();
|
|
117
|
+
const minutes = opts.durationMinutes ?? 30;
|
|
118
|
+
const res = await owaPost('/findmeetingtimes', {
|
|
119
|
+
Attendees: opts.attendees.map(addr => ({ Type: 'Required', EmailAddress: { Address: addr } })),
|
|
120
|
+
TimeConstraint: {
|
|
121
|
+
Timeslots: [{ Start: { DateTime: start, TimeZone: tz }, End: { DateTime: end, TimeZone: tz } }],
|
|
122
|
+
},
|
|
123
|
+
MeetingDuration: `PT${minutes}M`,
|
|
124
|
+
MaxCandidates: opts.maxCandidates ?? 5,
|
|
125
|
+
});
|
|
126
|
+
return { suggestions: res.MeetingTimeSuggestions ?? [], emptyReason: res.EmptySuggestionsReason || undefined };
|
|
127
|
+
}
|
|
128
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
129
|
+
// Cancel / forward event
|
|
130
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
131
|
+
/** Cancel an event you organize, notifying attendees. */
|
|
132
|
+
export async function cancelEvent(id, comment) {
|
|
133
|
+
await owaPost(`/events/${id}/cancel`, { Comment: comment ?? '' });
|
|
134
|
+
}
|
|
135
|
+
/** Forward a meeting invite to additional people. */
|
|
136
|
+
export async function forwardEvent(id, to, comment) {
|
|
137
|
+
await owaPost(`/events/${id}/forward`, {
|
|
138
|
+
ToRecipients: to.map(addr => ({ EmailAddress: { Address: addr } })),
|
|
139
|
+
Comment: comment ?? '',
|
|
140
|
+
});
|
|
141
|
+
}
|
|
102
142
|
//# sourceMappingURL=calendar.js.map
|
package/dist/api/calendar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/api/calendar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/api/calendar.ts"],"names":[],"mappings":"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"}
|
package/dist/api/client.d.ts
CHANGED
|
@@ -11,4 +11,15 @@ export declare function owaPatch<T>(path: string, body: unknown): Promise<T>;
|
|
|
11
11
|
export declare function owaDelete(path: string): Promise<void>;
|
|
12
12
|
export declare function graphGet<T>(path: string, params?: Record<string, string>): Promise<T>;
|
|
13
13
|
export declare function graphPost<T>(path: string, body: unknown): Promise<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Graph GET against an arbitrary path (not forced under /me), e.g.
|
|
16
|
+
* '/users/{email}', '/users/{email}/manager', '/users/{email}/directReports'.
|
|
17
|
+
* Callers include the full path after the version segment.
|
|
18
|
+
*/
|
|
19
|
+
export declare function graphGetPath<T>(path: string, params?: Record<string, string>): Promise<T>;
|
|
20
|
+
/** Graph GET that returns raw bytes (e.g. a profile photo at /photo/$value). */
|
|
21
|
+
export declare function graphGetBinary(path: string): Promise<{
|
|
22
|
+
contentType: string;
|
|
23
|
+
bytes: Buffer;
|
|
24
|
+
}>;
|
|
14
25
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,wBAAsB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAezF;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAUxE;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAUzE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3D;AAMD,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAe3F;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAU1E"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,wBAAsB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAezF;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAUxE;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAUzE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3D;AAMD,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAe3F;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAU1E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAY/F;AAED,gFAAgF;AAChF,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAYlG"}
|
package/dist/api/client.js
CHANGED
|
@@ -90,4 +90,35 @@ export async function graphPost(path, body) {
|
|
|
90
90
|
});
|
|
91
91
|
return parseResponse(res);
|
|
92
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Graph GET against an arbitrary path (not forced under /me), e.g.
|
|
95
|
+
* '/users/{email}', '/users/{email}/manager', '/users/{email}/directReports'.
|
|
96
|
+
* Callers include the full path after the version segment.
|
|
97
|
+
*/
|
|
98
|
+
export async function graphGetPath(path, params) {
|
|
99
|
+
const token = await getGraphToken();
|
|
100
|
+
if (!token)
|
|
101
|
+
throw new Error('Graph token unavailable. Run outlook_login first.');
|
|
102
|
+
let url = `${GRAPH_BASE}${path}`;
|
|
103
|
+
if (params) {
|
|
104
|
+
const qs = new URLSearchParams(params).toString();
|
|
105
|
+
url += (url.includes('?') ? '&' : '?') + qs;
|
|
106
|
+
}
|
|
107
|
+
const res = await fetchWithRetry(url, { method: 'GET', headers: getBearerHeaders(token) });
|
|
108
|
+
return parseResponse(res);
|
|
109
|
+
}
|
|
110
|
+
/** Graph GET that returns raw bytes (e.g. a profile photo at /photo/$value). */
|
|
111
|
+
export async function graphGetBinary(path) {
|
|
112
|
+
const token = await getGraphToken();
|
|
113
|
+
if (!token)
|
|
114
|
+
throw new Error('Graph token unavailable. Run outlook_login first.');
|
|
115
|
+
const res = await fetchWithRetry(`${GRAPH_BASE}${path}`, { method: 'GET', headers: getBearerHeaders(token) });
|
|
116
|
+
if (!res.ok) {
|
|
117
|
+
const text = await res.text().catch(() => '');
|
|
118
|
+
throw new Error(`HTTP ${res.status} ${res.statusText}: ${text.slice(0, 200)}`);
|
|
119
|
+
}
|
|
120
|
+
const contentType = res.headers.get('content-type') ?? 'application/octet-stream';
|
|
121
|
+
const bytes = Buffer.from(await res.arrayBuffer());
|
|
122
|
+
return { contentType, bytes };
|
|
123
|
+
}
|
|
93
124
|
//# sourceMappingURL=client.js.map
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnF,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAI,IAAY,EAAE,MAA+B;IAC3E,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAE3E,IAAI,GAAG,GAAG,GAAG,WAAW,MAAM,IAAI,EAAE,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClD,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;QACpC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;KAC3C,CAAC,CAAC;IACH,OAAO,aAAa,CAAI,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAI,IAAY,EAAE,IAAa;IAC1D,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAE3E,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,WAAW,MAAM,IAAI,EAAE,EAAE;QAC3D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC1C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,OAAO,aAAa,CAAI,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,IAAY,EAAE,IAAa;IAC3D,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAE3E,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,WAAW,MAAM,IAAI,EAAE,EAAE;QAC3D,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC1C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,OAAO,aAAa,CAAI,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAE3E,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,WAAW,MAAM,IAAI,EAAE,EAAE;QAC3D,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;KAC3C,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,iDAAiD;AACjD,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,IAAY,EAAE,MAA+B;IAC7E,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEjF,IAAI,GAAG,GAAG,GAAG,UAAU,MAAM,IAAI,EAAE,CAAC;IACpC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClD,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;QACpC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC;KACjC,CAAC,CAAC;IACH,OAAO,aAAa,CAAI,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,IAAY,EAAE,IAAa;IAC5D,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEjF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,UAAU,MAAM,IAAI,EAAE,EAAE;QAC1D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,OAAO,aAAa,CAAI,GAAG,CAAC,CAAC;AAC/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory API: org hierarchy and rich user profiles via Microsoft Graph.
|
|
3
|
+
*
|
|
4
|
+
* Works with the directory read permission the Outlook app already has. Pass an
|
|
5
|
+
* email/UPN to target a colleague, or omit it to target the signed-in user.
|
|
6
|
+
*/
|
|
7
|
+
export interface DirectoryUser {
|
|
8
|
+
id?: string;
|
|
9
|
+
displayName?: string;
|
|
10
|
+
givenName?: string;
|
|
11
|
+
surname?: string;
|
|
12
|
+
mail?: string;
|
|
13
|
+
userPrincipalName?: string;
|
|
14
|
+
jobTitle?: string;
|
|
15
|
+
department?: string;
|
|
16
|
+
officeLocation?: string;
|
|
17
|
+
mobilePhone?: string;
|
|
18
|
+
businessPhones?: string[];
|
|
19
|
+
city?: string;
|
|
20
|
+
country?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function getUserProfile(email?: string): Promise<DirectoryUser>;
|
|
23
|
+
export declare function getManager(email?: string): Promise<DirectoryUser>;
|
|
24
|
+
export declare function getDirectReports(email?: string): Promise<DirectoryUser[]>;
|
|
25
|
+
export declare function getUserPhoto(email?: string): Promise<{
|
|
26
|
+
contentType: string;
|
|
27
|
+
bytes: Buffer;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=directory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/api/directory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAUD,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAE3E;AAED,wBAAsB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAEvE;AAED,wBAAsB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAK/E;AAED,wBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAElG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory API: org hierarchy and rich user profiles via Microsoft Graph.
|
|
3
|
+
*
|
|
4
|
+
* Works with the directory read permission the Outlook app already has. Pass an
|
|
5
|
+
* email/UPN to target a colleague, or omit it to target the signed-in user.
|
|
6
|
+
*/
|
|
7
|
+
import { graphGetPath, graphGetBinary } from './client.js';
|
|
8
|
+
const PROFILE_SELECT = 'id,displayName,givenName,surname,mail,userPrincipalName,jobTitle,department,officeLocation,mobilePhone,businessPhones,city,country';
|
|
9
|
+
/** Build the base Graph path for a target: '/me' or '/users/{email}'. */
|
|
10
|
+
function base(email) {
|
|
11
|
+
return email ? `/users/${encodeURIComponent(email)}` : '/me';
|
|
12
|
+
}
|
|
13
|
+
export async function getUserProfile(email) {
|
|
14
|
+
return graphGetPath(base(email), { '$select': PROFILE_SELECT });
|
|
15
|
+
}
|
|
16
|
+
export async function getManager(email) {
|
|
17
|
+
return graphGetPath(`${base(email)}/manager`, { '$select': PROFILE_SELECT });
|
|
18
|
+
}
|
|
19
|
+
export async function getDirectReports(email) {
|
|
20
|
+
const res = await graphGetPath(`${base(email)}/directReports`, {
|
|
21
|
+
'$select': PROFILE_SELECT,
|
|
22
|
+
});
|
|
23
|
+
return res.value ?? [];
|
|
24
|
+
}
|
|
25
|
+
export async function getUserPhoto(email) {
|
|
26
|
+
return graphGetBinary(`${base(email)}/photo/$value`);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/api/directory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkB3D,MAAM,cAAc,GAClB,oIAAoI,CAAC;AAEvI,yEAAyE;AACzE,SAAS,IAAI,CAAC,KAAc;IAC1B,OAAO,KAAK,CAAC,CAAC,CAAC,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAc;IACjD,OAAO,YAAY,CAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAc;IAC7C,OAAO,YAAY,CAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAc;IACnD,MAAM,GAAG,GAAG,MAAM,YAAY,CAA6B,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;QACzF,SAAS,EAAE,cAAc;KAC1B,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAc;IAC/C,OAAO,cAAc,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACvD,CAAC"}
|
package/dist/api/mail.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mail API — email CRUD, search, and folder operations.
|
|
3
3
|
*/
|
|
4
|
+
/** True when the string already carries HTML markup we should leave untouched. */
|
|
5
|
+
export declare function looksLikeHtml(s: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Normalise an outgoing body to HTML so line breaks survive.
|
|
8
|
+
*
|
|
9
|
+
* Outlook renders reply/forward comments and HTML bodies as HTML, where a raw
|
|
10
|
+
* "\n" collapses and the whole message arrives as one block. To stop that:
|
|
11
|
+
* - if the body already contains HTML markup, pass it through untouched, but
|
|
12
|
+
* - if it is plain text, escape it and turn newlines into <br> (a blank line,
|
|
13
|
+
* i.e. a double newline, becomes <br><br> so paragraphs keep their gap).
|
|
14
|
+
*/
|
|
15
|
+
export declare function toHtmlBody(body: string): string;
|
|
4
16
|
export interface EmailAddress {
|
|
5
17
|
Name: string;
|
|
6
18
|
Address: string;
|
|
@@ -29,6 +41,8 @@ export interface Message {
|
|
|
29
41
|
Flag?: {
|
|
30
42
|
FlagStatus: string;
|
|
31
43
|
};
|
|
44
|
+
Categories?: string[];
|
|
45
|
+
IsDraft?: boolean;
|
|
32
46
|
ConversationId?: string;
|
|
33
47
|
ParentFolderId?: string;
|
|
34
48
|
WebLink?: string;
|
|
@@ -64,6 +78,14 @@ export interface ListMessagesOptions {
|
|
|
64
78
|
}
|
|
65
79
|
export declare function listMessages(opts?: ListMessagesOptions): Promise<Message[]>;
|
|
66
80
|
export declare function getMessage(id: string, includeAttachments?: boolean): Promise<Message>;
|
|
81
|
+
/** A file attachment ready to send (content already base64 encoded). */
|
|
82
|
+
export interface OutgoingAttachment {
|
|
83
|
+
name: string;
|
|
84
|
+
contentType: string;
|
|
85
|
+
contentBytes: string;
|
|
86
|
+
}
|
|
87
|
+
/** Read a file from disk into an outgoing attachment (base64 encoded). */
|
|
88
|
+
export declare function fileToAttachment(path: string): Promise<OutgoingAttachment>;
|
|
67
89
|
export interface SendEmailOptions {
|
|
68
90
|
to: string[];
|
|
69
91
|
cc?: string[];
|
|
@@ -72,18 +94,35 @@ export interface SendEmailOptions {
|
|
|
72
94
|
body: string;
|
|
73
95
|
bodyType?: 'Text' | 'HTML';
|
|
74
96
|
importance?: 'Low' | 'Normal' | 'High';
|
|
97
|
+
attachments?: OutgoingAttachment[];
|
|
75
98
|
saveToSentItems?: boolean;
|
|
76
99
|
}
|
|
77
100
|
export declare function sendEmail(opts: SendEmailOptions): Promise<void>;
|
|
78
101
|
export declare function createDraft(opts: Omit<SendEmailOptions, 'saveToSentItems'>): Promise<Message>;
|
|
79
102
|
export declare function replyToMessage(id: string, body: string, replyAll?: boolean): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Create a reply (or reply-all) as a draft instead of sending it.
|
|
105
|
+
*
|
|
106
|
+
* Returns the new draft message, which already has the recipients and the
|
|
107
|
+
* quoted original prefilled, with the supplied body inserted above the quote.
|
|
108
|
+
* The caller can then review or edit it in Outlook and send it later with
|
|
109
|
+
* sendDraft (outlook_send_draft).
|
|
110
|
+
*/
|
|
111
|
+
export declare function createReplyDraft(id: string, body: string, replyAll?: boolean): Promise<Message>;
|
|
112
|
+
/**
|
|
113
|
+
* Create a forward as a draft instead of sending it. Returns the draft message
|
|
114
|
+
* with the quoted original prefilled; recipients and any final edits can be set
|
|
115
|
+
* in Outlook (or via a later update) before sending with sendDraft.
|
|
116
|
+
*/
|
|
117
|
+
export declare function createForwardDraft(id: string, body?: string, to?: string[]): Promise<Message>;
|
|
80
118
|
export declare function forwardMessage(id: string, to: string[], comment?: string): Promise<void>;
|
|
81
119
|
export declare function markMessageRead(id: string, isRead?: boolean): Promise<void>;
|
|
82
120
|
export declare function flagMessage(id: string, status?: 'Flagged' | 'Complete' | 'NotFlagged'): Promise<void>;
|
|
83
121
|
export declare function moveMessage(id: string, destinationFolderId: string): Promise<Message>;
|
|
84
122
|
export declare function deleteMessage(id: string): Promise<void>;
|
|
85
123
|
export interface SearchMessagesOptions {
|
|
86
|
-
query:
|
|
124
|
+
/** Keyword query. Optional: omit it to list everything in a date range. */
|
|
125
|
+
query?: string;
|
|
87
126
|
top?: number;
|
|
88
127
|
folder?: string;
|
|
89
128
|
/** Inclusive lower bound on received date (ISO date or datetime). */
|
|
@@ -111,4 +150,31 @@ export declare function listFolders(): Promise<MailFolder[]>;
|
|
|
111
150
|
export declare function getFolder(idOrName: string): Promise<MailFolder>;
|
|
112
151
|
export declare function getUnreadMessages(top?: number): Promise<Message[]>;
|
|
113
152
|
export declare function sendDraft(draftId: string): Promise<void>;
|
|
153
|
+
export interface UpdateDraftOptions {
|
|
154
|
+
subject?: string;
|
|
155
|
+
body?: string;
|
|
156
|
+
bodyType?: 'Text' | 'HTML';
|
|
157
|
+
to?: string[];
|
|
158
|
+
cc?: string[];
|
|
159
|
+
bcc?: string[];
|
|
160
|
+
importance?: 'Low' | 'Normal' | 'High';
|
|
161
|
+
}
|
|
162
|
+
export declare function updateDraft(id: string, opts: UpdateDraftOptions): Promise<Message>;
|
|
163
|
+
export interface FileAttachmentContent {
|
|
164
|
+
Id: string;
|
|
165
|
+
Name: string;
|
|
166
|
+
ContentType: string;
|
|
167
|
+
Size: number;
|
|
168
|
+
ContentBytes?: string;
|
|
169
|
+
}
|
|
170
|
+
export declare function listAttachments(messageId: string): Promise<Attachment[]>;
|
|
171
|
+
/** Fetch one attachment including its base64 content bytes. */
|
|
172
|
+
export declare function getAttachmentContent(messageId: string, attachmentId: string): Promise<FileAttachmentContent>;
|
|
173
|
+
/** Add a file attachment to an existing message/draft. */
|
|
174
|
+
export declare function addAttachment(messageId: string, attachment: OutgoingAttachment): Promise<void>;
|
|
175
|
+
export declare function getConversation(conversationId: string, top?: number): Promise<Message[]>;
|
|
176
|
+
export declare function setCategories(messageId: string, categories: string[]): Promise<Message>;
|
|
177
|
+
export declare function createFolder(displayName: string, parentFolderId?: string): Promise<MailFolder>;
|
|
178
|
+
export declare function renameFolder(id: string, displayName: string): Promise<MailFolder>;
|
|
179
|
+
export declare function deleteFolder(id: string): Promise<void>;
|
|
114
180
|
//# sourceMappingURL=mail.d.ts.map
|
package/dist/api/mail.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/api/mail.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/api/mail.ts"],"names":[],"mappings":"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"}
|