@nylas-labs/cli-kit 0.1.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/dist/v3.d.ts ADDED
@@ -0,0 +1,369 @@
1
+ /**
2
+ * Edge-safe typed client for the Nylas v3 API (api.{us,eu}.nylas.com).
3
+ *
4
+ * Uses only fetch/WebCrypto globals — runs in Node >= 20, Cloudflare Workers,
5
+ * and browsers. Covers what OwnMail needs:
6
+ * - provisioning: connectors, agent-account grants (provider "nylas"),
7
+ * application redirect URIs
8
+ * - mailbox data: messages, threads, folders, drafts, send, attachments
9
+ * - calendar data: calendars, events, RSVP
10
+ * - hosted auth: authorize URL builder + code/token exchange (PKCE)
11
+ */
12
+ export declare const V3_URLS: {
13
+ readonly us: 'https://api.us.nylas.com';
14
+ readonly eu: 'https://api.eu.nylas.com';
15
+ };
16
+ export type V3Region = keyof typeof V3_URLS;
17
+ /** JSON-serializable value — keeps API payload types transport-safe. */
18
+ export type Json = string | number | boolean | null | Json[] | {
19
+ [key: string]: Json | undefined;
20
+ };
21
+ export type Grant = {
22
+ id: string;
23
+ provider: string;
24
+ email?: string;
25
+ name?: string;
26
+ grant_status?: string;
27
+ created_at?: number;
28
+ settings?: GrantSettings;
29
+ };
30
+ export type GrantSettings = {
31
+ has_app_password?: boolean;
32
+ app_password?: string;
33
+ [key: string]: Json | undefined;
34
+ };
35
+ export type Connector = {
36
+ provider: string;
37
+ settings?: {
38
+ [key: string]: Json | undefined;
39
+ };
40
+ scope?: string[];
41
+ };
42
+ export type RedirectUri = {
43
+ id?: string;
44
+ url: string;
45
+ platform?: string;
46
+ settings?: {
47
+ [key: string]: Json | undefined;
48
+ };
49
+ };
50
+ export type EmailParticipant = {
51
+ email: string;
52
+ name?: string;
53
+ };
54
+ export type MessageAttachment = {
55
+ id: string;
56
+ filename?: string;
57
+ content_type?: string;
58
+ size?: number;
59
+ is_inline?: boolean;
60
+ content_id?: string;
61
+ };
62
+ export type Message = {
63
+ id: string;
64
+ grant_id: string;
65
+ thread_id?: string;
66
+ subject?: string;
67
+ snippet?: string;
68
+ body?: string;
69
+ from?: EmailParticipant[];
70
+ to?: EmailParticipant[];
71
+ cc?: EmailParticipant[];
72
+ bcc?: EmailParticipant[];
73
+ reply_to?: EmailParticipant[];
74
+ date?: number;
75
+ unread?: boolean;
76
+ starred?: boolean;
77
+ folders?: string[];
78
+ attachments?: MessageAttachment[];
79
+ };
80
+ export type Thread = {
81
+ id: string;
82
+ grant_id: string;
83
+ subject?: string;
84
+ snippet?: string;
85
+ participants?: EmailParticipant[];
86
+ message_ids?: string[];
87
+ latest_draft_or_message?: Message;
88
+ earliest_message_date?: number;
89
+ latest_message_received_date?: number;
90
+ latest_message_sent_date?: number;
91
+ has_attachments?: boolean;
92
+ unread?: boolean;
93
+ starred?: boolean;
94
+ folders?: string[];
95
+ };
96
+ export type Folder = {
97
+ id: string;
98
+ grant_id?: string;
99
+ name: string;
100
+ parent_id?: string;
101
+ system_folder?: boolean;
102
+ attributes?: string[];
103
+ total_count?: number;
104
+ unread_count?: number;
105
+ };
106
+ export type Draft = Message & {
107
+ reply_to_message_id?: string;
108
+ };
109
+ export type SendMessageRequest = {
110
+ to: EmailParticipant[];
111
+ cc?: EmailParticipant[];
112
+ bcc?: EmailParticipant[];
113
+ reply_to?: EmailParticipant[];
114
+ subject?: string;
115
+ body?: string;
116
+ reply_to_message_id?: string;
117
+ tracking_options?: {
118
+ [key: string]: Json | undefined;
119
+ };
120
+ attachments?: {
121
+ filename: string;
122
+ content_type: string;
123
+ content: string;
124
+ is_inline?: boolean;
125
+ content_id?: string;
126
+ }[];
127
+ };
128
+ export type Calendar = {
129
+ id: string;
130
+ grant_id?: string;
131
+ name: string;
132
+ timezone?: string;
133
+ is_primary?: boolean;
134
+ read_only?: boolean;
135
+ hex_color?: string;
136
+ };
137
+ export type Contact = {
138
+ id: string;
139
+ grant_id?: string;
140
+ given_name?: string;
141
+ surname?: string;
142
+ company_name?: string;
143
+ job_title?: string;
144
+ emails?: {
145
+ email: string;
146
+ type?: string;
147
+ }[];
148
+ phone_numbers?: {
149
+ number: string;
150
+ type?: string;
151
+ }[];
152
+ notes?: string;
153
+ picture_url?: string;
154
+ };
155
+ export type EventParticipant = {
156
+ email: string;
157
+ name?: string;
158
+ status?: 'yes' | 'no' | 'maybe' | 'noreply';
159
+ };
160
+ export type EventWhen = {
161
+ object?: 'timespan';
162
+ start_time: number;
163
+ end_time: number;
164
+ start_timezone?: string;
165
+ end_timezone?: string;
166
+ } | {
167
+ object?: 'time';
168
+ time: number;
169
+ timezone?: string;
170
+ } | {
171
+ object?: 'date';
172
+ date: string;
173
+ } | {
174
+ object?: 'datespan';
175
+ start_date: string;
176
+ end_date: string;
177
+ };
178
+ export type Event = {
179
+ id: string;
180
+ grant_id?: string;
181
+ calendar_id: string;
182
+ title?: string;
183
+ description?: string;
184
+ location?: string;
185
+ when: EventWhen;
186
+ participants?: EventParticipant[];
187
+ organizer?: {
188
+ email: string;
189
+ name?: string;
190
+ };
191
+ status?: string;
192
+ busy?: boolean;
193
+ read_only?: boolean;
194
+ conferencing?: {
195
+ [key: string]: Json | undefined;
196
+ };
197
+ recurrence?: string[];
198
+ };
199
+ export type Webhook = {
200
+ id: string;
201
+ trigger_types: string[];
202
+ callback_url?: string;
203
+ webhook_url?: string;
204
+ status?: string;
205
+ /** Returned once on create — used to verify X-Nylas-Signature. */
206
+ webhook_secret?: string;
207
+ };
208
+ export type ListResponse<T> = {
209
+ request_id: string;
210
+ data: T[];
211
+ next_cursor?: string;
212
+ };
213
+ export type ItemResponse<T> = {
214
+ request_id: string;
215
+ data: T;
216
+ };
217
+ export type ListQuery = {
218
+ limit?: number;
219
+ page_token?: string;
220
+ [key: string]: string | number | boolean | undefined;
221
+ };
222
+ export declare class NylasApiError extends Error {
223
+ readonly status: number;
224
+ readonly requestId?: string | undefined;
225
+ readonly type?: string | undefined;
226
+ readonly body?: unknown;
227
+ constructor(message: string, status: number, requestId?: string | undefined, type?: string | undefined, body?: unknown);
228
+ }
229
+ export declare function buildAuthorizeUrl(input: {
230
+ region: V3Region;
231
+ baseUrl?: string;
232
+ clientId: string;
233
+ redirectUri: string;
234
+ provider?: string;
235
+ state?: string;
236
+ loginHint?: string;
237
+ codeChallenge?: string;
238
+ accessType?: 'online' | 'offline';
239
+ }): string;
240
+ export type TokenResponse = {
241
+ access_token?: string;
242
+ refresh_token?: string;
243
+ grant_id: string;
244
+ email?: string;
245
+ expires_in?: number;
246
+ id_token?: string;
247
+ provider?: string;
248
+ token_type?: string;
249
+ scope?: string;
250
+ };
251
+ export declare function exchangeCodeForToken(input: {
252
+ region: V3Region;
253
+ baseUrl?: string;
254
+ clientId: string;
255
+ redirectUri: string;
256
+ code: string;
257
+ clientSecret: string;
258
+ codeVerifier?: string;
259
+ }, fetchImpl?: typeof fetch): Promise<TokenResponse>;
260
+ /** PKCE pair: verifier to keep server-side, S256 challenge for the authorize URL. */
261
+ export declare function generatePkcePair(): Promise<{
262
+ verifier: string;
263
+ challenge: string;
264
+ }>;
265
+ /**
266
+ * Nylas Hosted Auth encodes the lowercase SHA-256 hex text before Base64URL
267
+ * encoding it. This intentionally differs from RFC 7636's raw-digest form;
268
+ * keep it aligned with Nylas's documented PKCE challenge example.
269
+ */
270
+ export declare function nylasPkceS256Challenge(verifier: string): Promise<string>;
271
+ export declare class NylasV3Client {
272
+ private readonly apiKey;
273
+ private readonly fetchImpl;
274
+ private readonly baseUrl;
275
+ constructor(apiKey: string, region?: V3Region, fetchImpl?: typeof fetch, baseUrl?: string);
276
+ /** Creates an Agent Account mailbox grant (provider "nylas"). */
277
+ createAgentAccount(input: {
278
+ email: string;
279
+ appPassword?: string;
280
+ name?: string;
281
+ workspaceId?: string;
282
+ }): Promise<Grant>;
283
+ listGrants(query?: ListQuery): Promise<ListResponse<Grant>>;
284
+ updateGrant(grantId: string, input: {
285
+ settings?: {
286
+ [key: string]: Json | undefined;
287
+ };
288
+ workspaceId?: string;
289
+ }): Promise<ItemResponse<Grant>>;
290
+ deleteGrant(grantId: string): Promise<void>;
291
+ listConnectors(): Promise<ListResponse<Connector>>;
292
+ createConnector(input: {
293
+ provider: string;
294
+ settings?: {
295
+ [key: string]: Json | undefined;
296
+ };
297
+ }): Promise<ItemResponse<Connector>>;
298
+ /** Ensures a connector for `provider` exists on the application (idempotent). */
299
+ ensureConnector(provider: string): Promise<Connector>;
300
+ listWebhooks(): Promise<ListResponse<Webhook>>;
301
+ createWebhook(input: {
302
+ trigger_types: string[];
303
+ webhook_url: string;
304
+ description?: string;
305
+ }): Promise<ItemResponse<Webhook>>;
306
+ /** Creates the webhook if no active one exists for this URL; returns it either way. */
307
+ ensureWebhook(callbackUrl: string, triggerTypes: string[]): Promise<Webhook>;
308
+ listRedirectUris(): Promise<ListResponse<RedirectUri>>;
309
+ createRedirectUri(input: {
310
+ url: string;
311
+ platform?: string;
312
+ }): Promise<ItemResponse<RedirectUri>>;
313
+ /** Registers each URL if not already present (idempotent). */
314
+ ensureRedirectUris(urls: string[]): Promise<void>;
315
+ forGrant(grantId: string): GrantScopedClient;
316
+ request<T>(method: string, path: string, body?: unknown): Promise<T>;
317
+ rawRequest(method: string, path: string, body?: unknown): Promise<Response>;
318
+ }
319
+ export declare function resolveV3BaseUrl(region: V3Region, baseUrl?: string): string;
320
+ export declare class GrantScopedClient {
321
+ private readonly client;
322
+ private readonly grantId;
323
+ constructor(client: NylasV3Client, grantId: string);
324
+ private path;
325
+ listMessages(query?: ListQuery): Promise<ListResponse<Message>>;
326
+ getMessage(messageId: string): Promise<ItemResponse<Message>>;
327
+ updateMessage(messageId: string, body: {
328
+ unread?: boolean;
329
+ starred?: boolean;
330
+ folders?: string[];
331
+ }): Promise<ItemResponse<Message>>;
332
+ deleteMessage(messageId: string): Promise<void>;
333
+ send(body: SendMessageRequest): Promise<ItemResponse<Message>>;
334
+ listThreads(query?: ListQuery): Promise<ListResponse<Thread>>;
335
+ getThread(threadId: string): Promise<ItemResponse<Thread>>;
336
+ updateThread(threadId: string, body: {
337
+ unread?: boolean;
338
+ starred?: boolean;
339
+ folders?: string[];
340
+ }): Promise<ItemResponse<Thread>>;
341
+ listFolders(query?: ListQuery): Promise<ListResponse<Folder>>;
342
+ createFolder(body: {
343
+ name: string;
344
+ parent_id?: string;
345
+ }): Promise<ItemResponse<Folder>>;
346
+ listDrafts(query?: ListQuery): Promise<ListResponse<Draft>>;
347
+ getDraft(draftId: string): Promise<ItemResponse<Draft>>;
348
+ createDraft(body: SendMessageRequest): Promise<ItemResponse<Draft>>;
349
+ updateDraft(draftId: string, body: SendMessageRequest): Promise<ItemResponse<Draft>>;
350
+ deleteDraft(draftId: string): Promise<void>;
351
+ sendDraft(draftId: string): Promise<ItemResponse<Message>>;
352
+ attachmentDownloadUrl(attachmentId: string, messageId: string): string;
353
+ downloadAttachment(attachmentId: string, messageId: string): Promise<Response>;
354
+ listContacts(query?: ListQuery): Promise<ListResponse<Contact>>;
355
+ getContact(contactId: string): Promise<ItemResponse<Contact>>;
356
+ createContact(body: Partial<Contact>): Promise<ItemResponse<Contact>>;
357
+ updateContact(contactId: string, body: Partial<Contact>): Promise<ItemResponse<Contact>>;
358
+ deleteContact(contactId: string): Promise<void>;
359
+ listCalendars(query?: ListQuery): Promise<ListResponse<Calendar>>;
360
+ listEvents(query: ListQuery & {
361
+ calendar_id: string;
362
+ }): Promise<ListResponse<Event>>;
363
+ getEvent(eventId: string, calendarId: string): Promise<ItemResponse<Event>>;
364
+ createEvent(body: Partial<Event>, calendarId: string): Promise<ItemResponse<Event>>;
365
+ updateEvent(eventId: string, body: Partial<Event>, calendarId: string): Promise<ItemResponse<Event>>;
366
+ deleteEvent(eventId: string, calendarId: string): Promise<void>;
367
+ sendRsvp(eventId: string, calendarId: string, status: 'yes' | 'no' | 'maybe'): Promise<ItemResponse<unknown>>;
368
+ }
369
+ //# sourceMappingURL=v3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v3.d.ts","sourceRoot":"","sources":["../src/v3.ts"],"names":[],"mappings":"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"}