feat: implement proper remote event checking for sync

This commit is contained in:
2026-07-13 16:03:27 +09:30
parent 34c536c2d8
commit fdf941b968
10 changed files with 772 additions and 21 deletions
+13 -1
View File
@@ -3,6 +3,8 @@ import browser from "webextension-polyfill";
export interface EventMapEntry {
id: string;
date: string;
/** Last-synced content fingerprint; used to skip unchanged events. */
fingerprint?: string;
}
export type EventMapRecord = Record<string, string | EventMapEntry>;
@@ -17,11 +19,21 @@ export function normalizeEventMapEntry(
if (value == null) return undefined;
if (typeof value === "string") return { id: value, date: "" };
if (typeof value.id === "string" && value.id.length > 0) {
return { id: value.id, date: value.date ?? "" };
return {
id: value.id,
date: value.date ?? "",
fingerprint: value.fingerprint,
};
}
return undefined;
}
export function getStoredFingerprint(
value: string | EventMapEntry | undefined,
): string | undefined {
return normalizeEventMapEntry(value)?.fingerprint;
}
export function getStoredEventId(
value: string | EventMapEntry | undefined,
): string | undefined {