• Validates a sync snapshot object for completeness and correctness.

    Parameters

    • snapshot: unknown

      The snapshot to validate.

    Returns { valid: boolean; reason?: string }

    Validation result with status and optional reason.

    export function validateSyncSnapshot(snapshot: unknown): {
    valid: boolean;
    reason?: string;
    } {
    if (!snapshot || typeof snapshot !== "object") {
    return { valid: false, reason: "Snapshot is not an object" };
    }

    const snap = snapshot as Record<string, unknown>;

    if (!Array.isArray(snap.entries)) {
    return { valid: false, reason: "Missing or invalid entries array" };
    }

    if (!Array.isArray(snap.uniqueMediaIds)) {
    return { valid: false, reason: "Missing or invalid uniqueMediaIds array" };
    }

    if (!Array.isArray(snap.remainingMediaIds)) {
    return {
    valid: false,
    reason: "Missing or invalid remainingMediaIds array",
    };
    }

    if (snap.remainingMediaIds.length === 0) {
    return { valid: false, reason: "No remaining entries in snapshot" };
    }

    if (!snap.progress || typeof snap.progress !== "object") {
    return { valid: false, reason: "Missing or invalid progress object" };
    }

    if (typeof snap.timestamp !== "number") {
    return { valid: false, reason: "Missing or invalid timestamp" };
    }

    if (snap.timestamp > Date.now()) {
    return { valid: false, reason: "Timestamp is in the future" };
    }

    return { valid: true };
    }