@fluxmail/provider-gmail 0.8.1 → 0.10.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/errors.d.ts CHANGED
@@ -9,5 +9,5 @@ export declare function isRetryable(err: unknown): boolean;
9
9
  export declare function isRetryableForNonIdempotentRequest(err: unknown): boolean;
10
10
  /** Map googleapis errors onto the normalized EmailError codes. */
11
11
  export declare function toEmailError(err: unknown): EmailError;
12
- export declare function withRetry<T>(fn: () => Promise<T>, maxRetries?: number, retryable?: (err: unknown) => boolean): Promise<T>;
12
+ export declare function withRetry<T>(fn: () => Promise<T>, maxRetries?: number, retryable?: (err: unknown) => boolean, signal?: AbortSignal): Promise<T>;
13
13
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkC5C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAOzD;AAMD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAWjD;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIxE;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CA2BrD;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,SAAI,EACd,SAAS,GAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAqB,GACjD,OAAO,CAAC,CAAC,CAAC,CAYZ"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkC5C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAOzD;AAMD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAWjD;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIxE;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CA2BrD;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,SAAI,EACd,SAAS,GAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAqB,EAClD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
package/dist/errors.js CHANGED
@@ -71,17 +71,32 @@ export function toEmailError(err) {
71
71
  }
72
72
  return new EmailError('provider_unavailable', `Gmail API failure: ${message}`);
73
73
  }
