


//#region src/utils/objectEquality.ts
function areObjectsEqual(a, b) {
	if (typeof a === "object" && a != null && typeof b === "object" && b != null) {
		const definedA = Object.fromEntries(Object.entries(a).filter(([, value]) => value !== void 0));
		const definedB = Object.fromEntries(Object.entries(b).filter(([, value]) => value !== void 0));
		if (Object.keys(definedA).length !== Object.keys(definedB).length) return false;
		for (const key in definedA) if (!(key in definedB) || !areObjectsEqual(definedA[key], definedB[key])) return false;
		for (const key in definedB) if (!(key in definedA) || !areObjectsEqual(definedB[key], definedA[key])) return false;
		return true;
	}
	return a === b;
}

//#endregion
exports.areObjectsEqual = areObjectsEqual;