import "./chunk-4VWCUJXE.js"; // node_modules/devalue/src/utils.js var escaped = { "<": "\\u003C", "\\": "\\\\", "\b": "\\b", "\f": "\\f", "\n": "\\n", "\r": "\\r", " ": "\\t", "\u2028": "\\u2028", "\u2029": "\\u2029" }; var DevalueError = class extends Error { /** * @param {string} message * @param {string[]} keys */ constructor(message, keys) { super(message); this.name = "DevalueError"; this.path = keys.join(""); } }; function is_primitive(thing) { return Object(thing) !== thing; } var object_proto_names = Object.getOwnPropertyNames( Object.prototype ).sort().join("\0"); function is_plain_object(thing) { const proto = Object.getPrototypeOf(thing); return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join("\0") === object_proto_names; } function get_type(thing) { return Object.prototype.toString.call(thing).slice(8, -1); } function get_escaped_char(char) { switch (char) { case '"': return '\\"'; case "<": return "\\u003C"; case "\\": return "\\\\"; case "\n": return "\\n"; case "\r": return "\\r"; case " ": return "\\t"; case "\b": return "\\b"; case "\f": return "\\f"; case "\u2028": return "\\u2028"; case "\u2029": return "\\u2029"; default: return char < " " ? `\\u${char.charCodeAt(0).toString(16).padStart(4, "0")}` : ""; } } function stringify_string(str) { let result = ""; let last_pos = 0; const len = str.length; for (let i = 0; i < len; i += 1) { const char = str[i]; const replacement = get_escaped_char(char); if (replacement) { result += str.slice(last_pos, i) + replacement; last_pos = i + 1; } } return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`; } function enumerable_symbols(object) { return Object.getOwnPropertySymbols(object).filter( (symbol) => Object.getOwnPropertyDescriptor(object, symbol).enumerable ); } var is_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/; function stringify_key(key) { return is_identifier.test(key) ? "." + key : "[" + JSON.stringify(key) + "]"; } // node_modules/devalue/src/uneval.js var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$"; var unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g; var reserved = /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/; function uneval(value, replacer) { const counts = /* @__PURE__ */ new Map(); const keys = []; const custom = /* @__PURE__ */ new Map(); function walk(thing) { if (typeof thing === "function") { throw new DevalueError(`Cannot stringify a function`, keys); } if (!is_primitive(thing)) { if (counts.has(thing)) { counts.set(thing, counts.get(thing) + 1); return; } counts.set(thing, 1); if (replacer) { const str2 = replacer(thing); if (typeof str2 === "string") { custom.set(thing, str2); return; } } const type = get_type(thing); switch (type) { case "Number": case "BigInt": case "String": case "Boolean": case "Date": case "RegExp": return; case "Array": thing.forEach((value2, i) => { keys.push(`[${i}]`); walk(value2); keys.pop(); }); break; case "Set": Array.from(thing).forEach(walk); break; case "Map": for (const [key, value2] of thing) { keys.push( `.get(${is_primitive(key) ? stringify_primitive(key) : "..."})` ); walk(value2); keys.pop(); } break; case "Int8Array": case "Uint8Array": case "Uint8ClampedArray": case "Int16Array": case "Uint16Array": case "Int32Array": case "Uint32Array": case "Float32Array": case "Float64Array": case "BigInt64Array": case "BigUint64Array": return; case "ArrayBuffer": return; default: if (!is_plain_object(thing)) { throw new DevalueError( `Cannot stringify arbitrary non-POJOs`, keys ); } if (enumerable_symbols(thing).length > 0) { throw new DevalueError( `Cannot stringify POJOs with symbolic keys`, keys ); } for (const key in thing) { keys.push(stringify_key(key)); walk(thing[key]); keys.pop(); } } } } walk(value); const names = /* @__PURE__ */ new Map(); Array.from(counts).filter((entry) => entry[1] > 1).sort((a, b) => b[1] - a[1]).forEach((entry, i) => { names.set(entry[0], get_name(i)); }); function stringify2(thing) { if (names.has(thing)) { return names.get(thing); } if (is_primitive(thing)) { return stringify_primitive(thing); } if (custom.has(thing)) { return custom.get(thing); } const type = get_type(thing); switch (type) { case "Number": case "String": case "Boolean": return `Object(${stringify2(thing.valueOf())})`; case "RegExp": return `new RegExp(${stringify_string(thing.source)}, "${thing.flags}")`; case "Date": return `new Date(${thing.getTime()})`; case "Array": const members = ( /** @type {any[]} */ thing.map( (v, i) => i in thing ? stringify2(v) : "" ) ); const tail = thing.length === 0 || thing.length - 1 in thing ? "" : ","; return `[${members.join(",")}${tail}]`; case "Set": case "Map": return `new ${type}([${Array.from(thing).map(stringify2).join(",")}])`; case "Int8Array": case "Uint8Array": case "Uint8ClampedArray": case "Int16Array": case "Uint16Array": case "Int32Array": case "Uint32Array": case "Float32Array": case "Float64Array": case "BigInt64Array": case "BigUint64Array": { const typedArray = thing; return `new ${type}([${typedArray.toString()}])`; } case "ArrayBuffer": { const ui8 = new Uint8Array(thing); return `new Uint8Array([${ui8.toString()}]).buffer`; } default: const obj = `{${Object.keys(thing).map((key) => `${safe_key(key)}:${stringify2(thing[key])}`).join(",")}}`; const proto = Object.getPrototypeOf(thing); if (proto === null) { return Object.keys(thing).length > 0 ? `Object.assign(Object.create(null),${obj})` : `Object.create(null)`; } return obj; } } const str = stringify2(value); if (names.size) { const params = []; const statements = []; const values = []; names.forEach((name, thing) => { params.push(name); if (custom.has(thing)) { values.push( /** @type {string} */ custom.get(thing) ); return; } if (is_primitive(thing)) { values.push(stringify_primitive(thing)); return; } const type = get_type(thing); switch (type) { case "Number": case "String": case "Boolean": values.push(`Object(${stringify2(thing.valueOf())})`); break; case "RegExp": values.push(thing.toString()); break; case "Date": values.push(`new Date(${thing.getTime()})`); break; case "Array": values.push(`Array(${thing.length})`); thing.forEach((v, i) => { statements.push(`${name}[${i}]=${stringify2(v)}`); }); break; case "Set": values.push(`new Set`); statements.push( `${name}.${Array.from(thing).map((v) => `add(${stringify2(v)})`).join(".")}` ); break; case "Map": values.push(`new Map`); statements.push( `${name}.${Array.from(thing).map(([k, v]) => `set(${stringify2(k)}, ${stringify2(v)})`).join(".")}` ); break; default: values.push( Object.getPrototypeOf(thing) === null ? "Object.create(null)" : "{}" ); Object.keys(thing).forEach((key) => { statements.push( `${name}${safe_prop(key)}=${stringify2(thing[key])}` ); }); } }); statements.push(`return ${str}`); return `(function(${params.join(",")}){${statements.join( ";" )}}(${values.join(",")}))`; } else { return str; } } function get_name(num) { let name = ""; do { name = chars[num % chars.length] + name; num = ~~(num / chars.length) - 1; } while (num >= 0); return reserved.test(name) ? `${name}0` : name; } function escape_unsafe_char(c) { return escaped[c] || c; } function escape_unsafe_chars(str) { return str.replace(unsafe_chars, escape_unsafe_char); } function safe_key(key) { return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) ? key : escape_unsafe_chars(JSON.stringify(key)); } function safe_prop(key) { return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) ? `.${key}` : `[${escape_unsafe_chars(JSON.stringify(key))}]`; } function stringify_primitive(thing) { if (typeof thing === "string") return stringify_string(thing); if (thing === void 0) return "void 0"; if (thing === 0 && 1 / thing < 0) return "-0"; const str = String(thing); if (typeof thing === "number") return str.replace(/^(-)?0\./, "$1."); if (typeof thing === "bigint") return thing + "n"; return str; } // node_modules/devalue/src/base64.js function encode64(arraybuffer) { const dv = new DataView(arraybuffer); let binaryString = ""; for (let i = 0; i < arraybuffer.byteLength; i++) { binaryString += String.fromCharCode(dv.getUint8(i)); } return binaryToAscii(binaryString); } function decode64(string) { const binaryString = asciiToBinary(string); const arraybuffer = new ArrayBuffer(binaryString.length); const dv = new DataView(arraybuffer); for (let i = 0; i < arraybuffer.byteLength; i++) { dv.setUint8(i, binaryString.charCodeAt(i)); } return arraybuffer; } var KEY_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; function asciiToBinary(data) { if (data.length % 4 === 0) { data = data.replace(/==?$/, ""); } let output = ""; let buffer = 0; let accumulatedBits = 0; for (let i = 0; i < data.length; i++) { buffer <<= 6; buffer |= KEY_STRING.indexOf(data[i]); accumulatedBits += 6; if (accumulatedBits === 24) { output += String.fromCharCode((buffer & 16711680) >> 16); output += String.fromCharCode((buffer & 65280) >> 8); output += String.fromCharCode(buffer & 255); buffer = accumulatedBits = 0; } } if (accumulatedBits === 12) { buffer >>= 4; output += String.fromCharCode(buffer); } else if (accumulatedBits === 18) { buffer >>= 2; output += String.fromCharCode((buffer & 65280) >> 8); output += String.fromCharCode(buffer & 255); } return output; } function binaryToAscii(str) { let out = ""; for (let i = 0; i < str.length; i += 3) { const groupsOfSix = [void 0, void 0, void 0, void 0]; groupsOfSix[0] = str.charCodeAt(i) >> 2; groupsOfSix[1] = (str.charCodeAt(i) & 3) << 4; if (str.length > i + 1) { groupsOfSix[1] |= str.charCodeAt(i + 1) >> 4; groupsOfSix[2] = (str.charCodeAt(i + 1) & 15) << 2; } if (str.length > i + 2) { groupsOfSix[2] |= str.charCodeAt(i + 2) >> 6; groupsOfSix[3] = str.charCodeAt(i + 2) & 63; } for (let j = 0; j < groupsOfSix.length; j++) { if (typeof groupsOfSix[j] === "undefined") { out += "="; } else { out += KEY_STRING[groupsOfSix[j]]; } } } return out; } // node_modules/devalue/src/constants.js var UNDEFINED = -1; var HOLE = -2; var NAN = -3; var POSITIVE_INFINITY = -4; var NEGATIVE_INFINITY = -5; var NEGATIVE_ZERO = -6; // node_modules/devalue/src/parse.js function parse(serialized, revivers) { return unflatten(JSON.parse(serialized), revivers); } function unflatten(parsed, revivers) { if (typeof parsed === "number") return hydrate(parsed, true); if (!Array.isArray(parsed) || parsed.length === 0) { throw new Error("Invalid input"); } const values = ( /** @type {any[]} */ parsed ); const hydrated = Array(values.length); function hydrate(index, standalone = false) { if (index === UNDEFINED) return void 0; if (index === NAN) return NaN; if (index === POSITIVE_INFINITY) return Infinity; if (index === NEGATIVE_INFINITY) return -Infinity; if (index === NEGATIVE_ZERO) return -0; if (standalone) throw new Error(`Invalid input`); if (index in hydrated) return hydrated[index]; const value = values[index]; if (!value || typeof value !== "object") { hydrated[index] = value; } else if (Array.isArray(value)) { if (typeof value[0] === "string") { const type = value[0]; const reviver = revivers == null ? void 0 : revivers[type]; if (reviver) { return hydrated[index] = reviver(hydrate(value[1])); } switch (type) { case "Date": hydrated[index] = new Date(value[1]); break; case "Set": const set = /* @__PURE__ */ new Set(); hydrated[index] = set; for (let i = 1; i < value.length; i += 1) { set.add(hydrate(value[i])); } break; case "Map": const map = /* @__PURE__ */ new Map(); hydrated[index] = map; for (let i = 1; i < value.length; i += 2) { map.set(hydrate(value[i]), hydrate(value[i + 1])); } break; case "RegExp": hydrated[index] = new RegExp(value[1], value[2]); break; case "Object": hydrated[index] = Object(value[1]); break; case "BigInt": hydrated[index] = BigInt(value[1]); break; case "null": const obj = /* @__PURE__ */ Object.create(null); hydrated[index] = obj; for (let i = 1; i < value.length; i += 2) { obj[value[i]] = hydrate(value[i + 1]); } break; case "Int8Array": case "Uint8Array": case "Uint8ClampedArray": case "Int16Array": case "Uint16Array": case "Int32Array": case "Uint32Array": case "Float32Array": case "Float64Array": case "BigInt64Array": case "BigUint64Array": { const TypedArrayConstructor = globalThis[type]; const base64 = value[1]; const arraybuffer = decode64(base64); const typedArray = new TypedArrayConstructor(arraybuffer); hydrated[index] = typedArray; break; } case "ArrayBuffer": { const base64 = value[1]; const arraybuffer = decode64(base64); hydrated[index] = arraybuffer; break; } default: throw new Error(`Unknown type ${type}`); } } else { const array = new Array(value.length); hydrated[index] = array; for (let i = 0; i < value.length; i += 1) { const n = value[i]; if (n === HOLE) continue; array[i] = hydrate(n); } } } else { const object = {}; hydrated[index] = object; for (const key in value) { const n = value[key]; object[key] = hydrate(n); } } return hydrated[index]; } return hydrate(0); } // node_modules/devalue/src/stringify.js function stringify(value, reducers) { const stringified = []; const indexes = /* @__PURE__ */ new Map(); const custom = []; if (reducers) { for (const key of Object.getOwnPropertyNames(reducers)) { custom.push({ key, fn: reducers[key] }); } } const keys = []; let p = 0; function flatten(thing) { if (typeof thing === "function") { throw new DevalueError(`Cannot stringify a function`, keys); } if (indexes.has(thing)) return indexes.get(thing); if (thing === void 0) return UNDEFINED; if (Number.isNaN(thing)) return NAN; if (thing === Infinity) return POSITIVE_INFINITY; if (thing === -Infinity) return NEGATIVE_INFINITY; if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO; const index2 = p++; indexes.set(thing, index2); for (const { key, fn } of custom) { const value2 = fn(thing); if (value2) { stringified[index2] = `["${key}",${flatten(value2)}]`; return index2; } } let str = ""; if (is_primitive(thing)) { str = stringify_primitive2(thing); } else { const type = get_type(thing); switch (type) { case "Number": case "String": case "Boolean": str = `["Object",${stringify_primitive2(thing)}]`; break; case "BigInt": str = `["BigInt",${thing}]`; break; case "Date": const valid = !isNaN(thing.getDate()); str = `["Date","${valid ? thing.toISOString() : ""}"]`; break; case "RegExp": const { source, flags } = thing; str = flags ? `["RegExp",${stringify_string(source)},"${flags}"]` : `["RegExp",${stringify_string(source)}]`; break; case "Array": str = "["; for (let i = 0; i < thing.length; i += 1) { if (i > 0) str += ","; if (i in thing) { keys.push(`[${i}]`); str += flatten(thing[i]); keys.pop(); } else { str += HOLE; } } str += "]"; break; case "Set": str = '["Set"'; for (const value2 of thing) { str += `,${flatten(value2)}`; } str += "]"; break; case "Map": str = '["Map"'; for (const [key, value2] of thing) { keys.push( `.get(${is_primitive(key) ? stringify_primitive2(key) : "..."})` ); str += `,${flatten(key)},${flatten(value2)}`; keys.pop(); } str += "]"; break; case "Int8Array": case "Uint8Array": case "Uint8ClampedArray": case "Int16Array": case "Uint16Array": case "Int32Array": case "Uint32Array": case "Float32Array": case "Float64Array": case "BigInt64Array": case "BigUint64Array": { const typedArray = thing; const base64 = encode64(typedArray.buffer); str = '["' + type + '","' + base64 + '"]'; break; } case "ArrayBuffer": { const arraybuffer = thing; const base64 = encode64(arraybuffer); str = `["ArrayBuffer","${base64}"]`; break; } default: if (!is_plain_object(thing)) { throw new DevalueError( `Cannot stringify arbitrary non-POJOs`, keys ); } if (enumerable_symbols(thing).length > 0) { throw new DevalueError( `Cannot stringify POJOs with symbolic keys`, keys ); } if (Object.getPrototypeOf(thing) === null) { str = '["null"'; for (const key in thing) { keys.push(stringify_key(key)); str += `,${stringify_string(key)},${flatten(thing[key])}`; keys.pop(); } str += "]"; } else { str = "{"; let started = false; for (const key in thing) { if (started) str += ","; started = true; keys.push(stringify_key(key)); str += `${stringify_string(key)}:${flatten(thing[key])}`; keys.pop(); } str += "}"; } } } stringified[index2] = str; return index2; } const index = flatten(value); if (index < 0) return `${index}`; return `[${stringified.join(",")}]`; } function stringify_primitive2(thing) { const type = typeof thing; if (type === "string") return stringify_string(thing); if (thing instanceof String) return stringify_string(thing.toString()); if (thing === void 0) return UNDEFINED.toString(); if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString(); if (type === "bigint") return `["BigInt","${thing}"]`; return String(thing); } export { parse, stringify, uneval, unflatten }; //# sourceMappingURL=devalue.js.map