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.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/services/delivery-queue-service.d.ts.map +1 -1
- package/dist/services/delivery-queue-service.js +36 -7
- package/dist/services/delivery-queue-service.js.map +1 -1
- package/dist/services/local-index-service.d.ts.map +1 -1
- package/dist/services/local-index-service.js +46 -3
- package/dist/services/local-index-service.js.map +1 -1
- package/dist/services/simple-imap-service.d.ts +5 -0
- package/dist/services/simple-imap-service.d.ts.map +1 -1
- package/dist/services/simple-imap-service.js +139 -31
- package/dist/services/simple-imap-service.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
1052
|
-
//
|
|
1053
|
-
//
|
|
1054
|
-
//
|
|
1055
|
-
//
|
|
1056
|
-
//
|
|
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 +=
|
|
1065
|
-
const batch = orderedUids.slice(offset, offset +
|
|
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 +
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
//
|
|
2667
|
-
//
|
|
2668
|
-
//
|
|
2669
|
-
//
|
|
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) {
|