in packages/sqrl-common/src/compare.ts [8:32]
export function cmpE(left, right) {
let rv;
if (Array.isArray(left) && Array.isArray(right)) {
rv =
left.length === right.length &&
left.every((el, idx) => cmpE(el, right[idx]));
} else if (
left &&
right &&
typeof left === "object" &&
typeof right === "object"
) {
// Make sure the keys match, and the value at every key matches (deep equal)
const keys = Object.keys(left).sort();
rv =
cmpE(keys, Object.keys(right).sort()) &&
keys.every((key) => {
return cmpE(left[key], right[key]);
});
} else {
rv = left === right;
}
return rv;
}