@bobfrankston/rmfmail 1.1.218 → 1.1.220

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.
@@ -7098,9 +7098,11 @@ function selectCommand(tag, mailbox, qresync) {
7098
7098
  function enableCommand(tag, extensions) {
7099
7099
  return buildCommand(tag, `ENABLE ${extensions.join(" ")}`);
7100
7100
  }
7101
- function parseUidSet(set) {
7101
+ function parseUidSet(set, maxExpand = Infinity) {
7102
7102
  const out = [];
7103
7103
  for (const part of set.split(",")) {
7104
+ if (out.length >= maxExpand)
7105
+ break;
7104
7106
  const trimmed = part.trim();
7105
7107
  if (!trimmed)
7106
7108
  continue;
@@ -7114,7 +7116,7 @@ function parseUidSet(set) {
7114
7116
  const hi = range[1] === "*" ? lo : parseInt(range[1], 10);
7115
7117
  if (!Number.isFinite(lo) || !Number.isFinite(hi) || hi < lo)
7116
7118
  continue;
7117
- for (let u = lo; u <= hi; u++)
7119
+ for (let u = lo; u <= hi && out.length < maxExpand; u++)
7118
7120
  out.push(u);
7119
7121
  }
7120
7122
  }
@@ -7750,8 +7752,11 @@ var NativeImapClient = class {
7750
7752
  this.mailboxInfo.highestModSeq = parseInt(modSeqMatch[1]);
7751
7753
  } else if (r.type === "VANISHED") {
7752
7754
  const text = r.text.replace(/^\(EARLIER\)\s*/i, "").trim();
7753
- for (const uid of parseUidSet(text))
7755
+ const VANISHED_EXPAND_CAP = 1e5;
7756
+ for (const uid of parseUidSet(text, VANISHED_EXPAND_CAP))
7754
7757
  vanishedUids.push(uid);
7758
+ if (vanishedUids.length >= VANISHED_EXPAND_CAP)
7759
+ break;
7755
7760
  }
7756
7761
  }
7757
7762
  this.selectedMailbox = mailbox;