{"version":3,"file":"serialize.mjs","names":[],"sources":["../../../../../../../../../../node_modules/@vitest/utils/dist/serialize.js"],"sourcesContent":["const IS_RECORD_SYMBOL = \"@@__IMMUTABLE_RECORD__@@\";\nconst IS_COLLECTION_SYMBOL = \"@@__IMMUTABLE_ITERABLE__@@\";\nfunction isImmutable(v) {\n\treturn v && (v[IS_COLLECTION_SYMBOL] || v[IS_RECORD_SYMBOL]);\n}\nconst OBJECT_PROTO = Object.getPrototypeOf({});\nfunction getUnserializableMessage(err) {\n\tif (err instanceof Error) {\n\t\treturn `<unserializable>: ${err.message}`;\n\t}\n\tif (typeof err === \"string\") {\n\t\treturn `<unserializable>: ${err}`;\n\t}\n\treturn \"<unserializable>\";\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm\nfunction serializeValue(val, seen = new WeakMap()) {\n\tif (!val || typeof val === \"string\") {\n\t\treturn val;\n\t}\n\tif (val instanceof Error && \"toJSON\" in val && typeof val.toJSON === \"function\") {\n\t\tconst jsonValue = val.toJSON();\n\t\tif (jsonValue && jsonValue !== val && typeof jsonValue === \"object\") {\n\t\t\tif (typeof val.message === \"string\") {\n\t\t\t\tsafe(() => jsonValue.message ??= normalizeErrorMessage(val.message));\n\t\t\t}\n\t\t\tif (typeof val.stack === \"string\") {\n\t\t\t\tsafe(() => jsonValue.stack ??= val.stack);\n\t\t\t}\n\t\t\tif (typeof val.name === \"string\") {\n\t\t\t\tsafe(() => jsonValue.name ??= val.name);\n\t\t\t}\n\t\t\tif (val.cause != null) {\n\t\t\t\tsafe(() => jsonValue.cause ??= serializeValue(val.cause, seen));\n\t\t\t}\n\t\t}\n\t\treturn serializeValue(jsonValue, seen);\n\t}\n\tif (typeof val === \"function\") {\n\t\treturn `Function<${val.name || \"anonymous\"}>`;\n\t}\n\tif (typeof val === \"symbol\") {\n\t\treturn val.toString();\n\t}\n\tif (typeof val !== \"object\") {\n\t\treturn val;\n\t}\n\tif (typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n\t\treturn `<Buffer(${val.length}) ...>`;\n\t}\n\tif (typeof Uint8Array !== \"undefined\" && val instanceof Uint8Array) {\n\t\treturn `<Uint8Array(${val.length}) ...>`;\n\t}\n\t// cannot serialize immutables as immutables\n\tif (isImmutable(val)) {\n\t\treturn serializeValue(val.toJSON(), seen);\n\t}\n\tif (val instanceof Promise || val.constructor && val.constructor.prototype === \"AsyncFunction\") {\n\t\treturn \"Promise\";\n\t}\n\tif (typeof Element !== \"undefined\" && val instanceof Element) {\n\t\treturn val.tagName;\n\t}\n\tif (typeof val.toJSON === \"function\") {\n\t\treturn serializeValue(val.toJSON(), seen);\n\t}\n\tif (seen.has(val)) {\n\t\treturn seen.get(val);\n\t}\n\tif (Array.isArray(val)) {\n\t\t// eslint-disable-next-line unicorn/no-new-array -- we need to keep sparse arrays ([1,,3])\n\t\tconst clone = new Array(val.length);\n\t\tseen.set(val, clone);\n\t\tval.forEach((e, i) => {\n\t\t\ttry {\n\t\t\t\tclone[i] = serializeValue(e, seen);\n\t\t\t} catch (err) {\n\t\t\t\tclone[i] = getUnserializableMessage(err);\n\t\t\t}\n\t\t});\n\t\treturn clone;\n\t} else {\n\t\t// Objects with `Error` constructors appear to cause problems during worker communication\n\t\t// using `MessagePort`, so the serialized error object is being recreated as plain object.\n\t\tconst clone = Object.create(null);\n\t\tseen.set(val, clone);\n\t\tlet obj = val;\n\t\twhile (obj && obj !== OBJECT_PROTO) {\n\t\t\tObject.getOwnPropertyNames(obj).forEach((key) => {\n\t\t\t\tif (key in clone) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tclone[key] = serializeValue(val[key], seen);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// delete in case it has a setter from prototype that might throw\n\t\t\t\t\tdelete clone[key];\n\t\t\t\t\tclone[key] = getUnserializableMessage(err);\n\t\t\t\t}\n\t\t\t});\n\t\t\tobj = Object.getPrototypeOf(obj);\n\t\t}\n\t\tif (val instanceof Error) {\n\t\t\tsafe(() => clone.message = normalizeErrorMessage(val.message));\n\t\t}\n\t\treturn clone;\n\t}\n}\nfunction safe(fn) {\n\ttry {\n\t\treturn fn();\n\t} catch {}\n}\nfunction normalizeErrorMessage(message) {\n\treturn message.replace(/\\(0\\s?,\\s?__vite_ssr_import_\\d+__.(\\w+)\\)/g, \"$1\").replace(/__(vite_ssr_import|vi_import)_\\d+__\\./g, \"\").replace(/getByTestId('__vitest_\\d+__')/g, \"page\");\n}\n\nexport { serializeValue };\n"],"x_google_ignoreList":[0],"mappings":"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"}