@cloudflare/vitest-pool-workers 0.12.20 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/codemods/vitest-v3-to-v4.mjs +45 -0
  2. package/dist/codemods/vitest-v3-to-v4.mjs.map +1 -0
  3. package/dist/pool/index.d.mts +133 -0
  4. package/dist/pool/index.mjs +2784 -7847
  5. package/dist/pool/index.mjs.map +1 -6
  6. package/dist/worker/index.mjs +753 -792
  7. package/dist/worker/index.mjs.map +1 -6
  8. package/dist/worker/lib/cloudflare/snapshot.mjs +39 -0
  9. package/dist/worker/lib/cloudflare/snapshot.mjs.map +1 -0
  10. package/dist/worker/lib/cloudflare/test-internal.mjs +788 -1276
  11. package/dist/worker/lib/cloudflare/test-internal.mjs.map +1 -6
  12. package/dist/worker/lib/cloudflare/test.mjs +3 -36
  13. package/dist/worker/node/console.mjs +95 -116
  14. package/dist/worker/node/console.mjs.map +1 -6
  15. package/dist/worker/node/vm.mjs +10 -11
  16. package/dist/worker/node/vm.mjs.map +1 -6
  17. package/package.json +25 -21
  18. package/types/cloudflare-test.d.ts +5 -30
  19. package/dist/config/d1.d.ts +0 -7
  20. package/dist/config/index.cjs +0 -230
  21. package/dist/config/index.cjs.map +0 -6
  22. package/dist/config/index.d.ts +0 -27
  23. package/dist/config/pages.d.ts +0 -2
  24. package/dist/pool/config.d.ts +0 -112
  25. package/dist/pool/helpers.d.ts +0 -5
  26. package/dist/shared/builtin-modules.d.ts +0 -1
  27. package/dist/shared/d1.d.ts +0 -4
  28. package/dist/worker/lib/cloudflare/empty-internal.cjs +0 -27
  29. package/dist/worker/lib/cloudflare/empty-internal.cjs.map +0 -6
  30. package/dist/worker/lib/cloudflare/mock-agent.cjs +0 -3433
  31. package/dist/worker/lib/cloudflare/mock-agent.cjs.map +0 -6
  32. package/dist/worker/lib/cloudflare/test-runner.mjs +0 -246
  33. package/dist/worker/lib/cloudflare/test-runner.mjs.map +0 -6
  34. package/dist/worker/lib/cloudflare/test.mjs.map +0 -6
  35. package/dist/worker/lib/debug.mjs +0 -9
  36. package/dist/worker/lib/debug.mjs.map +0 -6
  37. package/dist/worker/lib/mlly.mjs +0 -48
  38. package/dist/worker/lib/mlly.mjs.map +0 -6
  39. package/dist/worker/lib/tinypool.mjs +0 -6
  40. package/dist/worker/lib/tinypool.mjs.map +0 -6
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/worker/index.ts", "../../../../node_modules/.pnpm/devalue@5.3.2/node_modules/devalue/src/utils.js", "../../../../node_modules/.pnpm/devalue@5.3.2/node_modules/devalue/src/base64.js", "../../../../node_modules/.pnpm/devalue@5.3.2/node_modules/devalue/src/constants.js", "../../../../node_modules/.pnpm/devalue@5.3.2/node_modules/devalue/src/parse.js", "../../../../node_modules/.pnpm/devalue@5.3.2/node_modules/devalue/src/stringify.js", "../../../miniflare/src/workers/core/devalue.ts", "../../src/shared/chunking-socket.ts"],
4
- "mappings": "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",
5
- "names": ["assert", "Buffer", "index", "value", "assert", "Buffer", "Buffer", "assert"]
6
- }
1
+ {"version":3,"file":"index.mjs","names":["index","value","structuredSerializableReducers: ReducersRevivers","structuredSerializableRevivers: ReducersRevivers","devalue.stringify","devalue.parse","name: string","cwd: string | undefined","fileName: string | null","error: { stack?: string }","promiseResolve: (() => void) | undefined"],"sources":["../../../../node_modules/.pnpm/devalue@5.6.3/node_modules/devalue/src/utils.js","../../../../node_modules/.pnpm/devalue@5.6.3/node_modules/devalue/src/base64.js","../../../../node_modules/.pnpm/devalue@5.6.3/node_modules/devalue/src/constants.js","../../../../node_modules/.pnpm/devalue@5.6.3/node_modules/devalue/src/parse.js","../../../../node_modules/.pnpm/devalue@5.6.3/node_modules/devalue/src/stringify.js","../../../miniflare/src/workers/core/devalue.ts","../../src/worker/index.ts"],"sourcesContent":["/** @type {Record<string, string>} */\nexport const escaped = {\n\t'<': '\\\\u003C',\n\t'\\\\': '\\\\\\\\',\n\t'\\b': '\\\\b',\n\t'\\f': '\\\\f',\n\t'\\n': '\\\\n',\n\t'\\r': '\\\\r',\n\t'\\t': '\\\\t',\n\t'\\u2028': '\\\\u2028',\n\t'\\u2029': '\\\\u2029'\n};\n\nexport class DevalueError extends Error {\n\t/**\n\t * @param {string} message\n\t * @param {string[]} keys\n\t * @param {any} [value] - The value that failed to be serialized\n\t * @param {any} [root] - The root value being serialized\n\t */\n\tconstructor(message, keys, value, root) {\n\t\tsuper(message);\n\t\tthis.name = 'DevalueError';\n\t\tthis.path = keys.join('');\n\t\tthis.value = value;\n\t\tthis.root = root;\n\t}\n}\n\n/** @param {any} thing */\nexport function is_primitive(thing) {\n\treturn Object(thing) !== thing;\n}\n\nconst object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(\n\tObject.prototype\n)\n\t.sort()\n\t.join('\\0');\n\n/** @param {any} thing */\nexport function is_plain_object(thing) {\n\tconst proto = Object.getPrototypeOf(thing);\n\n\treturn (\n\t\tproto === Object.prototype ||\n\t\tproto === null ||\n\t\tObject.getPrototypeOf(proto) === null ||\n\t\tObject.getOwnPropertyNames(proto).sort().join('\\0') === object_proto_names\n\t);\n}\n\n/** @param {any} thing */\nexport function get_type(thing) {\n\treturn Object.prototype.toString.call(thing).slice(8, -1);\n}\n\n/** @param {string} char */\nfunction get_escaped_char(char) {\n\tswitch (char) {\n\t\tcase '\"':\n\t\t\treturn '\\\\\"';\n\t\tcase '<':\n\t\t\treturn '\\\\u003C';\n\t\tcase '\\\\':\n\t\t\treturn '\\\\\\\\';\n\t\tcase '\\n':\n\t\t\treturn '\\\\n';\n\t\tcase '\\r':\n\t\t\treturn '\\\\r';\n\t\tcase '\\t':\n\t\t\treturn '\\\\t';\n\t\tcase '\\b':\n\t\t\treturn '\\\\b';\n\t\tcase '\\f':\n\t\t\treturn '\\\\f';\n\t\tcase '\\u2028':\n\t\t\treturn '\\\\u2028';\n\t\tcase '\\u2029':\n\t\t\treturn '\\\\u2029';\n\t\tdefault:\n\t\t\treturn char < ' '\n\t\t\t\t? `\\\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}`\n\t\t\t\t: '';\n\t}\n}\n\n/** @param {string} str */\nexport function stringify_string(str) {\n\tlet result = '';\n\tlet last_pos = 0;\n\tconst len = str.length;\n\n\tfor (let i = 0; i < len; i += 1) {\n\t\tconst char = str[i];\n\t\tconst replacement = get_escaped_char(char);\n\t\tif (replacement) {\n\t\t\tresult += str.slice(last_pos, i) + replacement;\n\t\t\tlast_pos = i + 1;\n\t\t}\n\t}\n\n\treturn `\"${last_pos === 0 ? str : result + str.slice(last_pos)}\"`;\n}\n\n/** @param {Record<string | symbol, any>} object */\nexport function enumerable_symbols(object) {\n\treturn Object.getOwnPropertySymbols(object).filter(\n\t\t(symbol) => Object.getOwnPropertyDescriptor(object, symbol).enumerable\n\t);\n}\n\nconst is_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;\n\n/** @param {string} key */\nexport function stringify_key(key) {\n\treturn is_identifier.test(key) ? '.' + key : '[' + JSON.stringify(key) + ']';\n}\n\n/** @param {string} s */\nfunction is_valid_array_index(s) {\n\tif (s.length === 0) return false;\n\tif (s.length > 1 && s.charCodeAt(0) === 48) return false; // leading zero\n\tfor (let i = 0; i < s.length; i++) {\n\t\tconst c = s.charCodeAt(i);\n\t\tif (c < 48 || c > 57) return false;\n\t}\n\t// by this point we know it's a string of digits, but it has to be within the range of valid array indices\n\tconst n = +s;\n\tif (n >= 2 ** 32 - 1) return false;\n\tif (n < 0) return false;\n\treturn true;\n}\n\n/**\n * Finds the populated indices of an array.\n * @param {unknown[]} array\n */\nexport function valid_array_indices(array) {\n\tconst keys = Object.keys(array);\n\tfor (var i = keys.length - 1; i >= 0; i--) {\n\t\tif (is_valid_array_index(keys[i])) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tkeys.length = i + 1;\n\treturn keys;\n}\n","/**\n * Base64 Encodes an arraybuffer\n * @param {ArrayBuffer} arraybuffer\n * @returns {string}\n */\nexport function encode64(arraybuffer) {\n const dv = new DataView(arraybuffer);\n let binaryString = \"\";\n\n for (let i = 0; i < arraybuffer.byteLength; i++) {\n binaryString += String.fromCharCode(dv.getUint8(i));\n }\n\n return binaryToAscii(binaryString);\n}\n\n/**\n * Decodes a base64 string into an arraybuffer\n * @param {string} string\n * @returns {ArrayBuffer}\n */\nexport function decode64(string) {\n const binaryString = asciiToBinary(string);\n const arraybuffer = new ArrayBuffer(binaryString.length);\n const dv = new DataView(arraybuffer);\n\n for (let i = 0; i < arraybuffer.byteLength; i++) {\n dv.setUint8(i, binaryString.charCodeAt(i));\n }\n\n return arraybuffer;\n}\n\nconst KEY_STRING =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n/**\n * Substitute for atob since it's deprecated in node.\n * Does not do any input validation.\n *\n * @see https://github.com/jsdom/abab/blob/master/lib/atob.js\n *\n * @param {string} data\n * @returns {string}\n */\nfunction asciiToBinary(data) {\n if (data.length % 4 === 0) {\n data = data.replace(/==?$/, \"\");\n }\n\n let output = \"\";\n let buffer = 0;\n let accumulatedBits = 0;\n\n for (let i = 0; i < data.length; i++) {\n buffer <<= 6;\n buffer |= KEY_STRING.indexOf(data[i]);\n accumulatedBits += 6;\n if (accumulatedBits === 24) {\n output += String.fromCharCode((buffer & 0xff0000) >> 16);\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n buffer = accumulatedBits = 0;\n }\n }\n if (accumulatedBits === 12) {\n buffer >>= 4;\n output += String.fromCharCode(buffer);\n } else if (accumulatedBits === 18) {\n buffer >>= 2;\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n }\n return output;\n}\n\n/**\n * Substitute for btoa since it's deprecated in node.\n * Does not do any input validation.\n *\n * @see https://github.com/jsdom/abab/blob/master/lib/btoa.js\n *\n * @param {string} str\n * @returns {string}\n */\nfunction binaryToAscii(str) {\n let out = \"\";\n for (let i = 0; i < str.length; i += 3) {\n /** @type {[number, number, number, number]} */\n const groupsOfSix = [undefined, undefined, undefined, undefined];\n groupsOfSix[0] = str.charCodeAt(i) >> 2;\n groupsOfSix[1] = (str.charCodeAt(i) & 0x03) << 4;\n if (str.length > i + 1) {\n groupsOfSix[1] |= str.charCodeAt(i + 1) >> 4;\n groupsOfSix[2] = (str.charCodeAt(i + 1) & 0x0f) << 2;\n }\n if (str.length > i + 2) {\n groupsOfSix[2] |= str.charCodeAt(i + 2) >> 6;\n groupsOfSix[3] = str.charCodeAt(i + 2) & 0x3f;\n }\n for (let j = 0; j < groupsOfSix.length; j++) {\n if (typeof groupsOfSix[j] === \"undefined\") {\n out += \"=\";\n } else {\n out += KEY_STRING[groupsOfSix[j]];\n }\n }\n }\n return out;\n}\n","export const UNDEFINED = -1;\nexport const HOLE = -2;\nexport const NAN = -3;\nexport const POSITIVE_INFINITY = -4;\nexport const NEGATIVE_INFINITY = -5;\nexport const NEGATIVE_ZERO = -6;\nexport const SPARSE = -7;\n","import { decode64 } from './base64.js';\nimport {\n\tHOLE,\n\tNAN,\n\tNEGATIVE_INFINITY,\n\tNEGATIVE_ZERO,\n\tPOSITIVE_INFINITY,\n\tSPARSE,\n\tUNDEFINED\n} from './constants.js';\n\n/**\n * Revive a value serialized with `devalue.stringify`\n * @param {string} serialized\n * @param {Record<string, (value: any) => any>} [revivers]\n */\nexport function parse(serialized, revivers) {\n\treturn unflatten(JSON.parse(serialized), revivers);\n}\n\n/**\n * Revive a value flattened with `devalue.stringify`\n * @param {number | any[]} parsed\n * @param {Record<string, (value: any) => any>} [revivers]\n */\nexport function unflatten(parsed, revivers) {\n\tif (typeof parsed === 'number') return hydrate(parsed, true);\n\n\tif (!Array.isArray(parsed) || parsed.length === 0) {\n\t\tthrow new Error('Invalid input');\n\t}\n\n\tconst values = /** @type {any[]} */ (parsed);\n\n\tconst hydrated = Array(values.length);\n\n\t/**\n\t * A set of values currently being hydrated with custom revivers,\n\t * used to detect invalid cyclical dependencies\n\t * @type {Set<number> | null}\n\t */\n\tlet hydrating = null;\n\n\t/**\n\t * @param {number} index\n\t * @returns {any}\n\t */\n\tfunction hydrate(index, standalone = false) {\n\t\tif (index === UNDEFINED) return undefined;\n\t\tif (index === NAN) return NaN;\n\t\tif (index === POSITIVE_INFINITY) return Infinity;\n\t\tif (index === NEGATIVE_INFINITY) return -Infinity;\n\t\tif (index === NEGATIVE_ZERO) return -0;\n\n\t\tif (standalone || typeof index !== 'number') {\n\t\t\tthrow new Error(`Invalid input`);\n\t\t}\n\n\t\tif (index in hydrated) return hydrated[index];\n\n\t\tconst value = values[index];\n\n\t\tif (!value || typeof value !== 'object') {\n\t\t\thydrated[index] = value;\n\t\t} else if (Array.isArray(value)) {\n\t\t\tif (typeof value[0] === 'string') {\n\t\t\t\tconst type = value[0];\n\n\t\t\t\tconst reviver =\n\t\t\t\t\trevivers && Object.hasOwn(revivers, type)\n\t\t\t\t\t\t? revivers[type]\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\tif (reviver) {\n\t\t\t\t\tlet i = value[1];\n\t\t\t\t\tif (typeof i !== 'number') {\n\t\t\t\t\t\t// if it's not a number, it was serialized by a builtin reviver\n\t\t\t\t\t\t// so we need to munge it into the format expected by a custom reviver\n\t\t\t\t\t\ti = values.push(value[1]) - 1;\n\t\t\t\t\t}\n\n\t\t\t\t\thydrating ??= new Set();\n\n\t\t\t\t\tif (hydrating.has(i)) {\n\t\t\t\t\t\tthrow new Error('Invalid circular reference');\n\t\t\t\t\t}\n\n\t\t\t\t\thydrating.add(i);\n\t\t\t\t\thydrated[index] = reviver(hydrate(i));\n\t\t\t\t\thydrating.delete(i);\n\n\t\t\t\t\treturn hydrated[index];\n\t\t\t\t}\n\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'Date':\n\t\t\t\t\t\thydrated[index] = new Date(value[1]);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'Set':\n\t\t\t\t\t\tconst set = new Set();\n\t\t\t\t\t\thydrated[index] = set;\n\t\t\t\t\t\tfor (let i = 1; i < value.length; i += 1) {\n\t\t\t\t\t\t\tset.add(hydrate(value[i]));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'Map':\n\t\t\t\t\t\tconst map = new Map();\n\t\t\t\t\t\thydrated[index] = map;\n\t\t\t\t\t\tfor (let i = 1; i < value.length; i += 2) {\n\t\t\t\t\t\t\tmap.set(hydrate(value[i]), hydrate(value[i + 1]));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'RegExp':\n\t\t\t\t\t\thydrated[index] = new RegExp(value[1], value[2]);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\thydrated[index] = Object(value[1]);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'BigInt':\n\t\t\t\t\t\thydrated[index] = BigInt(value[1]);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'null':\n\t\t\t\t\t\tconst obj = Object.create(null);\n\t\t\t\t\t\thydrated[index] = obj;\n\t\t\t\t\t\tfor (let i = 1; i < value.length; i += 2) {\n\t\t\t\t\t\t\tobj[value[i]] = hydrate(value[i + 1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'Int8Array':\n\t\t\t\t\tcase 'Uint8Array':\n\t\t\t\t\tcase 'Uint8ClampedArray':\n\t\t\t\t\tcase 'Int16Array':\n\t\t\t\t\tcase 'Uint16Array':\n\t\t\t\t\tcase 'Int32Array':\n\t\t\t\t\tcase 'Uint32Array':\n\t\t\t\t\tcase 'Float32Array':\n\t\t\t\t\tcase 'Float64Array':\n\t\t\t\t\tcase 'BigInt64Array':\n\t\t\t\t\tcase 'BigUint64Array': {\n\t\t\t\t\t\tif (values[value[1]][0] !== 'ArrayBuffer') {\n\t\t\t\t\t\t\t// without this, if we receive malformed input we could\n\t\t\t\t\t\t\t// end up trying to hydrate in a circle or allocate\n\t\t\t\t\t\t\t// huge amounts of memory when we call `new TypedArrayConstructor(buffer)`\n\t\t\t\t\t\t\tthrow new Error('Invalid data');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst TypedArrayConstructor = globalThis[type];\n\t\t\t\t\t\tconst buffer = hydrate(value[1]);\n\t\t\t\t\t\tconst typedArray = new TypedArrayConstructor(buffer);\n\n\t\t\t\t\t\thydrated[index] =\n\t\t\t\t\t\t\tvalue[2] !== undefined\n\t\t\t\t\t\t\t\t? typedArray.subarray(value[2], value[3])\n\t\t\t\t\t\t\t\t: typedArray;\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase 'ArrayBuffer': {\n\t\t\t\t\t\tconst base64 = value[1];\n\t\t\t\t\t\tif (typeof base64 !== 'string') {\n\t\t\t\t\t\t\tthrow new Error('Invalid ArrayBuffer encoding');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst arraybuffer = decode64(base64);\n\t\t\t\t\t\thydrated[index] = arraybuffer;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase 'Temporal.Duration':\n\t\t\t\t\tcase 'Temporal.Instant':\n\t\t\t\t\tcase 'Temporal.PlainDate':\n\t\t\t\t\tcase 'Temporal.PlainTime':\n\t\t\t\t\tcase 'Temporal.PlainDateTime':\n\t\t\t\t\tcase 'Temporal.PlainMonthDay':\n\t\t\t\t\tcase 'Temporal.PlainYearMonth':\n\t\t\t\t\tcase 'Temporal.ZonedDateTime': {\n\t\t\t\t\t\tconst temporalName = type.slice(9);\n\t\t\t\t\t\t// @ts-expect-error TS doesn't know about Temporal yet\n\t\t\t\t\t\thydrated[index] = Temporal[temporalName].from(value[1]);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase 'URL': {\n\t\t\t\t\t\tconst url = new URL(value[1]);\n\t\t\t\t\t\thydrated[index] = url;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase 'URLSearchParams': {\n\t\t\t\t\t\tconst url = new URLSearchParams(value[1]);\n\t\t\t\t\t\thydrated[index] = url;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error(`Unknown type ${type}`);\n\t\t\t\t}\n\t\t\t} else if (value[0] === SPARSE) {\n\t\t\t\t// Sparse array encoding: [SPARSE, length, idx, val, idx, val, ...]\n\t\t\t\tconst len = value[1];\n\n\t\t\t\tconst array = new Array(len);\n\t\t\t\thydrated[index] = array;\n\n\t\t\t\tfor (let i = 2; i < value.length; i += 2) {\n\t\t\t\t\tconst idx = value[i];\n\t\t\t\t\tarray[idx] = hydrate(value[i + 1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst array = new Array(value.length);\n\t\t\t\thydrated[index] = array;\n\n\t\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t\tconst n = value[i];\n\t\t\t\t\tif (n === HOLE) continue;\n\n\t\t\t\t\tarray[i] = hydrate(n);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t/** @type {Record<string, any>} */\n\t\t\tconst object = {};\n\t\t\thydrated[index] = object;\n\n\t\t\tfor (const key of Object.keys(value)) {\n\t\t\t\tif (key === '__proto__') {\n\t\t\t\t\tthrow new Error('Cannot parse an object with a `__proto__` property');\n\t\t\t\t}\n\n\t\t\t\tconst n = value[key];\n\t\t\t\tobject[key] = hydrate(n);\n\t\t\t}\n\t\t}\n\n\t\treturn hydrated[index];\n\t}\n\n\treturn hydrate(0);\n}\n","import {\n\tDevalueError,\n\tenumerable_symbols,\n\tget_type,\n\tis_plain_object,\n\tis_primitive,\n\tstringify_key,\n\tstringify_string,\n\tvalid_array_indices\n} from './utils.js';\nimport {\n\tHOLE,\n\tNAN,\n\tNEGATIVE_INFINITY,\n\tNEGATIVE_ZERO,\n\tPOSITIVE_INFINITY,\n\tSPARSE,\n\tUNDEFINED\n} from './constants.js';\nimport { encode64 } from './base64.js';\n\n/**\n * Turn a value into a JSON string that can be parsed with `devalue.parse`\n * @param {any} value\n * @param {Record<string, (value: any) => any>} [reducers]\n */\nexport function stringify(value, reducers) {\n\t/** @type {any[]} */\n\tconst stringified = [];\n\n\t/** @type {Map<any, number>} */\n\tconst indexes = new Map();\n\n\t/** @type {Array<{ key: string, fn: (value: any) => any }>} */\n\tconst custom = [];\n\tif (reducers) {\n\t\tfor (const key of Object.getOwnPropertyNames(reducers)) {\n\t\t\tcustom.push({ key, fn: reducers[key] });\n\t\t}\n\t}\n\n\t/** @type {string[]} */\n\tconst keys = [];\n\n\tlet p = 0;\n\n\t/** @param {any} thing */\n\tfunction flatten(thing) {\n\t\tif (thing === undefined) return UNDEFINED;\n\t\tif (Number.isNaN(thing)) return NAN;\n\t\tif (thing === Infinity) return POSITIVE_INFINITY;\n\t\tif (thing === -Infinity) return NEGATIVE_INFINITY;\n\t\tif (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO;\n\n\t\tif (indexes.has(thing)) return indexes.get(thing);\n\n\t\tconst index = p++;\n\t\tindexes.set(thing, index);\n\n\t\tfor (const { key, fn } of custom) {\n\t\t\tconst value = fn(thing);\n\t\t\tif (value) {\n\t\t\t\tstringified[index] = `[\"${key}\",${flatten(value)}]`;\n\t\t\t\treturn index;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof thing === 'function') {\n\t\t\tthrow new DevalueError(`Cannot stringify a function`, keys, thing, value);\n\t\t}\n\n\t\tlet str = '';\n\n\t\tif (is_primitive(thing)) {\n\t\t\tstr = stringify_primitive(thing);\n\t\t} else {\n\t\t\tconst type = get_type(thing);\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'Number':\n\t\t\t\tcase 'String':\n\t\t\t\tcase 'Boolean':\n\t\t\t\t\tstr = `[\"Object\",${stringify_primitive(thing)}]`;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'BigInt':\n\t\t\t\t\tstr = `[\"BigInt\",${thing}]`;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Date':\n\t\t\t\t\tconst valid = !isNaN(thing.getDate());\n\t\t\t\t\tstr = `[\"Date\",\"${valid ? thing.toISOString() : ''}\"]`;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'URL':\n\t\t\t\t\tstr = `[\"URL\",${stringify_string(thing.toString())}]`;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'URLSearchParams':\n\t\t\t\t\tstr = `[\"URLSearchParams\",${stringify_string(thing.toString())}]`;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'RegExp':\n\t\t\t\t\tconst { source, flags } = thing;\n\t\t\t\t\tstr = flags\n\t\t\t\t\t\t? `[\"RegExp\",${stringify_string(source)},\"${flags}\"]`\n\t\t\t\t\t\t: `[\"RegExp\",${stringify_string(source)}]`;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Array': {\n\t\t\t\t\t// For dense arrays (no holes), we iterate normally.\n\t\t\t\t\t// When we encounter the first hole, we call Object.keys\n\t\t\t\t\t// to determine the sparseness, then decide between:\n\t\t\t\t\t// - HOLE encoding: [-2, val, -2, ...] (default)\n\t\t\t\t\t// - Sparse encoding: [-7, length, idx, val, ...] (for very sparse arrays)\n\t\t\t\t\t// Only the sparse path avoids iterating every slot, which\n\t\t\t\t\t// is what protects against the DoS of e.g. `arr[1000000] = 1`.\n\t\t\t\t\tlet mostly_dense = false;\n\n\t\t\t\t\tstr = '[';\n\n\t\t\t\t\tfor (let i = 0; i < thing.length; i += 1) {\n\t\t\t\t\t\tif (i > 0) str += ',';\n\n\t\t\t\t\t\tif (Object.hasOwn(thing, i)) {\n\t\t\t\t\t\t\tkeys.push(`[${i}]`);\n\t\t\t\t\t\t\tstr += flatten(thing[i]);\n\t\t\t\t\t\t\tkeys.pop();\n\t\t\t\t\t\t} else if (mostly_dense) {\n\t\t\t\t\t\t\t// Use dense encoding. The heuristic guarantees the\n\t\t\t\t\t\t\t// array is only mildly sparse, so iterating over every\n\t\t\t\t\t\t\t// slot is fine.\n\t\t\t\t\t\t\tstr += HOLE;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Decide between HOLE encoding and sparse encoding.\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// HOLE encoding: each hole is serialized as the HOLE\n\t\t\t\t\t\t\t// sentinel (-2). For example, [, \"a\", ,] becomes\n\t\t\t\t\t\t\t// [-2, 0, -2]. Each hole costs 3 chars (\"-2\" + comma).\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// Sparse encoding: lists only populated indices.\n\t\t\t\t\t\t\t// For example, [, \"a\", ,] becomes [-7, 3, 1, 0] — the\n\t\t\t\t\t\t\t// -7 sentinel, the array length (3), then index-value\n\t\t\t\t\t\t\t// pairs. This avoids paying per-hole, but each element\n\t\t\t\t\t\t\t// costs extra chars to write its index.\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// The values are the same size either way, so the\n\t\t\t\t\t\t\t// choice comes down to structural overhead:\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// HOLE overhead:\n\t\t\t\t\t\t\t// 3 chars per hole (\"-2\" + comma)\n\t\t\t\t\t\t\t// = (L - P) * 3\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// Sparse overhead:\n\t\t\t\t\t\t\t// \"-7,\" — 3 chars (sparse sentinel + comma)\n\t\t\t\t\t\t\t// + length + \",\" — (d + 1) chars (array length + comma)\n\t\t\t\t\t\t\t// + per element: index + \",\" — (d + 1) chars\n\t\t\t\t\t\t\t// = (4 + d) + P * (d + 1)\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// where L is the array length, P is the number of\n\t\t\t\t\t\t\t// populated elements, and d is the number of digits\n\t\t\t\t\t\t\t// in L (an upper bound on the digits in any index).\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// Sparse encoding is cheaper when:\n\t\t\t\t\t\t\t// (4 + d) + P * (d + 1) < (L - P) * 3\n\t\t\t\t\t\t\tconst populated_keys = valid_array_indices(/** @type {any[]} */ (thing));\n\t\t\t\t\t\t\tconst population = populated_keys.length;\n\t\t\t\t\t\t\tconst d = String(thing.length).length;\n\n\t\t\t\t\t\t\tconst hole_cost = (thing.length - population) * 3;\n\t\t\t\t\t\t\tconst sparse_cost = 4 + d + population * (d + 1);\n\n\t\t\t\t\t\t\tif (hole_cost > sparse_cost) {\n\t\t\t\t\t\t\t\tstr = '[' + SPARSE + ',' + thing.length;\n\t\t\t\t\t\t\t\tfor (let j = 0; j < populated_keys.length; j++) {\n\t\t\t\t\t\t\t\t\tconst key = populated_keys[j];\n\t\t\t\t\t\t\t\t\tkeys.push(`[${key}]`);\n\t\t\t\t\t\t\t\t\tstr += ',' + key + ',' + flatten(thing[key]);\n\t\t\t\t\t\t\t\t\tkeys.pop();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmostly_dense = true;\n\t\t\t\t\t\t\t\tstr += HOLE;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tstr += ']';\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'Set':\n\t\t\t\t\tstr = '[\"Set\"';\n\n\t\t\t\t\tfor (const value of thing) {\n\t\t\t\t\t\tstr += `,${flatten(value)}`;\n\t\t\t\t\t}\n\n\t\t\t\t\tstr += ']';\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Map':\n\t\t\t\t\tstr = '[\"Map\"';\n\n\t\t\t\t\tfor (const [key, value] of thing) {\n\t\t\t\t\t\tkeys.push(\n\t\t\t\t\t\t\t`.get(${is_primitive(key) ? stringify_primitive(key) : '...'})`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tstr += `,${flatten(key)},${flatten(value)}`;\n\t\t\t\t\t\tkeys.pop();\n\t\t\t\t\t}\n\n\t\t\t\t\tstr += ']';\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Int8Array':\n\t\t\t\tcase 'Uint8Array':\n\t\t\t\tcase 'Uint8ClampedArray':\n\t\t\t\tcase 'Int16Array':\n\t\t\t\tcase 'Uint16Array':\n\t\t\t\tcase 'Int32Array':\n\t\t\t\tcase 'Uint32Array':\n\t\t\t\tcase 'Float32Array':\n\t\t\t\tcase 'Float64Array':\n\t\t\t\tcase 'BigInt64Array':\n\t\t\t\tcase 'BigUint64Array': {\n\t\t\t\t\t/** @type {import(\"./types.js\").TypedArray} */\n\t\t\t\t\tconst typedArray = thing;\n\t\t\t\t\tstr = '[\"' + type + '\",' + flatten(typedArray.buffer);\n\n\t\t\t\t\tconst a = thing.byteOffset;\n\t\t\t\t\tconst b = a + thing.byteLength;\n\n\t\t\t\t\t// handle subarrays\n\t\t\t\t\tif (a > 0 || b !== typedArray.buffer.byteLength) {\n\t\t\t\t\t\tconst m = +/(\\d+)/.exec(type)[1] / 8;\n\t\t\t\t\t\tstr += `,${a / m},${b / m}`;\n\t\t\t\t\t}\n\n\t\t\t\t\tstr += ']';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'ArrayBuffer': {\n\t\t\t\t\t/** @type {ArrayBuffer} */\n\t\t\t\t\tconst arraybuffer = thing;\n\t\t\t\t\tconst base64 = encode64(arraybuffer);\n\n\t\t\t\t\tstr = `[\"ArrayBuffer\",\"${base64}\"]`;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'Temporal.Duration':\n\t\t\t\tcase 'Temporal.Instant':\n\t\t\t\tcase 'Temporal.PlainDate':\n\t\t\t\tcase 'Temporal.PlainTime':\n\t\t\t\tcase 'Temporal.PlainDateTime':\n\t\t\t\tcase 'Temporal.PlainMonthDay':\n\t\t\t\tcase 'Temporal.PlainYearMonth':\n\t\t\t\tcase 'Temporal.ZonedDateTime':\n\t\t\t\t\tstr = `[\"${type}\",${stringify_string(thing.toString())}]`;\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif (!is_plain_object(thing)) {\n\t\t\t\t\t\tthrow new DevalueError(\n\t\t\t\t\t\t\t`Cannot stringify arbitrary non-POJOs`,\n\t\t\t\t\t\t\tkeys,\n\t\t\t\t\t\t\tthing,\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (enumerable_symbols(thing).length > 0) {\n\t\t\t\t\t\tthrow new DevalueError(\n\t\t\t\t\t\t\t`Cannot stringify POJOs with symbolic keys`,\n\t\t\t\t\t\t\tkeys,\n\t\t\t\t\t\t\tthing,\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Object.getPrototypeOf(thing) === null) {\n\t\t\t\t\t\tstr = '[\"null\"';\n\t\t\t\t\t\tfor (const key of Object.keys(thing)) {\n\t\t\t\t\t\t\tif (key === '__proto__') {\n\t\t\t\t\t\t\t\tthrow new DevalueError(\n\t\t\t\t\t\t\t\t\t`Cannot stringify objects with __proto__ keys`,\n\t\t\t\t\t\t\t\t\tkeys,\n\t\t\t\t\t\t\t\t\tthing,\n\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tkeys.push(stringify_key(key));\n\t\t\t\t\t\t\tstr += `,${stringify_string(key)},${flatten(thing[key])}`;\n\t\t\t\t\t\t\tkeys.pop();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstr += ']';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstr = '{';\n\t\t\t\t\t\tlet started = false;\n\t\t\t\t\t\tfor (const key of Object.keys(thing)) {\n\t\t\t\t\t\t\tif (key === '__proto__') {\n\t\t\t\t\t\t\t\tthrow new DevalueError(\n\t\t\t\t\t\t\t\t\t`Cannot stringify objects with __proto__ keys`,\n\t\t\t\t\t\t\t\t\tkeys,\n\t\t\t\t\t\t\t\t\tthing,\n\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (started) str += ',';\n\t\t\t\t\t\t\tstarted = true;\n\t\t\t\t\t\t\tkeys.push(stringify_key(key));\n\t\t\t\t\t\t\tstr += `${stringify_string(key)}:${flatten(thing[key])}`;\n\t\t\t\t\t\t\tkeys.pop();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstr += '}';\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tstringified[index] = str;\n\t\treturn index;\n\t}\n\n\tconst index = flatten(value);\n\n\t// special case — value is represented as a negative index\n\tif (index < 0) return `${index}`;\n\n\treturn `[${stringified.join(',')}]`;\n}\n\n/**\n * @param {any} thing\n * @returns {string}\n */\nfunction stringify_primitive(thing) {\n\tconst type = typeof thing;\n\tif (type === 'string') return stringify_string(thing);\n\tif (thing instanceof String) return stringify_string(thing.toString());\n\tif (thing === void 0) return UNDEFINED.toString();\n\tif (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString();\n\tif (type === 'bigint') return `[\"BigInt\",\"${thing}\"]`;\n\treturn String(thing);\n}\n","import assert from \"node:assert\";\nimport { Buffer } from \"node:buffer\";\nimport { parse, stringify } from \"devalue\";\nimport type {\n\tBlob as WorkerBlob,\n\tBlobOptions as WorkerBlobOptions,\n\tFile as WorkerFile,\n\tFileOptions as WorkerFileOptions,\n\tHeaders as WorkerHeaders,\n\tReadableStream as WorkerReadableStream,\n\tRequest as WorkerRequest,\n\tResponse as WorkerResponse,\n} from \"@cloudflare/workers-types/experimental\";\n\n// This file implements `devalue` reducers and revivers for structured-\n// serialisable types not supported by default. See serialisable types here:\n// https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm#supported_types\n\nexport type ReducerReviver = (value: unknown) => unknown;\nexport type ReducersRevivers = Record<string, ReducerReviver>;\n\nconst ALLOWED_ARRAY_BUFFER_VIEW_CONSTRUCTORS = [\n\tDataView<ArrayBuffer>,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tInt16Array,\n\tUint16Array,\n\tInt32Array,\n\tUint32Array,\n\tFloat32Array,\n\tFloat64Array,\n\tBigInt64Array,\n\tBigUint64Array,\n] as const;\nconst ALLOWED_ERROR_CONSTRUCTORS = [\n\tEvalError,\n\tRangeError,\n\tReferenceError,\n\tSyntaxError,\n\tTypeError,\n\tURIError,\n\tError, // `Error` last so more specific error subclasses preferred\n] as const;\n\nexport const structuredSerializableReducers: ReducersRevivers = {\n\tArrayBuffer(value) {\n\t\tif (value instanceof ArrayBuffer) {\n\t\t\t// Return single element array so empty `ArrayBuffer` serialised as truthy\n\t\t\treturn [Buffer.from(value).toString(\"base64\")];\n\t\t}\n\t},\n\tArrayBufferView(value) {\n\t\tif (ArrayBuffer.isView(value)) {\n\t\t\treturn [\n\t\t\t\tvalue.constructor.name,\n\t\t\t\tvalue.buffer,\n\t\t\t\tvalue.byteOffset,\n\t\t\t\tvalue.byteLength,\n\t\t\t];\n\t\t}\n\t},\n\tRegExp(value) {\n\t\tif (value instanceof RegExp) {\n\t\t\tconst { source, flags } = value;\n\t\t\tconst encoded = Buffer.from(source).toString(\"base64\");\n\t\t\treturn flags ? [\"RegExp\", encoded, flags] : [\"RegExp\", encoded];\n\t\t}\n\t},\n\tError(value) {\n\t\tfor (const ctor of ALLOWED_ERROR_CONSTRUCTORS) {\n\t\t\tif (value instanceof ctor && value.name === ctor.name) {\n\t\t\t\treturn [value.name, value.message, value.stack, value.cause];\n\t\t\t}\n\t\t}\n\t\tif (value instanceof Error) {\n\t\t\treturn [\"Error\", value.message, value.stack, value.cause];\n\t\t}\n\t},\n};\nexport const structuredSerializableRevivers: ReducersRevivers = {\n\tArrayBuffer(value) {\n\t\tassert(Array.isArray(value));\n\t\tconst [encoded] = value as unknown[];\n\t\tassert(typeof encoded === \"string\");\n\t\tconst view = Buffer.from(encoded, \"base64\");\n\t\treturn view.buffer.slice(\n\t\t\tview.byteOffset,\n\t\t\tview.byteOffset + view.byteLength\n\t\t);\n\t},\n\tArrayBufferView(value) {\n\t\tassert(Array.isArray(value));\n\t\tconst [name, buffer, byteOffset, byteLength] = value as unknown[];\n\t\tassert(typeof name === \"string\");\n\t\tassert(buffer instanceof ArrayBuffer);\n\t\tassert(typeof byteOffset === \"number\");\n\t\tassert(typeof byteLength === \"number\");\n\t\tconst ctor = (globalThis as Record<string, unknown>)[\n\t\t\tname\n\t\t] as (typeof ALLOWED_ARRAY_BUFFER_VIEW_CONSTRUCTORS)[number];\n\t\tassert(ALLOWED_ARRAY_BUFFER_VIEW_CONSTRUCTORS.includes(ctor));\n\t\tlet length = byteLength;\n\t\tif (\"BYTES_PER_ELEMENT\" in ctor) length /= ctor.BYTES_PER_ELEMENT;\n\t\treturn new ctor(buffer as ArrayBuffer, byteOffset, length);\n\t},\n\tRegExp(value) {\n\t\tassert(Array.isArray(value));\n\t\tconst [name, encoded, flags] = value;\n\t\tassert(typeof name === \"string\");\n\t\tassert(typeof encoded === \"string\");\n\t\tconst source = Buffer.from(encoded, \"base64\").toString(\"utf-8\");\n\t\treturn new RegExp(source, flags);\n\t},\n\tError(value) {\n\t\tassert(Array.isArray(value));\n\t\tconst [name, message, stack, cause] = value as unknown[];\n\t\tassert(typeof name === \"string\");\n\t\tassert(typeof message === \"string\");\n\t\tassert(stack === undefined || typeof stack === \"string\");\n\t\tconst ctor = (globalThis as Record<string, unknown>)[\n\t\t\tname\n\t\t] as (typeof ALLOWED_ERROR_CONSTRUCTORS)[number];\n\t\tassert(ALLOWED_ERROR_CONSTRUCTORS.includes(ctor));\n\t\tconst error = new ctor(message, { cause });\n\t\terror.stack = stack;\n\t\treturn error;\n\t},\n};\n\n// This file gets imported both by Node and workers. These platforms have\n// different ways of accessing/performing operations required by this code.\n// This interface should be implemented by both platforms to provide this\n// functionality. `RS` is the type of `ReadableStream`.\nexport interface PlatformImpl<RS> {\n\tBlob: typeof WorkerBlob;\n\tFile: typeof WorkerFile;\n\tHeaders: typeof WorkerHeaders;\n\tRequest: typeof WorkerRequest;\n\tResponse: typeof WorkerResponse;\n\n\tisReadableStream(value: unknown): value is RS;\n\tbufferReadableStream(stream: RS): Promise<ArrayBuffer>;\n\tunbufferReadableStream(buffer: ArrayBuffer): RS;\n}\n\nexport function createHTTPReducers(\n\timpl: PlatformImpl<unknown>\n): ReducersRevivers {\n\treturn {\n\t\tHeaders(val) {\n\t\t\tif (val instanceof impl.Headers) return [...val.entries()];\n\t\t},\n\t\tRequest(val) {\n\t\t\tif (val instanceof impl.Request) {\n\t\t\t\treturn [val.method, val.url, val.headers, val.cf, val.body];\n\t\t\t}\n\t\t},\n\t\tResponse(val) {\n\t\t\tif (val instanceof impl.Response) {\n\t\t\t\treturn [val.status, val.statusText, val.headers, val.cf, val.body];\n\t\t\t}\n\t\t},\n\t};\n}\nexport function createHTTPRevivers<RS>(\n\timpl: PlatformImpl<RS>\n): ReducersRevivers {\n\treturn {\n\t\tHeaders(value) {\n\t\t\tassert(typeof value === \"object\" && value !== null);\n\t\t\treturn new impl.Headers(value as string[][]);\n\t\t},\n\t\tRequest(value) {\n\t\t\tassert(Array.isArray(value));\n\t\t\tconst [method, url, headers, cf, body] = value as unknown[];\n\t\t\tassert(typeof method === \"string\");\n\t\t\tassert(typeof url === \"string\");\n\t\t\tassert(headers instanceof impl.Headers);\n\t\t\tassert(body === null || impl.isReadableStream(body));\n\t\t\treturn new impl.Request(url, {\n\t\t\t\tmethod,\n\t\t\t\theaders,\n\t\t\t\tcf,\n\t\t\t\t// @ts-expect-error `duplex` is not required by `workerd` yet\n\t\t\t\tduplex: body === null ? undefined : \"half\",\n\t\t\t\tbody: body as WorkerReadableStream | null,\n\t\t\t});\n\t\t},\n\t\tResponse(value) {\n\t\t\tassert(Array.isArray(value));\n\t\t\tconst [status, statusText, headers, cf, body] = value as unknown[];\n\t\t\tassert(typeof status === \"number\");\n\t\t\tassert(typeof statusText === \"string\");\n\t\t\tassert(headers instanceof impl.Headers);\n\t\t\tassert(body === null || impl.isReadableStream(body));\n\t\t\treturn new impl.Response(body as WorkerReadableStream | null, {\n\t\t\t\tstatus,\n\t\t\t\tstatusText,\n\t\t\t\theaders,\n\t\t\t\tcf,\n\t\t\t});\n\t\t},\n\t};\n}\n\nexport interface StringifiedWithStream<RS> {\n\tvalue: string;\n\tunbufferedStream?: RS;\n}\n// `devalue` `stringify()` that allows a single stream to be \"unbuffered\", and\n// sent separately. Other streams will be buffered.\nexport function stringifyWithStreams<RS>(\n\timpl: PlatformImpl<RS>,\n\tvalue: unknown,\n\treducers: ReducersRevivers,\n\tallowUnbufferedStream: boolean\n): StringifiedWithStream<RS> | Promise<StringifiedWithStream<RS>> {\n\tlet unbufferedStream: RS | undefined;\n\t// The tricky thing here is that `devalue` `stringify()` is synchronous, and\n\t// doesn't support asynchronous reducers. Assuming we visit values in the same\n\t// order each time, we can use an array to store buffer promises.\n\tconst bufferPromises: Promise<ArrayBuffer>[] = [];\n\tconst streamReducers: ReducersRevivers = {\n\t\tReadableStream(value) {\n\t\t\tif (impl.isReadableStream(value)) {\n\t\t\t\tif (allowUnbufferedStream && unbufferedStream === undefined) {\n\t\t\t\t\tunbufferedStream = value;\n\t\t\t\t} else {\n\t\t\t\t\tbufferPromises.push(impl.bufferReadableStream(value));\n\t\t\t\t}\n\t\t\t\t// Using `true` to signify unbuffered stream, buffered streams will\n\t\t\t\t// have this replaced with an `ArrayBuffer` on the 2nd `stringify()`\n\t\t\t\t// If we don't have any buffer promises, this will encode to the correct\n\t\t\t\t// value, so we don't need to re-`stringify()`.\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tBlob(value) {\n\t\t\tif (value instanceof impl.Blob) {\n\t\t\t\t// `Blob`s are always buffered. We can't just serialise with a stream\n\t\t\t\t// here (and recursively use the reducer above), because `workerd`\n\t\t\t\t// doesn't allow us to synchronously reconstruct a `Blob` from a stream:\n\t\t\t\t// its `new Blob([...])` doesn't support `ReadableStream` blob bits.\n\t\t\t\tbufferPromises.push(value.arrayBuffer());\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\n\t\t...reducers,\n\t};\n\tif (typeof value === \"function\") {\n\t\tvalue = new __MiniflareFunctionWrapper(\n\t\t\tvalue as ConstructorParameters<typeof __MiniflareFunctionWrapper>[0]\n\t\t);\n\t}\n\tconst stringifiedValue = stringify(value, streamReducers);\n\t// If we didn't need to buffer anything, we've just encoded correctly. Note\n\t// `unbufferedStream` may be undefined if the `value` didn't contain streams.\n\t// Note also in this case we're returning synchronously, so we can use this\n\t// for synchronous methods too.\n\tif (bufferPromises.length === 0) {\n\t\treturn { value: stringifiedValue, unbufferedStream };\n\t}\n\n\t// Otherwise, wait for buffering to complete, and `stringify()` again with\n\t// a reducer that expects buffers.\n\treturn Promise.all(bufferPromises).then((streamBuffers) => {\n\t\t// Again, we're assuming values are visited in the same order, so `shift()`\n\t\t// will give us the next correct buffer\n\t\tstreamReducers.ReadableStream = function (value) {\n\t\t\tif (impl.isReadableStream(value)) {\n\t\t\t\tif (value === unbufferedStream) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn streamBuffers.shift();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tstreamReducers.Blob = function (value) {\n\t\t\tif (value instanceof impl.Blob) {\n\t\t\t\tconst array: unknown[] = [streamBuffers.shift(), value.type];\n\t\t\t\tif (value instanceof impl.File) {\n\t\t\t\t\tarray.push(value.name, value.lastModified);\n\t\t\t\t}\n\t\t\t\treturn array;\n\t\t\t}\n\t\t};\n\t\tconst stringifiedValue = stringify(value, streamReducers);\n\t\treturn { value: stringifiedValue, unbufferedStream };\n\t});\n}\n\n// functions can't be stringified, so we wrap them into a class that we then use to pseudo-serialize them\n// we also add a proxy and make sure that properties set on the function object are accessible\n// (this is in particular necessary for RpcStubs)\nexport class __MiniflareFunctionWrapper {\n\tconstructor(\n\t\tfnWithProps: ((...args: unknown[]) => unknown) & {\n\t\t\t[key: string | symbol]: unknown;\n\t\t}\n\t) {\n\t\treturn new Proxy(this, {\n\t\t\tget: (_, key) => {\n\t\t\t\tif (key === \"__miniflareWrappedFunction\") return fnWithProps;\n\t\t\t\treturn fnWithProps[key];\n\t\t\t},\n\t\t});\n\t}\n}\n\nexport function parseWithReadableStreams<RS>(\n\timpl: PlatformImpl<RS>,\n\tstringified: StringifiedWithStream<RS>,\n\trevivers: ReducersRevivers\n): unknown {\n\tconst streamRevivers: ReducersRevivers = {\n\t\tReadableStream(value) {\n\t\t\tif (value === true) {\n\t\t\t\tassert(stringified.unbufferedStream !== undefined);\n\t\t\t\treturn stringified.unbufferedStream;\n\t\t\t}\n\t\t\tassert(value instanceof ArrayBuffer);\n\t\t\treturn impl.unbufferReadableStream(value);\n\t\t},\n\t\tBlob(value) {\n\t\t\tassert(Array.isArray(value));\n\t\t\tif (value.length === 2) {\n\t\t\t\t// Blob\n\t\t\t\tconst [buffer, type] = value as unknown[];\n\t\t\t\tassert(buffer instanceof ArrayBuffer);\n\t\t\t\tassert(typeof type === \"string\");\n\t\t\t\tconst opts: WorkerBlobOptions = {};\n\t\t\t\tif (type !== \"\") opts.type = type;\n\t\t\t\treturn new impl.Blob([buffer], opts);\n\t\t\t} else {\n\t\t\t\t// File\n\t\t\t\tassert(value.length === 4);\n\t\t\t\tconst [buffer, type, name, lastModified] = value as unknown[];\n\t\t\t\tassert(buffer instanceof ArrayBuffer);\n\t\t\t\tassert(typeof type === \"string\");\n\t\t\t\tassert(typeof name === \"string\");\n\t\t\t\tassert(typeof lastModified === \"number\");\n\t\t\t\tconst opts: WorkerFileOptions = { lastModified };\n\t\t\t\tif (type !== \"\") opts.type = type;\n\t\t\t\treturn new impl.File([buffer], name, opts);\n\t\t\t}\n\t\t},\n\t\t...revivers,\n\t};\n\n\treturn parse(stringified.value, streamRevivers);\n}\n","import assert from \"node:assert\";\nimport * as vm from \"node:vm\";\nimport defines from \"__VITEST_POOL_WORKERS_DEFINES\";\nimport {\n\tcreateWorkerEntrypointWrapper,\n\tmaybeHandleRunRequest,\n\tregisterHandlerAndGlobalWaitUntil,\n\trunInRunnerObject,\n} from \"cloudflare:test-internal\";\nimport { DurableObject } from \"cloudflare:workers\";\nimport * as devalue from \"devalue\";\n// Using relative path here to ensure `esbuild` bundles it\nimport {\n\tstructuredSerializableReducers,\n\tstructuredSerializableRevivers,\n} from \"../../../miniflare/src/workers/core/devalue\";\n\nfunction structuredSerializableStringify(value: unknown): string {\n\treturn devalue.stringify(value, structuredSerializableReducers);\n}\nfunction structuredSerializableParse(value: string): unknown {\n\treturn devalue.parse(value, structuredSerializableRevivers);\n}\n\n// Mock Service Worker needs this — stub with no-op methods since workerd\n// doesn't provide BroadcastChannel\nglobalThis.BroadcastChannel = class {\n\tconstructor(public name: string) {}\n\tpostMessage(_message: unknown) {}\n\tclose() {}\n\taddEventListener(_type: string, _listener: unknown) {}\n\tremoveEventListener(_type: string, _listener: unknown) {}\n\tonmessage: ((event: unknown) => void) | null = null;\n\tonmessageerror: ((event: unknown) => void) | null = null;\n} as unknown as typeof BroadcastChannel;\n\nlet cwd: string | undefined;\nprocess.cwd = () => {\n\tassert(cwd !== undefined, \"Expected cwd to be set\");\n\treturn cwd;\n};\n\nglobalThis.__console = console;\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nfunction getCallerFileName(of: Function): string | null {\n\tconst originalStackTraceLimit = Error.stackTraceLimit;\n\tconst originalPrepareStackTrace = Error.prepareStackTrace;\n\ttry {\n\t\tlet fileName: string | null = null;\n\t\tError.stackTraceLimit = 1;\n\t\tError.prepareStackTrace = (_error, callSites) => {\n\t\t\tfileName = callSites[0]?.getFileName();\n\t\t\treturn \"\";\n\t\t};\n\t\tconst error: { stack?: string } = {};\n\t\tError.captureStackTrace(error, of);\n\t\tvoid error.stack; // Access to generate stack trace\n\t\treturn fileName;\n\t} finally {\n\t\tError.stackTraceLimit = originalStackTraceLimit;\n\t\tError.prepareStackTrace = originalPrepareStackTrace;\n\t}\n}\n\nconst originalSetTimeout = globalThis.setTimeout;\nconst originalClearTimeout = globalThis.clearTimeout;\n\nconst timeoutPromiseResolves = new Map<unknown, () => void>();\nconst monkeypatchedSetTimeout = (...args: Parameters<typeof setTimeout>) => {\n\tconst [callback, delay, ...restArgs] = args;\n\tconst callbackName = args[0]?.name ?? \"\";\n\tconst callerFileName = getCallerFileName(monkeypatchedSetTimeout);\n\tconst fromVitest =\n\t\t/\\/node_modules\\/(\\.pnpm\\/|\\.store\\/)?vitest/.test(callerFileName ?? \"\") ||\n\t\t/\\/packages\\/vitest\\/dist/.test(callerFileName ?? \"\");\n\n\t// If this `setTimeout()` isn't from Vitest, or has a non-zero delay,\n\t// just call the original function\n\tif (!fromVitest || delay) {\n\t\treturn originalSetTimeout.apply(globalThis, args);\n\t}\n\n\t// HACK: `vitest/dist/vendor/vi.js` attempts to call `setTimeout` when setting\n\t// up global mocks. Unfortunately, the runner Durable Object's IO context\n\t// isn't preserved through `import()` so this fails. To get around this, look\n\t// for the `setTimeout()` call and return a recognisable timeout value that's\n\t// still `number` typed\n\t// (https://github.com/sinonjs/fake-timers/blob/c85ef142837afdbc732b0f73fdba30c3bd037965/src/fake-timers-src.js#L154)\n\tif (callbackName === \"NOOP\") {\n\t\treturn -0.5;\n\t}\n\n\t// Make sure `setTimeout()`s from Vitest without delays are `waitUntil()`ed\n\t// if we're running within an `export default` handler. This ensures all\n\t// `console.log()`s are displayed, as Vitest uses `setTimeout()` for grouping.\n\tlet promiseResolve: (() => void) | undefined;\n\tconst promise = new Promise<void>((resolve) => {\n\t\tpromiseResolve = resolve;\n\t});\n\tassert(promiseResolve !== undefined);\n\tregisterHandlerAndGlobalWaitUntil(promise);\n\tconst id = originalSetTimeout.call(globalThis, () => {\n\t\tpromiseResolve?.();\n\t\tcallback?.(...restArgs);\n\t});\n\ttimeoutPromiseResolves.set(id, promiseResolve);\n\treturn id;\n};\n// @ts-expect-error __promisify__ types only required for Node.js\nglobalThis.setTimeout = monkeypatchedSetTimeout;\n// @ts-expect-error overload types not compatible\nglobalThis.clearTimeout = (...args: Parameters<typeof clearTimeout>) => {\n\tconst id = args[0];\n\tif (id === -0.5) {\n\t\treturn;\n\t}\n\n\t// Make sure we resolve any timeout promises we're clearing\n\t// (e.g. `console.log()`ing twice, the 2nd will clear the timeout set by the\n\t// first, but we'll still be `waitUntil()`ing on the original `Promise`)\n\tconst maybePromiseResolve = timeoutPromiseResolves.get(id);\n\ttimeoutPromiseResolves.delete(id);\n\tmaybePromiseResolve?.();\n\n\treturn originalClearTimeout.apply(globalThis, args);\n};\n\nfunction isDifferentIOContextError(e: unknown) {\n\treturn (\n\t\te instanceof Error &&\n\t\te.message.startsWith(\"Cannot perform I/O on behalf of a different\") // \"request\" or \"Durable Object\"\n\t);\n}\n\nlet patchedFunction = false;\nfunction ensurePatchedFunction(unsafeEval: UnsafeEval) {\n\tif (patchedFunction) {\n\t\treturn;\n\t}\n\tpatchedFunction = true;\n\t// `new Function()` is used by `@vitest/snapshot`\n\tglobalThis.Function = new Proxy(globalThis.Function, {\n\t\tconstruct(_target, args, _newTarget) {\n\t\t\t// `new Function()` and `UnsafeEval#newFunction()` have reversed args\n\t\t\tconst script = args.pop();\n\t\t\treturn unsafeEval.newFunction(script, \"anonymous\", ...args);\n\t\t},\n\t});\n}\n\nfunction applyDefines() {\n\t// Based off `/@vite/env` implementation:\n\t// https://github.com/vitejs/vite/blob/v5.1.4/packages/vite/src/client/env.ts\n\tfor (const [key, value] of Object.entries(defines)) {\n\t\tconst segments = key.split(\".\");\n\t\tlet target = globalThis as Record<string, unknown>;\n\t\tfor (let i = 0; i < segments.length; i++) {\n\t\t\tconst segment = segments[i];\n\t\t\tif (i === segments.length - 1) {\n\t\t\t\ttarget[segment] = value;\n\t\t\t} else {\n\t\t\t\ttarget = (target[segment] ??= {}) as Record<string, unknown>;\n\t\t\t}\n\t\t}\n\t}\n}\n\n// `__VITEST_POOL_WORKERS_RUNNER_DURABLE_OBJECT__` is a singleton\nexport class __VITEST_POOL_WORKERS_RUNNER_DURABLE_OBJECT__ extends DurableObject {\n\tconstructor(_state: DurableObjectState, doEnv: Cloudflare.Env) {\n\t\tsuper(_state, doEnv);\n\t\tvm._setUnsafeEval(doEnv.__VITEST_POOL_WORKERS_UNSAFE_EVAL);\n\t\tensurePatchedFunction(doEnv.__VITEST_POOL_WORKERS_UNSAFE_EVAL);\n\t\tapplyDefines();\n\t}\n\n\tasync handleVitestRunRequest(request: Request): Promise<Response> {\n\t\tassert.strictEqual(request.headers.get(\"Upgrade\"), \"websocket\");\n\t\tconst { 0: poolSocket, 1: poolResponseSocket } = new WebSocketPair();\n\n\t\tconst workerDataHeader = request.headers.get(\"MF-Vitest-Worker-Data\");\n\t\tassert(workerDataHeader);\n\n\t\tconst wd = structuredSerializableParse(workerDataHeader);\n\t\tassert(\n\t\t\twd && typeof wd === \"object\" && \"cwd\" in wd && typeof wd.cwd === \"string\"\n\t\t);\n\n\t\tcwd = wd.cwd;\n\n\t\tconst { init, runBaseTests, setupEnvironment } = await import(\n\t\t\t\"vitest/worker\"\n\t\t);\n\n\t\tpoolSocket.accept();\n\n\t\tinit({\n\t\t\tpost: (response) => {\n\t\t\t\ttry {\n\t\t\t\t\tpoolSocket.send(structuredSerializableStringify(response));\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// If the user tried to perform a dynamic `import()` or `console.log()`\n\t\t\t\t\t// from inside a `export default { fetch() { ... } }` handler using `SELF`\n\t\t\t\t\t// or from inside their own Durable Object, Vitest will try to send an\n\t\t\t\t\t// RPC message from a non-`RunnerObject` I/O context. There's nothing we\n\t\t\t\t\t// can really do to prevent this: we want to run these things in different\n\t\t\t\t\t// I/O contexts with the behaviour this causes. We'd still like to send\n\t\t\t\t\t// the RPC message though, so if we detect this, we try resend the message\n\t\t\t\t\t// from the runner object.\n\t\t\t\t\tif (isDifferentIOContextError(error)) {\n\t\t\t\t\t\tconst promise = runInRunnerObject(() => {\n\t\t\t\t\t\t\tpoolSocket.send(structuredSerializableStringify(response));\n\t\t\t\t\t\t}).catch((e) => {\n\t\t\t\t\t\t\t__console.error(\n\t\t\t\t\t\t\t\t\"Error sending to pool inside runner:\",\n\t\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tregisterHandlerAndGlobalWaitUntil(promise);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t__console.error(\"Error sending to pool:\", error, response);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ton: (callback) => {\n\t\t\t\tpoolSocket.addEventListener(\"message\", (m) => {\n\t\t\t\t\tcallback(structuredSerializableParse(m.data));\n\t\t\t\t});\n\t\t\t},\n\t\t\trunTests: (state, traces) => runBaseTests(\"run\", state, traces),\n\t\t\tcollectTests: (state, traces) => runBaseTests(\"collect\", state, traces),\n\t\t\tsetup: setupEnvironment,\n\t\t});\n\n\t\treturn new Response(null, { status: 101, webSocket: poolResponseSocket });\n\t}\n\n\tasync fetch(request: Request): Promise<Response> {\n\t\tconst response = await maybeHandleRunRequest(request, this);\n\t\tif (response !== undefined) {\n\t\t\treturn response;\n\t\t}\n\n\t\treturn this.handleVitestRunRequest(request);\n\t}\n}\n\nexport default createWorkerEntrypointWrapper(\"default\");\n\n// Re-export user export wrappers\nexport * from \"__VITEST_POOL_WORKERS_USER_OBJECT\";\n"],"x_google_ignoreList":[0,1,2,3,4],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import assert from "node:assert";
2
+ import { env } from "cloudflare:workers";
3
+ import { dirname } from "node:path";
4
+ import { VitestSnapshotEnvironment } from "vitest/runtime";
5
+
6
+ //#region src/worker/lib/cloudflare/snapshot.ts
7
+ var WorkersSnapshotEnvironment = class extends VitestSnapshotEnvironment {
8
+ #fetch(method, path, body) {
9
+ const url = `http://placeholder/snapshot?path=${encodeURIComponent(path)}`;
10
+ return env.__VITEST_POOL_WORKERS_LOOPBACK_SERVICE.fetch(url, {
11
+ method,
12
+ body
13
+ });
14
+ }
15
+ async prepareDirectory(dirPath) {
16
+ const res = await this.#fetch("POST", dirPath);
17
+ assert.strictEqual(res.status, 204);
18
+ }
19
+ async saveSnapshotFile(filePath, snapshot) {
20
+ await this.prepareDirectory(dirname(filePath));
21
+ const res = await this.#fetch("PUT", filePath, snapshot);
22
+ assert.strictEqual(res.status, 204);
23
+ }
24
+ async readSnapshotFile(filePath) {
25
+ const res = await this.#fetch("GET", filePath);
26
+ if (res.status === 404) return null;
27
+ assert.strictEqual(res.status, 200);
28
+ return await res.text();
29
+ }
30
+ async removeSnapshotFile(filePath) {
31
+ const res = await this.#fetch("DELETE", filePath);
32
+ assert.strictEqual(res.status, 204);
33
+ }
34
+ };
35
+ var snapshot_default = new WorkersSnapshotEnvironment();
36
+
37
+ //#endregion
38
+ export { snapshot_default as default };
39
+ //# sourceMappingURL=snapshot.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.mjs","names":["#fetch"],"sources":["../../../../src/worker/lib/cloudflare/snapshot.ts"],"sourcesContent":["import assert from \"node:assert\";\nimport { dirname } from \"node:path\";\nimport { env } from \"cloudflare:workers\";\nimport { VitestSnapshotEnvironment } from \"vitest/runtime\";\n\n// Define a custom `SnapshotEnvironment` that uses a service binding for file\n// system operations, rather than `node:fs`\nclass WorkersSnapshotEnvironment extends VitestSnapshotEnvironment {\n\t#fetch(method: string, path: string, body?: BodyInit): Promise<Response> {\n\t\tconst encodedPath = encodeURIComponent(path);\n\t\tconst url = `http://placeholder/snapshot?path=${encodedPath}`;\n\t\treturn env.__VITEST_POOL_WORKERS_LOOPBACK_SERVICE.fetch(url, {\n\t\t\tmethod,\n\t\t\tbody,\n\t\t});\n\t}\n\n\tasync prepareDirectory(dirPath: string): Promise<void> {\n\t\tconst res = await this.#fetch(\"POST\", dirPath);\n\t\tassert.strictEqual(res.status, 204);\n\t}\n\n\tasync saveSnapshotFile(filePath: string, snapshot: string): Promise<void> {\n\t\tawait this.prepareDirectory(dirname(filePath));\n\t\tconst res = await this.#fetch(\"PUT\", filePath, snapshot);\n\t\tassert.strictEqual(res.status, 204);\n\t}\n\n\tasync readSnapshotFile(filePath: string): Promise<string | null> {\n\t\tconst res = await this.#fetch(\"GET\", filePath);\n\t\tif (res.status === 404) {\n\t\t\treturn null;\n\t\t}\n\t\tassert.strictEqual(res.status, 200);\n\t\treturn await res.text();\n\t}\n\n\tasync removeSnapshotFile(filePath: string): Promise<void> {\n\t\tconst res = await this.#fetch(\"DELETE\", filePath);\n\t\tassert.strictEqual(res.status, 204);\n\t}\n}\nexport default new WorkersSnapshotEnvironment();\n"],"mappings":";;;;;;AAOA,IAAM,6BAAN,cAAyC,0BAA0B;CAClE,OAAO,QAAgB,MAAc,MAAoC;EAExE,MAAM,MAAM,oCADQ,mBAAmB,KAAK;AAE5C,SAAO,IAAI,uCAAuC,MAAM,KAAK;GAC5D;GACA;GACA,CAAC;;CAGH,MAAM,iBAAiB,SAAgC;EACtD,MAAM,MAAM,MAAM,MAAKA,MAAO,QAAQ,QAAQ;AAC9C,SAAO,YAAY,IAAI,QAAQ,IAAI;;CAGpC,MAAM,iBAAiB,UAAkB,UAAiC;AACzE,QAAM,KAAK,iBAAiB,QAAQ,SAAS,CAAC;EAC9C,MAAM,MAAM,MAAM,MAAKA,MAAO,OAAO,UAAU,SAAS;AACxD,SAAO,YAAY,IAAI,QAAQ,IAAI;;CAGpC,MAAM,iBAAiB,UAA0C;EAChE,MAAM,MAAM,MAAM,MAAKA,MAAO,OAAO,SAAS;AAC9C,MAAI,IAAI,WAAW,IAClB,QAAO;AAER,SAAO,YAAY,IAAI,QAAQ,IAAI;AACnC,SAAO,MAAM,IAAI,MAAM;;CAGxB,MAAM,mBAAmB,UAAiC;EACzD,MAAM,MAAM,MAAM,MAAKA,MAAO,UAAU,SAAS;AACjD,SAAO,YAAY,IAAI,QAAQ,IAAI;;;AAGrC,uBAAe,IAAI,4BAA4B"}