const isRecord = (value: unknown): value is Record => { return typeof value === 'object' && value !== null && !Array.isArray(value); }; export const stableStringify = (value: unknown): string => { if (Array.isArray(value)) { return `[${value.map((item) => stableStringify(item)).join(',')}]`; } if (isRecord(value)) { const entries = Object.entries(value).sort(([left], [right]) => left.localeCompare(right) ); return `{${entries .map(([key, item]) => `${JSON.stringify(key)}:${stableStringify(item)}`) .join(',')}}`; } return JSON.stringify(value) ?? 'null'; };