74
- export async function withRetry(fn, maxRetries = 3, retryable = isRetryable) {
74
+ export async function withRetry(fn, maxRetries = 3, retryable = isRetryable, signal) {
75
75
  let attempt = 0;
76
76
  for (;;) {
77
+ signal?.throwIfAborted();
77
78
  try {
78
79
  return await fn();
79
80
  }
80
81
  catch (err) {
82
+ signal?.throwIfAborted();
81
83
  if (attempt >= maxRetries || !retryable(err))
82
84
  throw toEmailError(err);
83
85
  const delayMs = 500 * 2 ** attempt + Math.floor(Math.random() * 250);
84
- await new Promise((r) => setTimeout(r, delayMs));
86
+ await new Promise((resolve, reject) => {
87
+ const onAbort = () => {
88
+ clearTimeout(timer);
89
+ signal?.removeEventListener('abort', onAbort);
90
+ reject(signal?.reason);
91
+ };
92
+ const timer = setTimeout(() => {
93
+ signal?.removeEventListener('abort', onAbort);
94
+ resolve();
95
+ }, delayMs);
96
+ signal?.addEventListener('abort', onAbort, { once: true });
97
+ if (signal?.aborted)
98
+ onAbort();
99
+ });
85
100
  attempt++;
86
101
  }
87
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { OAuth2Client } from 'googleapis-common';
2
- import { type AttachmentMeta, type Capabilities, type DraftInput, type EmailProvider, type EmailQuery, type Folder, type GetAttachmentOpts, type GetMessageOpts, type Label, type Message, type ModifyAction, type Page, type PageOpts, type SendResult, type Thread } from '@fluxmail/core';
2
+ import { type AttachmentMeta, type Capabilities, type DraftInput, type EmailProvider, type EmailQuery, type Folder, type GetAttachmentOpts, type GetMessageOpts, type Label, type Message, type ModifyAction, type MessageSearchPage, type PageOpts, type SendResult, type SendAsIdentity, type Thread } from '@fluxmail/core';
3
3
  export interface GmailProviderOptions {
4
4
  accountId: string;
5
5
  email: string;
@@ -16,6 +16,7 @@ export declare class GmailProvider implements EmailProvider {
16
16
  private readonly displayName;
17
17
  private readonly auth;
18
18
  private labelCache;
19
+ private sendAsCache;
19
20
  /** undefined = not resolved yet; null = no name available. */
20
21
  private senderName;
21
22
  constructor(opts: GmailProviderOptions);
@@ -26,12 +27,15 @@ export declare class GmailProvider implements EmailProvider {
26
27
  */
27
28
  private resolveSenderName;
28
29
  testConnection(): Promise<void>;
30
+ listSendAs(): Promise<SendAsIdentity[]>;
29
31
  private labels;
30
32
  private labelNameMap;
31
33
  /** Gmail messages carry the DRAFT label, but only Draft resources expose the draft id. */
32
34
  private attachDraftIds;
33
35
  private resolveLabelId;
34
- listMessages(input: EmailQuery, page?: PageOpts): Promise<Page<Message>>;
36
+ listMessages(input: EmailQuery, page?: PageOpts): Promise<MessageSearchPage>;
37
+ private attachSearchContext;
38
+ private searchContext;
35
39
  getMessage(id: string, opts?: GetMessageOpts): Promise<Message>;
36
40
  getThread(threadId: string): Promise<Thread>;
37
41
  private parseFullMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"gmailProvider.d.ts","sourceRoot":"","sources":["../src/gmailProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,MAAM,EAEX,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AAkGxB,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,eAAO,MAAM,kBAAkB,EAAE,YAkBhC,CAAC;AAEF,qBAAa,aAAc,YAAW,aAAa;IACjD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAsB;IAEzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,UAAU,CAAuE;IACzF,8DAA8D;IAC9D,OAAO,CAAC,UAAU,CAA4B;gBAElC,IAAI,EAAE,oBAAoB;IAQtC;;;;OAIG;YACW,iBAAiB;IAoCzB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;YAIvB,MAAM;YAUN,YAAY;IAK1B,0FAA0F;YAC5E,cAAc;YA0Bd,cAAc;IA8BtB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAyGxE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAcpC,gBAAgB;IA+BxB,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBhC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAuBpC,6FAA6F;YAC/E,YAAY;IAwB1B,qGAAqG;YACvF,6BAA6B;YAiB7B,UAAU;YAwBV,cAAc;IAQtB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAc5C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAe7D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAyBlE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAwF1D,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAwBtD"}
1
+ {"version":3,"file":"gmailProvider.d.ts","sourceRoot":"","sources":["../src/gmailProvider.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { google } from 'googleapis';
2
- import { EmailError, isEmailError, normalizeEmailQuery, replySubject, } from '@fluxmail/core';
2
+ import { EmailError, extractSearchContext, isEmailError, normalizeEmailQuery, replySubject, } from '@fluxmail/core';
3
3
  import { toGmailQuery, ROLE_TO_LABEL } from './query.js';
4
- import { decodeBase64Url, decodeTextPart, encodeBase64Url, findAttachment, parseGmailMessage, parseGmailMessageWithParts, } from './parse.js';
4
+ import { decodeBase64Url, decodeTextPart, encodeBase64Url, findAttachment, parseGmailMessage, parseGmailMessageWithParts, walkParts, } from './parse.js';
5
5
  import { buildRawMessage } from './mime.js';
6
6
  import { isInsufficientScope, isRetryableForNonIdempotentRequest, withRetry } from './errors.js';
7
7
  const LABEL_TO_ROLE = {
@@ -25,12 +25,14 @@ const METADATA_HEADERS = [
25
25
  'In-Reply-To',
26
26
  ];
27
27
  const LABEL_CACHE_TTL_MS = 60_000;
28
+ const SEND_AS_CACHE_TTL_MS = 60_000;
28
29
  const HYDRATE_CONCURRENCY = 10;
29
30
  const DEFAULT_PAGE_SIZE = 25;
30
31
  const MAX_PAGE_SIZE = 100;
31
32
  const NON_IDEMPOTENT_MAX_RETRIES = 3;
32
33
  const BATCH_MODIFY_MAX_IDS = 1_000;
33
34
  const FILTERED_PAGE_TOKEN_VERSION = 1;
35
+ const FILTERED_PAGE_TOKEN_PREFIX = 'fm1.';
34
36
  const GOOGLE_USERINFO_URL = 'https://openidconnect.googleapis.com/v1/userinfo';
35
37
  const IMMUTABLE_SYSTEM_LABELS = new Set(['sent', 'draft', 'drafts', 'trash']);
36
38
  function invalidFilteredPageToken() {
@@ -40,8 +42,11 @@ function decodeFilteredPageToken(token) {
40
42
  if (!token)
41
43
  return { v: FILTERED_PAGE_TOKEN_VERSION, pendingIds: [] };
42
44
  try {
43
- const bytes = Buffer.from(token, 'base64url');
44
- if (bytes.toString('base64url') !== token)
45
+ const encoded = token.startsWith(FILTERED_PAGE_TOKEN_PREFIX)
46
+ ? token.slice(FILTERED_PAGE_TOKEN_PREFIX.length)
47
+ : token;
48
+ const bytes = Buffer.from(encoded, 'base64url');
49
+ if (bytes.toString('base64url') !== encoded)
45
50
  throw new Error();
46
51
  const parsed = JSON.parse(bytes.toString('utf8'));
47
52
  if (parsed.v !== FILTERED_PAGE_TOKEN_VERSION ||
@@ -62,11 +67,12 @@ function decodeFilteredPageToken(token) {
62
67
  }
63
68
  }
64
69
  function encodeFilteredPageToken(pendingIds, providerToken) {
65
- return Buffer.from(JSON.stringify({
70
+ const encoded = Buffer.from(JSON.stringify({
66
71
  v: FILTERED_PAGE_TOKEN_VERSION,
67
72
  pendingIds,
68
73
  ...(providerToken ? { providerToken } : {}),
69
74
  })).toString('base64url');
75
+ return `${FILTERED_PAGE_TOKEN_PREFIX}${encoded}`;
70
76
  }
71
77
  function assertAttachmentSize(sizeBytes, maxBytes) {
72
78
  if (maxBytes !== undefined && sizeBytes > maxBytes) {
@@ -94,6 +100,7 @@ export const GMAIL_CAPABILITIES = {
94
100
  nativeQuery: { syntax: 'gmail', availability: 'available' },
95
101
  },
96
102
  snippets: true,
103
+ searchContext: true,
97
104
  };
98
105
  export class GmailProvider {
99
106
  capabilities = GMAIL_CAPABILITIES;
@@ -103,6 +110,7 @@ export class GmailProvider {
103
110
  displayName;
104
111
  auth;
105
112
  labelCache = null;
113
+ sendAsCache = null;
106
114
  /** undefined = not resolved yet; null = no name available. */
107
115
  senderName;
108
116
  constructor(opts) {
@@ -123,17 +131,15 @@ export class GmailProvider {
123
131
  let lookupFailed = false;
124
132
  let sendAsName;
125
133
  try {
126
- const res = await withRetry(() => this.gmail.users.settings.sendAs.list({ userId: 'me' }));
127
- const primary = res.data.sendAs?.find((s) => s.isPrimary) ?? res.data.sendAs?.find((s) => s.sendAsEmail === this.email);
128
- sendAsName = primary?.displayName?.trim() || undefined;
134
+ const primary = (await this.listSendAs()).find((identity) => identity.isPrimary);
135
+ sendAsName = primary?.name?.trim() || undefined;
129
136
  }
130
137
  catch {
131
138
  // Fall through to the profile and stored account name.
132
139
  lookupFailed = true;
133
140
  }
134
141
  if (sendAsName) {
135
- this.senderName = sendAsName;
136
- return this.senderName;
142
+ return sendAsName;
137
143
  }
138
144
  try {
139
145
  const res = await withRetry(() => this.auth.request({ url: GOOGLE_USERINFO_URL }));
@@ -157,31 +163,68 @@ export class GmailProvider {
157
163
  async testConnection() {
158
164
  await withRetry(() => this.gmail.users.getProfile({ userId: 'me' }));
159
165
  }
160
- async labels(forceRefresh = false) {
166
+ async listSendAs() {
167
+ if (this.sendAsCache && Date.now() - this.sendAsCache.fetchedAt < SEND_AS_CACHE_TTL_MS) {
168
+ return this.sendAsCache.identities;
169
+ }
170
+ const res = await withRetry(() => this.gmail.users.settings.sendAs.list({ userId: 'me' }));
171
+ const identities = (res.data.sendAs ?? []).flatMap((identity) => {
172
+ const email = identity.sendAsEmail?.trim() || (identity.isPrimary ? this.email : undefined);
173
+ if (!email || (!identity.isPrimary && identity.verificationStatus !== 'accepted'))
174
+ return [];
175
+ const name = identity.displayName?.trim();
176
+ const replyTo = identity.replyToAddress?.trim();
177
+ return [
178
+ {
179
+ email,
180
+ ...(name ? { name } : {}),
181
+ ...(replyTo ? { replyTo } : {}),
182
+ isPrimary: Boolean(identity.isPrimary),
183
+ source: 'provider',
184
+ },
185
+ ];
186
+ });
187
+ if (!identities.some((identity) => identity.email.toLowerCase() === this.email.toLowerCase())) {
188
+ identities.unshift({
189
+ email: this.email,
190
+ ...(this.displayName ? { name: this.displayName } : {}),
191
+ isPrimary: true,
192
+ source: 'provider',
193
+ });
194
+ }
195
+ this.sendAsCache = { fetchedAt: Date.now(), identities };
196
+ return identities;
197
+ }
198
+ async labels(forceRefresh = false, signal) {
161
199
  if (!forceRefresh && this.labelCache && Date.now() - this.labelCache.fetchedAt < LABEL_CACHE_TTL_MS) {
162
200
  return this.labelCache.labels;
163
201
  }
164
- const res = await withRetry(() => this.gmail.users.labels.list({ userId: 'me' }));
202
+ const res = await withRetry(() => signal
203
+ ? this.gmail.users.labels.list({ userId: 'me' }, { signal })
204
+ : this.gmail.users.labels.list({ userId: 'me' }), 3, undefined, signal);
165
205
  const labels = res.data.labels ?? [];
166
206
  this.labelCache = { fetchedAt: Date.now(), labels };
167
207
  return labels;
168
208
  }
169
- async labelNameMap() {
170
- const labels = await this.labels();
209
+ async labelNameMap(signal) {
210
+ const labels = await this.labels(false, signal);
171
211
  return new Map(labels.filter((l) => l.id && l.name).map((l) => [l.id, l.name]));
172
212
  }
173
213
  /** Gmail messages carry the DRAFT label, but only Draft resources expose the draft id. */
174
- async attachDraftIds(messages) {
214
+ async attachDraftIds(messages, signal) {
175
215
  const unresolved = new Map(messages.filter((message) => message.flags.draft).map((message) => [message.id, message]));
176
216
  if (!unresolved.size)
177
217
  return;
178
218
  let pageToken;
179
219
  do {
180
- const res = await withRetry(() => this.gmail.users.drafts.list({
181
- userId: 'me',
182
- maxResults: 500,
183
- ...(pageToken ? { pageToken } : {}),
184
- }));
220
+ const res = await withRetry(() => {
221
+ const params = {
222
+ userId: 'me',
223
+ maxResults: 500,
224
+ ...(pageToken ? { pageToken } : {}),
225
+ };
226
+ return signal ? this.gmail.users.drafts.list(params, { signal }) : this.gmail.users.drafts.list(params);
227
+ }, 3, undefined, signal);
185
228
  for (const draft of res.data.drafts ?? []) {
186
229
  const message = draft.message?.id ? unresolved.get(draft.message.id) : undefined;
187
230
  if (message && draft.id) {
@@ -221,6 +264,7 @@ export class GmailProvider {
221
264
  return created.data.id;
222
265
  }
223
266
  async listMessages(input, page) {
267
+ page?.signal?.throwIfAborted();
224
268
  const normalized = normalizeEmailQuery(input);
225
269
  if (!normalized.success) {
226
270
  throw new EmailError('invalid_request', normalized.diagnostics.map((item) => item.message).join(' '), {
@@ -228,20 +272,27 @@ export class GmailProvider {
228
272
  });
229
273
  }
230
274
  const q = normalized.query;
231
- const labels = await this.labels();
275
+ if (page?.includeSearchContext && !q.text) {
276
+ throw new EmailError('invalid_request', 'includeSearchContext requires a portable text query.');
277
+ }
278
+ const labels = await this.labels(false, page?.signal);
232
279
  const gq = toGmailQuery(q, (folder) => {
233
280
  const match = labels.find((l) => l.id === folder || l.name?.toLowerCase() === folder.toLowerCase());
234
281
  return match?.id ?? null;
235
282
  });
236
283
  const pageSize = Math.min(Math.max(page?.pageSize ?? DEFAULT_PAGE_SIZE, 1), MAX_PAGE_SIZE);
237
- const labelNames = await this.labelNameMap();
284
+ const labelNames = await this.labelNameMap(page?.signal);
238
285
  const items = [];
239
286
  const localFilter = q.hasAttachment !== undefined || q.after !== undefined || q.before !== undefined;
240
287
  let inspectedCandidates = 0;
241
- const decodedToken = localFilter ? decodeFilteredPageToken(page?.pageToken) : undefined;
288
+ const decodedToken = localFilter || page?.pageToken?.startsWith(FILTERED_PAGE_TOKEN_PREFIX)
289
+ ? decodeFilteredPageToken(page?.pageToken)
290
+ : undefined;
242
291
  let pendingIds = decodedToken?.pendingIds ?? [];
243
- let providerToken = localFilter ? decodedToken?.providerToken : page?.pageToken;
292
+ let providerToken = decodedToken ? decodedToken.providerToken : page?.pageToken;
244
293
  let remainingIds = [];
294
+ let timeLimited = false;
295
+ const diagnostics = [];
245
296
  do {
246
297
  let ids;
247
298
  if (pendingIds.length) {
@@ -250,26 +301,42 @@ export class GmailProvider {
250
301
  }
251
302
  else {
252
303
  const batchSize = Math.min(localFilter ? MAX_PAGE_SIZE : pageSize - items.length, 1_000 - inspectedCandidates);
253
- const res = await withRetry(() => this.gmail.users.messages.list({
254
- userId: 'me',
255
- maxResults: batchSize,
256
- ...(providerToken ? { pageToken: providerToken } : {}),
257
- ...(gq.q ? { q: gq.q } : {}),
258
- ...(gq.labelIds ? { labelIds: gq.labelIds } : {}),
259
- ...(gq.includeSpamTrash ? { includeSpamTrash: true } : {}),
260
- }));
304
+ const res = await withRetry(() => {
305
+ const params = {
306
+ userId: 'me',
307
+ maxResults: batchSize,
308
+ ...(providerToken ? { pageToken: providerToken } : {}),
309
+ ...(gq.q ? { q: gq.q } : {}),
310
+ ...(gq.labelIds ? { labelIds: gq.labelIds } : {}),
311
+ ...(gq.includeSpamTrash ? { includeSpamTrash: true } : {}),
312
+ };
313
+ return page?.signal
314
+ ? this.gmail.users.messages.list(params, { signal: page.signal })
315
+ : this.gmail.users.messages.list(params);
316
+ }, 3, undefined, page?.signal);
261
317
  ids = (res.data.messages ?? []).map((message) => message.id).filter(Boolean);
262
318
  providerToken = res.data.nextPageToken ?? undefined;
263
319
  }
264
320
  let processedIds = 0;
265
321
  for (let i = 0; i < ids.length; i += HYDRATE_CONCURRENCY) {
322
+ page?.signal?.throwIfAborted();
323
+ if (page?.softDeadlineAt !== undefined && Date.now() >= page.softDeadlineAt) {
324
+ timeLimited = true;
325
+ break;
326
+ }
266
327
  const chunk = ids.slice(i, i + HYDRATE_CONCURRENCY);
267
- const fetched = await Promise.allSettled(chunk.map((id) => withRetry(() => this.gmail.users.messages.get({
268
- userId: 'me',
269
- id,
270
- format: q.hasAttachment !== undefined ? 'full' : 'metadata',
271
- metadataHeaders: METADATA_HEADERS,
272
- }))));
328
+ const contextTargets = [];
329
+ const fetched = await Promise.allSettled(chunk.map((id) => withRetry(() => {
330
+ const params = {
331
+ userId: 'me',
332
+ id,
333
+ format: q.hasAttachment !== undefined ? 'full' : 'metadata',
334
+ metadataHeaders: METADATA_HEADERS,
335
+ };
336
+ return page?.signal
337
+ ? this.gmail.users.messages.get(params, { signal: page.signal })
338
+ : this.gmail.users.messages.get(params);
339
+ }, 3, undefined, page?.signal)));
273
340
  for (const result of fetched) {
274
341
  inspectedCandidates += 1;
275
342
  processedIds += 1;
@@ -284,6 +351,8 @@ export class GmailProvider {
284
351
  includeBody: false,
285
352
  includeAttachments: q.hasAttachment !== undefined,
286
353
  });
354
+ if (page?.includeSnippet === false)
355
+ delete message.snippet;
287
356
  if (q.after && message.date < `${q.after}T00:00:00.000Z`)
288
357
  continue;
289
358
  if (q.before && message.date >= `${q.before}T00:00:00.000Z`)
@@ -293,25 +362,35 @@ export class GmailProvider {
293
362
  if (hasAttachment !== q.hasAttachment)
294
363
  continue;
295
364
  }
365
+ if (page?.includeSearchContext) {
366
+ // Full MIME is already loaded when local attachment filtering required it.
367
+ contextTargets.push(q.hasAttachment !== undefined ? { message, full: result.value.data } : { message });
368
+ }
296
369
  items.push(message);
297
370
  if (items.length === pageSize)
298
371
  break;
299
372
  }
300
- if (items.length === pageSize || inspectedCandidates >= 1_000)
373
+ if (q.text && contextTargets.length) {
374
+ const queryText = q.text;
375
+ await Promise.all(contextTargets.map(({ message, full }) => this.attachSearchContext(message, full, queryText, diagnostics, page?.signal)));
376
+ }
377
+ if (timeLimited || items.length === pageSize || inspectedCandidates >= 1_000)
301
378
  break;
302
379
  }
303
380
  remainingIds = ids.slice(processedIds);
304
- if (items.length === pageSize || inspectedCandidates >= 1_000)
381
+ if (timeLimited || items.length === pageSize || inspectedCandidates >= 1_000)
305
382
  break;
306
383
  if (!providerToken)
307
384
  break;
308
385
  } while (items.length < pageSize && inspectedCandidates < 1_000);
309
- await this.attachDraftIds(items);
386
+ await this.attachDraftIds(items, page?.signal);
310
387
  const out = {
311
388
  items,
389
+ exhausted: false,
312
390
  ...(localFilter ? { inspectedCandidates } : {}),
391
+ ...(diagnostics.length ? { diagnostics } : {}),
313
392
  };
314
- const nextPageToken = localFilter
393
+ const nextPageToken = localFilter || timeLimited
315
394
  ? remainingIds.length || providerToken
316
395
  ? encodeFilteredPageToken(remainingIds, providerToken)
317
396
  : undefined
@@ -322,8 +401,52 @@ export class GmailProvider {
322
401
  out.incomplete = true;
323
402
  out.incompleteReason = 'scan_limit';
324
403
  }
404
+ if (timeLimited && nextPageToken) {
405
+ out.incomplete = true;
406
+ out.incompleteReason = 'time_limit';
407
+ }
408
+ out.exhausted = !nextPageToken && out.incompleteReason !== 'provider_limit';
325
409
  return out;
326
410
  }
411
+ async attachSearchContext(message, full, queryText, diagnostics, signal) {
412
+ try {
413
+ let raw = full;
414
+ if (!raw) {
415
+ const params = { userId: 'me', id: message.id, format: 'full' };
416
+ const response = await withRetry(() => (signal ? this.gmail.users.messages.get(params, { signal }) : this.gmail.users.messages.get(params)), 3, undefined, signal);
417
+ raw = response.data;
418
+ }
419
+ message.searchContext = await this.searchContext(raw, queryText, signal);
420
+ }
421
+ catch {
422
+ signal?.throwIfAborted();
423
+ message.searchContext = { status: 'unavailable' };
424
+ diagnostics.push({
425
+ code: 'search_context_unavailable',
426
+ severity: 'warning',
427
+ message: 'Search context could not be loaded for a message. Message metadata is still available.',
428
+ });
429
+ }
430
+ }
431
+ async searchContext(raw, queryText, signal) {
432
+ const walked = walkParts(raw.payload);
433
+ for (const field of ['text', 'html']) {
434
+ if (walked.body[field] !== undefined) {
435
+ return extractSearchContext({ [field]: walked.body[field] }, queryText);
436
+ }
437
+ const external = walked.externalBodyParts[field];
438
+ if (!external)
439
+ continue;
440
+ const params = { userId: 'me', messageId: raw.id, id: external.attachmentId };
441
+ const response = await withRetry(() => signal
442
+ ? this.gmail.users.messages.attachments.get(params, { signal })
443
+ : this.gmail.users.messages.attachments.get(params), 3, undefined, signal);
444
+ if (response.data.data == null)
445
+ return { status: 'unavailable' };
446
+ return extractSearchContext({ [field]: decodeTextPart(external.part, response.data.data) }, queryText);
447
+ }
448
+ return { status: 'unavailable' };
449
+ }
327
450
  async getMessage(id, opts) {
328
451
  const res = await withRetry(() => this.gmail.users.messages.get({ userId: 'me', id, format: 'full' }));
329
452
  const labelNames = await this.labelNameMap();
@@ -469,9 +592,21 @@ export class GmailProvider {
469
592
  threading = existingThreading;
470
593
  threadId = existingThreading.threadId;
471
594
  }
472
- const senderName = await this.resolveSenderName();
473
- const from = senderName ? { name: senderName, email: this.email } : { email: this.email };
474
- const raw = await buildRawMessage(draft, from, threading);
595
+ let from = { email: this.email };
596
+ let replyTo;
597
+ if (draft.from && draft.from.toLowerCase() !== this.email.toLowerCase()) {
598
+ const identity = (await this.listSendAs()).find((candidate) => candidate.email.toLowerCase() === draft.from.toLowerCase());
599
+ if (!identity)
600
+ throw new EmailError('invalid_request', `Sender address "${draft.from}" is not available.`);
601
+ from = { email: identity.email, ...(identity.name ? { name: identity.name } : {}) };
602
+ if (identity.replyTo)
603
+ replyTo = { email: identity.replyTo };
604
+ }
605
+ else {
606
+ const senderName = await this.resolveSenderName();
607
+ from = senderName ? { name: senderName, email: this.email } : { email: this.email };
608
+ }
609
+ const raw = await buildRawMessage(draft, from, threading, replyTo);
475
610
  const out = { raw: encodeBase64Url(raw) };
476
611
  if (threadId)
477
612
  out.threadId = threadId;
@@ -501,8 +636,9 @@ export class GmailProvider {
501
636
  async updateDraft(draftId, d) {
502
637
  // Replacing a reply draft's content must not detach it from its thread:
503
638
  // carry the draft's threading over unless the caller re-derives it.
639
+ const current = d.from === undefined ? await this.getDraft(draftId) : undefined;
504
640
  const existing = d.replyToMessageId ? undefined : await this.resolveExistingDraftThreading(draftId);
505
- const { raw, threadId } = await this.composeRaw(d, existing);
641
+ const { raw, threadId } = await this.composeRaw(d.from === undefined && current?.from?.email ? { ...d, from: current.from.email } : d, existing);
506
642
  const res = await withRetry(() => this.gmail.users.drafts.update({
507
643
  userId: 'me',
508
644
  id: draftId,
@@ -1 +1 @@
1
- {"version":3,"file":"gmailProvider.js","sourceRoot":"","sources":["../src/gmailProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmailProvider.js","sourceRoot":"","sources":["../src/gmailProvider.ts"],"names":[],"mappings":"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"}
package/dist/mime.d.ts CHANGED
@@ -4,5 +4,5 @@ export interface ThreadingHeaders {
4
4
  references?: string;
5
5
  }
6
6
  /** Build a raw RFC 5322 message from a DraftInput. */
7
- export declare function buildRawMessage(draft: DraftInput, from: EmailAddress, threading?: ThreadingHeaders): Promise<Buffer>;
7
+ export declare function buildRawMessage(draft: DraftInput, from: EmailAddress, threading?: ThreadingHeaders, replyTo?: EmailAddress): Promise<Buffer>;
8
8
  //# sourceMappingURL=mime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAuBD,sDAAsD;AACtD,wBAAsB,eAAe,CACnC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,YAAY,EAClB,SAAS,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAgCjB"}
1
+ {"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAuBD,sDAAsD;AACtD,wBAAsB,eAAe,CACnC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,YAAY,EAClB,SAAS,CAAC,EAAE,gBAAgB,EAC5B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,CAAC,CAiCjB"}
package/dist/mime.js CHANGED
@@ -22,9 +22,10 @@ function decodeAttachmentContent(rawContent) {
22
22
  return decoded;
23
23
  }
24
24
  /** Build a raw RFC 5322 message from a DraftInput. */
25
- export async function buildRawMessage(draft, from, threading) {
25
+ export async function buildRawMessage(draft, from, threading, replyTo) {
26
26
  const options = {
27
27
  from: { name: from.name ?? '', address: from.email },
28
+ ...(replyTo ? { replyTo: { name: replyTo.name ?? '', address: replyTo.email } } : {}),
28
29
  to: toMailAddresses(draft.to),
29
30
  cc: toMailAddresses(draft.cc),
30
31
  bcc: toMailAddresses(draft.bcc),
package/dist/mime.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mime.js","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mime.js","sourceRoot":"","sources":["../src/mime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAEL,KAAK,cAAc,EAGnB,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,SAAwB,GAAG,MAAM,CAMzG;AAED,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC;CACnC;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAE7E,UAAU,WAAW;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAqDD,4FAA4F;AAC5F,wBAAgB,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,GAAG,SAAS,GAAG,WAAW,CA2BvF;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,QAAQ,CAAC,kBAAkB,GAAG,SAAS,EAChD,YAAY,EAAE,MAAM,GACnB,gBAAgB,GAAG,SAAS,CAa9B;AAuBD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAE1F;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,QAAQ,CAAC,cAAc,EAC5B,GAAG,EAAE,YAAY,GAChB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,iBAAiB,CAAA;CAAE,CAmD5D"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAEL,KAAK,cAAc,EAGnB,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,SAAwB,GAAG,MAAM,CAMzG;AAED,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC;CACnC;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAE7E,UAAU,WAAW;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAqDD,4FAA4F;AAC5F,wBAAgB,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,GAAG,SAAS,GAAG,WAAW,CAkCvF;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,QAAQ,CAAC,kBAAkB,GAAG,SAAS,EAChD,YAAY,EAAE,MAAM,GACnB,gBAAgB,GAAG,SAAS,CAa9B;AAuBD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAE1F;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,QAAQ,CAAC,cAAc,EAC5B,GAAG,EAAE,YAAY,GAChB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,iBAAiB,CAAA;CAAE,CAmD5D"}
package/dist/parse.js CHANGED
@@ -69,15 +69,20 @@ export function walkParts(payload) {
69
69
  const result = { body: {}, attachments: [], externalBodyParts: {} };
70
70
  if (!payload)
71
71
  return result;
72
- const visit = (part, partPath) => {
72
+ const visit = (part, partPath, inAttachedMessage) => {
73
73
  const mimeType = part.mimeType ?? '';
74
74
  const attachment = parseAttachment(part, partPath);
75
75
  if (attachment) {
76
76
  result.attachments.push(attachment.meta);
77
77
  return;
78
78
  }
79
+ // Text inside an attached message is not the outer body, but its attachments still belong to this message.
80
+ const nested = inAttachedMessage || mimeType === 'message/rfc822';
79
81
  const bodyField = mimeType === 'text/plain' ? 'text' : mimeType === 'text/html' ? 'html' : undefined;
80
- if (bodyField && result.body[bodyField] === undefined && result.externalBodyParts[bodyField] === undefined) {
82
+ if (!nested &&
83
+ bodyField &&
84
+ result.body[bodyField] === undefined &&
85
+ result.externalBodyParts[bodyField] === undefined) {
81
86
  if (part.body?.data != null) {
82
87
  result.body[bodyField] = decodeTextPart(part);
83
88
  return;
@@ -88,9 +93,9 @@ export function walkParts(payload) {
88
93
  }
89
94
  }
90
95
  for (const [index, child] of (part.parts ?? []).entries())
91
- visit(child, [...partPath, index]);
96
+ visit(child, [...partPath, index], nested);
92
97
  };
93
- visit(payload, [0]);
98
+ visit(payload, [0], false);
94
99
  return result;
95
100
  }
96
101
  export function findAttachment(payload, attachmentId) {
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAMjB,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,WAAW,CAAC,OAAgD,EAAE,IAAY;IACjF,OAAO,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,IAAI,SAAS,CAAC;AACzG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAiC,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;IAC/F,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IACzE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACjF,CAAC;AAwBD,SAAS,eAAe,CAAC,IAAiC,EAAE,IAAc;IACxE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxG,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC;IACtF,MAAM,UAAU,GAAG,IAAI,EAAE,YAAY,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;IACpE,MAAM,YAAY,GAChB,CAAC,CAAC,IAAI,CAAC,QAAQ;QACf,cAAc,KAAK,YAAY;QAC/B,CAAC,CAAC,aAAa;YACb,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC;YACxC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,WAAW,GACf,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACrH,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,IAAI,UAAU,EAAE,CAAC;IACxG,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE;gBACJ,EAAE,EAAE,QAAQ,UAAU,EAAE;gBACxB,QAAQ;gBACR,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;gBAC7B,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;gBACzB,GAAG,QAAQ;aACZ;YACD,oBAAoB,EAAE,IAAI,CAAC,YAAY;SACxC,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO;YACL,IAAI,EAAE;gBACJ,EAAE,EAAE,UAAU,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC7C,QAAQ;gBACR,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;gBAC7B,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM;gBACtC,GAAG,QAAQ;aACZ;YACD,OAAO;SACR,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,SAAS,CAAC,OAAgD;IACxE,MAAM,MAAM,GAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACjF,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAE5B,MAAM,KAAK,GAAG,CAAC,IAAiC,EAAE,QAAkB,EAAE,EAAE;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GACb,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3G,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;gBAC5B,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;gBACrF,OAAO;YACT,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAgD,EAChD,YAAoB;IAEpB,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,KAAK,GAAG,CAAC,IAAiC,EAAE,QAAkB,EAAgC,EAAE;QACpG,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE,IAAI,CAAC,EAAE,KAAK,YAAY,IAAI,UAAU,EAAE,oBAAoB,KAAK,YAAY;YAAE,OAAO,UAAU,CAAC;QACjH,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,kFAAkF;AAClF,MAAM,oBAAoB,GAAgC;IACxD,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,MAAM,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,uFAAuF;AACvF,SAAS,YAAY,CAAC,QAAkB,EAAE,UAA+B;IACvE,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC;QACnD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;AAY5F,MAAM,UAAU,iBAAiB,CAAC,GAA4B,EAAE,GAAiB;IAC/E,OAAO,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,GAA4B,EAC5B,GAAiB;IAEjB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAE9G,MAAM,OAAO,GAAY;QACvB,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE;QACtC,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC;QAC9C,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACtG,EAAE,EAAE,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE;QAC9C,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;YACrC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;SAClC;KACF,CAAC;IAEF,IAAI,IAAI;QAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC,MAAM;QAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC9C,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAE/C,IAAI,iBAAiB,GAAsB,EAAE,CAAC;IAC9C,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,GAAG,CAAC,kBAAkB;YAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACrE,IAAI,GAAG,CAAC,WAAW;YAAE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAChD,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC/C,CAAC;IAED,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC5E,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluxmail/provider-gmail",
3
- "version": "0.8.1",
3
+ "version": "0.10.0",
4
4
  "description": "Gmail adapter for the Fluxmail unified email API",
5
5
  "license": "Elastic-2.0",
6
6
  "repository": {
@@ -29,7 +29,7 @@
29
29
  "googleapis-common": "8.0.2",
30
30
  "iconv-lite": "^0.7.3",
31
31
  "nodemailer": "^9.0.3",
32
- "@fluxmail/core": "0.8.1"
32
+ "@fluxmail/core": "0.10.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^22.15.0",