apple-mail-mcp 2.15.0 → 2.15.1
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/build/index.js +29 -3
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -79170,6 +79170,26 @@ var COUNT_PARTIAL_NOTE = `Mail's count moved by less than this operation account
|
|
|
79170
79170
|
function snapshotKey(entry) {
|
|
79171
79171
|
return `${entry.id}\0${entry.messageId}`;
|
|
79172
79172
|
}
|
|
79173
|
+
function crossCheckRenumbered(disappeared, appeared) {
|
|
79174
|
+
const index = (entries) => {
|
|
79175
|
+
const m = /* @__PURE__ */ new Map();
|
|
79176
|
+
for (const e of entries) {
|
|
79177
|
+
if (!e.messageId) continue;
|
|
79178
|
+
m.set(e.messageId, m.has(e.messageId) ? null : e);
|
|
79179
|
+
}
|
|
79180
|
+
return m;
|
|
79181
|
+
};
|
|
79182
|
+
const gone = index(disappeared);
|
|
79183
|
+
const came = index(appeared);
|
|
79184
|
+
const out = [];
|
|
79185
|
+
for (const [mid, before] of gone) {
|
|
79186
|
+
const after = came.get(mid);
|
|
79187
|
+
if (!before || !after) continue;
|
|
79188
|
+
if (before.id === after.id) continue;
|
|
79189
|
+
out.push({ messageId: mid, before: before.id, after: after.id });
|
|
79190
|
+
}
|
|
79191
|
+
return out;
|
|
79192
|
+
}
|
|
79173
79193
|
function buildAppLevelScript(command) {
|
|
79174
79194
|
return `
|
|
79175
79195
|
tell application "Mail"
|
|
@@ -79845,8 +79865,12 @@ ${indent}end try${this.sanitizeFragment("_uacct", indent)}${this.sanitizeFragmen
|
|
|
79845
79865
|
const afterEntries = this.parseSnapshot(a.payload);
|
|
79846
79866
|
const afterKeys = new Set(afterEntries.map((e) => snapshotKey(e)));
|
|
79847
79867
|
const beforeKeys = new Set(beforeEntries.map((e) => snapshotKey(e)));
|
|
79848
|
-
const
|
|
79849
|
-
const
|
|
79868
|
+
const rawDisappeared = beforeEntries.filter((e) => !afterKeys.has(snapshotKey(e)));
|
|
79869
|
+
const rawAppeared = afterEntries.filter((e) => !beforeKeys.has(snapshotKey(e)));
|
|
79870
|
+
const renumbered = crossCheckRenumbered(rawDisappeared, rawAppeared);
|
|
79871
|
+
const renumberedMids = new Set(renumbered.map((r) => r.messageId));
|
|
79872
|
+
const disappeared = rawDisappeared.filter((e) => !renumberedMids.has(e.messageId));
|
|
79873
|
+
const appeared = rawAppeared.filter((e) => !renumberedMids.has(e.messageId));
|
|
79850
79874
|
const unrequested = disappeared.filter(
|
|
79851
79875
|
(e) => !requestedNumericIds.has(canonicalNumericId(e.id))
|
|
79852
79876
|
);
|
|
@@ -79860,7 +79884,8 @@ ${indent}end try${this.sanitizeFragment("_uacct", indent)}${this.sanitizeFragmen
|
|
|
79860
79884
|
disappeared,
|
|
79861
79885
|
unrequested,
|
|
79862
79886
|
appeared,
|
|
79863
|
-
...countStale.length ? { countStale } : {}
|
|
79887
|
+
...countStale.length ? { countStale } : {},
|
|
79888
|
+
...renumbered.length ? { renumbered } : {}
|
|
79864
79889
|
});
|
|
79865
79890
|
continue;
|
|
79866
79891
|
}
|
|
@@ -79873,6 +79898,7 @@ ${indent}end try${this.sanitizeFragment("_uacct", indent)}${this.sanitizeFragmen
|
|
|
79873
79898
|
mailbox: g.mailbox,
|
|
79874
79899
|
snapshot: "partial",
|
|
79875
79900
|
...countStale.length ? { countStale } : {},
|
|
79901
|
+
...renumbered.length ? { renumbered } : {},
|
|
79876
79902
|
skipReason: `Mail would not read ${holes.map((h) => `${h.ranges} (${h.phase})`).join(", ")} of this mailbox, so the snapshot has a hole in it. ` + (derivable.length > 0 ? `Still derivable and reported: ${derivable.join(" and ")}. ` : `Neither half of the diff is derivable from it. `) + `Anything the unread range could refute is omitted rather than guessed \u2014 an absent field here means "not computable", not "empty".`,
|
|
79877
79903
|
unobserved: holes,
|
|
79878
79904
|
...a.miss === "" ? { disappeared, unrequested } : {},
|
package/package.json
CHANGED