proton-mail-bridge-client 2.0.3 → 2.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"simple-imap-service.d.ts","sourceRoot":"","sources":["../../src/services/simple-imap-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple-imap-service.d.ts","sourceRoot":"","sources":["../../src/services/simple-imap-service.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,11 @@ const FETCH_INDEX_DETAIL_QUERY = {
35
35
  source: true,
36
36
  };
37
37
  const MAX_ATTACHMENT_TEXT_BYTES = 512_000;
38
+ // searchEmails' local-filter branch batches its detail fetch independently of the
39
+ // caller's result `limit` (see the comment above that loop) — this is the floor on
40
+ // each network batch so a small limit (e.g. 1) can't degrade into one `fetch` call
41
+ // per candidate.
42
+ export const SEARCH_FILTER_BATCH_SIZE = 50;
38
43
  // A healthy IMAP IDLE blocks until a mailbox change or the requested timeout.
39
44
  // If client.idle() returns faster than this with no events, IDLE never actually
40
45
  // engaged (e.g. imapflow's `idling` flag stuck true after Proton Bridge ended
@@ -1048,21 +1053,41 @@ export class SimpleIMAPService {
1048
1053
  // return nothing, even though a true match exists.
1049
1054
  //
1050
1055
  // Fix: order every candidate newest-first by INTERNALDATE (same cheap header
1051
- // fetch as above), then walk it in `limit`-sized bounded batches — fetch a
1052
- // batch, apply the FULL filter (matchesLocalSearchFilters included) to it, keep
1053
- // genuine matches, and continue to the next batch only if `limit` genuine
1054
- // matches haven't been found yet. This mirrors the bounded-batch/resume-cursor
1055
- // reasoning used for large incremental-sync gaps: bound the work done per call
1056
- // instead of fetching the entire broad candidate set regardless of `limit`.
1056
+ // fetch as above), then walk it in bounded batches — fetch a batch, apply the
1057
+ // FULL filter (matchesLocalSearchFilters included) to it, keep genuine matches,
1058
+ // and continue to the next batch only if `limit` genuine matches haven't been
1059
+ // found yet. This mirrors the bounded-batch/resume-cursor reasoning used for
1060
+ // large incremental-sync gaps: bound the work done per call instead of fetching
1061
+ // the entire broad candidate set regardless of `limit`.
1062
+ //
1063
+ // The batch SIZE is deliberately not just `limit` — a caller asking for a small
1064
+ // number of RESULTS (e.g. limit:1) shouldn't force pathologically small network
1065
+ // batches when nothing matches (worst case: one `fetch` call per candidate).
1066
+ // SEARCH_FILTER_BATCH_SIZE is a floor under `limit` for the actual batch size;
1067
+ // the early-stop-once-`limit`-matches-are-found behavior above is unaffected.
1068
+ const batchSize = Math.max(limit, SEARCH_FILTER_BATCH_SIZE);
1069
+ // FETCH_INDEX_QUERY's response already includes BODYSTRUCTURE, which is enough
1070
+ // to resolve hasAttachment (see extractAttachments/toSummary) without fetching
1071
+ // full detail again — so when hasAttachment is the filter, resolve it here and
1072
+ // drop the candidates that already fail it, before they ever reach the detail
1073
+ // fetch loop below.
1074
+ const needsAttachmentPrefilter = typeof input.hasAttachment === "boolean";
1057
1075
  const dated = [];
1076
+ const hasAttachmentByUid = needsAttachmentPrefilter ? new Map() : undefined;
1058
1077
  for await (const message of client.fetch(uids, FETCH_INDEX_QUERY, { uid: true })) {
1059
1078
  dated.push({ uid: message.uid, date: new Date(message.internalDate ?? 0).getTime() });
1079
+ if (hasAttachmentByUid) {
1080
+ hasAttachmentByUid.set(message.uid, extractAttachments(message.bodyStructure).length > 0);
1081
+ }
1082
+ }
1083
+ let orderedUids = pickNewestUids(dated, dated.length);
1084
+ if (hasAttachmentByUid) {
1085
+ orderedUids = orderedUids.filter((uid) => hasAttachmentByUid.get(uid) === input.hasAttachment);
1060
1086
  }
1061
- const orderedUids = pickNewestUids(dated, dated.length);
1062
1087
  const results = [];
1063
1088
  let moreRemain = false;
1064
- for (let offset = 0; offset < orderedUids.length; offset += limit) {
1065
- const batch = orderedUids.slice(offset, offset + limit);
1089
+ for (let offset = 0; offset < orderedUids.length; offset += batchSize) {
1090
+ const batch = orderedUids.slice(offset, offset + batchSize);
1066
1091
  for await (const message of client.fetch(batch, fetchQuery, { uid: true })) {
1067
1092
  const summary = this.toSummary(folder, message, uidValidity);
1068
1093
  const enriched = input.includeSnippet && message.source
@@ -1075,7 +1100,7 @@ export class SimpleIMAPService {
1075
1100
  }
1076
1101
  }
1077
1102
  if (results.length >= limit) {
1078
- moreRemain = offset + limit < orderedUids.length;
1103
+ moreRemain = offset + batchSize < orderedUids.length;
1079
1104
  break;
1080
1105
  }
1081
1106
  }
@@ -1302,10 +1327,19 @@ export class SimpleIMAPService {
1302
1327
  return notApplied;
1303
1328
  }
1304
1329
  async markEmailRead(emailId, isRead = true, uidValidity) {
1305
- const { folder, uid } = parseEmailId(emailId);
1330
+ // The id's own embedded uidValidity (parsed above) is the actual source
1331
+ // of protection — the `uidValidity` parameter only tightens it further
1332
+ // for a caller with some other reason to supply one. Previously this was
1333
+ // backwards: a caller that omitted the parameter (e.g. cli.ts, which
1334
+ // never threaded it) got zero staleness protection even though the id it
1335
+ // passed in already carried a perfectly valid generation. Found live:
1336
+ // delete_email's CLI shortcut on a generation-1 id against a
1337
+ // generation-2 mailbox deleted the message with no error.
1338
+ const { folder, uid, uidValidity: idUidValidity } = parseEmailId(emailId);
1339
+ const expectedUidValidity = uidValidity ?? idUidValidity;
1306
1340
  let notApplied = [];
1307
1341
  await this.withTimeout(this.withMailbox(folder, false, async (client) => {
1308
- this.assertMailboxUidValidity(client, uidValidity);
1342
+ this.assertMailboxUidValidity(client, expectedUidValidity);
1309
1343
  if (isRead) {
1310
1344
  await client.messageFlagsAdd(String(uid), ["\\Seen"], { uid: true });
1311
1345
  }
@@ -1331,10 +1365,14 @@ export class SimpleIMAPService {
1331
1365
  return { emailId, folder, uid, isRead, notApplied };
1332
1366
  }
1333
1367
  async starEmail(emailId, isStarred = true, uidValidity) {
1334
- const { folder, uid } = parseEmailId(emailId);
1368
+ // Same reasoning as markEmailRead above: the id's own embedded
1369
+ // uidValidity is what actually protects this call, the parameter only
1370
+ // tightens it further.
1371
+ const { folder, uid, uidValidity: idUidValidity } = parseEmailId(emailId);
1372
+ const expectedUidValidity = uidValidity ?? idUidValidity;
1335
1373
  let notApplied = [];
1336
1374
  await this.withTimeout(this.withMailbox(folder, false, async (client) => {
1337
- this.assertMailboxUidValidity(client, uidValidity);
1375
+ this.assertMailboxUidValidity(client, expectedUidValidity);
1338
1376
  if (isStarred) {
1339
1377
  await client.messageFlagsAdd(String(uid), ["\\Flagged"], { uid: true });
1340
1378
  }
@@ -1351,11 +1389,16 @@ export class SimpleIMAPService {
1351
1389
  return { emailId, folder, uid, isStarred, notApplied };
1352
1390
  }
1353
1391
  async moveEmail(emailId, targetFolder, uidValidity) {
1354
- const { folder, uid } = parseEmailId(emailId);
1392
+ // Same reasoning as markEmailRead above: the id's own embedded
1393
+ // uidValidity is what actually protects this call, the parameter only
1394
+ // tightens it further. archiveEmail/trashEmail/restoreEmail all delegate
1395
+ // to this method, so they inherit the same protection.
1396
+ const { folder, uid, uidValidity: idUidValidity } = parseEmailId(emailId);
1397
+ const expectedUidValidity = uidValidity ?? idUidValidity;
1355
1398
  let targetUid;
1356
1399
  let targetFolderUidValidity;
1357
1400
  await this.withTimeout(this.withMailbox(folder, false, async (client) => {
1358
- this.assertMailboxUidValidity(client, uidValidity);
1401
+ this.assertMailboxUidValidity(client, expectedUidValidity);
1359
1402
  const moved = await client.messageMove(String(uid), targetFolder, { uid: true });
1360
1403
  if (moved === false) {
1361
1404
  throw new Error(`Server did not move email ${emailId} to ${targetFolder}`);
@@ -1420,9 +1463,13 @@ export class SimpleIMAPService {
1420
1463
  };
1421
1464
  }
1422
1465
  async deleteEmail(emailId, uidValidity) {
1423
- const { folder, uid } = parseEmailId(emailId);
1466
+ // Same reasoning as markEmailRead above: the id's own embedded
1467
+ // uidValidity is what actually protects this call, the parameter only
1468
+ // tightens it further.
1469
+ const { folder, uid, uidValidity: idUidValidity } = parseEmailId(emailId);
1470
+ const expectedUidValidity = uidValidity ?? idUidValidity;
1424
1471
  await this.withTimeout(this.withMailbox(folder, false, async (client) => {
1425
- this.assertMailboxUidValidity(client, uidValidity);
1472
+ this.assertMailboxUidValidity(client, expectedUidValidity);
1426
1473
  // messageDelete's own truthy/falsy result only reflects whether the
1427
1474
  // server accepted the EXPUNGE command, not whether any message
1428
1475
  // actually matched — a nonexistent UID's preceding \Deleted flag add
@@ -1454,7 +1501,11 @@ export class SimpleIMAPService {
1454
1501
  };
1455
1502
  }
1456
1503
  async updateMessageLabels(emailId, labelsToAdd, labelsToRemove, uidValidity) {
1457
- const { folder, uid } = parseEmailId(emailId);
1504
+ // Same reasoning as markEmailRead above: the id's own embedded
1505
+ // uidValidity is what actually protects this call, the parameter only
1506
+ // tightens it further.
1507
+ const { folder, uid, uidValidity: idUidValidity } = parseEmailId(emailId);
1508
+ const expectedUidValidity = uidValidity ?? idUidValidity;
1458
1509
  const added = [];
1459
1510
  const removed = [];
1460
1511
  const notFound = [];
@@ -1473,7 +1524,7 @@ export class SimpleIMAPService {
1473
1524
  let messageId;
1474
1525
  let sourceExists = false;
1475
1526
  await this.withTimeout(this.withMailbox(folder, true, async (client) => {
1476
- this.assertMailboxUidValidity(client, uidValidity);
1527
+ this.assertMailboxUidValidity(client, expectedUidValidity);
1477
1528
  const msg = await client.fetchOne(String(uid), { uid: true, envelope: true }, { uid: true });
1478
1529
  if (msg !== false) {
1479
1530
  sourceExists = true;
@@ -1538,10 +1589,14 @@ export class SimpleIMAPService {
1538
1589
  return { emailId, added, removed, notFound, failedLabels: failedLabels.length > 0 ? failedLabels : undefined };
1539
1590
  }
1540
1591
  async updateMessageFlags(emailId, flagsToAdd, flagsToRemove, uidValidity) {
1541
- const { folder, uid } = parseEmailId(emailId);
1592
+ // Same reasoning as markEmailRead above: the id's own embedded
1593
+ // uidValidity is what actually protects this call, the parameter only
1594
+ // tightens it further.
1595
+ const { folder, uid, uidValidity: idUidValidity } = parseEmailId(emailId);
1596
+ const expectedUidValidity = uidValidity ?? idUidValidity;
1542
1597
  let notApplied = [];
1543
1598
  await this.withTimeout(this.withMailbox(folder, false, async (client) => {
1544
- this.assertMailboxUidValidity(client, uidValidity);
1599
+ this.assertMailboxUidValidity(client, expectedUidValidity);
1545
1600
  if (flagsToAdd.length > 0) {
1546
1601
  await client.messageFlagsAdd(String(uid), flagsToAdd, { uid: true });
1547
1602
  }
@@ -1853,6 +1908,12 @@ export class SimpleIMAPService {
1853
1908
  return new Set(Array.isArray(found) ? found : []);
1854
1909
  });
1855
1910
  await this.withMailbox(folder, false, async (client) => {
1911
+ // Re-verify the generation resolvedUids was resolved under,
1912
+ // inside the same lock the actual delete runs under — the
1913
+ // filtering in resolveUidsForBulkOp only caught a stale id at
1914
+ // resolution time, not a mailbox change in the gap between then
1915
+ // and this lock being acquired.
1916
+ this.assertMailboxUidValidity(client, input.uidValidity);
1856
1917
  const deleted = await client.messageDelete(uidSet, { uid: true });
1857
1918
  if (!deleted)
1858
1919
  throw new Error(`Server did not delete uid set ${uidSet}`);
@@ -1863,6 +1924,8 @@ export class SimpleIMAPService {
1863
1924
  let hasUidPlus = false;
1864
1925
  await this.withMailbox(folder, false, async (client) => {
1865
1926
  folderUidValidity = (client.mailbox || undefined)?.uidValidity?.toString();
1927
+ // Same lock-scoped re-check as the permanent-delete branch above.
1928
+ this.assertMailboxUidValidity(client, input.uidValidity);
1866
1929
  const moved = await client.messageMove(uidSet, trashFolder, { uid: true });
1867
1930
  if (moved === false)
1868
1931
  throw new Error(`Server did not move uid set ${uidSet} to trash`);
@@ -1886,9 +1949,10 @@ export class SimpleIMAPService {
1886
1949
  }
1887
1950
  }
1888
1951
  catch (err) {
1952
+ const error = this.bulkExecutionErrorMessage(err);
1889
1953
  for (const uid of uids) {
1890
1954
  const emailId = createEmailId(folder, uid, folderUidValidity);
1891
- results.push({ uid, emailId, ok: false, error: String(err) });
1955
+ results.push({ uid, emailId, ok: false, error });
1892
1956
  failed++;
1893
1957
  }
1894
1958
  }
@@ -1927,6 +1991,10 @@ export class SimpleIMAPService {
1927
1991
  const notAppliedByUid = new Map();
1928
1992
  await this.withMailbox(folder, false, async (client) => {
1929
1993
  folderUidValidity = (client.mailbox || undefined)?.uidValidity?.toString();
1994
+ // Re-verify the generation resolvedUids was resolved under,
1995
+ // inside the same lock the flag mutation runs under — see
1996
+ // bulkDelete's identical check for the full rationale.
1997
+ this.assertMailboxUidValidity(client, input.uidValidity);
1930
1998
  if (flagsToAdd.length > 0) {
1931
1999
  await client.messageFlagsAdd(uidSet, flagsToAdd, { uid: true });
1932
2000
  }
@@ -1962,9 +2030,10 @@ export class SimpleIMAPService {
1962
2030
  }
1963
2031
  }
1964
2032
  catch (err) {
2033
+ const error = this.bulkExecutionErrorMessage(err);
1965
2034
  for (const uid of uids) {
1966
2035
  const emailId = createEmailId(folder, uid, folderUidValidity);
1967
- results.push({ uid, emailId, ok: false, error: String(err) });
2036
+ results.push({ uid, emailId, ok: false, error });
1968
2037
  failed++;
1969
2038
  }
1970
2039
  }
@@ -2002,9 +2071,23 @@ export class SimpleIMAPService {
2002
2071
  // defense-in-depth recheck (updateMessageLabels's own withMailbox call
2003
2072
  // re-verifies it against the *live* mailbox at execution time), not a
2004
2073
  // second independent resolution.
2005
- const folderUidValidity = await this.getMailboxUidValidity(folder).catch(() => undefined);
2074
+ const folderUidValidity = input.uidValidity ?? await this.getMailboxUidValidity(folder).catch(() => undefined);
2075
+ // Unlike bulkDelete/bulkUpdateFlags (one command mutating the whole uid
2076
+ // set under a single withMailbox lock), labels are applied per-uid,
2077
+ // each under its own lock via updateMessageLabels. So a lock-scoped
2078
+ // generation mismatch can only be caught per-uid, not once up front —
2079
+ // but per the same "fail the whole batch, not just this id" contract,
2080
+ // once one is caught the rest of the batch is aborted too rather than
2081
+ // silently continuing to mutate under a mailbox that's no longer the
2082
+ // one this batch was resolved against.
2083
+ let batchAborted = false;
2006
2084
  for (const uid of uids) {
2007
2085
  const emailId = createEmailId(folder, uid, folderUidValidity);
2086
+ if (batchAborted) {
2087
+ results.push({ uid, emailId, ok: false, error: this.bulkExecutionErrorMessage(new Error(UID_VALIDITY_MISMATCH_ERROR)) });
2088
+ failed++;
2089
+ continue;
2090
+ }
2008
2091
  try {
2009
2092
  // updateMessageLabels never throws for a failed COPY/removal — it
2010
2093
  // catches per-label and reports failures via its own return value
@@ -2032,7 +2115,10 @@ export class SimpleIMAPService {
2032
2115
  }
2033
2116
  }
2034
2117
  catch (err) {
2035
- results.push({ uid, emailId, ok: false, error: String(err) });
2118
+ if (err instanceof Error && err.message === UID_VALIDITY_MISMATCH_ERROR) {
2119
+ batchAborted = true;
2120
+ }
2121
+ results.push({ uid, emailId, ok: false, error: this.bulkExecutionErrorMessage(err) });
2036
2122
  failed++;
2037
2123
  }
2038
2124
  }
@@ -2661,12 +2747,20 @@ export class SimpleIMAPService {
2661
2747
  return simpleParser(source);
2662
2748
  }
2663
2749
  async getParsedMailDetail(emailId) {
2664
- const { folder, uid } = parseEmailId(emailId);
2750
+ const { folder, uid, uidValidity: expectedUidValidity } = parseEmailId(emailId);
2665
2751
  const { enriched, parsed } = await this.withTimeout(this.withMailbox(folder, true, async (client) => {
2666
- // NOTE: UIDs can be reused after mailbox recreation (UIDVALIDITY change).
2667
- // assertMailboxUidValidity handles this at the withMailbox level for mutating
2668
- // ops. For read-only fetches, callers should re-sync after a UIDVALIDITY
2669
- // change to avoid fetching the wrong message with a recycled UID.
2752
+ // UIDs can be reused after mailbox recreation (UIDVALIDITY change).
2753
+ // This backs content reads used for quoting/forwarding/replying, so a
2754
+ // stale id here isn't just a failed fetch — it silently returns a
2755
+ // *different real message's* content under a freshly-recomputed,
2756
+ // correct-looking-for-that-message new id, with no error at all.
2757
+ // Found live: get_email_by_id on a generation-1 id for UID 42 against
2758
+ // a generation-2 mailbox with a different message at UID 42 returned
2759
+ // that other message's subject/content with no exception. Enforce the
2760
+ // same check mutations already do; an id with no embedded
2761
+ // uidValidity (pre-this-fix format) still no-ops here via
2762
+ // assertMailboxUidValidity's own `if (!expectedUidValidity) return`.
2763
+ this.assertMailboxUidValidity(client, expectedUidValidity);
2670
2764
  const message = await client.fetchOne(String(uid), FETCH_DETAIL_QUERY, { uid: true });
2671
2765
  if (!message || !message.source) {
2672
2766
  throw new Error(`Email not found for id ${emailId}`);
@@ -3021,6 +3115,20 @@ export class SimpleIMAPService {
3021
3115
  throw new Error(UID_VALIDITY_MISMATCH_ERROR);
3022
3116
  }
3023
3117
  }
3118
+ // Distinguishes a bulk batch's execution-time generation mismatch (caught
3119
+ // here, from assertMailboxUidValidity re-checking the whole resolved set
3120
+ // right before the mutation) from the per-id "this one id's own embedded
3121
+ // generation was stale" filtering resolveUidsForBulkOp already does before
3122
+ // the batch ever gets here. Both ultimately trace back to the same
3123
+ // UID_VALIDITY_MISMATCH_ERROR wording, but callers need to tell them apart:
3124
+ // this one means the *entire* resolved batch was invalidated by a mailbox
3125
+ // change after resolution, not just some individual ids.
3126
+ bulkExecutionErrorMessage(err) {
3127
+ if (err instanceof Error && err.message === UID_VALIDITY_MISMATCH_ERROR) {
3128
+ return `Bulk operation aborted: the mailbox's UIDVALIDITY changed after this batch's UIDs were resolved and before the mutation ran, invalidating the entire resolved batch (not just individual ids). ${UID_VALIDITY_MISMATCH_ERROR}`;
3129
+ }
3130
+ return String(err);
3131
+ }
3024
3132
  async writeAttachmentToPath(emailId, attachment, outputPath) {
3025
3133
  let outputFilePath;
3026
3134
  if (!outputPath) {