export function deepCopyReemoveCircularReferences<T>(obj: T): T { const seenObjects = new WeakMap(); return JSON.parse( JSON.stringify(obj, (_, value) => { if (typeof value === 'object' && value !== null) { if (seenObjects.has(value)) { return; } seenObjects.set(value, true); } return value; }) ); }