"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __commonJS = (cb, mod2) => function __require() { return mod2 || (0, cb[__getOwnPropNames(cb)[0]])((mod2 = { exports: {} }).exports, mod2), mod2.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__getProtoOf(mod2)) : {}, __copyProps( isNodeMode || !mod2 || !mod2.__esModule ? __defProp(target, "default", { value: mod2, enumerable: true }) : target, mod2 )); var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2); var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; // ../../node_modules/.pnpm/lz-string@1.4.4/node_modules/lz-string/libs/lz-string.js var require_lz_string = __commonJS({ "../../node_modules/.pnpm/lz-string@1.4.4/node_modules/lz-string/libs/lz-string.js"(exports, module2) { var LZString = function() { var f2 = String.fromCharCode; var keyStrBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var keyStrUriSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$"; var baseReverseDic = {}; function getBaseValue(alphabet, character) { if (!baseReverseDic[alphabet]) { baseReverseDic[alphabet] = {}; for (var i = 0; i < alphabet.length; i++) { baseReverseDic[alphabet][alphabet.charAt(i)] = i; } } return baseReverseDic[alphabet][character]; } __name(getBaseValue, "getBaseValue"); var LZString2 = { compressToBase64: function(input) { if (input == null) return ""; var res = LZString2._compress(input, 6, function(a) { return keyStrBase64.charAt(a); }); switch (res.length % 4) { default: case 0: return res; case 1: return res + "==="; case 2: return res + "=="; case 3: return res + "="; } }, decompressFromBase64: function(input) { if (input == null) return ""; if (input == "") return null; return LZString2._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); }); }, compressToUTF16: function(input) { if (input == null) return ""; return LZString2._compress(input, 15, function(a) { return f2(a + 32); }) + " "; }, decompressFromUTF16: function(compressed) { if (compressed == null) return ""; if (compressed == "") return null; return LZString2._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; }); }, compressToUint8Array: function(uncompressed) { var compressed = LZString2.compress(uncompressed); var buf = new Uint8Array(compressed.length * 2); for (var i = 0, TotalLen = compressed.length; i < TotalLen; i++) { var current_value = compressed.charCodeAt(i); buf[i * 2] = current_value >>> 8; buf[i * 2 + 1] = current_value % 256; } return buf; }, decompressFromUint8Array: function(compressed) { if (compressed === null || compressed === void 0) { return LZString2.decompress(compressed); } else { var buf = new Array(compressed.length / 2); for (var i = 0, TotalLen = buf.length; i < TotalLen; i++) { buf[i] = compressed[i * 2] * 256 + compressed[i * 2 + 1]; } var result = []; buf.forEach(function(c) { result.push(f2(c)); }); return LZString2.decompress(result.join("")); } }, compressToEncodedURIComponent: function(input) { if (input == null) return ""; return LZString2._compress(input, 6, function(a) { return keyStrUriSafe.charAt(a); }); }, decompressFromEncodedURIComponent: function(input) { if (input == null) return ""; if (input == "") return null; input = input.replace(/ /g, "+"); return LZString2._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); }); }, compress: function(uncompressed) { return LZString2._compress(uncompressed, 16, function(a) { return f2(a); }); }, _compress: function(uncompressed, bitsPerChar, getCharFromInt) { if (uncompressed == null) return ""; var i, value, context_dictionary = {}, context_dictionaryToCreate = {}, context_c = "", context_wc = "", context_w = "", context_enlargeIn = 2, context_dictSize = 3, context_numBits = 2, context_data = [], context_data_val = 0, context_data_position = 0, ii; for (ii = 0; ii < uncompressed.length; ii += 1) { context_c = uncompressed.charAt(ii); if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) { context_dictionary[context_c] = context_dictSize++; context_dictionaryToCreate[context_c] = true; } context_wc = context_w + context_c; if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) { context_w = context_wc; } else { if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) { if (context_w.charCodeAt(0) < 256) { for (i = 0; i < context_numBits; i++) { context_data_val = context_data_val << 1; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } } value = context_w.charCodeAt(0); for (i = 0; i < 8; i++) { context_data_val = context_data_val << 1 | value & 1; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } value = value >> 1; } } else { value = 1; for (i = 0; i < context_numBits; i++) { context_data_val = context_data_val << 1 | value; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } value = 0; } value = context_w.charCodeAt(0); for (i = 0; i < 16; i++) { context_data_val = context_data_val << 1 | value & 1; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } value = value >> 1; } } context_enlargeIn--; if (context_enlargeIn == 0) { context_enlargeIn = Math.pow(2, context_numBits); context_numBits++; } delete context_dictionaryToCreate[context_w]; } else { value = context_dictionary[context_w]; for (i = 0; i < context_numBits; i++) { context_data_val = context_data_val << 1 | value & 1; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } value = value >> 1; } } context_enlargeIn--; if (context_enlargeIn == 0) { context_enlargeIn = Math.pow(2, context_numBits); context_numBits++; } context_dictionary[context_wc] = context_dictSize++; context_w = String(context_c); } } if (context_w !== "") { if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) { if (context_w.charCodeAt(0) < 256) { for (i = 0; i < context_numBits; i++) { context_data_val = context_data_val << 1; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } } value = context_w.charCodeAt(0); for (i = 0; i < 8; i++) { context_data_val = context_data_val << 1 | value & 1; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } value = value >> 1; } } else { value = 1; for (i = 0; i < context_numBits; i++) { context_data_val = context_data_val << 1 | value; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } value = 0; } value = context_w.charCodeAt(0); for (i = 0; i < 16; i++) { context_data_val = context_data_val << 1 | value & 1; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } value = value >> 1; } } context_enlargeIn--; if (context_enlargeIn == 0) { context_enlargeIn = Math.pow(2, context_numBits); context_numBits++; } delete context_dictionaryToCreate[context_w]; } else { value = context_dictionary[context_w]; for (i = 0; i < context_numBits; i++) { context_data_val = context_data_val << 1 | value & 1; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } value = value >> 1; } } context_enlargeIn--; if (context_enlargeIn == 0) { context_enlargeIn = Math.pow(2, context_numBits); context_numBits++; } } value = 2; for (i = 0; i < context_numBits; i++) { context_data_val = context_data_val << 1 | value & 1; if (context_data_position == bitsPerChar - 1) { context_data_position = 0; context_data.push(getCharFromInt(context_data_val)); context_data_val = 0; } else { context_data_position++; } value = value >> 1; } while (true) { context_data_val = context_data_val << 1; if (context_data_position == bitsPerChar - 1) { context_data.push(getCharFromInt(context_data_val)); break; } else context_data_position++; } return context_data.join(""); }, decompress: function(compressed) { if (compressed == null) return ""; if (compressed == "") return null; return LZString2._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); }); }, _decompress: function(length, resetValue, getNextValue) { var dictionary = [], next, enlargeIn = 4, dictSize = 4, numBits = 3, entry = "", result = [], i, w2, bits, resb, maxpower, power, c, data = { val: getNextValue(0), position: resetValue, index: 1 }; for (i = 0; i < 3; i += 1) { dictionary[i] = i; } bits = 0; maxpower = Math.pow(2, 2); power = 1; while (power != maxpower) { resb = data.val & data.position; data.position >>= 1; if (data.position == 0) { data.position = resetValue; data.val = getNextValue(data.index++); } bits |= (resb > 0 ? 1 : 0) * power; power <<= 1; } switch (next = bits) { case 0: bits = 0; maxpower = Math.pow(2, 8); power = 1; while (power != maxpower) { resb = data.val & data.position; data.position >>= 1; if (data.position == 0) { data.position = resetValue; data.val = getNextValue(data.index++); } bits |= (resb > 0 ? 1 : 0) * power; power <<= 1; } c = f2(bits); break; case 1: bits = 0; maxpower = Math.pow(2, 16); power = 1; while (power != maxpower) { resb = data.val & data.position; data.position >>= 1; if (data.position == 0) { data.position = resetValue; data.val = getNextValue(data.index++); } bits |= (resb > 0 ? 1 : 0) * power; power <<= 1; } c = f2(bits); break; case 2: return ""; } dictionary[3] = c; w2 = c; result.push(c); while (true) { if (data.index > length) { return ""; } bits = 0; maxpower = Math.pow(2, numBits); power = 1; while (power != maxpower) { resb = data.val & data.position; data.position >>= 1; if (data.position == 0) { data.position = resetValue; data.val = getNextValue(data.index++); } bits |= (resb > 0 ? 1 : 0) * power; power <<= 1; } switch (c = bits) { case 0: bits = 0; maxpower = Math.pow(2, 8); power = 1; while (power != maxpower) { resb = data.val & data.position; data.position >>= 1; if (data.position == 0) { data.position = resetValue; data.val = getNextValue(data.index++); } bits |= (resb > 0 ? 1 : 0) * power; power <<= 1; } dictionary[dictSize++] = f2(bits); c = dictSize - 1; enlargeIn--; break; case 1: bits = 0; maxpower = Math.pow(2, 16); power = 1; while (power != maxpower) { resb = data.val & data.position; data.position >>= 1; if (data.position == 0) { data.position = resetValue; data.val = getNextValue(data.index++); } bits |= (resb > 0 ? 1 : 0) * power; power <<= 1; } dictionary[dictSize++] = f2(bits); c = dictSize - 1; enlargeIn--; break; case 2: return result.join(""); } if (enlargeIn == 0) { enlargeIn = Math.pow(2, numBits); numBits++; } if (dictionary[c]) { entry = dictionary[c]; } else { if (c === dictSize) { entry = w2 + w2.charAt(0); } else { return null; } } result.push(entry); dictionary[dictSize++] = w2 + entry.charAt(0); enlargeIn--; w2 = entry; if (enlargeIn == 0) { enlargeIn = Math.pow(2, numBits); numBits++; } } } }; return LZString2; }(); if (typeof define === "function" && false) { define(function() { return LZString; }); } else if (typeof module2 !== "undefined" && module2 != null) { module2.exports = LZString; } } }); // ../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js var require_color_name = __commonJS({ "../../node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js"(exports, module2) { "use strict"; module2.exports = { "aliceblue": [240, 248, 255], "antiquewhite": [250, 235, 215], "aqua": [0, 255, 255], "aquamarine": [127, 255, 212], "azure": [240, 255, 255], "beige": [245, 245, 220], "bisque": [255, 228, 196], "black": [0, 0, 0], "blanchedalmond": [255, 235, 205], "blue": [0, 0, 255], "blueviolet": [138, 43, 226], "brown": [165, 42, 42], "burlywood": [222, 184, 135], "cadetblue": [95, 158, 160], "chartreuse": [127, 255, 0], "chocolate": [210, 105, 30], "coral": [255, 127, 80], "cornflowerblue": [100, 149, 237], "cornsilk": [255, 248, 220], "crimson": [220, 20, 60], "cyan": [0, 255, 255], "darkblue": [0, 0, 139], "darkcyan": [0, 139, 139], "darkgoldenrod": [184, 134, 11], "darkgray": [169, 169, 169], "darkgreen": [0, 100, 0], "darkgrey": [169, 169, 169], "darkkhaki": [189, 183, 107], "darkmagenta": [139, 0, 139], "darkolivegreen": [85, 107, 47], "darkorange": [255, 140, 0], "darkorchid": [153, 50, 204], "darkred": [139, 0, 0], "darksalmon": [233, 150, 122], "darkseagreen": [143, 188, 143], "darkslateblue": [72, 61, 139], "darkslategray": [47, 79, 79], "darkslategrey": [47, 79, 79], "darkturquoise": [0, 206, 209], "darkviolet": [148, 0, 211], "deeppink": [255, 20, 147], "deepskyblue": [0, 191, 255], "dimgray": [105, 105, 105], "dimgrey": [105, 105, 105], "dodgerblue": [30, 144, 255], "firebrick": [178, 34, 34], "floralwhite": [255, 250, 240], "forestgreen": [34, 139, 34], "fuchsia": [255, 0, 255], "gainsboro": [220, 220, 220], "ghostwhite": [248, 248, 255], "gold": [255, 215, 0], "goldenrod": [218, 165, 32], "gray": [128, 128, 128], "green": [0, 128, 0], "greenyellow": [173, 255, 47], "grey": [128, 128, 128], "honeydew": [240, 255, 240], "hotpink": [255, 105, 180], "indianred": [205, 92, 92], "indigo": [75, 0, 130], "ivory": [255, 255, 240], "khaki": [240, 230, 140], "lavender": [230, 230, 250], "lavenderblush": [255, 240, 245], "lawngreen": [124, 252, 0], "lemonchiffon": [255, 250, 205], "lightblue": [173, 216, 230], "lightcoral": [240, 128, 128], "lightcyan": [224, 255, 255], "lightgoldenrodyellow": [250, 250, 210], "lightgray": [211, 211, 211], "lightgreen": [144, 238, 144], "lightgrey": [211, 211, 211], "lightpink": [255, 182, 193], "lightsalmon": [255, 160, 122], "lightseagreen": [32, 178, 170], "lightskyblue": [135, 206, 250], "lightslategray": [119, 136, 153], "lightslategrey": [119, 136, 153], "lightsteelblue": [176, 196, 222], "lightyellow": [255, 255, 224], "lime": [0, 255, 0], "limegreen": [50, 205, 50], "linen": [250, 240, 230], "magenta": [255, 0, 255], "maroon": [128, 0, 0], "mediumaquamarine": [102, 205, 170], "mediumblue": [0, 0, 205], "mediumorchid": [186, 85, 211], "mediumpurple": [147, 112, 219], "mediumseagreen": [60, 179, 113], "mediumslateblue": [123, 104, 238], "mediumspringgreen": [0, 250, 154], "mediumturquoise": [72, 209, 204], "mediumvioletred": [199, 21, 133], "midnightblue": [25, 25, 112], "mintcream": [245, 255, 250], "mistyrose": [255, 228, 225], "moccasin": [255, 228, 181], "navajowhite": [255, 222, 173], "navy": [0, 0, 128], "oldlace": [253, 245, 230], "olive": [128, 128, 0], "olivedrab": [107, 142, 35], "orange": [255, 165, 0], "orangered": [255, 69, 0], "orchid": [218, 112, 214], "palegoldenrod": [238, 232, 170], "palegreen": [152, 251, 152], "paleturquoise": [175, 238, 238], "palevioletred": [219, 112, 147], "papayawhip": [255, 239, 213], "peachpuff": [255, 218, 185], "peru": [205, 133, 63], "pink": [255, 192, 203], "plum": [221, 160, 221], "powderblue": [176, 224, 230], "purple": [128, 0, 128], "rebeccapurple": [102, 51, 153], "red": [255, 0, 0], "rosybrown": [188, 143, 143], "royalblue": [65, 105, 225], "saddlebrown": [139, 69, 19], "salmon": [250, 128, 114], "sandybrown": [244, 164, 96], "seagreen": [46, 139, 87], "seashell": [255, 245, 238], "sienna": [160, 82, 45], "silver": [192, 192, 192], "skyblue": [135, 206, 235], "slateblue": [106, 90, 205], "slategray": [112, 128, 144], "slategrey": [112, 128, 144], "snow": [255, 250, 250], "springgreen": [0, 255, 127], "steelblue": [70, 130, 180], "tan": [210, 180, 140], "teal": [0, 128, 128], "thistle": [216, 191, 216], "tomato": [255, 99, 71], "turquoise": [64, 224, 208], "violet": [238, 130, 238], "wheat": [245, 222, 179], "white": [255, 255, 255], "whitesmoke": [245, 245, 245], "yellow": [255, 255, 0], "yellowgreen": [154, 205, 50] }; } }); // ../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js var require_conversions = __commonJS({ "../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js"(exports, module2) { var cssKeywords = require_color_name(); var reverseKeywords = {}; for (const key of Object.keys(cssKeywords)) { reverseKeywords[cssKeywords[key]] = key; } var convert = { rgb: { channels: 3, labels: "rgb" }, hsl: { channels: 3, labels: "hsl" }, hsv: { channels: 3, labels: "hsv" }, hwb: { channels: 3, labels: "hwb" }, cmyk: { channels: 4, labels: "cmyk" }, xyz: { channels: 3, labels: "xyz" }, lab: { channels: 3, labels: "lab" }, lch: { channels: 3, labels: "lch" }, hex: { channels: 1, labels: ["hex"] }, keyword: { channels: 1, labels: ["keyword"] }, ansi16: { channels: 1, labels: ["ansi16"] }, ansi256: { channels: 1, labels: ["ansi256"] }, hcg: { channels: 3, labels: ["h", "c", "g"] }, apple: { channels: 3, labels: ["r16", "g16", "b16"] }, gray: { channels: 1, labels: ["gray"] } }; module2.exports = convert; for (const model of Object.keys(convert)) { if (!("channels" in convert[model])) { throw new Error("missing channels property: " + model); } if (!("labels" in convert[model])) { throw new Error("missing channel labels property: " + model); } if (convert[model].labels.length !== convert[model].channels) { throw new Error("channel and label counts mismatch: " + model); } const { channels, labels } = convert[model]; delete convert[model].channels; delete convert[model].labels; Object.defineProperty(convert[model], "channels", { value: channels }); Object.defineProperty(convert[model], "labels", { value: labels }); } convert.rgb.hsl = function(rgb) { const r2 = rgb[0] / 255; const g2 = rgb[1] / 255; const b2 = rgb[2] / 255; const min2 = Math.min(r2, g2, b2); const max2 = Math.max(r2, g2, b2); const delta = max2 - min2; let h; let s; if (max2 === min2) { h = 0; } else if (r2 === max2) { h = (g2 - b2) / delta; } else if (g2 === max2) { h = 2 + (b2 - r2) / delta; } else if (b2 === max2) { h = 4 + (r2 - g2) / delta; } h = Math.min(h * 60, 360); if (h < 0) { h += 360; } const l = (min2 + max2) / 2; if (max2 === min2) { s = 0; } else if (l <= 0.5) { s = delta / (max2 + min2); } else { s = delta / (2 - max2 - min2); } return [h, s * 100, l * 100]; }; convert.rgb.hsv = function(rgb) { let rdif; let gdif; let bdif; let h; let s; const r2 = rgb[0] / 255; const g2 = rgb[1] / 255; const b2 = rgb[2] / 255; const v = Math.max(r2, g2, b2); const diff = v - Math.min(r2, g2, b2); const diffc = /* @__PURE__ */ __name(function(c) { return (v - c) / 6 / diff + 1 / 2; }, "diffc"); if (diff === 0) { h = 0; s = 0; } else { s = diff / v; rdif = diffc(r2); gdif = diffc(g2); bdif = diffc(b2); if (r2 === v) { h = bdif - gdif; } else if (g2 === v) { h = 1 / 3 + rdif - bdif; } else if (b2 === v) { h = 2 / 3 + gdif - rdif; } if (h < 0) { h += 1; } else if (h > 1) { h -= 1; } } return [ h * 360, s * 100, v * 100 ]; }; convert.rgb.hwb = function(rgb) { const r2 = rgb[0]; const g2 = rgb[1]; let b2 = rgb[2]; const h = convert.rgb.hsl(rgb)[0]; const w2 = 1 / 255 * Math.min(r2, Math.min(g2, b2)); b2 = 1 - 1 / 255 * Math.max(r2, Math.max(g2, b2)); return [h, w2 * 100, b2 * 100]; }; convert.rgb.cmyk = function(rgb) { const r2 = rgb[0] / 255; const g2 = rgb[1] / 255; const b2 = rgb[2] / 255; const k = Math.min(1 - r2, 1 - g2, 1 - b2); const c = (1 - r2 - k) / (1 - k) || 0; const m2 = (1 - g2 - k) / (1 - k) || 0; const y = (1 - b2 - k) / (1 - k) || 0; return [c * 100, m2 * 100, y * 100, k * 100]; }; function comparativeDistance(x, y) { return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2; } __name(comparativeDistance, "comparativeDistance"); convert.rgb.keyword = function(rgb) { const reversed = reverseKeywords[rgb]; if (reversed) { return reversed; } let currentClosestDistance = Infinity; let currentClosestKeyword; for (const keyword of Object.keys(cssKeywords)) { const value = cssKeywords[keyword]; const distance = comparativeDistance(rgb, value); if (distance < currentClosestDistance) { currentClosestDistance = distance; currentClosestKeyword = keyword; } } return currentClosestKeyword; }; convert.keyword.rgb = function(keyword) { return cssKeywords[keyword]; }; convert.rgb.xyz = function(rgb) { let r2 = rgb[0] / 255; let g2 = rgb[1] / 255; let b2 = rgb[2] / 255; r2 = r2 > 0.04045 ? ((r2 + 0.055) / 1.055) ** 2.4 : r2 / 12.92; g2 = g2 > 0.04045 ? ((g2 + 0.055) / 1.055) ** 2.4 : g2 / 12.92; b2 = b2 > 0.04045 ? ((b2 + 0.055) / 1.055) ** 2.4 : b2 / 12.92; const x = r2 * 0.4124 + g2 * 0.3576 + b2 * 0.1805; const y = r2 * 0.2126 + g2 * 0.7152 + b2 * 0.0722; const z = r2 * 0.0193 + g2 * 0.1192 + b2 * 0.9505; return [x * 100, y * 100, z * 100]; }; convert.rgb.lab = function(rgb) { const xyz = convert.rgb.xyz(rgb); let x = xyz[0]; let y = xyz[1]; let z = xyz[2]; x /= 95.047; y /= 100; z /= 108.883; x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116; y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116; z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116; const l = 116 * y - 16; const a = 500 * (x - y); const b2 = 200 * (y - z); return [l, a, b2]; }; convert.hsl.rgb = function(hsl) { const h = hsl[0] / 360; const s = hsl[1] / 100; const l = hsl[2] / 100; let t2; let t3; let val; if (s === 0) { val = l * 255; return [val, val, val]; } if (l < 0.5) { t2 = l * (1 + s); } else { t2 = l + s - l * s; } const t1 = 2 * l - t2; const rgb = [0, 0, 0]; for (let i = 0; i < 3; i++) { t3 = h + 1 / 3 * -(i - 1); if (t3 < 0) { t3++; } if (t3 > 1) { t3--; } if (6 * t3 < 1) { val = t1 + (t2 - t1) * 6 * t3; } else if (2 * t3 < 1) { val = t2; } else if (3 * t3 < 2) { val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; } else { val = t1; } rgb[i] = val * 255; } return rgb; }; convert.hsl.hsv = function(hsl) { const h = hsl[0]; let s = hsl[1] / 100; let l = hsl[2] / 100; let smin = s; const lmin = Math.max(l, 0.01); l *= 2; s *= l <= 1 ? l : 2 - l; smin *= lmin <= 1 ? lmin : 2 - lmin; const v = (l + s) / 2; const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); return [h, sv * 100, v * 100]; }; convert.hsv.rgb = function(hsv) { const h = hsv[0] / 60; const s = hsv[1] / 100; let v = hsv[2] / 100; const hi = Math.floor(h) % 6; const f2 = h - Math.floor(h); const p2 = 255 * v * (1 - s); const q = 255 * v * (1 - s * f2); const t2 = 255 * v * (1 - s * (1 - f2)); v *= 255; switch (hi) { case 0: return [v, t2, p2]; case 1: return [q, v, p2]; case 2: return [p2, v, t2]; case 3: return [p2, q, v]; case 4: return [t2, p2, v]; case 5: return [v, p2, q]; } }; convert.hsv.hsl = function(hsv) { const h = hsv[0]; const s = hsv[1] / 100; const v = hsv[2] / 100; const vmin = Math.max(v, 0.01); let sl; let l; l = (2 - s) * v; const lmin = (2 - s) * vmin; sl = s * vmin; sl /= lmin <= 1 ? lmin : 2 - lmin; sl = sl || 0; l /= 2; return [h, sl * 100, l * 100]; }; convert.hwb.rgb = function(hwb) { const h = hwb[0] / 360; let wh = hwb[1] / 100; let bl = hwb[2] / 100; const ratio = wh + bl; let f2; if (ratio > 1) { wh /= ratio; bl /= ratio; } const i = Math.floor(6 * h); const v = 1 - bl; f2 = 6 * h - i; if ((i & 1) !== 0) { f2 = 1 - f2; } const n2 = wh + f2 * (v - wh); let r2; let g2; let b2; switch (i) { default: case 6: case 0: r2 = v; g2 = n2; b2 = wh; break; case 1: r2 = n2; g2 = v; b2 = wh; break; case 2: r2 = wh; g2 = v; b2 = n2; break; case 3: r2 = wh; g2 = n2; b2 = v; break; case 4: r2 = n2; g2 = wh; b2 = v; break; case 5: r2 = v; g2 = wh; b2 = n2; break; } return [r2 * 255, g2 * 255, b2 * 255]; }; convert.cmyk.rgb = function(cmyk) { const c = cmyk[0] / 100; const m2 = cmyk[1] / 100; const y = cmyk[2] / 100; const k = cmyk[3] / 100; const r2 = 1 - Math.min(1, c * (1 - k) + k); const g2 = 1 - Math.min(1, m2 * (1 - k) + k); const b2 = 1 - Math.min(1, y * (1 - k) + k); return [r2 * 255, g2 * 255, b2 * 255]; }; convert.xyz.rgb = function(xyz) { const x = xyz[0] / 100; const y = xyz[1] / 100; const z = xyz[2] / 100; let r2; let g2; let b2; r2 = x * 3.2406 + y * -1.5372 + z * -0.4986; g2 = x * -0.9689 + y * 1.8758 + z * 0.0415; b2 = x * 0.0557 + y * -0.204 + z * 1.057; r2 = r2 > 31308e-7 ? 1.055 * r2 ** (1 / 2.4) - 0.055 : r2 * 12.92; g2 = g2 > 31308e-7 ? 1.055 * g2 ** (1 / 2.4) - 0.055 : g2 * 12.92; b2 = b2 > 31308e-7 ? 1.055 * b2 ** (1 / 2.4) - 0.055 : b2 * 12.92; r2 = Math.min(Math.max(0, r2), 1); g2 = Math.min(Math.max(0, g2), 1); b2 = Math.min(Math.max(0, b2), 1); return [r2 * 255, g2 * 255, b2 * 255]; }; convert.xyz.lab = function(xyz) { let x = xyz[0]; let y = xyz[1]; let z = xyz[2]; x /= 95.047; y /= 100; z /= 108.883; x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116; y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116; z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116; const l = 116 * y - 16; const a = 500 * (x - y); const b2 = 200 * (y - z); return [l, a, b2]; }; convert.lab.xyz = function(lab) { const l = lab[0]; const a = lab[1]; const b2 = lab[2]; let x; let y; let z; y = (l + 16) / 116; x = a / 500 + y; z = y - b2 / 200; const y2 = y ** 3; const x2 = x ** 3; const z2 = z ** 3; y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787; x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787; z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787; x *= 95.047; y *= 100; z *= 108.883; return [x, y, z]; }; convert.lab.lch = function(lab) { const l = lab[0]; const a = lab[1]; const b2 = lab[2]; let h; const hr = Math.atan2(b2, a); h = hr * 360 / 2 / Math.PI; if (h < 0) { h += 360; } const c = Math.sqrt(a * a + b2 * b2); return [l, c, h]; }; convert.lch.lab = function(lch) { const l = lch[0]; const c = lch[1]; const h = lch[2]; const hr = h / 360 * 2 * Math.PI; const a = c * Math.cos(hr); const b2 = c * Math.sin(hr); return [l, a, b2]; }; convert.rgb.ansi16 = function(args, saturation = null) { const [r2, g2, b2] = args; let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; value = Math.round(value / 50); if (value === 0) { return 30; } let ansi = 30 + (Math.round(b2 / 255) << 2 | Math.round(g2 / 255) << 1 | Math.round(r2 / 255)); if (value === 2) { ansi += 60; } return ansi; }; convert.hsv.ansi16 = function(args) { return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); }; convert.rgb.ansi256 = function(args) { const r2 = args[0]; const g2 = args[1]; const b2 = args[2]; if (r2 === g2 && g2 === b2) { if (r2 < 8) { return 16; } if (r2 > 248) { return 231; } return Math.round((r2 - 8) / 247 * 24) + 232; } const ansi = 16 + 36 * Math.round(r2 / 255 * 5) + 6 * Math.round(g2 / 255 * 5) + Math.round(b2 / 255 * 5); return ansi; }; convert.ansi16.rgb = function(args) { let color = args % 10; if (color === 0 || color === 7) { if (args > 50) { color += 3.5; } color = color / 10.5 * 255; return [color, color, color]; } const mult = (~~(args > 50) + 1) * 0.5; const r2 = (color & 1) * mult * 255; const g2 = (color >> 1 & 1) * mult * 255; const b2 = (color >> 2 & 1) * mult * 255; return [r2, g2, b2]; }; convert.ansi256.rgb = function(args) { if (args >= 232) { const c = (args - 232) * 10 + 8; return [c, c, c]; } args -= 16; let rem; const r2 = Math.floor(args / 36) / 5 * 255; const g2 = Math.floor((rem = args % 36) / 6) / 5 * 255; const b2 = rem % 6 / 5 * 255; return [r2, g2, b2]; }; convert.rgb.hex = function(args) { const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); const string = integer.toString(16).toUpperCase(); return "000000".substring(string.length) + string; }; convert.hex.rgb = function(args) { const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); if (!match) { return [0, 0, 0]; } let colorString = match[0]; if (match[0].length === 3) { colorString = colorString.split("").map((char) => { return char + char; }).join(""); } const integer = parseInt(colorString, 16); const r2 = integer >> 16 & 255; const g2 = integer >> 8 & 255; const b2 = integer & 255; return [r2, g2, b2]; }; convert.rgb.hcg = function(rgb) { const r2 = rgb[0] / 255; const g2 = rgb[1] / 255; const b2 = rgb[2] / 255; const max2 = Math.max(Math.max(r2, g2), b2); const min2 = Math.min(Math.min(r2, g2), b2); const chroma = max2 - min2; let grayscale; let hue; if (chroma < 1) { grayscale = min2 / (1 - chroma); } else { grayscale = 0; } if (chroma <= 0) { hue = 0; } else if (max2 === r2) { hue = (g2 - b2) / chroma % 6; } else if (max2 === g2) { hue = 2 + (b2 - r2) / chroma; } else { hue = 4 + (r2 - g2) / chroma; } hue /= 6; hue %= 1; return [hue * 360, chroma * 100, grayscale * 100]; }; convert.hsl.hcg = function(hsl) { const s = hsl[1] / 100; const l = hsl[2] / 100; const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l); let f2 = 0; if (c < 1) { f2 = (l - 0.5 * c) / (1 - c); } return [hsl[0], c * 100, f2 * 100]; }; convert.hsv.hcg = function(hsv) { const s = hsv[1] / 100; const v = hsv[2] / 100; const c = s * v; let f2 = 0; if (c < 1) { f2 = (v - c) / (1 - c); } return [hsv[0], c * 100, f2 * 100]; }; convert.hcg.rgb = function(hcg) { const h = hcg[0] / 360; const c = hcg[1] / 100; const g2 = hcg[2] / 100; if (c === 0) { return [g2 * 255, g2 * 255, g2 * 255]; } const pure = [0, 0, 0]; const hi = h % 1 * 6; const v = hi % 1; const w2 = 1 - v; let mg = 0; switch (Math.floor(hi)) { case 0: pure[0] = 1; pure[1] = v; pure[2] = 0; break; case 1: pure[0] = w2; pure[1] = 1; pure[2] = 0; break; case 2: pure[0] = 0; pure[1] = 1; pure[2] = v; break; case 3: pure[0] = 0; pure[1] = w2; pure[2] = 1; break; case 4: pure[0] = v; pure[1] = 0; pure[2] = 1; break; default: pure[0] = 1; pure[1] = 0; pure[2] = w2; } mg = (1 - c) * g2; return [ (c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255 ]; }; convert.hcg.hsv = function(hcg) { const c = hcg[1] / 100; const g2 = hcg[2] / 100; const v = c + g2 * (1 - c); let f2 = 0; if (v > 0) { f2 = c / v; } return [hcg[0], f2 * 100, v * 100]; }; convert.hcg.hsl = function(hcg) { const c = hcg[1] / 100; const g2 = hcg[2] / 100; const l = g2 * (1 - c) + 0.5 * c; let s = 0; if (l > 0 && l < 0.5) { s = c / (2 * l); } else if (l >= 0.5 && l < 1) { s = c / (2 * (1 - l)); } return [hcg[0], s * 100, l * 100]; }; convert.hcg.hwb = function(hcg) { const c = hcg[1] / 100; const g2 = hcg[2] / 100; const v = c + g2 * (1 - c); return [hcg[0], (v - c) * 100, (1 - v) * 100]; }; convert.hwb.hcg = function(hwb) { const w2 = hwb[1] / 100; const b2 = hwb[2] / 100; const v = 1 - b2; const c = v - w2; let g2 = 0; if (c < 1) { g2 = (v - c) / (1 - c); } return [hwb[0], c * 100, g2 * 100]; }; convert.apple.rgb = function(apple) { return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; }; convert.rgb.apple = function(rgb) { return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; }; convert.gray.rgb = function(args) { return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; }; convert.gray.hsl = function(args) { return [0, 0, args[0]]; }; convert.gray.hsv = convert.gray.hsl; convert.gray.hwb = function(gray) { return [0, 100, gray[0]]; }; convert.gray.cmyk = function(gray) { return [0, 0, 0, gray[0]]; }; convert.gray.lab = function(gray) { return [gray[0], 0, 0]; }; convert.gray.hex = function(gray) { const val = Math.round(gray[0] / 100 * 255) & 255; const integer = (val << 16) + (val << 8) + val; const string = integer.toString(16).toUpperCase(); return "000000".substring(string.length) + string; }; convert.rgb.gray = function(rgb) { const val = (rgb[0] + rgb[1] + rgb[2]) / 3; return [val / 255 * 100]; }; } }); // ../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js var require_route = __commonJS({ "../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js"(exports, module2) { var conversions = require_conversions(); function buildGraph() { const graph = {}; const models = Object.keys(conversions); for (let len = models.length, i = 0; i < len; i++) { graph[models[i]] = { distance: -1, parent: null }; } return graph; } __name(buildGraph, "buildGraph"); function deriveBFS(fromModel) { const graph = buildGraph(); const queue = [fromModel]; graph[fromModel].distance = 0; while (queue.length) { const current = queue.pop(); const adjacents = Object.keys(conversions[current]); for (let len = adjacents.length, i = 0; i < len; i++) { const adjacent = adjacents[i]; const node = graph[adjacent]; if (node.distance === -1) { node.distance = graph[current].distance + 1; node.parent = current; queue.unshift(adjacent); } } } return graph; } __name(deriveBFS, "deriveBFS"); function link(from, to) { return function(args) { return to(from(args)); }; } __name(link, "link"); function wrapConversion(toModel, graph) { const path7 = [graph[toModel].parent, toModel]; let fn = conversions[graph[toModel].parent][toModel]; let cur = graph[toModel].parent; while (graph[cur].parent) { path7.unshift(graph[cur].parent); fn = link(conversions[graph[cur].parent][cur], fn); cur = graph[cur].parent; } fn.conversion = path7; return fn; } __name(wrapConversion, "wrapConversion"); module2.exports = function(fromModel) { const graph = deriveBFS(fromModel); const conversion = {}; const models = Object.keys(graph); for (let len = models.length, i = 0; i < len; i++) { const toModel = models[i]; const node = graph[toModel]; if (node.parent === null) { continue; } conversion[toModel] = wrapConversion(toModel, graph); } return conversion; }; } }); // ../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js var require_color_convert = __commonJS({ "../../node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js"(exports, module2) { var conversions = require_conversions(); var route = require_route(); var convert = {}; var models = Object.keys(conversions); function wrapRaw(fn) { const wrappedFn = /* @__PURE__ */ __name(function(...args) { const arg0 = args[0]; if (arg0 === void 0 || arg0 === null) { return arg0; } if (arg0.length > 1) { args = arg0; } return fn(args); }, "wrappedFn"); if ("conversion" in fn) { wrappedFn.conversion = fn.conversion; } return wrappedFn; } __name(wrapRaw, "wrapRaw"); function wrapRounded(fn) { const wrappedFn = /* @__PURE__ */ __name(function(...args) { const arg0 = args[0]; if (arg0 === void 0 || arg0 === null) { return arg0; } if (arg0.length > 1) { args = arg0; } const result = fn(args); if (typeof result === "object") { for (let len = result.length, i = 0; i < len; i++) { result[i] = Math.round(result[i]); } } return result; }, "wrappedFn"); if ("conversion" in fn) { wrappedFn.conversion = fn.conversion; } return wrappedFn; } __name(wrapRounded, "wrapRounded"); models.forEach((fromModel) => { convert[fromModel] = {}; Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels }); Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels }); const routes = route(fromModel); const routeModels = Object.keys(routes); routeModels.forEach((toModel) => { const fn = routes[toModel]; convert[fromModel][toModel] = wrapRounded(fn); convert[fromModel][toModel].raw = wrapRaw(fn); }); }); module2.exports = convert; } }); // ../../node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js var require_ansi_styles = __commonJS({ "../../node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js"(exports, module2) { "use strict"; var wrapAnsi16 = /* @__PURE__ */ __name((fn, offset) => (...args) => { const code = fn(...args); return `\x1B[${code + offset}m`; }, "wrapAnsi16"); var wrapAnsi256 = /* @__PURE__ */ __name((fn, offset) => (...args) => { const code = fn(...args); return `\x1B[${38 + offset};5;${code}m`; }, "wrapAnsi256"); var wrapAnsi16m = /* @__PURE__ */ __name((fn, offset) => (...args) => { const rgb = fn(...args); return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; }, "wrapAnsi16m"); var ansi2ansi = /* @__PURE__ */ __name((n2) => n2, "ansi2ansi"); var rgb2rgb = /* @__PURE__ */ __name((r2, g2, b2) => [r2, g2, b2], "rgb2rgb"); var setLazyProperty = /* @__PURE__ */ __name((object, property, get) => { Object.defineProperty(object, property, { get: () => { const value = get(); Object.defineProperty(object, property, { value, enumerable: true, configurable: true }); return value; }, enumerable: true, configurable: true }); }, "setLazyProperty"); var colorConvert; var makeDynamicStyles = /* @__PURE__ */ __name((wrap, targetSpace, identity2, isBackground) => { if (colorConvert === void 0) { colorConvert = require_color_convert(); } const offset = isBackground ? 10 : 0; const styles = {}; for (const [sourceSpace, suite] of Object.entries(colorConvert)) { const name = sourceSpace === "ansi16" ? "ansi" : sourceSpace; if (sourceSpace === targetSpace) { styles[name] = wrap(identity2, offset); } else if (typeof suite === "object") { styles[name] = wrap(suite[targetSpace], offset); } } return styles; }, "makeDynamicStyles"); function assembleStyles() { const codes = /* @__PURE__ */ new Map(); const styles = { modifier: { reset: [0, 0], bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29] }, color: { black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], blackBright: [90, 39], redBright: [91, 39], greenBright: [92, 39], yellowBright: [93, 39], blueBright: [94, 39], magentaBright: [95, 39], cyanBright: [96, 39], whiteBright: [97, 39] }, bgColor: { bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49], bgBlackBright: [100, 49], bgRedBright: [101, 49], bgGreenBright: [102, 49], bgYellowBright: [103, 49], bgBlueBright: [104, 49], bgMagentaBright: [105, 49], bgCyanBright: [106, 49], bgWhiteBright: [107, 49] } }; styles.color.gray = styles.color.blackBright; styles.bgColor.bgGray = styles.bgColor.bgBlackBright; styles.color.grey = styles.color.blackBright; styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; for (const [groupName, group] of Object.entries(styles)) { for (const [styleName, style] of Object.entries(group)) { styles[styleName] = { open: `\x1B[${style[0]}m`, close: `\x1B[${style[1]}m` }; group[styleName] = styles[styleName]; codes.set(style[0], style[1]); } Object.defineProperty(styles, groupName, { value: group, enumerable: false }); } Object.defineProperty(styles, "codes", { value: codes, enumerable: false }); styles.color.close = "\x1B[39m"; styles.bgColor.close = "\x1B[49m"; setLazyProperty(styles.color, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, false)); setLazyProperty(styles.color, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, false)); setLazyProperty(styles.color, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, false)); setLazyProperty(styles.bgColor, "ansi", () => makeDynamicStyles(wrapAnsi16, "ansi16", ansi2ansi, true)); setLazyProperty(styles.bgColor, "ansi256", () => makeDynamicStyles(wrapAnsi256, "ansi256", ansi2ansi, true)); setLazyProperty(styles.bgColor, "ansi16m", () => makeDynamicStyles(wrapAnsi16m, "rgb", rgb2rgb, true)); return styles; } __name(assembleStyles, "assembleStyles"); Object.defineProperty(module2, "exports", { enumerable: true, get: assembleStyles }); } }); // ../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js var require_has_flag = __commonJS({ "../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js"(exports, module2) { "use strict"; module2.exports = (flag, argv = process.argv) => { const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; const position = argv.indexOf(prefix + flag); const terminatorPosition = argv.indexOf("--"); return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); }; } }); // ../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js var require_supports_color = __commonJS({ "../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js"(exports, module2) { "use strict"; var os2 = require("os"); var tty = require("tty"); var hasFlag = require_has_flag(); var { env } = process; var forceColor; if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { forceColor = 0; } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { forceColor = 1; } if ("FORCE_COLOR" in env) { if (env.FORCE_COLOR === "true") { forceColor = 1; } else if (env.FORCE_COLOR === "false") { forceColor = 0; } else { forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); } } function translateLevel(level) { if (level === 0) { return false; } return { level, hasBasic: true, has256: level >= 2, has16m: level >= 3 }; } __name(translateLevel, "translateLevel"); function supportsColor(haveStream, streamIsTTY) { if (forceColor === 0) { return 0; } if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { return 3; } if (hasFlag("color=256")) { return 2; } if (haveStream && !streamIsTTY && forceColor === void 0) { return 0; } const min2 = forceColor || 0; if (env.TERM === "dumb") { return min2; } if (process.platform === "win32") { const osRelease = os2.release().split("."); if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { return Number(osRelease[2]) >= 14931 ? 3 : 2; } return 1; } if ("CI" in env) { if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign2) => sign2 in env) || env.CI_NAME === "codeship") { return 1; } return min2; } if ("TEAMCITY_VERSION" in env) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; } if (env.COLORTERM === "truecolor") { return 3; } if ("TERM_PROGRAM" in env) { const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); switch (env.TERM_PROGRAM) { case "iTerm.app": return version >= 3 ? 3 : 2; case "Apple_Terminal": return 2; } } if (/-256(color)?$/i.test(env.TERM)) { return 2; } if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { return 1; } if ("COLORTERM" in env) { return 1; } return min2; } __name(supportsColor, "supportsColor"); function getSupportLevel(stream2) { const level = supportsColor(stream2, stream2 && stream2.isTTY); return translateLevel(level); } __name(getSupportLevel, "getSupportLevel"); module2.exports = { supportsColor: getSupportLevel, stdout: translateLevel(supportsColor(true, tty.isatty(1))), stderr: translateLevel(supportsColor(true, tty.isatty(2))) }; } }); // ../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js var require_util = __commonJS({ "../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js"(exports, module2) { "use strict"; var stringReplaceAll = /* @__PURE__ */ __name((string, substring, replacer) => { let index = string.indexOf(substring); if (index === -1) { return string; } const substringLength = substring.length; let endIndex = 0; let returnValue = ""; do { returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; endIndex = index + substringLength; index = string.indexOf(substring, endIndex); } while (index !== -1); returnValue += string.substr(endIndex); return returnValue; }, "stringReplaceAll"); var stringEncaseCRLFWithFirstIndex = /* @__PURE__ */ __name((string, prefix, postfix, index) => { let endIndex = 0; let returnValue = ""; do { const gotCR = string[index - 1] === "\r"; returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? "\r\n" : "\n") + postfix; endIndex = index + 1; index = string.indexOf("\n", endIndex); } while (index !== -1); returnValue += string.substr(endIndex); return returnValue; }, "stringEncaseCRLFWithFirstIndex"); module2.exports = { stringReplaceAll, stringEncaseCRLFWithFirstIndex }; } }); // ../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js var require_templates = __commonJS({ "../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js"(exports, module2) { "use strict"; var TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; var ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi; var ESCAPES = /* @__PURE__ */ new Map([ ["n", "\n"], ["r", "\r"], ["t", " "], ["b", "\b"], ["f", "\f"], ["v", "\v"], ["0", "\0"], ["\\", "\\"], ["e", "\x1B"], ["a", "\x07"] ]); function unescape(c) { const u = c[0] === "u"; const bracket = c[1] === "{"; if (u && !bracket && c.length === 5 || c[0] === "x" && c.length === 3) { return String.fromCharCode(parseInt(c.slice(1), 16)); } if (u && bracket) { return String.fromCodePoint(parseInt(c.slice(2, -1), 16)); } return ESCAPES.get(c) || c; } __name(unescape, "unescape"); function parseArguments(name, arguments_) { const results = []; const chunks = arguments_.trim().split(/\s*,\s*/g); let matches; for (const chunk of chunks) { const number = Number(chunk); if (!Number.isNaN(number)) { results.push(number); } else if (matches = chunk.match(STRING_REGEX)) { results.push(matches[2].replace(ESCAPE_REGEX, (m2, escape, character) => escape ? unescape(escape) : character)); } else { throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); } } return results; } __name(parseArguments, "parseArguments"); function parseStyle(style) { STYLE_REGEX.lastIndex = 0; const results = []; let matches; while ((matches = STYLE_REGEX.exec(style)) !== null) { const name = matches[1]; if (matches[2]) { const args = parseArguments(name, matches[2]); results.push([name].concat(args)); } else { results.push([name]); } } return results; } __name(parseStyle, "parseStyle"); function buildStyle(chalk13, styles) { const enabled = {}; for (const layer of styles) { for (const style of layer.styles) { enabled[style[0]] = layer.inverse ? null : style.slice(1); } } let current = chalk13; for (const [styleName, styles2] of Object.entries(enabled)) { if (!Array.isArray(styles2)) { continue; } if (!(styleName in current)) { throw new Error(`Unknown Chalk style: ${styleName}`); } current = styles2.length > 0 ? current[styleName](...styles2) : current[styleName]; } return current; } __name(buildStyle, "buildStyle"); module2.exports = (chalk13, temporary) => { const styles = []; const chunks = []; let chunk = []; temporary.replace(TEMPLATE_REGEX, (m2, escapeCharacter, inverse, style, close, character) => { if (escapeCharacter) { chunk.push(unescape(escapeCharacter)); } else if (style) { const string = chunk.join(""); chunk = []; chunks.push(styles.length === 0 ? string : buildStyle(chalk13, styles)(string)); styles.push({ inverse, styles: parseStyle(style) }); } else if (close) { if (styles.length === 0) { throw new Error("Found extraneous } in Chalk template literal"); } chunks.push(buildStyle(chalk13, styles)(chunk.join(""))); chunk = []; styles.pop(); } else { chunk.push(character); } }); chunks.push(chunk.join("")); if (styles.length > 0) { const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? "" : "s"} (\`}\`)`; throw new Error(errMessage); } return chunks.join(""); }; } }); // ../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js var require_source = __commonJS({ "../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js"(exports, module2) { "use strict"; var ansiStyles = require_ansi_styles(); var { stdout: stdoutColor, stderr: stderrColor } = require_supports_color(); var { stringReplaceAll, stringEncaseCRLFWithFirstIndex } = require_util(); var { isArray } = Array; var levelMapping = [ "ansi", "ansi", "ansi256", "ansi16m" ]; var styles = /* @__PURE__ */ Object.create(null); var applyOptions = /* @__PURE__ */ __name((object, options = {}) => { if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) { throw new Error("The `level` option should be an integer from 0 to 3"); } const colorLevel = stdoutColor ? stdoutColor.level : 0; object.level = options.level === void 0 ? colorLevel : options.level; }, "applyOptions"); var ChalkClass = class { constructor(options) { return chalkFactory(options); } }; __name(ChalkClass, "ChalkClass"); var chalkFactory = /* @__PURE__ */ __name((options) => { const chalk14 = {}; applyOptions(chalk14, options); chalk14.template = (...arguments_) => chalkTag(chalk14.template, ...arguments_); Object.setPrototypeOf(chalk14, Chalk.prototype); Object.setPrototypeOf(chalk14.template, chalk14); chalk14.template.constructor = () => { throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead."); }; chalk14.template.Instance = ChalkClass; return chalk14.template; }, "chalkFactory"); function Chalk(options) { return chalkFactory(options); } __name(Chalk, "Chalk"); for (const [styleName, style] of Object.entries(ansiStyles)) { styles[styleName] = { get() { const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty); Object.defineProperty(this, styleName, { value: builder }); return builder; } }; } styles.visible = { get() { const builder = createBuilder(this, this._styler, true); Object.defineProperty(this, "visible", { value: builder }); return builder; } }; var usedModels = ["rgb", "hex", "keyword", "hsl", "hsv", "hwb", "ansi", "ansi256"]; for (const model of usedModels) { styles[model] = { get() { const { level } = this; return function(...arguments_) { const styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler); return createBuilder(this, styler, this._isEmpty); }; } }; } for (const model of usedModels) { const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); styles[bgModel] = { get() { const { level } = this; return function(...arguments_) { const styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler); return createBuilder(this, styler, this._isEmpty); }; } }; } var proto = Object.defineProperties(() => { }, { ...styles, level: { enumerable: true, get() { return this._generator.level; }, set(level) { this._generator.level = level; } } }); var createStyler = /* @__PURE__ */ __name((open, close, parent) => { let openAll; let closeAll; if (parent === void 0) { openAll = open; closeAll = close; } else { openAll = parent.openAll + open; closeAll = close + parent.closeAll; } return { open, close, openAll, closeAll, parent }; }, "createStyler"); var createBuilder = /* @__PURE__ */ __name((self2, _styler, _isEmpty) => { const builder = /* @__PURE__ */ __name((...arguments_) => { if (isArray(arguments_[0]) && isArray(arguments_[0].raw)) { return applyStyle(builder, chalkTag(builder, ...arguments_)); } return applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" ")); }, "builder"); Object.setPrototypeOf(builder, proto); builder._generator = self2; builder._styler = _styler; builder._isEmpty = _isEmpty; return builder; }, "createBuilder"); var applyStyle = /* @__PURE__ */ __name((self2, string) => { if (self2.level <= 0 || !string) { return self2._isEmpty ? "" : string; } let styler = self2._styler; if (styler === void 0) { return string; } const { openAll, closeAll } = styler; if (string.indexOf("\x1B") !== -1) { while (styler !== void 0) { string = stringReplaceAll(string, styler.close, styler.open); styler = styler.parent; } } const lfIndex = string.indexOf("\n"); if (lfIndex !== -1) { string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); } return openAll + string + closeAll; }, "applyStyle"); var template; var chalkTag = /* @__PURE__ */ __name((chalk14, ...strings) => { const [firstString] = strings; if (!isArray(firstString) || !isArray(firstString.raw)) { return strings.join(" "); } const arguments_ = strings.slice(1); const parts = [firstString.raw[0]]; for (let i = 1; i < firstString.length; i++) { parts.push( String(arguments_[i - 1]).replace(/[{}\\]/g, "\\$&"), String(firstString.raw[i]) ); } if (template === void 0) { template = require_templates(); } return template(chalk14, parts.join("")); }, "chalkTag"); Object.defineProperties(Chalk.prototype, styles); var chalk13 = Chalk(); chalk13.supportsColor = stdoutColor; chalk13.stderr = Chalk({ level: stderrColor ? stderrColor.level : 0 }); chalk13.stderr.supportsColor = stderrColor; module2.exports = chalk13; } }); // ../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js var require_ms = __commonJS({ "../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"(exports, module2) { var s = 1e3; var m2 = s * 60; var h = m2 * 60; var d2 = h * 24; var w2 = d2 * 7; var y = d2 * 365.25; module2.exports = function(val, options) { options = options || {}; var type = typeof val; if (type === "string" && val.length > 0) { return parse2(val); } else if (type === "number" && isFinite(val)) { return options.long ? fmtLong(val) : fmtShort(val); } throw new Error( "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) ); }; function parse2(str) { str = String(str); if (str.length > 100) { return; } var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( str ); if (!match) { return; } var n2 = parseFloat(match[1]); var type = (match[2] || "ms").toLowerCase(); switch (type) { case "years": case "year": case "yrs": case "yr": case "y": return n2 * y; case "weeks": case "week": case "w": return n2 * w2; case "days": case "day": case "d": return n2 * d2; case "hours": case "hour": case "hrs": case "hr": case "h": return n2 * h; case "minutes": case "minute": case "mins": case "min": case "m": return n2 * m2; case "seconds": case "second": case "secs": case "sec": case "s": return n2 * s; case "milliseconds": case "millisecond": case "msecs": case "msec": case "ms": return n2; default: return void 0; } } __name(parse2, "parse"); function fmtShort(ms) { var msAbs = Math.abs(ms); if (msAbs >= d2) { return Math.round(ms / d2) + "d"; } if (msAbs >= h) { return Math.round(ms / h) + "h"; } if (msAbs >= m2) { return Math.round(ms / m2) + "m"; } if (msAbs >= s) { return Math.round(ms / s) + "s"; } return ms + "ms"; } __name(fmtShort, "fmtShort"); function fmtLong(ms) { var msAbs = Math.abs(ms); if (msAbs >= d2) { return plural(ms, msAbs, d2, "day"); } if (msAbs >= h) { return plural(ms, msAbs, h, "hour"); } if (msAbs >= m2) { return plural(ms, msAbs, m2, "minute"); } if (msAbs >= s) { return plural(ms, msAbs, s, "second"); } return ms + " ms"; } __name(fmtLong, "fmtLong"); function plural(ms, msAbs, n2, name) { var isPlural = msAbs >= n2 * 1.5; return Math.round(ms / n2) + " " + name + (isPlural ? "s" : ""); } __name(plural, "plural"); } }); // ../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/common.js var require_common = __commonJS({ "../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/common.js"(exports, module2) { function setup(env) { createDebug.debug = createDebug; createDebug.default = createDebug; createDebug.coerce = coerce; createDebug.disable = disable; createDebug.enable = enable; createDebug.enabled = enabled; createDebug.humanize = require_ms(); createDebug.destroy = destroy; Object.keys(env).forEach((key) => { createDebug[key] = env[key]; }); createDebug.names = []; createDebug.skips = []; createDebug.formatters = {}; function selectColor(namespace) { let hash = 0; for (let i = 0; i < namespace.length; i++) { hash = (hash << 5) - hash + namespace.charCodeAt(i); hash |= 0; } return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; } __name(selectColor, "selectColor"); createDebug.selectColor = selectColor; function createDebug(namespace) { let prevTime; let enableOverride = null; let namespacesCache; let enabledCache; function debug14(...args) { if (!debug14.enabled) { return; } const self2 = debug14; const curr = Number(new Date()); const ms = curr - (prevTime || curr); self2.diff = ms; self2.prev = prevTime; self2.curr = curr; prevTime = curr; args[0] = createDebug.coerce(args[0]); if (typeof args[0] !== "string") { args.unshift("%O"); } let index = 0; args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format2) => { if (match === "%%") { return "%"; } index++; const formatter = createDebug.formatters[format2]; if (typeof formatter === "function") { const val = args[index]; match = formatter.call(self2, val); args.splice(index, 1); index--; } return match; }); createDebug.formatArgs.call(self2, args); const logFn = self2.log || createDebug.log; logFn.apply(self2, args); } __name(debug14, "debug"); debug14.namespace = namespace; debug14.useColors = createDebug.useColors(); debug14.color = createDebug.selectColor(namespace); debug14.extend = extend; debug14.destroy = createDebug.destroy; Object.defineProperty(debug14, "enabled", { enumerable: true, configurable: false, get: () => { if (enableOverride !== null) { return enableOverride; } if (namespacesCache !== createDebug.namespaces) { namespacesCache = createDebug.namespaces; enabledCache = createDebug.enabled(namespace); } return enabledCache; }, set: (v) => { enableOverride = v; } }); if (typeof createDebug.init === "function") { createDebug.init(debug14); } return debug14; } __name(createDebug, "createDebug"); function extend(namespace, delimiter) { const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); newDebug.log = this.log; return newDebug; } __name(extend, "extend"); function enable(namespaces) { createDebug.save(namespaces); createDebug.namespaces = namespaces; createDebug.names = []; createDebug.skips = []; let i; const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); const len = split.length; for (i = 0; i < len; i++) { if (!split[i]) { continue; } namespaces = split[i].replace(/\*/g, ".*?"); if (namespaces[0] === "-") { createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); } else { createDebug.names.push(new RegExp("^" + namespaces + "$")); } } } __name(enable, "enable"); function disable() { const namespaces = [ ...createDebug.names.map(toNamespace), ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) ].join(","); createDebug.enable(""); return namespaces; } __name(disable, "disable"); function enabled(name) { if (name[name.length - 1] === "*") { return true; } let i; let len; for (i = 0, len = createDebug.skips.length; i < len; i++) { if (createDebug.skips[i].test(name)) { return false; } } for (i = 0, len = createDebug.names.length; i < len; i++) { if (createDebug.names[i].test(name)) { return true; } } return false; } __name(enabled, "enabled"); function toNamespace(regexp) { return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); } __name(toNamespace, "toNamespace"); function coerce(val) { if (val instanceof Error) { return val.stack || val.message; } return val; } __name(coerce, "coerce"); function destroy() { console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); } __name(destroy, "destroy"); createDebug.enable(createDebug.load()); return createDebug; } __name(setup, "setup"); module2.exports = setup; } }); // ../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/browser.js var require_browser = __commonJS({ "../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/browser.js"(exports, module2) { exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.storage = localstorage(); exports.destroy = (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); } }; })(); exports.colors = [ "#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33" ]; function useColors() { if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { return true; } if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { return false; } return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); } __name(useColors, "useColors"); function formatArgs(args) { args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); if (!this.useColors) { return; } const c = "color: " + this.color; args.splice(1, 0, c, "color: inherit"); let index = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, (match) => { if (match === "%%") { return; } index++; if (match === "%c") { lastC = index; } }); args.splice(lastC, 0, c); } __name(formatArgs, "formatArgs"); exports.log = console.debug || console.log || (() => { }); function save(namespaces) { try { if (namespaces) { exports.storage.setItem("debug", namespaces); } else { exports.storage.removeItem("debug"); } } catch (error2) { } } __name(save, "save"); function load() { let r2; try { r2 = exports.storage.getItem("debug"); } catch (error2) { } if (!r2 && typeof process !== "undefined" && "env" in process) { r2 = process.env.DEBUG; } return r2; } __name(load, "load"); function localstorage() { try { return localStorage; } catch (error2) { } } __name(localstorage, "localstorage"); module2.exports = require_common()(exports); var { formatters } = module2.exports; formatters.j = function(v) { try { return JSON.stringify(v); } catch (error2) { return "[UnexpectedJSONParseError]: " + error2.message; } }; } }); // ../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/node.js var require_node = __commonJS({ "../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/node.js"(exports, module2) { var tty = require("tty"); var util2 = require("util"); exports.init = init; exports.log = log3; exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.destroy = util2.deprecate( () => { }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." ); exports.colors = [6, 2, 3, 4, 5, 1]; try { const supportsColor = require_supports_color(); if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { exports.colors = [ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221 ]; } } catch (error2) { } exports.inspectOpts = Object.keys(process.env).filter((key) => { return /^debug_/i.test(key); }).reduce((obj, key) => { const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { return k.toUpperCase(); }); let val = process.env[key]; if (/^(yes|on|true|enabled)$/i.test(val)) { val = true; } else if (/^(no|off|false|disabled)$/i.test(val)) { val = false; } else if (val === "null") { val = null; } else { val = Number(val); } obj[prop] = val; return obj; }, {}); function useColors() { return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); } __name(useColors, "useColors"); function formatArgs(args) { const { namespace: name, useColors: useColors2 } = this; if (useColors2) { const c = this.color; const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); const prefix = ` ${colorCode};1m${name} \x1B[0m`; args[0] = prefix + args[0].split("\n").join("\n" + prefix); args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m"); } else { args[0] = getDate() + name + " " + args[0]; } } __name(formatArgs, "formatArgs"); function getDate() { if (exports.inspectOpts.hideDate) { return ""; } return new Date().toISOString() + " "; } __name(getDate, "getDate"); function log3(...args) { return process.stderr.write(util2.format(...args) + "\n"); } __name(log3, "log"); function save(namespaces) { if (namespaces) { process.env.DEBUG = namespaces; } else { delete process.env.DEBUG; } } __name(save, "save"); function load() { return process.env.DEBUG; } __name(load, "load"); function init(debug14) { debug14.inspectOpts = {}; const keys2 = Object.keys(exports.inspectOpts); for (let i = 0; i < keys2.length; i++) { debug14.inspectOpts[keys2[i]] = exports.inspectOpts[keys2[i]]; } } __name(init, "init"); module2.exports = require_common()(exports); var { formatters } = module2.exports; formatters.o = function(v) { this.inspectOpts.colors = this.useColors; return util2.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); }; formatters.O = function(v) { this.inspectOpts.colors = this.useColors; return util2.inspect(v, this.inspectOpts); }; } }); // ../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/index.js var require_src = __commonJS({ "../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/index.js"(exports, module2) { if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { module2.exports = require_browser(); } else { module2.exports = require_node(); } } }); // ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js var require_windows = __commonJS({ "../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js"(exports, module2) { module2.exports = isexe; isexe.sync = sync; var fs11 = require("fs"); function checkPathExt(path7, options) { var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT; if (!pathext) { return true; } pathext = pathext.split(";"); if (pathext.indexOf("") !== -1) { return true; } for (var i = 0; i < pathext.length; i++) { var p2 = pathext[i].toLowerCase(); if (p2 && path7.substr(-p2.length).toLowerCase() === p2) { return true; } } return false; } __name(checkPathExt, "checkPathExt"); function checkStat(stat, path7, options) { if (!stat.isSymbolicLink() && !stat.isFile()) { return false; } return checkPathExt(path7, options); } __name(checkStat, "checkStat"); function isexe(path7, options, cb) { fs11.stat(path7, function(er, stat) { cb(er, er ? false : checkStat(stat, path7, options)); }); } __name(isexe, "isexe"); function sync(path7, options) { return checkStat(fs11.statSync(path7), path7, options); } __name(sync, "sync"); } }); // ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js var require_mode = __commonJS({ "../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js"(exports, module2) { module2.exports = isexe; isexe.sync = sync; var fs11 = require("fs"); function isexe(path7, options, cb) { fs11.stat(path7, function(er, stat) { cb(er, er ? false : checkStat(stat, options)); }); } __name(isexe, "isexe"); function sync(path7, options) { return checkStat(fs11.statSync(path7), options); } __name(sync, "sync"); function checkStat(stat, options) { return stat.isFile() && checkMode(stat, options); } __name(checkStat, "checkStat"); function checkMode(stat, options) { var mod2 = stat.mode; var uid = stat.uid; var gid = stat.gid; var myUid = options.uid !== void 0 ? options.uid : process.getuid && process.getuid(); var myGid = options.gid !== void 0 ? options.gid : process.getgid && process.getgid(); var u = parseInt("100", 8); var g2 = parseInt("010", 8); var o2 = parseInt("001", 8); var ug = u | g2; var ret = mod2 & o2 || mod2 & g2 && gid === myGid || mod2 & u && uid === myUid || mod2 & ug && myUid === 0; return ret; } __name(checkMode, "checkMode"); } }); // ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js var require_isexe = __commonJS({ "../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js"(exports, module2) { var fs11 = require("fs"); var core; if (process.platform === "win32" || global.TESTING_WINDOWS) { core = require_windows(); } else { core = require_mode(); } module2.exports = isexe; isexe.sync = sync; function isexe(path7, options, cb) { if (typeof options === "function") { cb = options; options = {}; } if (!cb) { if (typeof Promise !== "function") { throw new TypeError("callback not provided"); } return new Promise(function(resolve, reject) { isexe(path7, options || {}, function(er, is) { if (er) { reject(er); } else { resolve(is); } }); }); } core(path7, options || {}, function(er, is) { if (er) { if (er.code === "EACCES" || options && options.ignoreErrors) { er = null; is = false; } } cb(er, is); }); } __name(isexe, "isexe"); function sync(path7, options) { try { return core.sync(path7, options || {}); } catch (er) { if (options && options.ignoreErrors || er.code === "EACCES") { return false; } else { throw er; } } } __name(sync, "sync"); } }); // ../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js var require_which = __commonJS({ "../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js"(exports, module2) { var isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys"; var path7 = require("path"); var COLON = isWindows ? ";" : ":"; var isexe = require_isexe(); var getNotFoundError = /* @__PURE__ */ __name((cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" }), "getNotFoundError"); var getPathInfo = /* @__PURE__ */ __name((cmd, opt) => { const colon = opt.colon || COLON; const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [""] : [ ...isWindows ? [process.cwd()] : [], ...(opt.path || process.env.PATH || "").split(colon) ]; const pathExtExe = isWindows ? opt.pathExt || process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM" : ""; const pathExt = isWindows ? pathExtExe.split(colon) : [""]; if (isWindows) { if (cmd.indexOf(".") !== -1 && pathExt[0] !== "") pathExt.unshift(""); } return { pathEnv, pathExt, pathExtExe }; }, "getPathInfo"); var which = /* @__PURE__ */ __name((cmd, opt, cb) => { if (typeof opt === "function") { cb = opt; opt = {}; } if (!opt) opt = {}; const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt); const found = []; const step = /* @__PURE__ */ __name((i) => new Promise((resolve, reject) => { if (i === pathEnv.length) return opt.all && found.length ? resolve(found) : reject(getNotFoundError(cmd)); const ppRaw = pathEnv[i]; const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw; const pCmd = path7.join(pathPart, cmd); const p2 = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd; resolve(subStep(p2, i, 0)); }), "step"); const subStep = /* @__PURE__ */ __name((p2, i, ii) => new Promise((resolve, reject) => { if (ii === pathExt.length) return resolve(step(i + 1)); const ext = pathExt[ii]; isexe(p2 + ext, { pathExt: pathExtExe }, (er, is) => { if (!er && is) { if (opt.all) found.push(p2 + ext); else return resolve(p2 + ext); } return resolve(subStep(p2, i, ii + 1)); }); }), "subStep"); return cb ? step(0).then((res) => cb(null, res), cb) : step(0); }, "which"); var whichSync = /* @__PURE__ */ __name((cmd, opt) => { opt = opt || {}; const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt); const found = []; for (let i = 0; i < pathEnv.length; i++) { const ppRaw = pathEnv[i]; const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw; const pCmd = path7.join(pathPart, cmd); const p2 = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd; for (let j = 0; j < pathExt.length; j++) { const cur = p2 + pathExt[j]; try { const is = isexe.sync(cur, { pathExt: pathExtExe }); if (is) { if (opt.all) found.push(cur); else return cur; } } catch (ex) { } } } if (opt.all && found.length) return found; if (opt.nothrow) return null; throw getNotFoundError(cmd); }, "whichSync"); module2.exports = which; which.sync = whichSync; } }); // ../../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js var require_path_key = __commonJS({ "../../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js"(exports, module2) { "use strict"; var pathKey = /* @__PURE__ */ __name((options = {}) => { const environment = options.env || process.env; const platform2 = options.platform || process.platform; if (platform2 !== "win32") { return "PATH"; } return Object.keys(environment).reverse().find((key) => key.toUpperCase() === "PATH") || "Path"; }, "pathKey"); module2.exports = pathKey; module2.exports.default = pathKey; } }); // ../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/util/resolveCommand.js var require_resolveCommand = __commonJS({ "../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/util/resolveCommand.js"(exports, module2) { "use strict"; var path7 = require("path"); var which = require_which(); var getPathKey = require_path_key(); function resolveCommandAttempt(parsed, withoutPathExt) { const env = parsed.options.env || process.env; const cwd = process.cwd(); const hasCustomCwd = parsed.options.cwd != null; const shouldSwitchCwd = hasCustomCwd && process.chdir !== void 0 && !process.chdir.disabled; if (shouldSwitchCwd) { try { process.chdir(parsed.options.cwd); } catch (err) { } } let resolved; try { resolved = which.sync(parsed.command, { path: env[getPathKey({ env })], pathExt: withoutPathExt ? path7.delimiter : void 0 }); } catch (e2) { } finally { if (shouldSwitchCwd) { process.chdir(cwd); } } if (resolved) { resolved = path7.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved); } return resolved; } __name(resolveCommandAttempt, "resolveCommandAttempt"); function resolveCommand(parsed) { return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); } __name(resolveCommand, "resolveCommand"); module2.exports = resolveCommand; } }); // ../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/util/escape.js var require_escape = __commonJS({ "../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/util/escape.js"(exports, module2) { "use strict"; var metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; function escapeCommand(arg2) { arg2 = arg2.replace(metaCharsRegExp, "^$1"); return arg2; } __name(escapeCommand, "escapeCommand"); function escapeArgument(arg2, doubleEscapeMetaChars) { arg2 = `${arg2}`; arg2 = arg2.replace(/(\\*)"/g, '$1$1\\"'); arg2 = arg2.replace(/(\\*)$/, "$1$1"); arg2 = `"${arg2}"`; arg2 = arg2.replace(metaCharsRegExp, "^$1"); if (doubleEscapeMetaChars) { arg2 = arg2.replace(metaCharsRegExp, "^$1"); } return arg2; } __name(escapeArgument, "escapeArgument"); module2.exports.command = escapeCommand; module2.exports.argument = escapeArgument; } }); // ../../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js var require_shebang_regex = __commonJS({ "../../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js"(exports, module2) { "use strict"; module2.exports = /^#!(.*)/; } }); // ../../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js var require_shebang_command = __commonJS({ "../../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js"(exports, module2) { "use strict"; var shebangRegex = require_shebang_regex(); module2.exports = (string = "") => { const match = string.match(shebangRegex); if (!match) { return null; } const [path7, argument] = match[0].replace(/#! ?/, "").split(" "); const binary = path7.split("/").pop(); if (binary === "env") { return argument; } return argument ? `${binary} ${argument}` : binary; }; } }); // ../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/util/readShebang.js var require_readShebang = __commonJS({ "../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/util/readShebang.js"(exports, module2) { "use strict"; var fs11 = require("fs"); var shebangCommand = require_shebang_command(); function readShebang(command) { const size = 150; const buffer = Buffer.alloc(size); let fd; try { fd = fs11.openSync(command, "r"); fs11.readSync(fd, buffer, 0, size, 0); fs11.closeSync(fd); } catch (e2) { } return shebangCommand(buffer.toString()); } __name(readShebang, "readShebang"); module2.exports = readShebang; } }); // ../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/parse.js var require_parse = __commonJS({ "../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/parse.js"(exports, module2) { "use strict"; var path7 = require("path"); var resolveCommand = require_resolveCommand(); var escape = require_escape(); var readShebang = require_readShebang(); var isWin = process.platform === "win32"; var isExecutableRegExp = /\.(?:com|exe)$/i; var isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; function detectShebang(parsed) { parsed.file = resolveCommand(parsed); const shebang = parsed.file && readShebang(parsed.file); if (shebang) { parsed.args.unshift(parsed.file); parsed.command = shebang; return resolveCommand(parsed); } return parsed.file; } __name(detectShebang, "detectShebang"); function parseNonShell(parsed) { if (!isWin) { return parsed; } const commandFile = detectShebang(parsed); const needsShell = !isExecutableRegExp.test(commandFile); if (parsed.options.forceShell || needsShell) { const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); parsed.command = path7.normalize(parsed.command); parsed.command = escape.command(parsed.command); parsed.args = parsed.args.map((arg2) => escape.argument(arg2, needsDoubleEscapeMetaChars)); const shellCommand = [parsed.command].concat(parsed.args).join(" "); parsed.args = ["/d", "/s", "/c", `"${shellCommand}"`]; parsed.command = process.env.comspec || "cmd.exe"; parsed.options.windowsVerbatimArguments = true; } return parsed; } __name(parseNonShell, "parseNonShell"); function parse2(command, args, options) { if (args && !Array.isArray(args)) { options = args; args = null; } args = args ? args.slice(0) : []; options = Object.assign({}, options); const parsed = { command, args, options, file: void 0, original: { command, args } }; return options.shell ? parsed : parseNonShell(parsed); } __name(parse2, "parse"); module2.exports = parse2; } }); // ../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/enoent.js var require_enoent = __commonJS({ "../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/lib/enoent.js"(exports, module2) { "use strict"; var isWin = process.platform === "win32"; function notFoundError(original, syscall) { return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { code: "ENOENT", errno: "ENOENT", syscall: `${syscall} ${original.command}`, path: original.command, spawnargs: original.args }); } __name(notFoundError, "notFoundError"); function hookChildProcess(cp2, parsed) { if (!isWin) { return; } const originalEmit = cp2.emit; cp2.emit = function(name, arg1) { if (name === "exit") { const err = verifyENOENT(arg1, parsed, "spawn"); if (err) { return originalEmit.call(cp2, "error", err); } } return originalEmit.apply(cp2, arguments); }; } __name(hookChildProcess, "hookChildProcess"); function verifyENOENT(status, parsed) { if (isWin && status === 1 && !parsed.file) { return notFoundError(parsed.original, "spawn"); } return null; } __name(verifyENOENT, "verifyENOENT"); function verifyENOENTSync(status, parsed) { if (isWin && status === 1 && !parsed.file) { return notFoundError(parsed.original, "spawnSync"); } return null; } __name(verifyENOENTSync, "verifyENOENTSync"); module2.exports = { hookChildProcess, verifyENOENT, verifyENOENTSync, notFoundError }; } }); // ../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/index.js var require_cross_spawn = __commonJS({ "../../node_modules/.pnpm/cross-spawn@7.0.3/node_modules/cross-spawn/index.js"(exports, module2) { "use strict"; var cp2 = require("child_process"); var parse2 = require_parse(); var enoent = require_enoent(); function spawn2(command, args, options) { const parsed = parse2(command, args, options); const spawned = cp2.spawn(parsed.command, parsed.args, parsed.options); enoent.hookChildProcess(spawned, parsed); return spawned; } __name(spawn2, "spawn"); function spawnSync(command, args, options) { const parsed = parse2(command, args, options); const result = cp2.spawnSync(parsed.command, parsed.args, parsed.options); result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); return result; } __name(spawnSync, "spawnSync"); module2.exports = spawn2; module2.exports.spawn = spawn2; module2.exports.sync = spawnSync; module2.exports._parse = parse2; module2.exports._enoent = enoent; } }); // ../../node_modules/.pnpm/strip-final-newline@2.0.0/node_modules/strip-final-newline/index.js var require_strip_final_newline = __commonJS({ "../../node_modules/.pnpm/strip-final-newline@2.0.0/node_modules/strip-final-newline/index.js"(exports, module2) { "use strict"; module2.exports = (input) => { const LF = typeof input === "string" ? "\n" : "\n".charCodeAt(); const CR = typeof input === "string" ? "\r" : "\r".charCodeAt(); if (input[input.length - 1] === LF) { input = input.slice(0, input.length - 1); } if (input[input.length - 1] === CR) { input = input.slice(0, input.length - 1); } return input; }; } }); // ../../node_modules/.pnpm/npm-run-path@4.0.1/node_modules/npm-run-path/index.js var require_npm_run_path = __commonJS({ "../../node_modules/.pnpm/npm-run-path@4.0.1/node_modules/npm-run-path/index.js"(exports, module2) { "use strict"; var path7 = require("path"); var pathKey = require_path_key(); var npmRunPath = /* @__PURE__ */ __name((options) => { options = { cwd: process.cwd(), path: process.env[pathKey()], execPath: process.execPath, ...options }; let previous; let cwdPath = path7.resolve(options.cwd); const result = []; while (previous !== cwdPath) { result.push(path7.join(cwdPath, "node_modules/.bin")); previous = cwdPath; cwdPath = path7.resolve(cwdPath, ".."); } const execPathDir = path7.resolve(options.cwd, options.execPath, ".."); result.push(execPathDir); return result.concat(options.path).join(path7.delimiter); }, "npmRunPath"); module2.exports = npmRunPath; module2.exports.default = npmRunPath; module2.exports.env = (options) => { options = { env: process.env, ...options }; const env = { ...options.env }; const path8 = pathKey({ env }); options.path = env[path8]; env[path8] = module2.exports(options); return env; }; } }); // ../../node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js var require_mimic_fn = __commonJS({ "../../node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js"(exports, module2) { "use strict"; var mimicFn = /* @__PURE__ */ __name((to, from) => { for (const prop of Reflect.ownKeys(from)) { Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop)); } return to; }, "mimicFn"); module2.exports = mimicFn; module2.exports.default = mimicFn; } }); // ../../node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js var require_onetime = __commonJS({ "../../node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js"(exports, module2) { "use strict"; var mimicFn = require_mimic_fn(); var calledFunctions = /* @__PURE__ */ new WeakMap(); var onetime = /* @__PURE__ */ __name((function_, options = {}) => { if (typeof function_ !== "function") { throw new TypeError("Expected a function"); } let returnValue; let callCount = 0; const functionName = function_.displayName || function_.name || ""; const onetime2 = /* @__PURE__ */ __name(function(...arguments_) { calledFunctions.set(onetime2, ++callCount); if (callCount === 1) { returnValue = function_.apply(this, arguments_); function_ = null; } else if (options.throw === true) { throw new Error(`Function \`${functionName}\` can only be called once`); } return returnValue; }, "onetime"); mimicFn(onetime2, function_); calledFunctions.set(onetime2, callCount); return onetime2; }, "onetime"); module2.exports = onetime; module2.exports.default = onetime; module2.exports.callCount = (function_) => { if (!calledFunctions.has(function_)) { throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`); } return calledFunctions.get(function_); }; } }); // ../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/core.js var require_core = __commonJS({ "../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/core.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SIGNALS = void 0; var SIGNALS = [ { name: "SIGHUP", number: 1, action: "terminate", description: "Terminal closed", standard: "posix" }, { name: "SIGINT", number: 2, action: "terminate", description: "User interruption with CTRL-C", standard: "ansi" }, { name: "SIGQUIT", number: 3, action: "core", description: "User interruption with CTRL-\\", standard: "posix" }, { name: "SIGILL", number: 4, action: "core", description: "Invalid machine instruction", standard: "ansi" }, { name: "SIGTRAP", number: 5, action: "core", description: "Debugger breakpoint", standard: "posix" }, { name: "SIGABRT", number: 6, action: "core", description: "Aborted", standard: "ansi" }, { name: "SIGIOT", number: 6, action: "core", description: "Aborted", standard: "bsd" }, { name: "SIGBUS", number: 7, action: "core", description: "Bus error due to misaligned, non-existing address or paging error", standard: "bsd" }, { name: "SIGEMT", number: 7, action: "terminate", description: "Command should be emulated but is not implemented", standard: "other" }, { name: "SIGFPE", number: 8, action: "core", description: "Floating point arithmetic error", standard: "ansi" }, { name: "SIGKILL", number: 9, action: "terminate", description: "Forced termination", standard: "posix", forced: true }, { name: "SIGUSR1", number: 10, action: "terminate", description: "Application-specific signal", standard: "posix" }, { name: "SIGSEGV", number: 11, action: "core", description: "Segmentation fault", standard: "ansi" }, { name: "SIGUSR2", number: 12, action: "terminate", description: "Application-specific signal", standard: "posix" }, { name: "SIGPIPE", number: 13, action: "terminate", description: "Broken pipe or socket", standard: "posix" }, { name: "SIGALRM", number: 14, action: "terminate", description: "Timeout or timer", standard: "posix" }, { name: "SIGTERM", number: 15, action: "terminate", description: "Termination", standard: "ansi" }, { name: "SIGSTKFLT", number: 16, action: "terminate", description: "Stack is empty or overflowed", standard: "other" }, { name: "SIGCHLD", number: 17, action: "ignore", description: "Child process terminated, paused or unpaused", standard: "posix" }, { name: "SIGCLD", number: 17, action: "ignore", description: "Child process terminated, paused or unpaused", standard: "other" }, { name: "SIGCONT", number: 18, action: "unpause", description: "Unpaused", standard: "posix", forced: true }, { name: "SIGSTOP", number: 19, action: "pause", description: "Paused", standard: "posix", forced: true }, { name: "SIGTSTP", number: 20, action: "pause", description: 'Paused using CTRL-Z or "suspend"', standard: "posix" }, { name: "SIGTTIN", number: 21, action: "pause", description: "Background process cannot read terminal input", standard: "posix" }, { name: "SIGBREAK", number: 21, action: "terminate", description: "User interruption with CTRL-BREAK", standard: "other" }, { name: "SIGTTOU", number: 22, action: "pause", description: "Background process cannot write to terminal output", standard: "posix" }, { name: "SIGURG", number: 23, action: "ignore", description: "Socket received out-of-band data", standard: "bsd" }, { name: "SIGXCPU", number: 24, action: "core", description: "Process timed out", standard: "bsd" }, { name: "SIGXFSZ", number: 25, action: "core", description: "File too big", standard: "bsd" }, { name: "SIGVTALRM", number: 26, action: "terminate", description: "Timeout or timer", standard: "bsd" }, { name: "SIGPROF", number: 27, action: "terminate", description: "Timeout or timer", standard: "bsd" }, { name: "SIGWINCH", number: 28, action: "ignore", description: "Terminal window size changed", standard: "bsd" }, { name: "SIGIO", number: 29, action: "terminate", description: "I/O is available", standard: "other" }, { name: "SIGPOLL", number: 29, action: "terminate", description: "Watched event", standard: "other" }, { name: "SIGINFO", number: 29, action: "ignore", description: "Request for process information", standard: "other" }, { name: "SIGPWR", number: 30, action: "terminate", description: "Device running out of power", standard: "systemv" }, { name: "SIGSYS", number: 31, action: "core", description: "Invalid system call", standard: "other" }, { name: "SIGUNUSED", number: 31, action: "terminate", description: "Invalid system call", standard: "other" } ]; exports.SIGNALS = SIGNALS; } }); // ../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/realtime.js var require_realtime = __commonJS({ "../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/realtime.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SIGRTMAX = exports.getRealtimeSignals = void 0; var getRealtimeSignals = /* @__PURE__ */ __name(function() { const length = SIGRTMAX - SIGRTMIN + 1; return Array.from({ length }, getRealtimeSignal); }, "getRealtimeSignals"); exports.getRealtimeSignals = getRealtimeSignals; var getRealtimeSignal = /* @__PURE__ */ __name(function(value, index) { return { name: `SIGRT${index + 1}`, number: SIGRTMIN + index, action: "terminate", description: "Application-specific signal (realtime)", standard: "posix" }; }, "getRealtimeSignal"); var SIGRTMIN = 34; var SIGRTMAX = 64; exports.SIGRTMAX = SIGRTMAX; } }); // ../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/signals.js var require_signals = __commonJS({ "../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/signals.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSignals = void 0; var _os = require("os"); var _core = require_core(); var _realtime = require_realtime(); var getSignals = /* @__PURE__ */ __name(function() { const realtimeSignals = (0, _realtime.getRealtimeSignals)(); const signals = [..._core.SIGNALS, ...realtimeSignals].map(normalizeSignal); return signals; }, "getSignals"); exports.getSignals = getSignals; var normalizeSignal = /* @__PURE__ */ __name(function({ name, number: defaultNumber, description, action, forced = false, standard }) { const { signals: { [name]: constantSignal } } = _os.constants; const supported = constantSignal !== void 0; const number = supported ? constantSignal : defaultNumber; return { name, number, description, supported, action, forced, standard }; }, "normalizeSignal"); } }); // ../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/main.js var require_main = __commonJS({ "../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/main.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.signalsByNumber = exports.signalsByName = void 0; var _os = require("os"); var _signals = require_signals(); var _realtime = require_realtime(); var getSignalsByName = /* @__PURE__ */ __name(function() { const signals = (0, _signals.getSignals)(); return signals.reduce(getSignalByName, {}); }, "getSignalsByName"); var getSignalByName = /* @__PURE__ */ __name(function(signalByNameMemo, { name, number, description, supported, action, forced, standard }) { return { ...signalByNameMemo, [name]: { name, number, description, supported, action, forced, standard } }; }, "getSignalByName"); var signalsByName = getSignalsByName(); exports.signalsByName = signalsByName; var getSignalsByNumber = /* @__PURE__ */ __name(function() { const signals = (0, _signals.getSignals)(); const length = _realtime.SIGRTMAX + 1; const signalsA = Array.from({ length }, (value, number) => getSignalByNumber(number, signals)); return Object.assign({}, ...signalsA); }, "getSignalsByNumber"); var getSignalByNumber = /* @__PURE__ */ __name(function(number, signals) { const signal = findSignalByNumber(number, signals); if (signal === void 0) { return {}; } const { name, description, supported, action, forced, standard } = signal; return { [number]: { name, number, description, supported, action, forced, standard } }; }, "getSignalByNumber"); var findSignalByNumber = /* @__PURE__ */ __name(function(number, signals) { const signal = signals.find(({ name }) => _os.constants.signals[name] === number); if (signal !== void 0) { return signal; } return signals.find((signalA) => signalA.number === number); }, "findSignalByNumber"); var signalsByNumber = getSignalsByNumber(); exports.signalsByNumber = signalsByNumber; } }); // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js var require_error = __commonJS({ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js"(exports, module2) { "use strict"; var { signalsByName } = require_main(); var getErrorPrefix = /* @__PURE__ */ __name(({ timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled }) => { if (timedOut) { return `timed out after ${timeout} milliseconds`; } if (isCanceled) { return "was canceled"; } if (errorCode !== void 0) { return `failed with ${errorCode}`; } if (signal !== void 0) { return `was killed with ${signal} (${signalDescription})`; } if (exitCode !== void 0) { return `failed with exit code ${exitCode}`; } return "failed"; }, "getErrorPrefix"); var makeError = /* @__PURE__ */ __name(({ stdout, stderr, all, error: error2, signal, exitCode, command, escapedCommand, timedOut, isCanceled, killed, parsed: { options: { timeout } } }) => { exitCode = exitCode === null ? void 0 : exitCode; signal = signal === null ? void 0 : signal; const signalDescription = signal === void 0 ? void 0 : signalsByName[signal].description; const errorCode = error2 && error2.code; const prefix = getErrorPrefix({ timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled }); const execaMessage = `Command ${prefix}: ${command}`; const isError2 = Object.prototype.toString.call(error2) === "[object Error]"; const shortMessage = isError2 ? `${execaMessage} ${error2.message}` : execaMessage; const message = [shortMessage, stderr, stdout].filter(Boolean).join("\n"); if (isError2) { error2.originalMessage = error2.message; error2.message = message; } else { error2 = new Error(message); } error2.shortMessage = shortMessage; error2.command = command; error2.escapedCommand = escapedCommand; error2.exitCode = exitCode; error2.signal = signal; error2.signalDescription = signalDescription; error2.stdout = stdout; error2.stderr = stderr; if (all !== void 0) { error2.all = all; } if ("bufferedData" in error2) { delete error2.bufferedData; } error2.failed = true; error2.timedOut = Boolean(timedOut); error2.isCanceled = isCanceled; error2.killed = killed && !timedOut; return error2; }, "makeError"); module2.exports = makeError; } }); // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stdio.js var require_stdio = __commonJS({ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stdio.js"(exports, module2) { "use strict"; var aliases = ["stdin", "stdout", "stderr"]; var hasAlias = /* @__PURE__ */ __name((options) => aliases.some((alias) => options[alias] !== void 0), "hasAlias"); var normalizeStdio = /* @__PURE__ */ __name((options) => { if (!options) { return; } const { stdio } = options; if (stdio === void 0) { return aliases.map((alias) => options[alias]); } if (hasAlias(options)) { throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${aliases.map((alias) => `\`${alias}\``).join(", ")}`); } if (typeof stdio === "string") { return stdio; } if (!Array.isArray(stdio)) { throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); } const length = Math.max(stdio.length, aliases.length); return Array.from({ length }, (value, index) => stdio[index]); }, "normalizeStdio"); module2.exports = normalizeStdio; module2.exports.node = (options) => { const stdio = normalizeStdio(options); if (stdio === "ipc") { return "ipc"; } if (stdio === void 0 || typeof stdio === "string") { return [stdio, stdio, stdio, "ipc"]; } if (stdio.includes("ipc")) { return stdio; } return [...stdio, "ipc"]; }; } }); // ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js var require_signals2 = __commonJS({ "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js"(exports, module2) { module2.exports = [ "SIGABRT", "SIGALRM", "SIGHUP", "SIGINT", "SIGTERM" ]; if (process.platform !== "win32") { module2.exports.push( "SIGVTALRM", "SIGXCPU", "SIGXFSZ", "SIGUSR2", "SIGTRAP", "SIGSYS", "SIGQUIT", "SIGIOT" ); } if (process.platform === "linux") { module2.exports.push( "SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT", "SIGUNUSED" ); } } }); // ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js var require_signal_exit = __commonJS({ "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js"(exports, module2) { var process2 = global.process; var processOk = /* @__PURE__ */ __name(function(process3) { return process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function"; }, "processOk"); if (!processOk(process2)) { module2.exports = function() { return function() { }; }; } else { assert = require("assert"); signals = require_signals2(); isWin = /^win/i.test(process2.platform); EE = require("events"); if (typeof EE !== "function") { EE = EE.EventEmitter; } if (process2.__signal_exit_emitter__) { emitter = process2.__signal_exit_emitter__; } else { emitter = process2.__signal_exit_emitter__ = new EE(); emitter.count = 0; emitter.emitted = {}; } if (!emitter.infinite) { emitter.setMaxListeners(Infinity); emitter.infinite = true; } module2.exports = function(cb, opts) { if (!processOk(global.process)) { return function() { }; } assert.equal(typeof cb, "function", "a callback must be provided for exit handler"); if (loaded === false) { load(); } var ev = "exit"; if (opts && opts.alwaysLast) { ev = "afterexit"; } var remove = /* @__PURE__ */ __name(function() { emitter.removeListener(ev, cb); if (emitter.listeners("exit").length === 0 && emitter.listeners("afterexit").length === 0) { unload(); } }, "remove"); emitter.on(ev, cb); return remove; }; unload = /* @__PURE__ */ __name(function unload2() { if (!loaded || !processOk(global.process)) { return; } loaded = false; signals.forEach(function(sig) { try { process2.removeListener(sig, sigListeners[sig]); } catch (er) { } }); process2.emit = originalProcessEmit; process2.reallyExit = originalProcessReallyExit; emitter.count -= 1; }, "unload"); module2.exports.unload = unload; emit = /* @__PURE__ */ __name(function emit2(event, code, signal) { if (emitter.emitted[event]) { return; } emitter.emitted[event] = true; emitter.emit(event, code, signal); }, "emit"); sigListeners = {}; signals.forEach(function(sig) { sigListeners[sig] = /* @__PURE__ */ __name(function listener() { if (!processOk(global.process)) { return; } var listeners = process2.listeners(sig); if (listeners.length === emitter.count) { unload(); emit("exit", null, sig); emit("afterexit", null, sig); if (isWin && sig === "SIGHUP") { sig = "SIGINT"; } process2.kill(process2.pid, sig); } }, "listener"); }); module2.exports.signals = function() { return signals; }; loaded = false; load = /* @__PURE__ */ __name(function load2() { if (loaded || !processOk(global.process)) { return; } loaded = true; emitter.count += 1; signals = signals.filter(function(sig) { try { process2.on(sig, sigListeners[sig]); return true; } catch (er) { return false; } }); process2.emit = processEmit; process2.reallyExit = processReallyExit; }, "load"); module2.exports.load = load; originalProcessReallyExit = process2.reallyExit; processReallyExit = /* @__PURE__ */ __name(function processReallyExit2(code) { if (!processOk(global.process)) { return; } process2.exitCode = code || 0; emit("exit", process2.exitCode, null); emit("afterexit", process2.exitCode, null); originalProcessReallyExit.call(process2, process2.exitCode); }, "processReallyExit"); originalProcessEmit = process2.emit; processEmit = /* @__PURE__ */ __name(function processEmit2(ev, arg2) { if (ev === "exit" && processOk(global.process)) { if (arg2 !== void 0) { process2.exitCode = arg2; } var ret = originalProcessEmit.apply(this, arguments); emit("exit", process2.exitCode, null); emit("afterexit", process2.exitCode, null); return ret; } else { return originalProcessEmit.apply(this, arguments); } }, "processEmit"); } var assert; var signals; var isWin; var EE; var emitter; var unload; var emit; var sigListeners; var loaded; var load; var originalProcessReallyExit; var processReallyExit; var originalProcessEmit; var processEmit; } }); // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/kill.js var require_kill = __commonJS({ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/kill.js"(exports, module2) { "use strict"; var os2 = require("os"); var onExit = require_signal_exit(); var DEFAULT_FORCE_KILL_TIMEOUT = 1e3 * 5; var spawnedKill = /* @__PURE__ */ __name((kill, signal = "SIGTERM", options = {}) => { const killResult = kill(signal); setKillTimeout(kill, signal, options, killResult); return killResult; }, "spawnedKill"); var setKillTimeout = /* @__PURE__ */ __name((kill, signal, options, killResult) => { if (!shouldForceKill(signal, options, killResult)) { return; } const timeout = getForceKillAfterTimeout(options); const t2 = setTimeout(() => { kill("SIGKILL"); }, timeout); if (t2.unref) { t2.unref(); } }, "setKillTimeout"); var shouldForceKill = /* @__PURE__ */ __name((signal, { forceKillAfterTimeout }, killResult) => { return isSigterm(signal) && forceKillAfterTimeout !== false && killResult; }, "shouldForceKill"); var isSigterm = /* @__PURE__ */ __name((signal) => { return signal === os2.constants.signals.SIGTERM || typeof signal === "string" && signal.toUpperCase() === "SIGTERM"; }, "isSigterm"); var getForceKillAfterTimeout = /* @__PURE__ */ __name(({ forceKillAfterTimeout = true }) => { if (forceKillAfterTimeout === true) { return DEFAULT_FORCE_KILL_TIMEOUT; } if (!Number.isFinite(forceKillAfterTimeout) || forceKillAfterTimeout < 0) { throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${forceKillAfterTimeout}\` (${typeof forceKillAfterTimeout})`); } return forceKillAfterTimeout; }, "getForceKillAfterTimeout"); var spawnedCancel = /* @__PURE__ */ __name((spawned, context2) => { const killResult = spawned.kill(); if (killResult) { context2.isCanceled = true; } }, "spawnedCancel"); var timeoutKill = /* @__PURE__ */ __name((spawned, signal, reject) => { spawned.kill(signal); reject(Object.assign(new Error("Timed out"), { timedOut: true, signal })); }, "timeoutKill"); var setupTimeout = /* @__PURE__ */ __name((spawned, { timeout, killSignal = "SIGTERM" }, spawnedPromise) => { if (timeout === 0 || timeout === void 0) { return spawnedPromise; } let timeoutId; const timeoutPromise = new Promise((resolve, reject) => { timeoutId = setTimeout(() => { timeoutKill(spawned, killSignal, reject); }, timeout); }); const safeSpawnedPromise = spawnedPromise.finally(() => { clearTimeout(timeoutId); }); return Promise.race([timeoutPromise, safeSpawnedPromise]); }, "setupTimeout"); var validateTimeout = /* @__PURE__ */ __name(({ timeout }) => { if (timeout !== void 0 && (!Number.isFinite(timeout) || timeout < 0)) { throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${timeout}\` (${typeof timeout})`); } }, "validateTimeout"); var setExitHandler = /* @__PURE__ */ __name(async (spawned, { cleanup, detached }, timedPromise) => { if (!cleanup || detached) { return timedPromise; } const removeExitHandler = onExit(() => { spawned.kill(); }); return timedPromise.finally(() => { removeExitHandler(); }); }, "setExitHandler"); module2.exports = { spawnedKill, spawnedCancel, setupTimeout, validateTimeout, setExitHandler }; } }); // ../../node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js var require_is_stream = __commonJS({ "../../node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js"(exports, module2) { "use strict"; var isStream = /* @__PURE__ */ __name((stream2) => stream2 !== null && typeof stream2 === "object" && typeof stream2.pipe === "function", "isStream"); isStream.writable = (stream2) => isStream(stream2) && stream2.writable !== false && typeof stream2._write === "function" && typeof stream2._writableState === "object"; isStream.readable = (stream2) => isStream(stream2) && stream2.readable !== false && typeof stream2._read === "function" && typeof stream2._readableState === "object"; isStream.duplex = (stream2) => isStream.writable(stream2) && isStream.readable(stream2); isStream.transform = (stream2) => isStream.duplex(stream2) && typeof stream2._transform === "function"; module2.exports = isStream; } }); // ../../node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/buffer-stream.js var require_buffer_stream = __commonJS({ "../../node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/buffer-stream.js"(exports, module2) { "use strict"; var { PassThrough: PassThroughStream } = require("stream"); module2.exports = (options) => { options = { ...options }; const { array } = options; let { encoding } = options; const isBuffer = encoding === "buffer"; let objectMode = false; if (array) { objectMode = !(encoding || isBuffer); } else { encoding = encoding || "utf8"; } if (isBuffer) { encoding = null; } const stream2 = new PassThroughStream({ objectMode }); if (encoding) { stream2.setEncoding(encoding); } let length = 0; const chunks = []; stream2.on("data", (chunk) => { chunks.push(chunk); if (objectMode) { length = chunks.length; } else { length += chunk.length; } }); stream2.getBufferedValue = () => { if (array) { return chunks; } return isBuffer ? Buffer.concat(chunks, length) : chunks.join(""); }; stream2.getBufferedLength = () => length; return stream2; }; } }); // ../../node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/index.js var require_get_stream = __commonJS({ "../../node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/index.js"(exports, module2) { "use strict"; var { constants: BufferConstants } = require("buffer"); var stream2 = require("stream"); var { promisify: promisify4 } = require("util"); var bufferStream = require_buffer_stream(); var streamPipelinePromisified = promisify4(stream2.pipeline); var MaxBufferError = class extends Error { constructor() { super("maxBuffer exceeded"); this.name = "MaxBufferError"; } }; __name(MaxBufferError, "MaxBufferError"); async function getStream2(inputStream, options) { if (!inputStream) { throw new Error("Expected a stream"); } options = { maxBuffer: Infinity, ...options }; const { maxBuffer } = options; const stream3 = bufferStream(options); await new Promise((resolve, reject) => { const rejectPromise = /* @__PURE__ */ __name((error2) => { if (error2 && stream3.getBufferedLength() <= BufferConstants.MAX_LENGTH) { error2.bufferedData = stream3.getBufferedValue(); } reject(error2); }, "rejectPromise"); (async () => { try { await streamPipelinePromisified(inputStream, stream3); resolve(); } catch (error2) { rejectPromise(error2); } })(); stream3.on("data", () => { if (stream3.getBufferedLength() > maxBuffer) { rejectPromise(new MaxBufferError()); } }); }); return stream3.getBufferedValue(); } __name(getStream2, "getStream"); module2.exports = getStream2; module2.exports.buffer = (stream3, options) => getStream2(stream3, { ...options, encoding: "buffer" }); module2.exports.array = (stream3, options) => getStream2(stream3, { ...options, array: true }); module2.exports.MaxBufferError = MaxBufferError; } }); // ../../node_modules/.pnpm/merge-stream@2.0.0/node_modules/merge-stream/index.js var require_merge_stream = __commonJS({ "../../node_modules/.pnpm/merge-stream@2.0.0/node_modules/merge-stream/index.js"(exports, module2) { "use strict"; var { PassThrough } = require("stream"); module2.exports = function() { var sources = []; var output = new PassThrough({ objectMode: true }); output.setMaxListeners(0); output.add = add2; output.isEmpty = isEmpty; output.on("unpipe", remove); Array.prototype.slice.call(arguments).forEach(add2); return output; function add2(source) { if (Array.isArray(source)) { source.forEach(add2); return this; } sources.push(source); source.once("end", remove.bind(null, source)); source.once("error", output.emit.bind(output, "error")); source.pipe(output, { end: false }); return this; } __name(add2, "add"); function isEmpty() { return sources.length == 0; } __name(isEmpty, "isEmpty"); function remove(source) { sources = sources.filter(function(it) { return it !== source; }); if (!sources.length && output.readable) { output.end(); } } __name(remove, "remove"); }; } }); // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stream.js var require_stream = __commonJS({ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stream.js"(exports, module2) { "use strict"; var isStream = require_is_stream(); var getStream2 = require_get_stream(); var mergeStream = require_merge_stream(); var handleInput = /* @__PURE__ */ __name((spawned, input) => { if (input === void 0 || spawned.stdin === void 0) { return; } if (isStream(input)) { input.pipe(spawned.stdin); } else { spawned.stdin.end(input); } }, "handleInput"); var makeAllStream = /* @__PURE__ */ __name((spawned, { all }) => { if (!all || !spawned.stdout && !spawned.stderr) { return; } const mixed = mergeStream(); if (spawned.stdout) { mixed.add(spawned.stdout); } if (spawned.stderr) { mixed.add(spawned.stderr); } return mixed; }, "makeAllStream"); var getBufferedData = /* @__PURE__ */ __name(async (stream2, streamPromise) => { if (!stream2) { return; } stream2.destroy(); try { return await streamPromise; } catch (error2) { return error2.bufferedData; } }, "getBufferedData"); var getStreamPromise = /* @__PURE__ */ __name((stream2, { encoding, buffer, maxBuffer }) => { if (!stream2 || !buffer) { return; } if (encoding) { return getStream2(stream2, { encoding, maxBuffer }); } return getStream2.buffer(stream2, { maxBuffer }); }, "getStreamPromise"); var getSpawnedResult = /* @__PURE__ */ __name(async ({ stdout, stderr, all }, { encoding, buffer, maxBuffer }, processDone) => { const stdoutPromise = getStreamPromise(stdout, { encoding, buffer, maxBuffer }); const stderrPromise = getStreamPromise(stderr, { encoding, buffer, maxBuffer }); const allPromise = getStreamPromise(all, { encoding, buffer, maxBuffer: maxBuffer * 2 }); try { return await Promise.all([processDone, stdoutPromise, stderrPromise, allPromise]); } catch (error2) { return Promise.all([ { error: error2, signal: error2.signal, timedOut: error2.timedOut }, getBufferedData(stdout, stdoutPromise), getBufferedData(stderr, stderrPromise), getBufferedData(all, allPromise) ]); } }, "getSpawnedResult"); var validateInputSync = /* @__PURE__ */ __name(({ input }) => { if (isStream(input)) { throw new TypeError("The `input` option cannot be a stream in sync mode"); } }, "validateInputSync"); module2.exports = { handleInput, makeAllStream, getSpawnedResult, validateInputSync }; } }); // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/promise.js var require_promise = __commonJS({ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/promise.js"(exports, module2) { "use strict"; var nativePromisePrototype = (async () => { })().constructor.prototype; var descriptors = ["then", "catch", "finally"].map((property) => [ property, Reflect.getOwnPropertyDescriptor(nativePromisePrototype, property) ]); var mergePromise = /* @__PURE__ */ __name((spawned, promise) => { for (const [property, descriptor] of descriptors) { const value = typeof promise === "function" ? (...args) => Reflect.apply(descriptor.value, promise(), args) : descriptor.value.bind(promise); Reflect.defineProperty(spawned, property, { ...descriptor, value }); } return spawned; }, "mergePromise"); var getSpawnedPromise = /* @__PURE__ */ __name((spawned) => { return new Promise((resolve, reject) => { spawned.on("exit", (exitCode, signal) => { resolve({ exitCode, signal }); }); spawned.on("error", (error2) => { reject(error2); }); if (spawned.stdin) { spawned.stdin.on("error", (error2) => { reject(error2); }); } }); }, "getSpawnedPromise"); module2.exports = { mergePromise, getSpawnedPromise }; } }); // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/command.js var require_command = __commonJS({ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/command.js"(exports, module2) { "use strict"; var normalizeArgs = /* @__PURE__ */ __name((file, args = []) => { if (!Array.isArray(args)) { return [file]; } return [file, ...args]; }, "normalizeArgs"); var NO_ESCAPE_REGEXP = /^[\w.-]+$/; var DOUBLE_QUOTES_REGEXP = /"/g; var escapeArg = /* @__PURE__ */ __name((arg2) => { if (typeof arg2 !== "string" || NO_ESCAPE_REGEXP.test(arg2)) { return arg2; } return `"${arg2.replace(DOUBLE_QUOTES_REGEXP, '\\"')}"`; }, "escapeArg"); var joinCommand = /* @__PURE__ */ __name((file, args) => { return normalizeArgs(file, args).join(" "); }, "joinCommand"); var getEscapedCommand = /* @__PURE__ */ __name((file, args) => { return normalizeArgs(file, args).map((arg2) => escapeArg(arg2)).join(" "); }, "getEscapedCommand"); var SPACES_REGEXP = / +/g; var parseCommand = /* @__PURE__ */ __name((command) => { const tokens = []; for (const token of command.trim().split(SPACES_REGEXP)) { const previousToken = tokens[tokens.length - 1]; if (previousToken && previousToken.endsWith("\\")) { tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`; } else { tokens.push(token); } } return tokens; }, "parseCommand"); module2.exports = { joinCommand, getEscapedCommand, parseCommand }; } }); // ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js var require_execa = __commonJS({ "../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js"(exports, module2) { "use strict"; var path7 = require("path"); var childProcess = require("child_process"); var crossSpawn = require_cross_spawn(); var stripFinalNewline = require_strip_final_newline(); var npmRunPath = require_npm_run_path(); var onetime = require_onetime(); var makeError = require_error(); var normalizeStdio = require_stdio(); var { spawnedKill, spawnedCancel, setupTimeout, validateTimeout, setExitHandler } = require_kill(); var { handleInput, getSpawnedResult, makeAllStream, validateInputSync } = require_stream(); var { mergePromise, getSpawnedPromise } = require_promise(); var { joinCommand, parseCommand, getEscapedCommand } = require_command(); var DEFAULT_MAX_BUFFER = 1e3 * 1e3 * 100; var getEnv = /* @__PURE__ */ __name(({ env: envOption, extendEnv, preferLocal, localDir, execPath }) => { const env = extendEnv ? { ...process.env, ...envOption } : envOption; if (preferLocal) { return npmRunPath.env({ env, cwd: localDir, execPath }); } return env; }, "getEnv"); var handleArguments = /* @__PURE__ */ __name((file, args, options = {}) => { const parsed = crossSpawn._parse(file, args, options); file = parsed.command; args = parsed.args; options = parsed.options; options = { maxBuffer: DEFAULT_MAX_BUFFER, buffer: true, stripFinalNewline: true, extendEnv: true, preferLocal: false, localDir: options.cwd || process.cwd(), execPath: process.execPath, encoding: "utf8", reject: true, cleanup: true, all: false, windowsHide: true, ...options }; options.env = getEnv(options); options.stdio = normalizeStdio(options); if (process.platform === "win32" && path7.basename(file, ".exe") === "cmd") { args.unshift("/q"); } return { file, args, options, parsed }; }, "handleArguments"); var handleOutput = /* @__PURE__ */ __name((options, value, error2) => { if (typeof value !== "string" && !Buffer.isBuffer(value)) { return error2 === void 0 ? void 0 : ""; } if (options.stripFinalNewline) { return stripFinalNewline(value); } return value; }, "handleOutput"); var execa2 = /* @__PURE__ */ __name((file, args, options) => { const parsed = handleArguments(file, args, options); const command = joinCommand(file, args); const escapedCommand = getEscapedCommand(file, args); validateTimeout(parsed.options); let spawned; try { spawned = childProcess.spawn(parsed.file, parsed.args, parsed.options); } catch (error2) { const dummySpawned = new childProcess.ChildProcess(); const errorPromise = Promise.reject(makeError({ error: error2, stdout: "", stderr: "", all: "", command, escapedCommand, parsed, timedOut: false, isCanceled: false, killed: false })); return mergePromise(dummySpawned, errorPromise); } const spawnedPromise = getSpawnedPromise(spawned); const timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise); const processDone = setExitHandler(spawned, parsed.options, timedPromise); const context2 = { isCanceled: false }; spawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned)); spawned.cancel = spawnedCancel.bind(null, spawned, context2); const handlePromise = /* @__PURE__ */ __name(async () => { const [{ error: error2, exitCode, signal, timedOut }, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone); const stdout = handleOutput(parsed.options, stdoutResult); const stderr = handleOutput(parsed.options, stderrResult); const all = handleOutput(parsed.options, allResult); if (error2 || exitCode !== 0 || signal !== null) { const returnedError = makeError({ error: error2, exitCode, signal, stdout, stderr, all, command, escapedCommand, parsed, timedOut, isCanceled: context2.isCanceled, killed: spawned.killed }); if (!parsed.options.reject) { return returnedError; } throw returnedError; } return { command, escapedCommand, exitCode: 0, stdout, stderr, all, failed: false, timedOut: false, isCanceled: false, killed: false }; }, "handlePromise"); const handlePromiseOnce = onetime(handlePromise); handleInput(spawned, parsed.options.input); spawned.all = makeAllStream(spawned, parsed.options); return mergePromise(spawned, handlePromiseOnce); }, "execa"); module2.exports = execa2; module2.exports.sync = (file, args, options) => { const parsed = handleArguments(file, args, options); const command = joinCommand(file, args); const escapedCommand = getEscapedCommand(file, args); validateInputSync(parsed.options); let result; try { result = childProcess.spawnSync(parsed.file, parsed.args, parsed.options); } catch (error2) { throw makeError({ error: error2, stdout: "", stderr: "", all: "", command, escapedCommand, parsed, timedOut: false, isCanceled: false, killed: false }); } const stdout = handleOutput(parsed.options, result.stdout, result.error); const stderr = handleOutput(parsed.options, result.stderr, result.error); if (result.error || result.status !== 0 || result.signal !== null) { const error2 = makeError({ stdout, stderr, error: result.error, signal: result.signal, exitCode: result.status, command, escapedCommand, parsed, timedOut: result.error && result.error.code === "ETIMEDOUT", isCanceled: false, killed: result.signal !== null }); if (!parsed.options.reject) { return error2; } throw error2; } return { command, escapedCommand, exitCode: 0, stdout, stderr, failed: false, timedOut: false, isCanceled: false, killed: false }; }; module2.exports.command = (command, options) => { const [file, ...args] = parseCommand(command); return execa2(file, args, options); }; module2.exports.commandSync = (command, options) => { const [file, ...args] = parseCommand(command); return execa2.sync(file, args, options); }; module2.exports.node = (scriptPath, args, options = {}) => { if (args && !Array.isArray(args) && typeof args === "object") { options = args; args = []; } const stdio = normalizeStdio.node(options); const defaultExecArgv = process.execArgv.filter((arg2) => !arg2.startsWith("--inspect")); const { nodePath = process.execPath, nodeOptions = defaultExecArgv } = options; return execa2( nodePath, [ ...nodeOptions, scriptPath, ...Array.isArray(args) ? args : [] ], { ...options, stdin: void 0, stdout: void 0, stderr: void 0, stdio, shell: false } ); }; } }); // ../../node_modules/.pnpm/dotenv@16.0.3/node_modules/dotenv/package.json var require_package = __commonJS({ "../../node_modules/.pnpm/dotenv@16.0.3/node_modules/dotenv/package.json"(exports, module2) { module2.exports = { name: "dotenv", version: "16.0.3", description: "Loads environment variables from .env file", main: "lib/main.js", types: "lib/main.d.ts", exports: { ".": { require: "./lib/main.js", types: "./lib/main.d.ts", default: "./lib/main.js" }, "./config": "./config.js", "./config.js": "./config.js", "./lib/env-options": "./lib/env-options.js", "./lib/env-options.js": "./lib/env-options.js", "./lib/cli-options": "./lib/cli-options.js", "./lib/cli-options.js": "./lib/cli-options.js", "./package.json": "./package.json" }, scripts: { "dts-check": "tsc --project tests/types/tsconfig.json", lint: "standard", "lint-readme": "standard-markdown", pretest: "npm run lint && npm run dts-check", test: "tap tests/*.js --100 -Rspec", prerelease: "npm test", release: "standard-version" }, repository: { type: "git", url: "git://github.com/motdotla/dotenv.git" }, keywords: [ "dotenv", "env", ".env", "environment", "variables", "config", "settings" ], readmeFilename: "README.md", license: "BSD-2-Clause", devDependencies: { "@types/node": "^17.0.9", decache: "^4.6.1", dtslint: "^3.7.0", sinon: "^12.0.1", standard: "^16.0.4", "standard-markdown": "^7.1.0", "standard-version": "^9.3.2", tap: "^15.1.6", tar: "^6.1.11", typescript: "^4.5.4" }, engines: { node: ">=12" } }; } }); // ../../node_modules/.pnpm/dotenv@16.0.3/node_modules/dotenv/lib/main.js var require_main2 = __commonJS({ "../../node_modules/.pnpm/dotenv@16.0.3/node_modules/dotenv/lib/main.js"(exports, module2) { var fs11 = require("fs"); var path7 = require("path"); var os2 = require("os"); var packageJson = require_package(); var version = packageJson.version; var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg; function parse2(src) { const obj = {}; let lines = src.toString(); lines = lines.replace(/\r\n?/mg, "\n"); let match; while ((match = LINE.exec(lines)) != null) { const key = match[1]; let value = match[2] || ""; value = value.trim(); const maybeQuote = value[0]; value = value.replace(/^(['"`])([\s\S]*)\1$/mg, "$2"); if (maybeQuote === '"') { value = value.replace(/\\n/g, "\n"); value = value.replace(/\\r/g, "\r"); } obj[key] = value; } return obj; } __name(parse2, "parse"); function _log(message) { console.log(`[dotenv@${version}][DEBUG] ${message}`); } __name(_log, "_log"); function _resolveHome(envPath) { return envPath[0] === "~" ? path7.join(os2.homedir(), envPath.slice(1)) : envPath; } __name(_resolveHome, "_resolveHome"); function config2(options) { let dotenvPath = path7.resolve(process.cwd(), ".env"); let encoding = "utf8"; const debug14 = Boolean(options && options.debug); const override = Boolean(options && options.override); if (options) { if (options.path != null) { dotenvPath = _resolveHome(options.path); } if (options.encoding != null) { encoding = options.encoding; } } try { const parsed = DotenvModule.parse(fs11.readFileSync(dotenvPath, { encoding })); Object.keys(parsed).forEach(function(key) { if (!Object.prototype.hasOwnProperty.call(process.env, key)) { process.env[key] = parsed[key]; } else { if (override === true) { process.env[key] = parsed[key]; } if (debug14) { if (override === true) { _log(`"${key}" is already defined in \`process.env\` and WAS overwritten`); } else { _log(`"${key}" is already defined in \`process.env\` and was NOT overwritten`); } } } }); return { parsed }; } catch (e2) { if (debug14) { _log(`Failed to load ${dotenvPath} ${e2.message}`); } return { error: e2 }; } } __name(config2, "config"); var DotenvModule = { config: config2, parse: parse2 }; module2.exports.config = DotenvModule.config; module2.exports.parse = DotenvModule.parse; module2.exports = DotenvModule; } }); // ../../node_modules/.pnpm/arg@5.0.2/node_modules/arg/index.js var require_arg = __commonJS({ "../../node_modules/.pnpm/arg@5.0.2/node_modules/arg/index.js"(exports, module2) { var flagSymbol = Symbol("arg flag"); var ArgError = class extends Error { constructor(msg, code) { super(msg); this.name = "ArgError"; this.code = code; Object.setPrototypeOf(this, ArgError.prototype); } }; __name(ArgError, "ArgError"); function arg2(opts, { argv = process.argv.slice(2), permissive = false, stopAtPositional = false } = {}) { if (!opts) { throw new ArgError( "argument specification object is required", "ARG_CONFIG_NO_SPEC" ); } const result = { _: [] }; const aliases = {}; const handlers = {}; for (const key of Object.keys(opts)) { if (!key) { throw new ArgError( "argument key cannot be an empty string", "ARG_CONFIG_EMPTY_KEY" ); } if (key[0] !== "-") { throw new ArgError( `argument key must start with '-' but found: '${key}'`, "ARG_CONFIG_NONOPT_KEY" ); } if (key.length === 1) { throw new ArgError( `argument key must have a name; singular '-' keys are not allowed: ${key}`, "ARG_CONFIG_NONAME_KEY" ); } if (typeof opts[key] === "string") { aliases[key] = opts[key]; continue; } let type = opts[key]; let isFlag = false; if (Array.isArray(type) && type.length === 1 && typeof type[0] === "function") { const [fn] = type; type = /* @__PURE__ */ __name((value, name, prev = []) => { prev.push(fn(value, name, prev[prev.length - 1])); return prev; }, "type"); isFlag = fn === Boolean || fn[flagSymbol] === true; } else if (typeof type === "function") { isFlag = type === Boolean || type[flagSymbol] === true; } else { throw new ArgError( `type missing or not a function or valid array type: ${key}`, "ARG_CONFIG_VAD_TYPE" ); } if (key[1] !== "-" && key.length > 2) { throw new ArgError( `short argument keys (with a single hyphen) must have only one character: ${key}`, "ARG_CONFIG_SHORTOPT_TOOLONG" ); } handlers[key] = [type, isFlag]; } for (let i = 0, len = argv.length; i < len; i++) { const wholeArg = argv[i]; if (stopAtPositional && result._.length > 0) { result._ = result._.concat(argv.slice(i)); break; } if (wholeArg === "--") { result._ = result._.concat(argv.slice(i + 1)); break; } if (wholeArg.length > 1 && wholeArg[0] === "-") { const separatedArguments = wholeArg[1] === "-" || wholeArg.length === 2 ? [wholeArg] : wholeArg.slice(1).split("").map((a) => `-${a}`); for (let j = 0; j < separatedArguments.length; j++) { const arg3 = separatedArguments[j]; const [originalArgName, argStr] = arg3[1] === "-" ? arg3.split(/=(.*)/, 2) : [arg3, void 0]; let argName = originalArgName; while (argName in aliases) { argName = aliases[argName]; } if (!(argName in handlers)) { if (permissive) { result._.push(arg3); continue; } else { throw new ArgError( `unknown or unexpected option: ${originalArgName}`, "ARG_UNKNOWN_OPTION" ); } } const [type, isFlag] = handlers[argName]; if (!isFlag && j + 1 < separatedArguments.length) { throw new ArgError( `option requires argument (but was followed by another short argument): ${originalArgName}`, "ARG_MISSING_REQUIRED_SHORTARG" ); } if (isFlag) { result[argName] = type(true, argName, result[argName]); } else if (argStr === void 0) { if (argv.length < i + 2 || argv[i + 1].length > 1 && argv[i + 1][0] === "-" && !(argv[i + 1].match(/^-?\d*(\.(?=\d))?\d*$/) && (type === Number || typeof BigInt !== "undefined" && type === BigInt))) { const extended = originalArgName === argName ? "" : ` (alias for ${argName})`; throw new ArgError( `option requires argument: ${originalArgName}${extended}`, "ARG_MISSING_REQUIRED_LONGARG" ); } result[argName] = type(argv[i + 1], argName, result[argName]); ++i; } else { result[argName] = type(argStr, argName, result[argName]); } } } else { result._.push(wholeArg); } } return result; } __name(arg2, "arg"); arg2.flag = (fn) => { fn[flagSymbol] = true; return fn; }; arg2.COUNT = arg2.flag((v, name, existingCount) => (existingCount || 0) + 1); arg2.ArgError = ArgError; module2.exports = arg2; } }); // ../../node_modules/.pnpm/min-indent@1.0.1/node_modules/min-indent/index.js var require_min_indent = __commonJS({ "../../node_modules/.pnpm/min-indent@1.0.1/node_modules/min-indent/index.js"(exports, module2) { "use strict"; module2.exports = (string) => { const match = string.match(/^[ \t]*(?=\S)/gm); if (!match) { return 0; } return match.reduce((r2, a) => Math.min(r2, a.length), Infinity); }; } }); // ../../node_modules/.pnpm/strip-indent@3.0.0/node_modules/strip-indent/index.js var require_strip_indent = __commonJS({ "../../node_modules/.pnpm/strip-indent@3.0.0/node_modules/strip-indent/index.js"(exports, module2) { "use strict"; var minIndent = require_min_indent(); module2.exports = (string) => { const indent4 = minIndent(string); if (indent4 === 0) { return string; } const regex = new RegExp(`^[ \\t]{${indent4}}`, "gm"); return string.replace(regex, ""); }; } }); // ../../node_modules/.pnpm/@prisma+engines-version@4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5/node_modules/@prisma/engines-version/package.json var require_package2 = __commonJS({ "../../node_modules/.pnpm/@prisma+engines-version@4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5/node_modules/@prisma/engines-version/package.json"(exports, module2) { module2.exports = { name: "@prisma/engines-version", version: "4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5", main: "index.js", types: "index.d.ts", license: "Apache-2.0", author: "Tim Suchanek ", prisma: { enginesVersion: "ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5" }, repository: { type: "git", url: "https://github.com/prisma/engines-wrapper.git", directory: "packages/engines-version" }, devDependencies: { "@types/node": "16.11.64", typescript: "4.8.4" }, files: [ "index.js", "index.d.ts" ], scripts: { build: "tsc -d" } }; } }); // ../../node_modules/.pnpm/@prisma+engines-version@4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5/node_modules/@prisma/engines-version/index.js var require_engines_version = __commonJS({ "../../node_modules/.pnpm/@prisma+engines-version@4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5/node_modules/@prisma/engines-version/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.enginesVersion = void 0; exports.enginesVersion = require_package2().prisma.enginesVersion; } }); // ../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js var require_retry_operation = __commonJS({ "../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js"(exports, module2) { function RetryOperation(timeouts, options) { if (typeof options === "boolean") { options = { forever: options }; } this._originalTimeouts = JSON.parse(JSON.stringify(timeouts)); this._timeouts = timeouts; this._options = options || {}; this._maxRetryTime = options && options.maxRetryTime || Infinity; this._fn = null; this._errors = []; this._attempts = 1; this._operationTimeout = null; this._operationTimeoutCb = null; this._timeout = null; this._operationStart = null; this._timer = null; if (this._options.forever) { this._cachedTimeouts = this._timeouts.slice(0); } } __name(RetryOperation, "RetryOperation"); module2.exports = RetryOperation; RetryOperation.prototype.reset = function() { this._attempts = 1; this._timeouts = this._originalTimeouts.slice(0); }; RetryOperation.prototype.stop = function() { if (this._timeout) { clearTimeout(this._timeout); } if (this._timer) { clearTimeout(this._timer); } this._timeouts = []; this._cachedTimeouts = null; }; RetryOperation.prototype.retry = function(err) { if (this._timeout) { clearTimeout(this._timeout); } if (!err) { return false; } var currentTime = new Date().getTime(); if (err && currentTime - this._operationStart >= this._maxRetryTime) { this._errors.push(err); this._errors.unshift(new Error("RetryOperation timeout occurred")); return false; } this._errors.push(err); var timeout = this._timeouts.shift(); if (timeout === void 0) { if (this._cachedTimeouts) { this._errors.splice(0, this._errors.length - 1); timeout = this._cachedTimeouts.slice(-1); } else { return false; } } var self2 = this; this._timer = setTimeout(function() { self2._attempts++; if (self2._operationTimeoutCb) { self2._timeout = setTimeout(function() { self2._operationTimeoutCb(self2._attempts); }, self2._operationTimeout); if (self2._options.unref) { self2._timeout.unref(); } } self2._fn(self2._attempts); }, timeout); if (this._options.unref) { this._timer.unref(); } return true; }; RetryOperation.prototype.attempt = function(fn, timeoutOps) { this._fn = fn; if (timeoutOps) { if (timeoutOps.timeout) { this._operationTimeout = timeoutOps.timeout; } if (timeoutOps.cb) { this._operationTimeoutCb = timeoutOps.cb; } } var self2 = this; if (this._operationTimeoutCb) { this._timeout = setTimeout(function() { self2._operationTimeoutCb(); }, self2._operationTimeout); } this._operationStart = new Date().getTime(); this._fn(this._attempts); }; RetryOperation.prototype.try = function(fn) { console.log("Using RetryOperation.try() is deprecated"); this.attempt(fn); }; RetryOperation.prototype.start = function(fn) { console.log("Using RetryOperation.start() is deprecated"); this.attempt(fn); }; RetryOperation.prototype.start = RetryOperation.prototype.try; RetryOperation.prototype.errors = function() { return this._errors; }; RetryOperation.prototype.attempts = function() { return this._attempts; }; RetryOperation.prototype.mainError = function() { if (this._errors.length === 0) { return null; } var counts = {}; var mainError = null; var mainErrorCount = 0; for (var i = 0; i < this._errors.length; i++) { var error2 = this._errors[i]; var message = error2.message; var count2 = (counts[message] || 0) + 1; counts[message] = count2; if (count2 >= mainErrorCount) { mainError = error2; mainErrorCount = count2; } } return mainError; }; } }); // ../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.js var require_retry = __commonJS({ "../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.js"(exports) { var RetryOperation = require_retry_operation(); exports.operation = function(options) { var timeouts = exports.timeouts(options); return new RetryOperation(timeouts, { forever: options && (options.forever || options.retries === Infinity), unref: options && options.unref, maxRetryTime: options && options.maxRetryTime }); }; exports.timeouts = function(options) { if (options instanceof Array) { return [].concat(options); } var opts = { retries: 10, factor: 2, minTimeout: 1 * 1e3, maxTimeout: Infinity, randomize: false }; for (var key in options) { opts[key] = options[key]; } if (opts.minTimeout > opts.maxTimeout) { throw new Error("minTimeout is greater than maxTimeout"); } var timeouts = []; for (var i = 0; i < opts.retries; i++) { timeouts.push(this.createTimeout(i, opts)); } if (options && options.forever && !timeouts.length) { timeouts.push(this.createTimeout(i, opts)); } timeouts.sort(function(a, b2) { return a - b2; }); return timeouts; }; exports.createTimeout = function(attempt, opts) { var random2 = opts.randomize ? Math.random() + 1 : 1; var timeout = Math.round(random2 * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt)); timeout = Math.min(timeout, opts.maxTimeout); return timeout; }; exports.wrap = function(obj, options, methods) { if (options instanceof Array) { methods = options; options = null; } if (!methods) { methods = []; for (var key in obj) { if (typeof obj[key] === "function") { methods.push(key); } } } for (var i = 0; i < methods.length; i++) { var method = methods[i]; var original = obj[method]; obj[method] = (/* @__PURE__ */ __name(function retryWrapper(original2) { var op = exports.operation(options); var args = Array.prototype.slice.call(arguments, 1); var callback = args.pop(); args.push(function(err) { if (op.retry(err)) { return; } if (err) { arguments[0] = op.mainError(); } callback.apply(this, arguments); }); op.attempt(function() { original2.apply(obj, args); }); }, "retryWrapper")).bind(obj, original); obj[method].options = options; } }; } }); // ../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.js var require_retry2 = __commonJS({ "../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.js"(exports, module2) { module2.exports = require_retry(); } }); // ../../node_modules/.pnpm/p-retry@4.6.2/node_modules/p-retry/index.js var require_p_retry = __commonJS({ "../../node_modules/.pnpm/p-retry@4.6.2/node_modules/p-retry/index.js"(exports, module2) { "use strict"; var retry = require_retry2(); var networkErrorMsgs = [ "Failed to fetch", "NetworkError when attempting to fetch resource.", "The Internet connection appears to be offline.", "Network request failed" ]; var AbortError = class extends Error { constructor(message) { super(); if (message instanceof Error) { this.originalError = message; ({ message } = message); } else { this.originalError = new Error(message); this.originalError.stack = this.stack; } this.name = "AbortError"; this.message = message; } }; __name(AbortError, "AbortError"); var decorateErrorWithCounts = /* @__PURE__ */ __name((error2, attemptNumber, options) => { const retriesLeft = options.retries - (attemptNumber - 1); error2.attemptNumber = attemptNumber; error2.retriesLeft = retriesLeft; return error2; }, "decorateErrorWithCounts"); var isNetworkError = /* @__PURE__ */ __name((errorMessage) => networkErrorMsgs.includes(errorMessage), "isNetworkError"); var pRetry2 = /* @__PURE__ */ __name((input, options) => new Promise((resolve, reject) => { options = { onFailedAttempt: () => { }, retries: 10, ...options }; const operation = retry.operation(options); operation.attempt(async (attemptNumber) => { try { resolve(await input(attemptNumber)); } catch (error2) { if (!(error2 instanceof Error)) { reject(new TypeError(`Non-error was thrown: "${error2}". You should only throw errors.`)); return; } if (error2 instanceof AbortError) { operation.stop(); reject(error2.originalError); } else if (error2 instanceof TypeError && !isNetworkError(error2.message)) { operation.stop(); reject(error2); } else { decorateErrorWithCounts(error2, attemptNumber, options); try { await options.onFailedAttempt(error2); } catch (error3) { reject(error3); return; } if (!operation.retry(error2)) { reject(operation.mainError()); } } } }); }), "pRetry"); module2.exports = pRetry2; module2.exports.default = pRetry2; module2.exports.AbortError = AbortError; } }); // ../../node_modules/.pnpm/ansi-regex@5.0.1/node_modules/ansi-regex/index.js var require_ansi_regex = __commonJS({ "../../node_modules/.pnpm/ansi-regex@5.0.1/node_modules/ansi-regex/index.js"(exports, module2) { "use strict"; module2.exports = ({ onlyFirst = false } = {}) => { const pattern = [ "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" ].join("|"); return new RegExp(pattern, onlyFirst ? void 0 : "g"); }; } }); // ../../node_modules/.pnpm/strip-ansi@6.0.1/node_modules/strip-ansi/index.js var require_strip_ansi = __commonJS({ "../../node_modules/.pnpm/strip-ansi@6.0.1/node_modules/strip-ansi/index.js"(exports, module2) { "use strict"; var ansiRegex = require_ansi_regex(); module2.exports = (string) => typeof string === "string" ? string.replace(ansiRegex(), "") : string; } }); // ../../node_modules/.pnpm/new-github-issue-url@0.2.1/node_modules/new-github-issue-url/index.js var require_new_github_issue_url = __commonJS({ "../../node_modules/.pnpm/new-github-issue-url@0.2.1/node_modules/new-github-issue-url/index.js"(exports, module2) { "use strict"; module2.exports = (options = {}) => { let repoUrl; if (options.repoUrl) { repoUrl = options.repoUrl; } else if (options.user && options.repo) { repoUrl = `https://github.com/${options.user}/${options.repo}`; } else { throw new Error("You need to specify either the `repoUrl` option or both the `user` and `repo` options"); } const url = new URL(`${repoUrl}/issues/new`); const types = [ "body", "title", "labels", "template", "milestone", "assignee", "projects" ]; for (const type of types) { let value = options[type]; if (value === void 0) { continue; } if (type === "labels" || type === "projects") { if (!Array.isArray(value)) { throw new TypeError(`The \`${type}\` option should be an array`); } value = value.join(","); } url.searchParams.set(type, value); } return url.toString(); }; module2.exports.default = module2.exports; } }); // ../../node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.js var require_indent_string = __commonJS({ "../../node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.js"(exports, module2) { "use strict"; module2.exports = (string, count2 = 1, options) => { options = { indent: " ", includeEmptyLines: false, ...options }; if (typeof string !== "string") { throw new TypeError( `Expected \`input\` to be a \`string\`, got \`${typeof string}\`` ); } if (typeof count2 !== "number") { throw new TypeError( `Expected \`count\` to be a \`number\`, got \`${typeof count2}\`` ); } if (typeof options.indent !== "string") { throw new TypeError( `Expected \`options.indent\` to be a \`string\`, got \`${typeof options.indent}\`` ); } if (count2 === 0) { return string; } const regex = options.includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; return string.replace(regex, options.indent.repeat(count2)); }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/symbols.js var require_symbols = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/symbols.js"(exports, module2) { module2.exports = { kClose: Symbol("close"), kDestroy: Symbol("destroy"), kDispatch: Symbol("dispatch"), kUrl: Symbol("url"), kWriting: Symbol("writing"), kResuming: Symbol("resuming"), kQueue: Symbol("queue"), kConnect: Symbol("connect"), kConnecting: Symbol("connecting"), kHeadersList: Symbol("headers list"), kKeepAliveDefaultTimeout: Symbol("default keep alive timeout"), kKeepAliveMaxTimeout: Symbol("max keep alive timeout"), kKeepAliveTimeoutThreshold: Symbol("keep alive timeout threshold"), kKeepAliveTimeoutValue: Symbol("keep alive timeout"), kKeepAlive: Symbol("keep alive"), kHeadersTimeout: Symbol("headers timeout"), kBodyTimeout: Symbol("body timeout"), kServerName: Symbol("server name"), kHost: Symbol("host"), kNoRef: Symbol("no ref"), kBodyUsed: Symbol("used"), kRunning: Symbol("running"), kBlocking: Symbol("blocking"), kPending: Symbol("pending"), kSize: Symbol("size"), kBusy: Symbol("busy"), kQueued: Symbol("queued"), kFree: Symbol("free"), kConnected: Symbol("connected"), kClosed: Symbol("closed"), kNeedDrain: Symbol("need drain"), kReset: Symbol("reset"), kDestroyed: Symbol("destroyed"), kMaxHeadersSize: Symbol("max headers size"), kRunningIdx: Symbol("running index"), kPendingIdx: Symbol("pending index"), kError: Symbol("error"), kClients: Symbol("clients"), kClient: Symbol("client"), kParser: Symbol("parser"), kOnDestroyed: Symbol("destroy callbacks"), kPipelining: Symbol("pipelinig"), kSocket: Symbol("socket"), kHostHeader: Symbol("host header"), kConnector: Symbol("connector"), kStrictContentLength: Symbol("strict content length"), kMaxRedirections: Symbol("maxRedirections"), kMaxRequests: Symbol("maxRequestsPerClient"), kProxy: Symbol("proxy agent options"), kCounter: Symbol("socket request counter"), kInterceptors: Symbol("dispatch interceptors") }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/errors.js var require_errors = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/errors.js"(exports, module2) { "use strict"; var UndiciError = class extends Error { constructor(message) { super(message); this.name = "UndiciError"; this.code = "UND_ERR"; } }; __name(UndiciError, "UndiciError"); var ConnectTimeoutError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, ConnectTimeoutError); this.name = "ConnectTimeoutError"; this.message = message || "Connect Timeout Error"; this.code = "UND_ERR_CONNECT_TIMEOUT"; } }; __name(ConnectTimeoutError, "ConnectTimeoutError"); var HeadersTimeoutError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, HeadersTimeoutError); this.name = "HeadersTimeoutError"; this.message = message || "Headers Timeout Error"; this.code = "UND_ERR_HEADERS_TIMEOUT"; } }; __name(HeadersTimeoutError, "HeadersTimeoutError"); var HeadersOverflowError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, HeadersOverflowError); this.name = "HeadersOverflowError"; this.message = message || "Headers Overflow Error"; this.code = "UND_ERR_HEADERS_OVERFLOW"; } }; __name(HeadersOverflowError, "HeadersOverflowError"); var BodyTimeoutError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, BodyTimeoutError); this.name = "BodyTimeoutError"; this.message = message || "Body Timeout Error"; this.code = "UND_ERR_BODY_TIMEOUT"; } }; __name(BodyTimeoutError, "BodyTimeoutError"); var ResponseStatusCodeError = class extends UndiciError { constructor(message, statusCode, headers, body) { super(message); Error.captureStackTrace(this, ResponseStatusCodeError); this.name = "ResponseStatusCodeError"; this.message = message || "Response Status Code Error"; this.code = "UND_ERR_RESPONSE_STATUS_CODE"; this.body = body; this.status = statusCode; this.statusCode = statusCode; this.headers = headers; } }; __name(ResponseStatusCodeError, "ResponseStatusCodeError"); var InvalidArgumentError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, InvalidArgumentError); this.name = "InvalidArgumentError"; this.message = message || "Invalid Argument Error"; this.code = "UND_ERR_INVALID_ARG"; } }; __name(InvalidArgumentError, "InvalidArgumentError"); var InvalidReturnValueError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, InvalidReturnValueError); this.name = "InvalidReturnValueError"; this.message = message || "Invalid Return Value Error"; this.code = "UND_ERR_INVALID_RETURN_VALUE"; } }; __name(InvalidReturnValueError, "InvalidReturnValueError"); var RequestAbortedError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, RequestAbortedError); this.name = "AbortError"; this.message = message || "Request aborted"; this.code = "UND_ERR_ABORTED"; } }; __name(RequestAbortedError, "RequestAbortedError"); var InformationalError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, InformationalError); this.name = "InformationalError"; this.message = message || "Request information"; this.code = "UND_ERR_INFO"; } }; __name(InformationalError, "InformationalError"); var RequestContentLengthMismatchError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, RequestContentLengthMismatchError); this.name = "RequestContentLengthMismatchError"; this.message = message || "Request body length does not match content-length header"; this.code = "UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"; } }; __name(RequestContentLengthMismatchError, "RequestContentLengthMismatchError"); var ResponseContentLengthMismatchError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, ResponseContentLengthMismatchError); this.name = "ResponseContentLengthMismatchError"; this.message = message || "Response body length does not match content-length header"; this.code = "UND_ERR_RES_CONTENT_LENGTH_MISMATCH"; } }; __name(ResponseContentLengthMismatchError, "ResponseContentLengthMismatchError"); var ClientDestroyedError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, ClientDestroyedError); this.name = "ClientDestroyedError"; this.message = message || "The client is destroyed"; this.code = "UND_ERR_DESTROYED"; } }; __name(ClientDestroyedError, "ClientDestroyedError"); var ClientClosedError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, ClientClosedError); this.name = "ClientClosedError"; this.message = message || "The client is closed"; this.code = "UND_ERR_CLOSED"; } }; __name(ClientClosedError, "ClientClosedError"); var SocketError = class extends UndiciError { constructor(message, socket) { super(message); Error.captureStackTrace(this, SocketError); this.name = "SocketError"; this.message = message || "Socket error"; this.code = "UND_ERR_SOCKET"; this.socket = socket; } }; __name(SocketError, "SocketError"); var NotSupportedError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, NotSupportedError); this.name = "NotSupportedError"; this.message = message || "Not supported error"; this.code = "UND_ERR_NOT_SUPPORTED"; } }; __name(NotSupportedError, "NotSupportedError"); var BalancedPoolMissingUpstreamError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, NotSupportedError); this.name = "MissingUpstreamError"; this.message = message || "No upstream has been added to the BalancedPool"; this.code = "UND_ERR_BPL_MISSING_UPSTREAM"; } }; __name(BalancedPoolMissingUpstreamError, "BalancedPoolMissingUpstreamError"); var HTTPParserError = class extends Error { constructor(message, code, data) { super(message); Error.captureStackTrace(this, HTTPParserError); this.name = "HTTPParserError"; this.code = code ? `HPE_${code}` : void 0; this.data = data ? data.toString() : void 0; } }; __name(HTTPParserError, "HTTPParserError"); module2.exports = { HTTPParserError, UndiciError, HeadersTimeoutError, HeadersOverflowError, BodyTimeoutError, RequestContentLengthMismatchError, ConnectTimeoutError, ResponseStatusCodeError, InvalidArgumentError, InvalidReturnValueError, RequestAbortedError, ClientDestroyedError, ClientClosedError, InformationalError, SocketError, NotSupportedError, ResponseContentLengthMismatchError, BalancedPoolMissingUpstreamError }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/util.js var require_util2 = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/util.js"(exports, module2) { "use strict"; var assert = require("assert"); var { kDestroyed, kBodyUsed } = require_symbols(); var { IncomingMessage } = require("http"); var stream2 = require("stream"); var net2 = require("net"); var { InvalidArgumentError } = require_errors(); var { Blob } = require("buffer"); var nodeUtil = require("util"); var { stringify: stringify2 } = require("querystring"); function nop() { } __name(nop, "nop"); function isStream(obj) { return obj && typeof obj.pipe === "function"; } __name(isStream, "isStream"); function isBlobLike(object) { return Blob && object instanceof Blob || object && typeof object === "object" && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && /^(Blob|File)$/.test(object[Symbol.toStringTag]); } __name(isBlobLike, "isBlobLike"); function buildURL(url, queryParams) { if (url.includes("?") || url.includes("#")) { throw new Error('Query params cannot be passed when url already contains "?" or "#".'); } const stringified = stringify2(queryParams); if (stringified) { url += "?" + stringified; } return url; } __name(buildURL, "buildURL"); function parseURL(url) { if (typeof url === "string") { url = new URL(url); } if (!url || typeof url !== "object") { throw new InvalidArgumentError("invalid url"); } if (url.port != null && url.port !== "" && !Number.isFinite(parseInt(url.port))) { throw new InvalidArgumentError("invalid port"); } if (url.path != null && typeof url.path !== "string") { throw new InvalidArgumentError("invalid path"); } if (url.pathname != null && typeof url.pathname !== "string") { throw new InvalidArgumentError("invalid pathname"); } if (url.hostname != null && typeof url.hostname !== "string") { throw new InvalidArgumentError("invalid hostname"); } if (url.origin != null && typeof url.origin !== "string") { throw new InvalidArgumentError("invalid origin"); } if (!/^https?:/.test(url.origin || url.protocol)) { throw new InvalidArgumentError("invalid protocol"); } if (!(url instanceof URL)) { const port = url.port != null ? url.port : url.protocol === "https:" ? 443 : 80; let origin = url.origin != null ? url.origin : `${url.protocol}//${url.hostname}:${port}`; let path7 = url.path != null ? url.path : `${url.pathname || ""}${url.search || ""}`; if (origin.endsWith("/")) { origin = origin.substring(0, origin.length - 1); } if (path7 && !path7.startsWith("/")) { path7 = `/${path7}`; } url = new URL(origin + path7); } return url; } __name(parseURL, "parseURL"); function parseOrigin(url) { url = parseURL(url); if (url.pathname !== "/" || url.search || url.hash) { throw new InvalidArgumentError("invalid url"); } return url; } __name(parseOrigin, "parseOrigin"); function getHostname(host) { if (host[0] === "[") { const idx2 = host.indexOf("]"); assert(idx2 !== -1); return host.substr(1, idx2 - 1); } const idx = host.indexOf(":"); if (idx === -1) return host; return host.substr(0, idx); } __name(getHostname, "getHostname"); function getServerName(host) { if (!host) { return null; } assert.strictEqual(typeof host, "string"); const servername = getHostname(host); if (net2.isIP(servername)) { return ""; } return servername; } __name(getServerName, "getServerName"); function deepClone2(obj) { return JSON.parse(JSON.stringify(obj)); } __name(deepClone2, "deepClone"); function isAsyncIterable(obj) { return !!(obj != null && typeof obj[Symbol.asyncIterator] === "function"); } __name(isAsyncIterable, "isAsyncIterable"); function isIterable(obj) { return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function")); } __name(isIterable, "isIterable"); function bodyLength(body) { if (body == null) { return 0; } else if (isStream(body)) { const state = body._readableState; return state && state.ended === true && Number.isFinite(state.length) ? state.length : null; } else if (isBlobLike(body)) { return body.size != null ? body.size : null; } else if (isBuffer(body)) { return body.byteLength; } return null; } __name(bodyLength, "bodyLength"); function isDestroyed(stream3) { return !stream3 || !!(stream3.destroyed || stream3[kDestroyed]); } __name(isDestroyed, "isDestroyed"); function isReadableAborted(stream3) { const state = stream3 && stream3._readableState; return isDestroyed(stream3) && state && !state.endEmitted; } __name(isReadableAborted, "isReadableAborted"); function destroy(stream3, err) { if (!isStream(stream3) || isDestroyed(stream3)) { return; } if (typeof stream3.destroy === "function") { if (Object.getPrototypeOf(stream3).constructor === IncomingMessage) { stream3.socket = null; } stream3.destroy(err); } else if (err) { process.nextTick((stream4, err2) => { stream4.emit("error", err2); }, stream3, err); } if (stream3.destroyed !== true) { stream3[kDestroyed] = true; } } __name(destroy, "destroy"); var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; function parseKeepAliveTimeout(val) { const m2 = val.toString().match(KEEPALIVE_TIMEOUT_EXPR); return m2 ? parseInt(m2[1], 10) * 1e3 : null; } __name(parseKeepAliveTimeout, "parseKeepAliveTimeout"); function parseHeaders(headers, obj = {}) { for (let i = 0; i < headers.length; i += 2) { const key = headers[i].toString().toLowerCase(); let val = obj[key]; if (!val) { if (Array.isArray(headers[i + 1])) { obj[key] = headers[i + 1]; } else { obj[key] = headers[i + 1].toString(); } } else { if (!Array.isArray(val)) { val = [val]; obj[key] = val; } val.push(headers[i + 1].toString()); } } return obj; } __name(parseHeaders, "parseHeaders"); function parseRawHeaders(headers) { return headers.map((header) => header.toString()); } __name(parseRawHeaders, "parseRawHeaders"); function isBuffer(buffer) { return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); } __name(isBuffer, "isBuffer"); function validateHandler(handler, method, upgrade) { if (!handler || typeof handler !== "object") { throw new InvalidArgumentError("handler must be an object"); } if (typeof handler.onConnect !== "function") { throw new InvalidArgumentError("invalid onConnect method"); } if (typeof handler.onError !== "function") { throw new InvalidArgumentError("invalid onError method"); } if (typeof handler.onBodySent !== "function" && handler.onBodySent !== void 0) { throw new InvalidArgumentError("invalid onBodySent method"); } if (upgrade || method === "CONNECT") { if (typeof handler.onUpgrade !== "function") { throw new InvalidArgumentError("invalid onUpgrade method"); } } else { if (typeof handler.onHeaders !== "function") { throw new InvalidArgumentError("invalid onHeaders method"); } if (typeof handler.onData !== "function") { throw new InvalidArgumentError("invalid onData method"); } if (typeof handler.onComplete !== "function") { throw new InvalidArgumentError("invalid onComplete method"); } } } __name(validateHandler, "validateHandler"); function isDisturbed(body) { return !!(body && (stream2.isDisturbed ? stream2.isDisturbed(body) || body[kBodyUsed] : body[kBodyUsed] || body.readableDidRead || body._readableState && body._readableState.dataEmitted || isReadableAborted(body))); } __name(isDisturbed, "isDisturbed"); function isErrored(body) { return !!(body && (stream2.isErrored ? stream2.isErrored(body) : /state: 'errored'/.test( nodeUtil.inspect(body) ))); } __name(isErrored, "isErrored"); function isReadable(body) { return !!(body && (stream2.isReadable ? stream2.isReadable(body) : /state: 'readable'/.test( nodeUtil.inspect(body) ))); } __name(isReadable, "isReadable"); function getSocketInfo(socket) { return { localAddress: socket.localAddress, localPort: socket.localPort, remoteAddress: socket.remoteAddress, remotePort: socket.remotePort, remoteFamily: socket.remoteFamily, timeout: socket.timeout, bytesWritten: socket.bytesWritten, bytesRead: socket.bytesRead }; } __name(getSocketInfo, "getSocketInfo"); var ReadableStream; function ReadableStreamFrom(iterable) { if (!ReadableStream) { ReadableStream = require("stream/web").ReadableStream; } if (ReadableStream.from) { return ReadableStream.from(iterable); } let iterator; return new ReadableStream( { async start() { iterator = iterable[Symbol.asyncIterator](); }, async pull(controller) { const { done, value } = await iterator.next(); if (done) { queueMicrotask(() => { controller.close(); }); } else { const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); controller.enqueue(new Uint8Array(buf)); } return controller.desiredSize > 0; }, async cancel(reason) { await iterator.return(); } }, 0 ); } __name(ReadableStreamFrom, "ReadableStreamFrom"); function isFormDataLike(chunk) { return chunk && chunk.constructor && chunk.constructor.name === "FormData"; } __name(isFormDataLike, "isFormDataLike"); var kEnumerableProperty = /* @__PURE__ */ Object.create(null); kEnumerableProperty.enumerable = true; module2.exports = { kEnumerableProperty, nop, isDisturbed, isErrored, isReadable, toUSVString: nodeUtil.toUSVString || ((val) => `${val}`), isReadableAborted, isBlobLike, parseOrigin, parseURL, getServerName, isStream, isIterable, isAsyncIterable, isDestroyed, parseRawHeaders, parseHeaders, parseKeepAliveTimeout, destroy, bodyLength, deepClone: deepClone2, ReadableStreamFrom, isBuffer, validateHandler, getSocketInfo, isFormDataLike, buildURL }; } }); // ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/utils.js var require_utils = __commonJS({ "../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/utils.js"(exports, module2) { "use strict"; function parseContentType(str) { if (str.length === 0) return; const params = /* @__PURE__ */ Object.create(null); let i = 0; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (TOKEN[code] !== 1) { if (code !== 47 || i === 0) return; break; } } if (i === str.length) return; const type = str.slice(0, i).toLowerCase(); const subtypeStart = ++i; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (TOKEN[code] !== 1) { if (i === subtypeStart) return; if (parseContentTypeParams(str, i, params) === void 0) return; break; } } if (i === subtypeStart) return; const subtype = str.slice(subtypeStart, i).toLowerCase(); return { type, subtype, params }; } __name(parseContentType, "parseContentType"); function parseContentTypeParams(str, i, params) { while (i < str.length) { for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (code !== 32 && code !== 9) break; } if (i === str.length) break; if (str.charCodeAt(i++) !== 59) return; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (code !== 32 && code !== 9) break; } if (i === str.length) return; let name; const nameStart = i; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (TOKEN[code] !== 1) { if (code !== 61) return; break; } } if (i === str.length) return; name = str.slice(nameStart, i); ++i; if (i === str.length) return; let value = ""; let valueStart; if (str.charCodeAt(i) === 34) { valueStart = ++i; let escaping = false; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (code === 92) { if (escaping) { valueStart = i; escaping = false; } else { value += str.slice(valueStart, i); escaping = true; } continue; } if (code === 34) { if (escaping) { valueStart = i; escaping = false; continue; } value += str.slice(valueStart, i); break; } if (escaping) { valueStart = i - 1; escaping = false; } if (QDTEXT[code] !== 1) return; } if (i === str.length) return; ++i; } else { valueStart = i; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (TOKEN[code] !== 1) { if (i === valueStart) return; break; } } value = str.slice(valueStart, i); } name = name.toLowerCase(); if (params[name] === void 0) params[name] = value; } return params; } __name(parseContentTypeParams, "parseContentTypeParams"); function parseDisposition(str, defDecoder) { if (str.length === 0) return; const params = /* @__PURE__ */ Object.create(null); let i = 0; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (TOKEN[code] !== 1) { if (parseDispositionParams(str, i, params, defDecoder) === void 0) return; break; } } const type = str.slice(0, i).toLowerCase(); return { type, params }; } __name(parseDisposition, "parseDisposition"); function parseDispositionParams(str, i, params, defDecoder) { while (i < str.length) { for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (code !== 32 && code !== 9) break; } if (i === str.length) break; if (str.charCodeAt(i++) !== 59) return; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (code !== 32 && code !== 9) break; } if (i === str.length) return; let name; const nameStart = i; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (TOKEN[code] !== 1) { if (code === 61) break; return; } } if (i === str.length) return; let value = ""; let valueStart; let charset; name = str.slice(nameStart, i); if (name.charCodeAt(name.length - 1) === 42) { const charsetStart = ++i; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (CHARSET[code] !== 1) { if (code !== 39) return; break; } } if (i === str.length) return; charset = str.slice(charsetStart, i); ++i; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (code === 39) break; } if (i === str.length) return; ++i; if (i === str.length) return; valueStart = i; let encode = 0; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (EXTENDED_VALUE[code] !== 1) { if (code === 37) { let hexUpper; let hexLower; if (i + 2 < str.length && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1 && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) { const byteVal = (hexUpper << 4) + hexLower; value += str.slice(valueStart, i); value += String.fromCharCode(byteVal); i += 2; valueStart = i + 1; if (byteVal >= 128) encode = 2; else if (encode === 0) encode = 1; continue; } return; } break; } } value += str.slice(valueStart, i); value = convertToUTF8(value, charset, encode); if (value === void 0) return; } else { ++i; if (i === str.length) return; if (str.charCodeAt(i) === 34) { valueStart = ++i; let escaping = false; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (code === 92) { if (escaping) { valueStart = i; escaping = false; } else { value += str.slice(valueStart, i); escaping = true; } continue; } if (code === 34) { if (escaping) { valueStart = i; escaping = false; continue; } value += str.slice(valueStart, i); break; } if (escaping) { valueStart = i - 1; escaping = false; } if (QDTEXT[code] !== 1) return; } if (i === str.length) return; ++i; } else { valueStart = i; for (; i < str.length; ++i) { const code = str.charCodeAt(i); if (TOKEN[code] !== 1) { if (i === valueStart) return; break; } } value = str.slice(valueStart, i); } value = defDecoder(value, 2); if (value === void 0) return; } name = name.toLowerCase(); if (params[name] === void 0) params[name] = value; } return params; } __name(parseDispositionParams, "parseDispositionParams"); function getDecoder(charset) { let lc; while (true) { switch (charset) { case "utf-8": case "utf8": return decoders.utf8; case "latin1": case "ascii": case "us-ascii": case "iso-8859-1": case "iso8859-1": case "iso88591": case "iso_8859-1": case "windows-1252": case "iso_8859-1:1987": case "cp1252": case "x-cp1252": return decoders.latin1; case "utf16le": case "utf-16le": case "ucs2": case "ucs-2": return decoders.utf16le; case "base64": return decoders.base64; default: if (lc === void 0) { lc = true; charset = charset.toLowerCase(); continue; } return decoders.other.bind(charset); } } } __name(getDecoder, "getDecoder"); var decoders = { utf8: (data, hint) => { if (data.length === 0) return ""; if (typeof data === "string") { if (hint < 2) return data; data = Buffer.from(data, "latin1"); } return data.utf8Slice(0, data.length); }, latin1: (data, hint) => { if (data.length === 0) return ""; if (typeof data === "string") return data; return data.latin1Slice(0, data.length); }, utf16le: (data, hint) => { if (data.length === 0) return ""; if (typeof data === "string") data = Buffer.from(data, "latin1"); return data.ucs2Slice(0, data.length); }, base64: (data, hint) => { if (data.length === 0) return ""; if (typeof data === "string") data = Buffer.from(data, "latin1"); return data.base64Slice(0, data.length); }, other: (data, hint) => { if (data.length === 0) return ""; if (typeof data === "string") data = Buffer.from(data, "latin1"); try { const decoder = new TextDecoder(exports); return decoder.decode(data); } catch { } } }; function convertToUTF8(data, charset, hint) { const decode = getDecoder(charset); if (decode) return decode(data, hint); } __name(convertToUTF8, "convertToUTF8"); function basename(path7) { if (typeof path7 !== "string") return ""; for (let i = path7.length - 1; i >= 0; --i) { switch (path7.charCodeAt(i)) { case 47: case 92: path7 = path7.slice(i + 1); return path7 === ".." || path7 === "." ? "" : path7; } } return path7 === ".." || path7 === "." ? "" : path7; } __name(basename, "basename"); var TOKEN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; var QDTEXT = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; var CHARSET = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; var EXTENDED_VALUE = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; var HEX_VALUES = [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ]; module2.exports = { basename, convertToUTF8, getDecoder, parseContentType, parseDisposition }; } }); // ../../node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js var require_sbmh = __commonJS({ "../../node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js"(exports, module2) { "use strict"; function memcmp(buf1, pos1, buf2, pos2, num) { for (let i = 0; i < num; ++i) { if (buf1[pos1 + i] !== buf2[pos2 + i]) return false; } return true; } __name(memcmp, "memcmp"); var SBMH = class { constructor(needle, cb) { if (typeof cb !== "function") throw new Error("Missing match callback"); if (typeof needle === "string") needle = Buffer.from(needle); else if (!Buffer.isBuffer(needle)) throw new Error(`Expected Buffer for needle, got ${typeof needle}`); const needleLen = needle.length; this.maxMatches = Infinity; this.matches = 0; this._cb = cb; this._lookbehindSize = 0; this._needle = needle; this._bufPos = 0; this._lookbehind = Buffer.allocUnsafe(needleLen); this._occ = [ needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen, needleLen ]; if (needleLen > 1) { for (let i = 0; i < needleLen - 1; ++i) this._occ[needle[i]] = needleLen - 1 - i; } } reset() { this.matches = 0; this._lookbehindSize = 0; this._bufPos = 0; } push(chunk, pos) { let result; if (!Buffer.isBuffer(chunk)) chunk = Buffer.from(chunk, "latin1"); const chunkLen = chunk.length; this._bufPos = pos || 0; while (result !== chunkLen && this.matches < this.maxMatches) result = feed(this, chunk); return result; } destroy() { const lbSize = this._lookbehindSize; if (lbSize) this._cb(false, this._lookbehind, 0, lbSize, false); this.reset(); } }; __name(SBMH, "SBMH"); function feed(self2, data) { const len = data.length; const needle = self2._needle; const needleLen = needle.length; let pos = -self2._lookbehindSize; const lastNeedleCharPos = needleLen - 1; const lastNeedleChar = needle[lastNeedleCharPos]; const end = len - needleLen; const occ = self2._occ; const lookbehind = self2._lookbehind; if (pos < 0) { while (pos < 0 && pos <= end) { const nextPos = pos + lastNeedleCharPos; const ch = nextPos < 0 ? lookbehind[self2._lookbehindSize + nextPos] : data[nextPos]; if (ch === lastNeedleChar && matchNeedle(self2, data, pos, lastNeedleCharPos)) { self2._lookbehindSize = 0; ++self2.matches; if (pos > -self2._lookbehindSize) self2._cb(true, lookbehind, 0, self2._lookbehindSize + pos, false); else self2._cb(true, void 0, 0, 0, true); return self2._bufPos = pos + needleLen; } pos += occ[ch]; } while (pos < 0 && !matchNeedle(self2, data, pos, len - pos)) ++pos; if (pos < 0) { const bytesToCutOff = self2._lookbehindSize + pos; if (bytesToCutOff > 0) { self2._cb(false, lookbehind, 0, bytesToCutOff, false); } self2._lookbehindSize -= bytesToCutOff; lookbehind.copy(lookbehind, 0, bytesToCutOff, self2._lookbehindSize); lookbehind.set(data, self2._lookbehindSize); self2._lookbehindSize += len; self2._bufPos = len; return len; } self2._cb(false, lookbehind, 0, self2._lookbehindSize, false); self2._lookbehindSize = 0; } pos += self2._bufPos; const firstNeedleChar = needle[0]; while (pos <= end) { const ch = data[pos + lastNeedleCharPos]; if (ch === lastNeedleChar && data[pos] === firstNeedleChar && memcmp(needle, 0, data, pos, lastNeedleCharPos)) { ++self2.matches; if (pos > 0) self2._cb(true, data, self2._bufPos, pos, true); else self2._cb(true, void 0, 0, 0, true); return self2._bufPos = pos + needleLen; } pos += occ[ch]; } while (pos < len) { if (data[pos] !== firstNeedleChar || !memcmp(data, pos, needle, 0, len - pos)) { ++pos; continue; } data.copy(lookbehind, 0, pos, len); self2._lookbehindSize = len - pos; break; } if (pos > 0) self2._cb(false, data, self2._bufPos, pos < len ? pos : len, true); self2._bufPos = len; return len; } __name(feed, "feed"); function matchNeedle(self2, data, pos, len) { const lb = self2._lookbehind; const lbSize = self2._lookbehindSize; const needle = self2._needle; for (let i = 0; i < len; ++i, ++pos) { const ch = pos < 0 ? lb[lbSize + pos] : data[pos]; if (ch !== needle[i]) return false; } return true; } __name(matchNeedle, "matchNeedle"); module2.exports = SBMH; } }); // ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js var require_multipart = __commonJS({ "../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js"(exports, module2) { "use strict"; var { Readable, Writable } = require("stream"); var StreamSearch = require_sbmh(); var { basename, convertToUTF8, getDecoder, parseContentType, parseDisposition } = require_utils(); var BUF_CRLF = Buffer.from("\r\n"); var BUF_CR = Buffer.from("\r"); var BUF_DASH = Buffer.from("-"); function noop() { } __name(noop, "noop"); var MAX_HEADER_PAIRS = 2e3; var MAX_HEADER_SIZE = 16 * 1024; var HPARSER_NAME = 0; var HPARSER_PRE_OWS = 1; var HPARSER_VALUE = 2; var HeaderParser = class { constructor(cb) { this.header = /* @__PURE__ */ Object.create(null); this.pairCount = 0; this.byteCount = 0; this.state = HPARSER_NAME; this.name = ""; this.value = ""; this.crlf = 0; this.cb = cb; } reset() { this.header = /* @__PURE__ */ Object.create(null); this.pairCount = 0; this.byteCount = 0; this.state = HPARSER_NAME; this.name = ""; this.value = ""; this.crlf = 0; } push(chunk, pos, end) { let start = pos; while (pos < end) { switch (this.state) { case HPARSER_NAME: { let done = false; for (; pos < end; ++pos) { if (this.byteCount === MAX_HEADER_SIZE) return -1; ++this.byteCount; const code = chunk[pos]; if (TOKEN[code] !== 1) { if (code !== 58) return -1; this.name += chunk.latin1Slice(start, pos); if (this.name.length === 0) return -1; ++pos; done = true; this.state = HPARSER_PRE_OWS; break; } } if (!done) { this.name += chunk.latin1Slice(start, pos); break; } } case HPARSER_PRE_OWS: { let done = false; for (; pos < end; ++pos) { if (this.byteCount === MAX_HEADER_SIZE) return -1; ++this.byteCount; const code = chunk[pos]; if (code !== 32 && code !== 9) { start = pos; done = true; this.state = HPARSER_VALUE; break; } } if (!done) break; } case HPARSER_VALUE: switch (this.crlf) { case 0: for (; pos < end; ++pos) { if (this.byteCount === MAX_HEADER_SIZE) return -1; ++this.byteCount; const code = chunk[pos]; if (FIELD_VCHAR[code] !== 1) { if (code !== 13) return -1; ++this.crlf; break; } } this.value += chunk.latin1Slice(start, pos++); break; case 1: if (this.byteCount === MAX_HEADER_SIZE) return -1; ++this.byteCount; if (chunk[pos++] !== 10) return -1; ++this.crlf; break; case 2: { if (this.byteCount === MAX_HEADER_SIZE) return -1; ++this.byteCount; const code = chunk[pos]; if (code === 32 || code === 9) { start = pos; this.crlf = 0; } else { if (++this.pairCount < MAX_HEADER_PAIRS) { this.name = this.name.toLowerCase(); if (this.header[this.name] === void 0) this.header[this.name] = [this.value]; else this.header[this.name].push(this.value); } if (code === 13) { ++this.crlf; ++pos; } else { start = pos; this.crlf = 0; this.state = HPARSER_NAME; this.name = ""; this.value = ""; } } break; } case 3: { if (this.byteCount === MAX_HEADER_SIZE) return -1; ++this.byteCount; if (chunk[pos++] !== 10) return -1; const header = this.header; this.reset(); this.cb(header); return pos; } } break; } } return pos; } }; __name(HeaderParser, "HeaderParser"); var FileStream = class extends Readable { constructor(opts, owner) { super(opts); this.truncated = false; this._readcb = null; this.once("end", () => { this._read(); if (--owner._fileEndsLeft === 0 && owner._finalcb) { const cb = owner._finalcb; owner._finalcb = null; process.nextTick(cb); } }); } _read(n2) { const cb = this._readcb; if (cb) { this._readcb = null; cb(); } } }; __name(FileStream, "FileStream"); var ignoreData = { push: (chunk, pos) => { }, destroy: () => { } }; function callAndUnsetCb(self2, err) { const cb = self2._writecb; self2._writecb = null; if (err) self2.destroy(err); else if (cb) cb(); } __name(callAndUnsetCb, "callAndUnsetCb"); function nullDecoder(val, hint) { return val; } __name(nullDecoder, "nullDecoder"); var Multipart = class extends Writable { constructor(cfg) { const streamOpts = { autoDestroy: true, emitClose: true, highWaterMark: typeof cfg.highWaterMark === "number" ? cfg.highWaterMark : void 0 }; super(streamOpts); if (!cfg.conType.params || typeof cfg.conType.params.boundary !== "string") throw new Error("Multipart: Boundary not found"); const boundary = cfg.conType.params.boundary; const paramDecoder = typeof cfg.defParamCharset === "string" && cfg.defParamCharset ? getDecoder(cfg.defParamCharset) : nullDecoder; const defCharset = cfg.defCharset || "utf8"; const preservePath = cfg.preservePath; const fileOpts = { autoDestroy: true, emitClose: true, highWaterMark: typeof cfg.fileHwm === "number" ? cfg.fileHwm : void 0 }; const limits = cfg.limits; const fieldSizeLimit = limits && typeof limits.fieldSize === "number" ? limits.fieldSize : 1 * 1024 * 1024; const fileSizeLimit = limits && typeof limits.fileSize === "number" ? limits.fileSize : Infinity; const filesLimit = limits && typeof limits.files === "number" ? limits.files : Infinity; const fieldsLimit = limits && typeof limits.fields === "number" ? limits.fields : Infinity; const partsLimit = limits && typeof limits.parts === "number" ? limits.parts : Infinity; let parts = -1; let fields = 0; let files = 0; let skipPart = false; this._fileEndsLeft = 0; this._fileStream = void 0; this._complete = false; let fileSize = 0; let field; let fieldSize = 0; let partCharset; let partEncoding; let partType; let partName; let partTruncated = false; let hitFilesLimit = false; let hitFieldsLimit = false; this._hparser = null; const hparser = new HeaderParser((header) => { this._hparser = null; skipPart = false; partType = "text/plain"; partCharset = defCharset; partEncoding = "7bit"; partName = void 0; partTruncated = false; let filename; if (!header["content-disposition"]) { skipPart = true; return; } const disp = parseDisposition( header["content-disposition"][0], paramDecoder ); if (!disp || disp.type !== "form-data") { skipPart = true; return; } if (disp.params) { if (disp.params.name) partName = disp.params.name; if (disp.params["filename*"]) filename = disp.params["filename*"]; else if (disp.params.filename) filename = disp.params.filename; if (filename !== void 0 && !preservePath) filename = basename(filename); } if (header["content-type"]) { const conType = parseContentType(header["content-type"][0]); if (conType) { partType = `${conType.type}/${conType.subtype}`; if (conType.params && typeof conType.params.charset === "string") partCharset = conType.params.charset.toLowerCase(); } } if (header["content-transfer-encoding"]) partEncoding = header["content-transfer-encoding"][0].toLowerCase(); if (partType === "application/octet-stream" || filename !== void 0) { if (files === filesLimit) { if (!hitFilesLimit) { hitFilesLimit = true; this.emit("filesLimit"); } skipPart = true; return; } ++files; if (this.listenerCount("file") === 0) { skipPart = true; return; } fileSize = 0; this._fileStream = new FileStream(fileOpts, this); ++this._fileEndsLeft; this.emit( "file", partName, this._fileStream, { filename, encoding: partEncoding, mimeType: partType } ); } else { if (fields === fieldsLimit) { if (!hitFieldsLimit) { hitFieldsLimit = true; this.emit("fieldsLimit"); } skipPart = true; return; } ++fields; if (this.listenerCount("field") === 0) { skipPart = true; return; } field = []; fieldSize = 0; } }); let matchPostBoundary = 0; const ssCb = /* @__PURE__ */ __name((isMatch, data, start, end, isDataSafe) => { retrydata: while (data) { if (this._hparser !== null) { const ret = this._hparser.push(data, start, end); if (ret === -1) { this._hparser = null; hparser.reset(); this.emit("error", new Error("Malformed part header")); break; } start = ret; } if (start === end) break; if (matchPostBoundary !== 0) { if (matchPostBoundary === 1) { switch (data[start]) { case 45: matchPostBoundary = 2; ++start; break; case 13: matchPostBoundary = 3; ++start; break; default: matchPostBoundary = 0; } if (start === end) return; } if (matchPostBoundary === 2) { matchPostBoundary = 0; if (data[start] === 45) { this._complete = true; this._bparser = ignoreData; return; } const writecb = this._writecb; this._writecb = noop; ssCb(false, BUF_DASH, 0, 1, false); this._writecb = writecb; } else if (matchPostBoundary === 3) { matchPostBoundary = 0; if (data[start] === 10) { ++start; if (parts >= partsLimit) break; this._hparser = hparser; if (start === end) break; continue retrydata; } else { const writecb = this._writecb; this._writecb = noop; ssCb(false, BUF_CR, 0, 1, false); this._writecb = writecb; } } } if (!skipPart) { if (this._fileStream) { let chunk; const actualLen = Math.min(end - start, fileSizeLimit - fileSize); if (!isDataSafe) { chunk = Buffer.allocUnsafe(actualLen); data.copy(chunk, 0, start, start + actualLen); } else { chunk = data.slice(start, start + actualLen); } fileSize += chunk.length; if (fileSize === fileSizeLimit) { if (chunk.length > 0) this._fileStream.push(chunk); this._fileStream.emit("limit"); this._fileStream.truncated = true; skipPart = true; } else if (!this._fileStream.push(chunk)) { if (this._writecb) this._fileStream._readcb = this._writecb; this._writecb = null; } } else if (field !== void 0) { let chunk; const actualLen = Math.min( end - start, fieldSizeLimit - fieldSize ); if (!isDataSafe) { chunk = Buffer.allocUnsafe(actualLen); data.copy(chunk, 0, start, start + actualLen); } else { chunk = data.slice(start, start + actualLen); } fieldSize += actualLen; field.push(chunk); if (fieldSize === fieldSizeLimit) { skipPart = true; partTruncated = true; } } } break; } if (isMatch) { matchPostBoundary = 1; if (this._fileStream) { this._fileStream.push(null); this._fileStream = null; } else if (field !== void 0) { let data2; switch (field.length) { case 0: data2 = ""; break; case 1: data2 = convertToUTF8(field[0], partCharset, 0); break; default: data2 = convertToUTF8( Buffer.concat(field, fieldSize), partCharset, 0 ); } field = void 0; fieldSize = 0; this.emit( "field", partName, data2, { nameTruncated: false, valueTruncated: partTruncated, encoding: partEncoding, mimeType: partType } ); } if (++parts === partsLimit) this.emit("partsLimit"); } }, "ssCb"); this._bparser = new StreamSearch(`\r --${boundary}`, ssCb); this._writecb = null; this._finalcb = null; this.write(BUF_CRLF); } static detect(conType) { return conType.type === "multipart" && conType.subtype === "form-data"; } _write(chunk, enc, cb) { this._writecb = cb; this._bparser.push(chunk, 0); if (this._writecb) callAndUnsetCb(this); } _destroy(err, cb) { this._hparser = null; this._bparser = ignoreData; if (!err) err = checkEndState(this); const fileStream = this._fileStream; if (fileStream) { this._fileStream = null; fileStream.destroy(err); } cb(err); } _final(cb) { this._bparser.destroy(); if (!this._complete) return cb(new Error("Unexpected end of form")); if (this._fileEndsLeft) this._finalcb = finalcb.bind(null, this, cb); else finalcb(this, cb); } }; __name(Multipart, "Multipart"); function finalcb(self2, cb, err) { if (err) return cb(err); err = checkEndState(self2); cb(err); } __name(finalcb, "finalcb"); function checkEndState(self2) { if (self2._hparser) return new Error("Malformed part header"); const fileStream = self2._fileStream; if (fileStream) { self2._fileStream = null; fileStream.destroy(new Error("Unexpected end of file")); } if (!self2._complete) return new Error("Unexpected end of form"); } __name(checkEndState, "checkEndState"); var TOKEN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; var FIELD_VCHAR = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; module2.exports = Multipart; } }); // ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/urlencoded.js var require_urlencoded = __commonJS({ "../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/urlencoded.js"(exports, module2) { "use strict"; var { Writable } = require("stream"); var { getDecoder } = require_utils(); var URLEncoded = class extends Writable { constructor(cfg) { const streamOpts = { autoDestroy: true, emitClose: true, highWaterMark: typeof cfg.highWaterMark === "number" ? cfg.highWaterMark : void 0 }; super(streamOpts); let charset = cfg.defCharset || "utf8"; if (cfg.conType.params && typeof cfg.conType.params.charset === "string") charset = cfg.conType.params.charset; this.charset = charset; const limits = cfg.limits; this.fieldSizeLimit = limits && typeof limits.fieldSize === "number" ? limits.fieldSize : 1 * 1024 * 1024; this.fieldsLimit = limits && typeof limits.fields === "number" ? limits.fields : Infinity; this.fieldNameSizeLimit = limits && typeof limits.fieldNameSize === "number" ? limits.fieldNameSize : 100; this._inKey = true; this._keyTrunc = false; this._valTrunc = false; this._bytesKey = 0; this._bytesVal = 0; this._fields = 0; this._key = ""; this._val = ""; this._byte = -2; this._lastPos = 0; this._encode = 0; this._decoder = getDecoder(charset); } static detect(conType) { return conType.type === "application" && conType.subtype === "x-www-form-urlencoded"; } _write(chunk, enc, cb) { if (this._fields >= this.fieldsLimit) return cb(); let i = 0; const len = chunk.length; this._lastPos = 0; if (this._byte !== -2) { i = readPctEnc(this, chunk, i, len); if (i === -1) return cb(new Error("Malformed urlencoded form")); if (i >= len) return cb(); if (this._inKey) ++this._bytesKey; else ++this._bytesVal; } main: while (i < len) { if (this._inKey) { i = skipKeyBytes(this, chunk, i, len); while (i < len) { switch (chunk[i]) { case 61: if (this._lastPos < i) this._key += chunk.latin1Slice(this._lastPos, i); this._lastPos = ++i; this._key = this._decoder(this._key, this._encode); this._encode = 0; this._inKey = false; continue main; case 38: if (this._lastPos < i) this._key += chunk.latin1Slice(this._lastPos, i); this._lastPos = ++i; this._key = this._decoder(this._key, this._encode); this._encode = 0; if (this._bytesKey > 0) { this.emit( "field", this._key, "", { nameTruncated: this._keyTrunc, valueTruncated: false, encoding: this.charset, mimeType: "text/plain" } ); } this._key = ""; this._val = ""; this._keyTrunc = false; this._valTrunc = false; this._bytesKey = 0; this._bytesVal = 0; if (++this._fields >= this.fieldsLimit) { this.emit("fieldsLimit"); return cb(); } continue; case 43: if (this._lastPos < i) this._key += chunk.latin1Slice(this._lastPos, i); this._key += " "; this._lastPos = i + 1; break; case 37: if (this._encode === 0) this._encode = 1; if (this._lastPos < i) this._key += chunk.latin1Slice(this._lastPos, i); this._lastPos = i + 1; this._byte = -1; i = readPctEnc(this, chunk, i + 1, len); if (i === -1) return cb(new Error("Malformed urlencoded form")); if (i >= len) return cb(); ++this._bytesKey; i = skipKeyBytes(this, chunk, i, len); continue; } ++i; ++this._bytesKey; i = skipKeyBytes(this, chunk, i, len); } if (this._lastPos < i) this._key += chunk.latin1Slice(this._lastPos, i); } else { i = skipValBytes(this, chunk, i, len); while (i < len) { switch (chunk[i]) { case 38: if (this._lastPos < i) this._val += chunk.latin1Slice(this._lastPos, i); this._lastPos = ++i; this._inKey = true; this._val = this._decoder(this._val, this._encode); this._encode = 0; if (this._bytesKey > 0 || this._bytesVal > 0) { this.emit( "field", this._key, this._val, { nameTruncated: this._keyTrunc, valueTruncated: this._valTrunc, encoding: this.charset, mimeType: "text/plain" } ); } this._key = ""; this._val = ""; this._keyTrunc = false; this._valTrunc = false; this._bytesKey = 0; this._bytesVal = 0; if (++this._fields >= this.fieldsLimit) { this.emit("fieldsLimit"); return cb(); } continue main; case 43: if (this._lastPos < i) this._val += chunk.latin1Slice(this._lastPos, i); this._val += " "; this._lastPos = i + 1; break; case 37: if (this._encode === 0) this._encode = 1; if (this._lastPos < i) this._val += chunk.latin1Slice(this._lastPos, i); this._lastPos = i + 1; this._byte = -1; i = readPctEnc(this, chunk, i + 1, len); if (i === -1) return cb(new Error("Malformed urlencoded form")); if (i >= len) return cb(); ++this._bytesVal; i = skipValBytes(this, chunk, i, len); continue; } ++i; ++this._bytesVal; i = skipValBytes(this, chunk, i, len); } if (this._lastPos < i) this._val += chunk.latin1Slice(this._lastPos, i); } } cb(); } _final(cb) { if (this._byte !== -2) return cb(new Error("Malformed urlencoded form")); if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) { if (this._inKey) this._key = this._decoder(this._key, this._encode); else this._val = this._decoder(this._val, this._encode); this.emit( "field", this._key, this._val, { nameTruncated: this._keyTrunc, valueTruncated: this._valTrunc, encoding: this.charset, mimeType: "text/plain" } ); } cb(); } }; __name(URLEncoded, "URLEncoded"); function readPctEnc(self2, chunk, pos, len) { if (pos >= len) return len; if (self2._byte === -1) { const hexUpper = HEX_VALUES[chunk[pos++]]; if (hexUpper === -1) return -1; if (hexUpper >= 8) self2._encode = 2; if (pos < len) { const hexLower = HEX_VALUES[chunk[pos++]]; if (hexLower === -1) return -1; if (self2._inKey) self2._key += String.fromCharCode((hexUpper << 4) + hexLower); else self2._val += String.fromCharCode((hexUpper << 4) + hexLower); self2._byte = -2; self2._lastPos = pos; } else { self2._byte = hexUpper; } } else { const hexLower = HEX_VALUES[chunk[pos++]]; if (hexLower === -1) return -1; if (self2._inKey) self2._key += String.fromCharCode((self2._byte << 4) + hexLower); else self2._val += String.fromCharCode((self2._byte << 4) + hexLower); self2._byte = -2; self2._lastPos = pos; } return pos; } __name(readPctEnc, "readPctEnc"); function skipKeyBytes(self2, chunk, pos, len) { if (self2._bytesKey > self2.fieldNameSizeLimit) { if (!self2._keyTrunc) { if (self2._lastPos < pos) self2._key += chunk.latin1Slice(self2._lastPos, pos - 1); } self2._keyTrunc = true; for (; pos < len; ++pos) { const code = chunk[pos]; if (code === 61 || code === 38) break; ++self2._bytesKey; } self2._lastPos = pos; } return pos; } __name(skipKeyBytes, "skipKeyBytes"); function skipValBytes(self2, chunk, pos, len) { if (self2._bytesVal > self2.fieldSizeLimit) { if (!self2._valTrunc) { if (self2._lastPos < pos) self2._val += chunk.latin1Slice(self2._lastPos, pos - 1); } self2._valTrunc = true; for (; pos < len; ++pos) { if (chunk[pos] === 38) break; ++self2._bytesVal; } self2._lastPos = pos; } return pos; } __name(skipValBytes, "skipValBytes"); var HEX_VALUES = [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ]; module2.exports = URLEncoded; } }); // ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/index.js var require_lib = __commonJS({ "../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/index.js"(exports, module2) { "use strict"; var { parseContentType } = require_utils(); function getInstance(cfg) { const headers = cfg.headers; const conType = parseContentType(headers["content-type"]); if (!conType) throw new Error("Malformed content type"); for (const type of TYPES) { const matched = type.detect(conType); if (!matched) continue; const instanceCfg = { limits: cfg.limits, headers, conType, highWaterMark: void 0, fileHwm: void 0, defCharset: void 0, defParamCharset: void 0, preservePath: false }; if (cfg.highWaterMark) instanceCfg.highWaterMark = cfg.highWaterMark; if (cfg.fileHwm) instanceCfg.fileHwm = cfg.fileHwm; instanceCfg.defCharset = cfg.defCharset; instanceCfg.defParamCharset = cfg.defParamCharset; instanceCfg.preservePath = cfg.preservePath; return new type(instanceCfg); } throw new Error(`Unsupported content type: ${headers["content-type"]}`); } __name(getInstance, "getInstance"); var TYPES = [ require_multipart(), require_urlencoded() ].filter(function(typemod) { return typeof typemod.detect === "function"; }); module2.exports = (cfg) => { if (typeof cfg !== "object" || cfg === null) cfg = {}; if (typeof cfg.headers !== "object" || cfg.headers === null || typeof cfg.headers["content-type"] !== "string") { throw new Error("Missing Content-Type"); } return getInstance(cfg); }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/constants.js var require_constants = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/constants.js"(exports, module2) { "use strict"; var corsSafeListedMethods = ["GET", "HEAD", "POST"]; var nullBodyStatus = [101, 204, 205, 304]; var redirectStatus = [301, 302, 303, 307, 308]; var referrerPolicy = [ "", "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "strict-origin", "origin-when-cross-origin", "strict-origin-when-cross-origin", "unsafe-url" ]; var requestRedirect = ["follow", "manual", "error"]; var safeMethods = ["GET", "HEAD", "OPTIONS", "TRACE"]; var requestMode = ["navigate", "same-origin", "no-cors", "cors"]; var requestCredentials = ["omit", "same-origin", "include"]; var requestCache = [ "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" ]; var requestBodyHeader = [ "content-encoding", "content-language", "content-location", "content-type" ]; var forbiddenMethods = ["CONNECT", "TRACE", "TRACK"]; var subresource = [ "audio", "audioworklet", "font", "image", "manifest", "paintworklet", "script", "style", "track", "video", "xslt", "" ]; var DOMException = globalThis.DOMException ?? (() => { try { atob("~"); } catch (err) { return Object.getPrototypeOf(err).constructor; } })(); module2.exports = { DOMException, subresource, forbiddenMethods, requestBodyHeader, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache, redirectStatus, corsSafeListedMethods, nullBodyStatus, safeMethods }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/util.js var require_util3 = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/util.js"(exports, module2) { "use strict"; var { redirectStatus } = require_constants(); var { performance: performance3 } = require("perf_hooks"); var { isBlobLike, toUSVString, ReadableStreamFrom } = require_util2(); var assert = require("assert"); var { isUint8Array } = require("util/types"); var crypto2; try { crypto2 = require("crypto"); } catch { } var badPorts = [ "1", "7", "9", "11", "13", "15", "17", "19", "20", "21", "22", "23", "25", "37", "42", "43", "53", "69", "77", "79", "87", "95", "101", "102", "103", "104", "109", "110", "111", "113", "115", "117", "119", "123", "135", "137", "139", "143", "161", "179", "389", "427", "465", "512", "513", "514", "515", "526", "530", "531", "532", "540", "548", "554", "556", "563", "587", "601", "636", "989", "990", "993", "995", "1719", "1720", "1723", "2049", "3659", "4045", "5060", "5061", "6000", "6566", "6665", "6666", "6667", "6668", "6669", "6697", "10080" ]; function responseURL(response) { const urlList = response.urlList; const length = urlList.length; return length === 0 ? null : urlList[length - 1].toString(); } __name(responseURL, "responseURL"); function responseLocationURL(response, requestFragment) { if (!redirectStatus.includes(response.status)) { return null; } let location = response.headersList.get("location"); location = location ? new URL(location, responseURL(response)) : null; if (location && !location.hash) { location.hash = requestFragment; } return location; } __name(responseLocationURL, "responseLocationURL"); function requestCurrentURL(request2) { return request2.urlList[request2.urlList.length - 1]; } __name(requestCurrentURL, "requestCurrentURL"); function requestBadPort(request2) { const url = requestCurrentURL(request2); if (/^https?:/.test(url.protocol) && badPorts.includes(url.port)) { return "blocked"; } return "allowed"; } __name(requestBadPort, "requestBadPort"); function isErrorLike(object) { return object instanceof Error || (object?.constructor?.name === "Error" || object?.constructor?.name === "DOMException"); } __name(isErrorLike, "isErrorLike"); function isValidReasonPhrase(statusText) { for (let i = 0; i < statusText.length; ++i) { const c = statusText.charCodeAt(i); if (!(c === 9 || c >= 32 && c <= 126 || c >= 128 && c <= 255)) { return false; } } return true; } __name(isValidReasonPhrase, "isValidReasonPhrase"); function isTokenChar(c) { return !(c >= 127 || c <= 32 || c === "(" || c === ")" || c === "<" || c === ">" || c === "@" || c === "," || c === ";" || c === ":" || c === "\\" || c === '"' || c === "/" || c === "[" || c === "]" || c === "?" || c === "=" || c === "{" || c === "}"); } __name(isTokenChar, "isTokenChar"); function isValidHTTPToken(characters) { if (!characters || typeof characters !== "string") { return false; } for (let i = 0; i < characters.length; ++i) { const c = characters.charCodeAt(i); if (c > 127 || !isTokenChar(c)) { return false; } } return true; } __name(isValidHTTPToken, "isValidHTTPToken"); function isValidHeaderName(potentialValue) { if (potentialValue.length === 0) { return false; } for (const char of potentialValue) { if (!isValidHTTPToken(char)) { return false; } } return true; } __name(isValidHeaderName, "isValidHeaderName"); function isValidHeaderValue(potentialValue) { if (potentialValue.startsWith(" ") || potentialValue.startsWith(" ") || potentialValue.endsWith(" ") || potentialValue.endsWith(" ")) { return false; } if (potentialValue.includes("\0") || potentialValue.includes("\r") || potentialValue.includes("\n")) { return false; } return true; } __name(isValidHeaderValue, "isValidHeaderValue"); function setRequestReferrerPolicyOnRedirect(request2, actualResponse) { const policy = ""; if (policy !== "") { request2.referrerPolicy = policy; } } __name(setRequestReferrerPolicyOnRedirect, "setRequestReferrerPolicyOnRedirect"); function crossOriginResourcePolicyCheck() { return "allowed"; } __name(crossOriginResourcePolicyCheck, "crossOriginResourcePolicyCheck"); function corsCheck() { return "success"; } __name(corsCheck, "corsCheck"); function TAOCheck() { return "success"; } __name(TAOCheck, "TAOCheck"); function appendFetchMetadata(httpRequest) { let header = null; header = httpRequest.mode; httpRequest.headersList.set("sec-fetch-mode", header); } __name(appendFetchMetadata, "appendFetchMetadata"); function appendRequestOriginHeader(request2) { let serializedOrigin = request2.origin; if (request2.responseTainting === "cors" || request2.mode === "websocket") { if (serializedOrigin) { request2.headersList.append("Origin", serializedOrigin); } } else if (request2.method !== "GET" && request2.method !== "HEAD") { switch (request2.referrerPolicy) { case "no-referrer": serializedOrigin = null; break; case "no-referrer-when-downgrade": case "strict-origin": case "strict-origin-when-cross-origin": if (/^https:/.test(request2.origin) && !/^https:/.test(requestCurrentURL(request2))) { serializedOrigin = null; } break; case "same-origin": if (!sameOrigin(request2, requestCurrentURL(request2))) { serializedOrigin = null; } break; default: } if (serializedOrigin) { request2.headersList.append("Origin", serializedOrigin); } } } __name(appendRequestOriginHeader, "appendRequestOriginHeader"); function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { return performance3.now(); } __name(coarsenedSharedCurrentTime, "coarsenedSharedCurrentTime"); function createOpaqueTimingInfo(timingInfo) { return { startTime: timingInfo.startTime ?? 0, redirectStartTime: 0, redirectEndTime: 0, postRedirectStartTime: timingInfo.startTime ?? 0, finalServiceWorkerStartTime: 0, finalNetworkResponseStartTime: 0, finalNetworkRequestStartTime: 0, endTime: 0, encodedBodySize: 0, decodedBodySize: 0, finalConnectionTimingInfo: null }; } __name(createOpaqueTimingInfo, "createOpaqueTimingInfo"); function makePolicyContainer() { return {}; } __name(makePolicyContainer, "makePolicyContainer"); function clonePolicyContainer() { return {}; } __name(clonePolicyContainer, "clonePolicyContainer"); function determineRequestsReferrer(request2) { const policy = request2.referrerPolicy; if (policy == null || policy === "" || policy === "no-referrer") { return "no-referrer"; } const environment = request2.client; let referrerSource = null; if (request2.referrer === "client") { if (request2.client?.globalObject?.constructor?.name === "Window") { const origin = environment.globalObject.self?.origin ?? environment.globalObject.location?.origin; if (origin == null || origin === "null") return "no-referrer"; referrerSource = new URL(environment.globalObject.location.href); } else { if (environment?.globalObject?.location == null) { return "no-referrer"; } referrerSource = new URL(environment.globalObject.location.href); } } else if (request2.referrer instanceof URL) { referrerSource = request2.referrer; } else { return "no-referrer"; } const urlProtocol = referrerSource.protocol; if (urlProtocol === "about:" || urlProtocol === "data:" || urlProtocol === "blob:") { return "no-referrer"; } let temp; let referrerOrigin; const referrerUrl = (temp = stripURLForReferrer(referrerSource)).length > 4096 ? referrerOrigin = stripURLForReferrer(referrerSource, true) : temp; const areSameOrigin = sameOrigin(request2, referrerUrl); const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerUrl) && !isURLPotentiallyTrustworthy(request2.url); switch (policy) { case "origin": return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true); case "unsafe-url": return referrerUrl; case "same-origin": return areSameOrigin ? referrerOrigin : "no-referrer"; case "origin-when-cross-origin": return areSameOrigin ? referrerUrl : referrerOrigin; case "strict-origin-when-cross-origin": if (areSameOrigin) return referrerOrigin; case "strict-origin": case "no-referrer-when-downgrade": default: return isNonPotentiallyTrustWorthy ? "no-referrer" : referrerOrigin; } function stripURLForReferrer(url, originOnly = false) { const urlObject = new URL(url.href); urlObject.username = ""; urlObject.password = ""; urlObject.hash = ""; return originOnly ? urlObject.origin : urlObject.href; } __name(stripURLForReferrer, "stripURLForReferrer"); } __name(determineRequestsReferrer, "determineRequestsReferrer"); function isURLPotentiallyTrustworthy(url) { if (!(url instanceof URL)) { return false; } if (url.href === "about:blank" || url.href === "about:srcdoc") { return true; } if (url.protocol === "data:") return true; if (url.protocol === "file:") return true; return isOriginPotentiallyTrustworthy(url.origin); function isOriginPotentiallyTrustworthy(origin) { if (origin == null || origin === "null") return false; const originAsURL = new URL(origin); if (originAsURL.protocol === "https:" || originAsURL.protocol === "wss:") { return true; } if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || (originAsURL.hostname === "localhost" || originAsURL.hostname.includes("localhost.")) || originAsURL.hostname.endsWith(".localhost")) { return true; } return false; } __name(isOriginPotentiallyTrustworthy, "isOriginPotentiallyTrustworthy"); } __name(isURLPotentiallyTrustworthy, "isURLPotentiallyTrustworthy"); function bytesMatch(bytes, metadataList) { if (crypto2 === void 0) { return true; } const parsedMetadata = parseMetadata(metadataList); if (parsedMetadata === "no metadata") { return true; } if (parsedMetadata.length === 0) { return true; } const metadata = parsedMetadata.sort((c, d2) => d2.algo.localeCompare(c.algo)); for (const item of metadata) { const algorithm = item.algo; const expectedValue = item.hash; const actualValue = crypto2.createHash(algorithm).update(bytes).digest("base64"); if (actualValue === expectedValue) { return true; } } return false; } __name(bytesMatch, "bytesMatch"); var parseHashWithOptions = /((?sha256|sha384|sha512)-(?[A-z0-9+/]{1}.*={1,2}))( +[\x21-\x7e]?)?/i; function parseMetadata(metadata) { const result = []; let empty2 = true; const supportedHashes = crypto2.getHashes(); for (const token of metadata.split(" ")) { empty2 = false; const parsedToken = parseHashWithOptions.exec(token); if (parsedToken === null || parsedToken.groups === void 0) { continue; } const algorithm = parsedToken.groups.algo; if (supportedHashes.includes(algorithm.toLowerCase())) { result.push(parsedToken.groups); } } if (empty2 === true) { return "no metadata"; } return result; } __name(parseMetadata, "parseMetadata"); function tryUpgradeRequestToAPotentiallyTrustworthyURL(request2) { } __name(tryUpgradeRequestToAPotentiallyTrustworthyURL, "tryUpgradeRequestToAPotentiallyTrustworthyURL"); function sameOrigin(A2, B) { if (A2.protocol === B.protocol && A2.hostname === B.hostname && A2.port === B.port) { return true; } return false; } __name(sameOrigin, "sameOrigin"); function createDeferredPromise() { let res; let rej; const promise = new Promise((resolve, reject) => { res = resolve; rej = reject; }); return { promise, resolve: res, reject: rej }; } __name(createDeferredPromise, "createDeferredPromise"); function isAborted(fetchParams) { return fetchParams.controller.state === "aborted"; } __name(isAborted, "isAborted"); function isCancelled(fetchParams) { return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; } __name(isCancelled, "isCancelled"); function normalizeMethod(method) { return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method) ? method.toUpperCase() : method; } __name(normalizeMethod, "normalizeMethod"); function serializeJavascriptValueToJSONString(value) { const result = JSON.stringify(value); if (result === void 0) { throw new TypeError("Value is not JSON serializable"); } assert(typeof result === "string"); return result; } __name(serializeJavascriptValueToJSONString, "serializeJavascriptValueToJSONString"); var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); function makeIterator(iterator, name) { const i = { next() { if (Object.getPrototypeOf(this) !== i) { throw new TypeError( `'next' called on an object that does not implement interface ${name} Iterator.` ); } return iterator.next(); }, [Symbol.toStringTag]: `${name} Iterator` }; Object.setPrototypeOf(i, esIteratorPrototype); return Object.setPrototypeOf({}, i); } __name(makeIterator, "makeIterator"); async function fullyReadBody(body, processBody, processBodyError) { try { const chunks = []; let length = 0; const reader = body.stream.getReader(); while (true) { const { done, value } = await reader.read(); if (done === true) { break; } assert(isUint8Array(value)); chunks.push(value); length += value.byteLength; } const fulfilledSteps = /* @__PURE__ */ __name((bytes) => queueMicrotask(() => { processBody(bytes); }), "fulfilledSteps"); fulfilledSteps(Buffer.concat(chunks, length)); } catch (err) { queueMicrotask(() => processBodyError(err)); } } __name(fullyReadBody, "fullyReadBody"); var hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key)); module2.exports = { isAborted, isCancelled, createDeferredPromise, ReadableStreamFrom, toUSVString, tryUpgradeRequestToAPotentiallyTrustworthyURL, coarsenedSharedCurrentTime, determineRequestsReferrer, makePolicyContainer, clonePolicyContainer, appendFetchMetadata, appendRequestOriginHeader, TAOCheck, corsCheck, crossOriginResourcePolicyCheck, createOpaqueTimingInfo, setRequestReferrerPolicyOnRedirect, isValidHTTPToken, requestBadPort, requestCurrentURL, responseURL, responseLocationURL, isBlobLike, isURLPotentiallyTrustworthy, isValidReasonPhrase, sameOrigin, normalizeMethod, serializeJavascriptValueToJSONString, makeIterator, isValidHeaderName, isValidHeaderValue, hasOwn, isErrorLike, fullyReadBody, bytesMatch }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/symbols.js var require_symbols2 = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/symbols.js"(exports, module2) { "use strict"; module2.exports = { kUrl: Symbol("url"), kHeaders: Symbol("headers"), kSignal: Symbol("signal"), kState: Symbol("state"), kGuard: Symbol("guard"), kRealm: Symbol("realm") }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/webidl.js var require_webidl = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/webidl.js"(exports, module2) { "use strict"; var { types } = require("util"); var { hasOwn, toUSVString } = require_util3(); var webidl = {}; webidl.converters = {}; webidl.util = {}; webidl.errors = {}; webidl.errors.exception = function(message) { throw new TypeError(`${message.header}: ${message.message}`); }; webidl.errors.conversionFailed = function(context2) { const plural = context2.types.length === 1 ? "" : " one of"; const message = `${context2.argument} could not be converted to${plural}: ${context2.types.join(", ")}.`; return webidl.errors.exception({ header: context2.prefix, message }); }; webidl.errors.invalidArgument = function(context2) { return webidl.errors.exception({ header: context2.prefix, message: `"${context2.value}" is an invalid ${context2.type}.` }); }; webidl.util.Type = function(V) { switch (typeof V) { case "undefined": return "Undefined"; case "boolean": return "Boolean"; case "string": return "String"; case "symbol": return "Symbol"; case "number": return "Number"; case "bigint": return "BigInt"; case "function": case "object": { if (V === null) { return "Null"; } return "Object"; } } }; webidl.util.ConvertToInt = function(V, bitLength, signedness, opts = {}) { let upperBound; let lowerBound; if (bitLength === 64) { upperBound = Math.pow(2, 53) - 1; if (signedness === "unsigned") { lowerBound = 0; } else { lowerBound = Math.pow(-2, 53) + 1; } } else if (signedness === "unsigned") { lowerBound = 0; upperBound = Math.pow(2, bitLength) - 1; } else { lowerBound = Math.pow(-2, bitLength) - 1; upperBound = Math.pow(2, bitLength - 1) - 1; } let x = Number(V); if (Object.is(-0, x)) { x = 0; } if (opts.enforceRange === true) { if (Number.isNaN(x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { webidl.errors.exception({ header: "Integer conversion", message: `Could not convert ${V} to an integer.` }); } x = webidl.util.IntegerPart(x); if (x < lowerBound || x > upperBound) { webidl.errors.exception({ header: "Integer conversion", message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` }); } return x; } if (!Number.isNaN(x) && opts.clamp === true) { x = Math.min(Math.max(x, lowerBound), upperBound); if (Math.floor(x) % 2 === 0) { x = Math.floor(x); } else { x = Math.ceil(x); } return x; } if (Number.isNaN(x) || Object.is(0, x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { return 0; } x = webidl.util.IntegerPart(x); x = x % Math.pow(2, bitLength); if (signedness === "signed" && x >= Math.pow(2, bitLength) - 1) { return x - Math.pow(2, bitLength); } return x; }; webidl.util.IntegerPart = function(n2) { const r2 = Math.floor(Math.abs(n2)); if (n2 < 0) { return -1 * r2; } return r2; }; webidl.sequenceConverter = function(converter) { return (V) => { if (webidl.util.Type(V) !== "Object") { webidl.errors.exception({ header: "Sequence", message: `Value of type ${webidl.util.Type(V)} is not an Object.` }); } const method = V?.[Symbol.iterator]?.(); const seq = []; if (method === void 0 || typeof method.next !== "function") { webidl.errors.exception({ header: "Sequence", message: "Object is not an iterator." }); } while (true) { const { done, value } = method.next(); if (done) { break; } seq.push(converter(value)); } return seq; }; }; webidl.recordConverter = function(keyConverter, valueConverter) { return (V) => { const record = {}; const type = webidl.util.Type(V); if (type === "Undefined" || type === "Null") { return record; } if (type !== "Object") { webidl.errors.exception({ header: "Record", message: `Expected ${V} to be an Object type.` }); } for (let [key, value] of Object.entries(V)) { key = keyConverter(key); value = valueConverter(value); record[key] = value; } return record; }; }; webidl.interfaceConverter = function(i) { return (V, opts = {}) => { if (opts.strict !== false && !(V instanceof i)) { webidl.errors.exception({ header: i.name, message: `Expected ${V} to be an instance of ${i.name}.` }); } return V; }; }; webidl.dictionaryConverter = function(converters) { return (dictionary) => { const type = webidl.util.Type(dictionary); const dict = {}; if (type !== "Null" && type !== "Undefined" && type !== "Object") { webidl.errors.exception({ header: "Dictionary", message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` }); } for (const options of converters) { const { key, defaultValue, required, converter } = options; if (required === true) { if (!hasOwn(dictionary, key)) { webidl.errors.exception({ header: "Dictionary", message: `Missing required key "${key}".` }); } } let value = dictionary[key]; const hasDefault = hasOwn(options, "defaultValue"); if (hasDefault && value !== null) { value = value ?? defaultValue; } if (required || hasDefault || value !== void 0) { value = converter(value); if (options.allowedValues && !options.allowedValues.includes(value)) { webidl.errors.exception({ header: "Dictionary", message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.` }); } dict[key] = value; } } return dict; }; }; webidl.nullableConverter = function(converter) { return (V) => { if (V === null) { return V; } return converter(V); }; }; webidl.converters.DOMString = function(V, opts = {}) { if (V === null && opts.legacyNullToEmptyString) { return ""; } if (typeof V === "symbol") { throw new TypeError("Could not convert argument of type symbol to string."); } return String(V); }; webidl.converters.ByteString = function(V) { const x = webidl.converters.DOMString(V); for (let index = 0; index < x.length; index++) { const charCode = x.charCodeAt(index); if (charCode > 255) { throw new TypeError( `Cannot convert argument to a ByteString because the character atindex ${index} has a value of ${charCode} which is greater than 255.` ); } } return x; }; webidl.converters.USVString = toUSVString; webidl.converters.boolean = function(V) { const x = Boolean(V); return x; }; webidl.converters.any = function(V) { return V; }; webidl.converters["long long"] = function(V, opts) { const x = webidl.util.ConvertToInt(V, 64, "signed", opts); return x; }; webidl.converters["unsigned short"] = function(V) { const x = webidl.util.ConvertToInt(V, 16, "unsigned"); return x; }; webidl.converters.ArrayBuffer = function(V, opts = {}) { if (webidl.util.Type(V) !== "Object" || !types.isAnyArrayBuffer(V)) { webidl.errors.conversionFailed({ prefix: `${V}`, argument: `${V}`, types: ["ArrayBuffer"] }); } if (opts.allowShared === false && types.isSharedArrayBuffer(V)) { webidl.errors.exception({ header: "ArrayBuffer", message: "SharedArrayBuffer is not allowed." }); } return V; }; webidl.converters.TypedArray = function(V, T, opts = {}) { if (webidl.util.Type(V) !== "Object" || !types.isTypedArray(V) || V.constructor.name !== T.name) { webidl.errors.conversionFailed({ prefix: `${T.name}`, argument: `${V}`, types: [T.name] }); } if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { webidl.errors.exception({ header: "ArrayBuffer", message: "SharedArrayBuffer is not allowed." }); } return V; }; webidl.converters.DataView = function(V, opts = {}) { if (webidl.util.Type(V) !== "Object" || !types.isDataView(V)) { webidl.errors.exception({ header: "DataView", message: "Object is not a DataView." }); } if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { webidl.errors.exception({ header: "ArrayBuffer", message: "SharedArrayBuffer is not allowed." }); } return V; }; webidl.converters.BufferSource = function(V, opts = {}) { if (types.isAnyArrayBuffer(V)) { return webidl.converters.ArrayBuffer(V, opts); } if (types.isTypedArray(V)) { return webidl.converters.TypedArray(V, V.constructor); } if (types.isDataView(V)) { return webidl.converters.DataView(V, opts); } throw new TypeError(`Could not convert ${V} to a BufferSource.`); }; webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.ByteString ); webidl.converters["sequence>"] = webidl.sequenceConverter( webidl.converters["sequence"] ); webidl.converters["record"] = webidl.recordConverter( webidl.converters.ByteString, webidl.converters.ByteString ); module2.exports = { webidl }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/file.js var require_file = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/file.js"(exports, module2) { "use strict"; var { Blob } = require("buffer"); var { types } = require("util"); var { kState } = require_symbols2(); var { isBlobLike } = require_util3(); var { webidl } = require_webidl(); var File = class extends Blob { constructor(fileBits, fileName, options = {}) { if (arguments.length < 2) { throw new TypeError("2 arguments required"); } fileBits = webidl.converters["sequence"](fileBits); fileName = webidl.converters.USVString(fileName); options = webidl.converters.FilePropertyBag(options); const n2 = fileName; const d2 = options.lastModified; super(processBlobParts(fileBits, options), { type: options.type }); this[kState] = { name: n2, lastModified: d2 }; } get name() { if (!(this instanceof File)) { throw new TypeError("Illegal invocation"); } return this[kState].name; } get lastModified() { if (!(this instanceof File)) { throw new TypeError("Illegal invocation"); } return this[kState].lastModified; } get [Symbol.toStringTag]() { return this.constructor.name; } }; __name(File, "File"); var FileLike = class { constructor(blobLike, fileName, options = {}) { const n2 = fileName; const t2 = options.type; const d2 = options.lastModified ?? Date.now(); this[kState] = { blobLike, name: n2, type: t2, lastModified: d2 }; } stream(...args) { if (!(this instanceof FileLike)) { throw new TypeError("Illegal invocation"); } return this[kState].blobLike.stream(...args); } arrayBuffer(...args) { if (!(this instanceof FileLike)) { throw new TypeError("Illegal invocation"); } return this[kState].blobLike.arrayBuffer(...args); } slice(...args) { if (!(this instanceof FileLike)) { throw new TypeError("Illegal invocation"); } return this[kState].blobLike.slice(...args); } text(...args) { if (!(this instanceof FileLike)) { throw new TypeError("Illegal invocation"); } return this[kState].blobLike.text(...args); } get size() { if (!(this instanceof FileLike)) { throw new TypeError("Illegal invocation"); } return this[kState].blobLike.size; } get type() { if (!(this instanceof FileLike)) { throw new TypeError("Illegal invocation"); } return this[kState].blobLike.type; } get name() { if (!(this instanceof FileLike)) { throw new TypeError("Illegal invocation"); } return this[kState].name; } get lastModified() { if (!(this instanceof FileLike)) { throw new TypeError("Illegal invocation"); } return this[kState].lastModified; } get [Symbol.toStringTag]() { return "File"; } }; __name(FileLike, "FileLike"); webidl.converters.Blob = webidl.interfaceConverter(Blob); webidl.converters.BlobPart = function(V, opts) { if (webidl.util.Type(V) === "Object") { if (isBlobLike(V)) { return webidl.converters.Blob(V, { strict: false }); } return webidl.converters.BufferSource(V, opts); } else { return webidl.converters.USVString(V, opts); } }; webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.BlobPart ); webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ { key: "lastModified", converter: webidl.converters["long long"], get defaultValue() { return Date.now(); } }, { key: "type", converter: webidl.converters.DOMString, defaultValue: "" }, { key: "endings", converter: (value) => { value = webidl.converters.DOMString(value); value = value.toLowerCase(); if (value !== "native") { value = "transparent"; } return value; }, defaultValue: "transparent" } ]); function processBlobParts(parts, options) { const bytes = []; for (const element of parts) { if (typeof element === "string") { let s = element; if (options.endings === "native") { s = convertLineEndingsNative(s); } bytes.push(new TextEncoder().encode(s)); } else if (types.isAnyArrayBuffer(element) || types.isTypedArray(element)) { if (!element.buffer) { bytes.push(new Uint8Array(element)); } else { bytes.push( new Uint8Array(element.buffer, element.byteOffset, element.byteLength) ); } } else if (isBlobLike(element)) { bytes.push(element); } } return bytes; } __name(processBlobParts, "processBlobParts"); function convertLineEndingsNative(s) { let nativeLineEnding = "\n"; if (process.platform === "win32") { nativeLineEnding = "\r\n"; } return s.replace(/\r?\n/g, nativeLineEnding); } __name(convertLineEndingsNative, "convertLineEndingsNative"); function isFileLike(object) { return object instanceof File || object && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && object[Symbol.toStringTag] === "File"; } __name(isFileLike, "isFileLike"); module2.exports = { File, FileLike, isFileLike }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/formdata.js var require_formdata = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/formdata.js"(exports, module2) { "use strict"; var { isBlobLike, toUSVString, makeIterator } = require_util3(); var { kState } = require_symbols2(); var { File, FileLike, isFileLike } = require_file(); var { webidl } = require_webidl(); var { Blob } = require("buffer"); var _FormData = class { constructor(form) { if (arguments.length > 0 && form != null) { webidl.errors.conversionFailed({ prefix: "FormData constructor", argument: "Argument 1", types: ["null"] }); } this[kState] = []; } append(name, value, filename = void 0) { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 2) { throw new TypeError( `Failed to execute 'append' on 'FormData': 2 arguments required, but only ${arguments.length} present.` ); } if (arguments.length === 3 && !isBlobLike(value)) { throw new TypeError( "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" ); } name = webidl.converters.USVString(name); value = isBlobLike(value) ? webidl.converters.Blob(value, { strict: false }) : webidl.converters.USVString(value); filename = arguments.length === 3 ? webidl.converters.USVString(filename) : void 0; const entry = makeEntry(name, value, filename); this[kState].push(entry); } delete(name) { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 1) { throw new TypeError( `Failed to execute 'delete' on 'FormData': 1 arguments required, but only ${arguments.length} present.` ); } name = webidl.converters.USVString(name); const next = []; for (const entry of this[kState]) { if (entry.name !== name) { next.push(entry); } } this[kState] = next; } get(name) { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 1) { throw new TypeError( `Failed to execute 'get' on 'FormData': 1 arguments required, but only ${arguments.length} present.` ); } name = webidl.converters.USVString(name); const idx = this[kState].findIndex((entry) => entry.name === name); if (idx === -1) { return null; } return this[kState][idx].value; } getAll(name) { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 1) { throw new TypeError( `Failed to execute 'getAll' on 'FormData': 1 arguments required, but only ${arguments.length} present.` ); } name = webidl.converters.USVString(name); return this[kState].filter((entry) => entry.name === name).map((entry) => entry.value); } has(name) { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 1) { throw new TypeError( `Failed to execute 'has' on 'FormData': 1 arguments required, but only ${arguments.length} present.` ); } name = webidl.converters.USVString(name); return this[kState].findIndex((entry) => entry.name === name) !== -1; } set(name, value, filename = void 0) { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 2) { throw new TypeError( `Failed to execute 'set' on 'FormData': 2 arguments required, but only ${arguments.length} present.` ); } if (arguments.length === 3 && !isBlobLike(value)) { throw new TypeError( "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" ); } name = webidl.converters.USVString(name); value = isBlobLike(value) ? webidl.converters.Blob(value, { strict: false }) : webidl.converters.USVString(value); filename = arguments.length === 3 ? toUSVString(filename) : void 0; const entry = makeEntry(name, value, filename); const idx = this[kState].findIndex((entry2) => entry2.name === name); if (idx !== -1) { this[kState] = [ ...this[kState].slice(0, idx), entry, ...this[kState].slice(idx + 1).filter((entry2) => entry2.name !== name) ]; } else { this[kState].push(entry); } } get [Symbol.toStringTag]() { return this.constructor.name; } entries() { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } return makeIterator( makeIterable(this[kState], "entries"), "FormData" ); } keys() { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } return makeIterator( makeIterable(this[kState], "keys"), "FormData" ); } values() { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } return makeIterator( makeIterable(this[kState], "values"), "FormData" ); } forEach(callbackFn, thisArg = globalThis) { if (!(this instanceof _FormData)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 1) { throw new TypeError( `Failed to execute 'forEach' on 'FormData': 1 argument required, but only ${arguments.length} present.` ); } if (typeof callbackFn !== "function") { throw new TypeError( "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'." ); } for (const [key, value] of this) { callbackFn.apply(thisArg, [value, key, this]); } } }; var FormData = _FormData; __name(FormData, "FormData"); __publicField(FormData, "name", "FormData"); FormData.prototype[Symbol.iterator] = FormData.prototype.entries; function makeEntry(name, value, filename) { name = Buffer.from(name).toString("utf8"); if (typeof value === "string") { value = Buffer.from(value).toString("utf8"); } else { if (!isFileLike(value)) { value = value instanceof Blob ? new File([value], "blob", { type: value.type }) : new FileLike(value, "blob", { type: value.type }); } if (filename !== void 0) { value = value instanceof File ? new File([value], filename, { type: value.type }) : new FileLike(value, filename, { type: value.type }); } } return { name, value }; } __name(makeEntry, "makeEntry"); function* makeIterable(entries, type) { for (const { name, value } of entries) { if (type === "entries") { yield [name, value]; } else if (type === "values") { yield value; } else { yield name; } } } __name(makeIterable, "makeIterable"); module2.exports = { FormData }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/body.js var require_body = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/body.js"(exports, module2) { "use strict"; var Busboy = require_lib(); var util2 = require_util2(); var { ReadableStreamFrom, toUSVString, isBlobLike } = require_util3(); var { FormData } = require_formdata(); var { kState } = require_symbols2(); var { webidl } = require_webidl(); var { DOMException } = require_constants(); var { Blob } = require("buffer"); var { kBodyUsed } = require_symbols(); var assert = require("assert"); var { isErrored } = require_util2(); var { isUint8Array, isArrayBuffer } = require("util/types"); var { File } = require_file(); var ReadableStream; async function* blobGen(blob) { yield* blob.stream(); } __name(blobGen, "blobGen"); function extractBody(object, keepalive = false) { if (!ReadableStream) { ReadableStream = require("stream/web").ReadableStream; } let stream2 = null; let action = null; let source = null; let length = null; let contentType = null; if (object == null) { } else if (object instanceof URLSearchParams) { source = object.toString(); contentType = "application/x-www-form-urlencoded;charset=UTF-8"; } else if (isArrayBuffer(object)) { source = new Uint8Array(object.slice()); } else if (ArrayBuffer.isView(object)) { source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)); } else if (util2.isFormDataLike(object)) { const boundary = "----formdata-undici-" + Math.random(); const prefix = `--${boundary}\r Content-Disposition: form-data`; const escape = /* @__PURE__ */ __name((str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"), "escape"); const normalizeLinefeeds = /* @__PURE__ */ __name((value) => value.replace(/\r?\n|\r/g, "\r\n"), "normalizeLinefeeds"); action = /* @__PURE__ */ __name(async function* (object2) { const enc = new TextEncoder(); for (const [name, value] of object2) { if (typeof value === "string") { yield enc.encode( prefix + `; name="${escape(normalizeLinefeeds(name))}"\r \r ${normalizeLinefeeds(value)}\r ` ); } else { yield enc.encode( prefix + `; name="${escape(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape(value.name)}"` : "") + `\r Content-Type: ${value.type || "application/octet-stream"}\r \r ` ); yield* blobGen(value); yield enc.encode("\r\n"); } } yield enc.encode(`--${boundary}--`); }, "action"); source = object; contentType = "multipart/form-data; boundary=" + boundary; } else if (isBlobLike(object)) { action = blobGen; source = object; length = object.size; if (object.type) { contentType = object.type; } } else if (typeof object[Symbol.asyncIterator] === "function") { if (keepalive) { throw new TypeError("keepalive"); } if (util2.isDisturbed(object) || object.locked) { throw new TypeError( "Response body object should not be disturbed or locked" ); } stream2 = object instanceof ReadableStream ? object : ReadableStreamFrom(object); } else { source = toUSVString(object); contentType = "text/plain;charset=UTF-8"; } if (typeof source === "string" || util2.isBuffer(source)) { length = Buffer.byteLength(source); } if (action != null) { let iterator; stream2 = new ReadableStream({ async start() { iterator = action(object)[Symbol.asyncIterator](); }, async pull(controller) { const { value, done } = await iterator.next(); if (done) { queueMicrotask(() => { controller.close(); }); } else { if (!isErrored(stream2)) { controller.enqueue(new Uint8Array(value)); } } return controller.desiredSize > 0; }, async cancel(reason) { await iterator.return(); } }); } else if (!stream2) { stream2 = new ReadableStream({ async pull(controller) { controller.enqueue( typeof source === "string" ? new TextEncoder().encode(source) : source ); queueMicrotask(() => { controller.close(); }); } }); } const body = { stream: stream2, source, length }; return [body, contentType]; } __name(extractBody, "extractBody"); function safelyExtractBody(object, keepalive = false) { if (!ReadableStream) { ReadableStream = require("stream/web").ReadableStream; } if (object instanceof ReadableStream) { assert(!util2.isDisturbed(object), "The body has already been consumed."); assert(!object.locked, "The stream is locked."); } return extractBody(object, keepalive); } __name(safelyExtractBody, "safelyExtractBody"); function cloneBody(body) { const [out1, out2] = body.stream.tee(); body.stream = out1; return { stream: out2, length: body.length, source: body.source }; } __name(cloneBody, "cloneBody"); async function* consumeBody(body) { if (body) { if (isUint8Array(body)) { yield body; } else { const stream2 = body.stream; if (util2.isDisturbed(stream2)) { throw new TypeError("The body has already been consumed."); } if (stream2.locked) { throw new TypeError("The stream is locked."); } stream2[kBodyUsed] = true; yield* stream2; } } } __name(consumeBody, "consumeBody"); function throwIfAborted(state) { if (state.aborted) { throw new DOMException("The operation was aborted.", "AbortError"); } } __name(throwIfAborted, "throwIfAborted"); function bodyMixinMethods(instance) { const methods = { async blob() { if (!(this instanceof instance)) { throw new TypeError("Illegal invocation"); } throwIfAborted(this[kState]); const chunks = []; for await (const chunk of consumeBody(this[kState].body)) { if (!isUint8Array(chunk)) { throw new TypeError("Expected Uint8Array chunk"); } chunks.push(new Blob([chunk])); } return new Blob(chunks, { type: this.headers.get("Content-Type") || "" }); }, async arrayBuffer() { if (!(this instanceof instance)) { throw new TypeError("Illegal invocation"); } throwIfAborted(this[kState]); const contentLength = this.headers.get("content-length"); const encoded = this.headers.has("content-encoding"); if (!encoded && contentLength) { const buffer2 = new Uint8Array(contentLength); let offset2 = 0; for await (const chunk of consumeBody(this[kState].body)) { if (!isUint8Array(chunk)) { throw new TypeError("Expected Uint8Array chunk"); } buffer2.set(chunk, offset2); offset2 += chunk.length; } return buffer2.buffer; } const chunks = []; let size = 0; for await (const chunk of consumeBody(this[kState].body)) { if (!isUint8Array(chunk)) { throw new TypeError("Expected Uint8Array chunk"); } chunks.push(chunk); size += chunk.byteLength; } const buffer = new Uint8Array(size); let offset = 0; for (const chunk of chunks) { buffer.set(chunk, offset); offset += chunk.byteLength; } return buffer.buffer; }, async text() { if (!(this instanceof instance)) { throw new TypeError("Illegal invocation"); } throwIfAborted(this[kState]); let result = ""; const textDecoder = new TextDecoder(); for await (const chunk of consumeBody(this[kState].body)) { if (!isUint8Array(chunk)) { throw new TypeError("Expected Uint8Array chunk"); } result += textDecoder.decode(chunk, { stream: true }); } result += textDecoder.decode(); return result; }, async json() { if (!(this instanceof instance)) { throw new TypeError("Illegal invocation"); } throwIfAborted(this[kState]); return JSON.parse(await this.text()); }, async formData() { if (!(this instanceof instance)) { throw new TypeError("Illegal invocation"); } throwIfAborted(this[kState]); const contentType = this.headers.get("Content-Type"); if (/multipart\/form-data/.test(contentType)) { const headers = {}; for (const [key, value] of this.headers) headers[key.toLowerCase()] = value; const responseFormData = new FormData(); let busboy; try { busboy = Busboy({ headers }); } catch (err) { throw Object.assign(new TypeError(), { cause: err }); } busboy.on("field", (name, value) => { responseFormData.append(name, value); }); busboy.on("file", (name, value, info2) => { const { filename, encoding, mimeType } = info2; const chunks = []; if (encoding.toLowerCase() === "base64") { let base64chunk = ""; value.on("data", (chunk) => { base64chunk += chunk.toString().replace(/[\r\n]/gm, ""); const end = base64chunk.length - base64chunk.length % 4; chunks.push(Buffer.from(base64chunk.slice(0, end), "base64")); base64chunk = base64chunk.slice(end); }); value.on("end", () => { chunks.push(Buffer.from(base64chunk, "base64")); responseFormData.append(name, new File(chunks, filename, { type: mimeType })); }); } else { value.on("data", (chunk) => { chunks.push(chunk); }); value.on("end", () => { responseFormData.append(name, new File(chunks, filename, { type: mimeType })); }); } }); const busboyResolve = new Promise((resolve, reject) => { busboy.on("finish", resolve); busboy.on("error", (err) => reject(err)); }); if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk); busboy.end(); await busboyResolve; return responseFormData; } else if (/application\/x-www-form-urlencoded/.test(contentType)) { let entries; try { let text = ""; const textDecoder = new TextDecoder("utf-8", { ignoreBOM: true }); for await (const chunk of consumeBody(this[kState].body)) { if (!isUint8Array(chunk)) { throw new TypeError("Expected Uint8Array chunk"); } text += textDecoder.decode(chunk, { stream: true }); } text += textDecoder.decode(); entries = new URLSearchParams(text); } catch (err) { throw Object.assign(new TypeError(), { cause: err }); } const formData = new FormData(); for (const [name, value] of entries) { formData.append(name, value); } return formData; } else { await Promise.resolve(); throwIfAborted(this[kState]); webidl.errors.exception({ header: `${instance.name}.formData`, message: "Could not parse content as FormData." }); } } }; return methods; } __name(bodyMixinMethods, "bodyMixinMethods"); var properties = { body: { enumerable: true, get() { if (!this || !this[kState]) { throw new TypeError("Illegal invocation"); } return this[kState].body ? this[kState].body.stream : null; } }, bodyUsed: { enumerable: true, get() { if (!this || !this[kState]) { throw new TypeError("Illegal invocation"); } return !!this[kState].body && util2.isDisturbed(this[kState].body.stream); } } }; function mixinBody(prototype) { Object.assign(prototype.prototype, bodyMixinMethods(prototype)); Object.defineProperties(prototype.prototype, properties); } __name(mixinBody, "mixinBody"); module2.exports = { extractBody, safelyExtractBody, cloneBody, mixinBody }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/request.js var require_request = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/request.js"(exports, module2) { "use strict"; var { InvalidArgumentError, NotSupportedError } = require_errors(); var assert = require("assert"); var util2 = require_util2(); var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; var headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; var invalidPathRegex = /[^\u0021-\u00ff]/; var kHandler = Symbol("handler"); var channels = {}; var extractBody; var nodeVersion = process.versions.node.split("."); var nodeMajor = Number(nodeVersion[0]); var nodeMinor = Number(nodeVersion[1]); try { const diagnosticsChannel = require("diagnostics_channel"); channels.create = diagnosticsChannel.channel("undici:request:create"); channels.bodySent = diagnosticsChannel.channel("undici:request:bodySent"); channels.headers = diagnosticsChannel.channel("undici:request:headers"); channels.trailers = diagnosticsChannel.channel("undici:request:trailers"); channels.error = diagnosticsChannel.channel("undici:request:error"); } catch { channels.create = { hasSubscribers: false }; channels.bodySent = { hasSubscribers: false }; channels.headers = { hasSubscribers: false }; channels.trailers = { hasSubscribers: false }; channels.error = { hasSubscribers: false }; } var Request = class { constructor(origin, { path: path7, method, body, headers, query: query2, idempotent, blocking, upgrade, headersTimeout, bodyTimeout, throwOnError }, handler) { if (typeof path7 !== "string") { throw new InvalidArgumentError("path must be a string"); } else if (path7[0] !== "/" && !(path7.startsWith("http://") || path7.startsWith("https://")) && method !== "CONNECT") { throw new InvalidArgumentError("path must be an absolute URL or start with a slash"); } else if (invalidPathRegex.exec(path7) !== null) { throw new InvalidArgumentError("invalid request path"); } if (typeof method !== "string") { throw new InvalidArgumentError("method must be a string"); } else if (tokenRegExp.exec(method) === null) { throw new InvalidArgumentError("invalid request method"); } if (upgrade && typeof upgrade !== "string") { throw new InvalidArgumentError("upgrade must be a string"); } if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { throw new InvalidArgumentError("invalid headersTimeout"); } if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { throw new InvalidArgumentError("invalid bodyTimeout"); } this.headersTimeout = headersTimeout; this.bodyTimeout = bodyTimeout; this.throwOnError = throwOnError === true; this.method = method; if (body == null) { this.body = null; } else if (util2.isStream(body)) { this.body = body; } else if (util2.isBuffer(body)) { this.body = body.byteLength ? body : null; } else if (ArrayBuffer.isView(body)) { this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; } else if (body instanceof ArrayBuffer) { this.body = body.byteLength ? Buffer.from(body) : null; } else if (typeof body === "string") { this.body = body.length ? Buffer.from(body) : null; } else if (util2.isFormDataLike(body) || util2.isIterable(body) || util2.isBlobLike(body)) { this.body = body; } else { throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable"); } this.completed = false; this.aborted = false; this.upgrade = upgrade || null; this.path = query2 ? util2.buildURL(path7, query2) : path7; this.origin = origin; this.idempotent = idempotent == null ? method === "HEAD" || method === "GET" : idempotent; this.blocking = blocking == null ? false : blocking; this.host = null; this.contentLength = null; this.contentType = null; this.headers = ""; if (Array.isArray(headers)) { if (headers.length % 2 !== 0) { throw new InvalidArgumentError("headers array must be even"); } for (let i = 0; i < headers.length; i += 2) { processHeader(this, headers[i], headers[i + 1]); } } else if (headers && typeof headers === "object") { const keys2 = Object.keys(headers); for (let i = 0; i < keys2.length; i++) { const key = keys2[i]; processHeader(this, key, headers[key]); } } else if (headers != null) { throw new InvalidArgumentError("headers must be an object or an array"); } if (util2.isFormDataLike(this.body)) { if (nodeMajor < 16 || nodeMajor === 16 && nodeMinor < 8) { throw new InvalidArgumentError("Form-Data bodies are only supported in node v16.8 and newer."); } if (!extractBody) { extractBody = require_body().extractBody; } const [bodyStream, contentType] = extractBody(body); if (this.contentType == null) { this.contentType = contentType; this.headers += `content-type: ${contentType}\r `; } this.body = bodyStream.stream; } else if (util2.isBlobLike(body) && this.contentType == null && body.type) { this.contentType = body.type; this.headers += `content-type: ${body.type}\r `; } util2.validateHandler(handler, method, upgrade); this.servername = util2.getServerName(this.host); this[kHandler] = handler; if (channels.create.hasSubscribers) { channels.create.publish({ request: this }); } } onBodySent(chunk) { if (this[kHandler].onBodySent) { try { this[kHandler].onBodySent(chunk); } catch (err) { this.onError(err); } } } onRequestSent() { if (channels.bodySent.hasSubscribers) { channels.bodySent.publish({ request: this }); } } onConnect(abort) { assert(!this.aborted); assert(!this.completed); return this[kHandler].onConnect(abort); } onHeaders(statusCode, headers, resume, statusText) { assert(!this.aborted); assert(!this.completed); if (channels.headers.hasSubscribers) { channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); } return this[kHandler].onHeaders(statusCode, headers, resume, statusText); } onData(chunk) { assert(!this.aborted); assert(!this.completed); return this[kHandler].onData(chunk); } onUpgrade(statusCode, headers, socket) { assert(!this.aborted); assert(!this.completed); return this[kHandler].onUpgrade(statusCode, headers, socket); } onComplete(trailers) { assert(!this.aborted); this.completed = true; if (channels.trailers.hasSubscribers) { channels.trailers.publish({ request: this, trailers }); } return this[kHandler].onComplete(trailers); } onError(error2) { if (channels.error.hasSubscribers) { channels.error.publish({ request: this, error: error2 }); } if (this.aborted) { return; } this.aborted = true; return this[kHandler].onError(error2); } addHeader(key, value) { processHeader(this, key, value); return this; } }; __name(Request, "Request"); function processHeader(request2, key, val) { if (val && typeof val === "object") { throw new InvalidArgumentError(`invalid ${key} header`); } else if (val === void 0) { return; } if (request2.host === null && key.length === 4 && key.toLowerCase() === "host") { request2.host = val; } else if (request2.contentLength === null && key.length === 14 && key.toLowerCase() === "content-length") { request2.contentLength = parseInt(val, 10); if (!Number.isFinite(request2.contentLength)) { throw new InvalidArgumentError("invalid content-length header"); } } else if (request2.contentType === null && key.length === 12 && key.toLowerCase() === "content-type" && headerCharRegex.exec(val) === null) { request2.contentType = val; request2.headers += `${key}: ${val}\r `; } else if (key.length === 17 && key.toLowerCase() === "transfer-encoding") { throw new InvalidArgumentError("invalid transfer-encoding header"); } else if (key.length === 10 && key.toLowerCase() === "connection") { throw new InvalidArgumentError("invalid connection header"); } else if (key.length === 10 && key.toLowerCase() === "keep-alive") { throw new InvalidArgumentError("invalid keep-alive header"); } else if (key.length === 7 && key.toLowerCase() === "upgrade") { throw new InvalidArgumentError("invalid upgrade header"); } else if (key.length === 6 && key.toLowerCase() === "expect") { throw new NotSupportedError("expect header not supported"); } else if (tokenRegExp.exec(key) === null) { throw new InvalidArgumentError("invalid header key"); } else if (headerCharRegex.exec(val) !== null) { throw new InvalidArgumentError(`invalid ${key} header`); } else { request2.headers += `${key}: ${val}\r `; } } __name(processHeader, "processHeader"); module2.exports = Request; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/dispatcher.js var require_dispatcher = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/dispatcher.js"(exports, module2) { "use strict"; var EventEmitter3 = require("events"); var Dispatcher = class extends EventEmitter3 { dispatch() { throw new Error("not implemented"); } close() { throw new Error("not implemented"); } destroy() { throw new Error("not implemented"); } }; __name(Dispatcher, "Dispatcher"); module2.exports = Dispatcher; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/dispatcher-base.js var require_dispatcher_base = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/dispatcher-base.js"(exports, module2) { "use strict"; var Dispatcher = require_dispatcher(); var { ClientDestroyedError, ClientClosedError, InvalidArgumentError } = require_errors(); var { kDestroy, kClose, kDispatch, kInterceptors } = require_symbols(); var kDestroyed = Symbol("destroyed"); var kClosed = Symbol("closed"); var kOnDestroyed = Symbol("onDestroyed"); var kOnClosed = Symbol("onClosed"); var kInterceptedDispatch = Symbol("Intercepted Dispatch"); var DispatcherBase = class extends Dispatcher { constructor() { super(); this[kDestroyed] = false; this[kOnDestroyed] = []; this[kClosed] = false; this[kOnClosed] = []; } get destroyed() { return this[kDestroyed]; } get closed() { return this[kClosed]; } get interceptors() { return this[kInterceptors]; } set interceptors(newInterceptors) { if (newInterceptors) { for (let i = newInterceptors.length - 1; i >= 0; i--) { const interceptor = this[kInterceptors][i]; if (typeof interceptor !== "function") { throw new InvalidArgumentError("interceptor must be an function"); } } } this[kInterceptors] = newInterceptors; } close(callback) { if (callback === void 0) { return new Promise((resolve, reject) => { this.close((err, data) => { return err ? reject(err) : resolve(data); }); }); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (this[kDestroyed]) { queueMicrotask(() => callback(new ClientDestroyedError(), null)); return; } if (this[kClosed]) { if (this[kOnClosed]) { this[kOnClosed].push(callback); } else { queueMicrotask(() => callback(null, null)); } return; } this[kClosed] = true; this[kOnClosed].push(callback); const onClosed = /* @__PURE__ */ __name(() => { const callbacks = this[kOnClosed]; this[kOnClosed] = null; for (let i = 0; i < callbacks.length; i++) { callbacks[i](null, null); } }, "onClosed"); this[kClose]().then(() => this.destroy()).then(() => { queueMicrotask(onClosed); }); } destroy(err, callback) { if (typeof err === "function") { callback = err; err = null; } if (callback === void 0) { return new Promise((resolve, reject) => { this.destroy(err, (err2, data) => { return err2 ? reject(err2) : resolve(data); }); }); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (this[kDestroyed]) { if (this[kOnDestroyed]) { this[kOnDestroyed].push(callback); } else { queueMicrotask(() => callback(null, null)); } return; } if (!err) { err = new ClientDestroyedError(); } this[kDestroyed] = true; this[kOnDestroyed].push(callback); const onDestroyed = /* @__PURE__ */ __name(() => { const callbacks = this[kOnDestroyed]; this[kOnDestroyed] = null; for (let i = 0; i < callbacks.length; i++) { callbacks[i](null, null); } }, "onDestroyed"); this[kDestroy](err).then(() => { queueMicrotask(onDestroyed); }); } [kInterceptedDispatch](opts, handler) { if (!this[kInterceptors] || this[kInterceptors].length === 0) { this[kInterceptedDispatch] = this[kDispatch]; return this[kDispatch](opts, handler); } let dispatch = this[kDispatch].bind(this); for (let i = this[kInterceptors].length - 1; i >= 0; i--) { dispatch = this[kInterceptors][i](dispatch); } this[kInterceptedDispatch] = dispatch; return dispatch(opts, handler); } dispatch(opts, handler) { if (!handler || typeof handler !== "object") { throw new InvalidArgumentError("handler must be an object"); } try { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("opts must be an object."); } if (this[kDestroyed]) { throw new ClientDestroyedError(); } if (this[kClosed]) { throw new ClientClosedError(); } return this[kInterceptedDispatch](opts, handler); } catch (err) { if (typeof handler.onError !== "function") { throw new InvalidArgumentError("invalid onError method"); } handler.onError(err); return false; } } }; __name(DispatcherBase, "DispatcherBase"); module2.exports = DispatcherBase; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/connect.js var require_connect = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/core/connect.js"(exports, module2) { "use strict"; var net2 = require("net"); var assert = require("assert"); var util2 = require_util2(); var { InvalidArgumentError, ConnectTimeoutError } = require_errors(); var tls; function buildConnector({ maxCachedSessions, socketPath, timeout, ...opts }) { if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero"); } const options = { path: socketPath, ...opts }; const sessionCache = /* @__PURE__ */ new Map(); timeout = timeout == null ? 1e4 : timeout; maxCachedSessions = maxCachedSessions == null ? 100 : maxCachedSessions; return /* @__PURE__ */ __name(function connect({ hostname, host, protocol, port, servername, httpSocket }, callback) { let socket; if (protocol === "https:") { if (!tls) { tls = require("tls"); } servername = servername || options.servername || util2.getServerName(host) || null; const sessionKey = servername || hostname; const session = sessionCache.get(sessionKey) || null; assert(sessionKey); socket = tls.connect({ highWaterMark: 16384, ...options, servername, session, socket: httpSocket, port: port || 443, host: hostname }); socket.on("session", function(session2) { if (maxCachedSessions === 0) { return; } if (sessionCache.size >= maxCachedSessions) { const { value: oldestKey } = sessionCache.keys().next(); sessionCache.delete(oldestKey); } sessionCache.set(sessionKey, session2); }).on("error", function(err) { if (sessionKey && err.code !== "UND_ERR_INFO") { sessionCache.delete(sessionKey); } }); } else { assert(!httpSocket, "httpSocket can only be sent on TLS update"); socket = net2.connect({ highWaterMark: 64 * 1024, ...options, port: port || 80, host: hostname }); } const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout); socket.setNoDelay(true).once(protocol === "https:" ? "secureConnect" : "connect", function() { cancelTimeout(); if (callback) { const cb = callback; callback = null; cb(null, this); } }).on("error", function(err) { cancelTimeout(); if (callback) { const cb = callback; callback = null; cb(err); } }); return socket; }, "connect"); } __name(buildConnector, "buildConnector"); function setupTimeout(onConnectTimeout2, timeout) { if (!timeout) { return () => { }; } let s1 = null; let s2 = null; const timeoutId = setTimeout(() => { s1 = setImmediate(() => { if (process.platform === "win32") { s2 = setImmediate(() => onConnectTimeout2()); } else { onConnectTimeout2(); } }); }, timeout); return () => { clearTimeout(timeoutId); clearImmediate(s1); clearImmediate(s2); }; } __name(setupTimeout, "setupTimeout"); function onConnectTimeout(socket) { util2.destroy(socket, new ConnectTimeoutError()); } __name(onConnectTimeout, "onConnectTimeout"); module2.exports = buildConnector; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/llhttp/utils.js var require_utils2 = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/llhttp/utils.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.enumToMap = void 0; function enumToMap(obj) { const res = {}; Object.keys(obj).forEach((key) => { const value = obj[key]; if (typeof value === "number") { res[key] = value; } }); return res; } __name(enumToMap, "enumToMap"); exports.enumToMap = enumToMap; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/llhttp/constants.js var require_constants2 = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/llhttp/constants.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; var utils_1 = require_utils2(); var ERROR; (function(ERROR2) { ERROR2[ERROR2["OK"] = 0] = "OK"; ERROR2[ERROR2["INTERNAL"] = 1] = "INTERNAL"; ERROR2[ERROR2["STRICT"] = 2] = "STRICT"; ERROR2[ERROR2["LF_EXPECTED"] = 3] = "LF_EXPECTED"; ERROR2[ERROR2["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; ERROR2[ERROR2["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; ERROR2[ERROR2["INVALID_METHOD"] = 6] = "INVALID_METHOD"; ERROR2[ERROR2["INVALID_URL"] = 7] = "INVALID_URL"; ERROR2[ERROR2["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; ERROR2[ERROR2["INVALID_VERSION"] = 9] = "INVALID_VERSION"; ERROR2[ERROR2["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; ERROR2[ERROR2["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; ERROR2[ERROR2["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; ERROR2[ERROR2["INVALID_STATUS"] = 13] = "INVALID_STATUS"; ERROR2[ERROR2["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; ERROR2[ERROR2["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; ERROR2[ERROR2["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; ERROR2[ERROR2["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; ERROR2[ERROR2["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; ERROR2[ERROR2["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; ERROR2[ERROR2["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; ERROR2[ERROR2["PAUSED"] = 21] = "PAUSED"; ERROR2[ERROR2["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; ERROR2[ERROR2["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; ERROR2[ERROR2["USER"] = 24] = "USER"; })(ERROR = exports.ERROR || (exports.ERROR = {})); var TYPE; (function(TYPE2) { TYPE2[TYPE2["BOTH"] = 0] = "BOTH"; TYPE2[TYPE2["REQUEST"] = 1] = "REQUEST"; TYPE2[TYPE2["RESPONSE"] = 2] = "RESPONSE"; })(TYPE = exports.TYPE || (exports.TYPE = {})); var FLAGS; (function(FLAGS2) { FLAGS2[FLAGS2["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; FLAGS2[FLAGS2["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; FLAGS2[FLAGS2["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; FLAGS2[FLAGS2["CHUNKED"] = 8] = "CHUNKED"; FLAGS2[FLAGS2["UPGRADE"] = 16] = "UPGRADE"; FLAGS2[FLAGS2["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; FLAGS2[FLAGS2["SKIPBODY"] = 64] = "SKIPBODY"; FLAGS2[FLAGS2["TRAILING"] = 128] = "TRAILING"; FLAGS2[FLAGS2["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; })(FLAGS = exports.FLAGS || (exports.FLAGS = {})); var LENIENT_FLAGS; (function(LENIENT_FLAGS2) { LENIENT_FLAGS2[LENIENT_FLAGS2["HEADERS"] = 1] = "HEADERS"; LENIENT_FLAGS2[LENIENT_FLAGS2["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; LENIENT_FLAGS2[LENIENT_FLAGS2["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; })(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); var METHODS; (function(METHODS2) { METHODS2[METHODS2["DELETE"] = 0] = "DELETE"; METHODS2[METHODS2["GET"] = 1] = "GET"; METHODS2[METHODS2["HEAD"] = 2] = "HEAD"; METHODS2[METHODS2["POST"] = 3] = "POST"; METHODS2[METHODS2["PUT"] = 4] = "PUT"; METHODS2[METHODS2["CONNECT"] = 5] = "CONNECT"; METHODS2[METHODS2["OPTIONS"] = 6] = "OPTIONS"; METHODS2[METHODS2["TRACE"] = 7] = "TRACE"; METHODS2[METHODS2["COPY"] = 8] = "COPY"; METHODS2[METHODS2["LOCK"] = 9] = "LOCK"; METHODS2[METHODS2["MKCOL"] = 10] = "MKCOL"; METHODS2[METHODS2["MOVE"] = 11] = "MOVE"; METHODS2[METHODS2["PROPFIND"] = 12] = "PROPFIND"; METHODS2[METHODS2["PROPPATCH"] = 13] = "PROPPATCH"; METHODS2[METHODS2["SEARCH"] = 14] = "SEARCH"; METHODS2[METHODS2["UNLOCK"] = 15] = "UNLOCK"; METHODS2[METHODS2["BIND"] = 16] = "BIND"; METHODS2[METHODS2["REBIND"] = 17] = "REBIND"; METHODS2[METHODS2["UNBIND"] = 18] = "UNBIND"; METHODS2[METHODS2["ACL"] = 19] = "ACL"; METHODS2[METHODS2["REPORT"] = 20] = "REPORT"; METHODS2[METHODS2["MKACTIVITY"] = 21] = "MKACTIVITY"; METHODS2[METHODS2["CHECKOUT"] = 22] = "CHECKOUT"; METHODS2[METHODS2["MERGE"] = 23] = "MERGE"; METHODS2[METHODS2["M-SEARCH"] = 24] = "M-SEARCH"; METHODS2[METHODS2["NOTIFY"] = 25] = "NOTIFY"; METHODS2[METHODS2["SUBSCRIBE"] = 26] = "SUBSCRIBE"; METHODS2[METHODS2["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; METHODS2[METHODS2["PATCH"] = 28] = "PATCH"; METHODS2[METHODS2["PURGE"] = 29] = "PURGE"; METHODS2[METHODS2["MKCALENDAR"] = 30] = "MKCALENDAR"; METHODS2[METHODS2["LINK"] = 31] = "LINK"; METHODS2[METHODS2["UNLINK"] = 32] = "UNLINK"; METHODS2[METHODS2["SOURCE"] = 33] = "SOURCE"; METHODS2[METHODS2["PRI"] = 34] = "PRI"; METHODS2[METHODS2["DESCRIBE"] = 35] = "DESCRIBE"; METHODS2[METHODS2["ANNOUNCE"] = 36] = "ANNOUNCE"; METHODS2[METHODS2["SETUP"] = 37] = "SETUP"; METHODS2[METHODS2["PLAY"] = 38] = "PLAY"; METHODS2[METHODS2["PAUSE"] = 39] = "PAUSE"; METHODS2[METHODS2["TEARDOWN"] = 40] = "TEARDOWN"; METHODS2[METHODS2["GET_PARAMETER"] = 41] = "GET_PARAMETER"; METHODS2[METHODS2["SET_PARAMETER"] = 42] = "SET_PARAMETER"; METHODS2[METHODS2["REDIRECT"] = 43] = "REDIRECT"; METHODS2[METHODS2["RECORD"] = 44] = "RECORD"; METHODS2[METHODS2["FLUSH"] = 45] = "FLUSH"; })(METHODS = exports.METHODS || (exports.METHODS = {})); exports.METHODS_HTTP = [ METHODS.DELETE, METHODS.GET, METHODS.HEAD, METHODS.POST, METHODS.PUT, METHODS.CONNECT, METHODS.OPTIONS, METHODS.TRACE, METHODS.COPY, METHODS.LOCK, METHODS.MKCOL, METHODS.MOVE, METHODS.PROPFIND, METHODS.PROPPATCH, METHODS.SEARCH, METHODS.UNLOCK, METHODS.BIND, METHODS.REBIND, METHODS.UNBIND, METHODS.ACL, METHODS.REPORT, METHODS.MKACTIVITY, METHODS.CHECKOUT, METHODS.MERGE, METHODS["M-SEARCH"], METHODS.NOTIFY, METHODS.SUBSCRIBE, METHODS.UNSUBSCRIBE, METHODS.PATCH, METHODS.PURGE, METHODS.MKCALENDAR, METHODS.LINK, METHODS.UNLINK, METHODS.PRI, METHODS.SOURCE ]; exports.METHODS_ICE = [ METHODS.SOURCE ]; exports.METHODS_RTSP = [ METHODS.OPTIONS, METHODS.DESCRIBE, METHODS.ANNOUNCE, METHODS.SETUP, METHODS.PLAY, METHODS.PAUSE, METHODS.TEARDOWN, METHODS.GET_PARAMETER, METHODS.SET_PARAMETER, METHODS.REDIRECT, METHODS.RECORD, METHODS.FLUSH, METHODS.GET, METHODS.POST ]; exports.METHOD_MAP = utils_1.enumToMap(METHODS); exports.H_METHOD_MAP = {}; Object.keys(exports.METHOD_MAP).forEach((key) => { if (/^H/.test(key)) { exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]; } }); var FINISH; (function(FINISH2) { FINISH2[FINISH2["SAFE"] = 0] = "SAFE"; FINISH2[FINISH2["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; FINISH2[FINISH2["UNSAFE"] = 2] = "UNSAFE"; })(FINISH = exports.FINISH || (exports.FINISH = {})); exports.ALPHA = []; for (let i = "A".charCodeAt(0); i <= "Z".charCodeAt(0); i++) { exports.ALPHA.push(String.fromCharCode(i)); exports.ALPHA.push(String.fromCharCode(i + 32)); } exports.NUM_MAP = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9 }; exports.HEX_MAP = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15 }; exports.NUM = [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ]; exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); exports.MARK = ["-", "_", ".", "!", "~", "*", "'", "(", ")"]; exports.USERINFO_CHARS = exports.ALPHANUM.concat(exports.MARK).concat(["%", ";", ":", "&", "=", "+", "$", ","]); exports.STRICT_URL_CHAR = [ "!", '"', "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "@", "[", "\\", "]", "^", "_", "`", "{", "|", "}", "~" ].concat(exports.ALPHANUM); exports.URL_CHAR = exports.STRICT_URL_CHAR.concat([" ", "\f"]); for (let i = 128; i <= 255; i++) { exports.URL_CHAR.push(i); } exports.HEX = exports.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]); exports.STRICT_TOKEN = [ "!", "#", "$", "%", "&", "'", "*", "+", "-", ".", "^", "_", "`", "|", "~" ].concat(exports.ALPHANUM); exports.TOKEN = exports.STRICT_TOKEN.concat([" "]); exports.HEADER_CHARS = [" "]; for (let i = 32; i <= 255; i++) { if (i !== 127) { exports.HEADER_CHARS.push(i); } } exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); exports.MAJOR = exports.NUM_MAP; exports.MINOR = exports.MAJOR; var HEADER_STATE; (function(HEADER_STATE2) { HEADER_STATE2[HEADER_STATE2["GENERAL"] = 0] = "GENERAL"; HEADER_STATE2[HEADER_STATE2["CONNECTION"] = 1] = "CONNECTION"; HEADER_STATE2[HEADER_STATE2["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; HEADER_STATE2[HEADER_STATE2["UPGRADE"] = 4] = "UPGRADE"; HEADER_STATE2[HEADER_STATE2["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; HEADER_STATE2[HEADER_STATE2["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; HEADER_STATE2[HEADER_STATE2["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; })(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); exports.SPECIAL_HEADERS = { "connection": HEADER_STATE.CONNECTION, "content-length": HEADER_STATE.CONTENT_LENGTH, "proxy-connection": HEADER_STATE.CONNECTION, "transfer-encoding": HEADER_STATE.TRANSFER_ENCODING, "upgrade": HEADER_STATE.UPGRADE }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/handler/RedirectHandler.js var require_RedirectHandler = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/handler/RedirectHandler.js"(exports, module2) { "use strict"; var util2 = require_util2(); var { kBodyUsed } = require_symbols(); var assert = require("assert"); var { InvalidArgumentError } = require_errors(); var EE = require("events"); var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; var kBody = Symbol("body"); var BodyAsyncIterable = class { constructor(body) { this[kBody] = body; this[kBodyUsed] = false; } async *[Symbol.asyncIterator]() { assert(!this[kBodyUsed], "disturbed"); this[kBodyUsed] = true; yield* this[kBody]; } }; __name(BodyAsyncIterable, "BodyAsyncIterable"); var RedirectHandler = class { constructor(dispatch, maxRedirections, opts, handler) { if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } util2.validateHandler(handler, opts.method, opts.upgrade); this.dispatch = dispatch; this.location = null; this.abort = null; this.opts = { ...opts, maxRedirections: 0 }; this.maxRedirections = maxRedirections; this.handler = handler; this.history = []; if (util2.isStream(this.opts.body)) { if (util2.bodyLength(this.opts.body) === 0) { this.opts.body.on("data", function() { assert(false); }); } if (typeof this.opts.body.readableDidRead !== "boolean") { this.opts.body[kBodyUsed] = false; EE.prototype.on.call(this.opts.body, "data", function() { this[kBodyUsed] = true; }); } } else if (this.opts.body && typeof this.opts.body.pipeTo === "function") { this.opts.body = new BodyAsyncIterable(this.opts.body); } else if (this.opts.body && typeof this.opts.body !== "string" && !ArrayBuffer.isView(this.opts.body) && util2.isIterable(this.opts.body)) { this.opts.body = new BodyAsyncIterable(this.opts.body); } } onConnect(abort) { this.abort = abort; this.handler.onConnect(abort, { history: this.history }); } onUpgrade(statusCode, headers, socket) { this.handler.onUpgrade(statusCode, headers, socket); } onError(error2) { this.handler.onError(error2); } onHeaders(statusCode, headers, resume, statusText) { this.location = this.history.length >= this.maxRedirections || util2.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers); if (this.opts.origin) { this.history.push(new URL(this.opts.path, this.opts.origin)); } if (!this.location) { return this.handler.onHeaders(statusCode, headers, resume, statusText); } const { origin, pathname, search } = util2.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); const path7 = search ? `${pathname}${search}` : pathname; this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin); this.opts.path = path7; this.opts.origin = origin; this.opts.maxRedirections = 0; if (statusCode === 303 && this.opts.method !== "HEAD") { this.opts.method = "GET"; this.opts.body = null; } } onData(chunk) { if (this.location) { } else { return this.handler.onData(chunk); } } onComplete(trailers) { if (this.location) { this.location = null; this.abort = null; this.dispatch(this.opts, this); } else { this.handler.onComplete(trailers); } } onBodySent(chunk) { if (this.handler.onBodySent) { this.handler.onBodySent(chunk); } } }; __name(RedirectHandler, "RedirectHandler"); function parseLocation(statusCode, headers) { if (redirectableStatusCodes.indexOf(statusCode) === -1) { return null; } for (let i = 0; i < headers.length; i += 2) { if (headers[i].toString().toLowerCase() === "location") { return headers[i + 1]; } } } __name(parseLocation, "parseLocation"); function shouldRemoveHeader(header, removeContent, unknownOrigin) { return header.length === 4 && header.toString().toLowerCase() === "host" || removeContent && header.toString().toLowerCase().indexOf("content-") === 0 || unknownOrigin && header.length === 13 && header.toString().toLowerCase() === "authorization" || unknownOrigin && header.length === 6 && header.toString().toLowerCase() === "cookie"; } __name(shouldRemoveHeader, "shouldRemoveHeader"); function cleanRequestHeaders(headers, removeContent, unknownOrigin) { const ret = []; if (Array.isArray(headers)) { for (let i = 0; i < headers.length; i += 2) { if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { ret.push(headers[i], headers[i + 1]); } } } else if (headers && typeof headers === "object") { for (const key of Object.keys(headers)) { if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { ret.push(key, headers[key]); } } } else { assert(headers == null, "headers must be an object or an array"); } return ret; } __name(cleanRequestHeaders, "cleanRequestHeaders"); module2.exports = RedirectHandler; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/interceptor/redirectInterceptor.js var require_redirectInterceptor = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/interceptor/redirectInterceptor.js"(exports, module2) { "use strict"; var RedirectHandler = require_RedirectHandler(); function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { return (dispatch) => { return /* @__PURE__ */ __name(function Intercept(opts, handler) { const { maxRedirections = defaultMaxRedirections } = opts; if (!maxRedirections) { return dispatch(opts, handler); } const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler); opts = { ...opts, maxRedirections: 0 }; return dispatch(opts, redirectHandler); }, "Intercept"); }; } __name(createRedirectInterceptor, "createRedirectInterceptor"); module2.exports = createRedirectInterceptor; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/llhttp/llhttp.wasm.js var require_llhttp_wasm = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/llhttp/llhttp.wasm.js"(exports, module2) { module2.exports = "AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGAuAQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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f2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQYgEcUGABEYNAiAEQShxRQ0CC0EADwtBAEEDIAApAyBQGyEFCyAFC10BAn9BACEBAkAgAC0AKEEBRg0AIAAvATIiAkGcf2pB5ABJDQAgAkHMAUYNACACQbACRg0AIAAvATAiAEHAAHENAEEBIQEgAEGIBHFBgARGDQAgAEEocUUhAQsgAQuiAQEDfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEDIAAvATAiBEECcUUNAQwCC0EAIQMgAC8BMCIEQQFxRQ0BC0EBIQMgAC0AKEEBRg0AIAAvATIiBUGcf2pB5ABJDQAgBUHMAUYNACAFQbACRg0AIARBwABxDQBBACEDIARBiARxQYAERg0AIARBKHFBAEchAwsgAEEAOwEwIABBADoALyADC5QBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQEgAC8BMCICQQJxRQ0BDAILQQAhASAALwEwIgJBAXFFDQELQQEhASAALQAoQQFGDQAgAC8BMiIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC08AIABBGGpCADcDACAAQgA3AwAgAEEwakIANwMAIABBKGpCADcDACAAQSBqQgA3AwAgAEEQakIANwMAIABBCGpCADcDACAAQbwBNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQuICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC9POAQMcfwN+BX8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDyABIRAgASERIAEhEiABIRMgASEUIAEhFSABIRYgASEXIAEhGCABIRkgASEaIAEhGyABIRwgASEdAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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HgwTC0GZASEeDBILQZ0BIR4MEQtBmgEhHgwQC0EBIR4MDwtBmwEhHgwOC0GcASEeDA0LQZ4BIR4MDAtBoAEhHgwLC0GfASEeDAoLQaEBIR4MCQtBogEhHgwIC0GjASEeDAcLQaQBIR4MBgtBpQEhHgwFC0GmASEeDAQLQacBIR4MAwtBqAEhHgwCC0GpASEeDAELQa8BIR4LA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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AbsBuwG7AbsBuwG7AbsBuwG7AQG7AQsgCEEBaiEBQdQAIR4MmAILIAhBAWohAUHVACEeDJcCC0HnACEeIAEiIiACRg2mAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB7bOAgABqLQAARw25ASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMpwILIABBADYCACAiICZrQQNqIQFBECEeDLYBC0HoACEeIAEiIiACRg2lAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB9rKAgABqLQAARw24ASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMpgILIABBADYCACAiICZrQQZqIQFBFiEeDLUBC0HpACEeIAEiIiACRg2kAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB/LKAgABqLQAARw23ASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMpQILIABBADYCACAiICZrQQRqIQFBBSEeDLQBCwJAIAEiCCACRw0AQeoAIR4MpAILIAgtAABB2QBHDbUBIAhBAWohAUEIIR4MswELAkAgASIIIAJHDQBB6wAhHgyjAgsCQAJAIAgtAABBsn9qDgMAtgEBtgELIAhBAWohAUHZACEeDJMCCyAIQQFqIQFB2gAhHgySAgsCQCABIgggAkcNAEHsACEeDKICCwJAAkAgCC0AAEG4f2oOCAC1AbUBtQG1AbUBtQEBtQELIAhBAWohAUHYACEeDJICCyAIQQFqIQFB2wAhHgyRAgtB7QAhHiABIiIgAkYNoAIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQYCzgIAAai0AAEcNswEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKECC0EAIR4gAEEANgIAICIgJmtBA2ohAQywAQtB7gAhHiABIiIgAkYNnwIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQYOzgIAAai0AAEcNsgEgAUEERg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKACCyAAQQA2AgAgIiAma0EFaiEBQSMhHgyvAQsCQCABIgggAkcN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ImohJiAeIQggIiEBAkADQCAILQAAIAFBp7OAgABqLQAARw2gASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBgAEhHgyOAgsgAEEANgIAIB4gImtBAmohAUELIR4MnQELAkAgASIIIAJHDQBBgQEhHgyNAgsCQAJAAkACQCAILQAAQVNqDiMAogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAQGiAaIBogGiAaIBAqIBogGiAQOiAQsgCEEBaiEBQekAIR4M/wELIAhBAWohAUHqACEeDP4BCyAIQQFqIQFB7wAhHgz9AQsgCEEBaiEBQfAAIR4M/AELAkAgASIeIAJHDQBBggEhHgyMAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQamzgIAAai0AAEcNngEgAUEERg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYIBIR4MjAILIABBADYCACAeICJrQQVqIQFBGSEeDJsBCwJAIAEiIiACRw0AQYMBIR4MiwILIAIgImsgACgCACImaiEeICIhCCAmIQECQANAIAgtAAAgAUGus4CAAGotAABHDZ0BIAFBBUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgHjYCAEGDASEeDIsCCyAAQQA2AgBBBiEeICIgJmtBBmohAQyaAQsCQCABIh4gAkcNAEGEASEeDIoCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBtLOAgABqLQAARw2cASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBhAEhHgyKAgsgAEEANgIAIB4gImtBAmohAUEcIR4MmQELAkAgASIeIAJHDQBBhQEhHgyJAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQbazgIAAai0AAEcNmwEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYUBIR4MiQILIABBADYCACAeICJrQQJqIQFBJyEeDJgBCwJAIAEiCCACRw0AQYYBIR4MiAILAkACQCAILQAAQax/ag4CAAGbAQsgCEEBaiEBQfQAIR4M+AELIAhBAWohAUH1ACEeDPcBCwJAIAEiHiAC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IiEBDDELIABBxAA2AhwgACAiNgIUIAAgATYCDEEAIR4MeQsgACgCBCEBIABBADYCBAJAIAAgASAiEKSAgIAAIgENACAiIQEMMQsgAEHFADYCHCAAICI2AhQgACABNgIMQQAhHgx4CyAAKAIEIQEgAEEANgIEAkAgACABICIQpICAgAAiAQ0AICIhAQw1CyAAQdAANgIcIAAgIjYCFCAAIAE2AgxBACEeDHcLIABBADYCHCAAICI2AhQgAEHQjICAADYCECAAQQc2AgxBACEeDHYLIABBADYCHCAAIAE2AhQgAEHQjICAADYCECAAQQc2AgxBACEeDHULQQAhHiAAQQA2AhwgACAiNgIUIABBv5SAgAA2AhAgAEEHNgIMDHQLIABBADYCHCAAICI2AhQgAEG/lICAADYCECAAQQc2AgxBACEeDHMLIABBADYCHCAAICI2AhQgAEHUjoCAADYCECAAQQc2AgxBACEeDHILIABBADYCHCAAIAE2AhQgAEHBk4CAADYCECAAQQY2AgxBACEeDHELIABBADYCACAiICZrQQZqIQFBJCEeCyAAIB46ACkgASEBDE4LIABBADYCAAtBACEeIABBADYCHCAAIAg2AhQgAEGklICAADYCECAAQQY2AgwMbQsgACgCBCETIABBADYCBCAAIBMgHhCmgICAACITDQEgHkEBaiETC0GdASEeDFsLIABBqgE2AhwgACATNgIMIAAgHkEBajYCFEEAIR4MagsgACgCBCEUIABBADYCBCAAIBQgHhCmgICAACIUDQEgHkEBaiEUC0GaASEeDFgLIABBqwE2AhwgACAUNgIMIAAgHkEBajYCFEEAIR4MZwsgAEEANgIcIAAgFTYCFCAAQfOKgIAANgIQIABBDTYCDEEAIR4MZgsgAEEANgIcIAAgFjYCFCAAQc6NgIAANgIQIABBCTYCDEEAIR4MZQtBASEeCyAAIB46ACsgF0EBaiEWDC4LIABBADYCHCAAIBc2AhQgAEGijYCAADYCECAAQQk2AgxBACEeDGILIABBADYCHCAAIBg2AhQgAEHFioCAADYCECAAQQk2AgxBACEeDGELQQEhHgsgACAeOgAqIBlBAWohGAwsCyAAQQA2AhwgACAZNgIUIABBuI2AgAA2AhAgAEEJNgIMQQAhHgxeCyAAQQA2AhwgACAZNgIUIABB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QR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAFBGGogBDYCACABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQRhqQQA2AgAgASAENgIMIAEgADYCCAtBAEEAKAKotICAAEF/aiIBQX8gARs2Aqi0gIAACwtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+LeAgABBfw8LIABBEHQPCxC/gICAAAALBAAAAAsLjiwBAEGACAuGLAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgcGFyYW1ldGVycwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABNS0FDVElWSVRZAENPUFkATk9USUZZAFBMQVkAUFVUAENIRUNLT1VUAFBPU1QAUkVQT1JUAEhQRV9JTlZBTElEX0NPTlNUQU5UAEdFVABIUEVfU1RSSUNUAFJFRElSRUNUAENPTk5FQ1QASFBFX0lOVkFMSURfU1RBVFVTAE9QVElPTlMAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASFBFX0lOVkFMSURfVVJMAE1LQ09MAEFDTABIUEVfSU5URVJOQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBQQVVTRQBQVVJHRQBNRVJHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAFBST1BGSU5EAFVO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AAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/llhttp/llhttp_simd.wasm.js var require_llhttp_simd_wasm = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/llhttp/llhttp_simd.wasm.js"(exports, module2) { module2.exports = "AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGAuAQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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ASEeDBELQZoBIR4MEAtBASEeDA8LQZsBIR4MDgtBnAEhHgwNC0GeASEeDAwLQaABIR4MCwtBnwEhHgwKC0GhASEeDAkLQaIBIR4MCAtBowEhHgwHC0GkASEeDAYLQaUBIR4MBQtBpgEhHgwEC0GnASEeDAMLQagBIR4MAgtBqQEhHgwBC0GvASEeCwNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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IAgtAABBtH9qDggAsgGyAbIBsgGyAbIBAbIBCyAIQQFqIQFB3QAhHgyPAgsgCEEBaiEBQd4AIR4MjgILAkAgASIIIAJHDQBB8AAhHgyeAgsgCC0AAEHFAEcNrwEgCEEBaiEBDN4BC0HxACEeIAEiIiACRg2cAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFBiLOAgABqLQAARw2vASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMnQILIABBADYCACAiICZrQQRqIQFBLSEeDKwBC0HyACEeIAEiIiACRg2bAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB0LOAgABqLQAARw2uASABQQhGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMnAILIABBADYCACAiICZrQQlqIQFBKSEeDKsBCwJAIAEiASACRw0AQfMAIR4MmwILQQEhHiABLQAAQd8ARw2qASABQQFqIQEM3AELQfQAIR4gASIiIAJGDZkCIAIgImsgACgCACImaiEjICIhCCAmIQEDQCAILQAAIAFBjLOAgABqLQAARw2rASABQQFGDfcBIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADJkCCwJAIAEiHiACRw0AQfUAIR4MmQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGOs4CAAGotAABHDasBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH1ACEeDJkCCyAAQQA2AgAgHiAia0EDaiEBQQIhHgyoAQsCQCABIh4gAkcNAEH2ACEeDJgCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFB8LOAgABqLQAARw2qASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB9gAhHgyYAgsgAEEANgIAIB4gImtBAmohAUEfIR4MpwELAkAgASIeIAJHDQBB9wAhHgyXAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQfKzgIAAai0AAEcNqQEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfcAIR4MlwILIABBADYCACAeICJrQQJqIQFBCSEeDKYBCwJAIAEiCCACRw0AQfgAIR4MlgILAkACQCAILQAAQbd/ag4HAKkBqQGpAakBqQEBqQELIAhBAWohAUHmACEeDIYCCyAIQQFqIQFB5wAhHgyFAgsCQCABIh4gAkcNAEH5ACEeDJUCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBkbOAgABqLQAARw2nASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB+QAhHgyVAgsgAEEANgIAIB4gImtBBmohAUEYIR4MpAELAkAgASIeIAJHDQBB+gAhHgyUAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQZezgIAAai0AAEcNpgEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfoAIR4MlAILIABBADYCACAeICJrQQNqIQFBFyEeDKMBCwJAIAEiHiACRw0AQfsAIR4MkwILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGas4CAAGotAABHDaUBIAFBBkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH7ACEeDJMCCyAAQQA2AgAgHiAia0EHaiEBQRUhHgyiAQsCQCABIh4gAkcNAEH8ACEeDJICCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBobOAgABqLQAARw2kASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB/AAhHgySAgsgAEEANgIAIB4gImtBBmohAUEeIR4MoQELAkAgASIIIAJHDQBB/QAhHgyRAgsgCC0AAEHMAEcNogEgCEEBaiEBQQohHgygAQsCQCABIgggAkcNAEH+ACEeDJACCwJAAkAgCC0AAEG/f2oODwCjAaMBowGjAaMBowGjAaMBowGjAaMBowGjAQGjAQsgCEEBaiEBQewAIR4MgAILIAhBAWohAUHtACEeDP8BCwJAIAEiCCACRw0AQf8AIR4MjwILAkACQCAILQAAQb9/ag4DAKIBAaIBCyAIQQFqIQFB6wAhHgz/AQsgCEEBaiEBQe4AIR4M/gELAkAgASIeIAJHDQBBgAEhHgyOAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQaezgIAAai0AAEcNoAEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYABIR4MjgILIABBADYCACAeICJrQQJqIQFBCyEeDJ0BCwJAIAEiCCACRw0AQYEBIR4MjQILAkACQAJAAkAgCC0AAEFTag4jAKIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogEBogGiAaIBogGiAQKiAaIBogEDogELIAhBAWohAUHpACEeDP8BCyAIQQFqIQFB6gAhHgz+AQsgCEEBaiEBQe8AIR4M/QELIAhBAWohAUHwACEeDPwBCwJAIAEiHiACRw0AQYIBIR4MjAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGps4CAAGotAABHDZ4BIAFBBEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGCASEeDIwCCyAAQQA2AgAgHiAia0EFaiEBQRkhHgybAQsCQCABIiIgAkcNAEGDASEeDIsCCyACICJrIAAoAgAiJmohHiAiIQggJiEBAkADQCAILQAAIAFBrrOAgABqLQAARw2dASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAIB42AgBBgwEhHgyLAgsgAEEANgIAQQYhHiAiICZrQQZqIQEMmgELAkAgASIeIAJHDQBBhAEhHgyKAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQbSzgIAAai0AAEcNnAEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYQBIR4MigILIABBADYCACAeICJrQQJqIQFBHCEeDJkBCwJAIAEiHiACRw0AQYUBIR4MiQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUG2s4CAAGotAABHDZsBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGFASEeDIkCCyAAQQA2AgAgHiAia0ECaiEBQSchHgyYAQsCQCABIgggAkcNAEGGASEeDIgCCwJAAkAgCC0AAEGsf2oOAgABmwELIAhBAWohAUH0ACEeDPgBCyAIQQFqIQFB9QAhHgz3AQsCQCABIh4gAkcNAEGHASEeDIcCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBuLOAgABqLQAARw2ZASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBhwEhHgyHAgsgAEEANgIAIB4gImtBAmohAUEmIR4MlgELAkAgASIeIAJHDQBBiAEhHgyGAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQbqzgIAAai0AAEcNmAEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYgBIR4MhgILIABBADYCACAeICJrQQJqIQFBAyEeDJUBCwJAIAEiHiACRw0AQYkBIR4MhQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUHts4CAAGotAABHDZcBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGJASEeDIUCCyAAQQA2AgAgHiAia0EDaiEBQQwhHgyUAQsCQCABIh4gAkcNAEGKASEeDIQCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBvLOAgABqLQAARw2WASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBigEhHgyEAgsgAEEANgIAIB4gImtBBGohAUENIR4MkwELAkAgASIIIAJHDQBBiwEhHgyDAgsCQAJAIAgtAABBun9qDgsAlgGWAZYBlgGWAZYBlgGWAZYBAZYBCyAIQQFqIQFB+QAhHgzzAQsgCEEBaiEBQfoAIR4M8gELAkAgASIIIAJHDQBBjAEhHgyCAgsgCC0AAEHQAEcNkwEgCEEBaiEBDMQBCwJAIAEiCCACRw0AQY0BIR4MgQILAkACQCAILQAAQbd/ag4HAZQBlAGUAZQBlAEAlAELIAhBAWohAUH8ACEeDPEBCyAIQQFqIQFBIiEeDJABCwJAIAEiHiACRw0AQY4BIR4MgAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUHAs4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGOASEeDIACCyAAQQA2AgAgHiAia0ECaiEBQR0hHgyPAQsCQCABIgggAkcNAEGPASEeDP8BCwJAAkAgCC0AAEGuf2oOAwCSAQGSAQsgCEEBaiEBQf4AIR4M7wELIAhBAWohAUEEIR4MjgELAkAgASIIIAJHDQBBkAEhHgz+AQsCQAJAAkACQAJAIAgtAABBv39qDhUAlAGUAZQBlAGUAZQBlAGUAZQBlAEBlAGUAQKUAZQBA5QBlAEElAELIAhBAWohAUH2ACEeDPEBCyAIQQFqIQFB9wAhHgzwAQsgCEEBaiEBQfgAIR4M7wELIAhBAWohAUH9ACEeDO4BCyAIQQFqIQFB/wAhHgztAQsCQCAEIAJHDQBBkQEhHgz9AQsgAiAEayAAKAIAIh5qISIgBCEIIB4hAQJAA0AgCC0AACABQe2zgIAAai0AAEcNjwEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZEBIR4M/QELIABBADYCACAEIB5rQQNqIQFBESEeDIwBCwJAIAUgAkcNAEGSASEeDPwBCyACIAVrIAAoAgAiHmohIiAFIQggHiEBAkADQCAILQAAIAFBwrOAgABqLQAARw2OASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBkgEhHgz8AQsgAEEANgIAIAUgHmtBA2ohAUEsIR4MiwELAkAgBiACRw0AQZMBIR4M+wELIAIgBmsgACgCACIeaiEiIAYhCCAeIQECQANAIAgtAAAgAUHFs4CAAGotAABHDY0BIAFBBEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGTASEeDPsBCyAAQQA2AgAgBiAea0EFaiEBQSshHgyKAQsCQCAHIAJHDQBBlAEhHgz6AQsgAiAHayAAKAIAIh5qISIgByEIIB4hAQJAA0AgCC0AACABQcqzgIAAai0AAEcNjAEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZQBIR4M+gELIABBADYCACAHIB5rQQNqIQFBFCEeDIkBCwJAIAggAkcNAEGVASEeDPkBCwJAAkACQAJAIAgtAABBvn9qDg8AAQKOAY4BjgGOAY4BjgGOAY4BjgGOAY4BA44BCyAIQQFqIQRBgQEhHgzrAQsgCEEBaiEFQYIBIR4M6gELIAhBAWohBkGDASEeDOkBCyAIQQFqIQdBhAEhHgzoAQsCQCAIIAJHDQBBlgEhHgz4AQsgCC0AAEHFAEcNiQEgCEEBaiEIDLsBCwJAIAkgAkcNAEGXASEeDPcBCyACIAlrIAAoAgAiHmohIiAJIQggHiEBAkADQCAILQAAIAFBzbOAgABqLQAARw2JASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBlwEhHgz3AQsgAEEANgIAIAkgHmtBA2ohAUEOIR4MhgELAkAgCCACRw0AQZgBIR4M9gELIAgtAABB0ABHDYcBIAhBAWohAUElIR4MhQELAkAgCiACRw0AQZkBIR4M9QELIAIgCmsgACgCACIeaiEiIAohCCAeIQECQANAIAgtAAAgAUHQs4CAAGotAABHDYcBIAFBCEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGZASEeDPUBCyAAQQA2AgAgCiAea0EJaiEBQSohHgyEAQsCQCAIIAJHDQBBmgEhHgz0AQsCQAJAIAgtAABBq39qDgsAhwGHAYcBhwGHAYcBhwGHAYcBAYcBCyAIQQFqIQhBiAEhHgzkAQsgCEEBaiEKQYkBIR4M4wELAkAgCCACRw0AQZsBIR4M8wELAkACQCAILQAAQb9/ag4UAIYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAQGGAQsgCEEBaiEJQYcBIR4M4wELIAhBAWohCEGKASEeDOIBCwJAIAsgAkcNAEGcASEeDPIBCyACIAtrIAAoAgAiHmohIiALIQggHiEBAkADQCAILQAAIAFB2bOAgABqLQAARw2EASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBnAEhHgzyAQsgAEEANgIAIAsgHmtBBGohAUEhIR4MgQELAkAgDCACRw0AQZ0BIR4M8QELIAIgDGsgACgCACIeaiEiIAwhCCAeIQECQANAIAgtAAAgAUHds4CAAGotAABHDYMBIAFBBkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGdASEeDPEBCyAAQQA2AgAgDCAea0EHaiEBQRohHgyAAQsCQCAIIAJHDQBBngEhHgzwAQsCQAJAAkAgCC0AAEG7f2oOEQCEAYQBhAGEAYQBhAGEAYQBhAEBhAGEAYQBhAGEAQKEAQsgCEEBaiEIQYsBIR4M4QELIAhBAWohC0GMASEeDOABCyAIQQFqIQxBjQEhHgzfAQsCQCANIAJHDQBBnwEhHgzvAQsgAiANayAAKAIAIh5qISIgDSEIIB4hAQJAA0AgCC0AACABQeSzgIAAai0AAEcNgQEgAUEFRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZ8BIR4M7wELIABBADYCACANIB5rQQZqIQFBKCEeDH4LAkAgDiACRw0AQaABIR4M7gELIAIgDmsgACgCACIeaiEiIA4hCCAeIQECQANAIAgtAAAgAUHqs4CAAGotAABHDYABIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGgASEeDO4BCyAAQQA2AgAgDiAea0EDaiEBQQchHgx9CwJAIAggAkcNAEGhASEeDO0BCwJAAkAgCC0AAEG7f2oODgCAAYABgAGAAYABgAGAAYABgAGAAYABgAEBgAELIAhBAWohDUGPASEeDN0BCyAIQQFqIQ5BkAEhHgzcAQsCQCAPIAJHDQBBogEhHgzsAQsgAiAPayAAKAIAIh5qISIgDyEIIB4hAQJAA0AgCC0AACABQe2zgIAAai0AAEcNfiABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBogEhHgzsAQsgAEEANgIAIA8gHmtBA2ohAUESIR4MewsCQCAQIAJHDQBBowEhHgzrAQsgAiAQayAAKAIAIh5qISIgECEIIB4hAQJAA0AgCC0AACABQfCzgIAAai0AAEcNfSABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBowEhHgzrAQsgAEEANgIAIBAgHmtBAmohAUEgIR4MegsCQCARIAJHDQBBpAEhHgzqAQsgAiARayAAKAIAIh5qISIgESEIIB4hAQJAA0AgCC0AACABQfKzgIAAai0AAEcNfCABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBpAEhHgzqAQsgAEEANgIAIBEgHmtBAmohAUEPIR4MeQsCQCAIIAJHDQBBpQEhHgzpAQsCQAJAIAgtAABBt39qDgcAfHx8fHwBfAsgCEEBaiEQQZMBIR4M2QELIAhBAWohEUGUASEeDNgBCwJAIBIgAkcNAEGmASEeDOgBCyACIBJrIAAoAgAiHmohIiASIQggHiEBAkADQCAILQAAIAFB9LOAgABqLQAARw16IAFBB0YNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGmASEeDOgBCyAAQQA2AgAgEiAea0EIaiEBQRshHgx3CwJAIAggAkcNAEGnASEeDOcBCwJAAkACQCAILQAAQb5/ag4SAHt7e3t7e3t7ewF7e3t7e3sCewsgCEEBaiEPQZIBIR4M2AELIAhBAWohCEGVASEeDNcBCyAIQQFqIRJBlgEhHgzWAQsCQCAIIAJHDQBBqAEhHgzmAQsgCC0AAEHOAEcNdyAIQQFqIQgMqgELAkAgCCACRw0AQakBIR4M5QELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCC0AAEG/f2oOFQABAgOGAQQFBoYBhgGGAQcICQoLhgEMDQ4PhgELIAhBAWohAUHWACEeDOMBCyAIQQFqIQFB1wAhHgziAQsgCEEBaiEBQdwAIR4M4QELIAhBAWohAUHgACEeDOABCyAIQQFqIQFB4QAhHgzfAQsgCEEBaiEBQeQAIR4M3gELIAhBAWohAUHlACEeDN0BCyAIQQFqIQFB6AAhHgzcAQsgCEEBaiEBQfEAIR4M2wELIAhBAWohAUHyACEeDNoBCyAIQQFqIQFB8wAhHgzZAQsgCEEBaiEBQYABIR4M2AELIAhBAWohCEGGASEeDNcBCyAIQQFqIQhBjgEhHgzWAQsgCEEBaiEIQZEBIR4M1QELIAhBAWohCEGYASEeDNQBCwJAIBQgAkcNAEGrASEeDOQBCyAUQQFqIRMMdwsDQAJAIB4tAABBdmoOBHcAAHoACyAeQQFqIh4gAkcNAAtBrAEhHgziAQsCQCAVIAJGDQAgAEGNgICAADYCCCAAIBU2AgQgFSEBQQEhHgzSAQtBrQEhHgzhAQsCQCAVIAJHDQBBrgEhHgzhAQsCQAJAIBUtAABBdmoOBAGrAasBAKsBCyAVQQFqIRQMeAsgFUEBaiETDHQLIAAgEyACEKeAgIAAGiATIQEMRQsCQCAVIAJHDQBBrwEhHgzfAQsCQAJAIBUtAABBdmoOFwF5eQF5eXl5eXl5eXl5eXl5eXl5eXkAeQsgFUEBaiEVC0GcASEeDM4BCwJAIBYgAkcNAEGxASEeDN4BCyAWLQAAQSBHDXcgAEEAOwEyIBZBAWohAUGgASEeDM0BCyABISYCQANAICYiFSACRg0BIBUtAABBUGpB/wFxIh5BCk8NqAECQCAALwEyIiJBmTNLDQAgACAiQQpsIiI7ATIgHkH//wNzICJB/v8DcUkNACAVQQFqISYgACAiIB5qIh47ATIgHkH//wNxQegHSQ0BCwtBACEeIABBADYCHCAAQZ2JgIAANgIQIABBDTYCDCAAIBVBAWo2AhQM3QELQbABIR4M3AELAkAgFyACRw0AQbIBIR4M3AELQQAhHgJAAkACQAJAAkACQAJAAkAgFy0AAEFQag4Kf34AAQIDBAUGB4ABC0ECIR4MfgtBAyEeDH0LQQQhHgx8C0EFIR4MewtBBiEeDHoLQQchHgx5C0EIIR4MeAtBCSEeDHcLAkAgGCACRw0AQbMBIR4M2wELIBgtAABBLkcNeCAYQQFqIRcMpgELAkAgGSACRw0AQbQBIR4M2gELQQAhHgJAAkACQAJAAkACQAJAAkAgGS0AAEFQag4KgQGAAQABAgMEBQYHggELQQIhHgyAAQtBAyEeDH8LQQQhHgx+C0EFIR4MfQtBBiEeDHwLQQchHgx7C0EIIR4MegtBCSEeDHkLAkAgCCACRw0AQbUBIR4M2QELIAIgCGsgACgCACIiaiEmIAghGSAiIR4DQCAZLQAAIB5B/LOAgABqLQAARw17IB5BBEYNtAEgHkEBaiEeIBlBAWoiGSACRw0ACyAAICY2AgBBtQEhHgzYAQsCQCAaIAJHDQBBtgEhHgzYAQsgAiAaayAAKAIAIh5qISIgGiEIIB4hAQNAIAgtAAAgAUGBtICAAGotAABHDXsgAUEBRg22ASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEG2ASEeDNcBCwJAIBsgAkcNAEG3ASEeDNcBCyACIBtrIAAoAgAiGWohIiAbIQggGSEeA0AgCC0AACAeQYO0gIAAai0AAEcNeiAeQQJGDXwgHkEBaiEeIAhBAWoiCCACRw0ACyAAICI2AgBBtwEhHgzWAQsCQCAIIAJHDQBBuAEhHgzWAQsCQAJAIAgtAABBu39qDhAAe3t7e3t7e3t7e3t7e3sBewsgCEEBaiEaQaUBIR4MxgELIAhBAWohG0GmASEeDMUBCwJAIAggAkcNAEG5ASEeDNUBCyAILQAAQcgARw14IAhBAWohCAyiAQsCQCAIIAJHDQBBugEhHgzUAQsgCC0AAEHIAEYNogEgAEEBOgAoDJkBCwNAAkAgCC0AAEF2ag4EAHp6AHoLIAhBAWoiCCACRw0AC0G8ASEeDNIBCyAAQQA6AC8gAC0ALUEEcUUNyAELIABBADoALyABIQEMeQsgHkEVRg2pASAAQQA2AhwgACABNgIUIABBq4yAgAA2AhAgAEESNgIMQQAhHgzPAQsCQCAAIB4gAhCtgICAACIBDQAgHiEBDMUBCwJAIAFBFUcNACAAQQM2AhwgACAeNgIUIABB1pKAgAA2AhAgAEEVNgIMQQAhHgzPAQsgAEEANgIcIAAgHjYCFCAAQauMgIAANgIQIABBEjYCDEEAIR4MzgELIB5BFUYNpQEgAEEANgIcIAAgATYCFCAAQYiMgIAANgIQIABBFDYCDEEAIR4MzQELIAAoAgQhJiAAQQA2AgQgHiAfp2oiIyEBIAAgJiAeICMgIhsiHhCugICAACIiRQ16IABBBzYCHCAAIB42AhQgACAiNgIMQQAhHgzMAQsgACAALwEwQYABcjsBMCABIQEMMQsgHkEVRg2hASAAQQA2AhwgACABNgIUIABBxYuAgAA2AhAgAEETNgIMQQAhHgzKAQsgAEEANgIcIAAgATYCFCAAQYuLgIAANgIQIABBAjYCDEEAIR4MyQELIB5BO0cNASABQQFqIQELQQghHgy3AQtBACEeIABBADYCHCAAIAE2AhQgAEGjkICAADYCECAAQQw2AgwMxgELQgEhHwsgHkEBaiEBAkAgACkDICIgQv//////////D1YNACAAICBCBIYgH4Q3AyAgASEBDHcLIABBADYCHCAAIAE2AhQgAEGJiYCAADYCECAAQQw2AgxBACEeDMQBCyAAQQA2AhwgACAeNgIUIABBo5CAgAA2AhAgAEEMNgIMQQAhHgzDAQsgACgCBCEmIABBADYCBCAeIB+naiIjIQEgACAmIB4gIyAiGyIeEK6AgIAAIiJFDW4gAEEFNgIcIAAgHjYCFCAAICI2AgxBACEeDMIBCyAAQQA2AhwgACAeNgIUIABB3ZSAgAA2AhAgAEEPNgIMQQAhHgzBAQsgACAeIAIQrYCAgAAiAQ0BIB4hAQtBDyEeDK8BCwJAIAFBFUcNACAAQQI2AhwgACAeNgIUIABB1pKAgAA2AhAgAEEVNgIMQQAhHgy/AQsgAEEANgIcIAAgHjYCFCAAQauMgIAANgIQIABBEjYCDEEAIR4MvgELIAFBAWohHgJAIAAvATAiAUGAAXFFDQACQCAAIB4gAhCwgICAACIBDQAgHiEBDGsLIAFBFUcNlwEgAEEFNgIcIAAgHjYCFCAAQb6SgIAANgIQIABBFTYCDEEAIR4MvgELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIB42AhQgAEHsj4CAADYCECAAQQQ2AgxBACEeDL4BCyAAIB4gAhCxgICAABogHiEBAkACQAJAAkACQCAAIB4gAhCsgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAeIQELQR0hHgyvAQsgAEEVNgIcIAAgHjYCFCAAQeGRgIAANgIQIABBFTYCDEEAIR4MvgELIABBADYCHCAAIB42AhQgAEGxi4CAADYCECAAQRE2AgxBACEeDL0BCyAALQAtQQFxRQ0BQaoBIR4MrAELAkAgHCACRg0AA0ACQCAcLQAAQSBGDQAgHCEBDKgBCyAcQQFqIhwgAkcNAAtBFyEeDLwBC0EXIR4MuwELIAAoAgQhASAAQQA2AgQgACABIBwQqICAgAAiAUUNkAEgAEEYNgIcIAAgATYCDCAAIBxBAWo2AhRBACEeDLoBCyAAQRk2AhwgACABNgIUIAAgHjYCDEEAIR4MuQELIB4hAUEBISICQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhIgwBC0EEISILIABBAToALCAAIAAvATAgInI7ATALIB4hAQtBICEeDKkBCyAAQQA2AhwgACAeNgIUIABBgY+AgAA2AhAgAEELNgIMQQAhHgy4AQsgHiEBQQEhIgJAAkACQAJAAkAgAC0ALEF7ag4EAgABAwULQQIhIgwBC0EEISILIABBAToALCAAIAAvATAgInI7ATAMAQsgACAALwEwQQhyOwEwCyAeIQELQasBIR4MpgELIAAgASACEKuAgIAAGgwbCwJAIAEiHiACRg0AIB4hAQJAAkAgHi0AAEF2ag4EAWpqAGoLIB5BAWohAQtBHiEeDKUBC0HDACEeDLQBCyAAQQA2AhwgACABNgIUIABBkZGAgAA2AhAgAEEDNgIMQQAhHgyzAQsCQCABLQAAQQ1HDQAgACgCBCEeIABBADYCBAJAIAAgHiABEKqAgIAAIh4NACABQQFqIQEMaQsgAEEeNgIcIAAgHjYCDCAAIAFBAWo2AhRBACEeDLMBCyABIQEgAC0ALUEBcUUNrgFBrQEhHgyiAQsCQCABIgEgAkcNAEEfIR4MsgELAkACQANAAkAgAS0AAEF2ag4EAgAAAwALIAFBAWoiASACRw0AC0EfIR4MswELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCqgICAACIeDQAgASEBDGgLIABBHjYCHCAAIAE2AhQgACAeNgIMQQAhHgyyAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKqAgIAAIh4NACABQQFqIQEMZwsgAEEeNgIcIAAgHjYCDCAAIAFBAWo2AhRBACEeDLEBCyAeQSxHDQEgAUEBaiEeQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIB4hAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIB4hAQwBCyAAIAAvATBBCHI7ATAgHiEBC0EuIR4MnwELIABBADoALCABIQELQSkhHgydAQsgAEEANgIAICMgJGtBCWohAUEFIR4MmAELIABBADYCACAjICRrQQZqIQFBByEeDJcBCyAAIAAvATBBIHI7ATAgASEBDAILIAAoAgQhCCAAQQA2AgQCQCAAIAggARCqgICAACIIDQAgASEBDJ0BCyAAQSo2AhwgACABNgIUIAAgCDYCDEEAIR4MqQELIABBCDoALCABIQELQSUhHgyXAQsCQCAALQAoQQFGDQAgASEBDAQLIAAtAC1BCHFFDXggASEBDAMLIAAtADBBIHENeUGuASEeDJUBCwJAIB0gAkYNAAJAA0ACQCAdLQAAQVBqIgFB/wFxQQpJDQAgHSEBQSohHgyYAQsgACkDICIfQpmz5syZs+bMGVYNASAAIB9CCn4iHzcDICAfIAGtIiBCf4VCgH6EVg0BIAAgHyAgQv8Bg3w3AyAgHUEBaiIdIAJHDQALQSwhHgymAQsgACgCBCEIIABBADYCBCAAIAggHUEBaiIBEKqAgIAAIggNeiABIQEMmQELQSwhHgykAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDXULIAAgAUH3+wNxQYAEcjsBMCAdIQELQSwhHgySAQsgACAALwEwQRByOwEwDIcBCyAAQTY2AhwgACABNgIMIAAgHEEBajYCFEEAIR4MoAELIAEtAABBOkcNAiAAKAIEIR4gAEEANgIEIAAgHiABEKiAgIAAIh4NASABQQFqIQELQTEhHgyOAQsgAEE2NgIcIAAgHjYCDCAAIAFBAWo2AhRBACEeDJ0BCyAAQQA2AhwgACABNgIUIABBh46AgAA2AhAgAEEKNgIMQQAhHgycAQsgAUEBaiEBCyAAQYASOwEqIAAgASACEKWAgIAAGiABIQELQawBIR4MiQELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDFALIABBxAA2AhwgACABNgIUIAAgHjYCDEEAIR4MmAELIABBADYCHCAAICI2AhQgAEHlmICAADYCECAAQQc2AgwgAEEANgIAQQAhHgyXAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMTwsgAEHFADYCHCAAIAE2AhQgACAeNgIMQQAhHgyWAQtBACEeIABBADYCHCAAIAE2AhQgAEHrjYCAADYCECAAQQk2AgwMlQELQQEhHgsgACAeOgArIAFBAWohASAALQApQSJGDYsBDEwLIABBADYCHCAAIAE2AhQgAEGijYCAADYCECAAQQk2AgxBACEeDJIBCyAAQQA2AhwgACABNgIUIABBxYqAgAA2AhAgAEEJNgIMQQAhHgyRAQtBASEeCyAAIB46ACogAUEBaiEBDEoLIABBADYCHCAAIAE2AhQgAEG4jYCAADYCECAAQQk2AgxBACEeDI4BCyAAQQA2AgAgJiAja0EEaiEBAkAgAC0AKUEjTw0AIAEhAQxKCyAAQQA2AhwgACABNgIUIABBr4mAgAA2AhAgAEEINgIMQQAhHgyNAQsgAEEANgIAC0EAIR4gAEEANgIcIAAgATYCFCAAQbmbgIAANgIQIABBCDYCDAyLAQsgAEEANgIAICYgI2tBA2ohAQJAIAAtAClBIUcNACABIQEMRwsgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDEEAIR4MigELIABBADYCACAmICNrQQRqIQECQCAALQApIh5BXWpBC08NACABIQEMRgsCQCAeQQZLDQBBASAedEHKAHFFDQAgASEBDEYLQQAhHiAAQQA2AhwgACAB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HiAAQQA2AhwgACABNgIUIABB6pCAgAA2AhAgAEEZNgIMDAILIABBIDYCHCAAIAg2AgwgACABQQFqNgIUQQAhHgwBCwJAIAEiASACRw0AQRQhHgwBCyAAQYmAgIAANgIIIAAgATYCBEETIR4LIANBEGokgICAgAAgHguvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAELuAgIAAC5U3AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKgtICAAA0AQQAQvoCAgABBgLiEgABrIgJB2QBJDQBBACEDAkBBACgC4LeAgAAiBA0AQQBCfzcC7LeAgABBAEKAgISAgIDAADcC5LeAgABBACABQQhqQXBxQdiq1aoFcyIENgLgt4CAAEEAQQA2AvS3gIAAQQBBADYCxLeAgAALQQAgAjYCzLeAgABBAEGAuISAADYCyLeAgABBAEGAuISAADYCmLSAgABBACAENgKstICAAEEAQX82Aqi0gIAAA0AgA0HEtICAAGogA0G4tICAAGoiBDYCACAEIANBsLSAgABqIgU2AgAgA0G8tICAAGogBTYCACADQcy0gIAAaiADQcC0gIAAaiIFNgIAIAUgBDYCACADQdS0gIAAaiADQci0gIAAaiIENgIAIAQgBTYCACADQdC0gIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgLiEgABBeEGAuISAAGtBD3FBAEGAuISAAEEIakEPcRsiA2oiBEEEaiACIANrQUhqIgNBAXI2AgBBAEEAKALwt4CAADYCpLSAgABBACAENgKgtICAAEEAIAM2ApS0gIAAIAJBgLiEgABqQUxqQTg2AgALAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKItICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQAgA0EBcSAEckEBcyIFQQN0IgBBuLSAgABqKAIAIgRBCGohAwJA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AkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABQRhqIAQ2AgAgASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEYakEANgIAIAEgBDYCDCABIAA2AggLQQBBACgCqLSAgABBf2oiAUF/IAEbNgKotICAAAsLTgACQCAADQA/AEEQdA8LAkAgAEH//wNxDQAgAEF/TA0AAkAgAEEQdkAAIgBBf0cNAEEAQTA2Avi3gIAAQX8PCyAAQRB0DwsQv4CAgAAACwQAAAALC44sAQBBgAgLhiwBAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHBhcmFtZXRlcnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AATUtBQ1RJVklUWQBDT1BZAE5PVElGWQBQTEFZAFBVVABDSEVDS09VVABQT1NUAFJFUE9SVABIUEVfSU5WQUxJRF9DT05TVEFOVABHRVQASFBFX1NUUklDVABSRURJUkVDVABDT05ORUNUAEhQRV9JTlZBTElEX1NUQVRVUwBPUFRJT05TAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAEhQRV9JTlZBTElEX1VSTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUAUEFVU0UAUFVSR0UATUVSR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABQUk9QRklORABVTkJJTkQAUkVCSU5EAEhQ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BQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAEAAAIAAAAAAAAAAAAAAAAAAAAAAAADBAAABAQEBAQEBAQEBAQFBAQEBAQEBAQEBAQEAAQABgcEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAACAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv"; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/client.js var require_client = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/client.js"(exports, module2) { "use strict"; var assert = require("assert"); var net2 = require("net"); var util2 = require_util2(); var Request = require_request(); var DispatcherBase = require_dispatcher_base(); var { RequestContentLengthMismatchError, ResponseContentLengthMismatchError, InvalidArgumentError, RequestAbortedError, HeadersTimeoutError, HeadersOverflowError, SocketError, InformationalError, BodyTimeoutError, HTTPParserError } = require_errors(); var buildConnector = require_connect(); var { kUrl, kReset, kServerName, kClient, kBusy, kParser, kConnect, kBlocking, kResuming, kRunning, kPending, kSize, kWriting, kQueue, kConnected, kConnecting, kNeedDrain, kNoRef, kKeepAliveDefaultTimeout, kHostHeader, kPendingIdx, kRunningIdx, kError, kPipelining, kSocket, kKeepAliveTimeoutValue, kMaxHeadersSize, kKeepAliveMaxTimeout, kKeepAliveTimeoutThreshold, kHeadersTimeout, kBodyTimeout, kStrictContentLength, kConnector, kMaxRedirections, kMaxRequests, kCounter, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(); var kClosedResolve = Symbol("kClosedResolve"); var channels = {}; try { const diagnosticsChannel = require("diagnostics_channel"); channels.sendHeaders = diagnosticsChannel.channel("undici:client:sendHeaders"); channels.beforeConnect = diagnosticsChannel.channel("undici:client:beforeConnect"); channels.connectError = diagnosticsChannel.channel("undici:client:connectError"); channels.connected = diagnosticsChannel.channel("undici:client:connected"); } catch { channels.sendHeaders = { hasSubscribers: false }; channels.beforeConnect = { hasSubscribers: false }; channels.connectError = { hasSubscribers: false }; channels.connected = { hasSubscribers: false }; } var Client = class extends DispatcherBase { constructor(url, { interceptors, maxHeaderSize, headersTimeout, socketTimeout, requestTimeout, connectTimeout, bodyTimeout, idleTimeout, keepAlive, keepAliveTimeout, maxKeepAliveTimeout, keepAliveMaxTimeout, keepAliveTimeoutThreshold, socketPath, pipelining, tls, strictContentLength, maxCachedSessions, maxRedirections, connect: connect2, maxRequestsPerClient } = {}) { super(); if (keepAlive !== void 0) { throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead"); } if (socketTimeout !== void 0) { throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead"); } if (requestTimeout !== void 0) { throw new InvalidArgumentError("unsupported requestTimeout, use headersTimeout & bodyTimeout instead"); } if (idleTimeout !== void 0) { throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead"); } if (maxKeepAliveTimeout !== void 0) { throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead"); } if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { throw new InvalidArgumentError("invalid maxHeaderSize"); } if (socketPath != null && typeof socketPath !== "string") { throw new InvalidArgumentError("invalid socketPath"); } if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { throw new InvalidArgumentError("invalid connectTimeout"); } if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { throw new InvalidArgumentError("invalid keepAliveTimeout"); } if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { throw new InvalidArgumentError("invalid keepAliveMaxTimeout"); } if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold"); } if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { throw new InvalidArgumentError("headersTimeout must be a positive integer or zero"); } if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { throw new InvalidArgumentError("bodyTimeout must be a positive integer or zero"); } if (connect2 != null && typeof connect2 !== "function" && typeof connect2 !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { throw new InvalidArgumentError("maxRequestsPerClient must be a positive number"); } if (typeof connect2 !== "function") { connect2 = buildConnector({ ...tls, maxCachedSessions, socketPath, timeout: connectTimeout, ...connect2 }); } this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client) ? interceptors.Client : [createRedirectInterceptor({ maxRedirections })]; this[kUrl] = util2.parseOrigin(url); this[kConnector] = connect2; this[kSocket] = null; this[kPipelining] = pipelining != null ? pipelining : 1; this[kMaxHeadersSize] = maxHeaderSize || 16384; this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout; this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 6e5 : keepAliveMaxTimeout; this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold; this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]; this[kServerName] = null; this[kResuming] = 0; this[kNeedDrain] = 0; this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}\r `; this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 3e4; this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 3e4; this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength; this[kMaxRedirections] = maxRedirections; this[kMaxRequests] = maxRequestsPerClient; this[kClosedResolve] = null; this[kQueue] = []; this[kRunningIdx] = 0; this[kPendingIdx] = 0; } get pipelining() { return this[kPipelining]; } set pipelining(value) { this[kPipelining] = value; resume(this, true); } get [kPending]() { return this[kQueue].length - this[kPendingIdx]; } get [kRunning]() { return this[kPendingIdx] - this[kRunningIdx]; } get [kSize]() { return this[kQueue].length - this[kRunningIdx]; } get [kConnected]() { return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed; } get [kBusy]() { const socket = this[kSocket]; return socket && (socket[kReset] || socket[kWriting] || socket[kBlocking]) || this[kSize] >= (this[kPipelining] || 1) || this[kPending] > 0; } [kConnect](cb) { connect(this); this.once("connect", cb); } [kDispatch](opts, handler) { const origin = opts.origin || this[kUrl].origin; const request2 = new Request(origin, opts, handler); this[kQueue].push(request2); if (this[kResuming]) { } else if (util2.bodyLength(request2.body) == null && util2.isIterable(request2.body)) { this[kResuming] = 1; process.nextTick(resume, this); } else { resume(this, true); } if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { this[kNeedDrain] = 2; } return this[kNeedDrain] < 2; } async [kClose]() { return new Promise((resolve) => { if (!this[kSize]) { this.destroy(resolve); } else { this[kClosedResolve] = resolve; } }); } async [kDestroy](err) { return new Promise((resolve) => { const requests = this[kQueue].splice(this[kPendingIdx]); for (let i = 0; i < requests.length; i++) { const request2 = requests[i]; errorRequest(this, request2, err); } const callback = /* @__PURE__ */ __name(() => { if (this[kClosedResolve]) { this[kClosedResolve](); this[kClosedResolve] = null; } resolve(); }, "callback"); if (!this[kSocket]) { queueMicrotask(callback); } else { util2.destroy(this[kSocket].on("close", callback), err); } resume(this); }); } }; __name(Client, "Client"); var constants = require_constants2(); var createRedirectInterceptor = require_redirectInterceptor(); var EMPTY_BUF = Buffer.alloc(0); async function lazyllhttp() { const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0; let mod2; try { mod2 = await WebAssembly.compile(Buffer.from(require_llhttp_simd_wasm(), "base64")); } catch (e2) { mod2 = await WebAssembly.compile(Buffer.from(llhttpWasmData || require_llhttp_wasm(), "base64")); } return await WebAssembly.instantiate(mod2, { env: { wasm_on_url: (p2, at, len) => { return 0; }, wasm_on_status: (p2, at, len) => { assert.strictEqual(currentParser.ptr, p2); const start = at - currentBufferPtr; const end = start + len; return currentParser.onStatus(currentBufferRef.slice(start, end)) || 0; }, wasm_on_message_begin: (p2) => { assert.strictEqual(currentParser.ptr, p2); return currentParser.onMessageBegin() || 0; }, wasm_on_header_field: (p2, at, len) => { assert.strictEqual(currentParser.ptr, p2); const start = at - currentBufferPtr; const end = start + len; return currentParser.onHeaderField(currentBufferRef.slice(start, end)) || 0; }, wasm_on_header_value: (p2, at, len) => { assert.strictEqual(currentParser.ptr, p2); const start = at - currentBufferPtr; const end = start + len; return currentParser.onHeaderValue(currentBufferRef.slice(start, end)) || 0; }, wasm_on_headers_complete: (p2, statusCode, upgrade, shouldKeepAlive) => { assert.strictEqual(currentParser.ptr, p2); return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; }, wasm_on_body: (p2, at, len) => { assert.strictEqual(currentParser.ptr, p2); const start = at - currentBufferPtr; const end = start + len; return currentParser.onBody(currentBufferRef.slice(start, end)) || 0; }, wasm_on_message_complete: (p2) => { assert.strictEqual(currentParser.ptr, p2); return currentParser.onMessageComplete() || 0; } } }); } __name(lazyllhttp, "lazyllhttp"); var llhttpInstance = null; var llhttpPromise = lazyllhttp().catch(() => { }); var currentParser = null; var currentBufferRef = null; var currentBufferSize = 0; var currentBufferPtr = null; var TIMEOUT_HEADERS = 1; var TIMEOUT_BODY = 2; var TIMEOUT_IDLE = 3; var Parser = class { constructor(client, socket, { exports: exports2 }) { assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); this.llhttp = exports2; this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE); this.client = client; this.socket = socket; this.timeout = null; this.timeoutValue = null; this.timeoutType = null; this.statusCode = null; this.statusText = ""; this.upgrade = false; this.headers = []; this.headersSize = 0; this.headersMaxSize = client[kMaxHeadersSize]; this.shouldKeepAlive = false; this.paused = false; this.resume = this.resume.bind(this); this.bytesRead = 0; this.keepAlive = ""; this.contentLength = ""; } setTimeout(value, type) { this.timeoutType = type; if (value !== this.timeoutValue) { clearTimeout(this.timeout); if (value) { this.timeout = setTimeout(onParserTimeout, value, this); if (this.timeout.unref) { this.timeout.unref(); } } else { this.timeout = null; } this.timeoutValue = value; } else if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } } resume() { if (this.socket.destroyed || !this.paused) { return; } assert(this.ptr != null); assert(currentParser == null); this.llhttp.llhttp_resume(this.ptr); assert(this.timeoutType === TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } this.paused = false; this.execute(this.socket.read() || EMPTY_BUF); this.readMore(); } readMore() { while (!this.paused && this.ptr) { const chunk = this.socket.read(); if (chunk === null) { break; } this.execute(chunk); } } execute(data) { assert(this.ptr != null); assert(currentParser == null); assert(!this.paused); const { socket, llhttp } = this; if (data.length > currentBufferSize) { if (currentBufferPtr) { llhttp.free(currentBufferPtr); } currentBufferSize = Math.ceil(data.length / 4096) * 4096; currentBufferPtr = llhttp.malloc(currentBufferSize); } new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data); try { let ret; try { currentBufferRef = data; currentParser = this; ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length); } catch (err) { throw err; } finally { currentParser = null; currentBufferRef = null; } const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr; if (ret === constants.ERROR.PAUSED_UPGRADE) { this.onUpgrade(data.slice(offset)); } else if (ret === constants.ERROR.PAUSED) { this.paused = true; socket.unshift(data.slice(offset)); } else if (ret !== constants.ERROR.OK) { const ptr = llhttp.llhttp_get_error_reason(this.ptr); let message = ""; if (ptr) { const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0); message = Buffer.from(llhttp.memory.buffer, ptr, len).toString(); } throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)); } } catch (err) { util2.destroy(socket, err); } } finish() { try { try { currentParser = this; } finally { currentParser = null; } } catch (err) { util2.destroy(this.socket, err); } } destroy() { assert(this.ptr != null); assert(currentParser == null); this.llhttp.llhttp_free(this.ptr); this.ptr = null; clearTimeout(this.timeout); this.timeout = null; this.timeoutValue = null; this.timeoutType = null; this.paused = false; } onStatus(buf) { this.statusText = buf.toString(); } onMessageBegin() { const { socket, client } = this; if (socket.destroyed) { return -1; } const request2 = client[kQueue][client[kRunningIdx]]; if (!request2) { return -1; } } onHeaderField(buf) { const len = this.headers.length; if ((len & 1) === 0) { this.headers.push(buf); } else { this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); } this.trackHeader(buf.length); } onHeaderValue(buf) { let len = this.headers.length; if ((len & 1) === 1) { this.headers.push(buf); len += 1; } else { this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); } const key = this.headers[len - 2]; if (key.length === 10 && key.toString().toLowerCase() === "keep-alive") { this.keepAlive += buf.toString(); } else if (key.length === 14 && key.toString().toLowerCase() === "content-length") { this.contentLength += buf.toString(); } this.trackHeader(buf.length); } trackHeader(len) { this.headersSize += len; if (this.headersSize >= this.headersMaxSize) { util2.destroy(this.socket, new HeadersOverflowError()); } } onUpgrade(head) { const { upgrade, client, socket, headers, statusCode } = this; assert(upgrade); const request2 = client[kQueue][client[kRunningIdx]]; assert(request2); assert(!socket.destroyed); assert(socket === client[kSocket]); assert(!this.paused); assert(request2.upgrade || request2.method === "CONNECT"); this.statusCode = null; this.statusText = ""; this.shouldKeepAlive = null; assert(this.headers.length % 2 === 0); this.headers = []; this.headersSize = 0; socket.unshift(head); socket[kParser].destroy(); socket[kParser] = null; socket[kClient] = null; socket[kError] = null; socket.removeListener("error", onSocketError).removeListener("readable", onSocketReadable).removeListener("end", onSocketEnd).removeListener("close", onSocketClose); client[kSocket] = null; client[kQueue][client[kRunningIdx]++] = null; client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade")); try { request2.onUpgrade(statusCode, headers, socket); } catch (err) { util2.destroy(socket, err); } resume(client); } onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { const { client, socket, headers, statusText } = this; if (socket.destroyed) { return -1; } const request2 = client[kQueue][client[kRunningIdx]]; if (!request2) { return -1; } assert(!this.upgrade); assert(this.statusCode < 200); if (statusCode === 100) { util2.destroy(socket, new SocketError("bad response", util2.getSocketInfo(socket))); return -1; } if (upgrade && !request2.upgrade) { util2.destroy(socket, new SocketError("bad upgrade", util2.getSocketInfo(socket))); return -1; } assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS); this.statusCode = statusCode; this.shouldKeepAlive = shouldKeepAlive; if (this.statusCode >= 200) { const bodyTimeout = request2.bodyTimeout != null ? request2.bodyTimeout : client[kBodyTimeout]; this.setTimeout(bodyTimeout, TIMEOUT_BODY); } else if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } if (request2.method === "CONNECT") { assert(client[kRunning] === 1); this.upgrade = true; return 2; } if (upgrade) { assert(client[kRunning] === 1); this.upgrade = true; return 2; } assert(this.headers.length % 2 === 0); this.headers = []; this.headersSize = 0; if (shouldKeepAlive && client[kPipelining]) { const keepAliveTimeout = this.keepAlive ? util2.parseKeepAliveTimeout(this.keepAlive) : null; if (keepAliveTimeout != null) { const timeout = Math.min( keepAliveTimeout - client[kKeepAliveTimeoutThreshold], client[kKeepAliveMaxTimeout] ); if (timeout <= 0) { socket[kReset] = true; } else { client[kKeepAliveTimeoutValue] = timeout; } } else { client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]; } } else { socket[kReset] = true; } let pause; try { pause = request2.onHeaders(statusCode, headers, this.resume, statusText) === false; } catch (err) { util2.destroy(socket, err); return -1; } if (request2.method === "HEAD") { assert(socket[kReset]); return 1; } if (statusCode < 200) { return 1; } if (socket[kBlocking]) { socket[kBlocking] = false; resume(client); } return pause ? constants.ERROR.PAUSED : 0; } onBody(buf) { const { client, socket, statusCode } = this; if (socket.destroyed) { return -1; } const request2 = client[kQueue][client[kRunningIdx]]; assert(request2); assert.strictEqual(this.timeoutType, TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } assert(statusCode >= 200); this.bytesRead += buf.length; try { if (request2.onData(buf) === false) { return constants.ERROR.PAUSED; } } catch (err) { util2.destroy(socket, err); return -1; } } onMessageComplete() { const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; if (socket.destroyed && (!statusCode || shouldKeepAlive)) { return -1; } if (upgrade) { return; } const request2 = client[kQueue][client[kRunningIdx]]; assert(request2); assert(statusCode >= 100); this.statusCode = null; this.statusText = ""; this.bytesRead = 0; this.contentLength = ""; this.keepAlive = ""; assert(this.headers.length % 2 === 0); this.headers = []; this.headersSize = 0; if (statusCode < 200) { return; } if (request2.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) { util2.destroy(socket, new ResponseContentLengthMismatchError()); return -1; } try { request2.onComplete(headers); } catch (err) { errorRequest(client, request2, err); } client[kQueue][client[kRunningIdx]++] = null; if (socket[kWriting]) { assert.strictEqual(client[kRunning], 0); util2.destroy(socket, new InformationalError("reset")); return constants.ERROR.PAUSED; } else if (!shouldKeepAlive) { util2.destroy(socket, new InformationalError("reset")); return constants.ERROR.PAUSED; } else if (socket[kReset] && client[kRunning] === 0) { util2.destroy(socket, new InformationalError("reset")); return constants.ERROR.PAUSED; } else if (client[kPipelining] === 1) { setImmediate(resume, client); } else { resume(client); } } }; __name(Parser, "Parser"); function onParserTimeout(parser) { const { socket, timeoutType, client } = parser; if (timeoutType === TIMEOUT_HEADERS) { if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { assert(!parser.paused, "cannot be paused while waiting for headers"); util2.destroy(socket, new HeadersTimeoutError()); } } else if (timeoutType === TIMEOUT_BODY) { if (!parser.paused) { util2.destroy(socket, new BodyTimeoutError()); } } else if (timeoutType === TIMEOUT_IDLE) { assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); util2.destroy(socket, new InformationalError("socket idle timeout")); } } __name(onParserTimeout, "onParserTimeout"); function onSocketReadable() { const { [kParser]: parser } = this; parser.readMore(); } __name(onSocketReadable, "onSocketReadable"); function onSocketError(err) { const { [kParser]: parser } = this; assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) { parser.finish(); return; } this[kError] = err; onError(this[kClient], err); } __name(onSocketError, "onSocketError"); function onError(client, err) { if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { assert(client[kPendingIdx] === client[kRunningIdx]); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request2 = requests[i]; errorRequest(client, request2, err); } assert(client[kSize] === 0); } } __name(onError, "onError"); function onSocketEnd() { const { [kParser]: parser } = this; if (parser.statusCode && !parser.shouldKeepAlive) { parser.finish(); return; } util2.destroy(this, new SocketError("other side closed", util2.getSocketInfo(this))); } __name(onSocketEnd, "onSocketEnd"); function onSocketClose() { const { [kClient]: client } = this; this[kParser].destroy(); this[kParser] = null; const err = this[kError] || new SocketError("closed", util2.getSocketInfo(this)); client[kSocket] = null; if (client.destroyed) { assert(client[kPending] === 0); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request2 = requests[i]; errorRequest(client, request2, err); } } else if (client[kRunning] > 0 && err.code !== "UND_ERR_INFO") { const request2 = client[kQueue][client[kRunningIdx]]; client[kQueue][client[kRunningIdx]++] = null; errorRequest(client, request2, err); } client[kPendingIdx] = client[kRunningIdx]; assert(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err); resume(client); } __name(onSocketClose, "onSocketClose"); async function connect(client) { assert(!client[kConnecting]); assert(!client[kSocket]); let { host, hostname, protocol, port } = client[kUrl]; if (hostname[0] === "[") { const idx = hostname.indexOf("]"); assert(idx !== -1); const ip = hostname.substr(1, idx - 1); assert(net2.isIP(ip)); hostname = ip; } client[kConnecting] = true; if (channels.beforeConnect.hasSubscribers) { channels.beforeConnect.publish({ connectParams: { host, hostname, protocol, port, servername: client[kServerName] }, connector: client[kConnector] }); } try { const socket = await new Promise((resolve, reject) => { client[kConnector]({ host, hostname, protocol, port, servername: client[kServerName] }, (err, socket2) => { if (err) { reject(err); } else { resolve(socket2); } }); }); if (!llhttpInstance) { llhttpInstance = await llhttpPromise; llhttpPromise = null; } client[kConnecting] = false; assert(socket); client[kSocket] = socket; socket[kNoRef] = false; socket[kWriting] = false; socket[kReset] = false; socket[kBlocking] = false; socket[kError] = null; socket[kParser] = new Parser(client, socket, llhttpInstance); socket[kClient] = client; socket[kCounter] = 0; socket[kMaxRequests] = client[kMaxRequests]; socket.on("error", onSocketError).on("readable", onSocketReadable).on("end", onSocketEnd).on("close", onSocketClose); if (channels.connected.hasSubscribers) { channels.connected.publish({ connectParams: { host, hostname, protocol, port, servername: client[kServerName] }, connector: client[kConnector], socket }); } client.emit("connect", client[kUrl], [client]); } catch (err) { client[kConnecting] = false; if (channels.connectError.hasSubscribers) { channels.connectError.publish({ connectParams: { host, hostname, protocol, port, servername: client[kServerName] }, connector: client[kConnector], error: err }); } if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") { assert(client[kRunning] === 0); while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { const request2 = client[kQueue][client[kPendingIdx]++]; errorRequest(client, request2, err); } } else { onError(client, err); } client.emit("connectionError", client[kUrl], [client], err); } resume(client); } __name(connect, "connect"); function emitDrain(client) { client[kNeedDrain] = 0; client.emit("drain", client[kUrl], [client]); } __name(emitDrain, "emitDrain"); function resume(client, sync) { if (client[kResuming] === 2) { return; } client[kResuming] = 2; _resume(client, sync); client[kResuming] = 0; if (client[kRunningIdx] > 256) { client[kQueue].splice(0, client[kRunningIdx]); client[kPendingIdx] -= client[kRunningIdx]; client[kRunningIdx] = 0; } } __name(resume, "resume"); function _resume(client, sync) { while (true) { if (client.destroyed) { assert(client[kPending] === 0); return; } if (client.closed && !client[kSize]) { client.destroy(); return; } const socket = client[kSocket]; if (socket) { if (client[kSize] === 0) { if (!socket[kNoRef] && socket.unref) { socket.unref(); socket[kNoRef] = true; } } else if (socket[kNoRef] && socket.ref) { socket.ref(); socket[kNoRef] = false; } if (client[kSize] === 0) { if (socket[kParser].timeoutType !== TIMEOUT_IDLE) { socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE); } } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { const request3 = client[kQueue][client[kRunningIdx]]; const headersTimeout = request3.headersTimeout != null ? request3.headersTimeout : client[kHeadersTimeout]; socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS); } } } if (client[kBusy]) { client[kNeedDrain] = 2; } else if (client[kNeedDrain] === 2) { if (sync) { client[kNeedDrain] = 1; process.nextTick(emitDrain, client); } else { emitDrain(client); } continue; } if (client[kPending] === 0) { return; } if (client[kRunning] >= (client[kPipelining] || 1)) { return; } const request2 = client[kQueue][client[kPendingIdx]]; if (client[kUrl].protocol === "https:" && client[kServerName] !== request2.servername) { if (client[kRunning] > 0) { return; } client[kServerName] = request2.servername; if (socket && socket.servername !== request2.servername) { util2.destroy(socket, new InformationalError("servername changed")); return; } } if (client[kConnecting]) { return; } if (!socket) { connect(client); continue; } if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) { return; } if (client[kRunning] > 0 && !request2.idempotent) { return; } if (client[kRunning] > 0 && (request2.upgrade || request2.method === "CONNECT")) { return; } if (util2.isStream(request2.body) && util2.bodyLength(request2.body) === 0) { request2.body.on("data", function() { assert(false); }).on("error", function(err) { errorRequest(client, request2, err); }).on("end", function() { util2.destroy(this); }); request2.body = null; } if (client[kRunning] > 0 && (util2.isStream(request2.body) || util2.isAsyncIterable(request2.body))) { return; } if (!request2.aborted && write(client, request2)) { client[kPendingIdx]++; } else { client[kQueue].splice(client[kPendingIdx], 1); } } } __name(_resume, "_resume"); function write(client, request2) { const { body, method, path: path7, host, upgrade, headers, blocking } = request2; const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH"; if (body && typeof body.read === "function") { body.read(0); } let contentLength = util2.bodyLength(body); if (contentLength === null) { contentLength = request2.contentLength; } if (contentLength === 0 && !expectsPayload) { contentLength = null; } if (request2.contentLength !== null && request2.contentLength !== contentLength) { if (client[kStrictContentLength]) { errorRequest(client, request2, new RequestContentLengthMismatchError()); return false; } process.emitWarning(new RequestContentLengthMismatchError()); } const socket = client[kSocket]; try { request2.onConnect((err) => { if (request2.aborted || request2.completed) { return; } errorRequest(client, request2, err || new RequestAbortedError()); util2.destroy(socket, new InformationalError("aborted")); }); } catch (err) { errorRequest(client, request2, err); } if (request2.aborted) { return false; } if (method === "HEAD") { socket[kReset] = true; } if (upgrade || method === "CONNECT") { socket[kReset] = true; } if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { socket[kReset] = true; } if (blocking) { socket[kBlocking] = true; } let header = `${method} ${path7} HTTP/1.1\r `; if (typeof host === "string") { header += `host: ${host}\r `; } else { header += client[kHostHeader]; } if (upgrade) { header += `connection: upgrade\r upgrade: ${upgrade}\r `; } else if (client[kPipelining]) { header += "connection: keep-alive\r\n"; } else { header += "connection: close\r\n"; } if (headers) { header += headers; } if (channels.sendHeaders.hasSubscribers) { channels.sendHeaders.publish({ request: request2, headers: header, socket }); } if (!body) { if (contentLength === 0) { socket.write(`${header}content-length: 0\r \r `, "ascii"); } else { assert(contentLength === null, "no body must not have content length"); socket.write(`${header}\r `, "ascii"); } request2.onRequestSent(); } else if (util2.isBuffer(body)) { assert(contentLength === body.byteLength, "buffer body must have content length"); socket.cork(); socket.write(`${header}content-length: ${contentLength}\r \r `, "ascii"); socket.write(body); socket.uncork(); request2.onBodySent(body); request2.onRequestSent(); if (!expectsPayload) { socket[kReset] = true; } } else if (util2.isBlobLike(body)) { if (typeof body.stream === "function") { writeIterable({ body: body.stream(), client, request: request2, socket, contentLength, header, expectsPayload }); } else { writeBlob({ body, client, request: request2, socket, contentLength, header, expectsPayload }); } } else if (util2.isStream(body)) { writeStream({ body, client, request: request2, socket, contentLength, header, expectsPayload }); } else if (util2.isIterable(body)) { writeIterable({ body, client, request: request2, socket, contentLength, header, expectsPayload }); } else { assert(false); } return true; } __name(write, "write"); function writeStream({ body, client, request: request2, socket, contentLength, header, expectsPayload }) { assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); let finished = false; const writer = new AsyncWriter({ socket, request: request2, contentLength, client, expectsPayload, header }); const onData = /* @__PURE__ */ __name(function(chunk) { try { assert(!finished); if (!writer.write(chunk) && this.pause) { this.pause(); } } catch (err) { util2.destroy(this, err); } }, "onData"); const onDrain = /* @__PURE__ */ __name(function() { assert(!finished); if (body.resume) { body.resume(); } }, "onDrain"); const onAbort = /* @__PURE__ */ __name(function() { onFinished(new RequestAbortedError()); }, "onAbort"); const onFinished = /* @__PURE__ */ __name(function(err) { if (finished) { return; } finished = true; assert(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); socket.off("drain", onDrain).off("error", onFinished); body.removeListener("data", onData).removeListener("end", onFinished).removeListener("error", onFinished).removeListener("close", onAbort); if (!err) { try { writer.end(); } catch (er) { err = er; } } writer.destroy(err); if (err && (err.code !== "UND_ERR_INFO" || err.message !== "reset")) { util2.destroy(body, err); } else { util2.destroy(body); } }, "onFinished"); body.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onAbort); if (body.resume) { body.resume(); } socket.on("drain", onDrain).on("error", onFinished); } __name(writeStream, "writeStream"); async function writeBlob({ body, client, request: request2, socket, contentLength, header, expectsPayload }) { assert(contentLength === body.size, "blob body must have content length"); try { if (contentLength != null && contentLength !== body.size) { throw new RequestContentLengthMismatchError(); } const buffer = Buffer.from(await body.arrayBuffer()); socket.cork(); socket.write(`${header}content-length: ${contentLength}\r \r `, "ascii"); socket.write(buffer); socket.uncork(); request2.onBodySent(buffer); request2.onRequestSent(); if (!expectsPayload) { socket[kReset] = true; } resume(client); } catch (err) { util2.destroy(socket, err); } } __name(writeBlob, "writeBlob"); async function writeIterable({ body, client, request: request2, socket, contentLength, header, expectsPayload }) { assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { const cb = callback; callback = null; cb(); } } __name(onDrain, "onDrain"); const waitForDrain = /* @__PURE__ */ __name(() => new Promise((resolve, reject) => { assert(callback === null); if (socket[kError]) { reject(socket[kError]); } else { callback = resolve; } }), "waitForDrain"); socket.on("close", onDrain).on("drain", onDrain); const writer = new AsyncWriter({ socket, request: request2, contentLength, client, expectsPayload, header }); try { for await (const chunk of body) { if (socket[kError]) { throw socket[kError]; } if (!writer.write(chunk)) { await waitForDrain(); } } writer.end(); } catch (err) { writer.destroy(err); } finally { socket.off("close", onDrain).off("drain", onDrain); } } __name(writeIterable, "writeIterable"); var AsyncWriter = class { constructor({ socket, request: request2, contentLength, client, expectsPayload, header }) { this.socket = socket; this.request = request2; this.contentLength = contentLength; this.client = client; this.bytesWritten = 0; this.expectsPayload = expectsPayload; this.header = header; socket[kWriting] = true; } write(chunk) { const { socket, request: request2, contentLength, client, bytesWritten, expectsPayload, header } = this; if (socket[kError]) { throw socket[kError]; } if (socket.destroyed) { return false; } const len = Buffer.byteLength(chunk); if (!len) { return true; } if (contentLength !== null && bytesWritten + len > contentLength) { if (client[kStrictContentLength]) { throw new RequestContentLengthMismatchError(); } process.emitWarning(new RequestContentLengthMismatchError()); } if (bytesWritten === 0) { if (!expectsPayload) { socket[kReset] = true; } if (contentLength === null) { socket.write(`${header}transfer-encoding: chunked\r `, "ascii"); } else { socket.write(`${header}content-length: ${contentLength}\r \r `, "ascii"); } } if (contentLength === null) { socket.write(`\r ${len.toString(16)}\r `, "ascii"); } this.bytesWritten += len; const ret = socket.write(chunk); request2.onBodySent(chunk); if (!ret) { if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { if (socket[kParser].timeout.refresh) { socket[kParser].timeout.refresh(); } } } return ret; } end() { const { socket, contentLength, client, bytesWritten, expectsPayload, header, request: request2 } = this; request2.onRequestSent(); socket[kWriting] = false; if (socket[kError]) { throw socket[kError]; } if (socket.destroyed) { return; } if (bytesWritten === 0) { if (expectsPayload) { socket.write(`${header}content-length: 0\r \r `, "ascii"); } else { socket.write(`${header}\r `, "ascii"); } } else if (contentLength === null) { socket.write("\r\n0\r\n\r\n", "ascii"); } if (contentLength !== null && bytesWritten !== contentLength) { if (client[kStrictContentLength]) { throw new RequestContentLengthMismatchError(); } else { process.emitWarning(new RequestContentLengthMismatchError()); } } if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { if (socket[kParser].timeout.refresh) { socket[kParser].timeout.refresh(); } } resume(client); } destroy(err) { const { socket, client } = this; socket[kWriting] = false; if (err) { assert(client[kRunning] <= 1, "pipeline should only contain this request"); util2.destroy(socket, err); } } }; __name(AsyncWriter, "AsyncWriter"); function errorRequest(client, request2, err) { try { request2.onError(err); assert(request2.aborted); } catch (err2) { client.emit("error", err2); } } __name(errorRequest, "errorRequest"); module2.exports = Client; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/node/fixed-queue.js var require_fixed_queue = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/node/fixed-queue.js"(exports, module2) { "use strict"; var kSize = 2048; var kMask = kSize - 1; var FixedCircularBuffer = class { constructor() { this.bottom = 0; this.top = 0; this.list = new Array(kSize); this.next = null; } isEmpty() { return this.top === this.bottom; } isFull() { return (this.top + 1 & kMask) === this.bottom; } push(data) { this.list[this.top] = data; this.top = this.top + 1 & kMask; } shift() { const nextItem = this.list[this.bottom]; if (nextItem === void 0) return null; this.list[this.bottom] = void 0; this.bottom = this.bottom + 1 & kMask; return nextItem; } }; __name(FixedCircularBuffer, "FixedCircularBuffer"); module2.exports = /* @__PURE__ */ __name(class FixedQueue { constructor() { this.head = this.tail = new FixedCircularBuffer(); } isEmpty() { return this.head.isEmpty(); } push(data) { if (this.head.isFull()) { this.head = this.head.next = new FixedCircularBuffer(); } this.head.push(data); } shift() { const tail = this.tail; const next = tail.shift(); if (tail.isEmpty() && tail.next !== null) { this.tail = tail.next; } return next; } }, "FixedQueue"); } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/pool-stats.js var require_pool_stats = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/pool-stats.js"(exports, module2) { var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols(); var kPool = Symbol("pool"); var PoolStats = class { constructor(pool) { this[kPool] = pool; } get connected() { return this[kPool][kConnected]; } get free() { return this[kPool][kFree]; } get pending() { return this[kPool][kPending]; } get queued() { return this[kPool][kQueued]; } get running() { return this[kPool][kRunning]; } get size() { return this[kPool][kSize]; } }; __name(PoolStats, "PoolStats"); module2.exports = PoolStats; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/pool-base.js var require_pool_base = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/pool-base.js"(exports, module2) { "use strict"; var DispatcherBase = require_dispatcher_base(); var FixedQueue = require_fixed_queue(); var { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require_symbols(); var PoolStats = require_pool_stats(); var kClients = Symbol("clients"); var kNeedDrain = Symbol("needDrain"); var kQueue = Symbol("queue"); var kClosedResolve = Symbol("closed resolve"); var kOnDrain = Symbol("onDrain"); var kOnConnect = Symbol("onConnect"); var kOnDisconnect = Symbol("onDisconnect"); var kOnConnectionError = Symbol("onConnectionError"); var kGetDispatcher = Symbol("get dispatcher"); var kAddClient = Symbol("add client"); var kRemoveClient = Symbol("remove client"); var kStats = Symbol("stats"); var PoolBase = class extends DispatcherBase { constructor() { super(); this[kQueue] = new FixedQueue(); this[kClients] = []; this[kQueued] = 0; const pool = this; this[kOnDrain] = /* @__PURE__ */ __name(function onDrain(origin, targets) { const queue = pool[kQueue]; let needDrain = false; while (!needDrain) { const item = queue.shift(); if (!item) { break; } pool[kQueued]--; needDrain = !this.dispatch(item.opts, item.handler); } this[kNeedDrain] = needDrain; if (!this[kNeedDrain] && pool[kNeedDrain]) { pool[kNeedDrain] = false; pool.emit("drain", origin, [pool, ...targets]); } if (pool[kClosedResolve] && queue.isEmpty()) { Promise.all(pool[kClients].map((c) => c.close())).then(pool[kClosedResolve]); } }, "onDrain"); this[kOnConnect] = (origin, targets) => { pool.emit("connect", origin, [pool, ...targets]); }; this[kOnDisconnect] = (origin, targets, err) => { pool.emit("disconnect", origin, [pool, ...targets], err); }; this[kOnConnectionError] = (origin, targets, err) => { pool.emit("connectionError", origin, [pool, ...targets], err); }; this[kStats] = new PoolStats(this); } get [kBusy]() { return this[kNeedDrain]; } get [kConnected]() { return this[kClients].filter((client) => client[kConnected]).length; } get [kFree]() { return this[kClients].filter((client) => client[kConnected] && !client[kNeedDrain]).length; } get [kPending]() { let ret = this[kQueued]; for (const { [kPending]: pending } of this[kClients]) { ret += pending; } return ret; } get [kRunning]() { let ret = 0; for (const { [kRunning]: running } of this[kClients]) { ret += running; } return ret; } get [kSize]() { let ret = this[kQueued]; for (const { [kSize]: size } of this[kClients]) { ret += size; } return ret; } get stats() { return this[kStats]; } async [kClose]() { if (this[kQueue].isEmpty()) { return Promise.all(this[kClients].map((c) => c.close())); } else { return new Promise((resolve) => { this[kClosedResolve] = resolve; }); } } async [kDestroy](err) { while (true) { const item = this[kQueue].shift(); if (!item) { break; } item.handler.onError(err); } return Promise.all(this[kClients].map((c) => c.destroy(err))); } [kDispatch](opts, handler) { const dispatcher = this[kGetDispatcher](); if (!dispatcher) { this[kNeedDrain] = true; this[kQueue].push({ opts, handler }); this[kQueued]++; } else if (!dispatcher.dispatch(opts, handler)) { dispatcher[kNeedDrain] = true; this[kNeedDrain] = !this[kGetDispatcher](); } return !this[kNeedDrain]; } [kAddClient](client) { client.on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); this[kClients].push(client); if (this[kNeedDrain]) { process.nextTick(() => { if (this[kNeedDrain]) { this[kOnDrain](client[kUrl], [this, client]); } }); } return this; } [kRemoveClient](client) { client.close(() => { const idx = this[kClients].indexOf(client); if (idx !== -1) { this[kClients].splice(idx, 1); } }); this[kNeedDrain] = this[kClients].some((dispatcher) => !dispatcher[kNeedDrain] && dispatcher.closed !== true && dispatcher.destroyed !== true); } }; __name(PoolBase, "PoolBase"); module2.exports = { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/pool.js var require_pool = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/pool.js"(exports, module2) { "use strict"; var { PoolBase, kClients, kNeedDrain, kAddClient, kGetDispatcher } = require_pool_base(); var Client = require_client(); var { InvalidArgumentError } = require_errors(); var util2 = require_util2(); var { kUrl, kInterceptors } = require_symbols(); var buildConnector = require_connect(); var kOptions = Symbol("options"); var kConnections = Symbol("connections"); var kFactory = Symbol("factory"); function defaultFactory(origin, opts) { return new Client(origin, opts); } __name(defaultFactory, "defaultFactory"); var Pool = class extends PoolBase { constructor(origin, { connections, factory = defaultFactory, connect, connectTimeout, tls, maxCachedSessions, socketPath, ...options } = {}) { super(); if (connections != null && (!Number.isFinite(connections) || connections < 0)) { throw new InvalidArgumentError("invalid connections"); } if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } if (connect != null && typeof connect !== "function" && typeof connect !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (typeof connect !== "function") { connect = buildConnector({ ...tls, maxCachedSessions, socketPath, timeout: connectTimeout == null ? 1e4 : connectTimeout, ...connect }); } this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : []; this[kConnections] = connections || null; this[kUrl] = util2.parseOrigin(origin); this[kOptions] = { ...util2.deepClone(options), connect }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kFactory] = factory; } [kGetDispatcher]() { let dispatcher = this[kClients].find((dispatcher2) => !dispatcher2[kNeedDrain]); if (dispatcher) { return dispatcher; } if (!this[kConnections] || this[kClients].length < this[kConnections]) { dispatcher = this[kFactory](this[kUrl], this[kOptions]); this[kAddClient](dispatcher); } return dispatcher; } }; __name(Pool, "Pool"); module2.exports = Pool; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/balanced-pool.js var require_balanced_pool = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/balanced-pool.js"(exports, module2) { "use strict"; var { BalancedPoolMissingUpstreamError, InvalidArgumentError } = require_errors(); var { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher } = require_pool_base(); var Pool = require_pool(); var { kUrl, kInterceptors } = require_symbols(); var { parseOrigin } = require_util2(); var kFactory = Symbol("factory"); var kOptions = Symbol("options"); var kGreatestCommonDivisor = Symbol("kGreatestCommonDivisor"); var kCurrentWeight = Symbol("kCurrentWeight"); var kIndex = Symbol("kIndex"); var kWeight = Symbol("kWeight"); var kMaxWeightPerServer = Symbol("kMaxWeightPerServer"); var kErrorPenalty = Symbol("kErrorPenalty"); function getGreatestCommonDivisor(a, b2) { if (b2 === 0) return a; return getGreatestCommonDivisor(b2, a % b2); } __name(getGreatestCommonDivisor, "getGreatestCommonDivisor"); function defaultFactory(origin, opts) { return new Pool(origin, opts); } __name(defaultFactory, "defaultFactory"); var BalancedPool = class extends PoolBase { constructor(upstreams = [], { factory = defaultFactory, ...opts } = {}) { super(); this[kOptions] = opts; this[kIndex] = -1; this[kCurrentWeight] = 0; this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100; this[kErrorPenalty] = this[kOptions].errorPenalty || 15; if (!Array.isArray(upstreams)) { upstreams = [upstreams]; } if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) ? opts.interceptors.BalancedPool : []; this[kFactory] = factory; for (const upstream of upstreams) { this.addUpstream(upstream); } this._updateBalancedPoolStats(); } addUpstream(upstream) { const upstreamOrigin = parseOrigin(upstream).origin; if (this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true)) { return this; } const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])); this[kAddClient](pool); pool.on("connect", () => { pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]); }); pool.on("connectionError", () => { pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); this._updateBalancedPoolStats(); }); pool.on("disconnect", (...args) => { const err = args[2]; if (err && err.code === "UND_ERR_SOCKET") { pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); this._updateBalancedPoolStats(); } }); for (const client of this[kClients]) { client[kWeight] = this[kMaxWeightPerServer]; } this._updateBalancedPoolStats(); return this; } _updateBalancedPoolStats() { this[kGreatestCommonDivisor] = this[kClients].map((p2) => p2[kWeight]).reduce(getGreatestCommonDivisor, 0); } removeUpstream(upstream) { const upstreamOrigin = parseOrigin(upstream).origin; const pool = this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true); if (pool) { this[kRemoveClient](pool); } return this; } get upstreams() { return this[kClients].filter((dispatcher) => dispatcher.closed !== true && dispatcher.destroyed !== true).map((p2) => p2[kUrl].origin); } [kGetDispatcher]() { if (this[kClients].length === 0) { throw new BalancedPoolMissingUpstreamError(); } const dispatcher = this[kClients].find((dispatcher2) => !dispatcher2[kNeedDrain] && dispatcher2.closed !== true && dispatcher2.destroyed !== true); if (!dispatcher) { return; } const allClientsBusy = this[kClients].map((pool) => pool[kNeedDrain]).reduce((a, b2) => a && b2, true); if (allClientsBusy) { return; } let counter = 0; let maxWeightIndex = this[kClients].findIndex((pool) => !pool[kNeedDrain]); while (counter++ < this[kClients].length) { this[kIndex] = (this[kIndex] + 1) % this[kClients].length; const pool = this[kClients][this[kIndex]]; if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { maxWeightIndex = this[kIndex]; } if (this[kIndex] === 0) { this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]; if (this[kCurrentWeight] <= 0) { this[kCurrentWeight] = this[kMaxWeightPerServer]; } } if (pool[kWeight] >= this[kCurrentWeight] && !pool[kNeedDrain]) { return pool; } } this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]; this[kIndex] = maxWeightIndex; return this[kClients][maxWeightIndex]; } }; __name(BalancedPool, "BalancedPool"); module2.exports = BalancedPool; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/compat/dispatcher-weakref.js var require_dispatcher_weakref = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/compat/dispatcher-weakref.js"(exports, module2) { "use strict"; var { kConnected, kSize } = require_symbols(); var CompatWeakRef = class { constructor(value) { this.value = value; } deref() { return this.value[kConnected] === 0 && this.value[kSize] === 0 ? void 0 : this.value; } }; __name(CompatWeakRef, "CompatWeakRef"); var CompatFinalizer = class { constructor(finalizer) { this.finalizer = finalizer; } register(dispatcher, key) { dispatcher.on("disconnect", () => { if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { this.finalizer(key); } }); } }; __name(CompatFinalizer, "CompatFinalizer"); module2.exports = function() { return { WeakRef: global.WeakRef || CompatWeakRef, FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer }; }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/agent.js var require_agent = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/agent.js"(exports, module2) { "use strict"; var { InvalidArgumentError } = require_errors(); var { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(); var DispatcherBase = require_dispatcher_base(); var Pool = require_pool(); var Client = require_client(); var util2 = require_util2(); var createRedirectInterceptor = require_redirectInterceptor(); var { WeakRef: WeakRef2, FinalizationRegistry } = require_dispatcher_weakref()(); var kOnConnect = Symbol("onConnect"); var kOnDisconnect = Symbol("onDisconnect"); var kOnConnectionError = Symbol("onConnectionError"); var kMaxRedirections = Symbol("maxRedirections"); var kOnDrain = Symbol("onDrain"); var kFactory = Symbol("factory"); var kFinalizer = Symbol("finalizer"); var kOptions = Symbol("options"); function defaultFactory(origin, opts) { return opts && opts.connections === 1 ? new Client(origin, opts) : new Pool(origin, opts); } __name(defaultFactory, "defaultFactory"); var Agent = class extends DispatcherBase { constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { super(); if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } if (connect != null && typeof connect !== "function" && typeof connect !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } if (connect && typeof connect !== "function") { connect = { ...connect }; } this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })]; this[kOptions] = { ...util2.deepClone(options), connect }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kMaxRedirections] = maxRedirections; this[kFactory] = factory; this[kClients] = /* @__PURE__ */ new Map(); this[kFinalizer] = new FinalizationRegistry((key) => { const ref = this[kClients].get(key); if (ref !== void 0 && ref.deref() === void 0) { this[kClients].delete(key); } }); const agent = this; this[kOnDrain] = (origin, targets) => { agent.emit("drain", origin, [agent, ...targets]); }; this[kOnConnect] = (origin, targets) => { agent.emit("connect", origin, [agent, ...targets]); }; this[kOnDisconnect] = (origin, targets, err) => { agent.emit("disconnect", origin, [agent, ...targets], err); }; this[kOnConnectionError] = (origin, targets, err) => { agent.emit("connectionError", origin, [agent, ...targets], err); }; } get [kRunning]() { let ret = 0; for (const ref of this[kClients].values()) { const client = ref.deref(); if (client) { ret += client[kRunning]; } } return ret; } [kDispatch](opts, handler) { let key; if (opts.origin && (typeof opts.origin === "string" || opts.origin instanceof URL)) { key = String(opts.origin); } else { throw new InvalidArgumentError("opts.origin must be a non-empty string or URL."); } const ref = this[kClients].get(key); let dispatcher = ref ? ref.deref() : null; if (!dispatcher) { dispatcher = this[kFactory](opts.origin, this[kOptions]).on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); this[kClients].set(key, new WeakRef2(dispatcher)); this[kFinalizer].register(dispatcher, key); } return dispatcher.dispatch(opts, handler); } async [kClose]() { const closePromises = []; for (const ref of this[kClients].values()) { const client = ref.deref(); if (client) { closePromises.push(client.close()); } } await Promise.all(closePromises); } async [kDestroy](err) { const destroyPromises = []; for (const ref of this[kClients].values()) { const client = ref.deref(); if (client) { destroyPromises.push(client.destroy(err)); } } await Promise.all(destroyPromises); } }; __name(Agent, "Agent"); module2.exports = Agent; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/readable.js var require_readable = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/readable.js"(exports, module2) { "use strict"; var assert = require("assert"); var { Readable } = require("stream"); var { RequestAbortedError, NotSupportedError } = require_errors(); var util2 = require_util2(); var { ReadableStreamFrom, toUSVString } = require_util2(); var Blob; var kConsume = Symbol("kConsume"); var kReading = Symbol("kReading"); var kBody = Symbol("kBody"); var kAbort = Symbol("abort"); var kContentType = Symbol("kContentType"); module2.exports = /* @__PURE__ */ __name(class BodyReadable extends Readable { constructor(resume, abort, contentType = "") { super({ autoDestroy: true, read: resume, highWaterMark: 64 * 1024 }); this._readableState.dataEmitted = false; this[kAbort] = abort; this[kConsume] = null; this[kBody] = null; this[kContentType] = contentType; this[kReading] = false; } destroy(err) { if (this.destroyed) { return this; } if (!err && !this._readableState.endEmitted) { err = new RequestAbortedError(); } if (err) { this[kAbort](); } return super.destroy(err); } emit(ev, ...args) { if (ev === "data") { this._readableState.dataEmitted = true; } else if (ev === "error") { this._readableState.errorEmitted = true; } return super.emit(ev, ...args); } on(ev, ...args) { if (ev === "data" || ev === "readable") { this[kReading] = true; } return super.on(ev, ...args); } addListener(ev, ...args) { return this.on(ev, ...args); } off(ev, ...args) { const ret = super.off(ev, ...args); if (ev === "data" || ev === "readable") { this[kReading] = this.listenerCount("data") > 0 || this.listenerCount("readable") > 0; } return ret; } removeListener(ev, ...args) { return this.off(ev, ...args); } push(chunk) { if (this[kConsume] && chunk !== null && this.readableLength === 0) { consumePush(this[kConsume], chunk); return this[kReading] ? super.push(chunk) : true; } return super.push(chunk); } async text() { return consume(this, "text"); } async json() { return consume(this, "json"); } async blob() { return consume(this, "blob"); } async arrayBuffer() { return consume(this, "arrayBuffer"); } async formData() { throw new NotSupportedError(); } get bodyUsed() { return util2.isDisturbed(this); } get body() { if (!this[kBody]) { this[kBody] = ReadableStreamFrom(this); if (this[kConsume]) { this[kBody].getReader(); assert(this[kBody].locked); } } return this[kBody]; } async dump(opts) { let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144; try { for await (const chunk of this) { limit -= Buffer.byteLength(chunk); if (limit < 0) { return; } } } catch { } } }, "BodyReadable"); function isLocked(self2) { return self2[kBody] && self2[kBody].locked === true || self2[kConsume]; } __name(isLocked, "isLocked"); function isUnusable(self2) { return util2.isDisturbed(self2) || isLocked(self2); } __name(isUnusable, "isUnusable"); async function consume(stream2, type) { if (isUnusable(stream2)) { throw new TypeError("unusable"); } assert(!stream2[kConsume]); return new Promise((resolve, reject) => { stream2[kConsume] = { type, stream: stream2, resolve, reject, length: 0, body: [] }; stream2.on("error", function(err) { consumeFinish(this[kConsume], err); }).on("close", function() { if (this[kConsume].body !== null) { consumeFinish(this[kConsume], new RequestAbortedError()); } }); process.nextTick(consumeStart, stream2[kConsume]); }); } __name(consume, "consume"); function consumeStart(consume2) { if (consume2.body === null) { return; } const { _readableState: state } = consume2.stream; for (const chunk of state.buffer) { consumePush(consume2, chunk); } if (state.endEmitted) { consumeEnd(this[kConsume]); } else { consume2.stream.on("end", function() { consumeEnd(this[kConsume]); }); } consume2.stream.resume(); while (consume2.stream.read() != null) { } } __name(consumeStart, "consumeStart"); function consumeEnd(consume2) { const { type, body, resolve, stream: stream2, length } = consume2; try { if (type === "text") { resolve(toUSVString(Buffer.concat(body))); } else if (type === "json") { resolve(JSON.parse(Buffer.concat(body))); } else if (type === "arrayBuffer") { const dst = new Uint8Array(length); let pos = 0; for (const buf of body) { dst.set(buf, pos); pos += buf.byteLength; } resolve(dst); } else if (type === "blob") { if (!Blob) { Blob = require("buffer").Blob; } resolve(new Blob(body, { type: stream2[kContentType] })); } consumeFinish(consume2); } catch (err) { stream2.destroy(err); } } __name(consumeEnd, "consumeEnd"); function consumePush(consume2, chunk) { consume2.length += chunk.length; consume2.body.push(chunk); } __name(consumePush, "consumePush"); function consumeFinish(consume2, err) { if (consume2.body === null) { return; } if (err) { consume2.reject(err); } else { consume2.resolve(); } consume2.type = null; consume2.stream = null; consume2.resolve = null; consume2.reject = null; consume2.length = 0; consume2.body = null; } __name(consumeFinish, "consumeFinish"); } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/abort-signal.js var require_abort_signal = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/abort-signal.js"(exports, module2) { var { RequestAbortedError } = require_errors(); var kListener = Symbol("kListener"); var kSignal = Symbol("kSignal"); function abort(self2) { if (self2.abort) { self2.abort(); } else { self2.onError(new RequestAbortedError()); } } __name(abort, "abort"); function addSignal(self2, signal) { self2[kSignal] = null; self2[kListener] = null; if (!signal) { return; } if (signal.aborted) { abort(self2); return; } self2[kSignal] = signal; self2[kListener] = () => { abort(self2); }; if ("addEventListener" in self2[kSignal]) { self2[kSignal].addEventListener("abort", self2[kListener]); } else { self2[kSignal].addListener("abort", self2[kListener]); } } __name(addSignal, "addSignal"); function removeSignal(self2) { if (!self2[kSignal]) { return; } if ("removeEventListener" in self2[kSignal]) { self2[kSignal].removeEventListener("abort", self2[kListener]); } else { self2[kSignal].removeListener("abort", self2[kListener]); } self2[kSignal] = null; self2[kListener] = null; } __name(removeSignal, "removeSignal"); module2.exports = { addSignal, removeSignal }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-request.js var require_api_request = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-request.js"(exports, module2) { "use strict"; var Readable = require_readable(); var { InvalidArgumentError, RequestAbortedError, ResponseStatusCodeError } = require_errors(); var util2 = require_util2(); var { AsyncResource: AsyncResource2 } = require("async_hooks"); var { addSignal, removeSignal } = require_abort_signal(); var RequestHandler2 = class extends AsyncResource2 { constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts; try { if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } if (method === "CONNECT") { throw new InvalidArgumentError("invalid method"); } if (onInfo && typeof onInfo !== "function") { throw new InvalidArgumentError("invalid onInfo callback"); } super("UNDICI_REQUEST"); } catch (err) { if (util2.isStream(body)) { util2.destroy(body.on("error", util2.nop), err); } throw err; } this.responseHeaders = responseHeaders || null; this.opaque = opaque || null; this.callback = callback; this.res = null; this.abort = null; this.body = body; this.trailers = {}; this.context = null; this.onInfo = onInfo || null; this.throwOnError = throwOnError; if (util2.isStream(body)) { body.on("error", (err) => { this.onError(err); }); } addSignal(this, signal); } onConnect(abort, context2) { if (!this.callback) { throw new RequestAbortedError(); } this.abort = abort; this.context = context2; } onHeaders(statusCode, rawHeaders, resume, statusMessage) { const { callback, opaque, abort, context: context2 } = this; if (statusCode < 200) { if (this.onInfo) { const headers2 = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); this.onInfo({ statusCode, headers: headers2 }); } return; } const parsedHeaders = util2.parseHeaders(rawHeaders); const contentType = parsedHeaders["content-type"]; const body = new Readable(resume, abort, contentType); this.callback = null; this.res = body; const headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); if (callback !== null) { if (this.throwOnError && statusCode >= 400) { this.runInAsyncScope( getResolveErrorBodyCallback, null, { callback, body, contentType, statusCode, statusMessage, headers } ); return; } this.runInAsyncScope(callback, null, null, { statusCode, headers, trailers: this.trailers, opaque, body, context: context2 }); } } onData(chunk) { const { res } = this; return res.push(chunk); } onComplete(trailers) { const { res } = this; removeSignal(this); util2.parseHeaders(trailers, this.trailers); res.push(null); } onError(err) { const { res, callback, body, opaque } = this; removeSignal(this); if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); }); } if (res) { this.res = null; queueMicrotask(() => { util2.destroy(res, err); }); } if (body) { this.body = null; util2.destroy(body, err); } } }; __name(RequestHandler2, "RequestHandler"); async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { if (statusCode === 204 || !contentType) { body.dump(); process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`, statusCode, headers)); return; } try { if (contentType.startsWith("application/json")) { const payload = await body.json(); process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`, statusCode, headers, payload)); return; } if (contentType.startsWith("text/")) { const payload = await body.text(); process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`, statusCode, headers, payload)); return; } } catch (err) { } body.dump(); process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`, statusCode, headers)); } __name(getResolveErrorBodyCallback, "getResolveErrorBodyCallback"); function request2(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { request2.call(this, opts, (err, data) => { return err ? reject(err) : resolve(data); }); }); } try { this.dispatch(opts, new RequestHandler2(opts, callback)); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts && opts.opaque; queueMicrotask(() => callback(err, { opaque })); } } __name(request2, "request"); module2.exports = request2; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-stream.js var require_api_stream = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-stream.js"(exports, module2) { "use strict"; var { finished } = require("stream"); var { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = require_errors(); var util2 = require_util2(); var { AsyncResource: AsyncResource2 } = require("async_hooks"); var { addSignal, removeSignal } = require_abort_signal(); var StreamHandler = class extends AsyncResource2 { constructor(opts, factory, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } const { signal, method, opaque, body, onInfo, responseHeaders } = opts; try { if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (typeof factory !== "function") { throw new InvalidArgumentError("invalid factory"); } if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } if (method === "CONNECT") { throw new InvalidArgumentError("invalid method"); } if (onInfo && typeof onInfo !== "function") { throw new InvalidArgumentError("invalid onInfo callback"); } super("UNDICI_STREAM"); } catch (err) { if (util2.isStream(body)) { util2.destroy(body.on("error", util2.nop), err); } throw err; } this.responseHeaders = responseHeaders || null; this.opaque = opaque || null; this.factory = factory; this.callback = callback; this.res = null; this.abort = null; this.context = null; this.trailers = null; this.body = body; this.onInfo = onInfo || null; if (util2.isStream(body)) { body.on("error", (err) => { this.onError(err); }); } addSignal(this, signal); } onConnect(abort, context2) { if (!this.callback) { throw new RequestAbortedError(); } this.abort = abort; this.context = context2; } onHeaders(statusCode, rawHeaders, resume) { const { factory, opaque, context: context2 } = this; if (statusCode < 200) { if (this.onInfo) { const headers2 = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); this.onInfo({ statusCode, headers: headers2 }); } return; } this.factory = null; const headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); const res = this.runInAsyncScope(factory, null, { statusCode, headers, opaque, context: context2 }); if (!res || typeof res.write !== "function" || typeof res.end !== "function" || typeof res.on !== "function") { throw new InvalidReturnValueError("expected Writable"); } res.on("drain", resume); finished(res, { readable: false }, (err) => { const { callback, res: res2, opaque: opaque2, trailers, abort } = this; this.res = null; if (err || !res2.readable) { util2.destroy(res2, err); } this.callback = null; this.runInAsyncScope(callback, null, err || null, { opaque: opaque2, trailers }); if (err) { abort(); } }); this.res = res; const needDrain = res.writableNeedDrain !== void 0 ? res.writableNeedDrain : res._writableState && res._writableState.needDrain; return needDrain !== true; } onData(chunk) { const { res } = this; return res.write(chunk); } onComplete(trailers) { const { res } = this; removeSignal(this); this.trailers = util2.parseHeaders(trailers); res.end(); } onError(err) { const { res, callback, opaque, body } = this; removeSignal(this); this.factory = null; if (res) { this.res = null; util2.destroy(res, err); } else if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); }); } if (body) { this.body = null; util2.destroy(body, err); } } }; __name(StreamHandler, "StreamHandler"); function stream2(opts, factory, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { stream2.call(this, opts, factory, (err, data) => { return err ? reject(err) : resolve(data); }); }); } try { this.dispatch(opts, new StreamHandler(opts, factory, callback)); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts && opts.opaque; queueMicrotask(() => callback(err, { opaque })); } } __name(stream2, "stream"); module2.exports = stream2; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-pipeline.js var require_api_pipeline = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-pipeline.js"(exports, module2) { "use strict"; var { Readable, Duplex, PassThrough } = require("stream"); var { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = require_errors(); var util2 = require_util2(); var { AsyncResource: AsyncResource2 } = require("async_hooks"); var { addSignal, removeSignal } = require_abort_signal(); var assert = require("assert"); var kResume = Symbol("resume"); var PipelineRequest = class extends Readable { constructor() { super({ autoDestroy: true }); this[kResume] = null; } _read() { const { [kResume]: resume } = this; if (resume) { this[kResume] = null; resume(); } } _destroy(err, callback) { this._read(); callback(err); } }; __name(PipelineRequest, "PipelineRequest"); var PipelineResponse = class extends Readable { constructor(resume) { super({ autoDestroy: true }); this[kResume] = resume; } _read() { this[kResume](); } _destroy(err, callback) { if (!err && !this._readableState.endEmitted) { err = new RequestAbortedError(); } callback(err); } }; __name(PipelineResponse, "PipelineResponse"); var PipelineHandler = class extends AsyncResource2 { constructor(opts, handler) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (typeof handler !== "function") { throw new InvalidArgumentError("invalid handler"); } const { signal, method, opaque, onInfo, responseHeaders } = opts; if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } if (method === "CONNECT") { throw new InvalidArgumentError("invalid method"); } if (onInfo && typeof onInfo !== "function") { throw new InvalidArgumentError("invalid onInfo callback"); } super("UNDICI_PIPELINE"); this.opaque = opaque || null; this.responseHeaders = responseHeaders || null; this.handler = handler; this.abort = null; this.context = null; this.onInfo = onInfo || null; this.req = new PipelineRequest().on("error", util2.nop); this.ret = new Duplex({ readableObjectMode: opts.objectMode, autoDestroy: true, read: () => { const { body } = this; if (body && body.resume) { body.resume(); } }, write: (chunk, encoding, callback) => { const { req } = this; if (req.push(chunk, encoding) || req._readableState.destroyed) { callback(); } else { req[kResume] = callback; } }, destroy: (err, callback) => { const { body, req, res, ret, abort } = this; if (!err && !ret._readableState.endEmitted) { err = new RequestAbortedError(); } if (abort && err) { abort(); } util2.destroy(body, err); util2.destroy(req, err); util2.destroy(res, err); removeSignal(this); callback(err); } }).on("prefinish", () => { const { req } = this; req.push(null); }); this.res = null; addSignal(this, signal); } onConnect(abort, context2) { const { ret, res } = this; assert(!res, "pipeline cannot be retried"); if (ret.destroyed) { throw new RequestAbortedError(); } this.abort = abort; this.context = context2; } onHeaders(statusCode, rawHeaders, resume) { const { opaque, handler, context: context2 } = this; if (statusCode < 200) { if (this.onInfo) { const headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); this.onInfo({ statusCode, headers }); } return; } this.res = new PipelineResponse(resume); let body; try { this.handler = null; const headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); body = this.runInAsyncScope(handler, null, { statusCode, headers, opaque, body: this.res, context: context2 }); } catch (err) { this.res.on("error", util2.nop); throw err; } if (!body || typeof body.on !== "function") { throw new InvalidReturnValueError("expected Readable"); } body.on("data", (chunk) => { const { ret, body: body2 } = this; if (!ret.push(chunk) && body2.pause) { body2.pause(); } }).on("error", (err) => { const { ret } = this; util2.destroy(ret, err); }).on("end", () => { const { ret } = this; ret.push(null); }).on("close", () => { const { ret } = this; if (!ret._readableState.ended) { util2.destroy(ret, new RequestAbortedError()); } }); this.body = body; } onData(chunk) { const { res } = this; return res.push(chunk); } onComplete(trailers) { const { res } = this; res.push(null); } onError(err) { const { ret } = this; this.handler = null; util2.destroy(ret, err); } }; __name(PipelineHandler, "PipelineHandler"); function pipeline(opts, handler) { try { const pipelineHandler = new PipelineHandler(opts, handler); this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler); return pipelineHandler.ret; } catch (err) { return new PassThrough().destroy(err); } } __name(pipeline, "pipeline"); module2.exports = pipeline; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-upgrade.js var require_api_upgrade = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-upgrade.js"(exports, module2) { "use strict"; var { InvalidArgumentError, RequestAbortedError, SocketError } = require_errors(); var { AsyncResource: AsyncResource2 } = require("async_hooks"); var util2 = require_util2(); var { addSignal, removeSignal } = require_abort_signal(); var assert = require("assert"); var UpgradeHandler = class extends AsyncResource2 { constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } const { signal, opaque, responseHeaders } = opts; if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } super("UNDICI_UPGRADE"); this.responseHeaders = responseHeaders || null; this.opaque = opaque || null; this.callback = callback; this.abort = null; this.context = null; addSignal(this, signal); } onConnect(abort, context2) { if (!this.callback) { throw new RequestAbortedError(); } this.abort = abort; this.context = null; } onHeaders() { throw new SocketError("bad upgrade", null); } onUpgrade(statusCode, rawHeaders, socket) { const { callback, opaque, context: context2 } = this; assert.strictEqual(statusCode, 101); removeSignal(this); this.callback = null; const headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); this.runInAsyncScope(callback, null, null, { headers, socket, opaque, context: context2 }); } onError(err) { const { callback, opaque } = this; removeSignal(this); if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); }); } } }; __name(UpgradeHandler, "UpgradeHandler"); function upgrade(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { upgrade.call(this, opts, (err, data) => { return err ? reject(err) : resolve(data); }); }); } try { const upgradeHandler = new UpgradeHandler(opts, callback); this.dispatch({ ...opts, method: opts.method || "GET", upgrade: opts.protocol || "Websocket" }, upgradeHandler); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts && opts.opaque; queueMicrotask(() => callback(err, { opaque })); } } __name(upgrade, "upgrade"); module2.exports = upgrade; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-connect.js var require_api_connect = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/api-connect.js"(exports, module2) { "use strict"; var { InvalidArgumentError, RequestAbortedError, SocketError } = require_errors(); var { AsyncResource: AsyncResource2 } = require("async_hooks"); var util2 = require_util2(); var { addSignal, removeSignal } = require_abort_signal(); var ConnectHandler = class extends AsyncResource2 { constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } const { signal, opaque, responseHeaders } = opts; if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } super("UNDICI_CONNECT"); this.opaque = opaque || null; this.responseHeaders = responseHeaders || null; this.callback = callback; this.abort = null; addSignal(this, signal); } onConnect(abort, context2) { if (!this.callback) { throw new RequestAbortedError(); } this.abort = abort; this.context = context2; } onHeaders() { throw new SocketError("bad connect", null); } onUpgrade(statusCode, rawHeaders, socket) { const { callback, opaque, context: context2 } = this; removeSignal(this); this.callback = null; const headers = this.responseHeaders === "raw" ? util2.parseRawHeaders(rawHeaders) : util2.parseHeaders(rawHeaders); this.runInAsyncScope(callback, null, null, { statusCode, headers, socket, opaque, context: context2 }); } onError(err) { const { callback, opaque } = this; removeSignal(this); if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); }); } } }; __name(ConnectHandler, "ConnectHandler"); function connect(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { connect.call(this, opts, (err, data) => { return err ? reject(err) : resolve(data); }); }); } try { const connectHandler = new ConnectHandler(opts, callback); this.dispatch({ ...opts, method: "CONNECT" }, connectHandler); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts && opts.opaque; queueMicrotask(() => callback(err, { opaque })); } } __name(connect, "connect"); module2.exports = connect; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/index.js var require_api = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/api/index.js"(exports, module2) { "use strict"; module2.exports.request = require_api_request(); module2.exports.stream = require_api_stream(); module2.exports.pipeline = require_api_pipeline(); module2.exports.upgrade = require_api_upgrade(); module2.exports.connect = require_api_connect(); } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-errors.js var require_mock_errors = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-errors.js"(exports, module2) { "use strict"; var { UndiciError } = require_errors(); var MockNotMatchedError = class extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, MockNotMatchedError); this.name = "MockNotMatchedError"; this.message = message || "The request does not match any registered mock dispatches"; this.code = "UND_MOCK_ERR_MOCK_NOT_MATCHED"; } }; __name(MockNotMatchedError, "MockNotMatchedError"); module2.exports = { MockNotMatchedError }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-symbols.js var require_mock_symbols = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-symbols.js"(exports, module2) { "use strict"; module2.exports = { kAgent: Symbol("agent"), kOptions: Symbol("options"), kFactory: Symbol("factory"), kDispatches: Symbol("dispatches"), kDispatchKey: Symbol("dispatch key"), kDefaultHeaders: Symbol("default headers"), kDefaultTrailers: Symbol("default trailers"), kContentLength: Symbol("content length"), kMockAgent: Symbol("mock agent"), kMockAgentSet: Symbol("mock agent set"), kMockAgentGet: Symbol("mock agent get"), kMockDispatch: Symbol("mock dispatch"), kClose: Symbol("close"), kOriginalClose: Symbol("original agent close"), kOrigin: Symbol("origin"), kIsMockActive: Symbol("is mock active"), kNetConnect: Symbol("net connect"), kGetNetConnect: Symbol("get net connect"), kConnected: Symbol("connected") }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-utils.js var require_mock_utils = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-utils.js"(exports, module2) { "use strict"; var { MockNotMatchedError } = require_mock_errors(); var { kDispatches, kMockAgent, kOriginalDispatch, kOrigin, kGetNetConnect } = require_mock_symbols(); var { buildURL, nop } = require_util2(); var { STATUS_CODES } = require("http"); function matchValue(match, value) { if (typeof match === "string") { return match === value; } if (match instanceof RegExp) { return match.test(value); } if (typeof match === "function") { return match(value) === true; } return false; } __name(matchValue, "matchValue"); function lowerCaseEntries(headers) { return Object.fromEntries( Object.entries(headers).map(([headerName, headerValue]) => { return [headerName.toLocaleLowerCase(), headerValue]; }) ); } __name(lowerCaseEntries, "lowerCaseEntries"); function getHeaderByName(headers, key) { if (Array.isArray(headers)) { for (let i = 0; i < headers.length; i += 2) { if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { return headers[i + 1]; } } return void 0; } else if (typeof headers.get === "function") { return headers.get(key); } else { return lowerCaseEntries(headers)[key.toLocaleLowerCase()]; } } __name(getHeaderByName, "getHeaderByName"); function buildHeadersFromArray(headers) { const clone2 = headers.slice(); const entries = []; for (let index = 0; index < clone2.length; index += 2) { entries.push([clone2[index], clone2[index + 1]]); } return Object.fromEntries(entries); } __name(buildHeadersFromArray, "buildHeadersFromArray"); function matchHeaders(mockDispatch2, headers) { if (typeof mockDispatch2.headers === "function") { if (Array.isArray(headers)) { headers = buildHeadersFromArray(headers); } return mockDispatch2.headers(headers ? lowerCaseEntries(headers) : {}); } if (typeof mockDispatch2.headers === "undefined") { return true; } if (typeof headers !== "object" || typeof mockDispatch2.headers !== "object") { return false; } for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch2.headers)) { const headerValue = getHeaderByName(headers, matchHeaderName); if (!matchValue(matchHeaderValue, headerValue)) { return false; } } return true; } __name(matchHeaders, "matchHeaders"); function safeUrl(path7) { if (typeof path7 !== "string") { return path7; } const pathSegments = path7.split("?"); if (pathSegments.length !== 2) { return path7; } const qp = new URLSearchParams(pathSegments.pop()); qp.sort(); return [...pathSegments, qp.toString()].join("?"); } __name(safeUrl, "safeUrl"); function matchKey(mockDispatch2, { path: path7, method, body, headers }) { const pathMatch = matchValue(mockDispatch2.path, path7); const methodMatch = matchValue(mockDispatch2.method, method); const bodyMatch = typeof mockDispatch2.body !== "undefined" ? matchValue(mockDispatch2.body, body) : true; const headersMatch = matchHeaders(mockDispatch2, headers); return pathMatch && methodMatch && bodyMatch && headersMatch; } __name(matchKey, "matchKey"); function getResponseData(data) { if (Buffer.isBuffer(data)) { return data; } else if (typeof data === "object") { return JSON.stringify(data); } else { return data.toString(); } } __name(getResponseData, "getResponseData"); function getMockDispatch(mockDispatches, key) { const basePath = key.query ? buildURL(key.path, key.query) : key.path; const resolvedPath = typeof basePath === "string" ? safeUrl(basePath) : basePath; let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path: path7 }) => matchValue(safeUrl(path7), resolvedPath)); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`); } matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`); } matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== "undefined" ? matchValue(body, key.body) : true); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`); } matchedMockDispatches = matchedMockDispatches.filter((mockDispatch2) => matchHeaders(mockDispatch2, key.headers)); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === "object" ? JSON.stringify(key.headers) : key.headers}'`); } return matchedMockDispatches[0]; } __name(getMockDispatch, "getMockDispatch"); function addMockDispatch(mockDispatches, key, data) { const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }; const replyData = typeof data === "function" ? { callback: data } : { ...data }; const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }; mockDispatches.push(newMockDispatch); return newMockDispatch; } __name(addMockDispatch, "addMockDispatch"); function deleteMockDispatch(mockDispatches, key) { const index = mockDispatches.findIndex((dispatch) => { if (!dispatch.consumed) { return false; } return matchKey(dispatch, key); }); if (index !== -1) { mockDispatches.splice(index, 1); } } __name(deleteMockDispatch, "deleteMockDispatch"); function buildKey(opts) { const { path: path7, method, body, headers, query: query2 } = opts; return { path: path7, method, body, headers, query: query2 }; } __name(buildKey, "buildKey"); function generateKeyValues(data) { return Object.entries(data).reduce((keyValuePairs, [key, value]) => [...keyValuePairs, key, value], []); } __name(generateKeyValues, "generateKeyValues"); function getStatusText(statusCode) { return STATUS_CODES[statusCode] || "unknown"; } __name(getStatusText, "getStatusText"); async function getResponse(body) { const buffers = []; for await (const data of body) { buffers.push(data); } return Buffer.concat(buffers).toString("utf8"); } __name(getResponse, "getResponse"); function mockDispatch(opts, handler) { const key = buildKey(opts); const mockDispatch2 = getMockDispatch(this[kDispatches], key); mockDispatch2.timesInvoked++; if (mockDispatch2.data.callback) { mockDispatch2.data = { ...mockDispatch2.data, ...mockDispatch2.data.callback(opts) }; } const { data: { statusCode, data, headers, trailers, error: error2 }, delay, persist } = mockDispatch2; const { timesInvoked, times } = mockDispatch2; mockDispatch2.consumed = !persist && timesInvoked >= times; mockDispatch2.pending = timesInvoked < times; if (error2 !== null) { deleteMockDispatch(this[kDispatches], key); handler.onError(error2); return true; } if (typeof delay === "number" && delay > 0) { setTimeout(() => { handleReply(this[kDispatches]); }, delay); } else { handleReply(this[kDispatches]); } function handleReply(mockDispatches) { const optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers; const responseData = getResponseData( typeof data === "function" ? data({ ...opts, headers: optsHeaders }) : data ); const responseHeaders = generateKeyValues(headers); const responseTrailers = generateKeyValues(trailers); handler.abort = nop; handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)); handler.onData(Buffer.from(responseData)); handler.onComplete(responseTrailers); deleteMockDispatch(mockDispatches, key); } __name(handleReply, "handleReply"); function resume() { } __name(resume, "resume"); return true; } __name(mockDispatch, "mockDispatch"); function buildMockDispatch() { const agent = this[kMockAgent]; const origin = this[kOrigin]; const originalDispatch = this[kOriginalDispatch]; return /* @__PURE__ */ __name(function dispatch(opts, handler) { if (agent.isMockActive) { try { mockDispatch.call(this, opts, handler); } catch (error2) { if (error2 instanceof MockNotMatchedError) { const netConnect = agent[kGetNetConnect](); if (netConnect === false) { throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`); } if (checkNetConnect(netConnect, origin)) { originalDispatch.call(this, opts, handler); } else { throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`); } } else { throw error2; } } } else { originalDispatch.call(this, opts, handler); } }, "dispatch"); } __name(buildMockDispatch, "buildMockDispatch"); function checkNetConnect(netConnect, origin) { const url = new URL(origin); if (netConnect === true) { return true; } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) { return true; } return false; } __name(checkNetConnect, "checkNetConnect"); function buildMockOptions(opts) { if (opts) { const { agent, ...mockOptions } = opts; return mockOptions; } } __name(buildMockOptions, "buildMockOptions"); module2.exports = { getResponseData, getMockDispatch, addMockDispatch, deleteMockDispatch, buildKey, generateKeyValues, matchValue, getResponse, getStatusText, mockDispatch, buildMockDispatch, checkNetConnect, buildMockOptions, getHeaderByName }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-interceptor.js var require_mock_interceptor = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-interceptor.js"(exports, module2) { "use strict"; var { getResponseData, buildKey, addMockDispatch } = require_mock_utils(); var { kDispatches, kDispatchKey, kDefaultHeaders, kDefaultTrailers, kContentLength, kMockDispatch } = require_mock_symbols(); var { InvalidArgumentError } = require_errors(); var { buildURL } = require_util2(); var MockScope = class { constructor(mockDispatch) { this[kMockDispatch] = mockDispatch; } delay(waitInMs) { if (typeof waitInMs !== "number" || !Number.isInteger(waitInMs) || waitInMs <= 0) { throw new InvalidArgumentError("waitInMs must be a valid integer > 0"); } this[kMockDispatch].delay = waitInMs; return this; } persist() { this[kMockDispatch].persist = true; return this; } times(repeatTimes) { if (typeof repeatTimes !== "number" || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { throw new InvalidArgumentError("repeatTimes must be a valid integer > 0"); } this[kMockDispatch].times = repeatTimes; return this; } }; __name(MockScope, "MockScope"); var MockInterceptor = class { constructor(opts, mockDispatches) { if (typeof opts !== "object") { throw new InvalidArgumentError("opts must be an object"); } if (typeof opts.path === "undefined") { throw new InvalidArgumentError("opts.path must be defined"); } if (typeof opts.method === "undefined") { opts.method = "GET"; } if (typeof opts.path === "string") { if (opts.query) { opts.path = buildURL(opts.path, opts.query); } else { const parsedURL = new URL(opts.path, "data://"); opts.path = parsedURL.pathname + parsedURL.search; } } if (typeof opts.method === "string") { opts.method = opts.method.toUpperCase(); } this[kDispatchKey] = buildKey(opts); this[kDispatches] = mockDispatches; this[kDefaultHeaders] = {}; this[kDefaultTrailers] = {}; this[kContentLength] = false; } createMockScopeDispatchData(statusCode, data, responseOptions = {}) { const responseData = getResponseData(data); const contentLength = this[kContentLength] ? { "content-length": responseData.length } : {}; const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }; const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }; return { statusCode, data, headers, trailers }; } validateReplyParameters(statusCode, data, responseOptions) { if (typeof statusCode === "undefined") { throw new InvalidArgumentError("statusCode must be defined"); } if (typeof data === "undefined") { throw new InvalidArgumentError("data must be defined"); } if (typeof responseOptions !== "object") { throw new InvalidArgumentError("responseOptions must be an object"); } } reply(replyData) { if (typeof replyData === "function") { const wrappedDefaultsCallback = /* @__PURE__ */ __name((opts) => { const resolvedData = replyData(opts); if (typeof resolvedData !== "object") { throw new InvalidArgumentError("reply options callback must return an object"); } const { statusCode: statusCode2, data: data2 = "", responseOptions: responseOptions2 = {} } = resolvedData; this.validateReplyParameters(statusCode2, data2, responseOptions2); return { ...this.createMockScopeDispatchData(statusCode2, data2, responseOptions2) }; }, "wrappedDefaultsCallback"); const newMockDispatch2 = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback); return new MockScope(newMockDispatch2); } const [statusCode, data = "", responseOptions = {}] = [...arguments]; this.validateReplyParameters(statusCode, data, responseOptions); const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions); const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData); return new MockScope(newMockDispatch); } replyWithError(error2) { if (typeof error2 === "undefined") { throw new InvalidArgumentError("error must be defined"); } const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error: error2 }); return new MockScope(newMockDispatch); } defaultReplyHeaders(headers) { if (typeof headers === "undefined") { throw new InvalidArgumentError("headers must be defined"); } this[kDefaultHeaders] = headers; return this; } defaultReplyTrailers(trailers) { if (typeof trailers === "undefined") { throw new InvalidArgumentError("trailers must be defined"); } this[kDefaultTrailers] = trailers; return this; } replyContentLength() { this[kContentLength] = true; return this; } }; __name(MockInterceptor, "MockInterceptor"); module2.exports.MockInterceptor = MockInterceptor; module2.exports.MockScope = MockScope; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-client.js var require_mock_client = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-client.js"(exports, module2) { "use strict"; var { promisify: promisify4 } = require("util"); var Client = require_client(); var { buildMockDispatch } = require_mock_utils(); var { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = require_mock_symbols(); var { MockInterceptor } = require_mock_interceptor(); var Symbols = require_symbols(); var { InvalidArgumentError } = require_errors(); var MockClient = class extends Client { constructor(origin, opts) { super(origin, opts); if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } this[kMockAgent] = opts.agent; this[kOrigin] = origin; this[kDispatches] = []; this[kConnected] = 1; this[kOriginalDispatch] = this.dispatch; this[kOriginalClose] = this.close.bind(this); this.dispatch = buildMockDispatch.call(this); this.close = this[kClose]; } get [Symbols.kConnected]() { return this[kConnected]; } intercept(opts) { return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { await promisify4(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; __name(MockClient, "MockClient"); module2.exports = MockClient; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-pool.js var require_mock_pool = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-pool.js"(exports, module2) { "use strict"; var { promisify: promisify4 } = require("util"); var Pool = require_pool(); var { buildMockDispatch } = require_mock_utils(); var { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = require_mock_symbols(); var { MockInterceptor } = require_mock_interceptor(); var Symbols = require_symbols(); var { InvalidArgumentError } = require_errors(); var MockPool = class extends Pool { constructor(origin, opts) { super(origin, opts); if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } this[kMockAgent] = opts.agent; this[kOrigin] = origin; this[kDispatches] = []; this[kConnected] = 1; this[kOriginalDispatch] = this.dispatch; this[kOriginalClose] = this.close.bind(this); this.dispatch = buildMockDispatch.call(this); this.close = this[kClose]; } get [Symbols.kConnected]() { return this[kConnected]; } intercept(opts) { return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { await promisify4(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; __name(MockPool, "MockPool"); module2.exports = MockPool; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/pluralizer.js var require_pluralizer = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/pluralizer.js"(exports, module2) { "use strict"; var singulars = { pronoun: "it", is: "is", was: "was", this: "this" }; var plurals = { pronoun: "they", is: "are", was: "were", this: "these" }; module2.exports = /* @__PURE__ */ __name(class Pluralizer { constructor(singular, plural) { this.singular = singular; this.plural = plural; } pluralize(count2) { const one = count2 === 1; const keys2 = one ? singulars : plurals; const noun = one ? this.singular : this.plural; return { ...keys2, count: count2, noun }; } }, "Pluralizer"); } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js var require_pending_interceptors_formatter = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports, module2) { "use strict"; var { Transform } = require("stream"); var { Console } = require("console"); module2.exports = /* @__PURE__ */ __name(class PendingInterceptorsFormatter { constructor({ disableColors } = {}) { this.transform = new Transform({ transform(chunk, _enc, cb) { cb(null, chunk); } }); this.logger = new Console({ stdout: this.transform, inspectOptions: { colors: !disableColors && !process.env.CI } }); } format(pendingInterceptors) { const withPrettyHeaders = pendingInterceptors.map( ({ method, path: path7, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ Method: method, Origin: origin, Path: path7, "Status code": statusCode, Persistent: persist ? "\u2705" : "\u274C", Invocations: timesInvoked, Remaining: persist ? Infinity : times - timesInvoked }) ); this.logger.table(withPrettyHeaders); return this.transform.read().toString(); } }, "PendingInterceptorsFormatter"); } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-agent.js var require_mock_agent = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/mock/mock-agent.js"(exports, module2) { "use strict"; var { kClients } = require_symbols(); var Agent = require_agent(); var { kAgent, kMockAgentSet, kMockAgentGet, kDispatches, kIsMockActive, kNetConnect, kGetNetConnect, kOptions, kFactory } = require_mock_symbols(); var MockClient = require_mock_client(); var MockPool = require_mock_pool(); var { matchValue, buildMockOptions } = require_mock_utils(); var { InvalidArgumentError, UndiciError } = require_errors(); var Dispatcher = require_dispatcher(); var Pluralizer = require_pluralizer(); var PendingInterceptorsFormatter = require_pending_interceptors_formatter(); var FakeWeakRef = class { constructor(value) { this.value = value; } deref() { return this.value; } }; __name(FakeWeakRef, "FakeWeakRef"); var MockAgent = class extends Dispatcher { constructor(opts) { super(opts); this[kNetConnect] = true; this[kIsMockActive] = true; if (opts && opts.agent && typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } const agent = opts && opts.agent ? opts.agent : new Agent(opts); this[kAgent] = agent; this[kClients] = agent[kClients]; this[kOptions] = buildMockOptions(opts); } get(origin) { let dispatcher = this[kMockAgentGet](origin); if (!dispatcher) { dispatcher = this[kFactory](origin); this[kMockAgentSet](origin, dispatcher); } return dispatcher; } dispatch(opts, handler) { this.get(opts.origin); return this[kAgent].dispatch(opts, handler); } async close() { await this[kAgent].close(); this[kClients].clear(); } deactivate() { this[kIsMockActive] = false; } activate() { this[kIsMockActive] = true; } enableNetConnect(matcher) { if (typeof matcher === "string" || typeof matcher === "function" || matcher instanceof RegExp) { if (Array.isArray(this[kNetConnect])) { this[kNetConnect].push(matcher); } else { this[kNetConnect] = [matcher]; } } else if (typeof matcher === "undefined") { this[kNetConnect] = true; } else { throw new InvalidArgumentError("Unsupported matcher. Must be one of String|Function|RegExp."); } } disableNetConnect() { this[kNetConnect] = false; } get isMockActive() { return this[kIsMockActive]; } [kMockAgentSet](origin, dispatcher) { this[kClients].set(origin, new FakeWeakRef(dispatcher)); } [kFactory](origin) { const mockOptions = Object.assign({ agent: this }, this[kOptions]); return this[kOptions] && this[kOptions].connections === 1 ? new MockClient(origin, mockOptions) : new MockPool(origin, mockOptions); } [kMockAgentGet](origin) { const ref = this[kClients].get(origin); if (ref) { return ref.deref(); } if (typeof origin !== "string") { const dispatcher = this[kFactory]("http://localhost:9999"); this[kMockAgentSet](origin, dispatcher); return dispatcher; } for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) { const nonExplicitDispatcher = nonExplicitRef.deref(); if (nonExplicitDispatcher && typeof keyMatcher !== "string" && matchValue(keyMatcher, origin)) { const dispatcher = this[kFactory](origin); this[kMockAgentSet](origin, dispatcher); dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]; return dispatcher; } } } [kGetNetConnect]() { return this[kNetConnect]; } pendingInterceptors() { const mockAgentClients = this[kClients]; return Array.from(mockAgentClients.entries()).flatMap(([origin, scope]) => scope.deref()[kDispatches].map((dispatch) => ({ ...dispatch, origin }))).filter(({ pending }) => pending); } assertNoPendingInterceptors({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { const pending = this.pendingInterceptors(); if (pending.length === 0) { return; } const pluralizer = new Pluralizer("interceptor", "interceptors").pluralize(pending.length); throw new UndiciError(` ${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: ${pendingInterceptorsFormatter.format(pending)} `.trim()); } }; __name(MockAgent, "MockAgent"); module2.exports = MockAgent; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/proxy-agent.js var require_proxy_agent = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/proxy-agent.js"(exports, module2) { "use strict"; var { kProxy, kClose, kDestroy, kInterceptors } = require_symbols(); var { URL: URL3 } = require("url"); var Agent = require_agent(); var Client = require_client(); var DispatcherBase = require_dispatcher_base(); var { InvalidArgumentError, RequestAbortedError } = require_errors(); var buildConnector = require_connect(); var kAgent = Symbol("proxy agent"); var kClient = Symbol("proxy client"); var kProxyHeaders = Symbol("proxy headers"); var kRequestTls = Symbol("request tls settings"); var kProxyTls = Symbol("proxy tls settings"); var kConnectEndpoint = Symbol("connect endpoint function"); function defaultProtocolPort(protocol) { return protocol === "https:" ? 443 : 80; } __name(defaultProtocolPort, "defaultProtocolPort"); function buildProxyOptions(opts) { if (typeof opts === "string") { opts = { uri: opts }; } if (!opts || !opts.uri) { throw new InvalidArgumentError("Proxy opts.uri is mandatory"); } return { uri: opts.uri, protocol: opts.protocol || "https" }; } __name(buildProxyOptions, "buildProxyOptions"); var ProxyAgent = class extends DispatcherBase { constructor(opts) { super(opts); this[kProxy] = buildProxyOptions(opts); this[kAgent] = new Agent(opts); this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : []; if (typeof opts === "string") { opts = { uri: opts }; } if (!opts || !opts.uri) { throw new InvalidArgumentError("Proxy opts.uri is mandatory"); } this[kRequestTls] = opts.requestTls; this[kProxyTls] = opts.proxyTls; this[kProxyHeaders] = {}; if (opts.auth) { this[kProxyHeaders]["proxy-authorization"] = `Basic ${opts.auth}`; } const resolvedUrl = new URL3(opts.uri); const { origin, port, host } = resolvedUrl; const connect = buildConnector({ ...opts.proxyTls }); this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }); this[kClient] = new Client(resolvedUrl, { connect }); this[kAgent] = new Agent({ ...opts, connect: async (opts2, callback) => { let requestedHost = opts2.host; if (!opts2.port) { requestedHost += `:${defaultProtocolPort(opts2.protocol)}`; } try { const { socket, statusCode } = await this[kClient].connect({ origin, port, path: requestedHost, signal: opts2.signal, headers: { ...this[kProxyHeaders], host } }); if (statusCode !== 200) { socket.on("error", () => { }).destroy(); callback(new RequestAbortedError("Proxy response !== 200 when HTTP Tunneling")); } if (opts2.protocol !== "https:") { callback(null, socket); return; } let servername; if (this[kRequestTls]) { servername = this[kRequestTls].servername; } else { servername = opts2.servername; } this[kConnectEndpoint]({ ...opts2, servername, httpSocket: socket }, callback); } catch (err) { callback(err); } } }); } dispatch(opts, handler) { const { host } = new URL3(opts.origin); const headers = buildHeaders2(opts.headers); throwIfProxyAuthIsSent(headers); return this[kAgent].dispatch( { ...opts, headers: { ...headers, host } }, handler ); } async [kClose]() { await this[kAgent].close(); await this[kClient].close(); } async [kDestroy]() { await this[kAgent].destroy(); await this[kClient].destroy(); } }; __name(ProxyAgent, "ProxyAgent"); function buildHeaders2(headers) { if (Array.isArray(headers)) { const headersPair = {}; for (let i = 0; i < headers.length; i += 2) { headersPair[headers[i]] = headers[i + 1]; } return headersPair; } return headers; } __name(buildHeaders2, "buildHeaders"); function throwIfProxyAuthIsSent(headers) { const existProxyAuth = headers && Object.keys(headers).find((key) => key.toLowerCase() === "proxy-authorization"); if (existProxyAuth) { throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); } } __name(throwIfProxyAuthIsSent, "throwIfProxyAuthIsSent"); module2.exports = ProxyAgent; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/global.js var require_global = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/global.js"(exports, module2) { "use strict"; var globalDispatcher = Symbol.for("undici.globalDispatcher.1"); var { InvalidArgumentError } = require_errors(); var Agent = require_agent(); if (getGlobalDispatcher() === void 0) { setGlobalDispatcher(new Agent()); } function setGlobalDispatcher(agent) { if (!agent || typeof agent.dispatch !== "function") { throw new InvalidArgumentError("Argument agent must implement Agent"); } Object.defineProperty(globalThis, globalDispatcher, { value: agent, writable: true, enumerable: false, configurable: false }); } __name(setGlobalDispatcher, "setGlobalDispatcher"); function getGlobalDispatcher() { return globalThis[globalDispatcher]; } __name(getGlobalDispatcher, "getGlobalDispatcher"); module2.exports = { setGlobalDispatcher, getGlobalDispatcher }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/handler/DecoratorHandler.js var require_DecoratorHandler = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/handler/DecoratorHandler.js"(exports, module2) { "use strict"; module2.exports = /* @__PURE__ */ __name(class DecoratorHandler { constructor(handler) { this.handler = handler; } onConnect(...args) { return this.handler.onConnect(...args); } onError(...args) { return this.handler.onError(...args); } onUpgrade(...args) { return this.handler.onUpgrade(...args); } onHeaders(...args) { return this.handler.onHeaders(...args); } onData(...args) { return this.handler.onData(...args); } onComplete(...args) { return this.handler.onComplete(...args); } onBodySent(...args) { return this.handler.onBodySent(...args); } }, "DecoratorHandler"); } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/headers.js var require_headers = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/headers.js"(exports, module2) { "use strict"; var { kHeadersList } = require_symbols(); var { kGuard } = require_symbols2(); var { kEnumerableProperty } = require_util2(); var { makeIterator, isValidHeaderName, isValidHeaderValue } = require_util3(); var { webidl } = require_webidl(); var kHeadersMap = Symbol("headers map"); var kHeadersSortedMap = Symbol("headers map sorted"); function headerValueNormalize(potentialValue) { return potentialValue.replace( /^[\r\n\t ]+|[\r\n\t ]+$/g, "" ); } __name(headerValueNormalize, "headerValueNormalize"); function fill(headers, object) { if (Array.isArray(object)) { for (const header of object) { if (header.length !== 2) { webidl.errors.exception({ header: "Headers constructor", message: `expected name/value pair to be length 2, found ${header.length}.` }); } headers.append(header[0], header[1]); } } else if (typeof object === "object" && object !== null) { for (const [key, value] of Object.entries(object)) { headers.append(key, value); } } else { webidl.errors.conversionFailed({ prefix: "Headers constructor", argument: "Argument 1", types: ["sequence>", "record"] }); } } __name(fill, "fill"); var HeadersList = class { constructor(init) { if (init instanceof HeadersList) { this[kHeadersMap] = new Map(init[kHeadersMap]); this[kHeadersSortedMap] = init[kHeadersSortedMap]; } else { this[kHeadersMap] = new Map(init); this[kHeadersSortedMap] = null; } } contains(name) { name = name.toLowerCase(); return this[kHeadersMap].has(name); } clear() { this[kHeadersMap].clear(); this[kHeadersSortedMap] = null; } append(name, value) { this[kHeadersSortedMap] = null; name = name.toLowerCase(); const exists4 = this[kHeadersMap].get(name); if (exists4) { this[kHeadersMap].set(name, `${exists4}, ${value}`); } else { this[kHeadersMap].set(name, `${value}`); } } set(name, value) { this[kHeadersSortedMap] = null; name = name.toLowerCase(); return this[kHeadersMap].set(name, value); } delete(name) { this[kHeadersSortedMap] = null; name = name.toLowerCase(); return this[kHeadersMap].delete(name); } get(name) { name = name.toLowerCase(); if (!this.contains(name)) { return null; } return this[kHeadersMap].get(name) ?? null; } has(name) { name = name.toLowerCase(); return this[kHeadersMap].has(name); } keys() { return this[kHeadersMap].keys(); } values() { return this[kHeadersMap].values(); } entries() { return this[kHeadersMap].entries(); } [Symbol.iterator]() { return this[kHeadersMap][Symbol.iterator](); } }; __name(HeadersList, "HeadersList"); var Headers = class { constructor(init = void 0) { this[kHeadersList] = new HeadersList(); this[kGuard] = "none"; if (init !== void 0) { init = webidl.converters.HeadersInit(init); fill(this, init); } } get [Symbol.toStringTag]() { return this.constructor.name; } append(name, value) { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 2) { throw new TypeError( `Failed to execute 'append' on 'Headers': 2 arguments required, but only ${arguments.length} present.` ); } name = webidl.converters.ByteString(name); value = webidl.converters.ByteString(value); value = headerValueNormalize(value); if (!isValidHeaderName(name)) { webidl.errors.invalidArgument({ prefix: "Headers.append", value: name, type: "header name" }); } else if (!isValidHeaderValue(value)) { webidl.errors.invalidArgument({ prefix: "Headers.append", value, type: "header value" }); } if (this[kGuard] === "immutable") { throw new TypeError("immutable"); } else if (this[kGuard] === "request-no-cors") { } return this[kHeadersList].append(name, value); } delete(name) { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 1) { throw new TypeError( `Failed to execute 'delete' on 'Headers': 1 argument required, but only ${arguments.length} present.` ); } name = webidl.converters.ByteString(name); if (!isValidHeaderName(name)) { webidl.errors.invalidArgument({ prefix: "Headers.delete", value: name, type: "header name" }); } if (this[kGuard] === "immutable") { throw new TypeError("immutable"); } else if (this[kGuard] === "request-no-cors") { } if (!this[kHeadersList].contains(name)) { return; } return this[kHeadersList].delete(name); } get(name) { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 1) { throw new TypeError( `Failed to execute 'get' on 'Headers': 1 argument required, but only ${arguments.length} present.` ); } name = webidl.converters.ByteString(name); if (!isValidHeaderName(name)) { webidl.errors.invalidArgument({ prefix: "Headers.get", value: name, type: "header name" }); } return this[kHeadersList].get(name); } has(name) { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 1) { throw new TypeError( `Failed to execute 'has' on 'Headers': 1 argument required, but only ${arguments.length} present.` ); } name = webidl.converters.ByteString(name); if (!isValidHeaderName(name)) { webidl.errors.invalidArgument({ prefix: "Headers.has", value: name, type: "header name" }); } return this[kHeadersList].contains(name); } set(name, value) { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 2) { throw new TypeError( `Failed to execute 'set' on 'Headers': 2 arguments required, but only ${arguments.length} present.` ); } name = webidl.converters.ByteString(name); value = webidl.converters.ByteString(value); value = headerValueNormalize(value); if (!isValidHeaderName(name)) { webidl.errors.invalidArgument({ prefix: "Headers.set", value: name, type: "header name" }); } else if (!isValidHeaderValue(value)) { webidl.errors.invalidArgument({ prefix: "Headers.set", value, type: "header value" }); } if (this[kGuard] === "immutable") { throw new TypeError("immutable"); } else if (this[kGuard] === "request-no-cors") { } return this[kHeadersList].set(name, value); } get [kHeadersSortedMap]() { if (!this[kHeadersList][kHeadersSortedMap]) { this[kHeadersList][kHeadersSortedMap] = new Map([...this[kHeadersList]].sort((a, b2) => a[0] < b2[0] ? -1 : 1)); } return this[kHeadersList][kHeadersSortedMap]; } keys() { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } return makeIterator(this[kHeadersSortedMap].keys(), "Headers"); } values() { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } return makeIterator(this[kHeadersSortedMap].values(), "Headers"); } entries() { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } return makeIterator(this[kHeadersSortedMap].entries(), "Headers"); } forEach(callbackFn, thisArg = globalThis) { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } if (arguments.length < 1) { throw new TypeError( `Failed to execute 'forEach' on 'Headers': 1 argument required, but only ${arguments.length} present.` ); } if (typeof callbackFn !== "function") { throw new TypeError( "Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'." ); } for (const [key, value] of this) { callbackFn.apply(thisArg, [value, key, this]); } } [Symbol.for("nodejs.util.inspect.custom")]() { if (!(this instanceof Headers)) { throw new TypeError("Illegal invocation"); } return this[kHeadersList]; } }; __name(Headers, "Headers"); Headers.prototype[Symbol.iterator] = Headers.prototype.entries; Object.defineProperties(Headers.prototype, { append: kEnumerableProperty, delete: kEnumerableProperty, get: kEnumerableProperty, has: kEnumerableProperty, set: kEnumerableProperty, keys: kEnumerableProperty, values: kEnumerableProperty, entries: kEnumerableProperty, forEach: kEnumerableProperty }); webidl.converters.HeadersInit = function(V) { if (webidl.util.Type(V) === "Object") { if (V[Symbol.iterator]) { return webidl.converters["sequence>"](V); } return webidl.converters["record"](V); } webidl.errors.conversionFailed({ prefix: "Headers constructor", argument: "Argument 1", types: ["sequence>", "record"] }); }; module2.exports = { fill, Headers, HeadersList }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/global.js var require_global2 = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/global.js"(exports, module2) { "use strict"; var globalOrigin = Symbol.for("undici.globalOrigin.1"); function getGlobalOrigin() { return globalThis[globalOrigin]; } __name(getGlobalOrigin, "getGlobalOrigin"); function setGlobalOrigin(newOrigin) { if (newOrigin !== void 0 && typeof newOrigin !== "string" && !(newOrigin instanceof URL)) { throw new Error("Invalid base url"); } if (newOrigin === void 0) { Object.defineProperty(globalThis, globalOrigin, { value: void 0, writable: true, enumerable: false, configurable: false }); return; } const parsedURL = new URL(newOrigin); if (parsedURL.protocol !== "http:" && parsedURL.protocol !== "https:") { throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`); } Object.defineProperty(globalThis, globalOrigin, { value: parsedURL, writable: true, enumerable: false, configurable: false }); } __name(setGlobalOrigin, "setGlobalOrigin"); module2.exports = { getGlobalOrigin, setGlobalOrigin }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/response.js var require_response = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/response.js"(exports, module2) { "use strict"; var { Headers, HeadersList, fill } = require_headers(); var { extractBody, cloneBody, mixinBody } = require_body(); var util2 = require_util2(); var { kEnumerableProperty } = util2; var { responseURL, isValidReasonPhrase, isCancelled, isAborted, isBlobLike, serializeJavascriptValueToJSONString, isErrorLike } = require_util3(); var { redirectStatus, nullBodyStatus, DOMException } = require_constants(); var { kState, kHeaders, kGuard, kRealm } = require_symbols2(); var { webidl } = require_webidl(); var { FormData } = require_formdata(); var { getGlobalOrigin } = require_global2(); var { kHeadersList } = require_symbols(); var assert = require("assert"); var { types } = require("util"); var ReadableStream = globalThis.ReadableStream || require("stream/web").ReadableStream; var Response = class { static error() { const relevantRealm = { settingsObject: {} }; const responseObject = new Response(); responseObject[kState] = makeNetworkError(); responseObject[kRealm] = relevantRealm; responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList; responseObject[kHeaders][kGuard] = "immutable"; responseObject[kHeaders][kRealm] = relevantRealm; return responseObject; } static json(data, init = {}) { if (arguments.length === 0) { throw new TypeError( "Failed to execute 'json' on 'Response': 1 argument required, but 0 present." ); } if (init !== null) { init = webidl.converters.ResponseInit(init); } const bytes = new TextEncoder("utf-8").encode( serializeJavascriptValueToJSONString(data) ); const body = extractBody(bytes); const relevantRealm = { settingsObject: {} }; const responseObject = new Response(); responseObject[kRealm] = relevantRealm; responseObject[kHeaders][kGuard] = "response"; responseObject[kHeaders][kRealm] = relevantRealm; initializeResponse(responseObject, init, { body: body[0], type: "application/json" }); return responseObject; } static redirect(url, status = 302) { const relevantRealm = { settingsObject: {} }; if (arguments.length < 1) { throw new TypeError( `Failed to execute 'redirect' on 'Response': 1 argument required, but only ${arguments.length} present.` ); } url = webidl.converters.USVString(url); status = webidl.converters["unsigned short"](status); let parsedURL; try { parsedURL = new URL(url, getGlobalOrigin()); } catch (err) { throw Object.assign(new TypeError("Failed to parse URL from " + url), { cause: err }); } if (!redirectStatus.includes(status)) { throw new RangeError("Invalid status code"); } const responseObject = new Response(); responseObject[kRealm] = relevantRealm; responseObject[kHeaders][kGuard] = "immutable"; responseObject[kHeaders][kRealm] = relevantRealm; responseObject[kState].status = status; const value = parsedURL.toString(); responseObject[kState].headersList.append("location", value); return responseObject; } constructor(body = null, init = {}) { if (body !== null) { body = webidl.converters.BodyInit(body); } init = webidl.converters.ResponseInit(init); this[kRealm] = { settingsObject: {} }; this[kState] = makeResponse({}); this[kHeaders] = new Headers(); this[kHeaders][kGuard] = "response"; this[kHeaders][kHeadersList] = this[kState].headersList; this[kHeaders][kRealm] = this[kRealm]; let bodyWithType = null; if (body != null) { const [extractedBody, type] = extractBody(body); bodyWithType = { body: extractedBody, type }; } initializeResponse(this, init, bodyWithType); } get [Symbol.toStringTag]() { return this.constructor.name; } get type() { if (!(this instanceof Response)) { throw new TypeError("Illegal invocation"); } return this[kState].type; } get url() { if (!(this instanceof Response)) { throw new TypeError("Illegal invocation"); } let url = responseURL(this[kState]); if (url == null) { return ""; } if (url.hash) { url = new URL(url); url.hash = ""; } return url.toString(); } get redirected() { if (!(this instanceof Response)) { throw new TypeError("Illegal invocation"); } return this[kState].urlList.length > 1; } get status() { if (!(this instanceof Response)) { throw new TypeError("Illegal invocation"); } return this[kState].status; } get ok() { if (!(this instanceof Response)) { throw new TypeError("Illegal invocation"); } return this[kState].status >= 200 && this[kState].status <= 299; } get statusText() { if (!(this instanceof Response)) { throw new TypeError("Illegal invocation"); } return this[kState].statusText; } get headers() { if (!(this instanceof Response)) { throw new TypeError("Illegal invocation"); } return this[kHeaders]; } clone() { if (!(this instanceof Response)) { throw new TypeError("Illegal invocation"); } if (this.bodyUsed || this.body && this.body.locked) { webidl.errors.exception({ header: "Response.clone", message: "Body has already been consumed." }); } const clonedResponse = cloneResponse(this[kState]); const clonedResponseObject = new Response(); clonedResponseObject[kState] = clonedResponse; clonedResponseObject[kRealm] = this[kRealm]; clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList; clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]; clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]; return clonedResponseObject; } }; __name(Response, "Response"); mixinBody(Response); Object.defineProperties(Response.prototype, { type: kEnumerableProperty, url: kEnumerableProperty, status: kEnumerableProperty, ok: kEnumerableProperty, redirected: kEnumerableProperty, statusText: kEnumerableProperty, headers: kEnumerableProperty, clone: kEnumerableProperty }); function cloneResponse(response) { if (response.internalResponse) { return filterResponse( cloneResponse(response.internalResponse), response.type ); } const newResponse = makeResponse({ ...response, body: null }); if (response.body != null) { newResponse.body = cloneBody(response.body); } return newResponse; } __name(cloneResponse, "cloneResponse"); function makeResponse(init) { return { aborted: false, rangeRequested: false, timingAllowPassed: false, requestIncludesCredentials: false, type: "default", status: 200, timingInfo: null, cacheState: "", statusText: "", ...init, headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList(), urlList: init.urlList ? [...init.urlList] : [] }; } __name(makeResponse, "makeResponse"); function makeNetworkError(reason) { const isError2 = isErrorLike(reason); return makeResponse({ type: "error", status: 0, error: isError2 ? reason : new Error(reason ? String(reason) : reason, { cause: isError2 ? reason : void 0 }), aborted: reason && reason.name === "AbortError" }); } __name(makeNetworkError, "makeNetworkError"); function makeFilteredResponse(response, state) { state = { internalResponse: response, ...state }; return new Proxy(response, { get(target, p2) { return p2 in state ? state[p2] : target[p2]; }, set(target, p2, value) { assert(!(p2 in state)); target[p2] = value; return true; } }); } __name(makeFilteredResponse, "makeFilteredResponse"); function filterResponse(response, type) { if (type === "basic") { return makeFilteredResponse(response, { type: "basic", headersList: response.headersList }); } else if (type === "cors") { return makeFilteredResponse(response, { type: "cors", headersList: response.headersList }); } else if (type === "opaque") { return makeFilteredResponse(response, { type: "opaque", urlList: Object.freeze([]), status: 0, statusText: "", body: null }); } else if (type === "opaqueredirect") { return makeFilteredResponse(response, { type: "opaqueredirect", status: 0, statusText: "", headersList: [], body: null }); } else { assert(false); } } __name(filterResponse, "filterResponse"); function makeAppropriateNetworkError(fetchParams) { assert(isCancelled(fetchParams)); return isAborted(fetchParams) ? makeNetworkError(new DOMException("The operation was aborted.", "AbortError")) : makeNetworkError(fetchParams.controller.terminated.reason); } __name(makeAppropriateNetworkError, "makeAppropriateNetworkError"); function initializeResponse(response, init, body) { if (init.status !== null && (init.status < 200 || init.status > 599)) { throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); } if ("statusText" in init && init.statusText != null) { if (!isValidReasonPhrase(String(init.statusText))) { throw new TypeError("Invalid statusText"); } } if ("status" in init && init.status != null) { response[kState].status = init.status; } if ("statusText" in init && init.statusText != null) { response[kState].statusText = init.statusText; } if ("headers" in init && init.headers != null) { fill(response[kState].headersList, init.headers); } if (body) { if (nullBodyStatus.includes(response.status)) { webidl.errors.exception({ header: "Response constructor", message: "Invalid response status code." }); } response[kState].body = body.body; if (body.type != null && !response[kState].headersList.has("Content-Type")) { response[kState].headersList.append("content-type", body.type); } } } __name(initializeResponse, "initializeResponse"); webidl.converters.ReadableStream = webidl.interfaceConverter( ReadableStream ); webidl.converters.FormData = webidl.interfaceConverter( FormData ); webidl.converters.URLSearchParams = webidl.interfaceConverter( URLSearchParams ); webidl.converters.XMLHttpRequestBodyInit = function(V) { if (typeof V === "string") { return webidl.converters.USVString(V); } if (isBlobLike(V)) { return webidl.converters.Blob(V, { strict: false }); } if (types.isAnyArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) { return webidl.converters.BufferSource(V); } if (util2.isFormDataLike(V)) { return webidl.converters.FormData(V, { strict: false }); } if (V instanceof URLSearchParams) { return webidl.converters.URLSearchParams(V); } return webidl.converters.DOMString(V); }; webidl.converters.BodyInit = function(V) { if (V instanceof ReadableStream) { return webidl.converters.ReadableStream(V); } if (V?.[Symbol.asyncIterator]) { return V; } return webidl.converters.XMLHttpRequestBodyInit(V); }; webidl.converters.ResponseInit = webidl.dictionaryConverter([ { key: "status", converter: webidl.converters["unsigned short"], defaultValue: 200 }, { key: "statusText", converter: webidl.converters.ByteString, defaultValue: "" }, { key: "headers", converter: webidl.converters.HeadersInit } ]); module2.exports = { makeNetworkError, makeResponse, makeAppropriateNetworkError, filterResponse, Response }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/request.js var require_request2 = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/request.js"(exports, module2) { "use strict"; var { extractBody, mixinBody, cloneBody } = require_body(); var { Headers, fill: fillHeaders, HeadersList } = require_headers(); var { FinalizationRegistry } = require_dispatcher_weakref()(); var util2 = require_util2(); var { isValidHTTPToken, sameOrigin, normalizeMethod } = require_util3(); var { forbiddenMethods, corsSafeListedMethods, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache } = require_constants(); var { kEnumerableProperty } = util2; var { kHeaders, kSignal, kState, kGuard, kRealm } = require_symbols2(); var { webidl } = require_webidl(); var { getGlobalOrigin } = require_global2(); var { kHeadersList } = require_symbols(); var assert = require("assert"); var TransformStream; var kInit = Symbol("init"); var requestFinalizer = new FinalizationRegistry(({ signal, abort }) => { signal.removeEventListener("abort", abort); }); var Request = class { constructor(input, init = {}) { if (input === kInit) { return; } if (arguments.length < 1) { throw new TypeError( `Failed to construct 'Request': 1 argument required, but only ${arguments.length} present.` ); } input = webidl.converters.RequestInfo(input); init = webidl.converters.RequestInit(init); this[kRealm] = { settingsObject: { baseUrl: getGlobalOrigin() } }; let request2 = null; let fallbackMode = null; const baseUrl = this[kRealm].settingsObject.baseUrl; let signal = null; if (typeof input === "string") { let parsedURL; try { parsedURL = new URL(input, baseUrl); } catch (err) { throw new TypeError("Failed to parse URL from " + input, { cause: err }); } if (parsedURL.username || parsedURL.password) { throw new TypeError( "Request cannot be constructed from a URL that includes credentials: " + input ); } request2 = makeRequest({ urlList: [parsedURL] }); fallbackMode = "cors"; } else { assert(input instanceof Request); request2 = input[kState]; signal = input[kSignal]; } const origin = this[kRealm].settingsObject.origin; let window2 = "client"; if (request2.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request2.window, origin)) { window2 = request2.window; } if (init.window !== void 0 && init.window != null) { throw new TypeError(`'window' option '${window2}' must be null`); } if (init.window !== void 0) { window2 = "no-window"; } request2 = makeRequest({ method: request2.method, headersList: request2.headersList, unsafeRequest: request2.unsafeRequest, client: this[kRealm].settingsObject, window: window2, priority: request2.priority, origin: request2.origin, referrer: request2.referrer, referrerPolicy: request2.referrerPolicy, mode: request2.mode, credentials: request2.credentials, cache: request2.cache, redirect: request2.redirect, integrity: request2.integrity, keepalive: request2.keepalive, reloadNavigation: request2.reloadNavigation, historyNavigation: request2.historyNavigation, urlList: [...request2.urlList] }); if (Object.keys(init).length > 0) { if (request2.mode === "navigate") { request2.mode = "same-origin"; } request2.reloadNavigation = false; request2.historyNavigation = false; request2.origin = "client"; request2.referrer = "client"; request2.referrerPolicy = ""; request2.url = request2.urlList[request2.urlList.length - 1]; request2.urlList = [request2.url]; } if (init.referrer !== void 0) { const referrer = init.referrer; if (referrer === "") { request2.referrer = "no-referrer"; } else { let parsedReferrer; try { parsedReferrer = new URL(referrer, baseUrl); } catch (err) { throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err }); } request2.referrer = parsedReferrer; } } if (init.referrerPolicy !== void 0) { request2.referrerPolicy = init.referrerPolicy; if (!referrerPolicy.includes(request2.referrerPolicy)) { throw new TypeError( `Failed to construct 'Request': The provided value '${request2.referrerPolicy}' is not a valid enum value of type ReferrerPolicy.` ); } } let mode; if (init.mode !== void 0) { mode = init.mode; if (!requestMode.includes(mode)) { throw new TypeError( `Failed to construct 'Request': The provided value '${request2.mode}' is not a valid enum value of type RequestMode.` ); } } else { mode = fallbackMode; } if (mode === "navigate") { webidl.errors.exception({ header: "Request constructor", message: "invalid request mode navigate." }); } if (mode != null) { request2.mode = mode; } if (init.credentials !== void 0) { request2.credentials = init.credentials; if (!requestCredentials.includes(request2.credentials)) { throw new TypeError( `Failed to construct 'Request': The provided value '${request2.credentials}' is not a valid enum value of type RequestCredentials.` ); } } if (init.cache !== void 0) { request2.cache = init.cache; if (!requestCache.includes(request2.cache)) { throw new TypeError( `Failed to construct 'Request': The provided value '${request2.cache}' is not a valid enum value of type RequestCache.` ); } } if (request2.cache === "only-if-cached" && request2.mode !== "same-origin") { throw new TypeError( "'only-if-cached' can be set only with 'same-origin' mode" ); } if (init.redirect !== void 0) { request2.redirect = init.redirect; if (!requestRedirect.includes(request2.redirect)) { throw new TypeError( `Failed to construct 'Request': The provided value '${request2.redirect}' is not a valid enum value of type RequestRedirect.` ); } } if (init.integrity !== void 0 && init.integrity != null) { request2.integrity = String(init.integrity); } if (init.keepalive !== void 0) { request2.keepalive = Boolean(init.keepalive); } if (init.method !== void 0) { let method = init.method; if (!isValidHTTPToken(init.method)) { throw TypeError(`'${init.method}' is not a valid HTTP method.`); } if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) { throw TypeError(`'${init.method}' HTTP method is unsupported.`); } method = normalizeMethod(init.method); request2.method = method; } if (init.signal !== void 0) { signal = init.signal; } this[kState] = request2; const ac = new AbortController(); this[kSignal] = ac.signal; this[kSignal][kRealm] = this[kRealm]; if (signal != null) { if (!signal || typeof signal.aborted !== "boolean" || typeof signal.addEventListener !== "function") { throw new TypeError( "Failed to construct 'Request': member signal is not of type AbortSignal." ); } if (signal.aborted) { ac.abort(signal.reason); } else { const abort = /* @__PURE__ */ __name(() => ac.abort(signal.reason), "abort"); signal.addEventListener("abort", abort, { once: true }); requestFinalizer.register(this, { signal, abort }); } } this[kHeaders] = new Headers(); this[kHeaders][kHeadersList] = request2.headersList; this[kHeaders][kGuard] = "request"; this[kHeaders][kRealm] = this[kRealm]; if (mode === "no-cors") { if (!corsSafeListedMethods.includes(request2.method)) { throw new TypeError( `'${request2.method} is unsupported in no-cors mode.` ); } this[kHeaders][kGuard] = "request-no-cors"; } if (Object.keys(init).length !== 0) { let headers = new Headers(this[kHeaders]); if (init.headers !== void 0) { headers = init.headers; } this[kHeaders][kHeadersList].clear(); if (headers.constructor.name === "Headers") { for (const [key, val] of headers) { this[kHeaders].append(key, val); } } else { fillHeaders(this[kHeaders], headers); } } const inputBody = input instanceof Request ? input[kState].body : null; if ((init.body !== void 0 && init.body != null || inputBody != null) && (request2.method === "GET" || request2.method === "HEAD")) { throw new TypeError("Request with GET/HEAD method cannot have body."); } let initBody = null; if (init.body !== void 0 && init.body != null) { const [extractedBody, contentType] = extractBody( init.body, request2.keepalive ); initBody = extractedBody; if (contentType && !this[kHeaders].has("content-type")) { this[kHeaders].append("content-type", contentType); } } const inputOrInitBody = initBody ?? inputBody; if (inputOrInitBody != null && inputOrInitBody.source == null) { if (request2.mode !== "same-origin" && request2.mode !== "cors") { throw new TypeError( 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' ); } request2.useCORSPreflightFlag = true; } let finalBody = inputOrInitBody; if (initBody == null && inputBody != null) { if (util2.isDisturbed(inputBody.stream) || inputBody.stream.locked) { throw new TypeError( "Cannot construct a Request with a Request object that has already been used." ); } if (!TransformStream) { TransformStream = require("stream/web").TransformStream; } const identityTransform = new TransformStream(); inputBody.stream.pipeThrough(identityTransform); finalBody = { source: inputBody.source, length: inputBody.length, stream: identityTransform.readable }; } this[kState].body = finalBody; } get [Symbol.toStringTag]() { return this.constructor.name; } get method() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].method; } get url() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].url.toString(); } get headers() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kHeaders]; } get destination() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].destination; } get referrer() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } if (this[kState].referrer === "no-referrer") { return ""; } if (this[kState].referrer === "client") { return "about:client"; } return this[kState].referrer.toString(); } get referrerPolicy() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].referrerPolicy; } get mode() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].mode; } get credentials() { return this[kState].credentials; } get cache() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].cache; } get redirect() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].redirect; } get integrity() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].integrity; } get keepalive() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].keepalive; } get isReloadNavigation() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].reloadNavigation; } get isHistoryNavigation() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kState].historyNavigation; } get signal() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } return this[kSignal]; } clone() { if (!(this instanceof Request)) { throw new TypeError("Illegal invocation"); } if (this.bodyUsed || this.body?.locked) { throw new TypeError("unusable"); } const clonedRequest = cloneRequest(this[kState]); const clonedRequestObject = new Request(kInit); clonedRequestObject[kState] = clonedRequest; clonedRequestObject[kRealm] = this[kRealm]; clonedRequestObject[kHeaders] = new Headers(); clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList; clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]; clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]; const ac = new AbortController(); if (this.signal.aborted) { ac.abort(this.signal.reason); } else { this.signal.addEventListener( "abort", () => { ac.abort(this.signal.reason); }, { once: true } ); } clonedRequestObject[kSignal] = ac.signal; return clonedRequestObject; } }; __name(Request, "Request"); mixinBody(Request); function makeRequest(init) { const request2 = { method: "GET", localURLsOnly: false, unsafeRequest: false, body: null, client: null, reservedClient: null, replacesClientId: "", window: "client", keepalive: false, serviceWorkers: "all", initiator: "", destination: "", priority: null, origin: "client", policyContainer: "client", referrer: "client", referrerPolicy: "", mode: "no-cors", useCORSPreflightFlag: false, credentials: "same-origin", useCredentials: false, cache: "default", redirect: "follow", integrity: "", cryptoGraphicsNonceMetadata: "", parserMetadata: "", reloadNavigation: false, historyNavigation: false, userActivation: false, taintedOrigin: false, redirectCount: 0, responseTainting: "basic", preventNoCacheCacheControlHeaderModification: false, done: false, timingAllowFailed: false, ...init, headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList() }; request2.url = request2.urlList[0]; return request2; } __name(makeRequest, "makeRequest"); function cloneRequest(request2) { const newRequest = makeRequest({ ...request2, body: null }); if (request2.body != null) { newRequest.body = cloneBody(request2.body); } return newRequest; } __name(cloneRequest, "cloneRequest"); Object.defineProperties(Request.prototype, { method: kEnumerableProperty, url: kEnumerableProperty, headers: kEnumerableProperty, redirect: kEnumerableProperty, clone: kEnumerableProperty, signal: kEnumerableProperty }); webidl.converters.Request = webidl.interfaceConverter( Request ); webidl.converters.RequestInfo = function(V) { if (typeof V === "string") { return webidl.converters.USVString(V); } if (V instanceof Request) { return webidl.converters.Request(V); } return webidl.converters.USVString(V); }; webidl.converters.AbortSignal = webidl.interfaceConverter( AbortSignal ); webidl.converters.RequestInit = webidl.dictionaryConverter([ { key: "method", converter: webidl.converters.ByteString }, { key: "headers", converter: webidl.converters.HeadersInit }, { key: "body", converter: webidl.nullableConverter( webidl.converters.BodyInit ) }, { key: "referrer", converter: webidl.converters.USVString }, { key: "referrerPolicy", converter: webidl.converters.DOMString, allowedValues: [ "", "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "strict-origin", "origin-when-cross-origin", "strict-origin-when-cross-origin", "unsafe-url" ] }, { key: "mode", converter: webidl.converters.DOMString, allowedValues: [ "same-origin", "cors", "no-cors", "navigate", "websocket" ] }, { key: "credentials", converter: webidl.converters.DOMString, allowedValues: [ "omit", "same-origin", "include" ] }, { key: "cache", converter: webidl.converters.DOMString, allowedValues: [ "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" ] }, { key: "redirect", converter: webidl.converters.DOMString, allowedValues: [ "follow", "error", "manual" ] }, { key: "integrity", converter: webidl.converters.DOMString }, { key: "keepalive", converter: webidl.converters.boolean }, { key: "signal", converter: webidl.nullableConverter( (signal) => webidl.converters.AbortSignal( signal, { strict: false } ) ) }, { key: "window", converter: webidl.converters.any } ]); module2.exports = { Request, makeRequest }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/dataURL.js var require_dataURL = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/dataURL.js"(exports, module2) { var assert = require("assert"); var { atob: atob2 } = require("buffer"); var { isValidHTTPToken } = require_util3(); var encoder = new TextEncoder(); function dataURLProcessor(dataURL) { assert(dataURL.protocol === "data:"); let input = URLSerializer(dataURL, true); input = input.slice(5); const position = { position: 0 }; let mimeType = collectASequenceOfCodePoints( (char) => char !== ",", input, position ); const mimeTypeLength = mimeType.length; mimeType = mimeType.replace(/^(\u0020)+|(\u0020)+$/g, ""); if (position.position >= input.length) { return "failure"; } position.position++; const encodedBody = input.slice(mimeTypeLength + 1); let body = stringPercentDecode(encodedBody); if (/;(\u0020){0,}base64$/i.test(mimeType)) { const stringBody = decodeURIComponent(new TextDecoder("utf-8").decode(body)); body = forgivingBase64(stringBody); if (body === "failure") { return "failure"; } mimeType = mimeType.slice(0, -6); mimeType = mimeType.replace(/(\u0020)+$/, ""); mimeType = mimeType.slice(0, -1); } if (mimeType.startsWith(";")) { mimeType = "text/plain" + mimeType; } let mimeTypeRecord = parseMIMEType(mimeType); if (mimeTypeRecord === "failure") { mimeTypeRecord = parseMIMEType("text/plain;charset=US-ASCII"); } return { mimeType: mimeTypeRecord, body }; } __name(dataURLProcessor, "dataURLProcessor"); function URLSerializer(url, excludeFragment = false) { let output = url.protocol; if (url.host.length > 0) { output += "//"; if (url.username.length > 0 || url.password.length > 0) { output += url.username; if (url.password.length > 0) { output += ":" + url.password; } output += "@"; } output += decodeURIComponent(url.host); if (url.port.length > 0) { output += ":" + url.port; } } if (url.host.length === 0 && url.pathname.length > 1 && url.href.slice(url.protocol.length + 1)[0] === ".") { output += "/."; } output += url.pathname; if (url.search.length > 0) { output += url.search; } if (excludeFragment === false && url.hash.length > 0) { output += url.hash; } return output; } __name(URLSerializer, "URLSerializer"); function collectASequenceOfCodePoints(condition, input, position) { let result = ""; while (position.position < input.length && condition(input[position.position])) { result += input[position.position]; position.position++; } return result; } __name(collectASequenceOfCodePoints, "collectASequenceOfCodePoints"); function stringPercentDecode(input) { const bytes = encoder.encode(input); return percentDecode(bytes); } __name(stringPercentDecode, "stringPercentDecode"); function percentDecode(input) { const output = []; for (let i = 0; i < input.length; i++) { const byte = input[i]; if (byte !== 37) { output.push(byte); } else if (byte === 37 && !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))) { output.push(37); } else { const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2]); const bytePoint = Number.parseInt(nextTwoBytes, 16); output.push(bytePoint); i += 2; } } return Uint8Array.from(output); } __name(percentDecode, "percentDecode"); function parseMIMEType(input) { input = input.trim(); const position = { position: 0 }; const type = collectASequenceOfCodePoints( (char) => char !== "/", input, position ); if (type.length === 0 || !/^[!#$%&'*+-.^_|~A-z0-9]+$/.test(type)) { return "failure"; } if (position.position > input.length) { return "failure"; } position.position++; let subtype = collectASequenceOfCodePoints( (char) => char !== ";", input, position ); subtype = subtype.trim(); if (subtype.length === 0 || !/^[!#$%&'*+-.^_|~A-z0-9]+$/.test(subtype)) { return "failure"; } const mimeType = { type: type.toLowerCase(), subtype: subtype.toLowerCase(), parameters: /* @__PURE__ */ new Map() }; while (position.position < input.length) { position.position++; collectASequenceOfCodePoints( (char) => /(\u000A|\u000D|\u0009|\u0020)/.test(char), input, position ); let parameterName = collectASequenceOfCodePoints( (char) => char !== ";" && char !== "=", input, position ); parameterName = parameterName.toLowerCase(); if (position.position < input.length) { if (input[position.position] === ";") { continue; } position.position++; } if (position.position > input.length) { break; } let parameterValue = null; if (input[position.position] === '"') { parameterValue = collectAnHTTPQuotedString(input, position, true); collectASequenceOfCodePoints( (char) => char !== ";", input, position ); } else { parameterValue = collectASequenceOfCodePoints( (char) => char !== ";", input, position ); parameterValue = parameterValue.trimEnd(); if (parameterValue.length === 0) { continue; } } if (parameterName.length !== 0 && /^[!#$%&'*+-.^_|~A-z0-9]+$/.test(parameterName) && !/^(\u0009|\x{0020}-\x{007E}|\x{0080}-\x{00FF})+$/.test(parameterValue) && !mimeType.parameters.has(parameterName)) { mimeType.parameters.set(parameterName, parameterValue); } } return mimeType; } __name(parseMIMEType, "parseMIMEType"); function forgivingBase64(data) { data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, ""); if (data.length % 4 === 0) { data = data.replace(/=?=$/, ""); } if (data.length % 4 === 1) { return "failure"; } if (/[^+/0-9A-Za-z]/.test(data)) { return "failure"; } const binary = atob2(data); const bytes = new Uint8Array(binary.length); for (let byte = 0; byte < binary.length; byte++) { bytes[byte] = binary.charCodeAt(byte); } return bytes; } __name(forgivingBase64, "forgivingBase64"); function collectAnHTTPQuotedString(input, position, extractValue) { const positionStart = position.position; let value = ""; assert(input[position.position] === '"'); position.position++; while (true) { value += collectASequenceOfCodePoints( (char) => char !== '"' && char !== "\\", input, position ); if (position.position >= input.length) { break; } const quoteOrBackslash = input[position.position]; position.position++; if (quoteOrBackslash === "\\") { if (position.position >= input.length) { value += "\\"; break; } value += input[position.position]; position.position++; } else { assert(quoteOrBackslash === '"'); break; } } if (extractValue) { return value; } return input.slice(positionStart, position.position); } __name(collectAnHTTPQuotedString, "collectAnHTTPQuotedString"); function serializeAMimeType(mimeType) { assert(mimeType !== "failure"); const { type, subtype, parameters } = mimeType; let serialization = `${type}/${subtype}`; for (let [name, value] of parameters.entries()) { serialization += ";"; serialization += name; serialization += "="; if (!isValidHTTPToken(value)) { value = value.replace(/(\\|")/g, "\\$1"); value = '"' + value; value += '"'; } serialization += value; } return serialization; } __name(serializeAMimeType, "serializeAMimeType"); module2.exports = { dataURLProcessor, URLSerializer, collectASequenceOfCodePoints, stringPercentDecode, parseMIMEType, collectAnHTTPQuotedString, serializeAMimeType }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/index.js var require_fetch = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/index.js"(exports, module2) { "use strict"; var { Response, makeNetworkError, makeAppropriateNetworkError, filterResponse, makeResponse } = require_response(); var { Headers } = require_headers(); var { Request, makeRequest } = require_request2(); var zlib = require("zlib"); var { bytesMatch, makePolicyContainer, clonePolicyContainer, requestBadPort, TAOCheck, appendRequestOriginHeader, responseLocationURL, requestCurrentURL, setRequestReferrerPolicyOnRedirect, tryUpgradeRequestToAPotentiallyTrustworthyURL, createOpaqueTimingInfo, appendFetchMetadata, corsCheck, crossOriginResourcePolicyCheck, determineRequestsReferrer, coarsenedSharedCurrentTime, createDeferredPromise, isBlobLike, sameOrigin, isCancelled, isAborted, isErrorLike, fullyReadBody } = require_util3(); var { kState, kHeaders, kGuard, kRealm } = require_symbols2(); var assert = require("assert"); var { safelyExtractBody, extractBody } = require_body(); var { redirectStatus, nullBodyStatus, safeMethods, requestBodyHeader, subresource, DOMException } = require_constants(); var { kHeadersList } = require_symbols(); var EE = require("events"); var { Readable, pipeline } = require("stream"); var { isErrored, isReadable } = require_util2(); var { dataURLProcessor, serializeAMimeType } = require_dataURL(); var { TransformStream } = require("stream/web"); var resolveObjectURL; var ReadableStream; var nodeVersion = process.versions.node.split("."); var nodeMajor = Number(nodeVersion[0]); var nodeMinor = Number(nodeVersion[1]); var Fetch = class extends EE { constructor(dispatcher) { super(); this.dispatcher = dispatcher; this.connection = null; this.dump = false; this.state = "ongoing"; } terminate(reason) { if (this.state !== "ongoing") { return; } this.state = "terminated"; this.connection?.destroy(reason); this.emit("terminated", reason); } abort() { if (this.state !== "ongoing") { return; } const reason = new DOMException("The operation was aborted.", "AbortError"); this.state = "aborted"; this.connection?.destroy(reason); this.emit("terminated", reason); } }; __name(Fetch, "Fetch"); async function fetch2(input, init = {}) { if (arguments.length < 1) { throw new TypeError( `Failed to execute 'fetch' on 'Window': 1 argument required, but only ${arguments.length} present.` ); } const p2 = createDeferredPromise(); let requestObject; try { requestObject = new Request(input, init); } catch (e2) { p2.reject(e2); return p2.promise; } const request2 = requestObject[kState]; if (requestObject.signal.aborted) { abortFetch(p2, request2, null); return p2.promise; } const globalObject = request2.client.globalObject; if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") { request2.serviceWorkers = "none"; } let responseObject = null; const relevantRealm = null; let locallyAborted = false; let controller = null; requestObject.signal.addEventListener( "abort", () => { locallyAborted = true; abortFetch(p2, request2, responseObject); if (controller != null) { controller.abort(); } }, { once: true } ); const handleFetchDone = /* @__PURE__ */ __name((response) => finalizeAndReportTiming(response, "fetch"), "handleFetchDone"); const processResponse = /* @__PURE__ */ __name((response) => { if (locallyAborted) { return; } if (response.aborted) { abortFetch(p2, request2, responseObject); return; } if (response.type === "error") { p2.reject( Object.assign(new TypeError("fetch failed"), { cause: response.error }) ); return; } responseObject = new Response(); responseObject[kState] = response; responseObject[kRealm] = relevantRealm; responseObject[kHeaders][kHeadersList] = response.headersList; responseObject[kHeaders][kGuard] = "immutable"; responseObject[kHeaders][kRealm] = relevantRealm; p2.resolve(responseObject); }, "processResponse"); controller = fetching({ request: request2, processResponseEndOfBody: handleFetchDone, processResponse, dispatcher: this }); return p2.promise; } __name(fetch2, "fetch"); function finalizeAndReportTiming(response, initiatorType = "other") { if (response.type === "error" && response.aborted) { return; } if (!response.urlList?.length) { return; } const originalURL = response.urlList[0]; let timingInfo = response.timingInfo; let cacheState = response.cacheState; if (!/^https?:/.test(originalURL.protocol)) { return; } if (timingInfo === null) { return; } if (!timingInfo.timingAllowPassed) { timingInfo = createOpaqueTimingInfo({ startTime: timingInfo.startTime }); cacheState = ""; } response.timingInfo.endTime = coarsenedSharedCurrentTime(); response.timingInfo = timingInfo; markResourceTiming( timingInfo, originalURL, initiatorType, globalThis, cacheState ); } __name(finalizeAndReportTiming, "finalizeAndReportTiming"); function markResourceTiming(timingInfo, originalURL, initiatorType, globalThis2, cacheState) { if (nodeMajor >= 18 && nodeMinor >= 2) { performance.markResourceTiming(timingInfo, originalURL, initiatorType, globalThis2, cacheState); } } __name(markResourceTiming, "markResourceTiming"); function abortFetch(p2, request2, responseObject) { const error2 = new DOMException("The operation was aborted.", "AbortError"); p2.reject(error2); if (request2.body != null && isReadable(request2.body?.stream)) { request2.body.stream.cancel(error2).catch((err) => { if (err.code === "ERR_INVALID_STATE") { return; } throw err; }); } if (responseObject == null) { return; } const response = responseObject[kState]; if (response.body != null && isReadable(response.body?.stream)) { response.body.stream.cancel(error2).catch((err) => { if (err.code === "ERR_INVALID_STATE") { return; } throw err; }); } } __name(abortFetch, "abortFetch"); function fetching({ request: request2, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseEndOfBody, processResponseConsumeBody, useParallelQueue = false, dispatcher }) { let taskDestination = null; let crossOriginIsolatedCapability = false; if (request2.client != null) { taskDestination = request2.client.globalObject; crossOriginIsolatedCapability = request2.client.crossOriginIsolatedCapability; } const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability); const timingInfo = createOpaqueTimingInfo({ startTime: currenTime }); const fetchParams = { controller: new Fetch(dispatcher), request: request2, timingInfo, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseConsumeBody, processResponseEndOfBody, taskDestination, crossOriginIsolatedCapability }; assert(!request2.body || request2.body.stream); if (request2.window === "client") { request2.window = request2.client?.globalObject?.constructor?.name === "Window" ? request2.client : "no-window"; } if (request2.origin === "client") { request2.origin = request2.client?.origin; } if (request2.policyContainer === "client") { if (request2.client != null) { request2.policyContainer = clonePolicyContainer( request2.client.policyContainer ); } else { request2.policyContainer = makePolicyContainer(); } } if (!request2.headersList.has("accept")) { const value = "*/*"; request2.headersList.append("accept", value); } if (!request2.headersList.has("accept-language")) { request2.headersList.append("accept-language", "*"); } if (request2.priority === null) { } if (subresource.includes(request2.destination)) { } mainFetch(fetchParams).catch((err) => { fetchParams.controller.terminate(err); }); return fetchParams.controller; } __name(fetching, "fetching"); async function mainFetch(fetchParams, recursive = false) { const request2 = fetchParams.request; let response = null; if (request2.localURLsOnly && !/^(about|blob|data):/.test(requestCurrentURL(request2).protocol)) { response = makeNetworkError("local URLs only"); } tryUpgradeRequestToAPotentiallyTrustworthyURL(request2); if (requestBadPort(request2) === "blocked") { response = makeNetworkError("bad port"); } if (request2.referrerPolicy === "") { request2.referrerPolicy = request2.policyContainer.referrerPolicy; } if (request2.referrer !== "no-referrer") { request2.referrer = determineRequestsReferrer(request2); } if (response === null) { response = await (async () => { const currentURL = requestCurrentURL(request2); if (sameOrigin(currentURL, request2.url) && request2.responseTainting === "basic" || currentURL.protocol === "data:" || (request2.mode === "navigate" || request2.mode === "websocket")) { request2.responseTainting = "basic"; return await schemeFetch(fetchParams); } if (request2.mode === "same-origin") { return makeNetworkError('request mode cannot be "same-origin"'); } if (request2.mode === "no-cors") { if (request2.redirect !== "follow") { return makeNetworkError( 'redirect mode cannot be "follow" for "no-cors" request' ); } request2.responseTainting = "opaque"; return await schemeFetch(fetchParams); } if (!/^https?:/.test(requestCurrentURL(request2).protocol)) { return makeNetworkError("URL scheme must be a HTTP(S) scheme"); } request2.responseTainting = "cors"; return await httpFetch(fetchParams); })(); } if (recursive) { return response; } if (response.status !== 0 && !response.internalResponse) { if (request2.responseTainting === "cors") { } if (request2.responseTainting === "basic") { response = filterResponse(response, "basic"); } else if (request2.responseTainting === "cors") { response = filterResponse(response, "cors"); } else if (request2.responseTainting === "opaque") { response = filterResponse(response, "opaque"); } else { assert(false); } } let internalResponse = response.status === 0 ? response : response.internalResponse; if (internalResponse.urlList.length === 0) { internalResponse.urlList.push(...request2.urlList); } if (!request2.timingAllowFailed) { response.timingAllowPassed = true; } if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request2.headers.has("range")) { response = internalResponse = makeNetworkError(); } if (response.status !== 0 && (request2.method === "HEAD" || request2.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) { internalResponse.body = null; fetchParams.controller.dump = true; } if (request2.integrity) { const processBodyError = /* @__PURE__ */ __name((reason) => fetchFinale(fetchParams, makeNetworkError(reason)), "processBodyError"); if (request2.responseTainting === "opaque" || response.body == null) { processBodyError(response.error); return; } const processBody = /* @__PURE__ */ __name((bytes) => { if (!bytesMatch(bytes, request2.integrity)) { processBodyError("integrity mismatch"); return; } response.body = safelyExtractBody(bytes)[0]; fetchFinale(fetchParams, response); }, "processBody"); await fullyReadBody(response.body, processBody, processBodyError); } else { fetchFinale(fetchParams, response); } } __name(mainFetch, "mainFetch"); async function schemeFetch(fetchParams) { const { request: request2 } = fetchParams; const { protocol: scheme, pathname: path7 } = requestCurrentURL(request2); switch (scheme) { case "about:": { if (path7 === "blank") { const resp = makeResponse({ statusText: "OK", headersList: [ ["content-type", "text/html;charset=utf-8"] ] }); resp.urlList = [new URL("about:blank")]; return resp; } return makeNetworkError("invalid path called"); } case "blob:": { resolveObjectURL = resolveObjectURL || require("buffer").resolveObjectURL; const currentURL = requestCurrentURL(request2); if (currentURL.search.length !== 0) { return makeNetworkError("NetworkError when attempting to fetch resource."); } const blob = resolveObjectURL(currentURL.toString()); if (request2.method !== "GET" || !isBlobLike(blob)) { return makeNetworkError("invalid method"); } const response = makeResponse({ statusText: "OK", urlList: [currentURL] }); response.headersList.set("content-length", `${blob.size}`); response.headersList.set("content-type", blob.type); response.body = extractBody(blob)[0]; return response; } case "data:": { const currentURL = requestCurrentURL(request2); const dataURLStruct = dataURLProcessor(currentURL); if (dataURLStruct === "failure") { return makeNetworkError("failed to fetch the data URL"); } const mimeType = serializeAMimeType(dataURLStruct.mimeType); return makeResponse({ statusText: "OK", headersList: [ ["content-type", mimeType] ], body: extractBody(dataURLStruct.body)[0] }); } case "file:": { return makeNetworkError("not implemented... yet..."); } case "http:": case "https:": { return await httpFetch(fetchParams).catch((err) => makeNetworkError(err)); } default: { return makeNetworkError("unknown scheme"); } } } __name(schemeFetch, "schemeFetch"); function finalizeResponse(fetchParams, response) { fetchParams.request.done = true; if (fetchParams.processResponseDone != null) { queueMicrotask(() => fetchParams.processResponseDone(response)); } } __name(finalizeResponse, "finalizeResponse"); async function fetchFinale(fetchParams, response) { if (response.type === "error") { response.urlList = [fetchParams.request.urlList[0]]; response.timingInfo = createOpaqueTimingInfo({ startTime: fetchParams.timingInfo.startTime }); } const processResponseEndOfBody = /* @__PURE__ */ __name(() => { fetchParams.request.done = true; if (fetchParams.processResponseEndOfBody != null) { queueMicrotask(() => fetchParams.processResponseEndOfBody(response)); } }, "processResponseEndOfBody"); if (fetchParams.processResponse != null) { queueMicrotask(() => fetchParams.processResponse(response)); } if (response.body == null) { processResponseEndOfBody(); } else { const identityTransformAlgorithm = /* @__PURE__ */ __name((chunk, controller) => { controller.enqueue(chunk); }, "identityTransformAlgorithm"); const transformStream = new TransformStream({ start() { }, transform: identityTransformAlgorithm, flush: processResponseEndOfBody }); response.body = { stream: response.body.stream.pipeThrough(transformStream) }; } if (fetchParams.processResponseConsumeBody != null) { const processBody = /* @__PURE__ */ __name((nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes), "processBody"); const processBodyError = /* @__PURE__ */ __name((failure) => fetchParams.processResponseConsumeBody(response, failure), "processBodyError"); if (response.body == null) { queueMicrotask(() => processBody(null)); } else { await fullyReadBody(response.body, processBody, processBodyError); } } } __name(fetchFinale, "fetchFinale"); async function httpFetch(fetchParams) { const request2 = fetchParams.request; let response = null; let actualResponse = null; const timingInfo = fetchParams.timingInfo; if (request2.serviceWorkers === "all") { } if (response === null) { if (request2.redirect === "follow") { request2.serviceWorkers = "none"; } actualResponse = response = await httpNetworkOrCacheFetch(fetchParams); if (request2.responseTainting === "cors" && corsCheck(request2, response) === "failure") { return makeNetworkError("cors failure"); } if (TAOCheck(request2, response) === "failure") { request2.timingAllowFailed = true; } } if ((request2.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck( request2.origin, request2.client, request2.destination, actualResponse ) === "blocked") { return makeNetworkError("blocked"); } if (redirectStatus.includes(actualResponse.status)) { if (request2.redirect !== "manual") { fetchParams.controller.connection.destroy(); } if (request2.redirect === "error") { response = makeNetworkError("unexpected redirect"); } else if (request2.redirect === "manual") { response = actualResponse; } else if (request2.redirect === "follow") { response = await httpRedirectFetch(fetchParams, response); } else { assert(false); } } response.timingInfo = timingInfo; return response; } __name(httpFetch, "httpFetch"); async function httpRedirectFetch(fetchParams, response) { const request2 = fetchParams.request; const actualResponse = response.internalResponse ? response.internalResponse : response; let locationURL; try { locationURL = responseLocationURL( actualResponse, requestCurrentURL(request2).hash ); if (locationURL == null) { return response; } } catch (err) { return makeNetworkError(err); } if (!/^https?:/.test(locationURL.protocol)) { return makeNetworkError("URL scheme must be a HTTP(S) scheme"); } if (request2.redirectCount === 20) { return makeNetworkError("redirect count exceeded"); } request2.redirectCount += 1; if (request2.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request2, locationURL)) { return makeNetworkError('cross origin not allowed for request mode "cors"'); } if (request2.responseTainting === "cors" && (locationURL.username || locationURL.password)) { return makeNetworkError( 'URL cannot contain credentials for request mode "cors"' ); } if (actualResponse.status !== 303 && request2.body != null && request2.body.source == null) { return makeNetworkError(); } if ([301, 302].includes(actualResponse.status) && request2.method === "POST" || actualResponse.status === 303 && !["GET", "HEAD"].includes(request2.method)) { request2.method = "GET"; request2.body = null; for (const headerName of requestBodyHeader) { request2.headersList.delete(headerName); } } if (request2.body != null) { assert(request2.body.source); request2.body = safelyExtractBody(request2.body.source)[0]; } const timingInfo = fetchParams.timingInfo; timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); if (timingInfo.redirectStartTime === 0) { timingInfo.redirectStartTime = timingInfo.startTime; } request2.urlList.push(locationURL); setRequestReferrerPolicyOnRedirect(request2, actualResponse); return mainFetch(fetchParams, true); } __name(httpRedirectFetch, "httpRedirectFetch"); async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) { const request2 = fetchParams.request; let httpFetchParams = null; let httpRequest = null; let response = null; const httpCache = null; const revalidatingFlag = false; if (request2.window === "no-window" && request2.redirect === "error") { httpFetchParams = fetchParams; httpRequest = request2; } else { httpRequest = makeRequest(request2); httpFetchParams = { ...fetchParams }; httpFetchParams.request = httpRequest; } const includeCredentials = request2.credentials === "include" || request2.credentials === "same-origin" && request2.responseTainting === "basic"; const contentLength = httpRequest.body ? httpRequest.body.length : null; let contentLengthHeaderValue = null; if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method)) { contentLengthHeaderValue = "0"; } if (contentLength != null) { contentLengthHeaderValue = String(contentLength); } if (contentLengthHeaderValue != null) { httpRequest.headersList.append("content-length", contentLengthHeaderValue); } if (contentLength != null && httpRequest.keepalive) { } if (httpRequest.referrer instanceof URL) { httpRequest.headersList.append("referer", httpRequest.referrer.href); } appendRequestOriginHeader(httpRequest); appendFetchMetadata(httpRequest); if (!httpRequest.headersList.has("user-agent")) { httpRequest.headersList.append("user-agent", "undici"); } if (httpRequest.cache === "default" && (httpRequest.headersList.has("if-modified-since") || httpRequest.headersList.has("if-none-match") || httpRequest.headersList.has("if-unmodified-since") || httpRequest.headersList.has("if-match") || httpRequest.headersList.has("if-range"))) { httpRequest.cache = "no-store"; } if (httpRequest.cache === "no-cache" && !httpRequest.preventNoCacheCacheControlHeaderModification && !httpRequest.headersList.has("cache-control")) { httpRequest.headersList.append("cache-control", "max-age=0"); } if (httpRequest.cache === "no-store" || httpRequest.cache === "reload") { if (!httpRequest.headersList.has("pragma")) { httpRequest.headersList.append("pragma", "no-cache"); } if (!httpRequest.headersList.has("cache-control")) { httpRequest.headersList.append("cache-control", "no-cache"); } } if (httpRequest.headersList.has("range")) { httpRequest.headersList.append("accept-encoding", "identity"); } if (!httpRequest.headersList.has("accept-encoding")) { if (/^https:/.test(requestCurrentURL(httpRequest).protocol)) { httpRequest.headersList.append("accept-encoding", "br, gzip, deflate"); } else { httpRequest.headersList.append("accept-encoding", "gzip, deflate"); } } if (includeCredentials) { } if (httpCache == null) { httpRequest.cache = "no-store"; } if (httpRequest.mode !== "no-store" && httpRequest.mode !== "reload") { } if (response == null) { if (httpRequest.mode === "only-if-cached") { return makeNetworkError("only if cached"); } const forwardResponse = await httpNetworkFetch( httpFetchParams, includeCredentials, isNewConnectionFetch ); if (!safeMethods.includes(httpRequest.method) && forwardResponse.status >= 200 && forwardResponse.status <= 399) { } if (revalidatingFlag && forwardResponse.status === 304) { } if (response == null) { response = forwardResponse; } } response.urlList = [...httpRequest.urlList]; if (httpRequest.headersList.has("range")) { response.rangeRequested = true; } response.requestIncludesCredentials = includeCredentials; if (response.status === 407) { if (request2.window === "no-window") { return makeNetworkError(); } if (isCancelled(fetchParams)) { return makeAppropriateNetworkError(fetchParams); } return makeNetworkError("proxy authentication required"); } if (response.status === 421 && !isNewConnectionFetch && (request2.body == null || request2.body.source != null)) { if (isCancelled(fetchParams)) { return makeAppropriateNetworkError(fetchParams); } fetchParams.controller.connection.destroy(); response = await httpNetworkOrCacheFetch( fetchParams, isAuthenticationFetch, true ); } if (isAuthenticationFetch) { } return response; } __name(httpNetworkOrCacheFetch, "httpNetworkOrCacheFetch"); async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); fetchParams.controller.connection = { abort: null, destroyed: false, destroy(err) { if (!this.destroyed) { this.destroyed = true; this.abort?.(err ?? new DOMException("The operation was aborted.", "AbortError")); } } }; const request2 = fetchParams.request; let response = null; const timingInfo = fetchParams.timingInfo; const httpCache = null; if (httpCache == null) { request2.cache = "no-store"; } const newConnection = forceNewConnection ? "yes" : "no"; if (request2.mode === "websocket") { } else { } let requestBody = null; if (request2.body == null && fetchParams.processRequestEndOfBody) { queueMicrotask(() => fetchParams.processRequestEndOfBody()); } else if (request2.body != null) { const processBodyChunk = /* @__PURE__ */ __name(async function* (bytes) { if (isCancelled(fetchParams)) { return; } yield bytes; fetchParams.processRequestBodyChunkLength?.(bytes.byteLength); }, "processBodyChunk"); const processEndOfBody = /* @__PURE__ */ __name(() => { if (isCancelled(fetchParams)) { return; } if (fetchParams.processRequestEndOfBody) { fetchParams.processRequestEndOfBody(); } }, "processEndOfBody"); const processBodyError = /* @__PURE__ */ __name((e2) => { if (isCancelled(fetchParams)) { return; } if (e2.name === "AbortError") { fetchParams.controller.abort(); } else { fetchParams.controller.terminate(e2); } }, "processBodyError"); requestBody = async function* () { try { for await (const bytes of request2.body.stream) { yield* processBodyChunk(bytes); } processEndOfBody(); } catch (err) { processBodyError(err); } }(); } try { const { body, status, statusText, headersList } = await dispatch({ body: requestBody }); const iterator = body[Symbol.asyncIterator](); fetchParams.controller.next = () => iterator.next(); response = makeResponse({ status, statusText, headersList }); } catch (err) { if (err.name === "AbortError") { fetchParams.controller.connection.destroy(); return makeAppropriateNetworkError(fetchParams); } return makeNetworkError(err); } const pullAlgorithm = /* @__PURE__ */ __name(() => { fetchParams.controller.resume(); }, "pullAlgorithm"); const cancelAlgorithm = /* @__PURE__ */ __name(() => { fetchParams.controller.abort(); }, "cancelAlgorithm"); if (!ReadableStream) { ReadableStream = require("stream/web").ReadableStream; } const stream2 = new ReadableStream( { async start(controller) { fetchParams.controller.controller = controller; }, async pull(controller) { await pullAlgorithm(controller); }, async cancel(reason) { await cancelAlgorithm(reason); } }, { highWaterMark: 0 } ); response.body = { stream: stream2 }; fetchParams.controller.on("terminated", onAborted); fetchParams.controller.resume = async () => { while (true) { let bytes; try { const { done, value } = await fetchParams.controller.next(); if (isAborted(fetchParams)) { break; } bytes = done ? void 0 : value; } catch (err) { if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { bytes = void 0; } else { bytes = err; } } if (bytes === void 0) { try { fetchParams.controller.controller.close(); } catch (err) { if (!/Controller is already closed/.test(err)) { throw err; } } finalizeResponse(fetchParams, response); return; } timingInfo.decodedBodySize += bytes?.byteLength ?? 0; if (isErrorLike(bytes)) { fetchParams.controller.terminate(bytes); return; } fetchParams.controller.controller.enqueue(new Uint8Array(bytes)); if (isErrored(stream2)) { fetchParams.controller.terminate(); return; } if (!fetchParams.controller.controller.desiredSize) { return; } } }; function onAborted(reason) { if (isAborted(fetchParams)) { response.aborted = true; if (isReadable(stream2)) { fetchParams.controller.controller.error( new DOMException("The operation was aborted.", "AbortError") ); } } else { if (isReadable(stream2)) { fetchParams.controller.controller.error(new TypeError("terminated", { cause: isErrorLike(reason) ? reason : void 0 })); } } fetchParams.controller.connection.destroy(); } __name(onAborted, "onAborted"); return response; async function dispatch({ body }) { const url = requestCurrentURL(request2); return new Promise((resolve, reject) => fetchParams.controller.dispatcher.dispatch( { path: url.pathname + url.search, origin: url.origin, method: request2.method, body: fetchParams.controller.dispatcher.isMockActive ? request2.body && request2.body.source : body, headers: [...request2.headersList].flat(), maxRedirections: 0, bodyTimeout: 3e5, headersTimeout: 3e5 }, { body: null, abort: null, onConnect(abort) { const { connection } = fetchParams.controller; if (connection.destroyed) { abort(new DOMException("The operation was aborted.", "AbortError")); } else { fetchParams.controller.on("terminated", abort); this.abort = connection.abort = abort; } }, onHeaders(status, headersList, resume, statusText) { if (status < 200) { return; } let codings = []; let location = ""; const headers = new Headers(); for (let n2 = 0; n2 < headersList.length; n2 += 2) { const key = headersList[n2 + 0].toString("latin1"); const val = headersList[n2 + 1].toString("latin1"); if (key.toLowerCase() === "content-encoding") { codings = val.split(",").map((x) => x.trim()); } else if (key.toLowerCase() === "location") { location = val; } headers.append(key, val); } this.body = new Readable({ read: resume }); const decoders = []; const willFollow = request2.redirect === "follow" && location && redirectStatus.includes(status); if (request2.method !== "HEAD" && request2.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) { for (const coding of codings) { if (/(x-)?gzip/.test(coding)) { decoders.push(zlib.createGunzip()); } else if (/(x-)?deflate/.test(coding)) { decoders.push(zlib.createInflate()); } else if (coding === "br") { decoders.push(zlib.createBrotliDecompress()); } else { decoders.length = 0; break; } } } resolve({ status, statusText, headersList: headers[kHeadersList], body: decoders.length ? pipeline(this.body, ...decoders, () => { }) : this.body.on("error", () => { }) }); return true; }, onData(chunk) { if (fetchParams.controller.dump) { return; } const bytes = chunk; timingInfo.encodedBodySize += bytes.byteLength; return this.body.push(bytes); }, onComplete() { if (this.abort) { fetchParams.controller.off("terminated", this.abort); } fetchParams.controller.ended = true; this.body.push(null); }, onError(error2) { if (this.abort) { fetchParams.controller.off("terminated", this.abort); } this.body?.destroy(error2); fetchParams.controller.terminate(error2); reject(error2); } } )); } __name(dispatch, "dispatch"); } __name(httpNetworkFetch, "httpNetworkFetch"); module2.exports = { fetch: fetch2, Fetch, fetching, finalizeAndReportTiming }; } }); // ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/index.js var require_undici = __commonJS({ "../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/index.js"(exports, module2) { "use strict"; var Client = require_client(); var Dispatcher = require_dispatcher(); var errors = require_errors(); var Pool = require_pool(); var BalancedPool = require_balanced_pool(); var Agent = require_agent(); var util2 = require_util2(); var { InvalidArgumentError } = errors; var api = require_api(); var buildConnector = require_connect(); var MockClient = require_mock_client(); var MockAgent = require_mock_agent(); var MockPool = require_mock_pool(); var mockErrors = require_mock_errors(); var ProxyAgent = require_proxy_agent(); var { getGlobalDispatcher, setGlobalDispatcher } = require_global(); var DecoratorHandler = require_DecoratorHandler(); var RedirectHandler = require_RedirectHandler(); var createRedirectInterceptor = require_redirectInterceptor(); var nodeVersion = process.versions.node.split("."); var nodeMajor = Number(nodeVersion[0]); var nodeMinor = Number(nodeVersion[1]); Object.assign(Dispatcher.prototype, api); module2.exports.Dispatcher = Dispatcher; module2.exports.Client = Client; module2.exports.Pool = Pool; module2.exports.BalancedPool = BalancedPool; module2.exports.Agent = Agent; module2.exports.ProxyAgent = ProxyAgent; module2.exports.DecoratorHandler = DecoratorHandler; module2.exports.RedirectHandler = RedirectHandler; module2.exports.createRedirectInterceptor = createRedirectInterceptor; module2.exports.buildConnector = buildConnector; module2.exports.errors = errors; function makeDispatcher(fn) { return (url, opts, handler) => { if (typeof opts === "function") { handler = opts; opts = null; } if (!url || typeof url !== "string" && typeof url !== "object" && !(url instanceof URL)) { throw new InvalidArgumentError("invalid url"); } if (opts != null && typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (opts && opts.path != null) { if (typeof opts.path !== "string") { throw new InvalidArgumentError("invalid opts.path"); } let path7 = opts.path; if (!opts.path.startsWith("/")) { path7 = `/${path7}`; } url = new URL(util2.parseOrigin(url).origin + path7); } else { if (!opts) { opts = typeof url === "object" ? url : {}; } url = util2.parseURL(url); } const { agent, dispatcher = getGlobalDispatcher() } = opts; if (agent) { throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?"); } return fn.call(dispatcher, { ...opts, origin: url.origin, path: url.search ? `${url.pathname}${url.search}` : url.pathname, method: opts.method || (opts.body ? "PUT" : "GET") }, handler); }; } __name(makeDispatcher, "makeDispatcher"); module2.exports.setGlobalDispatcher = setGlobalDispatcher; module2.exports.getGlobalDispatcher = getGlobalDispatcher; if (nodeMajor > 16 || nodeMajor === 16 && nodeMinor >= 8) { let fetchImpl = null; module2.exports.fetch = /* @__PURE__ */ __name(async function fetch2(resource) { if (!fetchImpl) { fetchImpl = require_fetch().fetch; } const dispatcher = arguments[1] && arguments[1].dispatcher || getGlobalDispatcher(); try { return await fetchImpl.apply(dispatcher, arguments); } catch (err) { Error.captureStackTrace(err, this); throw err; } }, "fetch"); module2.exports.Headers = require_headers().Headers; module2.exports.Response = require_response().Response; module2.exports.Request = require_request2().Request; module2.exports.FormData = require_formdata().FormData; module2.exports.File = require_file().File; const { setGlobalOrigin, getGlobalOrigin } = require_global2(); module2.exports.setGlobalOrigin = setGlobalOrigin; module2.exports.getGlobalOrigin = getGlobalOrigin; } module2.exports.request = makeDispatcher(api.request); module2.exports.stream = makeDispatcher(api.stream); module2.exports.pipeline = makeDispatcher(api.pipeline); module2.exports.connect = makeDispatcher(api.connect); module2.exports.upgrade = makeDispatcher(api.upgrade); module2.exports.MockClient = MockClient; module2.exports.MockPool = MockPool; module2.exports.MockAgent = MockAgent; module2.exports.mockErrors = mockErrors; } }); // ../../node_modules/.pnpm/js-levenshtein@1.1.6/node_modules/js-levenshtein/index.js var require_js_levenshtein = __commonJS({ "../../node_modules/.pnpm/js-levenshtein@1.1.6/node_modules/js-levenshtein/index.js"(exports, module2) { "use strict"; module2.exports = function() { function _min(d0, d1, d2, bx, ay) { return d0 < d1 || d2 < d1 ? d0 > d2 ? d2 + 1 : d0 + 1 : bx === ay ? d1 : d1 + 1; } __name(_min, "_min"); return function(a, b2) { if (a === b2) { return 0; } if (a.length > b2.length) { var tmp = a; a = b2; b2 = tmp; } var la = a.length; var lb = b2.length; while (la > 0 && a.charCodeAt(la - 1) === b2.charCodeAt(lb - 1)) { la--; lb--; } var offset = 0; while (offset < la && a.charCodeAt(offset) === b2.charCodeAt(offset)) { offset++; } la -= offset; lb -= offset; if (la === 0 || lb < 3) { return lb; } var x = 0; var y; var d0; var d1; var d2; var d3; var dd; var dy; var ay; var bx0; var bx1; var bx2; var bx3; var vector = []; for (y = 0; y < la; y++) { vector.push(y + 1); vector.push(a.charCodeAt(offset + y)); } var len = vector.length - 1; for (; x < lb - 3; ) { bx0 = b2.charCodeAt(offset + (d0 = x)); bx1 = b2.charCodeAt(offset + (d1 = x + 1)); bx2 = b2.charCodeAt(offset + (d2 = x + 2)); bx3 = b2.charCodeAt(offset + (d3 = x + 3)); dd = x += 4; for (y = 0; y < len; y += 2) { dy = vector[y]; ay = vector[y + 1]; d0 = _min(dy, d0, d1, bx0, ay); d1 = _min(d0, d1, d2, bx1, ay); d2 = _min(d1, d2, d3, bx2, ay); dd = _min(d2, d3, dd, bx3, ay); vector[y] = dd; d3 = d2; d2 = d1; d1 = d0; d0 = dy; } } for (; x < lb; ) { bx0 = b2.charCodeAt(offset + (d0 = x)); dd = ++x; for (y = 0; y < len; y += 2) { dy = vector[y]; vector[y] = dd = _min(dy, d0, dd, bx0, vector[y + 1]); d0 = dy; } } return dd; }; }(); } }); // ../../node_modules/.pnpm/pluralize@8.0.0/node_modules/pluralize/pluralize.js var require_pluralize = __commonJS({ "../../node_modules/.pnpm/pluralize@8.0.0/node_modules/pluralize/pluralize.js"(exports, module2) { (function(root, pluralize2) { if (typeof require === "function" && typeof exports === "object" && typeof module2 === "object") { module2.exports = pluralize2(); } else if (typeof define === "function" && false) { define(function() { return pluralize2(); }); } else { root.pluralize = pluralize2(); } })(exports, function() { var pluralRules = []; var singularRules = []; var uncountables = {}; var irregularPlurals = {}; var irregularSingles = {}; function sanitizeRule(rule) { if (typeof rule === "string") { return new RegExp("^" + rule + "$", "i"); } return rule; } __name(sanitizeRule, "sanitizeRule"); function restoreCase(word, token) { if (word === token) return token; if (word === word.toLowerCase()) return token.toLowerCase(); if (word === word.toUpperCase()) return token.toUpperCase(); if (word[0] === word[0].toUpperCase()) { return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase(); } return token.toLowerCase(); } __name(restoreCase, "restoreCase"); function interpolate(str, args) { return str.replace(/\$(\d{1,2})/g, function(match, index) { return args[index] || ""; }); } __name(interpolate, "interpolate"); function replace(word, rule) { return word.replace(rule[0], function(match, index) { var result = interpolate(rule[1], arguments); if (match === "") { return restoreCase(word[index - 1], result); } return restoreCase(match, result); }); } __name(replace, "replace"); function sanitizeWord(token, word, rules) { if (!token.length || uncountables.hasOwnProperty(token)) { return word; } var len = rules.length; while (len--) { var rule = rules[len]; if (rule[0].test(word)) return replace(word, rule); } return word; } __name(sanitizeWord, "sanitizeWord"); function replaceWord(replaceMap, keepMap, rules) { return function(word) { var token = word.toLowerCase(); if (keepMap.hasOwnProperty(token)) { return restoreCase(word, token); } if (replaceMap.hasOwnProperty(token)) { return restoreCase(word, replaceMap[token]); } return sanitizeWord(token, word, rules); }; } __name(replaceWord, "replaceWord"); function checkWord(replaceMap, keepMap, rules, bool) { return function(word) { var token = word.toLowerCase(); if (keepMap.hasOwnProperty(token)) return true; if (replaceMap.hasOwnProperty(token)) return false; return sanitizeWord(token, token, rules) === token; }; } __name(checkWord, "checkWord"); function pluralize2(word, count2, inclusive) { var pluralized = count2 === 1 ? pluralize2.singular(word) : pluralize2.plural(word); return (inclusive ? count2 + " " : "") + pluralized; } __name(pluralize2, "pluralize"); pluralize2.plural = replaceWord( irregularSingles, irregularPlurals, pluralRules ); pluralize2.isPlural = checkWord( irregularSingles, irregularPlurals, pluralRules ); pluralize2.singular = replaceWord( irregularPlurals, irregularSingles, singularRules ); pluralize2.isSingular = checkWord( irregularPlurals, irregularSingles, singularRules ); pluralize2.addPluralRule = function(rule, replacement) { pluralRules.push([sanitizeRule(rule), replacement]); }; pluralize2.addSingularRule = function(rule, replacement) { singularRules.push([sanitizeRule(rule), replacement]); }; pluralize2.addUncountableRule = function(word) { if (typeof word === "string") { uncountables[word.toLowerCase()] = true; return; } pluralize2.addPluralRule(word, "$0"); pluralize2.addSingularRule(word, "$0"); }; pluralize2.addIrregularRule = function(single, plural) { plural = plural.toLowerCase(); single = single.toLowerCase(); irregularSingles[single] = plural; irregularPlurals[plural] = single; }; [ ["I", "we"], ["me", "us"], ["he", "they"], ["she", "they"], ["them", "them"], ["myself", "ourselves"], ["yourself", "yourselves"], ["itself", "themselves"], ["herself", "themselves"], ["himself", "themselves"], ["themself", "themselves"], ["is", "are"], ["was", "were"], ["has", "have"], ["this", "these"], ["that", "those"], ["echo", "echoes"], ["dingo", "dingoes"], ["volcano", "volcanoes"], ["tornado", "tornadoes"], ["torpedo", "torpedoes"], ["genus", "genera"], ["viscus", "viscera"], ["stigma", "stigmata"], ["stoma", "stomata"], ["dogma", "dogmata"], ["lemma", "lemmata"], ["schema", "schemata"], ["anathema", "anathemata"], ["ox", "oxen"], ["axe", "axes"], ["die", "dice"], ["yes", "yeses"], ["foot", "feet"], ["eave", "eaves"], ["goose", "geese"], ["tooth", "teeth"], ["quiz", "quizzes"], ["human", "humans"], ["proof", "proofs"], ["carve", "carves"], ["valve", "valves"], ["looey", "looies"], ["thief", "thieves"], ["groove", "grooves"], ["pickaxe", "pickaxes"], ["passerby", "passersby"] ].forEach(function(rule) { return pluralize2.addIrregularRule(rule[0], rule[1]); }); [ [/s?$/i, "s"], [/[^\u0000-\u007F]$/i, "$0"], [/([^aeiou]ese)$/i, "$1"], [/(ax|test)is$/i, "$1es"], [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, "$1es"], [/(e[mn]u)s?$/i, "$1s"], [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, "$1"], [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, "$1i"], [/(alumn|alg|vertebr)(?:a|ae)$/i, "$1ae"], [/(seraph|cherub)(?:im)?$/i, "$1im"], [/(her|at|gr)o$/i, "$1oes"], [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, "$1a"], [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, "$1a"], [/sis$/i, "ses"], [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, "$1$2ves"], [/([^aeiouy]|qu)y$/i, "$1ies"], [/([^ch][ieo][ln])ey$/i, "$1ies"], [/(x|ch|ss|sh|zz)$/i, "$1es"], [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, "$1ices"], [/\b((?:tit)?m|l)(?:ice|ouse)$/i, "$1ice"], [/(pe)(?:rson|ople)$/i, "$1ople"], [/(child)(?:ren)?$/i, "$1ren"], [/eaux$/i, "$0"], [/m[ae]n$/i, "men"], ["thou", "you"] ].forEach(function(rule) { return pluralize2.addPluralRule(rule[0], rule[1]); }); [ [/s$/i, ""], [/(ss)$/i, "$1"], [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i, "$1fe"], [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, "$1f"], [/ies$/i, "y"], [/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, "$1ie"], [/\b(mon|smil)ies$/i, "$1ey"], [/\b((?:tit)?m|l)ice$/i, "$1ouse"], [/(seraph|cherub)im$/i, "$1"], [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, "$1"], [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, "$1sis"], [/(movie|twelve|abuse|e[mn]u)s$/i, "$1"], [/(test)(?:is|es)$/i, "$1is"], [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, "$1us"], [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, "$1um"], [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, "$1on"], [/(alumn|alg|vertebr)ae$/i, "$1a"], [/(cod|mur|sil|vert|ind)ices$/i, "$1ex"], [/(matr|append)ices$/i, "$1ix"], [/(pe)(rson|ople)$/i, "$1rson"], [/(child)ren$/i, "$1"], [/(eau)x?$/i, "$1"], [/men$/i, "man"] ].forEach(function(rule) { return pluralize2.addSingularRule(rule[0], rule[1]); }); [ "adulthood", "advice", "agenda", "aid", "aircraft", "alcohol", "ammo", "analytics", "anime", "athletics", "audio", "bison", "blood", "bream", "buffalo", "butter", "carp", "cash", "chassis", "chess", "clothing", "cod", "commerce", "cooperation", "corps", "debris", "diabetes", "digestion", "elk", "energy", "equipment", "excretion", "expertise", "firmware", "flounder", "fun", "gallows", "garbage", "graffiti", "hardware", "headquarters", "health", "herpes", "highjinks", "homework", "housework", "information", "jeans", "justice", "kudos", "labour", "literature", "machinery", "mackerel", "mail", "media", "mews", "moose", "music", "mud", "manga", "news", "only", "personnel", "pike", "plankton", "pliers", "police", "pollution", "premises", "rain", "research", "rice", "salmon", "scissors", "series", "sewage", "shambles", "shrimp", "software", "species", "staff", "swine", "tennis", "traffic", "transportation", "trout", "tuna", "wealth", "welfare", "whiting", "wildebeest", "wildlife", "you", /pok[eé]mon$/i, /[^aeiou]ese$/i, /deer$/i, /fish$/i, /measles$/i, /o[iu]s$/i, /pox$/i, /sheep$/i ].forEach(pluralize2.addUncountableRule); return pluralize2; }); } }); // ../../node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/index.js var require_is_regexp = __commonJS({ "../../node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/index.js"(exports, module2) { "use strict"; module2.exports = (input) => Object.prototype.toString.call(input) === "[object RegExp]"; } }); // ../../node_modules/.pnpm/is-obj@2.0.0/node_modules/is-obj/index.js var require_is_obj = __commonJS({ "../../node_modules/.pnpm/is-obj@2.0.0/node_modules/is-obj/index.js"(exports, module2) { "use strict"; module2.exports = (value) => { const type = typeof value; return value !== null && (type === "object" || type === "function"); }; } }); // ../../node_modules/.pnpm/get-own-enumerable-property-symbols@3.0.2/node_modules/get-own-enumerable-property-symbols/lib/index.js var require_lib2 = __commonJS({ "../../node_modules/.pnpm/get-own-enumerable-property-symbols@3.0.2/node_modules/get-own-enumerable-property-symbols/lib/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = (object) => Object.getOwnPropertySymbols(object).filter((keySymbol) => Object.prototype.propertyIsEnumerable.call(object, keySymbol)); } }); // package.json var require_package3 = __commonJS({ "package.json"(exports, module2) { module2.exports = { name: "@prisma/client", version: "4.9.0", description: "Prisma Client is an auto-generated, type-safe and modern JavaScript/TypeScript ORM for Node.js that's tailored to your data. Supports MySQL, PostgreSQL, MariaDB, SQLite databases.", keywords: [ "orm", "prisma2", "prisma", "client", "query", "database", "sql", "postgres", "postgresql", "mysql", "sqlite", "mariadb", "mssql", "typescript", "query-builder" ], main: "index.js", browser: "index-browser.js", types: "index.d.ts", license: "Apache-2.0", engines: { node: ">=14.17" }, homepage: "https://www.prisma.io", repository: { type: "git", url: "https://github.com/prisma/prisma.git", directory: "packages/client" }, author: "Tim Suchanek ", bugs: "https://github.com/prisma/prisma/issues", scripts: { dev: "DEV=true node -r esbuild-register helpers/build.ts", build: "node -r esbuild-register helpers/build.ts", test: "jest --verbose", "test:e2e": "node -r esbuild-register tests/e2e/_utils/run.ts", "test:functional": "node -r esbuild-register helpers/functional-test/run-tests.ts", "test:memory": "node -r esbuild-register helpers/memory-tests.ts", "test:functional:code": "node -r esbuild-register helpers/functional-test/run-tests.ts --no-types", "test:functional:types": "node -r esbuild-register helpers/functional-test/run-tests.ts --types-only", "test-notypes": "jest --verbose --testPathIgnorePatterns src/__tests__/types/types.test.ts", generate: "node scripts/postinstall.js", postinstall: "node scripts/postinstall.js", prepublishOnly: "pnpm run build", "new-test": "NODE_OPTIONS='-r ts-node/register' yo ./helpers/generator-test/index.ts" }, files: [ "README.md", "runtime", "scripts", "generator-build", "edge.js", "edge.d.ts", "index.js", "index.d.ts", "index-browser.js" ], devDependencies: { "@faker-js/faker": "7.6.0", "@fast-check/jest": "1.6.0", "@jest/globals": "29.3.1", "@jest/test-sequencer": "29.3.1", "@opentelemetry/api": "1.3.0", "@opentelemetry/context-async-hooks": "1.8.0", "@opentelemetry/instrumentation": "0.34.0", "@opentelemetry/resources": "1.8.0", "@opentelemetry/sdk-trace-base": "1.8.0", "@opentelemetry/semantic-conventions": "1.8.0", "@prisma/debug": "workspace:*", "@prisma/engine-core": "workspace:*", "@prisma/engines": "workspace:*", "@prisma/fetch-engine": "workspace:*", "@prisma/generator-helper": "workspace:*", "@prisma/get-platform": "workspace:*", "@prisma/instrumentation": "workspace:*", "@prisma/internals": "workspace:*", "@prisma/migrate": "workspace:*", "@prisma/mini-proxy": "0.3.0", "@swc-node/register": "1.5.4", "@swc/core": "1.3.14", "@swc/jest": "0.2.24", "@timsuchanek/copy": "1.4.5", "@types/debug": "4.1.7", "@types/fs-extra": "9.0.13", "@types/jest": "29.2.4", "@types/js-levenshtein": "1.1.1", "@types/mssql": "8.1.1", "@types/node": "14.18.36", "@types/pg": "8.6.6", "@types/yeoman-generator": "5.2.11", arg: "5.0.2", benchmark: "2.1.4", chalk: "4.1.2", "decimal.js": "10.4.2", esbuild: "0.15.13", execa: "5.1.1", "expect-type": "0.15.0", "flat-map-polyfill": "0.3.8", "fs-extra": "11.1.0", "fs-monkey": "1.0.3", "get-own-enumerable-property-symbols": "3.0.2", globby: "11.1.0", "indent-string": "4.0.0", "is-obj": "2.0.0", "is-regexp": "2.1.0", jest: "29.3.1", "jest-junit": "15.0.0", "jest-snapshot": "29.3.1", "js-levenshtein": "1.1.6", klona: "2.0.5", "lz-string": "1.4.4", mariadb: "3.0.2", memfs: "3.4.10", mssql: "9.0.1", "node-fetch": "2.6.7", pg: "8.8.0", "pkg-up": "3.1.0", pluralize: "8.0.0", resolve: "1.22.1", rimraf: "3.0.2", "simple-statistics": "7.8.0", "sort-keys": "4.2.0", "source-map-support": "0.5.21", "sql-template-tag": "5.0.3", "stacktrace-parser": "0.1.10", "strip-ansi": "6.0.1", "strip-indent": "3.0.0", "ts-jest": "29.0.3", "ts-node": "10.9.1", "ts-pattern": "4.0.5", tsd: "0.21.0", typescript: "4.8.4", "yeoman-generator": "5.7.0", yo: "4.3.1", zx: "7.1.1" }, peerDependencies: { prisma: "*" }, peerDependenciesMeta: { prisma: { optional: true } }, dependencies: { "@prisma/engines-version": "4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5" }, sideEffects: false }; } }); // src/runtime/index.ts var runtime_exports = {}; __export(runtime_exports, { DMMF: () => DMMF, DMMFClass: () => DMMFHelper, Debug: () => Debug, Decimal: () => decimal_default, Engine: () => Engine, Extensions: () => extensions_exports, MetricsClient: () => MetricsClient, NotFoundError: () => NotFoundError2, PrismaClientExtensionError: () => PrismaClientExtensionError, PrismaClientInitializationError: () => PrismaClientInitializationError, PrismaClientKnownRequestError: () => PrismaClientKnownRequestError, PrismaClientRustPanicError: () => PrismaClientRustPanicError, PrismaClientUnknownRequestError: () => PrismaClientUnknownRequestError, PrismaClientValidationError: () => PrismaClientValidationError, Sql: () => Sql, Types: () => types_exports, decompressFromBase64: () => decompressFromBase642, empty: () => empty, findSync: () => findSync, getPrismaClient: () => getPrismaClient, join: () => join, makeDocument: () => makeDocument, makeStrictEnum: () => makeStrictEnum, objectEnumValues: () => objectEnumValues, raw: () => raw, sqltag: () => sql, transformDocument: () => transformDocument, unpack: () => unpack, warnEnvConflicts: () => warnEnvConflicts }); module.exports = __toCommonJS(runtime_exports); var lzString = __toESM(require_lz_string()); // src/runtime/core/extensions/index.ts var extensions_exports = {}; __export(extensions_exports, { defineExtension: () => defineExtension, getExtensionContext: () => getExtensionContext }); // src/runtime/core/extensions/defineExtension.ts function defineExtension(ext) { if (typeof ext === "function") { return ext; } return (client) => client.$extends(ext); } __name(defineExtension, "defineExtension"); // src/runtime/core/extensions/getExtensionContext.ts function getExtensionContext(that) { return that; } __name(getExtensionContext, "getExtensionContext"); // src/runtime/core/types/index.ts var types_exports = {}; __export(types_exports, { Extensions: () => Extensions_exports, Public: () => Public_exports, Utils: () => Utils_exports }); // src/runtime/core/types/Extensions.ts var Extensions_exports = {}; // src/runtime/core/types/Public.ts var Public_exports = {}; // src/runtime/core/types/Utils.ts var Utils_exports = {}; // ../debug/src/index.ts var import_debug = __toESM(require_src()); var MAX_LOGS = 100; var debugArgsHistory = []; if (typeof process !== "undefined" && typeof process.stderr?.write !== "function") { import_debug.default.log = console.debug ?? console.log; } function debugCall(namespace) { const debugNamespace = (0, import_debug.default)(namespace); const call = Object.assign((...args) => { debugNamespace.log = call.log; if (args.length !== 0) { debugArgsHistory.push([namespace, ...args]); } if (debugArgsHistory.length > MAX_LOGS) { debugArgsHistory.shift(); } return debugNamespace("", ...args); }, debugNamespace); return call; } __name(debugCall, "debugCall"); var Debug = Object.assign(debugCall, import_debug.default); function getLogs(numChars = 7500) { const output = debugArgsHistory.map( (c) => c.map((item) => { if (typeof item === "string") { return item; } return JSON.stringify(item); }).join(" ") ).join("\n"); if (output.length < numChars) { return output; } return output.slice(-numChars); } __name(getLogs, "getLogs"); function clearLogs() { debugArgsHistory.length = 0; } __name(clearLogs, "clearLogs"); var src_default = Debug; // ../internals/src/utils/tryLoadEnvs.ts var import_chalk = __toESM(require_source()); var import_dotenv = __toESM(require_main2()); var import_fs = __toESM(require("fs")); var import_path = __toESM(require("path")); // ../internals/src/dotenvExpand.ts function dotenvExpand(config2) { const environment = config2.ignoreProcessEnv ? {} : process.env; const interpolate = /* @__PURE__ */ __name((envValue) => { const matches = envValue.match(/(.?\${(?:[a-zA-Z0-9_]+)?})/g); return matches?.reduce(function(newEnv, match) { const parts = /(.?)\${([a-zA-Z0-9_]+)?}/g.exec(match); if (!parts) { return newEnv; } const prefix = parts[1]; let value, replacePart; if (prefix === "\\") { replacePart = parts[0]; value = replacePart.replace("\\$", "$"); } else { const key = parts[2]; replacePart = parts[0].substring(prefix.length); value = Object.hasOwnProperty.call(environment, key) ? environment[key] : config2.parsed[key] || ""; value = interpolate(value); } return newEnv.replace(replacePart, value); }, envValue) ?? envValue; }, "interpolate"); for (const configKey in config2.parsed) { const value = Object.hasOwnProperty.call(environment, configKey) ? environment[configKey] : config2.parsed[configKey]; config2.parsed[configKey] = interpolate(value); } for (const processKey in config2.parsed) { environment[processKey] = config2.parsed[processKey]; } return config2; } __name(dotenvExpand, "dotenvExpand"); // ../internals/src/utils/tryLoadEnvs.ts var debug2 = src_default("prisma:tryLoadEnv"); function tryLoadEnvs({ rootEnvPath, schemaEnvPath }, opts = { conflictCheck: "none" }) { const rootEnvInfo = loadEnv(rootEnvPath); if (opts.conflictCheck !== "none") { checkForConflicts(rootEnvInfo, schemaEnvPath, opts.conflictCheck); } let schemaEnvInfo = null; if (!pathsEqual(rootEnvInfo?.path, schemaEnvPath)) { schemaEnvInfo = loadEnv(schemaEnvPath); } if (!rootEnvInfo && !schemaEnvInfo) { debug2("No Environment variables loaded"); } if (schemaEnvInfo?.dotenvResult.error) { return console.error(import_chalk.default.redBright.bold("Schema Env Error: ") + schemaEnvInfo.dotenvResult.error); } const messages = [rootEnvInfo?.message, schemaEnvInfo?.message].filter(Boolean); return { message: messages.join("\n"), parsed: { ...rootEnvInfo?.dotenvResult?.parsed, ...schemaEnvInfo?.dotenvResult?.parsed } }; } __name(tryLoadEnvs, "tryLoadEnvs"); function checkForConflicts(rootEnvInfo, envPath, type) { const parsedRootEnv = rootEnvInfo?.dotenvResult.parsed; const areNotTheSame = !pathsEqual(rootEnvInfo?.path, envPath); if (parsedRootEnv && envPath && areNotTheSame && import_fs.default.existsSync(envPath)) { const envConfig = import_dotenv.default.parse(import_fs.default.readFileSync(envPath)); const conflicts = []; for (const k in envConfig) { if (parsedRootEnv[k] === envConfig[k]) { conflicts.push(k); } } if (conflicts.length > 0) { const relativeRootEnvPath = import_path.default.relative(process.cwd(), rootEnvInfo.path); const relativeEnvPath = import_path.default.relative(process.cwd(), envPath); if (type === "error") { const message = `There is a conflict between env var${conflicts.length > 1 ? "s" : ""} in ${import_chalk.default.underline( relativeRootEnvPath )} and ${import_chalk.default.underline(relativeEnvPath)} Conflicting env vars: ${conflicts.map((conflict) => ` ${import_chalk.default.bold(conflict)}`).join("\n")} We suggest to move the contents of ${import_chalk.default.underline(relativeEnvPath)} to ${import_chalk.default.underline( relativeRootEnvPath )} to consolidate your env vars. `; throw new Error(message); } else if (type === "warn") { const message = `Conflict for env var${conflicts.length > 1 ? "s" : ""} ${conflicts.map((c) => import_chalk.default.bold(c)).join(", ")} in ${import_chalk.default.underline(relativeRootEnvPath)} and ${import_chalk.default.underline(relativeEnvPath)} Env vars from ${import_chalk.default.underline(relativeEnvPath)} overwrite the ones from ${import_chalk.default.underline(relativeRootEnvPath)} `; console.warn(`${import_chalk.default.yellow("warn(prisma)")} ${message}`); } } } } __name(checkForConflicts, "checkForConflicts"); function loadEnv(envPath) { if (exists(envPath)) { debug2(`Environment variables loaded from ${envPath}`); return { dotenvResult: dotenvExpand( import_dotenv.default.config({ path: envPath, debug: process.env.DOTENV_CONFIG_DEBUG ? true : void 0 }) ), message: import_chalk.default.dim(`Environment variables loaded from ${import_path.default.relative(process.cwd(), envPath)}`), path: envPath }; } else { debug2(`Environment variables not found at ${envPath}`); } return null; } __name(loadEnv, "loadEnv"); function pathsEqual(path1, path22) { return path1 && path22 && import_path.default.resolve(path1) === import_path.default.resolve(path22); } __name(pathsEqual, "pathsEqual"); function exists(p2) { return Boolean(p2 && import_fs.default.existsSync(p2)); } __name(exists, "exists"); // ../internals/src/client/getClientEngineType.ts var DEFAULT_CLIENT_ENGINE_TYPE = "library" /* Library */; function getClientEngineType(generatorConfig) { const engineTypeFromEnvVar = getEngineTypeFromEnvVar(); if (engineTypeFromEnvVar) return engineTypeFromEnvVar; if (generatorConfig?.config.engineType === "library" /* Library */) { return "library" /* Library */; } else if (generatorConfig?.config.engineType === "binary" /* Binary */) { return "binary" /* Binary */; } else { return DEFAULT_CLIENT_ENGINE_TYPE; } } __name(getClientEngineType, "getClientEngineType"); function getEngineTypeFromEnvVar() { const engineType = process.env.PRISMA_CLIENT_ENGINE_TYPE; if (engineType === "library" /* Library */) { return "library" /* Library */; } else if (engineType === "binary" /* Binary */) { return "binary" /* Binary */; } else { return void 0; } } __name(getEngineTypeFromEnvVar, "getEngineTypeFromEnvVar"); // ../internals/src/cli/utils.ts var import_arg = __toESM(require_arg()); var import_strip_indent = __toESM(require_strip_indent()); function isError(result) { return result instanceof Error; } __name(isError, "isError"); // ../engines/src/index.ts var import_engines_version = __toESM(require_engines_version()); // ../get-platform/src/getNodeAPIName.ts var NODE_API_QUERY_ENGINE_URL_BASE = "libquery_engine"; function getNodeAPIName(platform2, type) { const isUrl = type === "url"; if (platform2.includes("windows")) { return isUrl ? `query_engine.dll.node` : `query_engine-${platform2}.dll.node`; } else if (platform2.includes("darwin")) { return isUrl ? `${NODE_API_QUERY_ENGINE_URL_BASE}.dylib.node` : `${NODE_API_QUERY_ENGINE_URL_BASE}-${platform2}.dylib.node`; } else { return isUrl ? `${NODE_API_QUERY_ENGINE_URL_BASE}.so.node` : `${NODE_API_QUERY_ENGINE_URL_BASE}-${platform2}.so.node`; } } __name(getNodeAPIName, "getNodeAPIName"); // ../get-platform/src/getPlatform.ts var import_child_process = __toESM(require("child_process")); var import_fs2 = __toESM(require("fs")); var import_os = __toESM(require("os")); // ../../node_modules/.pnpm/ts-pattern@4.0.6/node_modules/ts-pattern/dist/index.modern.js var e = Symbol("@ts-pattern/matcher"); var t = "@ts-pattern/anonymous-select-key"; var n = /* @__PURE__ */ __name((e2) => Boolean(e2 && "object" == typeof e2), "n"); var r = /* @__PURE__ */ __name((t2) => t2 && !!t2[e], "r"); var o = /* @__PURE__ */ __name((t2, c, a) => { if (n(t2)) { if (r(t2)) { const n2 = t2[e](), { matched: r2, selections: o2 } = n2.match(c); return r2 && o2 && Object.keys(o2).forEach((e2) => a(e2, o2[e2])), r2; } if (!n(c)) return false; if (Array.isArray(t2)) return !!Array.isArray(c) && t2.length === c.length && t2.every((e2, t3) => o(e2, c[t3], a)); if (t2 instanceof Map) return c instanceof Map && Array.from(t2.keys()).every((e2) => o(t2.get(e2), c.get(e2), a)); if (t2 instanceof Set) { if (!(c instanceof Set)) return false; if (0 === t2.size) return 0 === c.size; if (1 === t2.size) { const [e2] = Array.from(t2.values()); return r(e2) ? Array.from(c.values()).every((t3) => o(e2, t3, a)) : c.has(e2); } return Array.from(t2.values()).every((e2) => c.has(e2)); } return Object.keys(t2).every((n2) => { const s = t2[n2]; return (n2 in c || r(i = s) && "optional" === i[e]().matcherType) && o(s, c[n2], a); var i; }); } return Object.is(c, t2); }, "o"); function f(t2) { return { [e]: () => ({ match: (e2) => ({ matched: Boolean(t2(e2)) }) }) }; } __name(f, "f"); var m = f(function(e2) { return true; }); var d = f(function(e2) { return "string" == typeof e2; }); var g = f(function(e2) { return "number" == typeof e2; }); var p = f(function(e2) { return "boolean" == typeof e2; }); var b = f(function(e2) { return "bigint" == typeof e2; }); var w = f(function(e2) { return "symbol" == typeof e2; }); var A = f(function(e2) { return null == e2; }); var K = /* @__PURE__ */ __name((e2) => new O(e2, []), "K"); var O = class { constructor(e2, t2) { this.value = void 0, this.cases = void 0, this.value = e2, this.cases = t2; } with(...e2) { const n2 = e2[e2.length - 1], r2 = [e2[0]], c = []; return 3 === e2.length && "function" == typeof e2[1] ? (r2.push(e2[0]), c.push(e2[1])) : e2.length > 2 && r2.push(...e2.slice(1, e2.length - 1)), new O(this.value, this.cases.concat([{ match: (e3) => { let n3 = {}; const a = Boolean(r2.some((t2) => o(t2, e3, (e4, t3) => { n3[e4] = t3; })) && c.every((t2) => t2(e3))); return { matched: a, value: a && Object.keys(n3).length ? t in n3 ? n3[t] : n3 : e3 }; }, handler: n2 }])); } when(e2, t2) { return new O(this.value, this.cases.concat([{ match: (t3) => ({ matched: Boolean(e2(t3)), value: t3 }), handler: t2 }])); } otherwise(e2) { return new O(this.value, this.cases.concat([{ match: (e3) => ({ matched: true, value: e3 }), handler: e2 }])).run(); } exhaustive() { return this.run(); } run() { let e2, t2 = this.value; for (let n2 = 0; n2 < this.cases.length; n2++) { const r2 = this.cases[n2], o2 = r2.match(this.value); if (o2.matched) { t2 = o2.value, e2 = r2.handler; break; } } if (!e2) { let e3; try { e3 = JSON.stringify(this.value); } catch (t3) { e3 = this.value; } throw new Error(`Pattern matching error: no pattern matches value ${e3}`); } return e2(t2, this.value); } }; __name(O, "O"); // ../get-platform/src/getPlatform.ts var import_util = require("util"); // ../get-platform/src/logger.ts var import_chalk2 = __toESM(require_source()); var tags = { warn: import_chalk2.default.yellow("prisma:warn") }; var should = { warn: () => !process.env.PRISMA_DISABLE_WARNINGS }; function warn(message, ...optionalParams) { if (should.warn()) { console.warn(`${tags.warn} ${message}`, ...optionalParams); } } __name(warn, "warn"); // ../get-platform/src/warnOnce.ts var alreadyWarned = /* @__PURE__ */ new Set(); var warnOnce = /* @__PURE__ */ __name((key, message, ...args) => { if (!alreadyWarned.has(key)) { alreadyWarned.add(key); warn(message, ...args); } }, "warnOnce"); // ../get-platform/src/getPlatform.ts var readFile = (0, import_util.promisify)(import_fs2.default.readFile); var exists2 = (0, import_util.promisify)(import_fs2.default.exists); var exec = (0, import_util.promisify)(import_child_process.default.exec); var debug3 = src_default("prisma:get-platform"); async function getos() { const platform2 = import_os.default.platform(); const arch = process.arch; if (platform2 === "freebsd") { const version = await getFirstSuccessfulExec([`freebsd-version`]); if (version && version.trim().length > 0) { const regex = /^(\d+)\.?/; const match = regex.exec(version); if (match) { return { platform: "freebsd", distro: `freebsd${match[1]}`, arch }; } } } if (platform2 !== "linux") { return { platform: platform2, arch }; } const distro = await resolveDistro(); if (distro === "musl" && arch !== "x64") { throw new Error( `Prisma only supports Linux Alpine on the amd64 (x86_64) system architecture. If you're running Prisma on Docker, please use Docker Buildx to simulate the amd64 architecture on your device as explained by this comment: https://github.com/prisma/prisma/issues/8478#issuecomment-1355209706` ); } const libssl = await getSSLVersion({ arch, distro }); return { platform: "linux", libssl, distro, arch }; } __name(getos, "getos"); function parseDistro(input) { const idRegex = /^ID="?([^"\n]*)"?$/im; const idLikeRegex = /^ID_LIKE="?([^"\n]*)"?$/im; const idMatch = idRegex.exec(input); const id = idMatch && idMatch[1] && idMatch[1].toLowerCase() || ""; const idLikeMatch = idLikeRegex.exec(input); const idLike = idLikeMatch && idLikeMatch[1] && idLikeMatch[1].toLowerCase() || ""; if (id === "raspbian") { return "arm"; } if (id === "nixos") { return "nixos"; } if (idLike.includes("centos") || idLike.includes("fedora") || idLike.includes("rhel") || id === "fedora") { return "rhel"; } if (idLike.includes("debian") || idLike.includes("ubuntu") || id === "debian") { return "debian"; } return; } __name(parseDistro, "parseDistro"); async function resolveDistro() { const osReleaseFile = "/etc/os-release"; const alpineReleaseFile = "/etc/alpine-release"; if (await exists2(alpineReleaseFile)) { return "musl"; } else if (await exists2(osReleaseFile)) { return parseDistro(await readFile(osReleaseFile, "utf-8")); } else { return; } } __name(resolveDistro, "resolveDistro"); function parseOpenSSLVersion(input) { const match = /^OpenSSL\s(\d+\.\d+)\.\d+/.exec(input); if (match) { const partialVersion = `${match[1]}.x`; return sanitiseSSLVersion(partialVersion); } return void 0; } __name(parseOpenSSLVersion, "parseOpenSSLVersion"); function parseLibSSLVersion(input) { const match = /libssl\.so\.(\d)(\.\d)?/.exec(input); if (match) { const partialVersion = `${match[1]}${match[2] ?? ".0"}.x`; return sanitiseSSLVersion(partialVersion); } return void 0; } __name(parseLibSSLVersion, "parseLibSSLVersion"); function sanitiseSSLVersion(version) { if (isLibssl1x(version)) { return version; } const versionSplit = version.split("."); versionSplit[1] = "0"; return versionSplit.join("."); } __name(sanitiseSSLVersion, "sanitiseSSLVersion"); async function getSSLVersion(args) { const archFromUname = await getArchFromUname(); const libsslSpecificPaths = K(args).with({ distro: "musl" }, () => { debug3('Trying platform-specific paths for "alpine"'); return ["/lib"]; }).with({ distro: "debian" }, () => { debug3('Trying platform-specific paths for "debian" (and "ubuntu")'); return [`/usr/lib/${archFromUname}-linux-gnu`, `/lib/${archFromUname}-linux-gnu`]; }).with({ distro: "rhel" }, () => { debug3('Trying platform-specific paths for "rhel"'); return ["/lib64", "/usr/lib64"]; }).otherwise(({ distro, arch }) => { debug3(`Don't know any platform-specific paths for "${distro}" on ${arch}`); return []; }); const libsslSpecificCommands = libsslSpecificPaths.map((path7) => `ls ${path7} | grep libssl.so`); const libsslFilenameFromSpecificPath = await getFirstSuccessfulExec(libsslSpecificCommands); if (libsslFilenameFromSpecificPath) { debug3(`Found libssl.so file using platform-specific paths: ${libsslFilenameFromSpecificPath}`); const libsslVersion = parseLibSSLVersion(libsslFilenameFromSpecificPath); debug3(`The parsed libssl version is: ${libsslVersion}`); if (libsslVersion) { return libsslVersion; } } debug3('Falling back to "ldconfig" and other generic paths'); const libsslFilename = await getFirstSuccessfulExec([ 'ldconfig -p | sed "s/.*=>s*//" | sed "s|.*/||" | grep ssl | sort', "ls /lib64 | grep ssl", "ls /usr/lib64 | grep ssl" ]); if (libsslFilename) { debug3(`Found libssl.so file using "ldconfig" or other generic paths: ${libsslFilenameFromSpecificPath}`); const libsslVersion = parseLibSSLVersion(libsslFilename); if (libsslVersion) { return libsslVersion; } } const openSSLVersionLine = await getFirstSuccessfulExec(["openssl version -v"]); if (openSSLVersionLine) { debug3(`Found openssl binary with version: ${openSSLVersionLine}`); const openSSLVersion2 = parseOpenSSLVersion(openSSLVersionLine); debug3(`The parsed openssl version is: ${openSSLVersion2}`); if (openSSLVersion2) { return openSSLVersion2; } } const openSSLVersion = await getFirstSuccessfulExec(["openssl version -v"]); if (openSSLVersion) { const matchedVersion = parseOpenSSLVersion(openSSLVersion); if (matchedVersion) { return matchedVersion; } } debug3(`Couldn't find any version of libssl or OpenSSL in the system`); return void 0; } __name(getSSLVersion, "getSSLVersion"); async function getPlatform() { const { platform: platform2, distro, arch, libssl } = await getos(); const defaultLibssl = "1.1.x"; if (platform2 === "linux" && libssl === void 0) { const additionalMessage = K({ distro }).with({ distro: "debian" }, () => { return "Please manually install OpenSSL via `apt-get update -y && apt-get install -y openssl` and try installing Prisma again. If you're running Prisma on Docker, you may also try to replace your base image with `node:lts-slim`, which already ships with OpenSSL installed."; }).otherwise(() => { return "Please manually install OpenSSL and try installing Prisma again."; }); warnOnce( "libssl:undefined", `Prisma failed to detect the libssl/openssl version to use, and may not work as expected. Defaulting to "openssl-${defaultLibssl}". ${additionalMessage}` ); } const defaultDistro = "debian"; if (platform2 === "linux" && distro === void 0) { warnOnce( "distro:undefined", `Prisma failed to detect the Linux distro in use, and may not work as expected. Defaulting to "${defaultDistro}".` ); } if (platform2 === "darwin" && arch === "arm64") { return "darwin-arm64"; } if (platform2 === "darwin") { return "darwin"; } if (platform2 === "win32") { return "windows"; } if (platform2 === "freebsd") { return distro; } if (platform2 === "openbsd") { return "openbsd"; } if (platform2 === "netbsd") { return "netbsd"; } if (platform2 === "linux" && distro === "nixos") { return "linux-nixos"; } if (platform2 === "linux" && arch === "arm64") { return `linux-arm64-openssl-${libssl || defaultLibssl}`; } if (platform2 === "linux" && arch === "arm") { return `linux-arm-openssl-${libssl || defaultLibssl}`; } if (platform2 === "linux" && distro === "musl") { const base = "linux-musl"; if (!libssl) { return base; } if (isLibssl1x(libssl)) { return base; } else { return `${base}-openssl-${libssl}`; } } if (platform2 === "linux" && distro && libssl) { return `${distro}-openssl-${libssl}`; } if (platform2 !== "linux") { warnOnce( "platform:undefined", `Prisma detected unknown OS "${platform2}" and may not work as expected. Defaulting to "linux".` ); } if (libssl) { return `${defaultDistro}-openssl-${libssl}`; } if (distro) { return `${distro}-openssl-${defaultLibssl}`; } return `${defaultDistro}-openssl-${defaultLibssl}`; } __name(getPlatform, "getPlatform"); async function discardError(runPromise) { try { return await runPromise(); } catch (e2) { return void 0; } } __name(discardError, "discardError"); function getFirstSuccessfulExec(commands) { return discardError(async () => { const results = await Promise.allSettled(commands.map((cmd) => exec(cmd))); const idx = results.findIndex(({ status }) => status === "fulfilled"); if (idx === -1) { return void 0; } const { value } = results[idx]; const output = String(value.stdout); debug3(`Command "${commands[idx]}" successfully returned "${output}"`); return output; }); } __name(getFirstSuccessfulExec, "getFirstSuccessfulExec"); async function getArchFromUname() { const arch = await getFirstSuccessfulExec(["uname -m"]); return arch?.trim(); } __name(getArchFromUname, "getArchFromUname"); function isLibssl1x(libssl) { return libssl.startsWith("1."); } __name(isLibssl1x, "isLibssl1x"); // ../get-platform/src/isNodeAPISupported.ts var import_fs3 = __toESM(require("fs")); async function isNodeAPISupported() { const customLibraryPath = process.env.PRISMA_QUERY_ENGINE_LIBRARY; const customLibraryExists = customLibraryPath && import_fs3.default.existsSync(customLibraryPath); const os2 = await getos(); if (!customLibraryExists && (os2.arch === "x32" || os2.arch === "ia32")) { throw new Error( `The default query engine type (Node-API, "library") is currently not supported for 32bit Node. Please set \`engineType = "binary"\` in the "generator" block of your "schema.prisma" file (or use the environment variables "PRISMA_CLIENT_ENGINE_TYPE=binary" and/or "PRISMA_CLI_QUERY_ENGINE_TYPE=binary".)` ); } } __name(isNodeAPISupported, "isNodeAPISupported"); // ../get-platform/src/platforms.ts var platforms = [ "darwin", "darwin-arm64", "debian-openssl-1.0.x", "debian-openssl-1.1.x", "debian-openssl-3.0.x", "rhel-openssl-1.0.x", "rhel-openssl-1.1.x", "rhel-openssl-3.0.x", "linux-arm64-openssl-1.1.x", "linux-arm64-openssl-1.0.x", "linux-arm64-openssl-3.0.x", "linux-arm-openssl-1.1.x", "linux-arm-openssl-1.0.x", "linux-arm-openssl-3.0.x", "linux-musl", "linux-musl-openssl-3.0.x", "linux-nixos", "windows", "freebsd11", "freebsd12", "freebsd13", "openbsd", "netbsd", "arm" ]; // ../engines/src/index.ts var import_path2 = __toESM(require("path")); var import_engines_version2 = __toESM(require_engines_version()); var debug4 = src_default("prisma:engines"); function getEnginesPath() { return import_path2.default.join(__dirname, "../"); } __name(getEnginesPath, "getEnginesPath"); var DEFAULT_CLI_QUERY_ENGINE_BINARY_TYPE = "libquery-engine" /* libqueryEngine */; import_path2.default.join(__dirname, "../query-engine-darwin"); import_path2.default.join(__dirname, "../introspection-engine-darwin"); import_path2.default.join(__dirname, "../prisma-fmt-darwin"); import_path2.default.join(__dirname, "../query-engine-darwin-arm64"); import_path2.default.join(__dirname, "../introspection-engine-darwin-arm64"); import_path2.default.join(__dirname, "../prisma-fmt-darwin-arm64"); import_path2.default.join(__dirname, "../query-engine-debian-openssl-1.0.x"); import_path2.default.join(__dirname, "../introspection-engine-debian-openssl-1.0.x"); import_path2.default.join(__dirname, "../prisma-fmt-debian-openssl-1.0.x"); import_path2.default.join(__dirname, "../query-engine-debian-openssl-1.1.x"); import_path2.default.join(__dirname, "../introspection-engine-debian-openssl-1.1.x"); import_path2.default.join(__dirname, "../prisma-fmt-debian-openssl-1.1.x"); import_path2.default.join(__dirname, "../query-engine-debian-openssl-3.0.x"); import_path2.default.join(__dirname, "../introspection-engine-debian-openssl-3.0.x"); import_path2.default.join(__dirname, "../prisma-fmt-debian-openssl-3.0.x"); import_path2.default.join(__dirname, "../query-engine-rhel-openssl-1.0.x"); import_path2.default.join(__dirname, "../introspection-engine-rhel-openssl-1.0.x"); import_path2.default.join(__dirname, "../prisma-fmt-rhel-openssl-1.0.x"); import_path2.default.join(__dirname, "../query-engine-rhel-openssl-1.1.x"); import_path2.default.join(__dirname, "../introspection-engine-rhel-openssl-1.1.x"); import_path2.default.join(__dirname, "../prisma-fmt-rhel-openssl-1.1.x"); import_path2.default.join(__dirname, "../query-engine-rhel-openssl-3.0.x"); import_path2.default.join(__dirname, "../introspection-engine-rhel-openssl-3.0.x"); import_path2.default.join(__dirname, "../prisma-fmt-rhel-openssl-3.0.x"); import_path2.default.join(__dirname, "../libquery_engine-darwin.dylib.node"); import_path2.default.join(__dirname, "../libquery_engine-darwin-arm64.dylib.node"); import_path2.default.join(__dirname, "../libquery_engine-debian-openssl-1.0.x.so.node"); import_path2.default.join(__dirname, "../libquery_engine-debian-openssl-1.1.x.so.node"); import_path2.default.join(__dirname, "../libquery_engine-debian-openssl-3.0.x.so.node"); import_path2.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-1.0.x.so.node"); import_path2.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-1.1.x.so.node"); import_path2.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-3.0.x.so.node"); import_path2.default.join(__dirname, "../libquery_engine-linux-musl.so.node"); import_path2.default.join(__dirname, "../libquery_engine-linux-musl-openssl-3.0.x.so.node"); import_path2.default.join(__dirname, "../libquery_engine-rhel-openssl-1.0.x.so.node"); import_path2.default.join(__dirname, "../libquery_engine-rhel-openssl-1.1.x.so.node"); import_path2.default.join(__dirname, "../libquery_engine-rhel-openssl-3.0.x.so.node"); import_path2.default.join(__dirname, "../query_engine-windows.dll.node"); // ../engine-core/src/binary/BinaryEngine.ts var import_chalk4 = __toESM(require_source()); var import_child_process2 = require("child_process"); var import_execa = __toESM(require_execa()); var import_fs5 = __toESM(require("fs")); var import_net = __toESM(require("net")); var import_p_retry = __toESM(require_p_retry()); var import_path3 = __toESM(require("path")); var import_url = require("url"); var import_util4 = require("util"); // ../engine-core/src/common/Engine.ts var Engine = class { }; __name(Engine, "Engine"); // ../engine-core/src/common/errors/PrismaClientInitializationError.ts var PrismaClientInitializationError = class extends Error { constructor(message, clientVersion2, errorCode) { super(message); this.clientVersion = clientVersion2; this.errorCode = errorCode; Error.captureStackTrace(PrismaClientInitializationError); } get [Symbol.toStringTag]() { return "PrismaClientInitializationError"; } }; __name(PrismaClientInitializationError, "PrismaClientInitializationError"); // ../engine-core/src/common/errors/PrismaClientKnownRequestError.ts var PrismaClientKnownRequestError = class extends Error { constructor(message, { code, clientVersion: clientVersion2, meta, batchRequestIdx }) { super(message); this.code = code; this.clientVersion = clientVersion2; this.meta = meta; this.batchRequestIdx = batchRequestIdx; } get [Symbol.toStringTag]() { return "PrismaClientKnownRequestError"; } }; __name(PrismaClientKnownRequestError, "PrismaClientKnownRequestError"); // ../engine-core/src/common/errors/utils/log.ts function getMessage(log3) { if (typeof log3 === "string") { return log3; } else { return log3.message; } } __name(getMessage, "getMessage"); function getBacktrace(log3) { if (log3.fields?.message) { let str = log3.fields?.message; if (log3.fields?.file) { str += ` in ${log3.fields.file}`; if (log3.fields?.line) { str += `:${log3.fields.line}`; } if (log3.fields?.column) { str += `:${log3.fields.column}`; } } if (log3.fields?.reason) { str += ` ${log3.fields?.reason}`; } return str; } return "Unknown error"; } __name(getBacktrace, "getBacktrace"); function isPanic(err) { return err.fields?.message === "PANIC"; } __name(isPanic, "isPanic"); function isRustLog(e2) { return e2.timestamp && typeof e2.level === "string" && typeof e2.target === "string"; } __name(isRustLog, "isRustLog"); function isRustErrorLog(e2) { return isRustLog(e2) && (e2.level === "error" || e2.fields?.message?.includes("fatal error")); } __name(isRustErrorLog, "isRustErrorLog"); function convertLog(rustLog) { const isQuery = isQueryLog(rustLog.fields); const level = isQuery ? "query" : rustLog.level.toLowerCase(); return { ...rustLog, level, timestamp: new Date(rustLog.timestamp) }; } __name(convertLog, "convertLog"); function isQueryLog(fields) { return Boolean(fields.query); } __name(isQueryLog, "isQueryLog"); // ../engine-core/src/common/errors/PrismaClientRustError.ts var PrismaClientRustError = class extends Error { constructor({ clientVersion: clientVersion2, error: error2 }) { const backtrace = getBacktrace(error2); super(backtrace ?? "Unknown error"); this._isPanic = isPanic(error2); this.clientVersion = clientVersion2; } get [Symbol.toStringTag]() { return "PrismaClientRustPanicError"; } isPanic() { return this._isPanic; } }; __name(PrismaClientRustError, "PrismaClientRustError"); // ../engine-core/src/common/errors/PrismaClientRustPanicError.ts var PrismaClientRustPanicError = class extends Error { constructor(message, clientVersion2) { super(message); this.clientVersion = clientVersion2; } get [Symbol.toStringTag]() { return "PrismaClientRustPanicError"; } }; __name(PrismaClientRustPanicError, "PrismaClientRustPanicError"); // ../engine-core/src/common/errors/PrismaClientUnknownRequestError.ts var PrismaClientUnknownRequestError = class extends Error { constructor(message, { clientVersion: clientVersion2, batchRequestIdx }) { super(message); this.clientVersion = clientVersion2; this.batchRequestIdx = batchRequestIdx; } get [Symbol.toStringTag]() { return "PrismaClientUnknownRequestError"; } }; __name(PrismaClientUnknownRequestError, "PrismaClientUnknownRequestError"); // ../engine-core/src/common/errors/utils/getErrorMessageWithLink.ts var import_chalk3 = __toESM(require_source()); var import_strip_ansi = __toESM(require_strip_ansi()); // ../engine-core/src/common/utils/util.ts var import_fs4 = __toESM(require("fs")); var import_new_github_issue_url = __toESM(require_new_github_issue_url()); var debug5 = src_default("plusX"); function plusX(file) { const s = import_fs4.default.statSync(file); const newMode = s.mode | 64 | 8 | 1; if (s.mode === newMode) { debug5(`Execution permissions of ${file} are fine`); return; } const base8 = newMode.toString(8).slice(-3); debug5(`Have to call plusX on ${file}`); import_fs4.default.chmodSync(file, base8); } __name(plusX, "plusX"); function transformPlatformToEnvValue(platform2) { return { fromEnvVar: null, value: platform2 }; } __name(transformPlatformToEnvValue, "transformPlatformToEnvValue"); function fixBinaryTargets(binaryTargets, platform2) { binaryTargets = binaryTargets || []; if (!binaryTargets.find((object) => object.value === "native")) { return [transformPlatformToEnvValue("native"), ...binaryTargets]; } return [...binaryTargets, transformPlatformToEnvValue(platform2)]; } __name(fixBinaryTargets, "fixBinaryTargets"); function getGitHubIssueUrl({ title, user = "prisma", repo = "prisma", template = "bug_report.md", body }) { return (0, import_new_github_issue_url.default)({ user, repo, template, title, body }); } __name(getGitHubIssueUrl, "getGitHubIssueUrl"); // ../engine-core/src/common/errors/utils/maskQuery.ts function maskQuery(query2) { if (!query2) { return ""; } return query2.replace(/".*"/g, '"X"').replace(/[\s:\[]([+-]?([0-9]*[.])?[0-9]+)/g, (substr) => { return `${substr[0]}5`; }); } __name(maskQuery, "maskQuery"); // ../engine-core/src/common/errors/utils/normalizeLogs.ts function normalizeLogs(logs) { return logs.split("\n").map((l) => { return l.replace(/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)\s*/, "").replace(/\+\d+\s*ms$/, ""); }).join("\n"); } __name(normalizeLogs, "normalizeLogs"); // ../engine-core/src/common/errors/utils/getErrorMessageWithLink.ts function getErrorMessageWithLink({ version, platform: platform2, title, description, engineVersion, database, query: query2 }) { const gotLogs = getLogs(6e3 - (query2?.length ?? 0)); const logs = normalizeLogs((0, import_strip_ansi.default)(gotLogs)); const moreInfo = description ? `# Description \`\`\` ${description} \`\`\`` : ""; const body = (0, import_strip_ansi.default)( `Hi Prisma Team! My Prisma Client just crashed. This is the report: ## Versions | Name | Version | |-----------------|--------------------| | Node | ${process.version?.padEnd(19)}| | OS | ${platform2?.padEnd(19)}| | Prisma Client | ${version?.padEnd(19)}| | Query Engine | ${engineVersion?.padEnd(19)}| | Database | ${database?.padEnd(19)}| ${moreInfo} ## Logs \`\`\` ${logs} \`\`\` ## Client Snippet \`\`\`ts // PLEASE FILL YOUR CODE SNIPPET HERE \`\`\` ## Schema \`\`\`prisma // PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE \`\`\` ## Prisma Engine Query \`\`\` ${query2 ? maskQuery(query2) : ""} \`\`\` ` ); const url = getGitHubIssueUrl({ title, body }); return `${title} This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. ${import_chalk3.default.underline(url)} If you want the Prisma team to look into it, please open the link above \u{1F64F} To increase the chance of success, please post your schema and a snippet of how you used Prisma Client in the issue. `; } __name(getErrorMessageWithLink, "getErrorMessageWithLink"); // ../engine-core/src/common/errors/utils/prismaGraphQLToJSError.ts function prismaGraphQLToJSError({ error: error2, user_facing_error }, clientVersion2) { if (user_facing_error.error_code) { return new PrismaClientKnownRequestError(user_facing_error.message, { code: user_facing_error.error_code, clientVersion: clientVersion2, meta: user_facing_error.meta, batchRequestIdx: user_facing_error.batch_request_idx }); } return new PrismaClientUnknownRequestError(error2, { clientVersion: clientVersion2, batchRequestIdx: user_facing_error.batch_request_idx }); } __name(prismaGraphQLToJSError, "prismaGraphQLToJSError"); // ../engine-core/src/common/utils/printGeneratorConfig.ts var import_indent_string = __toESM(require_indent_string()); function printGeneratorConfig(config2) { return String(new GeneratorConfigClass(config2)); } __name(printGeneratorConfig, "printGeneratorConfig"); var GeneratorConfigClass = class { constructor(config2) { this.config = config2; } toString() { const { config: config2 } = this; const provider = config2.provider.fromEnvVar ? `env("${config2.provider.fromEnvVar}")` : config2.provider.value; const obj = JSON.parse( JSON.stringify({ provider, binaryTargets: getOriginalBinaryTargetsValue(config2.binaryTargets) }) ); return `generator ${config2.name} { ${(0, import_indent_string.default)(printDatamodelObject(obj), 2)} }`; } }; __name(GeneratorConfigClass, "GeneratorConfigClass"); function getOriginalBinaryTargetsValue(binaryTargets) { let value; if (binaryTargets.length > 0) { const binaryTargetsFromEnvVar = binaryTargets.find((object) => object.fromEnvVar !== null); if (binaryTargetsFromEnvVar) { value = `env("${binaryTargetsFromEnvVar.fromEnvVar}")`; } else { value = binaryTargets.map((object) => object.value); } } else { value = void 0; } return value; } __name(getOriginalBinaryTargetsValue, "getOriginalBinaryTargetsValue"); function printDatamodelObject(obj) { const maxLength = Object.keys(obj).reduce((max2, curr) => Math.max(max2, curr.length), 0); return Object.entries(obj).map(([key, value]) => `${key.padEnd(maxLength)} = ${niceStringify(value)}`).join("\n"); } __name(printDatamodelObject, "printDatamodelObject"); function niceStringify(value) { return JSON.parse( JSON.stringify(value, (_, value2) => { if (Array.isArray(value2)) { return `[${value2.map((element) => JSON.stringify(element)).join(", ")}]`; } return JSON.stringify(value2); }) ); } __name(niceStringify, "niceStringify"); // ../engine-core/src/tools/byline.ts var import_stream = __toESM(require("stream")); var import_util3 = __toESM(require("util")); function byline(readStream, options) { return createStream(readStream, options); } __name(byline, "byline"); function createStream(readStream, options) { if (readStream) { return createLineStream(readStream, options); } else { return new LineStream(options); } } __name(createStream, "createStream"); function createLineStream(readStream, options) { if (!readStream) { throw new Error("expected readStream"); } if (!readStream.readable) { throw new Error("readStream must be readable"); } const ls = new LineStream(options); readStream.pipe(ls); return ls; } __name(createLineStream, "createLineStream"); function LineStream(options) { import_stream.default.Transform.call(this, options); options = options || {}; this._readableState.objectMode = true; this._lineBuffer = []; this._keepEmptyLines = options.keepEmptyLines || false; this._lastChunkEndedWithCR = false; this.on("pipe", function(src) { if (!this.encoding) { if (src instanceof import_stream.default.Readable) { this.encoding = src._readableState.encoding; } } }); } __name(LineStream, "LineStream"); import_util3.default.inherits(LineStream, import_stream.default.Transform); LineStream.prototype._transform = function(chunk, encoding, done) { encoding = encoding || "utf8"; if (Buffer.isBuffer(chunk)) { if (encoding == "buffer") { chunk = chunk.toString(); encoding = "utf8"; } else { chunk = chunk.toString(encoding); } } this._chunkEncoding = encoding; const lines = chunk.split(/\r\n|\r|\n/g); if (this._lastChunkEndedWithCR && chunk[0] == "\n") { lines.shift(); } if (this._lineBuffer.length > 0) { this._lineBuffer[this._lineBuffer.length - 1] += lines[0]; lines.shift(); } this._lastChunkEndedWithCR = chunk[chunk.length - 1] == "\r"; this._lineBuffer = this._lineBuffer.concat(lines); this._pushBuffer(encoding, 1, done); }; LineStream.prototype._pushBuffer = function(encoding, keep, done) { while (this._lineBuffer.length > keep) { const line = this._lineBuffer.shift(); if (this._keepEmptyLines || line.length > 0) { if (!this.push(this._reencode(line, encoding))) { const self2 = this; setImmediate(function() { self2._pushBuffer(encoding, keep, done); }); return; } } } done(); }; LineStream.prototype._flush = function(done) { this._pushBuffer(this._chunkEncoding, 0, done); }; LineStream.prototype._reencode = function(line, chunkEncoding) { if (this.encoding && this.encoding != chunkEncoding) { return Buffer.from(line, chunkEncoding).toString(this.encoding); } else if (this.encoding) { return line; } else { return Buffer.from(line, chunkEncoding); } }; // ../engine-core/src/tools/omit.ts function omit(obj, keys2) { return Object.keys(obj).filter((key) => !keys2.includes(key)).reduce((result, key) => { result[key] = obj[key]; return result; }, {}); } __name(omit, "omit"); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js var _globalThis = typeof globalThis === "object" ? globalThis : global; // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/version.js var VERSION = "1.3.0"; // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/internal/semver.js var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/; function _makeCompatibilityCheck(ownVersion) { var acceptedVersions = /* @__PURE__ */ new Set([ownVersion]); var rejectedVersions = /* @__PURE__ */ new Set(); var myVersionMatch = ownVersion.match(re); if (!myVersionMatch) { return function() { return false; }; } var ownVersionParsed = { major: +myVersionMatch[1], minor: +myVersionMatch[2], patch: +myVersionMatch[3], prerelease: myVersionMatch[4] }; if (ownVersionParsed.prerelease != null) { return /* @__PURE__ */ __name(function isExactmatch(globalVersion) { return globalVersion === ownVersion; }, "isExactmatch"); } function _reject(v) { rejectedVersions.add(v); return false; } __name(_reject, "_reject"); function _accept(v) { acceptedVersions.add(v); return true; } __name(_accept, "_accept"); return /* @__PURE__ */ __name(function isCompatible2(globalVersion) { if (acceptedVersions.has(globalVersion)) { return true; } if (rejectedVersions.has(globalVersion)) { return false; } var globalVersionMatch = globalVersion.match(re); if (!globalVersionMatch) { return _reject(globalVersion); } var globalVersionParsed = { major: +globalVersionMatch[1], minor: +globalVersionMatch[2], patch: +globalVersionMatch[3], prerelease: globalVersionMatch[4] }; if (globalVersionParsed.prerelease != null) { return _reject(globalVersion); } if (ownVersionParsed.major !== globalVersionParsed.major) { return _reject(globalVersion); } if (ownVersionParsed.major === 0) { if (ownVersionParsed.minor === globalVersionParsed.minor && ownVersionParsed.patch <= globalVersionParsed.patch) { return _accept(globalVersion); } return _reject(globalVersion); } if (ownVersionParsed.minor <= globalVersionParsed.minor) { return _accept(globalVersion); } return _reject(globalVersion); }, "isCompatible"); } __name(_makeCompatibilityCheck, "_makeCompatibilityCheck"); var isCompatible = _makeCompatibilityCheck(VERSION); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js var major = VERSION.split(".")[0]; var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("opentelemetry.js.api." + major); var _global = _globalThis; function registerGlobal(type, instance, diag2, allowOverride) { var _a; if (allowOverride === void 0) { allowOverride = false; } var api = _global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : { version: VERSION }; if (!allowOverride && api[type]) { var err = new Error("@opentelemetry/api: Attempted duplicate registration of API: " + type); diag2.error(err.stack || err.message); return false; } if (api.version !== VERSION) { var err = new Error("@opentelemetry/api: All API registration versions must match"); diag2.error(err.stack || err.message); return false; } api[type] = instance; diag2.debug("@opentelemetry/api: Registered a global for " + type + " v" + VERSION + "."); return true; } __name(registerGlobal, "registerGlobal"); function getGlobal(type) { var _a, _b; var globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version; if (!globalVersion || !isCompatible(globalVersion)) { return; } return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type]; } __name(getGlobal, "getGlobal"); function unregisterGlobal(type, diag2) { diag2.debug("@opentelemetry/api: Unregistering a global for " + type + " v" + VERSION + "."); var api = _global[GLOBAL_OPENTELEMETRY_API_KEY]; if (api) { delete api[type]; } } __name(unregisterGlobal, "unregisterGlobal"); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js var __read = function(o2, n2) { var m2 = typeof Symbol === "function" && o2[Symbol.iterator]; if (!m2) return o2; var i = m2.call(o2), r2, ar = [], e2; try { while ((n2 === void 0 || n2-- > 0) && !(r2 = i.next()).done) ar.push(r2.value); } catch (error2) { e2 = { error: error2 }; } finally { try { if (r2 && !r2.done && (m2 = i["return"])) m2.call(i); } finally { if (e2) throw e2.error; } } return ar; }; var __spreadArray = function(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var DiagComponentLogger = function() { function DiagComponentLogger2(props) { this._namespace = props.namespace || "DiagComponentLogger"; } __name(DiagComponentLogger2, "DiagComponentLogger"); DiagComponentLogger2.prototype.debug = function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return logProxy("debug", this._namespace, args); }; DiagComponentLogger2.prototype.error = function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return logProxy("error", this._namespace, args); }; DiagComponentLogger2.prototype.info = function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return logProxy("info", this._namespace, args); }; DiagComponentLogger2.prototype.warn = function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return logProxy("warn", this._namespace, args); }; DiagComponentLogger2.prototype.verbose = function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return logProxy("verbose", this._namespace, args); }; return DiagComponentLogger2; }(); function logProxy(funcName, namespace, args) { var logger2 = getGlobal("diag"); if (!logger2) { return; } args.unshift(namespace); return logger2[funcName].apply(logger2, __spreadArray([], __read(args), false)); } __name(logProxy, "logProxy"); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/diag/types.js var DiagLogLevel; (function(DiagLogLevel2) { DiagLogLevel2[DiagLogLevel2["NONE"] = 0] = "NONE"; DiagLogLevel2[DiagLogLevel2["ERROR"] = 30] = "ERROR"; DiagLogLevel2[DiagLogLevel2["WARN"] = 50] = "WARN"; DiagLogLevel2[DiagLogLevel2["INFO"] = 60] = "INFO"; DiagLogLevel2[DiagLogLevel2["DEBUG"] = 70] = "DEBUG"; DiagLogLevel2[DiagLogLevel2["VERBOSE"] = 80] = "VERBOSE"; DiagLogLevel2[DiagLogLevel2["ALL"] = 9999] = "ALL"; })(DiagLogLevel || (DiagLogLevel = {})); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js function createLogLevelDiagLogger(maxLevel, logger2) { if (maxLevel < DiagLogLevel.NONE) { maxLevel = DiagLogLevel.NONE; } else if (maxLevel > DiagLogLevel.ALL) { maxLevel = DiagLogLevel.ALL; } logger2 = logger2 || {}; function _filterFunc(funcName, theLevel) { var theFunc = logger2[funcName]; if (typeof theFunc === "function" && maxLevel >= theLevel) { return theFunc.bind(logger2); } return function() { }; } __name(_filterFunc, "_filterFunc"); return { error: _filterFunc("error", DiagLogLevel.ERROR), warn: _filterFunc("warn", DiagLogLevel.WARN), info: _filterFunc("info", DiagLogLevel.INFO), debug: _filterFunc("debug", DiagLogLevel.DEBUG), verbose: _filterFunc("verbose", DiagLogLevel.VERBOSE) }; } __name(createLogLevelDiagLogger, "createLogLevelDiagLogger"); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/api/diag.js var __read2 = function(o2, n2) { var m2 = typeof Symbol === "function" && o2[Symbol.iterator]; if (!m2) return o2; var i = m2.call(o2), r2, ar = [], e2; try { while ((n2 === void 0 || n2-- > 0) && !(r2 = i.next()).done) ar.push(r2.value); } catch (error2) { e2 = { error: error2 }; } finally { try { if (r2 && !r2.done && (m2 = i["return"])) m2.call(i); } finally { if (e2) throw e2.error; } } return ar; }; var __spreadArray2 = function(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var API_NAME = "diag"; var DiagAPI = function() { function DiagAPI2() { function _logProxy(funcName) { return function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var logger2 = getGlobal("diag"); if (!logger2) return; return logger2[funcName].apply(logger2, __spreadArray2([], __read2(args), false)); }; } __name(_logProxy, "_logProxy"); var self2 = this; var setLogger = /* @__PURE__ */ __name(function(logger2, optionsOrLogLevel) { var _a, _b, _c; if (optionsOrLogLevel === void 0) { optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }; } if (logger2 === self2) { var err = new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation"); self2.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message); return false; } if (typeof optionsOrLogLevel === "number") { optionsOrLogLevel = { logLevel: optionsOrLogLevel }; } var oldLogger = getGlobal("diag"); var newLogger = createLogLevelDiagLogger((_b = optionsOrLogLevel.logLevel) !== null && _b !== void 0 ? _b : DiagLogLevel.INFO, logger2); if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) { var stack = (_c = new Error().stack) !== null && _c !== void 0 ? _c : ""; oldLogger.warn("Current logger will be overwritten from " + stack); newLogger.warn("Current logger will overwrite one already registered from " + stack); } return registerGlobal("diag", newLogger, self2, true); }, "setLogger"); self2.setLogger = setLogger; self2.disable = function() { unregisterGlobal(API_NAME, self2); }; self2.createComponentLogger = function(options) { return new DiagComponentLogger(options); }; self2.verbose = _logProxy("verbose"); self2.debug = _logProxy("debug"); self2.info = _logProxy("info"); self2.warn = _logProxy("warn"); self2.error = _logProxy("error"); } __name(DiagAPI2, "DiagAPI"); DiagAPI2.instance = function() { if (!this._instance) { this._instance = new DiagAPI2(); } return this._instance; }; return DiagAPI2; }(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/context/context.js function createContextKey(description) { return Symbol.for(description); } __name(createContextKey, "createContextKey"); var BaseContext = function() { function BaseContext2(parentContext) { var self2 = this; self2._currentContext = parentContext ? new Map(parentContext) : /* @__PURE__ */ new Map(); self2.getValue = function(key) { return self2._currentContext.get(key); }; self2.setValue = function(key, value) { var context2 = new BaseContext2(self2._currentContext); context2._currentContext.set(key, value); return context2; }; self2.deleteValue = function(key) { var context2 = new BaseContext2(self2._currentContext); context2._currentContext.delete(key); return context2; }; } __name(BaseContext2, "BaseContext"); return BaseContext2; }(); var ROOT_CONTEXT = new BaseContext(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js var __read3 = function(o2, n2) { var m2 = typeof Symbol === "function" && o2[Symbol.iterator]; if (!m2) return o2; var i = m2.call(o2), r2, ar = [], e2; try { while ((n2 === void 0 || n2-- > 0) && !(r2 = i.next()).done) ar.push(r2.value); } catch (error2) { e2 = { error: error2 }; } finally { try { if (r2 && !r2.done && (m2 = i["return"])) m2.call(i); } finally { if (e2) throw e2.error; } } return ar; }; var __spreadArray3 = function(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var NoopContextManager = function() { function NoopContextManager2() { } __name(NoopContextManager2, "NoopContextManager"); NoopContextManager2.prototype.active = function() { return ROOT_CONTEXT; }; NoopContextManager2.prototype.with = function(_context, fn, thisArg) { var args = []; for (var _i = 3; _i < arguments.length; _i++) { args[_i - 3] = arguments[_i]; } return fn.call.apply(fn, __spreadArray3([thisArg], __read3(args), false)); }; NoopContextManager2.prototype.bind = function(_context, target) { return target; }; NoopContextManager2.prototype.enable = function() { return this; }; NoopContextManager2.prototype.disable = function() { return this; }; return NoopContextManager2; }(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/api/context.js var __read4 = function(o2, n2) { var m2 = typeof Symbol === "function" && o2[Symbol.iterator]; if (!m2) return o2; var i = m2.call(o2), r2, ar = [], e2; try { while ((n2 === void 0 || n2-- > 0) && !(r2 = i.next()).done) ar.push(r2.value); } catch (error2) { e2 = { error: error2 }; } finally { try { if (r2 && !r2.done && (m2 = i["return"])) m2.call(i); } finally { if (e2) throw e2.error; } } return ar; }; var __spreadArray4 = function(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var API_NAME2 = "context"; var NOOP_CONTEXT_MANAGER = new NoopContextManager(); var ContextAPI = function() { function ContextAPI2() { } __name(ContextAPI2, "ContextAPI"); ContextAPI2.getInstance = function() { if (!this._instance) { this._instance = new ContextAPI2(); } return this._instance; }; ContextAPI2.prototype.setGlobalContextManager = function(contextManager) { return registerGlobal(API_NAME2, contextManager, DiagAPI.instance()); }; ContextAPI2.prototype.active = function() { return this._getContextManager().active(); }; ContextAPI2.prototype.with = function(context2, fn, thisArg) { var _a; var args = []; for (var _i = 3; _i < arguments.length; _i++) { args[_i - 3] = arguments[_i]; } return (_a = this._getContextManager()).with.apply(_a, __spreadArray4([context2, fn, thisArg], __read4(args), false)); }; ContextAPI2.prototype.bind = function(context2, target) { return this._getContextManager().bind(context2, target); }; ContextAPI2.prototype._getContextManager = function() { return getGlobal(API_NAME2) || NOOP_CONTEXT_MANAGER; }; ContextAPI2.prototype.disable = function() { this._getContextManager().disable(); unregisterGlobal(API_NAME2, DiagAPI.instance()); }; return ContextAPI2; }(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js var TraceFlags; (function(TraceFlags2) { TraceFlags2[TraceFlags2["NONE"] = 0] = "NONE"; TraceFlags2[TraceFlags2["SAMPLED"] = 1] = "SAMPLED"; })(TraceFlags || (TraceFlags = {})); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js var INVALID_SPANID = "0000000000000000"; var INVALID_TRACEID = "00000000000000000000000000000000"; var INVALID_SPAN_CONTEXT = { traceId: INVALID_TRACEID, spanId: INVALID_SPANID, traceFlags: TraceFlags.NONE }; // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js var NonRecordingSpan = function() { function NonRecordingSpan2(_spanContext) { if (_spanContext === void 0) { _spanContext = INVALID_SPAN_CONTEXT; } this._spanContext = _spanContext; } __name(NonRecordingSpan2, "NonRecordingSpan"); NonRecordingSpan2.prototype.spanContext = function() { return this._spanContext; }; NonRecordingSpan2.prototype.setAttribute = function(_key, _value) { return this; }; NonRecordingSpan2.prototype.setAttributes = function(_attributes) { return this; }; NonRecordingSpan2.prototype.addEvent = function(_name, _attributes) { return this; }; NonRecordingSpan2.prototype.setStatus = function(_status) { return this; }; NonRecordingSpan2.prototype.updateName = function(_name) { return this; }; NonRecordingSpan2.prototype.end = function(_endTime) { }; NonRecordingSpan2.prototype.isRecording = function() { return false; }; NonRecordingSpan2.prototype.recordException = function(_exception, _time) { }; return NonRecordingSpan2; }(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js var SPAN_KEY = createContextKey("OpenTelemetry Context Key SPAN"); function getSpan(context2) { return context2.getValue(SPAN_KEY) || void 0; } __name(getSpan, "getSpan"); function getActiveSpan() { return getSpan(ContextAPI.getInstance().active()); } __name(getActiveSpan, "getActiveSpan"); function setSpan(context2, span) { return context2.setValue(SPAN_KEY, span); } __name(setSpan, "setSpan"); function deleteSpan(context2) { return context2.deleteValue(SPAN_KEY); } __name(deleteSpan, "deleteSpan"); function setSpanContext(context2, spanContext) { return setSpan(context2, new NonRecordingSpan(spanContext)); } __name(setSpanContext, "setSpanContext"); function getSpanContext(context2) { var _a; return (_a = getSpan(context2)) === null || _a === void 0 ? void 0 : _a.spanContext(); } __name(getSpanContext, "getSpanContext"); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i; var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i; function isValidTraceId(traceId) { return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID; } __name(isValidTraceId, "isValidTraceId"); function isValidSpanId(spanId) { return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID; } __name(isValidSpanId, "isValidSpanId"); function isSpanContextValid(spanContext) { return isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId); } __name(isSpanContextValid, "isSpanContextValid"); function wrapSpanContext(spanContext) { return new NonRecordingSpan(spanContext); } __name(wrapSpanContext, "wrapSpanContext"); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js var contextApi = ContextAPI.getInstance(); var NoopTracer = function() { function NoopTracer2() { } __name(NoopTracer2, "NoopTracer"); NoopTracer2.prototype.startSpan = function(name, options, context2) { var root = Boolean(options === null || options === void 0 ? void 0 : options.root); if (root) { return new NonRecordingSpan(); } var parentFromContext = context2 && getSpanContext(context2); if (isSpanContext(parentFromContext) && isSpanContextValid(parentFromContext)) { return new NonRecordingSpan(parentFromContext); } else { return new NonRecordingSpan(); } }; NoopTracer2.prototype.startActiveSpan = function(name, arg2, arg3, arg4) { var opts; var ctx; var fn; if (arguments.length < 2) { return; } else if (arguments.length === 2) { fn = arg2; } else if (arguments.length === 3) { opts = arg2; fn = arg3; } else { opts = arg2; ctx = arg3; fn = arg4; } var parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active(); var span = this.startSpan(name, opts, parentContext); var contextWithSpanSet = setSpan(parentContext, span); return contextApi.with(contextWithSpanSet, fn, void 0, span); }; return NoopTracer2; }(); function isSpanContext(spanContext) { return typeof spanContext === "object" && typeof spanContext["spanId"] === "string" && typeof spanContext["traceId"] === "string" && typeof spanContext["traceFlags"] === "number"; } __name(isSpanContext, "isSpanContext"); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js var NOOP_TRACER = new NoopTracer(); var ProxyTracer = function() { function ProxyTracer2(_provider, name, version, options) { this._provider = _provider; this.name = name; this.version = version; this.options = options; } __name(ProxyTracer2, "ProxyTracer"); ProxyTracer2.prototype.startSpan = function(name, options, context2) { return this._getTracer().startSpan(name, options, context2); }; ProxyTracer2.prototype.startActiveSpan = function(_name, _options, _context, _fn) { var tracer = this._getTracer(); return Reflect.apply(tracer.startActiveSpan, tracer, arguments); }; ProxyTracer2.prototype._getTracer = function() { if (this._delegate) { return this._delegate; } var tracer = this._provider.getDelegateTracer(this.name, this.version, this.options); if (!tracer) { return NOOP_TRACER; } this._delegate = tracer; return this._delegate; }; return ProxyTracer2; }(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js var NoopTracerProvider = function() { function NoopTracerProvider2() { } __name(NoopTracerProvider2, "NoopTracerProvider"); NoopTracerProvider2.prototype.getTracer = function(_name, _version, _options) { return new NoopTracer(); }; return NoopTracerProvider2; }(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js var NOOP_TRACER_PROVIDER = new NoopTracerProvider(); var ProxyTracerProvider = function() { function ProxyTracerProvider2() { } __name(ProxyTracerProvider2, "ProxyTracerProvider"); ProxyTracerProvider2.prototype.getTracer = function(name, version, options) { var _a; return (_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer(this, name, version, options); }; ProxyTracerProvider2.prototype.getDelegate = function() { var _a; return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER; }; ProxyTracerProvider2.prototype.setDelegate = function(delegate) { this._delegate = delegate; }; ProxyTracerProvider2.prototype.getDelegateTracer = function(name, version, options) { var _a; return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options); }; return ProxyTracerProvider2; }(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js var SpanKind; (function(SpanKind2) { SpanKind2[SpanKind2["INTERNAL"] = 0] = "INTERNAL"; SpanKind2[SpanKind2["SERVER"] = 1] = "SERVER"; SpanKind2[SpanKind2["CLIENT"] = 2] = "CLIENT"; SpanKind2[SpanKind2["PRODUCER"] = 3] = "PRODUCER"; SpanKind2[SpanKind2["CONSUMER"] = 4] = "CONSUMER"; })(SpanKind || (SpanKind = {})); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace/status.js var SpanStatusCode; (function(SpanStatusCode2) { SpanStatusCode2[SpanStatusCode2["UNSET"] = 0] = "UNSET"; SpanStatusCode2[SpanStatusCode2["OK"] = 1] = "OK"; SpanStatusCode2[SpanStatusCode2["ERROR"] = 2] = "ERROR"; })(SpanStatusCode || (SpanStatusCode = {})); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/context-api.js var context = ContextAPI.getInstance(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/diag-api.js var diag = DiagAPI.instance(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/api/trace.js var API_NAME3 = "trace"; var TraceAPI = function() { function TraceAPI2() { this._proxyTracerProvider = new ProxyTracerProvider(); this.wrapSpanContext = wrapSpanContext; this.isSpanContextValid = isSpanContextValid; this.deleteSpan = deleteSpan; this.getSpan = getSpan; this.getActiveSpan = getActiveSpan; this.getSpanContext = getSpanContext; this.setSpan = setSpan; this.setSpanContext = setSpanContext; } __name(TraceAPI2, "TraceAPI"); TraceAPI2.getInstance = function() { if (!this._instance) { this._instance = new TraceAPI2(); } return this._instance; }; TraceAPI2.prototype.setGlobalTracerProvider = function(provider) { var success = registerGlobal(API_NAME3, this._proxyTracerProvider, DiagAPI.instance()); if (success) { this._proxyTracerProvider.setDelegate(provider); } return success; }; TraceAPI2.prototype.getTracerProvider = function() { return getGlobal(API_NAME3) || this._proxyTracerProvider; }; TraceAPI2.prototype.getTracer = function(name, version) { return this.getTracerProvider().getTracer(name, version); }; TraceAPI2.prototype.disable = function() { unregisterGlobal(API_NAME3, DiagAPI.instance()); this._proxyTracerProvider = new ProxyTracerProvider(); }; return TraceAPI2; }(); // ../../node_modules/.pnpm/@opentelemetry+api@1.3.0/node_modules/@opentelemetry/api/build/esm/trace-api.js var trace = TraceAPI.getInstance(); // ../../node_modules/.pnpm/@opentelemetry+core@1.8.0_@opentelemetry+api@1.3.0/node_modules/@opentelemetry/core/build/esm/common/attributes.js var __values = function(o2) { var s = typeof Symbol === "function" && Symbol.iterator, m2 = s && o2[s], i = 0; if (m2) return m2.call(o2); if (o2 && typeof o2.length === "number") return { next: function() { if (o2 && i >= o2.length) o2 = void 0; return { value: o2 && o2[i++], done: !o2 }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; var __read5 = function(o2, n2) { var m2 = typeof Symbol === "function" && o2[Symbol.iterator]; if (!m2) return o2; var i = m2.call(o2), r2, ar = [], e2; try { while ((n2 === void 0 || n2-- > 0) && !(r2 = i.next()).done) ar.push(r2.value); } catch (error2) { e2 = { error: error2 }; } finally { try { if (r2 && !r2.done && (m2 = i["return"])) m2.call(i); } finally { if (e2) throw e2.error; } } return ar; }; function sanitizeAttributes(attributes) { var e_1, _a; var out = {}; if (typeof attributes !== "object" || attributes == null) { return out; } try { for (var _b = __values(Object.entries(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) { var _d = __read5(_c.value, 2), key = _d[0], val = _d[1]; if (!isAttributeKey(key)) { diag.warn("Invalid attribute key: " + key); continue; } if (!isAttributeValue(val)) { diag.warn("Invalid attribute value set for key: " + key); continue; } if (Array.isArray(val)) { out[key] = val.slice(); } else { out[key] = val; } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } return out; } __name(sanitizeAttributes, "sanitizeAttributes"); function isAttributeKey(key) { return typeof key === "string" && key.length > 0; } __name(isAttributeKey, "isAttributeKey"); function isAttributeValue(val) { if (val == null) { return true; } if (Array.isArray(val)) { return isHomogeneousAttributeValueArray(val); } return isValidPrimitiveAttributeValue(val); } __name(isAttributeValue, "isAttributeValue"); function isHomogeneousAttributeValueArray(arr) { var e_2, _a; var type; try { for (var arr_1 = __values(arr), arr_1_1 = arr_1.next(); !arr_1_1.done; arr_1_1 = arr_1.next()) { var element = arr_1_1.value; if (element == null) continue; if (!type) { if (isValidPrimitiveAttributeValue(element)) { type = typeof element; continue; } return false; } if (typeof element === type) { continue; } return false; } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (arr_1_1 && !arr_1_1.done && (_a = arr_1.return)) _a.call(arr_1); } finally { if (e_2) throw e_2.error; } } return true; } __name(isHomogeneousAttributeValueArray, "isHomogeneousAttributeValueArray"); function isValidPrimitiveAttributeValue(val) { switch (typeof val) { case "number": case "boolean": case "string": return true; } return false; } __name(isValidPrimitiveAttributeValue, "isValidPrimitiveAttributeValue"); // ../../node_modules/.pnpm/@opentelemetry+core@1.8.0_@opentelemetry+api@1.3.0/node_modules/@opentelemetry/core/build/esm/platform/node/performance.js var import_perf_hooks = require("perf_hooks"); var otperformance = import_perf_hooks.performance; // ../../node_modules/.pnpm/@opentelemetry+semantic-conventions@1.8.0/node_modules/@opentelemetry/semantic-conventions/build/esm/trace/SemanticAttributes.js var SemanticAttributes = { AWS_LAMBDA_INVOKED_ARN: "aws.lambda.invoked_arn", DB_SYSTEM: "db.system", DB_CONNECTION_STRING: "db.connection_string", DB_USER: "db.user", DB_JDBC_DRIVER_CLASSNAME: "db.jdbc.driver_classname", DB_NAME: "db.name", DB_STATEMENT: "db.statement", DB_OPERATION: "db.operation", DB_MSSQL_INSTANCE_NAME: "db.mssql.instance_name", DB_CASSANDRA_KEYSPACE: "db.cassandra.keyspace", DB_CASSANDRA_PAGE_SIZE: "db.cassandra.page_size", DB_CASSANDRA_CONSISTENCY_LEVEL: "db.cassandra.consistency_level", DB_CASSANDRA_TABLE: "db.cassandra.table", DB_CASSANDRA_IDEMPOTENCE: "db.cassandra.idempotence", DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT: "db.cassandra.speculative_execution_count", DB_CASSANDRA_COORDINATOR_ID: "db.cassandra.coordinator.id", DB_CASSANDRA_COORDINATOR_DC: "db.cassandra.coordinator.dc", DB_HBASE_NAMESPACE: "db.hbase.namespace", DB_REDIS_DATABASE_INDEX: "db.redis.database_index", DB_MONGODB_COLLECTION: "db.mongodb.collection", DB_SQL_TABLE: "db.sql.table", EXCEPTION_TYPE: "exception.type", EXCEPTION_MESSAGE: "exception.message", EXCEPTION_STACKTRACE: "exception.stacktrace", EXCEPTION_ESCAPED: "exception.escaped", FAAS_TRIGGER: "faas.trigger", FAAS_EXECUTION: "faas.execution", FAAS_DOCUMENT_COLLECTION: "faas.document.collection", FAAS_DOCUMENT_OPERATION: "faas.document.operation", FAAS_DOCUMENT_TIME: "faas.document.time", FAAS_DOCUMENT_NAME: "faas.document.name", FAAS_TIME: "faas.time", FAAS_CRON: "faas.cron", FAAS_COLDSTART: "faas.coldstart", FAAS_INVOKED_NAME: "faas.invoked_name", FAAS_INVOKED_PROVIDER: "faas.invoked_provider", FAAS_INVOKED_REGION: "faas.invoked_region", NET_TRANSPORT: "net.transport", NET_PEER_IP: "net.peer.ip", NET_PEER_PORT: "net.peer.port", NET_PEER_NAME: "net.peer.name", NET_HOST_IP: "net.host.ip", NET_HOST_PORT: "net.host.port", NET_HOST_NAME: "net.host.name", NET_HOST_CONNECTION_TYPE: "net.host.connection.type", NET_HOST_CONNECTION_SUBTYPE: "net.host.connection.subtype", NET_HOST_CARRIER_NAME: "net.host.carrier.name", NET_HOST_CARRIER_MCC: "net.host.carrier.mcc", NET_HOST_CARRIER_MNC: "net.host.carrier.mnc", NET_HOST_CARRIER_ICC: "net.host.carrier.icc", PEER_SERVICE: "peer.service", ENDUSER_ID: "enduser.id", ENDUSER_ROLE: "enduser.role", ENDUSER_SCOPE: "enduser.scope", THREAD_ID: "thread.id", THREAD_NAME: "thread.name", CODE_FUNCTION: "code.function", CODE_NAMESPACE: "code.namespace", CODE_FILEPATH: "code.filepath", CODE_LINENO: "code.lineno", HTTP_METHOD: "http.method", HTTP_URL: "http.url", HTTP_TARGET: "http.target", HTTP_HOST: "http.host", HTTP_SCHEME: "http.scheme", HTTP_STATUS_CODE: "http.status_code", HTTP_FLAVOR: "http.flavor", HTTP_USER_AGENT: "http.user_agent", HTTP_REQUEST_CONTENT_LENGTH: "http.request_content_length", HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED: "http.request_content_length_uncompressed", HTTP_RESPONSE_CONTENT_LENGTH: "http.response_content_length", HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED: "http.response_content_length_uncompressed", HTTP_SERVER_NAME: "http.server_name", HTTP_ROUTE: "http.route", HTTP_CLIENT_IP: "http.client_ip", AWS_DYNAMODB_TABLE_NAMES: "aws.dynamodb.table_names", AWS_DYNAMODB_CONSUMED_CAPACITY: "aws.dynamodb.consumed_capacity", AWS_DYNAMODB_ITEM_COLLECTION_METRICS: "aws.dynamodb.item_collection_metrics", AWS_DYNAMODB_PROVISIONED_READ_CAPACITY: "aws.dynamodb.provisioned_read_capacity", AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY: "aws.dynamodb.provisioned_write_capacity", AWS_DYNAMODB_CONSISTENT_READ: "aws.dynamodb.consistent_read", AWS_DYNAMODB_PROJECTION: "aws.dynamodb.projection", AWS_DYNAMODB_LIMIT: "aws.dynamodb.limit", AWS_DYNAMODB_ATTRIBUTES_TO_GET: "aws.dynamodb.attributes_to_get", AWS_DYNAMODB_INDEX_NAME: "aws.dynamodb.index_name", AWS_DYNAMODB_SELECT: "aws.dynamodb.select", AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES: "aws.dynamodb.global_secondary_indexes", AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES: "aws.dynamodb.local_secondary_indexes", AWS_DYNAMODB_EXCLUSIVE_START_TABLE: "aws.dynamodb.exclusive_start_table", AWS_DYNAMODB_TABLE_COUNT: "aws.dynamodb.table_count", AWS_DYNAMODB_SCAN_FORWARD: "aws.dynamodb.scan_forward", AWS_DYNAMODB_SEGMENT: "aws.dynamodb.segment", AWS_DYNAMODB_TOTAL_SEGMENTS: "aws.dynamodb.total_segments", AWS_DYNAMODB_COUNT: "aws.dynamodb.count", AWS_DYNAMODB_SCANNED_COUNT: "aws.dynamodb.scanned_count", AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS: "aws.dynamodb.attribute_definitions", AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES: "aws.dynamodb.global_secondary_index_updates", MESSAGING_SYSTEM: "messaging.system", MESSAGING_DESTINATION: "messaging.destination", MESSAGING_DESTINATION_KIND: "messaging.destination_kind", MESSAGING_TEMP_DESTINATION: "messaging.temp_destination", MESSAGING_PROTOCOL: "messaging.protocol", MESSAGING_PROTOCOL_VERSION: "messaging.protocol_version", MESSAGING_URL: "messaging.url", MESSAGING_MESSAGE_ID: "messaging.message_id", MESSAGING_CONVERSATION_ID: "messaging.conversation_id", MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES: "messaging.message_payload_size_bytes", MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES: "messaging.message_payload_compressed_size_bytes", MESSAGING_OPERATION: "messaging.operation", MESSAGING_CONSUMER_ID: "messaging.consumer_id", MESSAGING_RABBITMQ_ROUTING_KEY: "messaging.rabbitmq.routing_key", MESSAGING_KAFKA_MESSAGE_KEY: "messaging.kafka.message_key", MESSAGING_KAFKA_CONSUMER_GROUP: "messaging.kafka.consumer_group", MESSAGING_KAFKA_CLIENT_ID: "messaging.kafka.client_id", MESSAGING_KAFKA_PARTITION: "messaging.kafka.partition", MESSAGING_KAFKA_TOMBSTONE: "messaging.kafka.tombstone", RPC_SYSTEM: "rpc.system", RPC_SERVICE: "rpc.service", RPC_METHOD: "rpc.method", RPC_GRPC_STATUS_CODE: "rpc.grpc.status_code", RPC_JSONRPC_VERSION: "rpc.jsonrpc.version", RPC_JSONRPC_REQUEST_ID: "rpc.jsonrpc.request_id", RPC_JSONRPC_ERROR_CODE: "rpc.jsonrpc.error_code", RPC_JSONRPC_ERROR_MESSAGE: "rpc.jsonrpc.error_message", MESSAGE_TYPE: "message.type", MESSAGE_ID: "message.id", MESSAGE_COMPRESSED_SIZE: "message.compressed_size", MESSAGE_UNCOMPRESSED_SIZE: "message.uncompressed_size" }; // ../../node_modules/.pnpm/@opentelemetry+core@1.8.0_@opentelemetry+api@1.3.0/node_modules/@opentelemetry/core/build/esm/common/time.js var NANOSECOND_DIGITS = 9; var SECOND_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS); function numberToHrtime(epochMillis) { var epochSeconds = epochMillis / 1e3; var seconds = Math.trunc(epochSeconds); var nanos = Number((epochSeconds - seconds).toFixed(NANOSECOND_DIGITS)) * SECOND_TO_NANOSECONDS; return [seconds, nanos]; } __name(numberToHrtime, "numberToHrtime"); function getTimeOrigin() { var timeOrigin = otperformance.timeOrigin; if (typeof timeOrigin !== "number") { var perf = otperformance; timeOrigin = perf.timing && perf.timing.fetchStart; } return timeOrigin; } __name(getTimeOrigin, "getTimeOrigin"); function hrTime(performanceNow) { var timeOrigin = numberToHrtime(getTimeOrigin()); var now = numberToHrtime(typeof performanceNow === "number" ? performanceNow : otperformance.now()); var seconds = timeOrigin[0] + now[0]; var nanos = timeOrigin[1] + now[1]; if (nanos > SECOND_TO_NANOSECONDS) { nanos -= SECOND_TO_NANOSECONDS; seconds += 1; } return [seconds, nanos]; } __name(hrTime, "hrTime"); function timeInputToHrTime(time) { if (isTimeInputHrTime(time)) { return time; } else if (typeof time === "number") { if (time < getTimeOrigin()) { return hrTime(time); } else { return numberToHrtime(time); } } else if (time instanceof Date) { return numberToHrtime(time.getTime()); } else { throw TypeError("Invalid input type"); } } __name(timeInputToHrTime, "timeInputToHrTime"); function hrTimeDuration(startTime, endTime) { var seconds = endTime[0] - startTime[0]; var nanos = endTime[1] - startTime[1]; if (nanos < 0) { seconds -= 1; nanos += SECOND_TO_NANOSECONDS; } return [seconds, nanos]; } __name(hrTimeDuration, "hrTimeDuration"); function isTimeInputHrTime(value) { return Array.isArray(value) && value.length === 2 && typeof value[0] === "number" && typeof value[1] === "number"; } __name(isTimeInputHrTime, "isTimeInputHrTime"); function isTimeInput(value) { return isTimeInputHrTime(value) || typeof value === "number" || value instanceof Date; } __name(isTimeInput, "isTimeInput"); // ../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.8.0_@opentelemetry+api@1.3.0/node_modules/@opentelemetry/sdk-trace-base/build/esm/enums.js var ExceptionEventName = "exception"; // ../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.8.0_@opentelemetry+api@1.3.0/node_modules/@opentelemetry/sdk-trace-base/build/esm/Span.js var __values2 = function(o2) { var s = typeof Symbol === "function" && Symbol.iterator, m2 = s && o2[s], i = 0; if (m2) return m2.call(o2); if (o2 && typeof o2.length === "number") return { next: function() { if (o2 && i >= o2.length) o2 = void 0; return { value: o2 && o2[i++], done: !o2 }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; var __read6 = function(o2, n2) { var m2 = typeof Symbol === "function" && o2[Symbol.iterator]; if (!m2) return o2; var i = m2.call(o2), r2, ar = [], e2; try { while ((n2 === void 0 || n2-- > 0) && !(r2 = i.next()).done) ar.push(r2.value); } catch (error2) { e2 = { error: error2 }; } finally { try { if (r2 && !r2.done && (m2 = i["return"])) m2.call(i); } finally { if (e2) throw e2.error; } } return ar; }; var Span = function() { function Span3(parentTracer, context2, spanName, spanContext, kind, parentSpanId, links, startTime, clock) { if (links === void 0) { links = []; } if (clock === void 0) { clock = otperformance; } this.attributes = {}; this.links = []; this.events = []; this.status = { code: SpanStatusCode.UNSET }; this.endTime = [0, 0]; this._ended = false; this._duration = [-1, -1]; this._clock = clock; this.name = spanName; this._spanContext = spanContext; this.parentSpanId = parentSpanId; this.kind = kind; this.links = links; this.startTime = timeInputToHrTime(startTime !== null && startTime !== void 0 ? startTime : clock.now()); this.resource = parentTracer.resource; this.instrumentationLibrary = parentTracer.instrumentationLibrary; this._spanLimits = parentTracer.getSpanLimits(); this._spanProcessor = parentTracer.getActiveSpanProcessor(); this._spanProcessor.onStart(this, context2); this._attributeValueLengthLimit = this._spanLimits.attributeValueLengthLimit || 0; } __name(Span3, "Span"); Span3.prototype.spanContext = function() { return this._spanContext; }; Span3.prototype.setAttribute = function(key, value) { if (value == null || this._isSpanEnded()) return this; if (key.length === 0) { diag.warn("Invalid attribute key: " + key); return this; } if (!isAttributeValue(value)) { diag.warn("Invalid attribute value set for key: " + key); return this; } if (Object.keys(this.attributes).length >= this._spanLimits.attributeCountLimit && !Object.prototype.hasOwnProperty.call(this.attributes, key)) { return this; } this.attributes[key] = this._truncateToSize(value); return this; }; Span3.prototype.setAttributes = function(attributes) { var e_1, _a; try { for (var _b = __values2(Object.entries(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) { var _d = __read6(_c.value, 2), k = _d[0], v = _d[1]; this.setAttribute(k, v); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } return this; }; Span3.prototype.addEvent = function(name, attributesOrStartTime, startTime) { if (this._isSpanEnded()) return this; if (this._spanLimits.eventCountLimit === 0) { diag.warn("No events allowed."); return this; } if (this.events.length >= this._spanLimits.eventCountLimit) { diag.warn("Dropping extra events."); this.events.shift(); } if (isTimeInput(attributesOrStartTime)) { if (typeof startTime === "undefined") { startTime = attributesOrStartTime; } attributesOrStartTime = void 0; } if (typeof startTime === "undefined") { startTime = this._clock.now(); } var attributes = sanitizeAttributes(attributesOrStartTime); this.events.push({ name, attributes, time: timeInputToHrTime(startTime) }); return this; }; Span3.prototype.setStatus = function(status) { if (this._isSpanEnded()) return this; this.status = status; return this; }; Span3.prototype.updateName = function(name) { if (this._isSpanEnded()) return this; this.name = name; return this; }; Span3.prototype.end = function(endTime) { if (this._isSpanEnded()) { diag.error("You can only call end() on a span once."); return; } this._ended = true; this.endTime = timeInputToHrTime(endTime !== null && endTime !== void 0 ? endTime : this._clock.now()); this._duration = hrTimeDuration(this.startTime, this.endTime); if (this._duration[0] < 0) { diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.", this.startTime, this.endTime); this.endTime = this.startTime.slice(); this._duration = [0, 0]; } this._spanProcessor.onEnd(this); }; Span3.prototype.isRecording = function() { return this._ended === false; }; Span3.prototype.recordException = function(exception, time) { if (time === void 0) { time = this._clock.now(); } var attributes = {}; if (typeof exception === "string") { attributes[SemanticAttributes.EXCEPTION_MESSAGE] = exception; } else if (exception) { if (exception.code) { attributes[SemanticAttributes.EXCEPTION_TYPE] = exception.code.toString(); } else if (exception.name) { attributes[SemanticAttributes.EXCEPTION_TYPE] = exception.name; } if (exception.message) { attributes[SemanticAttributes.EXCEPTION_MESSAGE] = exception.message; } if (exception.stack) { attributes[SemanticAttributes.EXCEPTION_STACKTRACE] = exception.stack; } } if (attributes[SemanticAttributes.EXCEPTION_TYPE] || attributes[SemanticAttributes.EXCEPTION_MESSAGE]) { this.addEvent(ExceptionEventName, attributes, time); } else { diag.warn("Failed to record an exception " + exception); } }; Object.defineProperty(Span3.prototype, "duration", { get: function() { return this._duration; }, enumerable: false, configurable: true }); Object.defineProperty(Span3.prototype, "ended", { get: function() { return this._ended; }, enumerable: false, configurable: true }); Span3.prototype._isSpanEnded = function() { if (this._ended) { diag.warn("Can not execute the operation on ended Span {traceId: " + this._spanContext.traceId + ", spanId: " + this._spanContext.spanId + "}"); } return this._ended; }; Span3.prototype._truncateToLimitUtil = function(value, limit) { if (value.length <= limit) { return value; } return value.substr(0, limit); }; Span3.prototype._truncateToSize = function(value) { var _this = this; var limit = this._attributeValueLengthLimit; if (limit <= 0) { diag.warn("Attribute value limit must be positive, got " + limit); return value; } if (typeof value === "string") { return this._truncateToLimitUtil(value, limit); } if (Array.isArray(value)) { return value.map(function(val) { return typeof val === "string" ? _this._truncateToLimitUtil(val, limit) : val; }); } return value; }; return Span3; }(); // ../engine-core/src/tracing/createSpan.ts async function createSpan(engineSpanEvent) { await new Promise((res) => setTimeout(res, 0)); const tracer = trace.getTracer("prisma"); engineSpanEvent.spans.forEach((engineSpan) => { const spanContext = { traceId: engineSpan.trace_id, spanId: engineSpan.span_id, traceFlags: TraceFlags.SAMPLED }; const links = engineSpan.links?.map((link) => { return { context: { traceId: link.trace_id, spanId: link.span_id, traceFlags: TraceFlags.SAMPLED } }; }); const span = new Span( tracer, ROOT_CONTEXT, engineSpan.name, spanContext, SpanKind.INTERNAL, engineSpan.parent_span_id, links, engineSpan.start_time ); if (engineSpan.attributes) { span.setAttributes(engineSpan.attributes); } span.end(engineSpan.end_time); }); } __name(createSpan, "createSpan"); // ../engine-core/src/tracing/getTraceParent.ts function getTraceParent({ context: context2, tracingConfig }) { const span = trace.getSpanContext(context2 ?? context.active()); if (tracingConfig?.enabled && span) { return `00-${span.traceId}-${span.spanId}-0${span.traceFlags}`; } else { return `00-10-10-00`; } } __name(getTraceParent, "getTraceParent"); // ../engine-core/src/tracing/getTracingConfig.ts function getTracingConfig(previewFeatures) { const hasTracingPreviewFeatureFlagEnabled = previewFeatures.includes("tracing"); return { get enabled() { return Boolean(globalThis.PRISMA_INSTRUMENTATION && hasTracingPreviewFeatureFlagEnabled); }, get middleware() { return Boolean(globalThis.PRISMA_INSTRUMENTATION && globalThis.PRISMA_INSTRUMENTATION.middleware); } }; } __name(getTracingConfig, "getTracingConfig"); // ../engine-core/src/tracing/runInChildSpan.ts async function runInChildSpan(options, cb) { if (options.enabled === false) return cb(); const tracer = trace.getTracer("prisma"); const context2 = options.context ?? context.active(); if (options.active === false) { const span = tracer.startSpan(`prisma:client:${options.name}`, options, context2); try { return await cb(span, context2); } finally { span.end(); } } return tracer.startActiveSpan(`prisma:client:${options.name}`, options, context2, async (span) => { try { return await cb(span, context.active()); } finally { span.end(); } }); } __name(runInChildSpan, "runInChildSpan"); // ../engine-core/src/binary/Connection.ts var import_get_stream = __toESM(require_get_stream()); var undici = /* @__PURE__ */ __name(() => require_undici(), "undici"); function assertHasPool(pool) { if (pool === void 0) { throw new Error("Connection has not been opened"); } } __name(assertHasPool, "assertHasPool"); var Connection = class { constructor() { } static async onHttpError(response, handler) { const _response = await response; if (_response.statusCode >= 400) { return handler(_response); } return _response; } open(url, options) { if (this._pool) return; this._pool = new (undici()).Pool(url, { connections: 1e3, keepAliveMaxTimeout: 6e5, headersTimeout: 0, bodyTimeout: 0, ...options }); } async raw(method, endpoint, headers, body, parseResponse = true) { assertHasPool(this._pool); const response = await this._pool.request({ path: endpoint, method, headers: { "Content-Type": "application/json", ...headers }, body }); const bodyString = await (0, import_get_stream.default)(response.body); return { statusCode: response.statusCode, headers: response.headers, data: parseResponse ? JSON.parse(bodyString) : bodyString }; } post(endpoint, body, headers, parseResponse) { return this.raw("POST", endpoint, headers, body, parseResponse); } get(path7, headers) { return this.raw("GET", path7, headers); } close() { if (this._pool) { this._pool.close(() => { }); } this._pool = void 0; } }; __name(Connection, "Connection"); // ../engine-core/src/binary/BinaryEngine.ts var debug6 = src_default("prisma:engine"); var exists3 = (0, import_util4.promisify)(import_fs5.default.exists); var logger = /* @__PURE__ */ __name((...args) => { }, "logger"); var knownPlatforms = [...platforms, "native"]; var engines = []; var socketPaths = []; var MAX_STARTS = process.env.PRISMA_CLIENT_NO_RETRY ? 1 : 2; var MAX_REQUEST_RETRIES = process.env.PRISMA_CLIENT_NO_RETRY ? 1 : 2; var BinaryEngine = class extends Engine { constructor({ cwd, datamodelPath, prismaPath, generator, datasources, showColors, logQueries, env, flags, clientVersion: clientVersion2, previewFeatures, engineEndpoint, enableDebugLogs, allowTriggerPanic, dirname: dirname2, activeProvider, tracingConfig, logEmitter }) { super(); this.startCount = 0; this.previewFeatures = []; this.stderrLogs = ""; this.handleRequestError = /* @__PURE__ */ __name(async (error2) => { debug6({ error: error2 }); if (this.startPromise) { await this.startPromise; } const isNetworkError = [ "ECONNRESET", "ECONNREFUSED", "UND_ERR_CLOSED", "UND_ERR_SOCKET", "UND_ERR_DESTROYED", "UND_ERR_ABORTED" ].includes(error2.code); if (error2 instanceof PrismaClientKnownRequestError) { return { error: error2, shouldRetry: false }; } try { this.throwAsyncErrorIfExists(); if (this.currentRequestPromise?.isCanceled) { this.throwAsyncErrorIfExists(); } else if (isNetworkError) { if (this.globalKillSignalReceived && !this.child?.connected) { throw new PrismaClientUnknownRequestError( `The Node.js process already received a ${this.globalKillSignalReceived} signal, therefore the Prisma query engine exited and your request can't be processed. You probably have some open handle that prevents your process from exiting. It could be an open http server or stream that didn't close yet. We recommend using the \`wtfnode\` package to debug open handles.`, { clientVersion: this.clientVersion } ); } this.throwAsyncErrorIfExists(); if (this.startCount > MAX_STARTS) { for (let i = 0; i < 5; i++) { await new Promise((r2) => setTimeout(r2, 50)); this.throwAsyncErrorIfExists(true); } throw new Error(`Query engine is trying to restart, but can't. Please look into the logs or turn on the env var DEBUG=* to debug the constantly restarting query engine.`); } } this.throwAsyncErrorIfExists(true); throw error2; } catch (e2) { return { error: e2, shouldRetry: isNetworkError }; } }, "handleRequestError"); this.dirname = dirname2; this.env = env; this.cwd = this.resolveCwd(cwd); this.enableDebugLogs = enableDebugLogs ?? false; this.allowTriggerPanic = allowTriggerPanic ?? false; this.datamodelPath = datamodelPath; this.prismaPath = process.env.PRISMA_QUERY_ENGINE_BINARY ?? prismaPath; this.generator = generator; this.datasources = datasources; this.tracingConfig = tracingConfig; this.logEmitter = logEmitter; this.showColors = showColors ?? false; this.logQueries = logQueries ?? false; this.clientVersion = clientVersion2; this.flags = flags ?? []; this.previewFeatures = previewFeatures ?? []; this.activeProvider = activeProvider; this.connection = new Connection(); initHooks(); const removedFlags = [ "middlewares", "aggregateApi", "distinct", "aggregations", "insensitiveFilters", "atomicNumberOperations", "transactionApi", "transaction", "connectOrCreate", "uncheckedScalarInputs", "nativeTypes", "createMany", "groupBy", "referentialActions", "microsoftSqlServer" ]; const removedFlagsUsed = this.previewFeatures.filter((e2) => removedFlags.includes(e2)); if (removedFlagsUsed.length > 0 && !process.env.PRISMA_HIDE_PREVIEW_FLAG_WARNINGS) { console.log( `${import_chalk4.default.blueBright("info")} The preview flags \`${removedFlagsUsed.join( "`, `" )}\` were removed, you can now safely remove them from your schema.prisma.` ); } this.previewFeatures = this.previewFeatures.filter((e2) => !removedFlags.includes(e2)); this.engineEndpoint = engineEndpoint; if (engineEndpoint) { const url = new import_url.URL(engineEndpoint); this.port = Number(url.port); } if (this.platform) { if (!knownPlatforms.includes(this.platform) && !import_fs5.default.existsSync(this.platform)) { throw new PrismaClientInitializationError( `Unknown ${import_chalk4.default.red("PRISMA_QUERY_ENGINE_BINARY")} ${import_chalk4.default.redBright.bold( this.platform )}. Possible binaryTargets: ${import_chalk4.default.greenBright( knownPlatforms.join(", ") )} or a path to the query engine binary. You may have to run ${import_chalk4.default.greenBright("prisma generate")} for your changes to take effect.`, this.clientVersion ); } } else { void this.getPlatform(); } if (this.enableDebugLogs) { src_default.enable("*"); } engines.push(this); this.checkForTooManyEngines(); } setError(err) { if (isRustErrorLog(err)) { this.lastError = new PrismaClientRustError({ clientVersion: this.clientVersion, error: err }); if (this.lastError.isPanic()) { if (this.child) { this.stopPromise = killProcessAndWait(this.child); } if (this.currentRequestPromise?.cancel) { this.currentRequestPromise.cancel(); } } } } checkForTooManyEngines() { if (engines.length >= 10) { const runningEngines = engines.filter((e2) => e2.child); if (runningEngines.length === 10) { console.warn( `${import_chalk4.default.yellow("warn(prisma-client)")} There are already 10 instances of Prisma Client actively running.` ); } } } resolveCwd(cwd) { if (cwd && import_fs5.default.existsSync(cwd) && import_fs5.default.lstatSync(cwd).isDirectory()) { return cwd; } return process.cwd(); } on(event, listener) { if (event === "beforeExit") { this.beforeExitListener = listener; } else { this.logEmitter.on(event, listener); } } async emitExit() { if (this.beforeExitListener) { try { await this.beforeExitListener(); } catch (e2) { console.error(e2); } } } async getPlatform() { if (this.platformPromise) { return this.platformPromise; } this.platformPromise = getPlatform(); return this.platformPromise; } getQueryEnginePath(platform2, prefix = __dirname) { let queryEnginePath = import_path3.default.join(prefix, `query-engine-${platform2}`); if (platform2 === "windows") { queryEnginePath = `${queryEnginePath}.exe`; } return queryEnginePath; } async resolvePrismaPath() { const searchedLocations = []; let enginePath; if (this.prismaPath) { return { prismaPath: this.prismaPath, searchedLocations }; } const platform = await this.getPlatform(); if (this.platform && this.platform !== platform) { this.incorrectlyPinnedBinaryTarget = this.platform; } this.platform = this.platform || platform; if (__filename.includes("BinaryEngine")) { enginePath = this.getQueryEnginePath(this.platform, getEnginesPath()); return { prismaPath: enginePath, searchedLocations }; } const searchLocations = [ eval(`require('path').join(__dirname, '../../../.prisma/client')`), this.generator?.output?.value ?? eval("__dirname"), import_path3.default.join(eval("__dirname"), ".."), import_path3.default.dirname(this.datamodelPath), this.cwd, "/tmp/prisma-engines" ]; if (this.dirname) { searchLocations.push(this.dirname); } for (const location of searchLocations) { searchedLocations.push(location); debug6(`Search for Query Engine in ${location}`); enginePath = this.getQueryEnginePath(this.platform, location); if (import_fs5.default.existsSync(enginePath)) { return { prismaPath: enginePath, searchedLocations }; } } enginePath = this.getQueryEnginePath(this.platform); return { prismaPath: enginePath ?? "", searchedLocations }; } async getPrismaPath() { const { prismaPath, searchedLocations: searchedLocations2 } = await this.resolvePrismaPath(); const platform2 = await this.getPlatform(); if (!await exists3(prismaPath)) { const pinnedStr = this.incorrectlyPinnedBinaryTarget ? ` You incorrectly pinned it to ${import_chalk4.default.redBright.bold(`${this.incorrectlyPinnedBinaryTarget}`)} ` : ""; let errorText = `Query engine binary for current platform "${import_chalk4.default.bold( platform2 )}" could not be found.${pinnedStr} This probably happens, because you built Prisma Client on a different platform. (Prisma Client looked in "${import_chalk4.default.underline(prismaPath)}") Searched Locations: ${searchedLocations2.map((f2) => { let msg = ` ${f2}`; if (process.env.DEBUG === "node-engine-search-locations" && import_fs5.default.existsSync(f2)) { const dir = import_fs5.default.readdirSync(f2); msg += dir.map((d2) => ` ${d2}`).join("\n"); } return msg; }).join("\n" + (process.env.DEBUG === "node-engine-search-locations" ? "\n" : ""))} `; if (this.generator) { if (this.generator.binaryTargets.find((object) => object.value === this.platform) || this.generator.binaryTargets.find((object) => object.value === "native")) { errorText += ` You already added the platform${this.generator.binaryTargets.length > 1 ? "s" : ""} ${this.generator.binaryTargets.map((t2) => `"${import_chalk4.default.bold(t2.value)}"`).join(", ")} to the "${import_chalk4.default.underline("generator")}" block in the "schema.prisma" file as described in https://pris.ly/d/client-generator, but something went wrong. That's suboptimal. Please create an issue at https://github.com/prisma/prisma/issues/new`; errorText += ``; } else { errorText += ` To solve this problem, add the platform "${this.platform}" to the "${import_chalk4.default.underline( "binaryTargets" )}" attribute in the "${import_chalk4.default.underline("generator")}" block in the "schema.prisma" file: ${import_chalk4.default.greenBright(this.getFixedGenerator())} Then run "${import_chalk4.default.greenBright("prisma generate")}" for your changes to take effect. Read more about deploying Prisma Client: https://pris.ly/d/client-generator`; } } else { errorText += ` Read more about deploying Prisma Client: https://pris.ly/d/client-generator `; } throw new PrismaClientInitializationError(errorText, this.clientVersion); } if (this.incorrectlyPinnedBinaryTarget) { console.error(`${import_chalk4.default.yellow("Warning:")} You pinned the platform ${import_chalk4.default.bold( this.incorrectlyPinnedBinaryTarget )}, but Prisma Client detects ${import_chalk4.default.bold(await this.getPlatform())}. This means you should very likely pin the platform ${import_chalk4.default.greenBright(await this.getPlatform())} instead. ${import_chalk4.default.dim("In case we're mistaken, please report this to us \u{1F64F}.")}`); } if (process.platform !== "win32") { plusX(prismaPath); } return prismaPath; } getFixedGenerator() { const fixedGenerator = { ...this.generator, binaryTargets: fixBinaryTargets(this.generator.binaryTargets, this.platform) }; return printGeneratorConfig(fixedGenerator); } printDatasources() { if (this.datasources) { return JSON.stringify(this.datasources); } return "[]"; } async start() { if (this.stopPromise) { await this.stopPromise; } const startFn = /* @__PURE__ */ __name(async () => { if (!this.startPromise) { this.startCount++; this.startPromise = this.internalStart(); } await this.startPromise; if (!this.child && !this.engineEndpoint) { throw new PrismaClientUnknownRequestError(`Can't perform request, as the Engine has already been stopped`, { clientVersion: this.clientVersion }); } }, "startFn"); const spanOptions = { name: "connect", enabled: this.tracingConfig.enabled && !this.startPromise }; return runInChildSpan(spanOptions, startFn); } getEngineEnvVars() { const env = { PRISMA_DML_PATH: this.datamodelPath }; if (this.logQueries) { env.LOG_QUERIES = "true"; } if (this.datasources) { env.OVERWRITE_DATASOURCES = this.printDatasources(); } if (!process.env.NO_COLOR && this.showColors) { env.CLICOLOR_FORCE = "1"; } return { ...this.env, ...process.env, ...env, RUST_BACKTRACE: process.env.RUST_BACKTRACE ?? "1", RUST_LOG: process.env.RUST_LOG ?? "info" }; } internalStart() { return new Promise(async (resolve, reject) => { await new Promise((r2) => process.nextTick(r2)); if (this.stopPromise) { await this.stopPromise; } if (this.engineEndpoint) { try { this.connection.open(this.engineEndpoint); await (0, import_p_retry.default)(() => this.connection.get("/status"), { retries: 10 }); } catch (e2) { return reject(e2); } return resolve(); } try { if (this.child?.connected || this.child && !this.child?.killed) { debug6(`There is a child that still runs and we want to start again`); } this.lastError = void 0; logger("startin & resettin"); this.globalKillSignalReceived = void 0; debug6({ cwd: this.cwd }); const prismaPath = await this.getPrismaPath(); const additionalFlag = this.allowTriggerPanic ? ["--debug"] : []; const flags = [ "--enable-raw-queries", "--enable-metrics", "--enable-open-telemetry", ...this.flags, ...additionalFlag ]; this.port = await this.getFreePort(); flags.push("--port", String(this.port)); debug6({ flags }); const env = this.getEngineEnvVars(); this.child = (0, import_child_process2.spawn)(prismaPath, flags, { env, cwd: this.cwd, windowsHide: true, stdio: ["ignore", "pipe", "pipe"] }); byline(this.child.stderr).on("data", (msg) => { const data = String(msg); debug6("stderr", data); try { const json = JSON.parse(data); if (typeof json.is_panic !== "undefined") { debug6(json); this.setError(json); if (this.engineStartDeferred) { const err = new PrismaClientInitializationError(json.message, this.clientVersion, json.error_code); this.engineStartDeferred.reject(err); } } } catch (e2) { if (!data.includes("Printing to stderr") && !data.includes("Listening on ")) { this.stderrLogs += "\n" + data; } } }); byline(this.child.stdout).on("data", (msg) => { const data = String(msg); try { const json = JSON.parse(data); debug6("stdout", getMessage(json)); if (this.engineStartDeferred && json.level === "INFO" && json.target === "query_engine::server" && json.fields?.message?.startsWith("Started query engine http server")) { this.connection.open(`http://127.0.0.1:${this.port}`); this.engineStartDeferred.resolve(); this.engineStartDeferred = void 0; } if (typeof json.is_panic === "undefined") { if (json.span === true) { if (this.tracingConfig.enabled === true) { void createSpan(json); } return; } const log3 = convertLog(json); const logIsRustErrorLog = isRustErrorLog(log3); if (logIsRustErrorLog) { this.setError(log3); } else { this.logEmitter.emit(log3.level, log3); } } else { this.setError(json); } } catch (e2) { debug6(e2, data); } }); this.child.on("exit", (code) => { logger("removing startPromise"); this.startPromise = void 0; if (this.engineStopDeferred) { this.engineStopDeferred.resolve(code); return; } this.connection.close(); if (code !== 0 && this.engineStartDeferred && this.startCount === 1) { let err; let msg = this.stderrLogs; if (this.lastError) { msg = getMessage(this.lastError); } if (code !== null) { err = new PrismaClientInitializationError( `Query engine exited with code ${code} ` + msg, this.clientVersion ); } else if (this.child?.signalCode) { err = new PrismaClientInitializationError( `Query engine process killed with signal ${this.child.signalCode} for unknown reason. Make sure that the engine binary at ${prismaPath} is not corrupt. ` + msg, this.clientVersion ); } else { err = new PrismaClientInitializationError(msg, this.clientVersion); } this.engineStartDeferred.reject(err); } if (!this.child) { return; } if (this.lastError) { return; } if (code === 126) { this.setError({ timestamp: new Date(), target: "binary engine process exit", level: "error", fields: { message: `Couldn't start query engine as it's not executable on this operating system. You very likely have the wrong "binaryTarget" defined in the schema.prisma file.` } }); } }); this.child.on("error", (err) => { this.setError({ timestamp: new Date(), target: "binary engine process error", level: "error", fields: { message: `Couldn't start query engine: ${err}` } }); reject(err); }); this.child.on("close", (code, signal) => { this.connection.close(); let toEmit; if (code === null && signal === "SIGABRT" && this.child) { toEmit = new PrismaClientRustPanicError( this.getErrorMessageWithLink("Panic in Query Engine with SIGABRT signal"), this.clientVersion ); } else if (code === 255 && signal === null && this.lastError) { toEmit = this.lastError; } if (toEmit) { this.logEmitter.emit("error", { message: toEmit.message, timestamp: new Date(), target: "binary engine process close" }); } }); if (this.lastError) { return reject(new PrismaClientInitializationError(getMessage(this.lastError), this.clientVersion)); } try { await new Promise((resolve2, reject2) => { this.engineStartDeferred = { resolve: resolve2, reject: reject2 }; }); } catch (err) { this.child?.kill(); throw err; } void (async () => { try { const engineVersion = await this.version(true); debug6(`Client Version: ${this.clientVersion}`); debug6(`Engine Version: ${engineVersion}`); debug6(`Active provider: ${this.activeProvider}`); } catch (e2) { debug6(e2); } })(); this.stopPromise = void 0; resolve(); } catch (e2) { reject(e2); } }); } async stop() { const stopFn = /* @__PURE__ */ __name(async () => { if (!this.stopPromise) { this.stopPromise = this._stop(); } return this.stopPromise; }, "stopFn"); const spanOptions = { name: "disconnect", enabled: this.tracingConfig.enabled }; return runInChildSpan(spanOptions, stopFn); } async _stop() { if (this.startPromise) { await this.startPromise; } await new Promise((resolve) => process.nextTick(resolve)); if (this.currentRequestPromise) { try { await this.currentRequestPromise; } catch (e2) { } } this.getConfigPromise = void 0; let stopChildPromise; if (this.child) { debug6(`Stopping Prisma engine`); if (this.startPromise) { debug6(`Waiting for start promise`); await this.startPromise; } debug6(`Done waiting for start promise`); if (this.child.exitCode === null) { stopChildPromise = new Promise((resolve, reject) => { this.engineStopDeferred = { resolve, reject }; }); } else { debug6("Child already exited with code", this.child.exitCode); } this.connection.close(); this.child.kill(); this.child = void 0; } if (stopChildPromise) { await stopChildPromise; } await new Promise((r2) => process.nextTick(r2)); this.startPromise = void 0; this.engineStopDeferred = void 0; } kill(signal) { this.getConfigPromise = void 0; this.globalKillSignalReceived = signal; this.child?.kill(); this.connection.close(); } getFreePort() { return new Promise((resolve, reject) => { const server = import_net.default.createServer((s) => s.end("")); server.unref(); server.on("error", reject); server.listen(0, () => { const address = server.address(); const port = typeof address === "string" ? parseInt(address.split(":").slice(-1)[0], 10) : address.port; server.close((e2) => { if (e2) { reject(e2); } resolve(port); }); }); }); } async getConfig() { if (!this.getConfigPromise) { this.getConfigPromise = this._getConfig(); } return this.getConfigPromise; } async _getConfig() { const prismaPath = await this.getPrismaPath(); const env = await this.getEngineEnvVars(); const result = await (0, import_execa.default)(prismaPath, ["cli", "get-config"], { env: omit(env, ["PORT"]), cwd: this.cwd }); return JSON.parse(result.stdout); } async getDmmf() { if (!this.getDmmfPromise) { this.getDmmfPromise = this._getDmmf(); } return this.getDmmfPromise; } async _getDmmf() { const prismaPath = await this.getPrismaPath(); const env = await this.getEngineEnvVars(); const result = await (0, import_execa.default)(prismaPath, ["--enable-raw-queries", "cli", "dmmf"], { env: omit(env, ["PORT"]), cwd: this.cwd }); return JSON.parse(result.stdout); } async version(forceRun = false) { if (this.versionPromise && !forceRun) { return this.versionPromise; } this.versionPromise = this.internalVersion(); return this.versionPromise; } async internalVersion() { const prismaPath = await this.getPrismaPath(); const result = await (0, import_execa.default)(prismaPath, ["--version"]); this.lastVersion = result.stdout; return this.lastVersion; } async request({ query: query2, headers = {}, numTry = 1, isWrite, transaction }) { await this.start(); this.currentRequestPromise = this.connection.post("/", stringifyQuery(query2), runtimeHeadersToHttpHeaders(headers)); this.lastQuery = query2; try { const { data, headers: headers2 } = await this.currentRequestPromise; if (data.errors) { if (data.errors.length === 1) { throw prismaGraphQLToJSError(data.errors[0], this.clientVersion); } throw new PrismaClientUnknownRequestError(JSON.stringify(data.errors), { clientVersion: this.clientVersion }); } const elapsed = parseInt(headers2["x-elapsed"]) / 1e3; if (this.startCount > 0) { this.startCount = 0; } this.currentRequestPromise = void 0; return { data, elapsed }; } catch (e2) { logger("req - e", e2); const { error: error2, shouldRetry } = await this.handleRequestError(e2); if (numTry <= MAX_REQUEST_RETRIES && shouldRetry && !isWrite) { logger("trying a retry now"); return this.request({ query: query2, headers, numTry: numTry + 1, isWrite, transaction }); } throw error2; } } async requestBatch({ queries, headers = {}, transaction, numTry = 1, containsWrite }) { await this.start(); const request2 = { batch: queries.map((query2) => ({ query: query2, variables: {} })), transaction: Boolean(transaction), isolationLevel: transaction?.isolationLevel }; this.lastQuery = JSON.stringify(request2); this.currentRequestPromise = this.connection.post("/", this.lastQuery, runtimeHeadersToHttpHeaders(headers)); return this.currentRequestPromise.then(({ data, headers: headers2 }) => { const elapsed = parseInt(headers2["x-elapsed"]) / 1e3; const { batchResult, errors } = data; if (Array.isArray(batchResult)) { return batchResult.map((result) => { if (result.errors && result.errors.length > 0) { return prismaGraphQLToJSError(result.errors[0], this.clientVersion); } return { data: result, elapsed }; }); } else { throw prismaGraphQLToJSError(data.errors[0], this.clientVersion); } }).catch(async (e2) => { const { error: error2, shouldRetry } = await this.handleRequestError(e2); if (shouldRetry && !containsWrite) { if (numTry <= MAX_REQUEST_RETRIES) { return this.requestBatch({ queries, headers, transaction, numTry: numTry + 1, containsWrite }); } } throw error2; }); } async transaction(action, headers, arg2) { await this.start(); if (action === "start") { const jsonOptions = JSON.stringify({ max_wait: arg2?.maxWait ?? 2e3, timeout: arg2?.timeout ?? 5e3, isolation_level: arg2?.isolationLevel }); const result = await Connection.onHttpError( this.connection.post( "/transaction/start", jsonOptions, runtimeHeadersToHttpHeaders(headers) ), (result2) => this.transactionHttpErrorHandler(result2) ); return result.data; } else if (action === "commit") { await Connection.onHttpError( this.connection.post(`/transaction/${arg2.id}/commit`), (result) => this.transactionHttpErrorHandler(result) ); } else if (action === "rollback") { await Connection.onHttpError( this.connection.post(`/transaction/${arg2.id}/rollback`), (result) => this.transactionHttpErrorHandler(result) ); } return void 0; } get hasMaxRestarts() { return this.startCount >= MAX_STARTS; } throwAsyncErrorIfExists(forceThrow = false) { logger("throwAsyncErrorIfExists", this.startCount, this.hasMaxRestarts); if (this.lastError && (this.hasMaxRestarts || forceThrow)) { const lastError = this.lastError; this.lastError = void 0; if (lastError.isPanic()) { throw new PrismaClientRustPanicError(this.getErrorMessageWithLink(getMessage(lastError)), this.clientVersion); } else { throw new PrismaClientUnknownRequestError(this.getErrorMessageWithLink(getMessage(lastError)), { clientVersion: this.clientVersion }); } } } getErrorMessageWithLink(title) { return getErrorMessageWithLink({ platform: this.platform, title, version: this.clientVersion, engineVersion: this.lastVersion, database: this.lastActiveProvider, query: this.lastQuery }); } async metrics({ format: format2, globalLabels }) { await this.start(); const parseResponse = format2 === "json"; const response = await this.connection.post( `/metrics?format=${encodeURIComponent(format2)}`, JSON.stringify(globalLabels), null, parseResponse ); return response.data; } transactionHttpErrorHandler(result) { const response = result.data; throw new PrismaClientKnownRequestError(response.message, { code: response.error_code, clientVersion: this.clientVersion, meta: response.meta }); } }; __name(BinaryEngine, "BinaryEngine"); function stringifyQuery(q) { return `{"variables":{},"query":${JSON.stringify(q)}}`; } __name(stringifyQuery, "stringifyQuery"); function runtimeHeadersToHttpHeaders(headers) { if (headers.transactionId) { const { transactionId, ...httpHeaders } = headers; httpHeaders["X-transaction-id"] = transactionId; return httpHeaders; } return headers; } __name(runtimeHeadersToHttpHeaders, "runtimeHeadersToHttpHeaders"); function hookProcess(handler, exit = false) { process.once(handler, async () => { for (const engine of engines) { await engine.emitExit(); engine.kill(handler); } engines.splice(0, engines.length); if (socketPaths.length > 0) { for (const socketPath of socketPaths) { try { import_fs5.default.unlinkSync(socketPath); } catch (e2) { } } } if (exit && process.listenerCount(handler) === 0) { process.exit(); } }); } __name(hookProcess, "hookProcess"); var hooksInitialized = false; function initHooks() { if (!hooksInitialized) { hookProcess("beforeExit"); hookProcess("exit"); hookProcess("SIGINT", true); hookProcess("SIGUSR2", true); hookProcess("SIGTERM", true); hooksInitialized = true; } } __name(initHooks, "initHooks"); function killProcessAndWait(childProcess) { return new Promise((resolve) => { childProcess.once("exit", resolve); childProcess.kill(); }); } __name(killProcessAndWait, "killProcessAndWait"); // ../engine-core/src/common/errors/ErrorWithBatchIndex.ts function hasBatchIndex(value) { return typeof value["batchRequestIdx"] === "number"; } __name(hasBatchIndex, "hasBatchIndex"); // ../engine-core/src/common/errors/PrismaClientError.ts var PrismaClientError = class extends Error { constructor(message, info2) { super(message); this.clientVersion = info2.clientVersion; this.cause = info2.cause; } get [Symbol.toStringTag]() { return this.name; } }; __name(PrismaClientError, "PrismaClientError"); // ../engine-core/src/data-proxy/errors/DataProxyError.ts var DataProxyError = class extends PrismaClientError { constructor(message, info2) { super(message, info2); this.isRetryable = info2.isRetryable ?? true; } }; __name(DataProxyError, "DataProxyError"); // ../engine-core/src/data-proxy/errors/utils/setRetryable.ts function setRetryable(info2, retryable) { return { ...info2, isRetryable: retryable }; } __name(setRetryable, "setRetryable"); // ../engine-core/src/data-proxy/errors/ForcedRetryError.ts var ForcedRetryError = class extends DataProxyError { constructor(info2) { super("This request must be retried", setRetryable(info2, true)); this.name = "ForcedRetryError"; this.code = "P5001"; } }; __name(ForcedRetryError, "ForcedRetryError"); // ../engine-core/src/data-proxy/errors/InvalidDatasourceError.ts var InvalidDatasourceError = class extends DataProxyError { constructor(message, info2) { super(message, setRetryable(info2, false)); this.name = "InvalidDatasourceError"; this.code = "P5002"; } }; __name(InvalidDatasourceError, "InvalidDatasourceError"); // ../engine-core/src/data-proxy/errors/NotImplementedYetError.ts var NotImplementedYetError = class extends DataProxyError { constructor(message, info2) { super(message, setRetryable(info2, false)); this.name = "NotImplementedYetError"; this.code = "P5004"; } }; __name(NotImplementedYetError, "NotImplementedYetError"); // ../engine-core/src/data-proxy/errors/DataProxyAPIError.ts var DataProxyAPIError = class extends DataProxyError { constructor(message, info2) { super(message, info2); this.response = info2.response; const requestId = this.response.headers?.["Prisma-Request-Id"]; if (requestId) { const messageSuffix = `(The request id was: ${requestId})`; this.message = this.message + " " + messageSuffix; } } }; __name(DataProxyAPIError, "DataProxyAPIError"); // ../engine-core/src/data-proxy/errors/SchemaMissingError.ts var SchemaMissingError = class extends DataProxyAPIError { constructor(info2) { super("Schema needs to be uploaded", setRetryable(info2, true)); this.name = "SchemaMissingError"; this.code = "P5005"; } }; __name(SchemaMissingError, "SchemaMissingError"); // ../engine-core/src/data-proxy/errors/BadRequestError.ts var BAD_REQUEST_DEFAULT_MESSAGE = "This request could not be understood by the server"; var BadRequestError = class extends DataProxyAPIError { constructor(info2, message, code) { super(message || BAD_REQUEST_DEFAULT_MESSAGE, setRetryable(info2, false)); this.name = "BadRequestError"; this.code = "P5000"; if (code) this.code = code; } }; __name(BadRequestError, "BadRequestError"); // ../engine-core/src/data-proxy/errors/EngineHealthcheckTimeoutError.ts var HealthcheckTimeoutError = class extends DataProxyAPIError { constructor(info2, logs) { super("Engine not started: healthcheck timeout", setRetryable(info2, true)); this.name = "HealthcheckTimeoutError"; this.code = "P5013"; this.logs = logs; } }; __name(HealthcheckTimeoutError, "HealthcheckTimeoutError"); // ../engine-core/src/data-proxy/errors/EngineStartupError.ts var EngineStartupError = class extends DataProxyAPIError { constructor(info2, message, logs) { super(message, setRetryable(info2, true)); this.name = "EngineStartupError"; this.code = "P5014"; this.logs = logs; } }; __name(EngineStartupError, "EngineStartupError"); // ../engine-core/src/data-proxy/errors/EngineVersionNotSupportedError.ts var EngineVersionNotSupportedError = class extends DataProxyAPIError { constructor(info2) { super("Engine version is not supported", setRetryable(info2, false)); this.name = "EngineVersionNotSupportedError"; this.code = "P5012"; } }; __name(EngineVersionNotSupportedError, "EngineVersionNotSupportedError"); // ../engine-core/src/data-proxy/errors/GatewayTimeoutError.ts var GATEWAY_TIMEOUT_DEFAULT_MESSAGE = "Request timed out"; var GatewayTimeoutError = class extends DataProxyAPIError { constructor(info2, message = GATEWAY_TIMEOUT_DEFAULT_MESSAGE) { super(message, setRetryable(info2, false)); this.name = "GatewayTimeoutError"; this.code = "P5009"; } }; __name(GatewayTimeoutError, "GatewayTimeoutError"); // ../engine-core/src/data-proxy/errors/InteractiveTransactionError.ts var INTERACTIVE_TRANSACTION_ERROR_DEFAULT_MESSAGE = "Interactive transaction error"; var InteractiveTransactionError = class extends DataProxyAPIError { constructor(info2, message = INTERACTIVE_TRANSACTION_ERROR_DEFAULT_MESSAGE) { super(message, setRetryable(info2, false)); this.name = "InteractiveTransactionError"; this.code = "P5015"; } }; __name(InteractiveTransactionError, "InteractiveTransactionError"); // ../engine-core/src/data-proxy/errors/InvalidRequestError.ts var INVALID_REQUEST_DEFAULT_MESSAGE = "Request parameters are invalid"; var InvalidRequestError = class extends DataProxyAPIError { constructor(info2, message = INVALID_REQUEST_DEFAULT_MESSAGE) { super(message, setRetryable(info2, false)); this.name = "InvalidRequestError"; this.code = "P5011"; } }; __name(InvalidRequestError, "InvalidRequestError"); // ../engine-core/src/data-proxy/errors/NotFoundError.ts var NOT_FOUND_DEFAULT_MESSAGE = "Requested resource does not exist"; var NotFoundError = class extends DataProxyAPIError { constructor(info2, message = NOT_FOUND_DEFAULT_MESSAGE) { super(message, setRetryable(info2, false)); this.name = "NotFoundError"; this.code = "P5003"; } }; __name(NotFoundError, "NotFoundError"); // ../engine-core/src/data-proxy/errors/ServerError.ts var SERVER_ERROR_DEFAULT_MESSAGE = "Unknown server error"; var ServerError = class extends DataProxyAPIError { constructor(info2, message, logs) { super(message || SERVER_ERROR_DEFAULT_MESSAGE, setRetryable(info2, true)); this.name = "ServerError"; this.code = "P5006"; this.logs = logs; } }; __name(ServerError, "ServerError"); // ../engine-core/src/data-proxy/errors/UnauthorizedError.ts var UNAUTHORIZED_DEFAULT_MESSAGE = "Unauthorized, check your connection string"; var UnauthorizedError = class extends DataProxyAPIError { constructor(info2, message = UNAUTHORIZED_DEFAULT_MESSAGE) { super(message, setRetryable(info2, false)); this.name = "UnauthorizedError"; this.code = "P5007"; } }; __name(UnauthorizedError, "UnauthorizedError"); // ../engine-core/src/data-proxy/errors/UsageExceededError.ts var USAGE_EXCEEDED_DEFAULT_MESSAGE = "Usage exceeded, retry again later"; var UsageExceededError = class extends DataProxyAPIError { constructor(info2, message = USAGE_EXCEEDED_DEFAULT_MESSAGE) { super(message, setRetryable(info2, true)); this.name = "UsageExceededError"; this.code = "P5008"; } }; __name(UsageExceededError, "UsageExceededError"); // ../engine-core/src/data-proxy/errors/utils/responseToError.ts async function getResponseErrorBody(response) { let text; try { text = await response.text(); } catch { return { type: "EmptyError" }; } try { const error2 = JSON.parse(text); if (typeof error2 === "string") { switch (error2) { case "InternalDataProxyError": return { type: "DataProxyError", body: error2 }; default: return { type: "UnknownTextError", body: error2 }; } } if (typeof error2 === "object" && error2 !== null) { if ("is_panic" in error2 && "message" in error2 && "error_code" in error2) { return { type: "QueryEngineError", body: error2 }; } if ("EngineNotStarted" in error2 || "InteractiveTransactionMisrouted" in error2 || "InvalidRequestError" in error2) { const reason = Object.values(error2)[0].reason; if (typeof reason === "string" && !["SchemaMissing", "EngineVersionNotSupported"].includes(reason)) { return { type: "UnknownJsonError", body: error2 }; } return { type: "DataProxyError", body: error2 }; } } return { type: "UnknownJsonError", body: error2 }; } catch { return text === "" ? { type: "EmptyError" } : { type: "UnknownTextError", body: text }; } } __name(getResponseErrorBody, "getResponseErrorBody"); async function responseToError(response, clientVersion2) { if (response.ok) return void 0; const info2 = { clientVersion: clientVersion2, response }; const error2 = await getResponseErrorBody(response); if (error2.type === "QueryEngineError") { throw new PrismaClientKnownRequestError(error2.body.message, { code: error2.body.error_code, clientVersion: clientVersion2 }); } if (error2.type === "DataProxyError") { if (error2.body === "InternalDataProxyError") { throw new ServerError(info2, "Internal Data Proxy error"); } if ("EngineNotStarted" in error2.body) { if (error2.body.EngineNotStarted.reason === "SchemaMissing") { return new SchemaMissingError(info2); } if (error2.body.EngineNotStarted.reason === "EngineVersionNotSupported") { throw new EngineVersionNotSupportedError(info2); } if ("EngineStartupError" in error2.body.EngineNotStarted.reason) { const { msg, logs } = error2.body.EngineNotStarted.reason.EngineStartupError; throw new EngineStartupError(info2, msg, logs); } if ("KnownEngineStartupError" in error2.body.EngineNotStarted.reason) { const { msg, error_code } = error2.body.EngineNotStarted.reason.KnownEngineStartupError; throw new PrismaClientInitializationError(msg, clientVersion2, error_code); } if ("HealthcheckTimeout" in error2.body.EngineNotStarted.reason) { const { logs } = error2.body.EngineNotStarted.reason.HealthcheckTimeout; throw new HealthcheckTimeoutError(info2, logs); } } if ("InteractiveTransactionMisrouted" in error2.body) { const messageByReason = { IDParseError: "Could not parse interactive transaction ID", NoQueryEngineFoundError: "Could not find Query Engine for the specified host and transaction ID", TransactionStartError: "Could not start interactive transaction" }; throw new InteractiveTransactionError(info2, messageByReason[error2.body.InteractiveTransactionMisrouted.reason]); } if ("InvalidRequestError" in error2.body) { throw new InvalidRequestError(info2, error2.body.InvalidRequestError.reason); } } if (response.status === 401 || response.status === 403) { throw new UnauthorizedError(info2, buildErrorMessage(UNAUTHORIZED_DEFAULT_MESSAGE, error2)); } if (response.status === 404) { return new NotFoundError(info2, buildErrorMessage(NOT_FOUND_DEFAULT_MESSAGE, error2)); } if (response.status === 429) { throw new UsageExceededError(info2, buildErrorMessage(USAGE_EXCEEDED_DEFAULT_MESSAGE, error2)); } if (response.status === 504) { throw new GatewayTimeoutError(info2, buildErrorMessage(GATEWAY_TIMEOUT_DEFAULT_MESSAGE, error2)); } if (response.status >= 500) { throw new ServerError(info2, buildErrorMessage(SERVER_ERROR_DEFAULT_MESSAGE, error2)); } if (response.status >= 400) { throw new BadRequestError(info2, buildErrorMessage(BAD_REQUEST_DEFAULT_MESSAGE, error2)); } return void 0; } __name(responseToError, "responseToError"); function buildErrorMessage(defaultMessage, errorBody) { if (errorBody.type === "EmptyError") { return defaultMessage; } return `${defaultMessage}: ${JSON.stringify(errorBody)}`; } __name(buildErrorMessage, "buildErrorMessage"); // ../engine-core/src/data-proxy/utils/backOff.ts var BACKOFF_INTERVAL = 50; function backOff(n2) { const baseDelay = Math.pow(2, n2) * BACKOFF_INTERVAL; const jitter = Math.ceil(Math.random() * baseDelay) - Math.ceil(baseDelay / 2); const total = baseDelay + jitter; return new Promise((done) => setTimeout(() => done(total), total)); } __name(backOff, "backOff"); // ../engines/package.json var devDependencies = { "@prisma/debug": "workspace:*", "@prisma/engines-version": "4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5", "@prisma/fetch-engine": "workspace:*", "@prisma/get-platform": "workspace:*", "@swc/core": "1.3.14", "@swc/jest": "0.2.24", "@types/jest": "29.2.4", "@types/node": "16.18.11", execa: "5.1.1", jest: "29.3.1", typescript: "4.8.4" }; // ../engine-core/src/data-proxy/errors/NetworkError.ts var RequestError = class extends DataProxyError { constructor(message, info2) { super(`Cannot fetch data from service: ${message}`, setRetryable(info2, true)); this.name = "RequestError"; this.code = "P5010"; } }; __name(RequestError, "RequestError"); // ../engine-core/src/data-proxy/utils/getJSRuntimeName.ts function getJSRuntimeName() { if (typeof self === "undefined") { return "node"; } return "browser"; } __name(getJSRuntimeName, "getJSRuntimeName"); // ../engine-core/src/data-proxy/utils/request.ts async function request(url, options) { const clientVersion2 = options.clientVersion; const jsRuntimeName = getJSRuntimeName(); try { if (jsRuntimeName === "browser") { return await fetch(url, options); } else { return await nodeFetch(url, options); } } catch (e2) { const message = e2.message ?? "Unknown error"; throw new RequestError(message, { clientVersion: clientVersion2 }); } } __name(request, "request"); function buildHeaders(options) { return { ...options.headers, "Content-Type": "application/json" }; } __name(buildHeaders, "buildHeaders"); function buildOptions(options) { return { method: options.method, headers: buildHeaders(options) }; } __name(buildOptions, "buildOptions"); function buildResponse(incomingData, response) { return { text: () => Buffer.concat(incomingData).toString(), json: () => JSON.parse(Buffer.concat(incomingData).toString()), ok: response.statusCode >= 200 && response.statusCode <= 299, status: response.statusCode, url: response.url, headers: response.headers }; } __name(buildResponse, "buildResponse"); async function nodeFetch(url, options = {}) { const https = include("https"); const httpsOptions = buildOptions(options); const incomingData = []; const { origin } = new URL(url); return new Promise((resolve, reject) => { const request2 = https.request(url, httpsOptions, (response) => { const { statusCode, headers: { location } } = response; if (statusCode >= 301 && statusCode <= 399 && location) { if (location.startsWith("http") === false) { resolve(nodeFetch(`${origin}${location}`, options)); } else { resolve(nodeFetch(location, options)); } } response.on("data", (chunk) => incomingData.push(chunk)); response.on("end", () => resolve(buildResponse(incomingData, response))); response.on("error", reject); }); request2.on("error", reject); request2.end(options.body ?? ""); }); } __name(nodeFetch, "nodeFetch"); var include = typeof require !== "undefined" ? require : () => { }; // ../engine-core/src/data-proxy/utils/getClientVersion.ts var semverRegex = /^[1-9][0-9]*\.[0-9]+\.[0-9]+$/; var debug7 = src_default("prisma:client:dataproxyEngine"); async function _getClientVersion(config2) { const engineVersion = devDependencies["@prisma/engines-version"]; const clientVersion2 = config2.clientVersion ?? "unknown"; if (process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION) { return process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION; } const [version, suffix] = clientVersion2?.split("-") ?? []; if (suffix === void 0 && semverRegex.test(version)) { return version; } if (suffix !== void 0 || clientVersion2 === "0.0.0") { const [version2] = engineVersion.split("-") ?? []; const [major2, minor, patch] = version2.split("."); const pkgURL = prismaPkgURL(`<=${major2}.${minor}.${patch}`); const res = await request(pkgURL, { clientVersion: clientVersion2 }); if (!res.ok) { throw new Error( `Failed to fetch stable Prisma version, unpkg.com status ${res.status} ${res.statusText}, response body: ${await res.text() || ""}` ); } const bodyAsText = await res.text(); debug7("length of body fetched from unpkg.com", bodyAsText.length); let bodyAsJson; try { bodyAsJson = JSON.parse(bodyAsText); } catch (e2) { console.error("JSON.parse error: body fetched from unpkg.com: ", bodyAsText); throw e2; } return bodyAsJson["version"]; } throw new NotImplementedYetError("Only `major.minor.patch` versions are supported by Prisma Data Proxy.", { clientVersion: clientVersion2 }); } __name(_getClientVersion, "_getClientVersion"); async function getClientVersion(config2) { const version = await _getClientVersion(config2); debug7("version", version); return version; } __name(getClientVersion, "getClientVersion"); function prismaPkgURL(version) { return encodeURI(`https://unpkg.com/prisma@${version}/package.json`); } __name(prismaPkgURL, "prismaPkgURL"); // ../engine-core/src/data-proxy/DataProxyEngine.ts var MAX_RETRIES = 10; var P = Promise.resolve(); var debug8 = src_default("prisma:client:dataproxyEngine"); var DataProxyEngine = class extends Engine { constructor(config2) { super(); this.config = config2; this.env = { ...this.config.env, ...process.env }; this.inlineSchema = config2.inlineSchema ?? ""; this.inlineDatasources = config2.inlineDatasources ?? {}; this.inlineSchemaHash = config2.inlineSchemaHash ?? ""; this.clientVersion = config2.clientVersion ?? "unknown"; this.logEmitter = config2.logEmitter; const [host, apiKey] = this.extractHostAndApiKey(); this.remoteClientVersion = P.then(() => getClientVersion(this.config)); this.headers = { Authorization: `Bearer ${apiKey}` }; this.host = host; debug8("host", this.host); } version() { return "unknown"; } async start() { } async stop() { } on(event, listener) { if (event === "beforeExit") { throw new NotImplementedYetError("beforeExit event is not yet supported", { clientVersion: this.clientVersion }); } else { this.logEmitter.on(event, listener); } } async url(s) { return `https://${this.host}/${await this.remoteClientVersion}/${this.inlineSchemaHash}/${s}`; } async getConfig() { return Promise.resolve({ datasources: [ { activeProvider: this.config.activeProvider } ] }); } getDmmf() { throw new NotImplementedYetError("getDmmf is not yet supported", { clientVersion: this.clientVersion }); } async uploadSchema() { const response = await request(await this.url("schema"), { method: "PUT", headers: this.headers, body: this.inlineSchema, clientVersion: this.clientVersion }); if (!response.ok) { debug8("schema response status", response.status); } const err = await responseToError(response, this.clientVersion); if (err) { this.logEmitter.emit("warn", { message: `Error while uploading schema: ${err.message}` }); throw err; } else { this.logEmitter.emit("info", { message: `Schema (re)uploaded (hash: ${this.inlineSchemaHash})` }); } } request({ query: query2, headers = {}, transaction }) { this.logEmitter.emit("query", { query: query2 }); return this.requestInternal({ query: query2, variables: {} }, headers, transaction); } async requestBatch({ queries, headers = {}, transaction }) { const isTransaction = Boolean(transaction); this.logEmitter.emit("query", { query: `Batch${isTransaction ? " in transaction" : ""} (${queries.length}): ${queries.join("\n")}` }); const body = { batch: queries.map((query2) => ({ query: query2, variables: {} })), transaction: isTransaction, isolationLevel: transaction?.isolationLevel }; const { batchResult, elapsed } = await this.requestInternal(body, headers); return batchResult.map((result) => { if ("errors" in result && result.errors.length > 0) { return prismaGraphQLToJSError(result.errors[0], this.clientVersion); } return { data: result, elapsed }; }); } requestInternal(body, headers, itx) { return this.withRetry({ actionGerund: "querying", callback: async ({ logHttpCall }) => { const url = itx ? `${itx.payload.endpoint}/graphql` : await this.url("graphql"); logHttpCall(url); const response = await request(url, { method: "POST", headers: { ...runtimeHeadersToHttpHeaders2(headers), ...this.headers }, body: JSON.stringify(body), clientVersion: this.clientVersion }); if (!response.ok) { debug8("graphql response status", response.status); } const e2 = await responseToError(response, this.clientVersion); await this.handleError(e2); const data = await response.json(); if (data.errors) { if (data.errors.length === 1) { throw prismaGraphQLToJSError(data.errors[0], this.config.clientVersion); } else { throw new PrismaClientUnknownRequestError(data.errors, { clientVersion: this.config.clientVersion }); } } return data; } }); } async transaction(action, headers, arg2) { const actionToGerund = { start: "starting", commit: "committing", rollback: "rolling back" }; return this.withRetry({ actionGerund: `${actionToGerund[action]} transaction`, callback: async ({ logHttpCall }) => { if (action === "start") { const body = JSON.stringify({ max_wait: arg2?.maxWait ?? 2e3, timeout: arg2?.timeout ?? 5e3, isolation_level: arg2?.isolationLevel }); const url = await this.url("transaction/start"); logHttpCall(url); const response = await request(url, { method: "POST", headers: { ...runtimeHeadersToHttpHeaders2(headers), ...this.headers }, body, clientVersion: this.clientVersion }); const err = await responseToError(response, this.clientVersion); await this.handleError(err); const json = await response.json(); const id = json.id; const endpoint = json["data-proxy"].endpoint; return { id, payload: { endpoint } }; } else { const url = `${arg2.payload.endpoint}/${action}`; logHttpCall(url); const response = await request(url, { method: "POST", headers: { ...runtimeHeadersToHttpHeaders2(headers), ...this.headers }, clientVersion: this.clientVersion }); const err = await responseToError(response, this.clientVersion); await this.handleError(err); return void 0; } } }); } extractHostAndApiKey() { const datasources = this.mergeOverriddenDatasources(); const mainDatasourceName = Object.keys(datasources)[0]; const mainDatasource = datasources[mainDatasourceName]; const dataProxyURL = this.resolveDatasourceURL(mainDatasourceName, mainDatasource); let url; try { url = new URL(dataProxyURL); } catch { throw new InvalidDatasourceError("Could not parse URL of the datasource", { clientVersion: this.clientVersion }); } const { protocol, host, searchParams } = url; if (protocol !== "prisma:") { throw new InvalidDatasourceError("Datasource URL must use prisma:// protocol when --data-proxy is used", { clientVersion: this.clientVersion }); } const apiKey = searchParams.get("api_key"); if (apiKey === null || apiKey.length < 1) { throw new InvalidDatasourceError("No valid API key found in the datasource URL", { clientVersion: this.clientVersion }); } return [host, apiKey]; } mergeOverriddenDatasources() { if (this.config.datasources === void 0) { return this.inlineDatasources; } const finalDatasources = { ...this.inlineDatasources }; for (const override of this.config.datasources) { if (!this.inlineDatasources[override.name]) { throw new Error(`Unknown datasource: ${override.name}`); } finalDatasources[override.name] = { url: { fromEnvVar: null, value: override.url } }; } return finalDatasources; } resolveDatasourceURL(name, datasource) { if (datasource.url.value) { return datasource.url.value; } if (datasource.url.fromEnvVar) { const envVar = datasource.url.fromEnvVar; const loadedEnvURL = this.env[envVar]; if (loadedEnvURL === void 0) { throw new InvalidDatasourceError( `Datasource "${name}" references an environment variable "${envVar}" that is not set`, { clientVersion: this.clientVersion } ); } return loadedEnvURL; } throw new InvalidDatasourceError( `Datasource "${name}" specification is invalid: both value and fromEnvVar are null`, { clientVersion: this.clientVersion } ); } metrics(options) { throw new NotImplementedYetError("Metric are not yet supported for Data Proxy", { clientVersion: this.clientVersion }); } async withRetry(args) { for (let attempt = 0; ; attempt++) { const logHttpCall = /* @__PURE__ */ __name((url) => { this.logEmitter.emit("info", { message: `Calling ${url} (n=${attempt})` }); }, "logHttpCall"); try { return await args.callback({ logHttpCall }); } catch (e2) { if (!(e2 instanceof DataProxyError)) throw e2; if (!e2.isRetryable) throw e2; if (attempt >= MAX_RETRIES) { if (e2 instanceof ForcedRetryError) { throw e2.cause; } else { throw e2; } } this.logEmitter.emit("warn", { message: `Attempt ${attempt + 1}/${MAX_RETRIES} failed for ${args.actionGerund}: ${e2.message ?? "(unknown)"}` }); const delay = await backOff(attempt); this.logEmitter.emit("warn", { message: `Retrying after ${delay}ms` }); } } } async handleError(error2) { if (error2 instanceof SchemaMissingError) { await this.uploadSchema(); throw new ForcedRetryError({ clientVersion: this.clientVersion, cause: error2 }); } else if (error2) { throw error2; } } }; __name(DataProxyEngine, "DataProxyEngine"); function runtimeHeadersToHttpHeaders2(headers) { if (headers.transactionId) { const httpHeaders = { ...headers }; delete httpHeaders.transactionId; return httpHeaders; } return headers; } __name(runtimeHeadersToHttpHeaders2, "runtimeHeadersToHttpHeaders"); // ../engine-core/src/library/LibraryEngine.ts var import_chalk6 = __toESM(require_source()); var import_fs7 = __toESM(require("fs")); // ../engine-core/src/library/DefaultLibraryLoader.ts var import_chalk5 = __toESM(require_source()); var import_fs6 = __toESM(require("fs")); var import_path4 = __toESM(require("path")); var debug9 = src_default("prisma:client:libraryEngine:loader"); var DefaultLibraryLoader = class { constructor(config2) { this.libQueryEnginePath = null; this.platform = null; this.config = config2; } async loadLibrary() { if (!this.libQueryEnginePath) { this.libQueryEnginePath = await this.getLibQueryEnginePath(); } debug9(`loadEngine using ${this.libQueryEnginePath}`); try { return eval("require")(this.libQueryEnginePath); } catch (e2) { if (import_fs6.default.existsSync(this.libQueryEnginePath)) { if (this.libQueryEnginePath.endsWith(".node")) { throw new PrismaClientInitializationError( `Unable to load Node-API Library from ${import_chalk5.default.dim(this.libQueryEnginePath)}, Library may be corrupt: ${e2.message}`, this.config.clientVersion ); } else { throw new PrismaClientInitializationError( `Expected an Node-API Library but received ${import_chalk5.default.dim(this.libQueryEnginePath)}`, this.config.clientVersion ); } } else { throw new PrismaClientInitializationError( `Unable to load Node-API Library from ${import_chalk5.default.dim(this.libQueryEnginePath)}, It does not exist`, this.config.clientVersion ); } } } async getLibQueryEnginePath() { const libPath = process.env.PRISMA_QUERY_ENGINE_LIBRARY ?? this.config.prismaPath; if (libPath && import_fs6.default.existsSync(libPath) && libPath.endsWith(".node")) { return libPath; } this.platform = this.platform ?? await getPlatform(); const { enginePath: enginePath2, searchedLocations: searchedLocations2 } = await this.resolveEnginePath(); if (!import_fs6.default.existsSync(enginePath2)) { const incorrectPinnedPlatformErrorStr = this.platform ? ` You incorrectly pinned it to ${import_chalk5.default.redBright.bold(`${this.platform}`)} ` : ""; let errorText = `Query engine library for current platform "${import_chalk5.default.bold( this.platform )}" could not be found.${incorrectPinnedPlatformErrorStr} This probably happens, because you built Prisma Client on a different platform. (Prisma Client looked in "${import_chalk5.default.underline(enginePath2)}") Searched Locations: ${searchedLocations2.map((f2) => { let msg = ` ${f2}`; if (process.env.DEBUG === "node-engine-search-locations" && import_fs6.default.existsSync(f2)) { const dir = import_fs6.default.readdirSync(f2); msg += dir.map((d2) => ` ${d2}`).join("\n"); } return msg; }).join("\n" + (process.env.DEBUG === "node-engine-search-locations" ? "\n" : ""))} `; if (this.config.generator) { this.platform = this.platform ?? await getPlatform(); if (this.config.generator.binaryTargets.find((object) => object.value === this.platform) || this.config.generator.binaryTargets.find((object) => object.value === "native")) { errorText += ` You already added the platform${this.config.generator.binaryTargets.length > 1 ? "s" : ""} ${this.config.generator.binaryTargets.map((t2) => `"${import_chalk5.default.bold(t2.value)}"`).join(", ")} to the "${import_chalk5.default.underline("generator")}" block in the "schema.prisma" file as described in https://pris.ly/d/client-generator, but something went wrong. That's suboptimal. Please create an issue at https://github.com/prisma/prisma/issues/new`; errorText += ``; } else { errorText += ` To solve this problem, add the platform "${this.platform}" to the "${import_chalk5.default.underline( "binaryTargets" )}" attribute in the "${import_chalk5.default.underline("generator")}" block in the "schema.prisma" file: ${import_chalk5.default.greenBright(this.getFixedGenerator())} Then run "${import_chalk5.default.greenBright("prisma generate")}" for your changes to take effect. Read more about deploying Prisma Client: https://pris.ly/d/client-generator`; } } else { errorText += ` Read more about deploying Prisma Client: https://pris.ly/d/client-generator `; } throw new PrismaClientInitializationError(errorText, this.config.clientVersion); } this.platform = this.platform ?? await getPlatform(); return enginePath2; } async resolveEnginePath() { const searchedLocations = []; let enginePath; if (this.libQueryEnginePath) { return { enginePath: this.libQueryEnginePath, searchedLocations }; } this.platform = this.platform ?? await getPlatform(); if (__filename.includes("DefaultLibraryLoader")) { enginePath = import_path4.default.join(getEnginesPath(), getNodeAPIName(this.platform, "fs")); return { enginePath, searchedLocations }; } const dirname = eval("__dirname"); const searchLocations = [ import_path4.default.resolve(dirname, "../../../.prisma/client"), this.config.generator?.output?.value ?? dirname, import_path4.default.resolve(dirname, ".."), import_path4.default.dirname(this.config.datamodelPath), this.config.cwd, "/tmp/prisma-engines" ]; if (this.config.dirname) { searchLocations.push(this.config.dirname); } for (const location of searchLocations) { searchedLocations.push(location); debug9(`Searching for Query Engine Library in ${location}`); enginePath = import_path4.default.join(location, getNodeAPIName(this.platform, "fs")); if (import_fs6.default.existsSync(enginePath)) { return { enginePath, searchedLocations }; } } enginePath = import_path4.default.join(__dirname, getNodeAPIName(this.platform, "fs")); return { enginePath: enginePath ?? "", searchedLocations }; } getFixedGenerator() { const fixedGenerator = { ...this.config.generator, binaryTargets: fixBinaryTargets(this.config.generator.binaryTargets, this.platform) }; return printGeneratorConfig(fixedGenerator); } }; __name(DefaultLibraryLoader, "DefaultLibraryLoader"); // ../engine-core/src/library/ExitHooks.ts var debug10 = src_default("prisma:client:libraryEngine:exitHooks"); var ExitHooks = class { constructor() { this.nextOwnerId = 1; this.ownerToIdMap = /* @__PURE__ */ new WeakMap(); this.idToListenerMap = /* @__PURE__ */ new Map(); this.areHooksInstalled = false; } install() { if (this.areHooksInstalled) { return; } this.installHook("beforeExit"); this.installHook("exit"); this.installHook("SIGINT", true); this.installHook("SIGUSR2", true); this.installHook("SIGTERM", true); this.areHooksInstalled = true; } setListener(owner, listener) { if (listener) { let id = this.ownerToIdMap.get(owner); if (!id) { id = this.nextOwnerId++; this.ownerToIdMap.set(owner, id); } this.idToListenerMap.set(id, listener); } else { const id = this.ownerToIdMap.get(owner); if (id !== void 0) { this.ownerToIdMap.delete(owner); this.idToListenerMap.delete(id); } } } getListener(owner) { const id = this.ownerToIdMap.get(owner); if (id === void 0) { return void 0; } return this.idToListenerMap.get(id); } installHook(event, shouldExit = false) { process.once(event, async (code) => { debug10(`exit event received: ${event}`); for (const listener of this.idToListenerMap.values()) { await listener(); } this.idToListenerMap.clear(); if (shouldExit && process.listenerCount(event) === 0) { process.exit(code); } }); } }; __name(ExitHooks, "ExitHooks"); // ../engine-core/src/library/LibraryEngine.ts var debug11 = src_default("prisma:client:libraryEngine"); function isQueryEvent(event) { return event["item_type"] === "query" && "query" in event; } __name(isQueryEvent, "isQueryEvent"); function isPanicEvent(event) { if ("level" in event) { return event.level === "error" && event["message"] === "PANIC"; } else { return false; } } __name(isPanicEvent, "isPanicEvent"); var knownPlatforms2 = [...platforms, "native"]; var engineInstanceCount = 0; var exitHooks = new ExitHooks(); var LibraryEngine = class extends Engine { constructor(config2, loader = new DefaultLibraryLoader(config2)) { super(); this.datamodel = import_fs7.default.readFileSync(config2.datamodelPath, "utf-8"); this.config = config2; this.libraryStarted = false; this.logQueries = config2.logQueries ?? false; this.logLevel = config2.logLevel ?? "error"; this.libraryLoader = loader; this.logEmitter = config2.logEmitter; this.datasourceOverrides = config2.datasources ? this.convertDatasources(config2.datasources) : {}; if (config2.enableDebugLogs) { this.logLevel = "debug"; } this.libraryInstantiationPromise = this.instantiateLibrary(); exitHooks.install(); this.checkForTooManyEngines(); } get beforeExitListener() { return exitHooks.getListener(this); } set beforeExitListener(listener) { exitHooks.setListener(this, listener); } checkForTooManyEngines() { if (engineInstanceCount === 10) { console.warn( `${import_chalk6.default.yellow("warn(prisma-client)")} There are already 10 instances of Prisma Client actively running.` ); } } async transaction(action, headers, arg2) { await this.start(); const headerStr = JSON.stringify(headers); let result; if (action === "start") { const jsonOptions = JSON.stringify({ max_wait: arg2?.maxWait ?? 2e3, timeout: arg2?.timeout ?? 5e3, isolation_level: arg2?.isolationLevel }); result = await this.engine?.startTransaction(jsonOptions, headerStr); } else if (action === "commit") { result = await this.engine?.commitTransaction(arg2.id, headerStr); } else if (action === "rollback") { result = await this.engine?.rollbackTransaction(arg2.id, headerStr); } const response = this.parseEngineResponse(result); if (response.error_code) { throw new PrismaClientKnownRequestError(response.message, { code: response.error_code, clientVersion: this.config.clientVersion, meta: response.meta }); } return response; } async instantiateLibrary() { debug11("internalSetup"); if (this.libraryInstantiationPromise) { return this.libraryInstantiationPromise; } await isNodeAPISupported(); this.platform = await this.getPlatform(); await this.loadEngine(); this.version(); } async getPlatform() { if (this.platform) return this.platform; const platform2 = await getPlatform(); if (!knownPlatforms2.includes(platform2)) { throw new PrismaClientInitializationError( `Unknown ${import_chalk6.default.red("PRISMA_QUERY_ENGINE_LIBRARY")} ${import_chalk6.default.redBright.bold( platform2 )}. Possible binaryTargets: ${import_chalk6.default.greenBright( knownPlatforms2.join(", ") )} or a path to the query engine library. You may have to run ${import_chalk6.default.greenBright("prisma generate")} for your changes to take effect.`, this.config.clientVersion ); } return platform2; } parseEngineResponse(response) { if (!response) { throw new PrismaClientUnknownRequestError(`Response from the Engine was empty`, { clientVersion: this.config.clientVersion }); } try { const config2 = JSON.parse(response); return config2; } catch (err) { throw new PrismaClientUnknownRequestError(`Unable to JSON.parse response from engine`, { clientVersion: this.config.clientVersion }); } } convertDatasources(datasources) { const obj = /* @__PURE__ */ Object.create(null); for (const { name, url } of datasources) { obj[name] = url; } return obj; } async loadEngine() { if (!this.engine) { if (!this.QueryEngineConstructor) { this.library = await this.libraryLoader.loadLibrary(); this.QueryEngineConstructor = this.library.QueryEngine; } try { const weakThis = new WeakRef(this); this.engine = new this.QueryEngineConstructor( { datamodel: this.datamodel, env: process.env, logQueries: this.config.logQueries ?? false, ignoreEnvVarErrors: false, datasourceOverrides: this.datasourceOverrides, logLevel: this.logLevel, configDir: this.config.cwd }, (log3) => { weakThis.deref()?.logger(log3); } ); engineInstanceCount++; } catch (_e) { const e2 = _e; const error2 = this.parseInitError(e2.message); if (typeof error2 === "string") { throw e2; } else { throw new PrismaClientInitializationError(error2.message, this.config.clientVersion, error2.error_code); } } } } logger(log3) { const event = this.parseEngineResponse(log3); if (!event) return; if ("span" in event) { if (this.config.tracingConfig.enabled === true) { void createSpan(event); } return; } event.level = event?.level.toLowerCase() ?? "unknown"; if (isQueryEvent(event)) { this.logEmitter.emit("query", { timestamp: new Date(), query: event.query, params: event.params, duration: Number(event.duration_ms), target: event.module_path }); } else if (isPanicEvent(event)) { this.loggerRustPanic = new PrismaClientRustPanicError( this.getErrorMessageWithLink( `${event.message}: ${event.reason} in ${event.file}:${event.line}:${event.column}` ), this.config.clientVersion ); } else { this.logEmitter.emit(event.level, { timestamp: new Date(), message: event.message, target: event.module_path }); } } getErrorMessageWithLink(title) { return getErrorMessageWithLink({ platform: this.platform, title, version: this.config.clientVersion, engineVersion: this.versionInfo?.commit, database: this.config.activeProvider, query: this.lastQuery }); } parseInitError(str) { try { const error2 = JSON.parse(str); return error2; } catch (e2) { } return str; } parseRequestError(str) { try { const error2 = JSON.parse(str); return error2; } catch (e2) { } return str; } on(event, listener) { if (event === "beforeExit") { this.beforeExitListener = listener; } else { this.logEmitter.on(event, listener); } } async start() { await this.libraryInstantiationPromise; await this.libraryStoppingPromise; if (this.libraryStartingPromise) { debug11(`library already starting, this.libraryStarted: ${this.libraryStarted}`); return this.libraryStartingPromise; } if (this.libraryStarted) { return; } const startFn = /* @__PURE__ */ __name(async () => { debug11("library starting"); try { const headers = { traceparent: getTraceParent({ tracingConfig: this.config.tracingConfig }) }; await this.engine?.connect(JSON.stringify(headers)); this.libraryStarted = true; debug11("library started"); } catch (err) { const error2 = this.parseInitError(err.message); if (typeof error2 === "string") { throw err; } else { throw new PrismaClientInitializationError(error2.message, this.config.clientVersion, error2.error_code); } } finally { this.libraryStartingPromise = void 0; } }, "startFn"); const spanConfig = { name: "connect", enabled: this.config.tracingConfig.enabled }; this.libraryStartingPromise = runInChildSpan(spanConfig, startFn); return this.libraryStartingPromise; } async stop() { await this.libraryStartingPromise; await this.executingQueryPromise; if (this.libraryStoppingPromise) { debug11("library is already stopping"); return this.libraryStoppingPromise; } if (!this.libraryStarted) { return; } const stopFn = /* @__PURE__ */ __name(async () => { await new Promise((r2) => setTimeout(r2, 5)); debug11("library stopping"); const headers = { traceparent: getTraceParent({ tracingConfig: this.config.tracingConfig }) }; await this.engine?.disconnect(JSON.stringify(headers)); this.libraryStarted = false; this.libraryStoppingPromise = void 0; debug11("library stopped"); }, "stopFn"); const spanConfig = { name: "disconnect", enabled: this.config.tracingConfig.enabled }; this.libraryStoppingPromise = runInChildSpan(spanConfig, stopFn); return this.libraryStoppingPromise; } async getConfig() { await this.libraryInstantiationPromise; return this.library.getConfig({ datamodel: this.datamodel, datasourceOverrides: this.datasourceOverrides, ignoreEnvVarErrors: true, env: process.env }); } async getDmmf() { await this.start(); return JSON.parse(await this.engine.dmmf()); } version() { this.versionInfo = this.library?.version(); return this.versionInfo?.version ?? "unknown"; } debugPanic(message) { return this.library?.debugPanic(message); } async request({ query: query2, headers = {} }) { debug11(`sending request, this.libraryStarted: ${this.libraryStarted}`); const request2 = { query: query2, variables: {} }; const headerStr = JSON.stringify(headers); const queryStr = JSON.stringify(request2); try { await this.start(); this.executingQueryPromise = this.engine?.query(queryStr, headerStr, headers.transactionId); this.lastQuery = queryStr; const data = this.parseEngineResponse(await this.executingQueryPromise); if (data.errors) { if (data.errors.length === 1) { throw this.buildQueryError(data.errors[0]); } throw new PrismaClientUnknownRequestError(JSON.stringify(data.errors), { clientVersion: this.config.clientVersion }); } else if (this.loggerRustPanic) { throw this.loggerRustPanic; } return { data, elapsed: 0 }; } catch (e2) { if (e2 instanceof PrismaClientInitializationError) { throw e2; } if (e2.code === "GenericFailure" && e2.message?.startsWith("PANIC:")) { throw new PrismaClientRustPanicError(this.getErrorMessageWithLink(e2.message), this.config.clientVersion); } const error2 = this.parseRequestError(e2.message); if (typeof error2 === "string") { throw e2; } else { throw new PrismaClientUnknownRequestError(`${error2.message} ${error2.backtrace}`, { clientVersion: this.config.clientVersion }); } } } async requestBatch({ queries, headers = {}, transaction }) { debug11("requestBatch"); const request2 = { batch: queries.map((query2) => ({ query: query2, variables: {} })), transaction: Boolean(transaction), isolationLevel: transaction?.isolationLevel }; await this.start(); this.lastQuery = JSON.stringify(request2); this.executingQueryPromise = this.engine.query(this.lastQuery, JSON.stringify(headers), headers.transactionId); const result = await this.executingQueryPromise; const data = this.parseEngineResponse(result); if (data.errors) { if (data.errors.length === 1) { throw this.buildQueryError(data.errors[0]); } throw new PrismaClientUnknownRequestError(JSON.stringify(data.errors), { clientVersion: this.config.clientVersion }); } const { batchResult, errors } = data; if (Array.isArray(batchResult)) { return batchResult.map((result2) => { if (result2.errors && result2.errors.length > 0) { return this.loggerRustPanic ?? this.buildQueryError(result2.errors[0]); } return { data: result2, elapsed: 0 }; }); } else { if (errors && errors.length === 1) { throw new Error(errors[0].error); } throw new Error(JSON.stringify(data)); } } buildQueryError(error2) { if (error2.user_facing_error.is_panic) { return new PrismaClientRustPanicError( this.getErrorMessageWithLink(error2.user_facing_error.message), this.config.clientVersion ); } return prismaGraphQLToJSError(error2, this.config.clientVersion); } async metrics(options) { await this.start(); const responseString = await this.engine.metrics(JSON.stringify(options)); if (options.format === "prometheus") { return responseString; } return this.parseEngineResponse(responseString); } }; __name(LibraryEngine, "LibraryEngine"); // ../generator-helper/src/dmmf.ts var DMMF; ((DMMF2) => { let ModelAction; ((ModelAction2) => { ModelAction2["findUnique"] = "findUnique"; ModelAction2["findUniqueOrThrow"] = "findUniqueOrThrow"; ModelAction2["findFirst"] = "findFirst"; ModelAction2["findFirstOrThrow"] = "findFirstOrThrow"; ModelAction2["findMany"] = "findMany"; ModelAction2["create"] = "create"; ModelAction2["createMany"] = "createMany"; ModelAction2["update"] = "update"; ModelAction2["updateMany"] = "updateMany"; ModelAction2["upsert"] = "upsert"; ModelAction2["delete"] = "delete"; ModelAction2["deleteMany"] = "deleteMany"; ModelAction2["groupBy"] = "groupBy"; ModelAction2["count"] = "count"; ModelAction2["aggregate"] = "aggregate"; ModelAction2["findRaw"] = "findRaw"; ModelAction2["aggregateRaw"] = "aggregateRaw"; })(ModelAction = DMMF2.ModelAction || (DMMF2.ModelAction = {})); })(DMMF || (DMMF = {})); // ../internals/src/logger.ts var logger_exports = {}; __export(logger_exports, { error: () => error, info: () => info, log: () => log, query: () => query, should: () => should2, tags: () => tags2, warn: () => warn2 }); var import_chalk7 = __toESM(require_source()); var tags2 = { error: import_chalk7.default.red("prisma:error"), warn: import_chalk7.default.yellow("prisma:warn"), info: import_chalk7.default.cyan("prisma:info"), query: import_chalk7.default.blue("prisma:query") }; var should2 = { warn: () => !process.env.PRISMA_DISABLE_WARNINGS }; function log(...data) { console.log(...data); } __name(log, "log"); function warn2(message, ...optionalParams) { if (should2.warn()) { console.warn(`${tags2.warn} ${message}`, ...optionalParams); } } __name(warn2, "warn"); function info(message, ...optionalParams) { console.info(`${tags2.info} ${message}`, ...optionalParams); } __name(info, "info"); function error(message, ...optionalParams) { console.error(`${tags2.error} ${message}`, ...optionalParams); } __name(error, "error"); function query(message, ...optionalParams) { console.log(`${tags2.query} ${message}`, ...optionalParams); } __name(query, "query"); // ../internals/src/utils/callOnce.ts function callOnce(fn) { let result; return (...args) => result ?? (result = fn(...args)); } __name(callOnce, "callOnce"); // ../internals/src/utils/hasOwnProperty.ts function hasOwnProperty(object, key) { return Object.prototype.hasOwnProperty.call(object, key); } __name(hasOwnProperty, "hasOwnProperty"); // ../internals/src/utils/isPromiseLike.ts function isPromiseLike(value) { return value != null && typeof value["then"] === "function"; } __name(isPromiseLike, "isPromiseLike"); // ../internals/src/utils/keyBy.ts var keyBy = /* @__PURE__ */ __name((collection, iteratee) => { return collection.reduce((acc, curr) => { acc[iteratee(curr)] = curr; return acc; }, {}); }, "keyBy"); // ../internals/src/utils/mapObjectValues.ts function mapObjectValues(object, mapper) { return Object.fromEntries( Object.entries(object).map(([key, value]) => [key, mapper(value, key)]) ); } __name(mapObjectValues, "mapObjectValues"); // ../internals/src/warnOnce.ts var alreadyWarned2 = /* @__PURE__ */ new Set(); var warnOnce2 = /* @__PURE__ */ __name((key, message, ...args) => { if (!alreadyWarned2.has(key)) { alreadyWarned2.add(key); warn2(message, ...args); } }, "warnOnce"); // src/runtime/core/extensions/wrapExtensionCallback.ts var PrismaClientExtensionError = class extends Error { constructor(extensionName, cause) { super(`${getTitleFromExtensionName(extensionName)}: ${getMessageFromCause(cause)}`, { cause }); this.extensionName = extensionName; this.name = "PrismaClientExtensionError"; if (!this.cause) { this.cause = cause; } if (typeof Error.captureStackTrace === "function") { Error.captureStackTrace(this, PrismaClientExtensionError); } } get [Symbol.toStringTag]() { return "PrismaClientExtensionError"; } }; __name(PrismaClientExtensionError, "PrismaClientExtensionError"); function getTitleFromExtensionName(extensionName) { if (extensionName) { return `Error caused by extension "${extensionName}"`; } return "Error caused by an extension"; } __name(getTitleFromExtensionName, "getTitleFromExtensionName"); function getMessageFromCause(cause) { if (cause instanceof Error) { return cause.message; } return `${cause}`; } __name(getMessageFromCause, "getMessageFromCause"); function wrapExtensionCallback(name, fn) { return function(...args) { try { const result = fn.apply(this, args); if (isPromiseLike(result)) { return result.then(void 0, (error2) => Promise.reject(new PrismaClientExtensionError(name, error2))); } return result; } catch (error2) { throw new PrismaClientExtensionError(name, error2); } }; } __name(wrapExtensionCallback, "wrapExtensionCallback"); function wrapAllExtensionCallbacks(name, object) { if (!object) { return object; } return mapObjectValues( object, (prop) => typeof prop === "function" ? wrapExtensionCallback(name, prop) : prop ); } __name(wrapAllExtensionCallbacks, "wrapAllExtensionCallbacks"); // src/runtime/core/metrics/MetricsClient.ts var MetricsClient = class { constructor(engine) { this._engine = engine; } prometheus(options) { return this._engine.metrics({ format: "prometheus", ...options }); } json(options) { return this._engine.metrics({ format: "json", ...options }); } }; __name(MetricsClient, "MetricsClient"); // src/runtime/utils/applyMixins.ts function applyMixins(derivedCtor, constructors) { for (const baseCtor of constructors) { for (const name of Object.getOwnPropertyNames(baseCtor.prototype)) { Object.defineProperty( derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name) ?? /* @__PURE__ */ Object.create(null) ); } } } __name(applyMixins, "applyMixins"); // src/runtime/utils/common.ts var import_chalk8 = __toESM(require_source()); // ../../node_modules/.pnpm/decimal.js@10.4.2/node_modules/decimal.js/decimal.mjs var EXP_LIMIT = 9e15; var MAX_DIGITS = 1e9; var NUMERALS = "0123456789abcdef"; var LN10 = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058"; var PI = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789"; var DEFAULTS = { precision: 20, rounding: 4, modulo: 1, toExpNeg: -7, toExpPos: 21, minE: -EXP_LIMIT, maxE: EXP_LIMIT, crypto: false }; var inexact; var quadrant; var external = true; var decimalError = "[DecimalError] "; var invalidArgument = decimalError + "Invalid argument: "; var precisionLimitExceeded = decimalError + "Precision limit exceeded"; var cryptoUnavailable = decimalError + "crypto unavailable"; var tag = "[object Decimal]"; var mathfloor = Math.floor; var mathpow = Math.pow; var isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i; var isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i; var isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i; var isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i; var BASE = 1e7; var LOG_BASE = 7; var MAX_SAFE_INTEGER = 9007199254740991; var LN10_PRECISION = LN10.length - 1; var PI_PRECISION = PI.length - 1; var P2 = { toStringTag: tag }; P2.absoluteValue = P2.abs = function() { var x = new this.constructor(this); if (x.s < 0) x.s = 1; return finalise(x); }; P2.ceil = function() { return finalise(new this.constructor(this), this.e + 1, 2); }; P2.clampedTo = P2.clamp = function(min2, max2) { var k, x = this, Ctor = x.constructor; min2 = new Ctor(min2); max2 = new Ctor(max2); if (!min2.s || !max2.s) return new Ctor(NaN); if (min2.gt(max2)) throw Error(invalidArgument + max2); k = x.cmp(min2); return k < 0 ? min2 : x.cmp(max2) > 0 ? max2 : new Ctor(x); }; P2.comparedTo = P2.cmp = function(y) { var i, j, xdL, ydL, x = this, xd = x.d, yd = (y = new x.constructor(y)).d, xs = x.s, ys = y.s; if (!xd || !yd) { return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1; } if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0; if (xs !== ys) return xs; if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1; xdL = xd.length; ydL = yd.length; for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) { if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1; } return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1; }; P2.cosine = P2.cos = function() { var pr, rm, x = this, Ctor = x.constructor; if (!x.d) return new Ctor(NaN); if (!x.d[0]) return new Ctor(1); pr = Ctor.precision; rm = Ctor.rounding; Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; Ctor.rounding = 1; x = cosine(Ctor, toLessThanHalfPi(Ctor, x)); Ctor.precision = pr; Ctor.rounding = rm; return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true); }; P2.cubeRoot = P2.cbrt = function() { var e2, m2, n2, r2, rep, s, sd, t2, t3, t3plusx, x = this, Ctor = x.constructor; if (!x.isFinite() || x.isZero()) return new Ctor(x); external = false; s = x.s * mathpow(x.s * x, 1 / 3); if (!s || Math.abs(s) == 1 / 0) { n2 = digitsToString(x.d); e2 = x.e; if (s = (e2 - n2.length + 1) % 3) n2 += s == 1 || s == -2 ? "0" : "00"; s = mathpow(n2, 1 / 3); e2 = mathfloor((e2 + 1) / 3) - (e2 % 3 == (e2 < 0 ? -1 : 2)); if (s == 1 / 0) { n2 = "5e" + e2; } else { n2 = s.toExponential(); n2 = n2.slice(0, n2.indexOf("e") + 1) + e2; } r2 = new Ctor(n2); r2.s = x.s; } else { r2 = new Ctor(s.toString()); } sd = (e2 = Ctor.precision) + 3; for (; ; ) { t2 = r2; t3 = t2.times(t2).times(t2); t3plusx = t3.plus(x); r2 = divide(t3plusx.plus(x).times(t2), t3plusx.plus(t3), sd + 2, 1); if (digitsToString(t2.d).slice(0, sd) === (n2 = digitsToString(r2.d)).slice(0, sd)) { n2 = n2.slice(sd - 3, sd + 1); if (n2 == "9999" || !rep && n2 == "4999") { if (!rep) { finalise(t2, e2 + 1, 0); if (t2.times(t2).times(t2).eq(x)) { r2 = t2; break; } } sd += 4; rep = 1; } else { if (!+n2 || !+n2.slice(1) && n2.charAt(0) == "5") { finalise(r2, e2 + 1, 1); m2 = !r2.times(r2).times(r2).eq(x); } break; } } } external = true; return finalise(r2, e2, Ctor.rounding, m2); }; P2.decimalPlaces = P2.dp = function() { var w2, d2 = this.d, n2 = NaN; if (d2) { w2 = d2.length - 1; n2 = (w2 - mathfloor(this.e / LOG_BASE)) * LOG_BASE; w2 = d2[w2]; if (w2) for (; w2 % 10 == 0; w2 /= 10) n2--; if (n2 < 0) n2 = 0; } return n2; }; P2.dividedBy = P2.div = function(y) { return divide(this, new this.constructor(y)); }; P2.dividedToIntegerBy = P2.divToInt = function(y) { var x = this, Ctor = x.constructor; return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding); }; P2.equals = P2.eq = function(y) { return this.cmp(y) === 0; }; P2.floor = function() { return finalise(new this.constructor(this), this.e + 1, 3); }; P2.greaterThan = P2.gt = function(y) { return this.cmp(y) > 0; }; P2.greaterThanOrEqualTo = P2.gte = function(y) { var k = this.cmp(y); return k == 1 || k === 0; }; P2.hyperbolicCosine = P2.cosh = function() { var k, n2, pr, rm, len, x = this, Ctor = x.constructor, one = new Ctor(1); if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN); if (x.isZero()) return one; pr = Ctor.precision; rm = Ctor.rounding; Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; Ctor.rounding = 1; len = x.d.length; if (len < 32) { k = Math.ceil(len / 3); n2 = (1 / tinyPow(4, k)).toString(); } else { k = 16; n2 = "2.3283064365386962890625e-10"; } x = taylorSeries(Ctor, 1, x.times(n2), new Ctor(1), true); var cosh2_x, i = k, d8 = new Ctor(8); for (; i--; ) { cosh2_x = x.times(x); x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8)))); } return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true); }; P2.hyperbolicSine = P2.sinh = function() { var k, pr, rm, len, x = this, Ctor = x.constructor; if (!x.isFinite() || x.isZero()) return new Ctor(x); pr = Ctor.precision; rm = Ctor.rounding; Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; Ctor.rounding = 1; len = x.d.length; if (len < 3) { x = taylorSeries(Ctor, 2, x, x, true); } else { k = 1.4 * Math.sqrt(len); k = k > 16 ? 16 : k | 0; x = x.times(1 / tinyPow(5, k)); x = taylorSeries(Ctor, 2, x, x, true); var sinh2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20); for (; k--; ) { sinh2_x = x.times(x); x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20)))); } } Ctor.precision = pr; Ctor.rounding = rm; return finalise(x, pr, rm, true); }; P2.hyperbolicTangent = P2.tanh = function() { var pr, rm, x = this, Ctor = x.constructor; if (!x.isFinite()) return new Ctor(x.s); if (x.isZero()) return new Ctor(x); pr = Ctor.precision; rm = Ctor.rounding; Ctor.precision = pr + 7; Ctor.rounding = 1; return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm); }; P2.inverseCosine = P2.acos = function() { var halfPi, x = this, Ctor = x.constructor, k = x.abs().cmp(1), pr = Ctor.precision, rm = Ctor.rounding; if (k !== -1) { return k === 0 ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) : new Ctor(NaN); } if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5); Ctor.precision = pr + 6; Ctor.rounding = 1; x = x.asin(); halfPi = getPi(Ctor, pr + 4, rm).times(0.5); Ctor.precision = pr; Ctor.rounding = rm; return halfPi.minus(x); }; P2.inverseHyperbolicCosine = P2.acosh = function() { var pr, rm, x = this, Ctor = x.constructor; if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN); if (!x.isFinite()) return new Ctor(x); pr = Ctor.precision; rm = Ctor.rounding; Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4; Ctor.rounding = 1; external = false; x = x.times(x).minus(1).sqrt().plus(x); external = true; Ctor.precision = pr; Ctor.rounding = rm; return x.ln(); }; P2.inverseHyperbolicSine = P2.asinh = function() { var pr, rm, x = this, Ctor = x.constructor; if (!x.isFinite() || x.isZero()) return new Ctor(x); pr = Ctor.precision; rm = Ctor.rounding; Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6; Ctor.rounding = 1; external = false; x = x.times(x).plus(1).sqrt().plus(x); external = true; Ctor.precision = pr; Ctor.rounding = rm; return x.ln(); }; P2.inverseHyperbolicTangent = P2.atanh = function() { var pr, rm, wpr, xsd, x = this, Ctor = x.constructor; if (!x.isFinite()) return new Ctor(NaN); if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN); pr = Ctor.precision; rm = Ctor.rounding; xsd = x.sd(); if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true); Ctor.precision = wpr = xsd - x.e; x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1); Ctor.precision = pr + 4; Ctor.rounding = 1; x = x.ln(); Ctor.precision = pr; Ctor.rounding = rm; return x.times(0.5); }; P2.inverseSine = P2.asin = function() { var halfPi, k, pr, rm, x = this, Ctor = x.constructor; if (x.isZero()) return new Ctor(x); k = x.abs().cmp(1); pr = Ctor.precision; rm = Ctor.rounding; if (k !== -1) { if (k === 0) { halfPi = getPi(Ctor, pr + 4, rm).times(0.5); halfPi.s = x.s; return halfPi; } return new Ctor(NaN); } Ctor.precision = pr + 6; Ctor.rounding = 1; x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan(); Ctor.precision = pr; Ctor.rounding = rm; return x.times(2); }; P2.inverseTangent = P2.atan = function() { var i, j, k, n2, px, t2, r2, wpr, x2, x = this, Ctor = x.constructor, pr = Ctor.precision, rm = Ctor.rounding; if (!x.isFinite()) { if (!x.s) return new Ctor(NaN); if (pr + 4 <= PI_PRECISION) { r2 = getPi(Ctor, pr + 4, rm).times(0.5); r2.s = x.s; return r2; } } else if (x.isZero()) { return new Ctor(x); } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) { r2 = getPi(Ctor, pr + 4, rm).times(0.25); r2.s = x.s; return r2; } Ctor.precision = wpr = pr + 10; Ctor.rounding = 1; k = Math.min(28, wpr / LOG_BASE + 2 | 0); for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1)); external = false; j = Math.ceil(wpr / LOG_BASE); n2 = 1; x2 = x.times(x); r2 = new Ctor(x); px = x; for (; i !== -1; ) { px = px.times(x2); t2 = r2.minus(px.div(n2 += 2)); px = px.times(x2); r2 = t2.plus(px.div(n2 += 2)); if (r2.d[j] !== void 0) for (i = j; r2.d[i] === t2.d[i] && i--; ) ; } if (k) r2 = r2.times(2 << k - 1); external = true; return finalise(r2, Ctor.precision = pr, Ctor.rounding = rm, true); }; P2.isFinite = function() { return !!this.d; }; P2.isInteger = P2.isInt = function() { return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2; }; P2.isNaN = function() { return !this.s; }; P2.isNegative = P2.isNeg = function() { return this.s < 0; }; P2.isPositive = P2.isPos = function() { return this.s > 0; }; P2.isZero = function() { return !!this.d && this.d[0] === 0; }; P2.lessThan = P2.lt = function(y) { return this.cmp(y) < 0; }; P2.lessThanOrEqualTo = P2.lte = function(y) { return this.cmp(y) < 1; }; P2.logarithm = P2.log = function(base) { var isBase10, d2, denominator, k, inf, num, sd, r2, arg2 = this, Ctor = arg2.constructor, pr = Ctor.precision, rm = Ctor.rounding, guard = 5; if (base == null) { base = new Ctor(10); isBase10 = true; } else { base = new Ctor(base); d2 = base.d; if (base.s < 0 || !d2 || !d2[0] || base.eq(1)) return new Ctor(NaN); isBase10 = base.eq(10); } d2 = arg2.d; if (arg2.s < 0 || !d2 || !d2[0] || arg2.eq(1)) { return new Ctor(d2 && !d2[0] ? -1 / 0 : arg2.s != 1 ? NaN : d2 ? 0 : 1 / 0); } if (isBase10) { if (d2.length > 1) { inf = true; } else { for (k = d2[0]; k % 10 === 0; ) k /= 10; inf = k !== 1; } } external = false; sd = pr + guard; num = naturalLogarithm(arg2, sd); denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); r2 = divide(num, denominator, sd, 1); if (checkRoundingDigits(r2.d, k = pr, rm)) { do { sd += 10; num = naturalLogarithm(arg2, sd); denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); r2 = divide(num, denominator, sd, 1); if (!inf) { if (+digitsToString(r2.d).slice(k + 1, k + 15) + 1 == 1e14) { r2 = finalise(r2, pr + 1, 0); } break; } } while (checkRoundingDigits(r2.d, k += 10, rm)); } external = true; return finalise(r2, pr, rm); }; P2.minus = P2.sub = function(y) { var d2, e2, i, j, k, len, pr, rm, xd, xe, xLTy, yd, x = this, Ctor = x.constructor; y = new Ctor(y); if (!x.d || !y.d) { if (!x.s || !y.s) y = new Ctor(NaN); else if (x.d) y.s = -y.s; else y = new Ctor(y.d || x.s !== y.s ? x : NaN); return y; } if (x.s != y.s) { y.s = -y.s; return x.plus(y); } xd = x.d; yd = y.d; pr = Ctor.precision; rm = Ctor.rounding; if (!xd[0] || !yd[0]) { if (yd[0]) y.s = -y.s; else if (xd[0]) y = new Ctor(x); else return new Ctor(rm === 3 ? -0 : 0); return external ? finalise(y, pr, rm) : y; } e2 = mathfloor(y.e / LOG_BASE); xe = mathfloor(x.e / LOG_BASE); xd = xd.slice(); k = xe - e2; if (k) { xLTy = k < 0; if (xLTy) { d2 = xd; k = -k; len = yd.length; } else { d2 = yd; e2 = xe; len = xd.length; } i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2; if (k > i) { k = i; d2.length = 1; } d2.reverse(); for (i = k; i--; ) d2.push(0); d2.reverse(); } else { i = xd.length; len = yd.length; xLTy = i < len; if (xLTy) len = i; for (i = 0; i < len; i++) { if (xd[i] != yd[i]) { xLTy = xd[i] < yd[i]; break; } } k = 0; } if (xLTy) { d2 = xd; xd = yd; yd = d2; y.s = -y.s; } len = xd.length; for (i = yd.length - len; i > 0; --i) xd[len++] = 0; for (i = yd.length; i > k; ) { if (xd[--i] < yd[i]) { for (j = i; j && xd[--j] === 0; ) xd[j] = BASE - 1; --xd[j]; xd[i] += BASE; } xd[i] -= yd[i]; } for (; xd[--len] === 0; ) xd.pop(); for (; xd[0] === 0; xd.shift()) --e2; if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0); y.d = xd; y.e = getBase10Exponent(xd, e2); return external ? finalise(y, pr, rm) : y; }; P2.modulo = P2.mod = function(y) { var q, x = this, Ctor = x.constructor; y = new Ctor(y); if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN); if (!y.d || x.d && !x.d[0]) { return finalise(new Ctor(x), Ctor.precision, Ctor.rounding); } external = false; if (Ctor.modulo == 9) { q = divide(x, y.abs(), 0, 3, 1); q.s *= y.s; } else { q = divide(x, y, 0, Ctor.modulo, 1); } q = q.times(y); external = true; return x.minus(q); }; P2.naturalExponential = P2.exp = function() { return naturalExponential(this); }; P2.naturalLogarithm = P2.ln = function() { return naturalLogarithm(this); }; P2.negated = P2.neg = function() { var x = new this.constructor(this); x.s = -x.s; return finalise(x); }; P2.plus = P2.add = function(y) { var carry, d2, e2, i, k, len, pr, rm, xd, yd, x = this, Ctor = x.constructor; y = new Ctor(y); if (!x.d || !y.d) { if (!x.s || !y.s) y = new Ctor(NaN); else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN); return y; } if (x.s != y.s) { y.s = -y.s; return x.minus(y); } xd = x.d; yd = y.d; pr = Ctor.precision; rm = Ctor.rounding; if (!xd[0] || !yd[0]) { if (!yd[0]) y = new Ctor(x); return external ? finalise(y, pr, rm) : y; } k = mathfloor(x.e / LOG_BASE); e2 = mathfloor(y.e / LOG_BASE); xd = xd.slice(); i = k - e2; if (i) { if (i < 0) { d2 = xd; i = -i; len = yd.length; } else { d2 = yd; e2 = k; len = xd.length; } k = Math.ceil(pr / LOG_BASE); len = k > len ? k + 1 : len + 1; if (i > len) { i = len; d2.length = 1; } d2.reverse(); for (; i--; ) d2.push(0); d2.reverse(); } len = xd.length; i = yd.length; if (len - i < 0) { i = len; d2 = yd; yd = xd; xd = d2; } for (carry = 0; i; ) { carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0; xd[i] %= BASE; } if (carry) { xd.unshift(carry); ++e2; } for (len = xd.length; xd[--len] == 0; ) xd.pop(); y.d = xd; y.e = getBase10Exponent(xd, e2); return external ? finalise(y, pr, rm) : y; }; P2.precision = P2.sd = function(z) { var k, x = this; if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z); if (x.d) { k = getPrecision(x.d); if (z && x.e + 1 > k) k = x.e + 1; } else { k = NaN; } return k; }; P2.round = function() { var x = this, Ctor = x.constructor; return finalise(new Ctor(x), x.e + 1, Ctor.rounding); }; P2.sine = P2.sin = function() { var pr, rm, x = this, Ctor = x.constructor; if (!x.isFinite()) return new Ctor(NaN); if (x.isZero()) return new Ctor(x); pr = Ctor.precision; rm = Ctor.rounding; Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; Ctor.rounding = 1; x = sine(Ctor, toLessThanHalfPi(Ctor, x)); Ctor.precision = pr; Ctor.rounding = rm; return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true); }; P2.squareRoot = P2.sqrt = function() { var m2, n2, sd, r2, rep, t2, x = this, d2 = x.d, e2 = x.e, s = x.s, Ctor = x.constructor; if (s !== 1 || !d2 || !d2[0]) { return new Ctor(!s || s < 0 && (!d2 || d2[0]) ? NaN : d2 ? x : 1 / 0); } external = false; s = Math.sqrt(+x); if (s == 0 || s == 1 / 0) { n2 = digitsToString(d2); if ((n2.length + e2) % 2 == 0) n2 += "0"; s = Math.sqrt(n2); e2 = mathfloor((e2 + 1) / 2) - (e2 < 0 || e2 % 2); if (s == 1 / 0) { n2 = "5e" + e2; } else { n2 = s.toExponential(); n2 = n2.slice(0, n2.indexOf("e") + 1) + e2; } r2 = new Ctor(n2); } else { r2 = new Ctor(s.toString()); } sd = (e2 = Ctor.precision) + 3; for (; ; ) { t2 = r2; r2 = t2.plus(divide(x, t2, sd + 2, 1)).times(0.5); if (digitsToString(t2.d).slice(0, sd) === (n2 = digitsToString(r2.d)).slice(0, sd)) { n2 = n2.slice(sd - 3, sd + 1); if (n2 == "9999" || !rep && n2 == "4999") { if (!rep) { finalise(t2, e2 + 1, 0); if (t2.times(t2).eq(x)) { r2 = t2; break; } } sd += 4; rep = 1; } else { if (!+n2 || !+n2.slice(1) && n2.charAt(0) == "5") { finalise(r2, e2 + 1, 1); m2 = !r2.times(r2).eq(x); } break; } } } external = true; return finalise(r2, e2, Ctor.rounding, m2); }; P2.tangent = P2.tan = function() { var pr, rm, x = this, Ctor = x.constructor; if (!x.isFinite()) return new Ctor(NaN); if (x.isZero()) return new Ctor(x); pr = Ctor.precision; rm = Ctor.rounding; Ctor.precision = pr + 10; Ctor.rounding = 1; x = x.sin(); x.s = 1; x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0); Ctor.precision = pr; Ctor.rounding = rm; return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true); }; P2.times = P2.mul = function(y) { var carry, e2, i, k, r2, rL, t2, xdL, ydL, x = this, Ctor = x.constructor, xd = x.d, yd = (y = new Ctor(y)).d; y.s *= x.s; if (!xd || !xd[0] || !yd || !yd[0]) { return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd ? NaN : !xd || !yd ? y.s / 0 : y.s * 0); } e2 = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE); xdL = xd.length; ydL = yd.length; if (xdL < ydL) { r2 = xd; xd = yd; yd = r2; rL = xdL; xdL = ydL; ydL = rL; } r2 = []; rL = xdL + ydL; for (i = rL; i--; ) r2.push(0); for (i = ydL; --i >= 0; ) { carry = 0; for (k = xdL + i; k > i; ) { t2 = r2[k] + yd[i] * xd[k - i - 1] + carry; r2[k--] = t2 % BASE | 0; carry = t2 / BASE | 0; } r2[k] = (r2[k] + carry) % BASE | 0; } for (; !r2[--rL]; ) r2.pop(); if (carry) ++e2; else r2.shift(); y.d = r2; y.e = getBase10Exponent(r2, e2); return external ? finalise(y, Ctor.precision, Ctor.rounding) : y; }; P2.toBinary = function(sd, rm) { return toStringBinary(this, 2, sd, rm); }; P2.toDecimalPlaces = P2.toDP = function(dp, rm) { var x = this, Ctor = x.constructor; x = new Ctor(x); if (dp === void 0) return x; checkInt32(dp, 0, MAX_DIGITS); if (rm === void 0) rm = Ctor.rounding; else checkInt32(rm, 0, 8); return finalise(x, dp + x.e + 1, rm); }; P2.toExponential = function(dp, rm) { var str, x = this, Ctor = x.constructor; if (dp === void 0) { str = finiteToString(x, true); } else { checkInt32(dp, 0, MAX_DIGITS); if (rm === void 0) rm = Ctor.rounding; else checkInt32(rm, 0, 8); x = finalise(new Ctor(x), dp + 1, rm); str = finiteToString(x, true, dp + 1); } return x.isNeg() && !x.isZero() ? "-" + str : str; }; P2.toFixed = function(dp, rm) { var str, y, x = this, Ctor = x.constructor; if (dp === void 0) { str = finiteToString(x); } else { checkInt32(dp, 0, MAX_DIGITS); if (rm === void 0) rm = Ctor.rounding; else checkInt32(rm, 0, 8); y = finalise(new Ctor(x), dp + x.e + 1, rm); str = finiteToString(y, false, dp + y.e + 1); } return x.isNeg() && !x.isZero() ? "-" + str : str; }; P2.toFraction = function(maxD) { var d2, d0, d1, d22, e2, k, n2, n0, n1, pr, q, r2, x = this, xd = x.d, Ctor = x.constructor; if (!xd) return new Ctor(x); n1 = d0 = new Ctor(1); d1 = n0 = new Ctor(0); d2 = new Ctor(d1); e2 = d2.e = getPrecision(xd) - x.e - 1; k = e2 % LOG_BASE; d2.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k); if (maxD == null) { maxD = e2 > 0 ? d2 : n1; } else { n2 = new Ctor(maxD); if (!n2.isInt() || n2.lt(n1)) throw Error(invalidArgument + n2); maxD = n2.gt(d2) ? e2 > 0 ? d2 : n1 : n2; } external = false; n2 = new Ctor(digitsToString(xd)); pr = Ctor.precision; Ctor.precision = e2 = xd.length * LOG_BASE * 2; for (; ; ) { q = divide(n2, d2, 0, 1, 1); d22 = d0.plus(q.times(d1)); if (d22.cmp(maxD) == 1) break; d0 = d1; d1 = d22; d22 = n1; n1 = n0.plus(q.times(d22)); n0 = d22; d22 = d2; d2 = n2.minus(q.times(d22)); n2 = d22; } d22 = divide(maxD.minus(d0), d1, 0, 1, 1); n0 = n0.plus(d22.times(n1)); d0 = d0.plus(d22.times(d1)); n0.s = n1.s = x.s; r2 = divide(n1, d1, e2, 1).minus(x).abs().cmp(divide(n0, d0, e2, 1).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0]; Ctor.precision = pr; external = true; return r2; }; P2.toHexadecimal = P2.toHex = function(sd, rm) { return toStringBinary(this, 16, sd, rm); }; P2.toNearest = function(y, rm) { var x = this, Ctor = x.constructor; x = new Ctor(x); if (y == null) { if (!x.d) return x; y = new Ctor(1); rm = Ctor.rounding; } else { y = new Ctor(y); if (rm === void 0) { rm = Ctor.rounding; } else { checkInt32(rm, 0, 8); } if (!x.d) return y.s ? x : y; if (!y.d) { if (y.s) y.s = x.s; return y; } } if (y.d[0]) { external = false; x = divide(x, y, 0, rm, 1).times(y); external = true; finalise(x); } else { y.s = x.s; x = y; } return x; }; P2.toNumber = function() { return +this; }; P2.toOctal = function(sd, rm) { return toStringBinary(this, 8, sd, rm); }; P2.toPower = P2.pow = function(y) { var e2, k, pr, r2, rm, s, x = this, Ctor = x.constructor, yn = +(y = new Ctor(y)); if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn)); x = new Ctor(x); if (x.eq(1)) return x; pr = Ctor.precision; rm = Ctor.rounding; if (y.eq(1)) return finalise(x, pr, rm); e2 = mathfloor(y.e / LOG_BASE); if (e2 >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) { r2 = intPow(Ctor, x, k, pr); return y.s < 0 ? new Ctor(1).div(r2) : finalise(r2, pr, rm); } s = x.s; if (s < 0) { if (e2 < y.d.length - 1) return new Ctor(NaN); if ((y.d[e2] & 1) == 0) s = 1; if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) { x.s = s; return x; } } k = mathpow(+x, yn); e2 = k == 0 || !isFinite(k) ? mathfloor(yn * (Math.log("0." + digitsToString(x.d)) / Math.LN10 + x.e + 1)) : new Ctor(k + "").e; if (e2 > Ctor.maxE + 1 || e2 < Ctor.minE - 1) return new Ctor(e2 > 0 ? s / 0 : 0); external = false; Ctor.rounding = x.s = 1; k = Math.min(12, (e2 + "").length); r2 = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr); if (r2.d) { r2 = finalise(r2, pr + 5, 1); if (checkRoundingDigits(r2.d, pr, rm)) { e2 = pr + 10; r2 = finalise(naturalExponential(y.times(naturalLogarithm(x, e2 + k)), e2), e2 + 5, 1); if (+digitsToString(r2.d).slice(pr + 1, pr + 15) + 1 == 1e14) { r2 = finalise(r2, pr + 1, 0); } } } r2.s = s; external = true; Ctor.rounding = rm; return finalise(r2, pr, rm); }; P2.toPrecision = function(sd, rm) { var str, x = this, Ctor = x.constructor; if (sd === void 0) { str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); } else { checkInt32(sd, 1, MAX_DIGITS); if (rm === void 0) rm = Ctor.rounding; else checkInt32(rm, 0, 8); x = finalise(new Ctor(x), sd, rm); str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd); } return x.isNeg() && !x.isZero() ? "-" + str : str; }; P2.toSignificantDigits = P2.toSD = function(sd, rm) { var x = this, Ctor = x.constructor; if (sd === void 0) { sd = Ctor.precision; rm = Ctor.rounding; } else { checkInt32(sd, 1, MAX_DIGITS); if (rm === void 0) rm = Ctor.rounding; else checkInt32(rm, 0, 8); } return finalise(new Ctor(x), sd, rm); }; P2.toString = function() { var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); return x.isNeg() && !x.isZero() ? "-" + str : str; }; P2.truncated = P2.trunc = function() { return finalise(new this.constructor(this), this.e + 1, 1); }; P2.valueOf = P2.toJSON = function() { var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); return x.isNeg() ? "-" + str : str; }; function digitsToString(d2) { var i, k, ws, indexOfLastWord = d2.length - 1, str = "", w2 = d2[0]; if (indexOfLastWord > 0) { str += w2; for (i = 1; i < indexOfLastWord; i++) { ws = d2[i] + ""; k = LOG_BASE - ws.length; if (k) str += getZeroString(k); str += ws; } w2 = d2[i]; ws = w2 + ""; k = LOG_BASE - ws.length; if (k) str += getZeroString(k); } else if (w2 === 0) { return "0"; } for (; w2 % 10 === 0; ) w2 /= 10; return str + w2; } __name(digitsToString, "digitsToString"); function checkInt32(i, min2, max2) { if (i !== ~~i || i < min2 || i > max2) { throw Error(invalidArgument + i); } } __name(checkInt32, "checkInt32"); function checkRoundingDigits(d2, i, rm, repeating) { var di, k, r2, rd; for (k = d2[0]; k >= 10; k /= 10) --i; if (--i < 0) { i += LOG_BASE; di = 0; } else { di = Math.ceil((i + 1) / LOG_BASE); i %= LOG_BASE; } k = mathpow(10, LOG_BASE - i); rd = d2[di] % k | 0; if (repeating == null) { if (i < 3) { if (i == 0) rd = rd / 100 | 0; else if (i == 1) rd = rd / 10 | 0; r2 = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 5e4 || rd == 0; } else { r2 = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) && (d2[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 || (rd == k / 2 || rd == 0) && (d2[di + 1] / k / 100 | 0) == 0; } } else { if (i < 4) { if (i == 0) rd = rd / 1e3 | 0; else if (i == 1) rd = rd / 100 | 0; else if (i == 2) rd = rd / 10 | 0; r2 = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999; } else { r2 = ((repeating || rm < 4) && rd + 1 == k || !repeating && rm > 3 && rd + 1 == k / 2) && (d2[di + 1] / k / 1e3 | 0) == mathpow(10, i - 3) - 1; } } return r2; } __name(checkRoundingDigits, "checkRoundingDigits"); function convertBase(str, baseIn, baseOut) { var j, arr = [0], arrL, i = 0, strL = str.length; for (; i < strL; ) { for (arrL = arr.length; arrL--; ) arr[arrL] *= baseIn; arr[0] += NUMERALS.indexOf(str.charAt(i++)); for (j = 0; j < arr.length; j++) { if (arr[j] > baseOut - 1) { if (arr[j + 1] === void 0) arr[j + 1] = 0; arr[j + 1] += arr[j] / baseOut | 0; arr[j] %= baseOut; } } } return arr.reverse(); } __name(convertBase, "convertBase"); function cosine(Ctor, x) { var k, len, y; if (x.isZero()) return x; len = x.d.length; if (len < 32) { k = Math.ceil(len / 3); y = (1 / tinyPow(4, k)).toString(); } else { k = 16; y = "2.3283064365386962890625e-10"; } Ctor.precision += k; x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1)); for (var i = k; i--; ) { var cos2x = x.times(x); x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1); } Ctor.precision -= k; return x; } __name(cosine, "cosine"); var divide = function() { function multiplyInteger(x, k, base) { var temp, carry = 0, i = x.length; for (x = x.slice(); i--; ) { temp = x[i] * k + carry; x[i] = temp % base | 0; carry = temp / base | 0; } if (carry) x.unshift(carry); return x; } __name(multiplyInteger, "multiplyInteger"); function compare(a, b2, aL, bL) { var i, r2; if (aL != bL) { r2 = aL > bL ? 1 : -1; } else { for (i = r2 = 0; i < aL; i++) { if (a[i] != b2[i]) { r2 = a[i] > b2[i] ? 1 : -1; break; } } } return r2; } __name(compare, "compare"); function subtract(a, b2, aL, base) { var i = 0; for (; aL--; ) { a[aL] -= i; i = a[aL] < b2[aL] ? 1 : 0; a[aL] = i * base + a[aL] - b2[aL]; } for (; !a[0] && a.length > 1; ) a.shift(); } __name(subtract, "subtract"); return function(x, y, pr, rm, dp, base) { var cmp, e2, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t2, xi, xL, yd0, yL, yz, Ctor = x.constructor, sign2 = x.s == y.s ? 1 : -1, xd = x.d, yd = y.d; if (!xd || !xd[0] || !yd || !yd[0]) { return new Ctor( !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN : xd && xd[0] == 0 || !yd ? sign2 * 0 : sign2 / 0 ); } if (base) { logBase = 1; e2 = x.e - y.e; } else { base = BASE; logBase = LOG_BASE; e2 = mathfloor(x.e / logBase) - mathfloor(y.e / logBase); } yL = yd.length; xL = xd.length; q = new Ctor(sign2); qd = q.d = []; for (i = 0; yd[i] == (xd[i] || 0); i++) ; if (yd[i] > (xd[i] || 0)) e2--; if (pr == null) { sd = pr = Ctor.precision; rm = Ctor.rounding; } else if (dp) { sd = pr + (x.e - y.e) + 1; } else { sd = pr; } if (sd < 0) { qd.push(1); more = true; } else { sd = sd / logBase + 2 | 0; i = 0; if (yL == 1) { k = 0; yd = yd[0]; sd++; for (; (i < xL || k) && sd--; i++) { t2 = k * base + (xd[i] || 0); qd[i] = t2 / yd | 0; k = t2 % yd | 0; } more = k || i < xL; } else { k = base / (yd[0] + 1) | 0; if (k > 1) { yd = multiplyInteger(yd, k, base); xd = multiplyInteger(xd, k, base); yL = yd.length; xL = xd.length; } xi = yL; rem = xd.slice(0, yL); remL = rem.length; for (; remL < yL; ) rem[remL++] = 0; yz = yd.slice(); yz.unshift(0); yd0 = yd[0]; if (yd[1] >= base / 2) ++yd0; do { k = 0; cmp = compare(yd, rem, yL, remL); if (cmp < 0) { rem0 = rem[0]; if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); k = rem0 / yd0 | 0; if (k > 1) { if (k >= base) k = base - 1; prod = multiplyInteger(yd, k, base); prodL = prod.length; remL = rem.length; cmp = compare(prod, rem, prodL, remL); if (cmp == 1) { k--; subtract(prod, yL < prodL ? yz : yd, prodL, base); } } else { if (k == 0) cmp = k = 1; prod = yd.slice(); } prodL = prod.length; if (prodL < remL) prod.unshift(0); subtract(rem, prod, remL, base); if (cmp == -1) { remL = rem.length; cmp = compare(yd, rem, yL, remL); if (cmp < 1) { k++; subtract(rem, yL < remL ? yz : yd, remL, base); } } remL = rem.length; } else if (cmp === 0) { k++; rem = [0]; } qd[i++] = k; if (cmp && rem[0]) { rem[remL++] = xd[xi] || 0; } else { rem = [xd[xi]]; remL = 1; } } while ((xi++ < xL || rem[0] !== void 0) && sd--); more = rem[0] !== void 0; } if (!qd[0]) qd.shift(); } if (logBase == 1) { q.e = e2; inexact = more; } else { for (i = 1, k = qd[0]; k >= 10; k /= 10) i++; q.e = i + e2 * logBase - 1; finalise(q, dp ? pr + q.e + 1 : pr, rm, more); } return q; }; }(); function finalise(x, sd, rm, isTruncated) { var digits, i, j, k, rd, roundUp, w2, xd, xdi, Ctor = x.constructor; out: if (sd != null) { xd = x.d; if (!xd) return x; for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++; i = sd - digits; if (i < 0) { i += LOG_BASE; j = sd; w2 = xd[xdi = 0]; rd = w2 / mathpow(10, digits - j - 1) % 10 | 0; } else { xdi = Math.ceil((i + 1) / LOG_BASE); k = xd.length; if (xdi >= k) { if (isTruncated) { for (; k++ <= xdi; ) xd.push(0); w2 = rd = 0; digits = 1; i %= LOG_BASE; j = i - LOG_BASE + 1; } else { break out; } } else { w2 = k = xd[xdi]; for (digits = 1; k >= 10; k /= 10) digits++; i %= LOG_BASE; j = i - LOG_BASE + digits; rd = j < 0 ? 0 : w2 / mathpow(10, digits - j - 1) % 10 | 0; } } isTruncated = isTruncated || sd < 0 || xd[xdi + 1] !== void 0 || (j < 0 ? w2 : w2 % mathpow(10, digits - j - 1)); roundUp = rm < 4 ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 && (i > 0 ? j > 0 ? w2 / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7)); if (sd < 1 || !xd[0]) { xd.length = 0; if (roundUp) { sd -= x.e + 1; xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE); x.e = -sd || 0; } else { xd[0] = x.e = 0; } return x; } if (i == 0) { xd.length = xdi; k = 1; xdi--; } else { xd.length = xdi + 1; k = mathpow(10, LOG_BASE - i); xd[xdi] = j > 0 ? (w2 / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0; } if (roundUp) { for (; ; ) { if (xdi == 0) { for (i = 1, j = xd[0]; j >= 10; j /= 10) i++; j = xd[0] += k; for (k = 1; j >= 10; j /= 10) k++; if (i != k) { x.e++; if (xd[0] == BASE) xd[0] = 1; } break; } else { xd[xdi] += k; if (xd[xdi] != BASE) break; xd[xdi--] = 0; k = 1; } } } for (i = xd.length; xd[--i] === 0; ) xd.pop(); } if (external) { if (x.e > Ctor.maxE) { x.d = null; x.e = NaN; } else if (x.e < Ctor.minE) { x.e = 0; x.d = [0]; } } return x; } __name(finalise, "finalise"); function finiteToString(x, isExp, sd) { if (!x.isFinite()) return nonFiniteToString(x); var k, e2 = x.e, str = digitsToString(x.d), len = str.length; if (isExp) { if (sd && (k = sd - len) > 0) { str = str.charAt(0) + "." + str.slice(1) + getZeroString(k); } else if (len > 1) { str = str.charAt(0) + "." + str.slice(1); } str = str + (x.e < 0 ? "e" : "e+") + x.e; } else if (e2 < 0) { str = "0." + getZeroString(-e2 - 1) + str; if (sd && (k = sd - len) > 0) str += getZeroString(k); } else if (e2 >= len) { str += getZeroString(e2 + 1 - len); if (sd && (k = sd - e2 - 1) > 0) str = str + "." + getZeroString(k); } else { if ((k = e2 + 1) < len) str = str.slice(0, k) + "." + str.slice(k); if (sd && (k = sd - len) > 0) { if (e2 + 1 === len) str += "."; str += getZeroString(k); } } return str; } __name(finiteToString, "finiteToString"); function getBase10Exponent(digits, e2) { var w2 = digits[0]; for (e2 *= LOG_BASE; w2 >= 10; w2 /= 10) e2++; return e2; } __name(getBase10Exponent, "getBase10Exponent"); function getLn10(Ctor, sd, pr) { if (sd > LN10_PRECISION) { external = true; if (pr) Ctor.precision = pr; throw Error(precisionLimitExceeded); } return finalise(new Ctor(LN10), sd, 1, true); } __name(getLn10, "getLn10"); function getPi(Ctor, sd, rm) { if (sd > PI_PRECISION) throw Error(precisionLimitExceeded); return finalise(new Ctor(PI), sd, rm, true); } __name(getPi, "getPi"); function getPrecision(digits) { var w2 = digits.length - 1, len = w2 * LOG_BASE + 1; w2 = digits[w2]; if (w2) { for (; w2 % 10 == 0; w2 /= 10) len--; for (w2 = digits[0]; w2 >= 10; w2 /= 10) len++; } return len; } __name(getPrecision, "getPrecision"); function getZeroString(k) { var zs = ""; for (; k--; ) zs += "0"; return zs; } __name(getZeroString, "getZeroString"); function intPow(Ctor, x, n2, pr) { var isTruncated, r2 = new Ctor(1), k = Math.ceil(pr / LOG_BASE + 4); external = false; for (; ; ) { if (n2 % 2) { r2 = r2.times(x); if (truncate(r2.d, k)) isTruncated = true; } n2 = mathfloor(n2 / 2); if (n2 === 0) { n2 = r2.d.length - 1; if (isTruncated && r2.d[n2] === 0) ++r2.d[n2]; break; } x = x.times(x); truncate(x.d, k); } external = true; return r2; } __name(intPow, "intPow"); function isOdd(n2) { return n2.d[n2.d.length - 1] & 1; } __name(isOdd, "isOdd"); function maxOrMin(Ctor, args, ltgt) { var y, x = new Ctor(args[0]), i = 0; for (; ++i < args.length; ) { y = new Ctor(args[i]); if (!y.s) { x = y; break; } else if (x[ltgt](y)) { x = y; } } return x; } __name(maxOrMin, "maxOrMin"); function naturalExponential(x, sd) { var denominator, guard, j, pow2, sum3, t2, wpr, rep = 0, i = 0, k = 0, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision; if (!x.d || !x.d[0] || x.e > 17) { return new Ctor(x.d ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0 : x.s ? x.s < 0 ? 0 : x : 0 / 0); } if (sd == null) { external = false; wpr = pr; } else { wpr = sd; } t2 = new Ctor(0.03125); while (x.e > -2) { x = x.times(t2); k += 5; } guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0; wpr += guard; denominator = pow2 = sum3 = new Ctor(1); Ctor.precision = wpr; for (; ; ) { pow2 = finalise(pow2.times(x), wpr, 1); denominator = denominator.times(++i); t2 = sum3.plus(divide(pow2, denominator, wpr, 1)); if (digitsToString(t2.d).slice(0, wpr) === digitsToString(sum3.d).slice(0, wpr)) { j = k; while (j--) sum3 = finalise(sum3.times(sum3), wpr, 1); if (sd == null) { if (rep < 3 && checkRoundingDigits(sum3.d, wpr - guard, rm, rep)) { Ctor.precision = wpr += 10; denominator = pow2 = t2 = new Ctor(1); i = 0; rep++; } else { return finalise(sum3, Ctor.precision = pr, rm, external = true); } } else { Ctor.precision = pr; return sum3; } } sum3 = t2; } } __name(naturalExponential, "naturalExponential"); function naturalLogarithm(y, sd) { var c, c0, denominator, e2, numerator, rep, sum3, t2, wpr, x1, x2, n2 = 1, guard = 10, x = y, xd = x.d, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision; if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) { return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x); } if (sd == null) { external = false; wpr = pr; } else { wpr = sd; } Ctor.precision = wpr += guard; c = digitsToString(xd); c0 = c.charAt(0); if (Math.abs(e2 = x.e) < 15e14) { while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) { x = x.times(y); c = digitsToString(x.d); c0 = c.charAt(0); n2++; } e2 = x.e; if (c0 > 1) { x = new Ctor("0." + c); e2++; } else { x = new Ctor(c0 + "." + c.slice(1)); } } else { t2 = getLn10(Ctor, wpr + 2, pr).times(e2 + ""); x = naturalLogarithm(new Ctor(c0 + "." + c.slice(1)), wpr - guard).plus(t2); Ctor.precision = pr; return sd == null ? finalise(x, pr, rm, external = true) : x; } x1 = x; sum3 = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1); x2 = finalise(x.times(x), wpr, 1); denominator = 3; for (; ; ) { numerator = finalise(numerator.times(x2), wpr, 1); t2 = sum3.plus(divide(numerator, new Ctor(denominator), wpr, 1)); if (digitsToString(t2.d).slice(0, wpr) === digitsToString(sum3.d).slice(0, wpr)) { sum3 = sum3.times(2); if (e2 !== 0) sum3 = sum3.plus(getLn10(Ctor, wpr + 2, pr).times(e2 + "")); sum3 = divide(sum3, new Ctor(n2), wpr, 1); if (sd == null) { if (checkRoundingDigits(sum3.d, wpr - guard, rm, rep)) { Ctor.precision = wpr += guard; t2 = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1); x2 = finalise(x.times(x), wpr, 1); denominator = rep = 1; } else { return finalise(sum3, Ctor.precision = pr, rm, external = true); } } else { Ctor.precision = pr; return sum3; } } sum3 = t2; denominator += 2; } } __name(naturalLogarithm, "naturalLogarithm"); function nonFiniteToString(x) { return String(x.s * x.s / 0); } __name(nonFiniteToString, "nonFiniteToString"); function parseDecimal(x, str) { var e2, i, len; if ((e2 = str.indexOf(".")) > -1) str = str.replace(".", ""); if ((i = str.search(/e/i)) > 0) { if (e2 < 0) e2 = i; e2 += +str.slice(i + 1); str = str.substring(0, i); } else if (e2 < 0) { e2 = str.length; } for (i = 0; str.charCodeAt(i) === 48; i++) ; for (len = str.length; str.charCodeAt(len - 1) === 48; --len) ; str = str.slice(i, len); if (str) { len -= i; x.e = e2 = e2 - i - 1; x.d = []; i = (e2 + 1) % LOG_BASE; if (e2 < 0) i += LOG_BASE; if (i < len) { if (i) x.d.push(+str.slice(0, i)); for (len -= LOG_BASE; i < len; ) x.d.push(+str.slice(i, i += LOG_BASE)); str = str.slice(i); i = LOG_BASE - str.length; } else { i -= len; } for (; i--; ) str += "0"; x.d.push(+str); if (external) { if (x.e > x.constructor.maxE) { x.d = null; x.e = NaN; } else if (x.e < x.constructor.minE) { x.e = 0; x.d = [0]; } } } else { x.e = 0; x.d = [0]; } return x; } __name(parseDecimal, "parseDecimal"); function parseOther(x, str) { var base, Ctor, divisor, i, isFloat, len, p2, xd, xe; if (str.indexOf("_") > -1) { str = str.replace(/(\d)_(?=\d)/g, "$1"); if (isDecimal.test(str)) return parseDecimal(x, str); } else if (str === "Infinity" || str === "NaN") { if (!+str) x.s = NaN; x.e = NaN; x.d = null; return x; } if (isHex.test(str)) { base = 16; str = str.toLowerCase(); } else if (isBinary.test(str)) { base = 2; } else if (isOctal.test(str)) { base = 8; } else { throw Error(invalidArgument + str); } i = str.search(/p/i); if (i > 0) { p2 = +str.slice(i + 1); str = str.substring(2, i); } else { str = str.slice(2); } i = str.indexOf("."); isFloat = i >= 0; Ctor = x.constructor; if (isFloat) { str = str.replace(".", ""); len = str.length; i = len - i; divisor = intPow(Ctor, new Ctor(base), i, i * 2); } xd = convertBase(str, base, BASE); xe = xd.length - 1; for (i = xe; xd[i] === 0; --i) xd.pop(); if (i < 0) return new Ctor(x.s * 0); x.e = getBase10Exponent(xd, xe); x.d = xd; external = false; if (isFloat) x = divide(x, divisor, len * 4); if (p2) x = x.times(Math.abs(p2) < 54 ? mathpow(2, p2) : Decimal.pow(2, p2)); external = true; return x; } __name(parseOther, "parseOther"); function sine(Ctor, x) { var k, len = x.d.length; if (len < 3) { return x.isZero() ? x : taylorSeries(Ctor, 2, x, x); } k = 1.4 * Math.sqrt(len); k = k > 16 ? 16 : k | 0; x = x.times(1 / tinyPow(5, k)); x = taylorSeries(Ctor, 2, x, x); var sin2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20); for (; k--; ) { sin2_x = x.times(x); x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20)))); } return x; } __name(sine, "sine"); function taylorSeries(Ctor, n2, x, y, isHyperbolic) { var j, t2, u, x2, i = 1, pr = Ctor.precision, k = Math.ceil(pr / LOG_BASE); external = false; x2 = x.times(x); u = new Ctor(y); for (; ; ) { t2 = divide(u.times(x2), new Ctor(n2++ * n2++), pr, 1); u = isHyperbolic ? y.plus(t2) : y.minus(t2); y = divide(t2.times(x2), new Ctor(n2++ * n2++), pr, 1); t2 = u.plus(y); if (t2.d[k] !== void 0) { for (j = k; t2.d[j] === u.d[j] && j--; ) ; if (j == -1) break; } j = u; u = y; y = t2; t2 = j; i++; } external = true; t2.d.length = k + 1; return t2; } __name(taylorSeries, "taylorSeries"); function tinyPow(b2, e2) { var n2 = b2; while (--e2) n2 *= b2; return n2; } __name(tinyPow, "tinyPow"); function toLessThanHalfPi(Ctor, x) { var t2, isNeg = x.s < 0, pi = getPi(Ctor, Ctor.precision, 1), halfPi = pi.times(0.5); x = x.abs(); if (x.lte(halfPi)) { quadrant = isNeg ? 4 : 1; return x; } t2 = x.divToInt(pi); if (t2.isZero()) { quadrant = isNeg ? 3 : 2; } else { x = x.minus(t2.times(pi)); if (x.lte(halfPi)) { quadrant = isOdd(t2) ? isNeg ? 2 : 3 : isNeg ? 4 : 1; return x; } quadrant = isOdd(t2) ? isNeg ? 1 : 4 : isNeg ? 3 : 2; } return x.minus(pi).abs(); } __name(toLessThanHalfPi, "toLessThanHalfPi"); function toStringBinary(x, baseOut, sd, rm) { var base, e2, i, k, len, roundUp, str, xd, y, Ctor = x.constructor, isExp = sd !== void 0; if (isExp) { checkInt32(sd, 1, MAX_DIGITS); if (rm === void 0) rm = Ctor.rounding; else checkInt32(rm, 0, 8); } else { sd = Ctor.precision; rm = Ctor.rounding; } if (!x.isFinite()) { str = nonFiniteToString(x); } else { str = finiteToString(x); i = str.indexOf("."); if (isExp) { base = 2; if (baseOut == 16) { sd = sd * 4 - 3; } else if (baseOut == 8) { sd = sd * 3 - 2; } } else { base = baseOut; } if (i >= 0) { str = str.replace(".", ""); y = new Ctor(1); y.e = str.length - i; y.d = convertBase(finiteToString(y), 10, base); y.e = y.d.length; } xd = convertBase(str, 10, base); e2 = len = xd.length; for (; xd[--len] == 0; ) xd.pop(); if (!xd[0]) { str = isExp ? "0p+0" : "0"; } else { if (i < 0) { e2--; } else { x = new Ctor(x); x.d = xd; x.e = e2; x = divide(x, y, sd, rm, 0, base); xd = x.d; e2 = x.e; roundUp = inexact; } i = xd[sd]; k = base / 2; roundUp = roundUp || xd[sd + 1] !== void 0; roundUp = rm < 4 ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2)) : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 || rm === (x.s < 0 ? 8 : 7)); xd.length = sd; if (roundUp) { for (; ++xd[--sd] > base - 1; ) { xd[sd] = 0; if (!sd) { ++e2; xd.unshift(1); } } } for (len = xd.length; !xd[len - 1]; --len) ; for (i = 0, str = ""; i < len; i++) str += NUMERALS.charAt(xd[i]); if (isExp) { if (len > 1) { if (baseOut == 16 || baseOut == 8) { i = baseOut == 16 ? 4 : 3; for (--len; len % i; len++) str += "0"; xd = convertBase(str, base, baseOut); for (len = xd.length; !xd[len - 1]; --len) ; for (i = 1, str = "1."; i < len; i++) str += NUMERALS.charAt(xd[i]); } else { str = str.charAt(0) + "." + str.slice(1); } } str = str + (e2 < 0 ? "p" : "p+") + e2; } else if (e2 < 0) { for (; ++e2; ) str = "0" + str; str = "0." + str; } else { if (++e2 > len) for (e2 -= len; e2--; ) str += "0"; else if (e2 < len) str = str.slice(0, e2) + "." + str.slice(e2); } } str = (baseOut == 16 ? "0x" : baseOut == 2 ? "0b" : baseOut == 8 ? "0o" : "") + str; } return x.s < 0 ? "-" + str : str; } __name(toStringBinary, "toStringBinary"); function truncate(arr, len) { if (arr.length > len) { arr.length = len; return true; } } __name(truncate, "truncate"); function abs(x) { return new this(x).abs(); } __name(abs, "abs"); function acos(x) { return new this(x).acos(); } __name(acos, "acos"); function acosh(x) { return new this(x).acosh(); } __name(acosh, "acosh"); function add(x, y) { return new this(x).plus(y); } __name(add, "add"); function asin(x) { return new this(x).asin(); } __name(asin, "asin"); function asinh(x) { return new this(x).asinh(); } __name(asinh, "asinh"); function atan(x) { return new this(x).atan(); } __name(atan, "atan"); function atanh(x) { return new this(x).atanh(); } __name(atanh, "atanh"); function atan2(y, x) { y = new this(y); x = new this(x); var r2, pr = this.precision, rm = this.rounding, wpr = pr + 4; if (!y.s || !x.s) { r2 = new this(NaN); } else if (!y.d && !x.d) { r2 = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75); r2.s = y.s; } else if (!x.d || y.isZero()) { r2 = x.s < 0 ? getPi(this, pr, rm) : new this(0); r2.s = y.s; } else if (!y.d || x.isZero()) { r2 = getPi(this, wpr, 1).times(0.5); r2.s = y.s; } else if (x.s < 0) { this.precision = wpr; this.rounding = 1; r2 = this.atan(divide(y, x, wpr, 1)); x = getPi(this, wpr, 1); this.precision = pr; this.rounding = rm; r2 = y.s < 0 ? r2.minus(x) : r2.plus(x); } else { r2 = this.atan(divide(y, x, wpr, 1)); } return r2; } __name(atan2, "atan2"); function cbrt(x) { return new this(x).cbrt(); } __name(cbrt, "cbrt"); function ceil(x) { return finalise(x = new this(x), x.e + 1, 2); } __name(ceil, "ceil"); function clamp(x, min2, max2) { return new this(x).clamp(min2, max2); } __name(clamp, "clamp"); function config(obj) { if (!obj || typeof obj !== "object") throw Error(decimalError + "Object expected"); var i, p2, v, useDefaults = obj.defaults === true, ps = [ "precision", 1, MAX_DIGITS, "rounding", 0, 8, "toExpNeg", -EXP_LIMIT, 0, "toExpPos", 0, EXP_LIMIT, "maxE", 0, EXP_LIMIT, "minE", -EXP_LIMIT, 0, "modulo", 0, 9 ]; for (i = 0; i < ps.length; i += 3) { if (p2 = ps[i], useDefaults) this[p2] = DEFAULTS[p2]; if ((v = obj[p2]) !== void 0) { if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p2] = v; else throw Error(invalidArgument + p2 + ": " + v); } } if (p2 = "crypto", useDefaults) this[p2] = DEFAULTS[p2]; if ((v = obj[p2]) !== void 0) { if (v === true || v === false || v === 0 || v === 1) { if (v) { if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) { this[p2] = true; } else { throw Error(cryptoUnavailable); } } else { this[p2] = false; } } else { throw Error(invalidArgument + p2 + ": " + v); } } return this; } __name(config, "config"); function cos(x) { return new this(x).cos(); } __name(cos, "cos"); function cosh(x) { return new this(x).cosh(); } __name(cosh, "cosh"); function clone(obj) { var i, p2, ps; function Decimal2(v) { var e2, i2, t2, x = this; if (!(x instanceof Decimal2)) return new Decimal2(v); x.constructor = Decimal2; if (isDecimalInstance(v)) { x.s = v.s; if (external) { if (!v.d || v.e > Decimal2.maxE) { x.e = NaN; x.d = null; } else if (v.e < Decimal2.minE) { x.e = 0; x.d = [0]; } else { x.e = v.e; x.d = v.d.slice(); } } else { x.e = v.e; x.d = v.d ? v.d.slice() : v.d; } return; } t2 = typeof v; if (t2 === "number") { if (v === 0) { x.s = 1 / v < 0 ? -1 : 1; x.e = 0; x.d = [0]; return; } if (v < 0) { v = -v; x.s = -1; } else { x.s = 1; } if (v === ~~v && v < 1e7) { for (e2 = 0, i2 = v; i2 >= 10; i2 /= 10) e2++; if (external) { if (e2 > Decimal2.maxE) { x.e = NaN; x.d = null; } else if (e2 < Decimal2.minE) { x.e = 0; x.d = [0]; } else { x.e = e2; x.d = [v]; } } else { x.e = e2; x.d = [v]; } return; } else if (v * 0 !== 0) { if (!v) x.s = NaN; x.e = NaN; x.d = null; return; } return parseDecimal(x, v.toString()); } else if (t2 !== "string") { throw Error(invalidArgument + v); } if ((i2 = v.charCodeAt(0)) === 45) { v = v.slice(1); x.s = -1; } else { if (i2 === 43) v = v.slice(1); x.s = 1; } return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v); } __name(Decimal2, "Decimal"); Decimal2.prototype = P2; Decimal2.ROUND_UP = 0; Decimal2.ROUND_DOWN = 1; Decimal2.ROUND_CEIL = 2; Decimal2.ROUND_FLOOR = 3; Decimal2.ROUND_HALF_UP = 4; Decimal2.ROUND_HALF_DOWN = 5; Decimal2.ROUND_HALF_EVEN = 6; Decimal2.ROUND_HALF_CEIL = 7; Decimal2.ROUND_HALF_FLOOR = 8; Decimal2.EUCLID = 9; Decimal2.config = Decimal2.set = config; Decimal2.clone = clone; Decimal2.isDecimal = isDecimalInstance; Decimal2.abs = abs; Decimal2.acos = acos; Decimal2.acosh = acosh; Decimal2.add = add; Decimal2.asin = asin; Decimal2.asinh = asinh; Decimal2.atan = atan; Decimal2.atanh = atanh; Decimal2.atan2 = atan2; Decimal2.cbrt = cbrt; Decimal2.ceil = ceil; Decimal2.clamp = clamp; Decimal2.cos = cos; Decimal2.cosh = cosh; Decimal2.div = div; Decimal2.exp = exp; Decimal2.floor = floor; Decimal2.hypot = hypot; Decimal2.ln = ln; Decimal2.log = log2; Decimal2.log10 = log10; Decimal2.log2 = log22; Decimal2.max = max; Decimal2.min = min; Decimal2.mod = mod; Decimal2.mul = mul; Decimal2.pow = pow; Decimal2.random = random; Decimal2.round = round; Decimal2.sign = sign; Decimal2.sin = sin; Decimal2.sinh = sinh; Decimal2.sqrt = sqrt; Decimal2.sub = sub; Decimal2.sum = sum; Decimal2.tan = tan; Decimal2.tanh = tanh; Decimal2.trunc = trunc; if (obj === void 0) obj = {}; if (obj) { if (obj.defaults !== true) { ps = ["precision", "rounding", "toExpNeg", "toExpPos", "maxE", "minE", "modulo", "crypto"]; for (i = 0; i < ps.length; ) if (!obj.hasOwnProperty(p2 = ps[i++])) obj[p2] = this[p2]; } } Decimal2.config(obj); return Decimal2; } __name(clone, "clone"); function div(x, y) { return new this(x).div(y); } __name(div, "div"); function exp(x) { return new this(x).exp(); } __name(exp, "exp"); function floor(x) { return finalise(x = new this(x), x.e + 1, 3); } __name(floor, "floor"); function hypot() { var i, n2, t2 = new this(0); external = false; for (i = 0; i < arguments.length; ) { n2 = new this(arguments[i++]); if (!n2.d) { if (n2.s) { external = true; return new this(1 / 0); } t2 = n2; } else if (t2.d) { t2 = t2.plus(n2.times(n2)); } } external = true; return t2.sqrt(); } __name(hypot, "hypot"); function isDecimalInstance(obj) { return obj instanceof Decimal || obj && obj.toStringTag === tag || false; } __name(isDecimalInstance, "isDecimalInstance"); function ln(x) { return new this(x).ln(); } __name(ln, "ln"); function log2(x, y) { return new this(x).log(y); } __name(log2, "log"); function log22(x) { return new this(x).log(2); } __name(log22, "log2"); function log10(x) { return new this(x).log(10); } __name(log10, "log10"); function max() { return maxOrMin(this, arguments, "lt"); } __name(max, "max"); function min() { return maxOrMin(this, arguments, "gt"); } __name(min, "min"); function mod(x, y) { return new this(x).mod(y); } __name(mod, "mod"); function mul(x, y) { return new this(x).mul(y); } __name(mul, "mul"); function pow(x, y) { return new this(x).pow(y); } __name(pow, "pow"); function random(sd) { var d2, e2, k, n2, i = 0, r2 = new this(1), rd = []; if (sd === void 0) sd = this.precision; else checkInt32(sd, 1, MAX_DIGITS); k = Math.ceil(sd / LOG_BASE); if (!this.crypto) { for (; i < k; ) rd[i++] = Math.random() * 1e7 | 0; } else if (crypto.getRandomValues) { d2 = crypto.getRandomValues(new Uint32Array(k)); for (; i < k; ) { n2 = d2[i]; if (n2 >= 429e7) { d2[i] = crypto.getRandomValues(new Uint32Array(1))[0]; } else { rd[i++] = n2 % 1e7; } } } else if (crypto.randomBytes) { d2 = crypto.randomBytes(k *= 4); for (; i < k; ) { n2 = d2[i] + (d2[i + 1] << 8) + (d2[i + 2] << 16) + ((d2[i + 3] & 127) << 24); if (n2 >= 214e7) { crypto.randomBytes(4).copy(d2, i); } else { rd.push(n2 % 1e7); i += 4; } } i = k / 4; } else { throw Error(cryptoUnavailable); } k = rd[--i]; sd %= LOG_BASE; if (k && sd) { n2 = mathpow(10, LOG_BASE - sd); rd[i] = (k / n2 | 0) * n2; } for (; rd[i] === 0; i--) rd.pop(); if (i < 0) { e2 = 0; rd = [0]; } else { e2 = -1; for (; rd[0] === 0; e2 -= LOG_BASE) rd.shift(); for (k = 1, n2 = rd[0]; n2 >= 10; n2 /= 10) k++; if (k < LOG_BASE) e2 -= LOG_BASE - k; } r2.e = e2; r2.d = rd; return r2; } __name(random, "random"); function round(x) { return finalise(x = new this(x), x.e + 1, this.rounding); } __name(round, "round"); function sign(x) { x = new this(x); return x.d ? x.d[0] ? x.s : 0 * x.s : x.s || NaN; } __name(sign, "sign"); function sin(x) { return new this(x).sin(); } __name(sin, "sin"); function sinh(x) { return new this(x).sinh(); } __name(sinh, "sinh"); function sqrt(x) { return new this(x).sqrt(); } __name(sqrt, "sqrt"); function sub(x, y) { return new this(x).sub(y); } __name(sub, "sub"); function sum() { var i = 0, args = arguments, x = new this(args[i]); external = false; for (; x.s && ++i < args.length; ) x = x.plus(args[i]); external = true; return finalise(x, this.precision, this.rounding); } __name(sum, "sum"); function tan(x) { return new this(x).tan(); } __name(tan, "tan"); function tanh(x) { return new this(x).tanh(); } __name(tanh, "tanh"); function trunc(x) { return finalise(x = new this(x), x.e + 1, 1); } __name(trunc, "trunc"); P2[Symbol.for("nodejs.util.inspect.custom")] = P2.toString; P2[Symbol.toStringTag] = "Decimal"; var Decimal = P2.constructor = clone(DEFAULTS); LN10 = new Decimal(LN10); PI = new Decimal(PI); var decimal_default = Decimal; // src/runtime/utils/common.ts var import_indent_string2 = __toESM(require_indent_string()); var import_js_levenshtein = __toESM(require_js_levenshtein()); // src/runtime/core/model/FieldRef.ts var FieldRefImpl = class { constructor(modelName, name, fieldType, isList) { this.modelName = modelName; this.name = name; this.typeName = fieldType; this.isList = isList; } _toGraphQLInputType() { const prefix = this.isList ? `List${this.typeName}` : this.typeName; return `${prefix}FieldRefInput<${this.modelName}>`; } }; __name(FieldRefImpl, "FieldRefImpl"); // src/runtime/object-enums.ts var objectEnumNames = ["JsonNullValueInput", "NullableJsonNullValueInput", "JsonNullValueFilter"]; var secret = Symbol(); var representations = /* @__PURE__ */ new WeakMap(); var ObjectEnumValue = class { constructor(arg2) { if (arg2 === secret) { representations.set(this, `Prisma.${this._getName()}`); } else { representations.set(this, `new Prisma.${this._getNamespace()}.${this._getName()}()`); } } _getName() { return this.constructor.name; } toString() { return representations.get(this); } }; __name(ObjectEnumValue, "ObjectEnumValue"); var NullTypesEnumValue = class extends ObjectEnumValue { _getNamespace() { return "NullTypes"; } }; __name(NullTypesEnumValue, "NullTypesEnumValue"); var DbNull = class extends NullTypesEnumValue { }; __name(DbNull, "DbNull"); var JsonNull = class extends NullTypesEnumValue { }; __name(JsonNull, "JsonNull"); var AnyNull = class extends NullTypesEnumValue { }; __name(AnyNull, "AnyNull"); var objectEnumValues = { classes: { DbNull, JsonNull, AnyNull }, instances: { DbNull: new DbNull(secret), JsonNull: new JsonNull(secret), AnyNull: new AnyNull(secret) } }; // src/runtime/utils/decimalJsLike.ts function isDecimalJsLike(value) { if (Decimal.isDecimal(value)) { return true; } return value !== null && typeof value === "object" && typeof value.s === "number" && typeof value.e === "number" && Array.isArray(value.d); } __name(isDecimalJsLike, "isDecimalJsLike"); function stringifyDecimalJsLike(value) { if (Decimal.isDecimal(value)) { return JSON.stringify(String(value)); } const tmpDecimal = new Decimal(0); tmpDecimal.d = value.d; tmpDecimal.e = value.e; tmpDecimal.s = value.s; return JSON.stringify(String(tmpDecimal)); } __name(stringifyDecimalJsLike, "stringifyDecimalJsLike"); // src/runtime/utils/common.ts var keyBy2 = /* @__PURE__ */ __name((collection, prop) => { const acc = {}; for (const obj of collection) { const key = obj[prop]; acc[key] = obj; } return acc; }, "keyBy"); var ScalarTypeTable = { String: true, Int: true, Float: true, Boolean: true, Long: true, DateTime: true, ID: true, UUID: true, Json: true, Bytes: true, Decimal: true, BigInt: true }; var JSTypeToGraphQLType = { string: "String", boolean: "Boolean", object: "Json", symbol: "Symbol" }; function stringifyGraphQLType(type) { if (typeof type === "string") { return type; } return type.name; } __name(stringifyGraphQLType, "stringifyGraphQLType"); function wrapWithList(str, isList) { if (isList) { return `List<${str}>`; } return str; } __name(wrapWithList, "wrapWithList"); var RFC_3339_REGEX = /^(\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.\d{1,})?(([Z])|([+|-]([01][0-9]|2[0-3]):[0-5][0-9]))$/; var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; function getGraphQLType(value, inputType) { const potentialType = inputType?.type; if (value === null) { return "null"; } if (Object.prototype.toString.call(value) === "[object BigInt]") { return "BigInt"; } if (decimal_default.isDecimal(value)) { return "Decimal"; } if (potentialType === "Decimal" && isDecimalJsLike(value)) { return "Decimal"; } if (Buffer.isBuffer(value)) { return "Bytes"; } if (isValidEnumValue(value, inputType)) { return potentialType.name; } if (value instanceof ObjectEnumValue) { return value._getName(); } if (value instanceof FieldRefImpl) { return value._toGraphQLInputType(); } if (Array.isArray(value)) { let scalarTypes = value.reduce((acc, val) => { const type = getGraphQLType(val, inputType); if (!acc.includes(type)) { acc.push(type); } return acc; }, []); if (scalarTypes.includes("Float") && scalarTypes.includes("Int")) { scalarTypes = ["Float"]; } return `List<${scalarTypes.join(" | ")}>`; } const jsType = typeof value; if (jsType === "number") { if (Math.trunc(value) === value) { return "Int"; } else { return "Float"; } } if (Object.prototype.toString.call(value) === "[object Date]") { return "DateTime"; } if (jsType === "string") { if (UUID_REGEX.test(value)) { return "UUID"; } const date = new Date(value); if (date.toString() === "Invalid Date") { return "String"; } if (RFC_3339_REGEX.test(value)) { return "DateTime"; } } return JSTypeToGraphQLType[jsType]; } __name(getGraphQLType, "getGraphQLType"); function isValidEnumValue(value, inputType) { const enumType = inputType?.type; if (!isSchemaEnum(enumType)) { return false; } if (inputType?.namespace === "prisma" && objectEnumNames.includes(enumType.name)) { const name = value?.constructor?.name; return typeof name === "string" && objectEnumValues.instances[name] === value && enumType.values.includes(name); } return typeof value === "string" && enumType.values.includes(value); } __name(isValidEnumValue, "isValidEnumValue"); function getSuggestion(str, possibilities) { const bestMatch = possibilities.reduce( (acc, curr) => { const distance = (0, import_js_levenshtein.default)(str, curr); if (distance < acc.distance) { return { distance, str: curr }; } return acc; }, { distance: Math.min(Math.floor(str.length) * 1.1, ...possibilities.map((p2) => p2.length * 3)), str: null } ); return bestMatch.str; } __name(getSuggestion, "getSuggestion"); function stringifyInputType(input, greenKeys = false) { if (typeof input === "string") { return input; } if (input.values) { return `enum ${input.name} { ${(0, import_indent_string2.default)(input.values.join(", "), 2)} }`; } else { const body = (0, import_indent_string2.default)( input.fields.map((arg2) => { const key = `${arg2.name}`; const str = `${greenKeys ? import_chalk8.default.green(key) : key}${arg2.isRequired ? "" : "?"}: ${import_chalk8.default.white( arg2.inputTypes.map((argType) => { return wrapWithList( argIsInputType(argType.type) ? argType.type.name : stringifyGraphQLType(argType.type), argType.isList ); }).join(" | ") )}`; if (!arg2.isRequired) { return import_chalk8.default.dim(str); } return str; }).join("\n"), 2 ); return `${import_chalk8.default.dim("type")} ${import_chalk8.default.bold.dim(input.name)} ${import_chalk8.default.dim("{")} ${body} ${import_chalk8.default.dim("}")}`; } } __name(stringifyInputType, "stringifyInputType"); function argIsInputType(arg2) { if (typeof arg2 === "string") { return false; } return true; } __name(argIsInputType, "argIsInputType"); function getInputTypeName(input) { if (typeof input === "string") { if (input === "Null") { return "null"; } return input; } return input.name; } __name(getInputTypeName, "getInputTypeName"); function getOutputTypeName(input) { if (typeof input === "string") { return input; } return input.name; } __name(getOutputTypeName, "getOutputTypeName"); function inputTypeToJson(input, isRequired, nameOnly = false) { if (typeof input === "string") { if (input === "Null") { return "null"; } return input; } if (input.values) { return input.values.join(" | "); } const inputType = input; const showDeepType = isRequired && inputType.fields.every( (arg2) => arg2.inputTypes[0].location === "inputObjectTypes" || arg2.inputTypes[1]?.location === "inputObjectTypes" ); if (nameOnly) { return getInputTypeName(input); } return inputType.fields.reduce((acc, curr) => { let str = ""; if (!showDeepType && !curr.isRequired) { str = curr.inputTypes.map((argType) => getInputTypeName(argType.type)).join(" | "); } else { str = curr.inputTypes.map((argInputType) => inputTypeToJson(argInputType.type, curr.isRequired, true)).join(" | "); } acc[curr.name + (curr.isRequired ? "" : "?")] = str; return acc; }, {}); } __name(inputTypeToJson, "inputTypeToJson"); function unionBy(arr1, arr2, iteratee) { const map = {}; for (const element of arr1) { map[iteratee(element)] = element; } for (const element of arr2) { const key = iteratee(element); if (!map[key]) { map[key] = element; } } return Object.values(map); } __name(unionBy, "unionBy"); function lowerCase(name) { return name.substring(0, 1).toLowerCase() + name.substring(1); } __name(lowerCase, "lowerCase"); function isGroupByOutputName(type) { return type.endsWith("GroupByOutputType"); } __name(isGroupByOutputName, "isGroupByOutputName"); function isSchemaEnum(type) { return typeof type === "object" && type !== null && typeof type.name === "string" && Array.isArray(type.values); } __name(isSchemaEnum, "isSchemaEnum"); // src/runtime/dmmf.ts var DMMFDatamodelHelper = class { constructor({ datamodel }) { this.datamodel = datamodel; this.datamodelEnumMap = this.getDatamodelEnumMap(); this.modelMap = this.getModelMap(); this.typeMap = this.getTypeMap(); this.typeAndModelMap = this.getTypeModelMap(); } getDatamodelEnumMap() { return keyBy2(this.datamodel.enums, "name"); } getModelMap() { return { ...keyBy2(this.datamodel.models, "name") }; } getTypeMap() { return { ...keyBy2(this.datamodel.types, "name") }; } getTypeModelMap() { return { ...this.getTypeMap(), ...this.getModelMap() }; } }; __name(DMMFDatamodelHelper, "DMMFDatamodelHelper"); var DMMFMappingsHelper = class { constructor({ mappings }) { this.mappings = mappings; this.mappingsMap = this.getMappingsMap(); } getMappingsMap() { return keyBy2(this.mappings.modelOperations, "model"); } }; __name(DMMFMappingsHelper, "DMMFMappingsHelper"); var DMMFSchemaHelper = class { constructor({ schema }) { this.outputTypeToMergedOutputType = /* @__PURE__ */ __name((outputType) => { return { ...outputType, fields: outputType.fields }; }, "outputTypeToMergedOutputType"); this.schema = schema; this.enumMap = this.getEnumMap(); this.queryType = this.getQueryType(); this.mutationType = this.getMutationType(); this.outputTypes = this.getOutputTypes(); this.outputTypeMap = this.getMergedOutputTypeMap(); this.resolveOutputTypes(); this.inputObjectTypes = this.schema.inputObjectTypes; this.inputTypeMap = this.getInputTypeMap(); this.resolveInputTypes(); this.resolveFieldArgumentTypes(); this.queryType = this.outputTypeMap.Query; this.mutationType = this.outputTypeMap.Mutation; this.rootFieldMap = this.getRootFieldMap(); } get [Symbol.toStringTag]() { return "DMMFClass"; } resolveOutputTypes() { for (const type of this.outputTypes.model) { for (const field of type.fields) { if (typeof field.outputType.type === "string" && !ScalarTypeTable[field.outputType.type]) { field.outputType.type = this.outputTypeMap[field.outputType.type] || this.outputTypeMap[field.outputType.type] || this.enumMap[field.outputType.type] || field.outputType.type; } } type.fieldMap = keyBy2(type.fields, "name"); } for (const type of this.outputTypes.prisma) { for (const field of type.fields) { if (typeof field.outputType.type === "string" && !ScalarTypeTable[field.outputType.type]) { field.outputType.type = this.outputTypeMap[field.outputType.type] || this.outputTypeMap[field.outputType.type] || this.enumMap[field.outputType.type] || field.outputType.type; } } type.fieldMap = keyBy2(type.fields, "name"); } } resolveInputTypes() { const inputTypes = this.inputObjectTypes.prisma; if (this.inputObjectTypes.model) { inputTypes.push(...this.inputObjectTypes.model); } for (const type of inputTypes) { for (const field of type.fields) { for (const fieldInputType of field.inputTypes) { const fieldType = fieldInputType.type; if (typeof fieldType === "string" && !ScalarTypeTable[fieldType] && (this.inputTypeMap[fieldType] || this.enumMap[fieldType])) { fieldInputType.type = this.inputTypeMap[fieldType] || this.enumMap[fieldType] || fieldType; } } } type.fieldMap = keyBy2(type.fields, "name"); } } resolveFieldArgumentTypes() { for (const type of this.outputTypes.prisma) { for (const field of type.fields) { for (const arg2 of field.args) { for (const argInputType of arg2.inputTypes) { const argType = argInputType.type; if (typeof argType === "string" && !ScalarTypeTable[argType]) { argInputType.type = this.inputTypeMap[argType] || this.enumMap[argType] || argType; } } } } } for (const type of this.outputTypes.model) { for (const field of type.fields) { for (const arg2 of field.args) { for (const argInputType of arg2.inputTypes) { const argType = argInputType.type; if (typeof argType === "string" && !ScalarTypeTable[argType]) { argInputType.type = this.inputTypeMap[argType] || this.enumMap[argType] || argInputType.type; } } } } } } getQueryType() { return this.schema.outputObjectTypes.prisma.find((t2) => t2.name === "Query"); } getMutationType() { return this.schema.outputObjectTypes.prisma.find((t2) => t2.name === "Mutation"); } getOutputTypes() { return { model: this.schema.outputObjectTypes.model.map(this.outputTypeToMergedOutputType), prisma: this.schema.outputObjectTypes.prisma.map(this.outputTypeToMergedOutputType) }; } getEnumMap() { return { ...keyBy2(this.schema.enumTypes.prisma, "name"), ...this.schema.enumTypes.model ? keyBy2(this.schema.enumTypes.model, "name") : void 0 }; } hasEnumInNamespace(enumName, namespace) { return this.schema.enumTypes[namespace]?.find((schemaEnum) => schemaEnum.name === enumName) !== void 0; } getMergedOutputTypeMap() { return { ...keyBy2(this.outputTypes.model, "name"), ...keyBy2(this.outputTypes.prisma, "name") }; } getInputTypeMap() { return { ...this.schema.inputObjectTypes.model ? keyBy2(this.schema.inputObjectTypes.model, "name") : void 0, ...keyBy2(this.schema.inputObjectTypes.prisma, "name") }; } getRootFieldMap() { return { ...keyBy2(this.queryType.fields, "name"), ...keyBy2(this.mutationType.fields, "name") }; } }; __name(DMMFSchemaHelper, "DMMFSchemaHelper"); var BaseDMMFHelper = class { constructor(dmmf) { return Object.assign(this, new DMMFDatamodelHelper(dmmf), new DMMFMappingsHelper(dmmf)); } }; __name(BaseDMMFHelper, "BaseDMMFHelper"); applyMixins(BaseDMMFHelper, [DMMFDatamodelHelper, DMMFMappingsHelper]); var DMMFHelper = class { constructor(dmmf) { return Object.assign(this, new BaseDMMFHelper(dmmf), new DMMFSchemaHelper(dmmf)); } }; __name(DMMFHelper, "DMMFHelper"); applyMixins(DMMFHelper, [BaseDMMFHelper, DMMFSchemaHelper]); // src/runtime/getPrismaClient.ts var import_async_hooks = require("async_hooks"); var import_events = require("events"); var import_fs9 = __toESM(require("fs")); var import_path5 = __toESM(require("path")); // ../../node_modules/.pnpm/sql-template-tag@5.0.3/node_modules/sql-template-tag/dist/index.js var Sql = class { constructor(rawStrings, rawValues) { if (rawStrings.length - 1 !== rawValues.length) { if (rawStrings.length === 0) { throw new TypeError("Expected at least 1 string"); } throw new TypeError(`Expected ${rawStrings.length} strings to have ${rawStrings.length - 1} values`); } const valuesLength = rawValues.reduce((len, value) => len + (value instanceof Sql ? value.values.length : 1), 0); this.values = new Array(valuesLength); this.strings = new Array(valuesLength + 1); this.strings[0] = rawStrings[0]; let i = 0, pos = 0; while (i < rawValues.length) { const child = rawValues[i++]; const rawString = rawStrings[i]; if (child instanceof Sql) { this.strings[pos] += child.strings[0]; let childIndex = 0; while (childIndex < child.values.length) { this.values[pos++] = child.values[childIndex++]; this.strings[pos] = child.strings[childIndex]; } this.strings[pos] += rawString; } else { this.values[pos++] = child; this.strings[pos] = rawString; } } } get text() { let i = 1, value = this.strings[0]; while (i < this.strings.length) value += `$${i}${this.strings[i++]}`; return value; } get sql() { let i = 1, value = this.strings[0]; while (i < this.strings.length) value += `?${this.strings[i++]}`; return value; } inspect() { return { text: this.text, sql: this.sql, values: this.values }; } }; __name(Sql, "Sql"); function join(values, separator = ",", prefix = "", suffix = "") { if (values.length === 0) { throw new TypeError("Expected `join([])` to be called with an array of multiple elements, but got an empty array"); } return new Sql([prefix, ...Array(values.length - 1).fill(separator), suffix], values); } __name(join, "join"); function raw(value) { return new Sql([value], []); } __name(raw, "raw"); var empty = raw(""); function sql(strings, ...values) { return new Sql(strings, values); } __name(sql, "sql"); // src/runtime/externalToInternalDmmf.ts var import_pluralize = __toESM(require_pluralize()); function externalToInternalDmmf(document2) { return { ...document2, mappings: getMappings(document2.mappings, document2.datamodel) }; } __name(externalToInternalDmmf, "externalToInternalDmmf"); function getMappings(mappings, datamodel) { const modelOperations = mappings.modelOperations.filter((mapping) => { const model = datamodel.models.find((m2) => m2.name === mapping.model); if (!model) { throw new Error(`Mapping without model ${mapping.model}`); } return model.fields.some((f2) => f2.kind !== "object"); }).map((mapping) => ({ model: mapping.model, plural: (0, import_pluralize.default)(lowerCase(mapping.model)), findUnique: mapping.findUnique || mapping.findSingle, findUniqueOrThrow: mapping.findUniqueOrThrow, findFirst: mapping.findFirst, findFirstOrThrow: mapping.findFirstOrThrow, findMany: mapping.findMany, create: mapping.createOne || mapping.createSingle || mapping.create, createMany: mapping.createMany, delete: mapping.deleteOne || mapping.deleteSingle || mapping.delete, update: mapping.updateOne || mapping.updateSingle || mapping.update, deleteMany: mapping.deleteMany, updateMany: mapping.updateMany, upsert: mapping.upsertOne || mapping.upsertSingle || mapping.upsert, aggregate: mapping.aggregate, groupBy: mapping.groupBy, findRaw: mapping.findRaw, aggregateRaw: mapping.aggregateRaw })); return { modelOperations, otherOperations: mappings.otherOperations }; } __name(getMappings, "getMappings"); // src/generation/getDMMF.ts function getPrismaClientDMMF(dmmf) { return externalToInternalDmmf(dmmf); } __name(getPrismaClientDMMF, "getPrismaClientDMMF"); // src/runtime/query.ts var import_chalk12 = __toESM(require_source()); var import_indent_string4 = __toESM(require_indent_string()); var import_strip_ansi3 = __toESM(require_strip_ansi()); // src/generation/Cache.ts var Cache = class { constructor() { this._map = /* @__PURE__ */ new Map(); } get(key) { return this._map.get(key)?.value; } set(key, value) { this._map.set(key, { value }); } getOrCreate(key, create) { const cached = this._map.get(key); if (cached) { return cached.value; } const value = create(); this.set(key, value); return value; } }; __name(Cache, "Cache"); // src/runtime/core/model/utils/dmmfToJSModelName.ts function dmmfToJSModelName(name) { return name.replace(/^./, (str) => str.toLowerCase()); } __name(dmmfToJSModelName, "dmmfToJSModelName"); // src/runtime/core/extensions/resultUtils.ts function getComputedFields(previousComputedFields, extension, dmmfModelName) { const jsName = dmmfToJSModelName(dmmfModelName); if (!extension.result || !(extension.result.$allModels || extension.result[jsName])) { return previousComputedFields; } return resolveDependencies({ ...previousComputedFields, ...getComputedFieldsFromModel(extension.name, previousComputedFields, extension.result.$allModels), ...getComputedFieldsFromModel(extension.name, previousComputedFields, extension.result[jsName]) }); } __name(getComputedFields, "getComputedFields"); function resolveDependencies(computedFields) { const cache = new Cache(); const resolveNeeds = /* @__PURE__ */ __name((fieldName, visitedFields) => { return cache.getOrCreate(fieldName, () => { if (visitedFields.has(fieldName)) { return [fieldName]; } visitedFields.add(fieldName); if (!computedFields[fieldName]) { return [fieldName]; } return computedFields[fieldName].needs.flatMap((fieldDep) => resolveNeeds(fieldDep, visitedFields)); }); }, "resolveNeeds"); return mapObjectValues(computedFields, (field) => { return { ...field, needs: resolveNeeds(field.name, /* @__PURE__ */ new Set()) }; }); } __name(resolveDependencies, "resolveDependencies"); function getComputedFieldsFromModel(name, previousComputedFields, modelResult) { if (!modelResult) { return {}; } return mapObjectValues(modelResult, ({ needs, compute }, fieldName) => ({ name: fieldName, needs: needs ? Object.keys(needs).filter((key) => needs[key]) : [], compute: wrapExtensionCallback(name, composeCompute(previousComputedFields, fieldName, compute)) })); } __name(getComputedFieldsFromModel, "getComputedFieldsFromModel"); function composeCompute(previousComputedFields, fieldName, nextCompute) { const previousCompute = previousComputedFields?.[fieldName]?.compute; if (!previousCompute) { return nextCompute; } return (model) => { return nextCompute({ ...model, [fieldName]: previousCompute(model) }); }; } __name(composeCompute, "composeCompute"); function applyComputedFieldsToSelection(selection, computedFields) { if (!computedFields) { return selection; } const result = { ...selection }; for (const field of Object.values(computedFields)) { if (!selection[field.name]) { continue; } for (const dependency of field.needs) { result[dependency] = true; } } return result; } __name(applyComputedFieldsToSelection, "applyComputedFieldsToSelection"); // src/runtime/utils/createErrorMessageWithContext.ts var import_chalk10 = __toESM(require_source()); var import_indent_string3 = __toESM(require_indent_string()); // src/runtime/utils/SourceFileSlice.ts var import_fs8 = __toESM(require("fs")); // src/runtime/highlight/theme.ts var import_chalk9 = __toESM(require_source()); var orange = import_chalk9.default.rgb(246, 145, 95); var darkBrightBlue = import_chalk9.default.rgb(107, 139, 140); var blue = import_chalk9.default.cyan; var brightBlue = import_chalk9.default.rgb(127, 155, 155); var identity = /* @__PURE__ */ __name((str) => str, "identity"); var theme = { keyword: blue, entity: blue, value: brightBlue, punctuation: darkBrightBlue, directive: blue, function: blue, variable: brightBlue, string: import_chalk9.default.greenBright, boolean: orange, number: import_chalk9.default.cyan, comment: import_chalk9.default.grey }; // src/runtime/highlight/prism.ts var _self = {}; var uniqueId = 0; var Prism = { manual: _self.Prism && _self.Prism.manual, disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, util: { encode: function(tokens) { if (tokens instanceof Token) { const anyTokens = tokens; return new Token(anyTokens.type, Prism.util.encode(anyTokens.content), anyTokens.alias); } else if (Array.isArray(tokens)) { return tokens.map(Prism.util.encode); } else { return tokens.replace(/&/g, "&").replace(/ text.length) { return; } if (str instanceof Token) { continue; } if (greedy && i != strarr.length - 1) { pattern.lastIndex = pos; var match = pattern.exec(text); if (!match) { break; } var from = match.index + (lookbehind ? match[1].length : 0), to = match.index + match[0].length, k = i, p2 = pos; for (let len = strarr.length; k < len && (p2 < to || !strarr[k].type && !strarr[k - 1].greedy); ++k) { p2 += strarr[k].length; if (from >= p2) { ++i; pos = p2; } } if (strarr[i] instanceof Token) { continue; } delNum = k - i; str = text.slice(pos, p2); match.index -= pos; } else { pattern.lastIndex = 0; var match = pattern.exec(str), delNum = 1; } if (!match) { if (oneshot) { break; } continue; } if (lookbehind) { lookbehindLength = match[1] ? match[1].length : 0; } var from = match.index + lookbehindLength, match = match[0].slice(lookbehindLength), to = from + match.length, before = str.slice(0, from), after = str.slice(to); const args = [i, delNum]; if (before) { ++i; pos += before.length; args.push(before); } const wrapped = new Token(token, inside ? Prism.tokenize(match, inside) : match, alias, match, greedy); args.push(wrapped); if (after) { args.push(after); } Array.prototype.splice.apply(strarr, args); if (delNum != 1) Prism.matchGrammar(text, strarr, grammar, i, pos, true, token); if (oneshot) break; } } } }, tokenize: function(text, grammar) { const strarr = [text]; const rest = grammar.rest; if (rest) { for (const token in rest) { grammar[token] = rest[token]; } delete grammar.rest; } Prism.matchGrammar(text, strarr, grammar, 0, 0, false); return strarr; }, hooks: { all: {}, add: function(name, callback) { const hooks = Prism.hooks.all; hooks[name] = hooks[name] || []; hooks[name].push(callback); }, run: function(name, env) { const callbacks = Prism.hooks.all[name]; if (!callbacks || !callbacks.length) { return; } for (var i = 0, callback; callback = callbacks[i++]; ) { callback(env); } } }, Token }; Prism.languages.clike = { comment: [ { pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: true }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: true, greedy: true } ], string: { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true }, "class-name": { pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, lookbehind: true, inside: { punctuation: /[.\\]/ } }, keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, boolean: /\b(?:true|false)\b/, function: /\w+(?=\()/, number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, punctuation: /[{}[\];(),.:]/ }; Prism.languages.javascript = Prism.languages.extend("clike", { "class-name": [ Prism.languages.clike["class-name"], { pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, lookbehind: true } ], keyword: [ { pattern: /((?:^|})\s*)(?:catch|finally)\b/, lookbehind: true }, { pattern: /(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, lookbehind: true } ], number: /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/, function: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, operator: /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ }); Prism.languages.javascript["class-name"][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/; Prism.languages.insertBefore("javascript", "keyword", { regex: { pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/, lookbehind: true, greedy: true }, "function-variable": { pattern: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/, alias: "function" }, parameter: [ { pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i, inside: Prism.languages.javascript }, { pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/, lookbehind: true, inside: Prism.languages.javascript } ], constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/ }); if (Prism.languages.markup) { Prism.languages.markup.tag.addInlined("script", "javascript"); } Prism.languages.js = Prism.languages.javascript; Prism.languages.typescript = Prism.languages.extend("javascript", { keyword: /\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/, builtin: /\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/ }); Prism.languages.ts = Prism.languages.typescript; function Token(type, content, alias, matchedStr, greedy) { this.type = type; this.content = content; this.alias = alias; this.length = (matchedStr || "").length | 0; this.greedy = !!greedy; } __name(Token, "Token"); Token.stringify = function(o2, language) { if (typeof o2 == "string") { return o2; } if (Array.isArray(o2)) { return o2.map(function(element) { return Token.stringify(element, language); }).join(""); } return getColorForSyntaxKind(o2.type)(o2.content); }; function getColorForSyntaxKind(syntaxKind) { return theme[syntaxKind] || identity; } __name(getColorForSyntaxKind, "getColorForSyntaxKind"); // src/runtime/highlight/highlight.ts function highlightTS(str) { return highlight(str, Prism.languages.javascript); } __name(highlightTS, "highlightTS"); function highlight(str, grammar) { const tokens = Prism.tokenize(str, grammar); return tokens.map((t2) => Token.stringify(t2)).join(""); } __name(highlight, "highlight"); // src/runtime/utils/dedent.ts var import_strip_indent2 = __toESM(require_strip_indent()); function dedent2(str) { return (0, import_strip_indent2.default)(str); } __name(dedent2, "dedent"); // src/runtime/utils/SourceFileSlice.ts var SourceFileSlice = class { static read(filePath) { let content; try { content = import_fs8.default.readFileSync(filePath, "utf-8"); } catch (e2) { return null; } return SourceFileSlice.fromContent(content); } static fromContent(content) { const lines = content.split(/\r?\n/); return new SourceFileSlice(1, lines); } constructor(firstLine, lines) { this.firstLineNumber = firstLine; this.lines = lines; } get lastLineNumber() { return this.firstLineNumber + this.lines.length - 1; } mapLineAt(lineNumber, mapFn) { if (lineNumber < this.firstLineNumber || lineNumber > this.lines.length + this.firstLineNumber) { return this; } const idx = lineNumber - this.firstLineNumber; const newLines = [...this.lines]; newLines[idx] = mapFn(newLines[idx]); return new SourceFileSlice(this.firstLineNumber, newLines); } mapLines(mapFn) { return new SourceFileSlice( this.firstLineNumber, this.lines.map((line, i) => mapFn(line, this.firstLineNumber + i)) ); } lineAt(lineNumber) { return this.lines[lineNumber - this.firstLineNumber]; } prependSymbolAt(atLine, str) { return this.mapLines((line, lineNumber) => { if (lineNumber === atLine) { return `${str} ${line}`; } return ` ${line}`; }); } slice(fromLine, toLine) { const slicedLines = this.lines.slice(fromLine - 1, toLine).join("\n"); return new SourceFileSlice(fromLine, dedent2(slicedLines).split("\n")); } highlight() { const highlighted = highlightTS(this.toString()); return new SourceFileSlice(this.firstLineNumber, highlighted.split("\n")); } toString() { return this.lines.join("\n"); } }; __name(SourceFileSlice, "SourceFileSlice"); // src/runtime/utils/createErrorMessageWithContext.ts var colorsEnabled = { red: (str) => import_chalk10.default.red(str), gray: (str) => import_chalk10.default.gray(str), dim: (str) => import_chalk10.default.dim(str), bold: (str) => import_chalk10.default.bold(str), underline: (str) => import_chalk10.default.underline(str), highlightSource: (source) => source.highlight() }; var colorsDisabled = { red: (str) => str, gray: (str) => str, dim: (str) => str, bold: (str) => str, underline: (str) => str, highlightSource: (source) => source }; function getTemplateParameters({ callsite, message, originalMethod, isPanic: isPanic2, callArguments }, colors) { const templateParameters = { functionName: `prisma.${originalMethod}()`, message, isPanic: isPanic2 ?? false, callArguments }; if (!callsite || typeof window !== "undefined") { return templateParameters; } if (process.env.NODE_ENV === "production") { return templateParameters; } const callLocation = callsite.getLocation(); if (!callLocation || !callLocation.lineNumber || !callLocation.columnNumber) { return templateParameters; } const contextFirstLine = Math.max(1, callLocation.lineNumber - 3); let source = SourceFileSlice.read(callLocation.fileName)?.slice(contextFirstLine, callLocation.lineNumber); const invocationLine = source?.lineAt(callLocation.lineNumber); if (source && invocationLine) { const invocationLineIndent = getIndent(invocationLine); const invocationCallCode = findPrismaActionCall(invocationLine); if (!invocationCallCode) { return templateParameters; } templateParameters.functionName = `${invocationCallCode.code})`; templateParameters.location = callLocation; if (!isPanic2) { source = source.mapLineAt(callLocation.lineNumber, (line) => line.slice(0, invocationCallCode.openingBraceIndex)); } source = colors.highlightSource(source); const numberColumnWidth = String(source.lastLineNumber).length; templateParameters.contextLines = source.mapLines((line, lineNumber) => colors.gray(String(lineNumber).padStart(numberColumnWidth)) + " " + line).mapLines((line) => colors.dim(line)).prependSymbolAt(callLocation.lineNumber, colors.bold(colors.red("\u2192"))); if (callArguments) { let indentValue = invocationLineIndent + numberColumnWidth + 1; indentValue += 2; templateParameters.callArguments = (0, import_indent_string3.default)(callArguments, indentValue).slice(indentValue); } } return templateParameters; } __name(getTemplateParameters, "getTemplateParameters"); function findPrismaActionCall(str) { const allActions = Object.keys(DMMF.ModelAction).join("|"); const regexp = new RegExp(String.raw`\S+(${allActions})\(`); const match = regexp.exec(str); if (match) { return { code: match[0], openingBraceIndex: match.index + match[0].length }; } return null; } __name(findPrismaActionCall, "findPrismaActionCall"); function getIndent(line) { let spaceCount = 0; for (let i = 0; i < line.length; i++) { if (line.charAt(i) !== " ") { return spaceCount; } spaceCount++; } return spaceCount; } __name(getIndent, "getIndent"); function stringifyErrorMessage({ functionName, location, message, isPanic: isPanic2, contextLines, callArguments }, colors) { const lines = [""]; const introSuffix = location ? " in" : ":"; if (isPanic2) { lines.push(colors.red(`Oops, an unknown error occurred! This is ${colors.bold("on us")}, you did nothing wrong.`)); lines.push(colors.red(`It occurred in the ${colors.bold(`\`${functionName}\``)} invocation${introSuffix}`)); } else { lines.push(colors.red(`Invalid ${colors.bold(`\`${functionName}\``)} invocation${introSuffix}`)); } if (location) { lines.push(colors.underline(stringifyLocationInFile(location))); } if (contextLines) { lines.push(""); const contextLineParts = [contextLines.toString()]; if (callArguments) { contextLineParts.push(callArguments); contextLineParts.push(colors.dim(")")); } lines.push(contextLineParts.join("")); if (callArguments) { lines.push(""); } } else { lines.push(""); if (callArguments) { lines.push(callArguments); } lines.push(""); } lines.push(message); return lines.join("\n"); } __name(stringifyErrorMessage, "stringifyErrorMessage"); function stringifyLocationInFile(location) { const parts = [location.fileName]; if (location.lineNumber) { parts.push(String(location.lineNumber)); } if (location.columnNumber) { parts.push(String(location.columnNumber)); } return parts.join(":"); } __name(stringifyLocationInFile, "stringifyLocationInFile"); function createErrorMessageWithContext(args) { const colors = args.showColors ? colorsEnabled : colorsDisabled; const templateParameters = getTemplateParameters(args, colors); return stringifyErrorMessage(templateParameters, colors); } __name(createErrorMessageWithContext, "createErrorMessageWithContext"); // src/runtime/utils/deep-extend.ts function isSpecificValue(val) { return val instanceof Buffer || val instanceof Date || val instanceof RegExp ? true : false; } __name(isSpecificValue, "isSpecificValue"); function cloneSpecificValue(val) { if (val instanceof Buffer) { const x = Buffer.alloc ? Buffer.alloc(val.length) : new Buffer(val.length); val.copy(x); return x; } else if (val instanceof Date) { return new Date(val.getTime()); } else if (val instanceof RegExp) { return new RegExp(val); } else { throw new Error("Unexpected situation"); } } __name(cloneSpecificValue, "cloneSpecificValue"); function deepCloneArray(arr) { const clone2 = []; arr.forEach(function(item, index) { if (typeof item === "object" && item !== null) { if (Array.isArray(item)) { clone2[index] = deepCloneArray(item); } else if (isSpecificValue(item)) { clone2[index] = cloneSpecificValue(item); } else { clone2[index] = deepExtend({}, item); } } else { clone2[index] = item; } }); return clone2; } __name(deepCloneArray, "deepCloneArray"); function safeGetProperty(object, property) { return property === "__proto__" ? void 0 : object[property]; } __name(safeGetProperty, "safeGetProperty"); var deepExtend = /* @__PURE__ */ __name(function(target, ...args) { if (!target || typeof target !== "object") { return false; } if (args.length === 0) { return target; } let val, src; for (const obj of args) { if (typeof obj !== "object" || obj === null || Array.isArray(obj)) { continue; } for (const key of Object.keys(obj)) { src = safeGetProperty(target, key); val = safeGetProperty(obj, key); if (val === target) { continue; } else if (typeof val !== "object" || val === null) { target[key] = val; continue; } else if (Array.isArray(val)) { target[key] = deepCloneArray(val); continue; } else if (isSpecificValue(val)) { target[key] = cloneSpecificValue(val); continue; } else if (typeof src !== "object" || src === null || Array.isArray(src)) { target[key] = deepExtend({}, val); continue; } else { target[key] = deepExtend(src, val); continue; } } } return target; }, "deepExtend"); // src/runtime/utils/deep-set.ts var keys = /* @__PURE__ */ __name((ks) => Array.isArray(ks) ? ks : ks.split("."), "keys"); var deepGet = /* @__PURE__ */ __name((o2, kp) => keys(kp).reduce((o3, k) => o3 && o3[k], o2), "deepGet"); var deepSet = /* @__PURE__ */ __name((o2, kp, v) => keys(kp).reduceRight((v2, k, i, ks) => Object.assign({}, deepGet(o2, ks.slice(0, i)), { [k]: v2 }), v), "deepSet"); // src/runtime/utils/filterObject.ts function filterObject(obj, cb) { if (!obj || typeof obj !== "object" || typeof obj.hasOwnProperty !== "function") { return obj; } const newObj = {}; for (const key in obj) { const value = obj[key]; if (Object.hasOwnProperty.call(obj, key) && cb(key, value)) { newObj[key] = value; } } return newObj; } __name(filterObject, "filterObject"); // src/runtime/utils/isObject.ts var notReallyObjects = { "[object Date]": true, "[object Uint8Array]": true, "[object Decimal]": true }; function isObject(value) { if (!value) { return false; } return typeof value === "object" && !notReallyObjects[Object.prototype.toString.call(value)]; } __name(isObject, "isObject"); // src/runtime/utils/omit.ts function omit2(object, path7) { const result = {}; const paths = Array.isArray(path7) ? path7 : [path7]; for (const key in object) { if (Object.hasOwnProperty.call(object, key) && !paths.includes(key)) { result[key] = object[key]; } } return result; } __name(omit2, "omit"); // src/runtime/utils/printJsonErrors.ts var import_chalk11 = __toESM(require_source()); var import_strip_ansi2 = __toESM(require_strip_ansi()); // src/runtime/utils/stringifyObject.ts var isRegexp = require_is_regexp(); var isObj = require_is_obj(); var getOwnEnumPropSymbols = require_lib2().default; var stringifyObject = /* @__PURE__ */ __name((input, options, pad) => { const seen = []; return (/* @__PURE__ */ __name(function stringifyObject2(input2, options2 = {}, pad2 = "", path7 = []) { options2.indent = options2.indent || " "; let tokens; if (options2.inlineCharacterLimit === void 0) { tokens = { newLine: "\n", newLineOrSpace: "\n", pad: pad2, indent: pad2 + options2.indent }; } else { tokens = { newLine: "@@__STRINGIFY_OBJECT_NEW_LINE__@@", newLineOrSpace: "@@__STRINGIFY_OBJECT_NEW_LINE_OR_SPACE__@@", pad: "@@__STRINGIFY_OBJECT_PAD__@@", indent: "@@__STRINGIFY_OBJECT_INDENT__@@" }; } const expandWhiteSpace = /* @__PURE__ */ __name((string) => { if (options2.inlineCharacterLimit === void 0) { return string; } const oneLined = string.replace(new RegExp(tokens.newLine, "g"), "").replace(new RegExp(tokens.newLineOrSpace, "g"), " ").replace(new RegExp(tokens.pad + "|" + tokens.indent, "g"), ""); if (oneLined.length <= options2.inlineCharacterLimit) { return oneLined; } return string.replace(new RegExp(tokens.newLine + "|" + tokens.newLineOrSpace, "g"), "\n").replace(new RegExp(tokens.pad, "g"), pad2).replace(new RegExp(tokens.indent, "g"), pad2 + options2.indent); }, "expandWhiteSpace"); if (seen.indexOf(input2) !== -1) { return '"[Circular]"'; } if (Buffer.isBuffer(input2)) { return `Buffer(${Buffer.length})`; } if (input2 === null || input2 === void 0 || typeof input2 === "number" || typeof input2 === "boolean" || typeof input2 === "function" || typeof input2 === "symbol" || input2 instanceof ObjectEnumValue || isRegexp(input2)) { return String(input2); } if (input2 instanceof Date) { return `new Date('${input2.toISOString()}')`; } if (input2 instanceof FieldRefImpl) { return `prisma.${lowerCase(input2.modelName)}.fields.${input2.name}`; } if (Array.isArray(input2)) { if (input2.length === 0) { return "[]"; } seen.push(input2); const ret = "[" + tokens.newLine + input2.map((el, i) => { const eol = input2.length - 1 === i ? tokens.newLine : "," + tokens.newLineOrSpace; let value = stringifyObject2(el, options2, pad2 + options2.indent, [...path7, i]); if (options2.transformValue) { value = options2.transformValue(input2, i, value); } return tokens.indent + value + eol; }).join("") + tokens.pad + "]"; seen.pop(); return expandWhiteSpace(ret); } if (isObj(input2)) { let objKeys = Object.keys(input2).concat(getOwnEnumPropSymbols(input2)); if (options2.filter) { objKeys = objKeys.filter((el) => options2.filter(input2, el)); } if (objKeys.length === 0) { return "{}"; } seen.push(input2); const ret = "{" + tokens.newLine + objKeys.map((el, i) => { const eol = objKeys.length - 1 === i ? tokens.newLine : "," + tokens.newLineOrSpace; const isSymbol = typeof el === "symbol"; const isClassic = !isSymbol && /^[a-z$_][a-z$_0-9]*$/i.test(el); const key = isSymbol || isClassic ? el : stringifyObject2(el, options2, void 0, [...path7, el]); let value = stringifyObject2(input2[el], options2, pad2 + options2.indent, [...path7, el]); if (options2.transformValue) { value = options2.transformValue(input2, el, value); } let line = tokens.indent + String(key) + ": " + value + eol; if (options2.transformLine) { line = options2.transformLine({ obj: input2, indent: tokens.indent, key, stringifiedValue: value, value: input2[el], eol, originalLine: line, path: path7.concat(key) }); } return line; }).join("") + tokens.pad + "}"; seen.pop(); return expandWhiteSpace(ret); } input2 = String(input2).replace(/[\r\n]/g, (x) => x === "\n" ? "\\n" : "\\r"); if (options2.singleQuotes === false) { input2 = input2.replace(/"/g, '\\"'); return `"${input2}"`; } input2 = input2.replace(/\\?'/g, "\\'"); return `'${input2}'`; }, "stringifyObject"))(input, options, pad); }, "stringifyObject"); var stringifyObject_default = stringifyObject; // src/runtime/utils/printJsonErrors.ts var DIM_TOKEN = "@@__DIM_POINTER__@@"; function printJsonWithErrors({ ast, keyPaths, valuePaths, missingItems }) { let obj = ast; for (const { path: path7, type } of missingItems) { obj = deepSet(obj, path7, type); } return stringifyObject_default(obj, { indent: " ", transformLine: ({ indent: indent4, key, value, stringifiedValue, eol, path: path7 }) => { const dottedPath = path7.join("."); const keyError = keyPaths.includes(dottedPath); const valueError = valuePaths.includes(dottedPath); const missingItem = missingItems.find((item) => item.path === dottedPath); let valueStr = stringifiedValue; if (missingItem) { if (typeof value === "string") { valueStr = valueStr.slice(1, valueStr.length - 1); } const isRequiredStr = missingItem.isRequired ? "" : "?"; const prefix = missingItem.isRequired ? "+" : "?"; const color = missingItem.isRequired ? import_chalk11.default.greenBright : import_chalk11.default.green; let output = color(prefixLines(key + isRequiredStr + ": " + valueStr + eol, indent4, prefix)); if (!missingItem.isRequired) { output = import_chalk11.default.dim(output); } return output; } else { const isOnMissingItemPath = missingItems.some((item) => dottedPath.startsWith(item.path)); const isOptional = key[key.length - 2] === "?"; if (isOptional) { key = key.slice(1, key.length - 1); } if (isOptional && typeof value === "object" && value !== null) { valueStr = valueStr.split("\n").map((line, index, arr) => index === arr.length - 1 ? line + DIM_TOKEN : line).join("\n"); } if (isOnMissingItemPath && typeof value === "string") { valueStr = valueStr.slice(1, valueStr.length - 1); if (!isOptional) { valueStr = import_chalk11.default.bold(valueStr); } } if ((typeof value !== "object" || value === null) && !valueError && !isOnMissingItemPath) { valueStr = import_chalk11.default.dim(valueStr); } const keyStr = keyError ? import_chalk11.default.redBright(key) : key; valueStr = valueError ? import_chalk11.default.redBright(valueStr) : valueStr; let output = indent4 + keyStr + ": " + valueStr + (isOnMissingItemPath ? eol : import_chalk11.default.dim(eol)); if (keyError || valueError) { const lines = output.split("\n"); const keyLength = String(key).length; const keyScribbles = keyError ? import_chalk11.default.redBright("~".repeat(keyLength)) : " ".repeat(keyLength); const valueLength = valueError ? getValueLength(indent4, key, value, stringifiedValue) : 0; const hideValueScribbles = valueError && isRenderedAsObject(value); const valueScribbles = valueError ? " " + import_chalk11.default.redBright("~".repeat(valueLength)) : ""; if (keyScribbles && keyScribbles.length > 0 && !hideValueScribbles) { lines.splice(1, 0, indent4 + keyScribbles + valueScribbles); } if (keyScribbles && keyScribbles.length > 0 && hideValueScribbles) { lines.splice(lines.length - 1, 0, indent4.slice(0, indent4.length - 2) + valueScribbles); } output = lines.join("\n"); } return output; } } }); } __name(printJsonWithErrors, "printJsonWithErrors"); function getValueLength(indent4, key, value, stringifiedValue) { if (value === null) { return 4; } if (typeof value === "string") { return value.length + 2; } if (isRenderedAsObject(value)) { return Math.abs(getLongestLine(`${key}: ${(0, import_strip_ansi2.default)(stringifiedValue)}`) - indent4.length); } return String(value).length; } __name(getValueLength, "getValueLength"); function isRenderedAsObject(value) { return typeof value === "object" && value !== null && !(value instanceof ObjectEnumValue); } __name(isRenderedAsObject, "isRenderedAsObject"); function getLongestLine(str) { return str.split("\n").reduce((max2, curr) => curr.length > max2 ? curr.length : max2, 0); } __name(getLongestLine, "getLongestLine"); function prefixLines(str, indent4, prefix) { return str.split("\n").map( (line, index, arr) => index === 0 ? prefix + indent4.slice(1) + line : index < arr.length - 1 ? prefix + line.slice(1) : line ).map((line) => { return (0, import_strip_ansi2.default)(line).includes(DIM_TOKEN) ? import_chalk11.default.dim(line.replace(DIM_TOKEN, "")) : line.includes("?") ? import_chalk11.default.dim(line) : line; }).join("\n"); } __name(prefixLines, "prefixLines"); // src/runtime/query.ts var tab = 2; var Document = class { constructor(type, children) { this.type = type; this.children = children; this.printFieldError = /* @__PURE__ */ __name(({ error: error2 }, missingItems, minimal) => { if (error2.type === "emptySelect") { const additional = minimal ? "" : ` Available options are listed in ${import_chalk12.default.greenBright.dim("green")}.`; return `The ${import_chalk12.default.redBright("`select`")} statement for type ${import_chalk12.default.bold( getOutputTypeName(error2.field.outputType.type) )} must not be empty.${additional}`; } if (error2.type === "emptyInclude") { if (missingItems.length === 0) { return `${import_chalk12.default.bold( getOutputTypeName(error2.field.outputType.type) )} does not have any relation and therefore can't have an ${import_chalk12.default.redBright("`include`")} statement.`; } const additional = minimal ? "" : ` Available options are listed in ${import_chalk12.default.greenBright.dim("green")}.`; return `The ${import_chalk12.default.redBright("`include`")} statement for type ${import_chalk12.default.bold( getOutputTypeName(error2.field.outputType.type) )} must not be empty.${additional}`; } if (error2.type === "noTrueSelect") { return `The ${import_chalk12.default.redBright("`select`")} statement for type ${import_chalk12.default.bold( getOutputTypeName(error2.field.outputType.type) )} needs ${import_chalk12.default.bold("at least one truthy value")}.`; } if (error2.type === "includeAndSelect") { return `Please ${import_chalk12.default.bold("either")} use ${import_chalk12.default.greenBright("`include`")} or ${import_chalk12.default.greenBright( "`select`" )}, but ${import_chalk12.default.redBright("not both")} at the same time.`; } if (error2.type === "invalidFieldName") { const statement = error2.isInclude ? "include" : "select"; const wording = error2.isIncludeScalar ? "Invalid scalar" : "Unknown"; const additional = minimal ? "" : error2.isInclude && missingItems.length === 0 ? ` This model has no relations, so you can't use ${import_chalk12.default.redBright("include")} with it.` : ` Available options are listed in ${import_chalk12.default.greenBright.dim("green")}.`; let str = `${wording} field ${import_chalk12.default.redBright(`\`${error2.providedName}\``)} for ${import_chalk12.default.bold( statement )} statement on model ${import_chalk12.default.bold.white(error2.modelName)}.${additional}`; if (error2.didYouMean) { str += ` Did you mean ${import_chalk12.default.greenBright(`\`${error2.didYouMean}\``)}?`; } if (error2.isIncludeScalar) { str += ` Note, that ${import_chalk12.default.bold("include")} statements only accept relation fields.`; } return str; } if (error2.type === "invalidFieldType") { const str = `Invalid value ${import_chalk12.default.redBright( `${stringifyObject_default(error2.providedValue)}` )} of type ${import_chalk12.default.redBright(getGraphQLType(error2.providedValue, void 0))} for field ${import_chalk12.default.bold( `${error2.fieldName}` )} on model ${import_chalk12.default.bold.white(error2.modelName)}. Expected either ${import_chalk12.default.greenBright( "true" )} or ${import_chalk12.default.greenBright("false")}.`; return str; } return void 0; }, "printFieldError"); this.printArgError = /* @__PURE__ */ __name(({ error: error2, path: path7, id }, hasMissingItems, minimal) => { if (error2.type === "invalidName") { let str = `Unknown arg ${import_chalk12.default.redBright(`\`${error2.providedName}\``)} in ${import_chalk12.default.bold( path7.join(".") )} for type ${import_chalk12.default.bold(error2.outputType ? error2.outputType.name : getInputTypeName(error2.originalType))}.`; if (error2.didYouMeanField) { str += ` \u2192 Did you forget to wrap it with \`${import_chalk12.default.greenBright("select")}\`? ${import_chalk12.default.dim( "e.g. " + import_chalk12.default.greenBright(`{ select: { ${error2.providedName}: ${error2.providedValue} } }`) )}`; } else if (error2.didYouMeanArg) { str += ` Did you mean \`${import_chalk12.default.greenBright(error2.didYouMeanArg)}\`?`; if (!hasMissingItems && !minimal) { str += ` ${import_chalk12.default.dim("Available args:")} ` + stringifyInputType(error2.originalType, true); } } else { if (error2.originalType.fields.length === 0) { str += ` The field ${import_chalk12.default.bold(error2.originalType.name)} has no arguments.`; } else if (!hasMissingItems && !minimal) { str += ` Available args: ` + stringifyInputType(error2.originalType, true); } } return str; } if (error2.type === "invalidType") { let valueStr = stringifyObject_default(error2.providedValue, { indent: " " }); const multilineValue = valueStr.split("\n").length > 1; if (multilineValue) { valueStr = ` ${valueStr} `; } if (error2.requiredType.bestFittingType.location === "enumTypes") { return `Argument ${import_chalk12.default.bold(error2.argName)}: Provided value ${import_chalk12.default.redBright(valueStr)}${multilineValue ? "" : " "}of type ${import_chalk12.default.redBright(getGraphQLType(error2.providedValue))} on ${import_chalk12.default.bold( `prisma.${this.children[0].name}` )} is not a ${import_chalk12.default.greenBright( wrapWithList( stringifyGraphQLType(error2.requiredType.bestFittingType.type), error2.requiredType.bestFittingType.isList ) )}. \u2192 Possible values: ${error2.requiredType.bestFittingType.type.values.map((v) => import_chalk12.default.greenBright(`${stringifyGraphQLType(error2.requiredType.bestFittingType.type)}.${v}`)).join(", ")}`; } let typeStr = "."; if (isInputArgType(error2.requiredType.bestFittingType.type)) { typeStr = ":\n" + stringifyInputType(error2.requiredType.bestFittingType.type); } let expected = `${error2.requiredType.inputType.map( (t2) => import_chalk12.default.greenBright(wrapWithList(stringifyGraphQLType(t2.type), error2.requiredType.bestFittingType.isList)) ).join(" or ")}${typeStr}`; const inputType = error2.requiredType.inputType.length === 2 && error2.requiredType.inputType.find((t2) => isInputArgType(t2.type)) || null; if (inputType) { expected += ` ` + stringifyInputType(inputType.type, true); } return `Argument ${import_chalk12.default.bold(error2.argName)}: Got invalid value ${import_chalk12.default.redBright(valueStr)}${multilineValue ? "" : " "}on ${import_chalk12.default.bold(`prisma.${this.children[0].name}`)}. Provided ${import_chalk12.default.redBright( getGraphQLType(error2.providedValue) )}, expected ${expected}`; } if (error2.type === "invalidNullArg") { const forStr = path7.length === 1 && path7[0] === error2.name ? "" : ` for ${import_chalk12.default.bold(`${path7.join(".")}`)}`; const undefinedTip = ` Please use ${import_chalk12.default.bold.greenBright("undefined")} instead.`; return `Argument ${import_chalk12.default.greenBright(error2.name)}${forStr} must not be ${import_chalk12.default.bold("null")}.${undefinedTip}`; } if (error2.type === "missingArg") { const forStr = path7.length === 1 && path7[0] === error2.missingName ? "" : ` for ${import_chalk12.default.bold(`${path7.join(".")}`)}`; return `Argument ${import_chalk12.default.greenBright(error2.missingName)}${forStr} is missing.`; } if (error2.type === "atLeastOne") { const additional = minimal ? "" : ` Available args are listed in ${import_chalk12.default.dim.green("green")}.`; const atLeastFieldsError = error2.atLeastFields ? ` and at least one argument for ${error2.atLeastFields.map((field) => import_chalk12.default.bold(field)).join(", or ")}` : ""; return `Argument ${import_chalk12.default.bold(path7.join("."))} of type ${import_chalk12.default.bold( error2.inputType.name )} needs ${import_chalk12.default.greenBright("at least one")} argument${import_chalk12.default.bold(atLeastFieldsError)}.${additional}`; } if (error2.type === "atMostOne") { const additional = minimal ? "" : ` Please choose one. ${import_chalk12.default.dim("Available args:")} ${stringifyInputType(error2.inputType, true)}`; return `Argument ${import_chalk12.default.bold(path7.join("."))} of type ${import_chalk12.default.bold( error2.inputType.name )} needs ${import_chalk12.default.greenBright("exactly one")} argument, but you provided ${error2.providedKeys.map((key) => import_chalk12.default.redBright(key)).join(" and ")}.${additional}`; } return void 0; }, "printArgError"); this.type = type; this.children = children; } get [Symbol.toStringTag]() { return "Document"; } toString() { return `${this.type} { ${(0, import_indent_string4.default)(this.children.map(String).join("\n"), tab)} }`; } validate(select, isTopLevelQuery = false, originalMethod, errorFormat, validationCallsite) { if (!select) { select = {}; } const invalidChildren = this.children.filter((child) => child.hasInvalidChild || child.hasInvalidArg); if (invalidChildren.length === 0) { return; } const fieldErrors = []; const argErrors = []; const prefix = select && select.select ? "select" : select.include ? "include" : void 0; for (const child of invalidChildren) { const errors = child.collectErrors(prefix); fieldErrors.push( ...errors.fieldErrors.map((e2) => ({ ...e2, path: isTopLevelQuery ? e2.path : e2.path.slice(1) })) ); argErrors.push( ...errors.argErrors.map((e2) => ({ ...e2, path: isTopLevelQuery ? e2.path : e2.path.slice(1) })) ); } const topLevelQueryName = this.children[0].name; const queryName = isTopLevelQuery ? this.type : topLevelQueryName; const keyPaths = []; const valuePaths = []; const missingItems = []; for (const fieldError of fieldErrors) { const path7 = this.normalizePath(fieldError.path, select).join("."); if (fieldError.error.type === "invalidFieldName") { keyPaths.push(path7); const fieldType = fieldError.error.outputType; const { isInclude } = fieldError.error; fieldType.fields.filter((field) => isInclude ? field.outputType.location === "outputObjectTypes" : true).forEach((field) => { const splittedPath = path7.split("."); missingItems.push({ path: `${splittedPath.slice(0, splittedPath.length - 1).join(".")}.${field.name}`, type: "true", isRequired: false }); }); } else if (fieldError.error.type === "includeAndSelect") { keyPaths.push("select"); keyPaths.push("include"); } else { valuePaths.push(path7); } if (fieldError.error.type === "emptySelect" || fieldError.error.type === "noTrueSelect" || fieldError.error.type === "emptyInclude") { const selectPathArray = this.normalizePath(fieldError.path, select); const selectPath = selectPathArray.slice(0, selectPathArray.length - 1).join("."); const fieldType = fieldError.error.field.outputType.type; fieldType.fields?.filter( (field) => fieldError.error.type === "emptyInclude" ? field.outputType.location === "outputObjectTypes" : true ).forEach((field) => { missingItems.push({ path: `${selectPath}.${field.name}`, type: "true", isRequired: false }); }); } } for (const argError of argErrors) { const path7 = this.normalizePath(argError.path, select).join("."); if (argError.error.type === "invalidName") { keyPaths.push(path7); } else if (argError.error.type !== "missingArg" && argError.error.type !== "atLeastOne") { valuePaths.push(path7); } else if (argError.error.type === "missingArg") { const type = argError.error.missingArg.inputTypes.length === 1 ? argError.error.missingArg.inputTypes[0].type : argError.error.missingArg.inputTypes.map((t2) => { const inputTypeName = getInputTypeName(t2.type); if (inputTypeName === "Null") { return "null"; } if (t2.isList) { return inputTypeName + "[]"; } return inputTypeName; }).join(" | "); missingItems.push({ path: path7, type: inputTypeToJson(type, true, path7.split("where.").length === 2), isRequired: argError.error.missingArg.isRequired }); } } const renderErrorStr = /* @__PURE__ */ __name((callsite) => { const hasRequiredMissingArgsErrors = argErrors.some( (e2) => e2.error.type === "missingArg" && e2.error.missingArg.isRequired ); const hasOptionalMissingArgsErrors = Boolean( argErrors.find((e2) => e2.error.type === "missingArg" && !e2.error.missingArg.isRequired) ); const hasMissingArgsErrors = hasOptionalMissingArgsErrors || hasRequiredMissingArgsErrors; let missingArgsLegend = ""; if (hasRequiredMissingArgsErrors) { missingArgsLegend += ` ${import_chalk12.default.dim("Note: Lines with ")}${import_chalk12.default.reset.greenBright("+")} ${import_chalk12.default.dim( "are required" )}`; } if (hasOptionalMissingArgsErrors) { if (missingArgsLegend.length === 0) { missingArgsLegend = "\n"; } if (hasRequiredMissingArgsErrors) { missingArgsLegend += import_chalk12.default.dim(`, lines with ${import_chalk12.default.green("?")} are optional`); } else { missingArgsLegend += import_chalk12.default.dim(`Note: Lines with ${import_chalk12.default.green("?")} are optional`); } missingArgsLegend += import_chalk12.default.dim("."); } const relevantArgErrors = argErrors.filter((e2) => e2.error.type !== "missingArg" || e2.error.missingArg.isRequired); let errorMessages = relevantArgErrors.map((e2) => this.printArgError(e2, hasMissingArgsErrors, errorFormat === "minimal")).join("\n"); errorMessages += ` ${fieldErrors.map((e2) => this.printFieldError(e2, missingItems, errorFormat === "minimal")).join("\n")}`; if (errorFormat === "minimal") { return (0, import_strip_ansi3.default)(errorMessages); } let printJsonArgs = { ast: isTopLevelQuery ? { [topLevelQueryName]: select } : select, keyPaths, valuePaths, missingItems }; if (originalMethod?.endsWith("aggregate")) { printJsonArgs = transformAggregatePrintJsonArgs(printJsonArgs); } const errorStr = createErrorMessageWithContext({ callsite, originalMethod: originalMethod || queryName, showColors: errorFormat && errorFormat === "pretty", callArguments: printJsonWithErrors(printJsonArgs), message: `${errorMessages}${missingArgsLegend} ` }); if (process.env.NO_COLOR || errorFormat === "colorless") { return (0, import_strip_ansi3.default)(errorStr); } return errorStr; }, "renderErrorStr"); const error2 = new PrismaClientValidationError(renderErrorStr(validationCallsite)); if (process.env.NODE_ENV !== "production") { Object.defineProperty(error2, "render", { get: () => renderErrorStr, enumerable: false }); } throw error2; } normalizePath(inputPath, select) { const path7 = inputPath.slice(); const newPath = []; let key; let pointer = select; while ((key = path7.shift()) !== void 0) { if (!Array.isArray(pointer) && key === 0) { continue; } if (key === "select") { if (!pointer[key]) { pointer = pointer.include; } else { pointer = pointer[key]; } } else if (pointer && pointer[key]) { pointer = pointer[key]; } newPath.push(key); } return newPath; } }; __name(Document, "Document"); var PrismaClientValidationError = class extends Error { get [Symbol.toStringTag]() { return "PrismaClientValidationError"; } }; __name(PrismaClientValidationError, "PrismaClientValidationError"); var PrismaClientConstructorValidationError = class extends Error { constructor(message) { super(message + ` Read more at https://pris.ly/d/client-constructor`); } get [Symbol.toStringTag]() { return "PrismaClientConstructorValidationError"; } }; __name(PrismaClientConstructorValidationError, "PrismaClientConstructorValidationError"); var Field = class { constructor({ name, args, children, error: error2, schemaField }) { this.name = name; this.args = args; this.children = children; this.error = error2; this.schemaField = schemaField; this.hasInvalidChild = children ? children.some((child) => Boolean(child.error || child.hasInvalidArg || child.hasInvalidChild)) : false; this.hasInvalidArg = args ? args.hasInvalidArg : false; } get [Symbol.toStringTag]() { return "Field"; } toString() { let str = this.name; if (this.error) { return str + " # INVALID_FIELD"; } if (this.args && this.args.args && this.args.args.length > 0) { if (this.args.args.length === 1) { str += `(${this.args.toString()})`; } else { str += `( ${(0, import_indent_string4.default)(this.args.toString(), tab)} )`; } } if (this.children) { str += ` { ${(0, import_indent_string4.default)(this.children.map(String).join("\n"), tab)} }`; } return str; } collectErrors(prefix = "select") { const fieldErrors = []; const argErrors = []; if (this.error) { fieldErrors.push({ path: [this.name], error: this.error }); } if (this.children) { for (const child of this.children) { const errors = child.collectErrors(prefix); fieldErrors.push( ...errors.fieldErrors.map((e2) => ({ ...e2, path: [this.name, prefix, ...e2.path] })) ); argErrors.push( ...errors.argErrors.map((e2) => ({ ...e2, path: [this.name, prefix, ...e2.path] })) ); } } if (this.args) { argErrors.push(...this.args.collectErrors().map((e2) => ({ ...e2, path: [this.name, ...e2.path] }))); } return { fieldErrors, argErrors }; } }; __name(Field, "Field"); var Args = class { constructor(args = []) { this.args = args; this.hasInvalidArg = args ? args.some((arg2) => Boolean(arg2.hasError)) : false; } get [Symbol.toStringTag]() { return "Args"; } toString() { if (this.args.length === 0) { return ""; } return `${this.args.map((arg2) => arg2.toString()).filter((a) => a).join("\n")}`; } collectErrors() { if (!this.hasInvalidArg) { return []; } return this.args.flatMap((arg2) => arg2.collectErrors()); } }; __name(Args, "Args"); function stringify(value, inputType) { if (Buffer.isBuffer(value)) { return JSON.stringify(value.toString("base64")); } if (value instanceof FieldRefImpl) { return `{ _ref: ${JSON.stringify(value.name)}}`; } if (Object.prototype.toString.call(value) === "[object BigInt]") { return value.toString(); } if (typeof inputType?.type === "string" && inputType.type === "Json") { if (value === null) { return "null"; } if (value && value.values && value.__prismaRawParameters__) { return JSON.stringify(value.values); } if (inputType?.isList && Array.isArray(value)) { return JSON.stringify(value.map((o2) => JSON.stringify(o2))); } return JSON.stringify(JSON.stringify(value)); } if (value === void 0) { return null; } if (value === null) { return "null"; } if (decimal_default.isDecimal(value) || inputType?.type === "Decimal" && isDecimalJsLike(value)) { return stringifyDecimalJsLike(value); } if (inputType?.location === "enumTypes" && typeof value === "string") { if (Array.isArray(value)) { return `[${value.join(", ")}]`; } return value; } if (typeof value === "number" && inputType?.type === "Float") { return value.toExponential(); } return JSON.stringify(value, null, 2); } __name(stringify, "stringify"); var Arg2 = class { constructor({ key, value, isEnum = false, error: error2, schemaArg, inputType }) { this.inputType = inputType; this.key = key; this.value = value instanceof ObjectEnumValue ? value._getName() : value; this.isEnum = isEnum; this.error = error2; this.schemaArg = schemaArg; this.isNullable = schemaArg?.inputTypes.reduce((isNullable) => isNullable && schemaArg.isNullable, true) || false; this.hasError = Boolean(error2) || (value instanceof Args ? value.hasInvalidArg : false) || Array.isArray(value) && value.some((v) => v instanceof Args ? v.hasInvalidArg : false); } get [Symbol.toStringTag]() { return "Arg"; } _toString(value, key) { if (typeof value === "undefined") { return void 0; } if (value instanceof Args) { return `${key}: { ${(0, import_indent_string4.default)(value.toString(), 2)} }`; } if (Array.isArray(value)) { if (this.inputType?.type === "Json") { return `${key}: ${stringify(value, this.inputType)}`; } const isScalar = !value.some((v) => typeof v === "object"); return `${key}: [${isScalar ? "" : "\n"}${(0, import_indent_string4.default)( value.map((nestedValue) => { if (nestedValue instanceof Args) { return `{ ${(0, import_indent_string4.default)(nestedValue.toString(), tab)} }`; } return stringify(nestedValue, this.inputType); }).join(`,${isScalar ? " " : "\n"}`), isScalar ? 0 : tab )}${isScalar ? "" : "\n"}]`; } return `${key}: ${stringify(value, this.inputType)}`; } toString() { return this._toString(this.value, this.key); } collectErrors() { if (!this.hasError) { return []; } const errors = []; if (this.error) { const id = typeof this.inputType?.type === "object" ? `${this.inputType.type.name}${this.inputType.isList ? "[]" : ""}` : void 0; errors.push({ error: this.error, path: [this.key], id }); } if (Array.isArray(this.value)) { return errors.concat( this.value.flatMap((val, index) => { if (!val?.collectErrors) { return []; } return val.collectErrors().map((e2) => { return { ...e2, path: [this.key, index, ...e2.path] }; }); }) ); } if (this.value instanceof Args) { return errors.concat(this.value.collectErrors().map((e2) => ({ ...e2, path: [this.key, ...e2.path] }))); } return errors; } }; __name(Arg2, "Arg"); function makeDocument({ dmmf, rootTypeName, rootField, select, modelName, extensions }) { if (!select) { select = {}; } const rootType = rootTypeName === "query" ? dmmf.queryType : dmmf.mutationType; const fakeRootField = { args: [], outputType: { isList: false, type: rootType, location: "outputObjectTypes" }, name: rootTypeName }; const context2 = { modelName }; const children = selectionToFields({ dmmf, selection: { [rootField]: select }, schemaField: fakeRootField, path: [rootTypeName], context: context2, extensions }); return new Document(rootTypeName, children); } __name(makeDocument, "makeDocument"); function transformDocument(document2) { return document2; } __name(transformDocument, "transformDocument"); function selectionToFields({ dmmf, selection, schemaField, path: path7, context: context2, extensions }) { const outputType = schemaField.outputType.type; const computedFields = context2.modelName ? extensions.getAllComputedFields(context2.modelName) : {}; selection = applyComputedFieldsToSelection(selection, computedFields); return Object.entries(selection).reduce((acc, [name, value]) => { const field = outputType.fieldMap ? outputType.fieldMap[name] : outputType.fields.find((f2) => f2.name === name); if (!field) { if (computedFields?.[name]) { return acc; } acc.push( new Field({ name, children: [], error: { type: "invalidFieldName", modelName: outputType.name, providedName: name, didYouMean: getSuggestion( name, outputType.fields.map((f2) => f2.name).concat(Object.keys(computedFields ?? {})) ), outputType } }) ); return acc; } if (field.outputType.location === "scalar" && field.args.length === 0 && typeof value !== "boolean") { acc.push( new Field({ name, children: [], error: { type: "invalidFieldType", modelName: outputType.name, fieldName: name, providedValue: value } }) ); return acc; } if (value === false) { return acc; } const transformedField = { name: field.name, fields: field.args, constraints: { minNumFields: null, maxNumFields: null } }; const argsWithoutIncludeAndSelect = typeof value === "object" ? omit2(value, ["include", "select"]) : void 0; const args = argsWithoutIncludeAndSelect ? objectToArgs( argsWithoutIncludeAndSelect, transformedField, context2, [], typeof field === "string" ? void 0 : field.outputType.type ) : void 0; const isRelation = field.outputType.location === "outputObjectTypes"; if (value) { if (value.select && value.include) { acc.push( new Field({ name, children: [ new Field({ name: "include", args: new Args(), error: { type: "includeAndSelect", field } }) ] }) ); } else if (value.include) { const keys2 = Object.keys(value.include); if (keys2.length === 0) { acc.push( new Field({ name, children: [ new Field({ name: "include", args: new Args(), error: { type: "emptyInclude", field } }) ] }) ); return acc; } if (field.outputType.location === "outputObjectTypes") { const fieldOutputType = field.outputType.type; const allowedKeys = fieldOutputType.fields.filter((f2) => f2.outputType.location === "outputObjectTypes").map((f2) => f2.name); const invalidKeys = keys2.filter((key) => !allowedKeys.includes(key)); if (invalidKeys.length > 0) { acc.push( ...invalidKeys.map( (invalidKey) => new Field({ name: invalidKey, children: [ new Field({ name: invalidKey, args: new Args(), error: { type: "invalidFieldName", modelName: fieldOutputType.name, outputType: fieldOutputType, providedName: invalidKey, didYouMean: getSuggestion(invalidKey, allowedKeys) || void 0, isInclude: true, isIncludeScalar: fieldOutputType.fields.some((f2) => f2.name === invalidKey) } }) ] }) ) ); return acc; } } } else if (value.select) { const values = Object.values(value.select); if (values.length === 0) { acc.push( new Field({ name, children: [ new Field({ name: "select", args: new Args(), error: { type: "emptySelect", field } }) ] }) ); return acc; } const truthyValues = values.filter((v) => v); if (truthyValues.length === 0) { acc.push( new Field({ name, children: [ new Field({ name: "select", args: new Args(), error: { type: "noTrueSelect", field } }) ] }) ); return acc; } } } const defaultSelection = isRelation ? getDefaultSelection(dmmf, field.outputType.type) : null; let select = defaultSelection; if (value) { if (value.select) { select = value.select; } else if (value.include) { select = deepExtend(defaultSelection, value.include); } else if (value.by && Array.isArray(value.by) && field.outputType.namespace === "prisma" && field.outputType.location === "outputObjectTypes" && isGroupByOutputName(field.outputType.type.name)) { select = byToSelect(value.by); } } let children; if (select !== false && isRelation) { let modelName = context2.modelName; if (typeof field.outputType.type === "object" && field.outputType.namespace === "model" && field.outputType.location === "outputObjectTypes") { modelName = field.outputType.type.name; } children = selectionToFields({ dmmf, selection: select, schemaField: field, path: [...path7, name], context: { modelName }, extensions }); } acc.push(new Field({ name, args, children, schemaField: field })); return acc; }, []); } __name(selectionToFields, "selectionToFields"); function byToSelect(by) { const obj = /* @__PURE__ */ Object.create(null); for (const b2 of by) { obj[b2] = true; } return obj; } __name(byToSelect, "byToSelect"); function getDefaultSelection(dmmf, outputType) { const acc = /* @__PURE__ */ Object.create(null); for (const f2 of outputType.fields) { if (dmmf.typeMap[f2.outputType.type.name] !== void 0) { acc[f2.name] = true; } if (f2.outputType.location === "scalar" || f2.outputType.location === "enumTypes") { acc[f2.name] = true; } } return acc; } __name(getDefaultSelection, "getDefaultSelection"); function getInvalidTypeArg(key, value, arg2, bestFittingType) { const arrg = new Arg2({ key, value, isEnum: bestFittingType.location === "enumTypes", inputType: bestFittingType, error: { type: "invalidType", providedValue: value, argName: key, requiredType: { inputType: arg2.inputTypes, bestFittingType } } }); return arrg; } __name(getInvalidTypeArg, "getInvalidTypeArg"); function hasCorrectScalarType(value, inputType, context2) { const { isList } = inputType; const expectedType = getExpectedType(inputType, context2); const graphQLType = getGraphQLType(value, inputType); if (graphQLType === expectedType) { return true; } if (isList && graphQLType === "List<>") { return true; } if (expectedType === "Json" && graphQLType !== "Symbol" && !(value instanceof ObjectEnumValue) && !(value instanceof FieldRefImpl)) { return true; } if (graphQLType === "Int" && expectedType === "BigInt") { return true; } if ((graphQLType === "Int" || graphQLType === "Float") && expectedType === "Decimal") { return true; } if (graphQLType === "DateTime" && expectedType === "String") { return true; } if (graphQLType === "UUID" && expectedType === "String") { return true; } if (graphQLType === "String" && expectedType === "ID") { return true; } if (graphQLType === "Int" && expectedType === "Float") { return true; } if (graphQLType === "Int" && expectedType === "Long") { return true; } if (graphQLType === "String" && expectedType === "Decimal" && isDecimalString(value)) { return true; } if (value === null) { return true; } if (inputType.isList && Array.isArray(value)) { return value.every((v) => hasCorrectScalarType(v, { ...inputType, isList: false }, context2)); } return false; } __name(hasCorrectScalarType, "hasCorrectScalarType"); function getExpectedType(inputType, context2, isList = inputType.isList) { let type = stringifyGraphQLType(inputType.type); if (inputType.location === "fieldRefTypes" && context2.modelName) { type += `<${context2.modelName}>`; } return wrapWithList(type, isList); } __name(getExpectedType, "getExpectedType"); var cleanObject = /* @__PURE__ */ __name((obj) => filterObject(obj, (k, v) => v !== void 0), "cleanObject"); function isDecimalString(value) { return /^\-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i.test(value); } __name(isDecimalString, "isDecimalString"); function valueToArg(key, value, arg2, context2) { let maybeArg = null; const argsWithErrors = []; for (const inputType of arg2.inputTypes) { maybeArg = tryInferArgs(key, value, arg2, inputType, context2); if (maybeArg?.collectErrors().length === 0) { return maybeArg; } if (maybeArg && maybeArg?.collectErrors()) { const argErrors = maybeArg?.collectErrors(); if (argErrors && argErrors.length > 0) { argsWithErrors.push({ arg: maybeArg, errors: argErrors }); } } } if (maybeArg?.hasError && argsWithErrors.length > 0) { const argsWithScores = argsWithErrors.map(({ arg: arg3, errors }) => { const errorScores = errors.map((e2) => { let score = 1; if (e2.error.type === "invalidType") { score = 2 * Math.exp(getDepth(e2.error.providedValue)) + 1; } score += Math.log(e2.path.length); if (e2.error.type === "missingArg") { if (arg3.inputType && isInputArgType(arg3.inputType.type) && arg3.inputType.type.name.includes("Unchecked")) { score *= 2; } } if (e2.error.type === "invalidName") { if (isInputArgType(e2.error.originalType)) { if (e2.error.originalType.name.includes("Unchecked")) { score *= 2; } } } return score; }); return { score: errors.length + sum2(errorScores), arg: arg3, errors }; }); argsWithScores.sort((a, b2) => a.score < b2.score ? -1 : 1); return argsWithScores[0].arg; } return maybeArg; } __name(valueToArg, "valueToArg"); function getDepth(object) { let level = 1; if (!object || typeof object !== "object") { return level; } for (const key in object) { if (!Object.prototype.hasOwnProperty.call(object, key)) { continue; } if (typeof object[key] === "object") { const depth = getDepth(object[key]) + 1; level = Math.max(depth, level); } } return level; } __name(getDepth, "getDepth"); function sum2(n2) { return n2.reduce((acc, curr) => acc + curr, 0); } __name(sum2, "sum"); function tryInferArgs(key, value, arg2, inputType, context2) { if (typeof value === "undefined") { if (!arg2.isRequired) { return null; } return new Arg2({ key, value, isEnum: inputType.location === "enumTypes", inputType, error: { type: "missingArg", missingName: key, missingArg: arg2, atLeastOne: false, atMostOne: false } }); } const { isNullable, isRequired } = arg2; if (value === null && !isNullable && !isRequired) { const isAtLeastOne = isInputArgType(inputType.type) ? inputType.type.constraints.minNumFields !== null && inputType.type.constraints.minNumFields > 0 : false; if (!isAtLeastOne) { return new Arg2({ key, value, isEnum: inputType.location === "enumTypes", inputType, error: { type: "invalidNullArg", name: key, invalidType: arg2.inputTypes, atLeastOne: false, atMostOne: false } }); } } if (!inputType.isList) { if (isInputArgType(inputType.type)) { if (typeof value !== "object" || Array.isArray(value) || inputType.location === "inputObjectTypes" && !isObject(value)) { return getInvalidTypeArg(key, value, arg2, inputType); } else { const val = cleanObject(value); let error2; const keys2 = Object.keys(val || {}); const numKeys = keys2.length; if (numKeys === 0 && typeof inputType.type.constraints.minNumFields === "number" && inputType.type.constraints.minNumFields > 0 || inputType.type.constraints.fields?.some((field) => keys2.includes(field)) === false) { error2 = { type: "atLeastOne", key, inputType: inputType.type, atLeastFields: inputType.type.constraints.fields }; } else if (numKeys > 1 && typeof inputType.type.constraints.maxNumFields === "number" && inputType.type.constraints.maxNumFields < 2) { error2 = { type: "atMostOne", key, inputType: inputType.type, providedKeys: keys2 }; } return new Arg2({ key, value: val === null ? null : objectToArgs(val, inputType.type, context2, arg2.inputTypes), isEnum: inputType.location === "enumTypes", error: error2, inputType, schemaArg: arg2 }); } } else { return scalarToArg(key, value, arg2, inputType, context2); } } if (!Array.isArray(value) && inputType.isList) { if (key !== "updateMany") { value = [value]; } } if (inputType.location === "enumTypes" || inputType.location === "scalar") { return scalarToArg(key, value, arg2, inputType, context2); } const argInputType = inputType.type; const hasAtLeastOneError = typeof argInputType.constraints?.minNumFields === "number" && argInputType.constraints?.minNumFields > 0 ? Array.isArray(value) && value.some((v) => !v || Object.keys(cleanObject(v)).length === 0) : false; let err = hasAtLeastOneError ? { inputType: argInputType, key, type: "atLeastOne" } : void 0; if (!err) { const hasOneOfError = typeof argInputType.constraints?.maxNumFields === "number" && argInputType.constraints?.maxNumFields < 2 ? Array.isArray(value) && value.find((v) => !v || Object.keys(cleanObject(v)).length !== 1) : false; if (hasOneOfError) { err = { inputType: argInputType, key, type: "atMostOne", providedKeys: Object.keys(hasOneOfError) }; } } if (!Array.isArray(value)) { for (const nestedArgInputType of arg2.inputTypes) { const args = objectToArgs(value, nestedArgInputType.type, context2); if (args.collectErrors().length === 0) { return new Arg2({ key, value: args, isEnum: false, schemaArg: arg2, inputType: nestedArgInputType }); } } } return new Arg2({ key, value: value.map((v) => { if (inputType.isList && typeof v !== "object") { return v; } if (typeof v !== "object" || !value) { return getInvalidTypeArg(key, v, arg2, inputType); } return objectToArgs(v, argInputType, context2); }), isEnum: false, inputType, schemaArg: arg2, error: err }); } __name(tryInferArgs, "tryInferArgs"); function isInputArgType(argType) { if (typeof argType === "string") { return false; } if (Object.hasOwnProperty.call(argType, "values")) { return false; } return true; } __name(isInputArgType, "isInputArgType"); function scalarToArg(key, value, arg2, inputType, context2) { if (hasCorrectScalarType(value, inputType, context2)) { return new Arg2({ key, value, isEnum: inputType.location === "enumTypes", schemaArg: arg2, inputType }); } return getInvalidTypeArg(key, value, arg2, inputType); } __name(scalarToArg, "scalarToArg"); function objectToArgs(initialObj, inputType, context2, possibilities, outputType) { if (inputType.meta?.source) { context2 = { modelName: inputType.meta.source }; } const obj = cleanObject(initialObj); const { fields: args, fieldMap } = inputType; const requiredArgs = args.map((arg2) => [arg2.name, void 0]); const objEntries = Object.entries(obj || {}); const entries = unionBy(objEntries, requiredArgs, (a) => a[0]); const argsList = entries.reduce((acc, [argName, value]) => { const schemaArg = fieldMap ? fieldMap[argName] : args.find((a) => a.name === argName); if (!schemaArg) { const didYouMeanField = typeof value === "boolean" && outputType && outputType.fields.some((f2) => f2.name === argName) ? argName : null; acc.push( new Arg2({ key: argName, value, error: { type: "invalidName", providedName: argName, providedValue: value, didYouMeanField, didYouMeanArg: !didYouMeanField && getSuggestion(argName, [...args.map((a) => a.name), "select"]) || void 0, originalType: inputType, possibilities, outputType } }) ); return acc; } const arg2 = valueToArg(argName, value, schemaArg, context2); if (arg2) { acc.push(arg2); } return acc; }, []); if (typeof inputType.constraints.minNumFields === "number" && objEntries.length < inputType.constraints.minNumFields || argsList.find((arg2) => arg2.error?.type === "missingArg" || arg2.error?.type === "atLeastOne")) { const optionalMissingArgs = inputType.fields.filter( (field) => !field.isRequired && obj && (typeof obj[field.name] === "undefined" || obj[field.name] === null) ); argsList.push( ...optionalMissingArgs.map((arg2) => { const argInputType = arg2.inputTypes[0]; return new Arg2({ key: arg2.name, value: void 0, isEnum: argInputType.location === "enumTypes", error: { type: "missingArg", missingName: arg2.name, missingArg: arg2, atLeastOne: Boolean(inputType.constraints.minNumFields) || false, atMostOne: inputType.constraints.maxNumFields === 1 || false }, inputType: argInputType }); }) ); } return new Args(argsList); } __name(objectToArgs, "objectToArgs"); function unpack({ document: document2, path: path7, data }) { const result = deepGet(data, path7); if (result === "undefined") { return null; } if (typeof result !== "object") { return result; } const field = getField(document2, path7); return mapScalars({ field, data: result }); } __name(unpack, "unpack"); function mapScalars({ field, data }) { if (!data || typeof data !== "object" || !field.children || !field.schemaField) { return data; } const deserializers = { DateTime: (value) => new Date(value), Json: (value) => JSON.parse(value), Bytes: (value) => Buffer.from(value, "base64"), Decimal: (value) => { return new decimal_default(value); }, BigInt: (value) => BigInt(value) }; for (const child of field.children) { const outputType = child.schemaField?.outputType.type; if (outputType && typeof outputType === "string") { const deserializer = deserializers[outputType]; if (deserializer) { if (Array.isArray(data)) { for (const entry of data) { if (typeof entry[child.name] !== "undefined" && entry[child.name] !== null) { if (Array.isArray(entry[child.name])) { entry[child.name] = entry[child.name].map(deserializer); } else { entry[child.name] = deserializer(entry[child.name]); } } } } else { if (typeof data[child.name] !== "undefined" && data[child.name] !== null) { if (Array.isArray(data[child.name])) { data[child.name] = data[child.name].map(deserializer); } else { data[child.name] = deserializer(data[child.name]); } } } } } if (child.schemaField && child.schemaField.outputType.location === "outputObjectTypes") { if (Array.isArray(data)) { for (const entry of data) { mapScalars({ field: child, data: entry[child.name] }); } } else { mapScalars({ field: child, data: data[child.name] }); } } } return data; } __name(mapScalars, "mapScalars"); function getField(document2, path7) { const todo = path7.slice(); const firstElement = todo.shift(); let pointer = document2.children.find((c) => c.name === firstElement); if (!pointer) { throw new Error(`Could not find field ${firstElement} in document ${document2}`); } while (todo.length > 0) { const key = todo.shift(); if (!pointer.children) { throw new Error(`Can't get children for field ${pointer} with child ${key}`); } const child = pointer.children.find((c) => c.name === key); if (!child) { throw new Error(`Can't find child ${key} of field ${pointer}`); } pointer = child; } return pointer; } __name(getField, "getField"); function removeSelectFromPath(path7) { return path7.split(".").filter((p2) => p2 !== "select").join("."); } __name(removeSelectFromPath, "removeSelectFromPath"); function removeSelectFromObject(obj) { const type = Object.prototype.toString.call(obj); if (type === "[object Object]") { const copy = {}; for (const key in obj) { if (key === "select") { for (const subKey in obj["select"]) { copy[subKey] = removeSelectFromObject(obj["select"][subKey]); } } else { copy[key] = removeSelectFromObject(obj[key]); } } return copy; } return obj; } __name(removeSelectFromObject, "removeSelectFromObject"); function transformAggregatePrintJsonArgs({ ast, keyPaths, missingItems, valuePaths }) { const newKeyPaths = keyPaths.map(removeSelectFromPath); const newValuePaths = valuePaths.map(removeSelectFromPath); const newMissingItems = missingItems.map((item) => ({ path: removeSelectFromPath(item.path), isRequired: item.isRequired, type: item.type })); const newAst = removeSelectFromObject(ast); return { ast: newAst, keyPaths: newKeyPaths, missingItems: newMissingItems, valuePaths: newValuePaths }; } __name(transformAggregatePrintJsonArgs, "transformAggregatePrintJsonArgs"); // src/runtime/core/compositeProxy/addObjectProperties.ts function addObjectProperties(object) { return { getKeys() { return Object.keys(object); }, getPropertyValue(key) { return object[key]; } }; } __name(addObjectProperties, "addObjectProperties"); // src/runtime/core/compositeProxy/addProperty.ts function addProperty(key, factory) { return { getKeys() { return [key]; }, getPropertyValue() { return factory(); } }; } __name(addProperty, "addProperty"); // src/runtime/core/compositeProxy/cacheProperties.ts function cacheProperties(baseLayer) { const cache = new Cache(); return { getKeys() { return baseLayer.getKeys(); }, getPropertyValue(key) { return cache.getOrCreate(key, () => baseLayer.getPropertyValue(key)); }, getPropertyDescriptor(key) { return baseLayer.getPropertyDescriptor?.(key); } }; } __name(cacheProperties, "cacheProperties"); // src/runtime/core/compositeProxy/createCompositeProxy.ts var import_util7 = require("util"); // src/runtime/core/model/utils/defaultProxyHandlers.ts var defaultPropertyDescriptor = { enumerable: true, configurable: true, writable: true }; function defaultProxyHandlers(ownKeys) { const _ownKeys = new Set(ownKeys); return { getOwnPropertyDescriptor: () => defaultPropertyDescriptor, has: (target, prop) => _ownKeys.has(prop), set: (target, prop, value) => { return _ownKeys.add(prop) && Reflect.set(target, prop, value); }, ownKeys: () => [..._ownKeys] }; } __name(defaultProxyHandlers, "defaultProxyHandlers"); // src/runtime/core/compositeProxy/createCompositeProxy.ts var customInspect = Symbol.for("nodejs.util.inspect.custom"); function createCompositeProxy(target, layers) { const keysToLayerMap = mapKeysToLayers(layers); const overwrittenKeys = /* @__PURE__ */ new Set(); const proxy = new Proxy(target, { get(target2, prop) { if (overwrittenKeys.has(prop)) { return target2[prop]; } const layer = keysToLayerMap.get(prop); if (layer) { return layer.getPropertyValue(prop); } return target2[prop]; }, has(target2, prop) { if (overwrittenKeys.has(prop)) { return true; } const layer = keysToLayerMap.get(prop); if (layer) { return layer.has?.(prop) ?? true; } return Reflect.has(target2, prop); }, ownKeys(target2) { const targetKeys = getExistingKeys(Reflect.ownKeys(target2), keysToLayerMap); const layerKeys = getExistingKeys(Array.from(keysToLayerMap.keys()), keysToLayerMap); return [.../* @__PURE__ */ new Set([...targetKeys, ...layerKeys, ...overwrittenKeys])]; }, set(target2, prop, value) { const layer = keysToLayerMap.get(prop); if (layer?.getPropertyDescriptor?.(prop)?.writable === false) { return false; } overwrittenKeys.add(prop); return Reflect.set(target2, prop, value); }, getOwnPropertyDescriptor(target2, prop) { const layer = keysToLayerMap.get(prop); if (layer && layer.getPropertyDescriptor) { return { ...defaultPropertyDescriptor, ...layer.getPropertyDescriptor(prop) }; } return defaultPropertyDescriptor; }, defineProperty(target2, property, attributes) { overwrittenKeys.add(property); return Reflect.defineProperty(target2, property, attributes); } }); proxy[customInspect] = function(depth, options, defaultInspect = import_util7.inspect) { const toLog = { ...this }; delete toLog[customInspect]; return defaultInspect(toLog, options); }; return proxy; } __name(createCompositeProxy, "createCompositeProxy"); function mapKeysToLayers(layers) { const keysToLayerMap = /* @__PURE__ */ new Map(); for (const layer of layers) { const keys2 = layer.getKeys(); for (const key of keys2) { keysToLayerMap.set(key, layer); } } return keysToLayerMap; } __name(mapKeysToLayers, "mapKeysToLayers"); function getExistingKeys(keys2, keysToLayerMap) { return keys2.filter((key) => { const layer = keysToLayerMap.get(key); return layer?.has?.(key) ?? true; }); } __name(getExistingKeys, "getExistingKeys"); // src/runtime/core/compositeProxy/removeProperties.ts function removeProperties(keys2) { return { getKeys() { return keys2; }, has() { return false; }, getPropertyValue() { return void 0; } }; } __name(removeProperties, "removeProperties"); // ../../node_modules/.pnpm/stacktrace-parser@0.1.10/node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js var UNKNOWN_FUNCTION = ""; function parse(stackString) { var lines = stackString.split("\n"); return lines.reduce(function(stack, line) { var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line); if (parseResult) { stack.push(parseResult); } return stack; }, []); } __name(parse, "parse"); var chromeRe = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i; var chromeEvalRe = /\((\S*)(?::(\d+))(?::(\d+))\)/; function parseChrome(line) { var parts = chromeRe.exec(line); if (!parts) { return null; } var isNative = parts[2] && parts[2].indexOf("native") === 0; var isEval = parts[2] && parts[2].indexOf("eval") === 0; var submatch = chromeEvalRe.exec(parts[2]); if (isEval && submatch != null) { parts[2] = submatch[1]; parts[3] = submatch[2]; parts[4] = submatch[3]; } return { file: !isNative ? parts[2] : null, methodName: parts[1] || UNKNOWN_FUNCTION, arguments: isNative ? [parts[2]] : [], lineNumber: parts[3] ? +parts[3] : null, column: parts[4] ? +parts[4] : null }; } __name(parseChrome, "parseChrome"); var winjsRe = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i; function parseWinjs(line) { var parts = winjsRe.exec(line); if (!parts) { return null; } return { file: parts[2], methodName: parts[1] || UNKNOWN_FUNCTION, arguments: [], lineNumber: +parts[3], column: parts[4] ? +parts[4] : null }; } __name(parseWinjs, "parseWinjs"); var geckoRe = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i; var geckoEvalRe = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i; function parseGecko(line) { var parts = geckoRe.exec(line); if (!parts) { return null; } var isEval = parts[3] && parts[3].indexOf(" > eval") > -1; var submatch = geckoEvalRe.exec(parts[3]); if (isEval && submatch != null) { parts[3] = submatch[1]; parts[4] = submatch[2]; parts[5] = null; } return { file: parts[3], methodName: parts[1] || UNKNOWN_FUNCTION, arguments: parts[2] ? parts[2].split(",") : [], lineNumber: parts[4] ? +parts[4] : null, column: parts[5] ? +parts[5] : null }; } __name(parseGecko, "parseGecko"); var javaScriptCoreRe = /^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i; function parseJSC(line) { var parts = javaScriptCoreRe.exec(line); if (!parts) { return null; } return { file: parts[3], methodName: parts[1] || UNKNOWN_FUNCTION, arguments: [], lineNumber: +parts[4], column: parts[5] ? +parts[5] : null }; } __name(parseJSC, "parseJSC"); var nodeRe = /^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i; function parseNode(line) { var parts = nodeRe.exec(line); if (!parts) { return null; } return { file: parts[2], methodName: parts[1] || UNKNOWN_FUNCTION, arguments: [], lineNumber: +parts[3], column: parts[4] ? +parts[4] : null }; } __name(parseNode, "parseNode"); // src/runtime/utils/CallSite.ts var DisabledCallSite = class { getLocation() { return null; } }; __name(DisabledCallSite, "DisabledCallSite"); var EnabledCallSite = class { constructor() { this._error = new Error(); } getLocation() { const stack = this._error.stack; if (!stack) { return null; } const stackFrames = parse(stack); const frame = stackFrames.find((t2) => { return t2.file && t2.file !== "" && !t2.file.includes("@prisma") && !t2.file.includes("getPrismaClient") && !t2.file.startsWith("internal/") && !t2.methodName.includes("new ") && !t2.methodName.includes("getCallSite") && !t2.methodName.includes("Proxy.") && t2.methodName.split(".").length < 4; }); if (!frame || !frame.file) { return null; } return { fileName: frame.file, lineNumber: frame.lineNumber, columnNumber: frame.column }; } }; __name(EnabledCallSite, "EnabledCallSite"); function getCallSite(errorFormat) { if (errorFormat === "minimal") { return new DisabledCallSite(); } return new EnabledCallSite(); } __name(getCallSite, "getCallSite"); // src/runtime/core/request/createPrismaPromise.ts function createPrismaPromise(callback) { let promise; const _callback = /* @__PURE__ */ __name((transaction, lock, cached = true) => { try { if (cached === true) { return promise ?? (promise = valueToPromise(callback(transaction, lock))); } return valueToPromise(callback(transaction, lock)); } catch (error2) { return Promise.reject(error2); } }, "_callback"); return { then(onFulfilled, onRejected, transaction) { return _callback(createItx(transaction), void 0).then(onFulfilled, onRejected, transaction); }, catch(onRejected, transaction) { return _callback(createItx(transaction), void 0).catch(onRejected, transaction); }, finally(onFinally, transaction) { return _callback(createItx(transaction), void 0).finally(onFinally, transaction); }, requestTransaction(transactionOptions, lock) { const transaction = { kind: "batch", ...transactionOptions }; const promise2 = _callback(transaction, lock, false); if (promise2.requestTransaction) { return promise2.requestTransaction(transaction, lock); } return promise2; }, [Symbol.toStringTag]: "PrismaPromise" }; } __name(createPrismaPromise, "createPrismaPromise"); function createItx(transaction) { if (transaction) { return { kind: "itx", ...transaction }; } return void 0; } __name(createItx, "createItx"); function valueToPromise(thing) { if (typeof thing["then"] === "function") { return thing; } return Promise.resolve(thing); } __name(valueToPromise, "valueToPromise"); // src/runtime/core/model/aggregates/utils/aggregateMap.ts var aggregateMap = { _avg: true, _count: true, _sum: true, _min: true, _max: true }; // src/runtime/core/model/aggregates/aggregate.ts function desugarUserArgs(args = {}) { const _args = desugarCountInUserArgs(args); const userArgsEntries = Object.entries(_args); return userArgsEntries.reduce( (aggregateArgs, [key, value]) => { if (aggregateMap[key] !== void 0) { aggregateArgs["select"][key] = { select: value }; } else { aggregateArgs[key] = value; } return aggregateArgs; }, { select: {} } ); } __name(desugarUserArgs, "desugarUserArgs"); function desugarCountInUserArgs(args = {}) { if (typeof args["_count"] === "boolean") { return { ...args, _count: { _all: args["_count"] } }; } return args; } __name(desugarCountInUserArgs, "desugarCountInUserArgs"); function createUnpacker(args = {}) { return (data) => { if (typeof args["_count"] === "boolean") { data["_count"] = data["_count"]["_all"]; } return data; }; } __name(createUnpacker, "createUnpacker"); function aggregate(args, modelAction) { const aggregateUnpacker = createUnpacker(args); return modelAction({ action: "aggregate", unpacker: aggregateUnpacker, argsMapper: desugarUserArgs })(args); } __name(aggregate, "aggregate"); // src/runtime/core/model/aggregates/count.ts function desugarUserArgs2(args = {}) { const { select, ..._args } = args; if (typeof select === "object") { return desugarUserArgs({ ..._args, _count: select }); } else { return desugarUserArgs({ ..._args, _count: { _all: true } }); } } __name(desugarUserArgs2, "desugarUserArgs"); function createUnpacker2(args = {}) { if (typeof args["select"] === "object") { return (data) => createUnpacker(args)(data)["_count"]; } else { return (data) => createUnpacker(args)(data)["_count"]["_all"]; } } __name(createUnpacker2, "createUnpacker"); function count(args, modelAction) { return modelAction({ action: "count", unpacker: createUnpacker2(args), argsMapper: desugarUserArgs2 })(args); } __name(count, "count"); // src/runtime/core/model/aggregates/groupBy.ts function desugarUserArgs3(args = {}) { const _args = desugarUserArgs(args); if (Array.isArray(_args["by"])) { for (const key of _args["by"]) { if (typeof key === "string") { _args["select"][key] = true; } } } return _args; } __name(desugarUserArgs3, "desugarUserArgs"); function createUnpacker3(args = {}) { return (data) => { if (typeof args?.["_count"] === "boolean") { data.forEach((row) => { row["_count"] = row["_count"]["_all"]; }); } return data; }; } __name(createUnpacker3, "createUnpacker"); function groupBy(args, modelAction) { return modelAction({ action: "groupBy", unpacker: createUnpacker3(args), argsMapper: desugarUserArgs3 })(args); } __name(groupBy, "groupBy"); // src/runtime/core/model/applyAggregates.ts function applyAggregates(client, action, modelAction) { if (action === "aggregate") return (userArgs) => aggregate(userArgs, modelAction); if (action === "count") return (userArgs) => count(userArgs, modelAction); if (action === "groupBy") return (userArgs) => groupBy(userArgs, modelAction); return void 0; } __name(applyAggregates, "applyAggregates"); // src/runtime/core/model/applyFieldsProxy.ts function applyFieldsProxy(model) { const scalarFieldsList = model.fields.filter((field) => !field.relationName); const scalarFields = keyBy(scalarFieldsList, (field) => field.name); return new Proxy( {}, { get(target, prop) { if (prop in target || typeof prop === "symbol") { return target[prop]; } const dmmfField = scalarFields[prop]; if (dmmfField) { return new FieldRefImpl(model.name, prop, dmmfField.type, dmmfField.isList); } return void 0; }, ...defaultProxyHandlers(Object.keys(scalarFields)) } ); } __name(applyFieldsProxy, "applyFieldsProxy"); // src/runtime/core/model/applyFluent.ts function getNextDataPath(fluentPropName, prevDataPath) { if (fluentPropName === void 0 || prevDataPath === void 0) return []; return [...prevDataPath, "select", fluentPropName]; } __name(getNextDataPath, "getNextDataPath"); function getNextUserArgs(callArgs, prevArgs, nextDataPath) { if (prevArgs === void 0) return callArgs ?? {}; return deepSet(prevArgs, nextDataPath, callArgs || true); } __name(getNextUserArgs, "getNextUserArgs"); function applyFluent(client, dmmfModelName, modelAction, fluentPropName, prevDataPath, prevUserArgs) { const dmmfModel = client._baseDmmf.modelMap[dmmfModelName]; const dmmfModelFieldMap = dmmfModel.fields.reduce( (acc, field) => ({ ...acc, [field.name]: field }), {} ); return (userArgs) => { const callsite = getCallSite(client._errorFormat); const nextDataPath = getNextDataPath(fluentPropName, prevDataPath); const nextUserArgs = getNextUserArgs(userArgs, prevUserArgs, nextDataPath); const prismaPromise = modelAction({ dataPath: nextDataPath, callsite })(nextUserArgs); const ownKeys = getOwnKeys(client, dmmfModelName); return new Proxy(prismaPromise, { get(target, prop) { if (!ownKeys.includes(prop)) return target[prop]; const dmmfModelName2 = dmmfModelFieldMap[prop].type; const modelArgs = [dmmfModelName2, modelAction, prop]; const dataArgs = [nextDataPath, nextUserArgs]; return applyFluent(client, ...modelArgs, ...dataArgs); }, ...defaultProxyHandlers([...ownKeys, ...Object.getOwnPropertyNames(prismaPromise)]) }); }; } __name(applyFluent, "applyFluent"); function getOwnKeys(client, dmmfModelName) { return client._baseDmmf.modelMap[dmmfModelName].fields.filter((field) => field.kind === "object").map((field) => field.name); } __name(getOwnKeys, "getOwnKeys"); // src/runtime/utils/clientVersion.ts var clientVersion = require_package3().version; // src/runtime/utils/rejectOnNotFound.ts var NotFoundError2 = class extends PrismaClientKnownRequestError { constructor(message) { super(message, { code: "P2025", clientVersion }); this.name = "NotFoundError"; } }; __name(NotFoundError2, "NotFoundError"); function getRejectOnNotFound(action, modelName, args, clientInstance) { let rejectOnNotFound; if (args && typeof args === "object" && "rejectOnNotFound" in args && args["rejectOnNotFound"] !== void 0) { rejectOnNotFound = args["rejectOnNotFound"]; delete args["rejectOnNotFound"]; } else if (typeof clientInstance === "boolean") { rejectOnNotFound = clientInstance; } else if (clientInstance && typeof clientInstance === "object" && action in clientInstance) { const rejectPerOperation = clientInstance[action]; if (rejectPerOperation && typeof rejectPerOperation === "object") { if (modelName in rejectPerOperation) { return rejectPerOperation[modelName]; } return void 0; } rejectOnNotFound = getRejectOnNotFound(action, modelName, args, rejectPerOperation); } else if (typeof clientInstance === "function") { rejectOnNotFound = clientInstance; } else { rejectOnNotFound = false; } return rejectOnNotFound; } __name(getRejectOnNotFound, "getRejectOnNotFound"); var REGEX = /(findUnique|findFirst)/; function throwIfNotFound(data, clientMethod, typeName, rejectOnNotFound) { if (rejectOnNotFound && !data && REGEX.exec(clientMethod)) { if (typeof rejectOnNotFound === "boolean" && rejectOnNotFound) { throw new NotFoundError2(`No ${typeName} found`); } else if (typeof rejectOnNotFound === "function") { throw rejectOnNotFound(new NotFoundError2(`No ${typeName} found`)); } else if (isError(rejectOnNotFound)) { throw rejectOnNotFound; } throw new NotFoundError2(`No ${typeName} found`); } } __name(throwIfNotFound, "throwIfNotFound"); // src/runtime/core/model/applyOrThrowErrorAdapter.ts function adaptErrors(action, dmmfModelName, requestCallback) { if (action === DMMF.ModelAction.findFirstOrThrow || action === DMMF.ModelAction.findUniqueOrThrow) { return applyOrThrowWrapper(dmmfModelName, requestCallback); } return requestCallback; } __name(adaptErrors, "adaptErrors"); function applyOrThrowWrapper(dmmfModelName, requestCallback) { return async (requestParams) => { if ("rejectOnNotFound" in requestParams.args) { const message = createErrorMessageWithContext({ originalMethod: requestParams.clientMethod, callsite: requestParams.callsite, message: "'rejectOnNotFound' option is not supported" }); throw new PrismaClientValidationError(message); } const result = await requestCallback(requestParams).catch((e2) => { if (e2 instanceof PrismaClientKnownRequestError && e2.code === "P2025") { throw new NotFoundError2(`No ${dmmfModelName} found`); } else { throw e2; } }); return result; }; } __name(applyOrThrowWrapper, "applyOrThrowWrapper"); // src/runtime/core/model/applyModel.ts var fluentProps = [ "findUnique", "findUniqueOrThrow", "findFirst", "findFirstOrThrow", "create", "update", "upsert", "delete" ]; var aggregateProps = ["aggregate", "count", "groupBy"]; function applyModel(client, dmmfModelName) { const layers = [modelActionsLayer(client, dmmfModelName), modelMetaLayer(dmmfModelName)]; if (client._engineConfig.previewFeatures?.includes("fieldReference")) { layers.push(fieldsPropertyLayer(client, dmmfModelName)); } const modelExtensions = client._extensions.getAllModelExtensions(dmmfModelName); if (modelExtensions) { layers.push(addObjectProperties(modelExtensions)); } return createCompositeProxy({}, layers); } __name(applyModel, "applyModel"); function modelMetaLayer(dmmfModelName) { return addProperty("name", () => dmmfModelName); } __name(modelMetaLayer, "modelMetaLayer"); function modelActionsLayer(client, dmmfModelName) { const jsModelName = dmmfToJSModelName(dmmfModelName); const ownKeys = getOwnKeys2(client, dmmfModelName); return { getKeys() { return ownKeys; }, getPropertyValue(key) { const dmmfActionName = key; let requestFn = /* @__PURE__ */ __name((params) => client._request(params), "requestFn"); requestFn = adaptErrors(dmmfActionName, dmmfModelName, requestFn); const action = /* @__PURE__ */ __name((paramOverrides) => (userArgs) => { const callSite = getCallSite(client._errorFormat); return createPrismaPromise((transaction, lock) => { const params = { args: userArgs, dataPath: [], action: dmmfActionName, model: dmmfModelName, clientMethod: `${jsModelName}.${key}`, jsModelName, transaction, lock, callsite: callSite }; return requestFn({ ...params, ...paramOverrides }); }); }, "action"); if (fluentProps.includes(dmmfActionName)) { return applyFluent(client, dmmfModelName, action); } if (isValidAggregateName(key)) { return applyAggregates(client, key, action); } return action({}); } }; } __name(modelActionsLayer, "modelActionsLayer"); function getOwnKeys2(client, dmmfModelName) { const actionKeys = Object.keys(client._baseDmmf.mappingsMap[dmmfModelName]).filter( (key) => key !== "model" && key !== "plural" ); actionKeys.push("count"); return actionKeys; } __name(getOwnKeys2, "getOwnKeys"); function isValidAggregateName(action) { return aggregateProps.includes(action); } __name(isValidAggregateName, "isValidAggregateName"); function fieldsPropertyLayer(client, dmmfModelName) { return cacheProperties( addProperty("fields", () => { const model = client._baseDmmf.modelMap[dmmfModelName]; return applyFieldsProxy(model); }) ); } __name(fieldsPropertyLayer, "fieldsPropertyLayer"); // src/runtime/core/model/utils/jsToDMMFModelName.ts function jsToDMMFModelName(name) { return name.replace(/^./, (str) => str.toUpperCase()); } __name(jsToDMMFModelName, "jsToDMMFModelName"); // src/runtime/core/model/applyModelsAndClientExtensions.ts var rawClient = Symbol(); function applyModelsAndClientExtensions(client) { const layers = [modelsLayer(client), addProperty(rawClient, () => client)]; const clientExtensions = client._extensions.getAllClientExtensions(); if (clientExtensions) { layers.push(addObjectProperties(clientExtensions)); } return createCompositeProxy(client, layers); } __name(applyModelsAndClientExtensions, "applyModelsAndClientExtensions"); function modelsLayer(client) { const dmmfModelKeys = Object.keys(client._baseDmmf.modelMap); const jsModelKeys = dmmfModelKeys.map(dmmfToJSModelName); const allKeys = [...new Set(dmmfModelKeys.concat(jsModelKeys))]; return cacheProperties({ getKeys() { return allKeys; }, getPropertyValue(prop) { const dmmfModelName = jsToDMMFModelName(prop); if (client._baseDmmf.modelMap[dmmfModelName] !== void 0) { return applyModel(client, dmmfModelName); } if (client._baseDmmf.modelMap[prop] !== void 0) { return applyModel(client, prop); } return void 0; }, getPropertyDescriptor(key) { if (!jsModelKeys.includes(key)) { return { enumerable: false }; } return void 0; } }); } __name(modelsLayer, "modelsLayer"); function unapplyModelsAndClientExtensions(client) { if (client[rawClient]) { return client[rawClient]; } return client; } __name(unapplyModelsAndClientExtensions, "unapplyModelsAndClientExtensions"); // src/runtime/core/extensions/$extends.ts function $extends(extension) { if (!this._hasPreviewFlag("clientExtensions")) { throw new PrismaClientValidationError( "Extensions are not yet generally available, please add `clientExtensions` to the `previewFeatures` field in the `generator` block in the `schema.prisma` file." ); } if (typeof extension === "function") { return extension(this); } const oldClient = unapplyModelsAndClientExtensions(this); const newClient = Object.create(oldClient, { _extensions: { value: this._extensions.append(extension) } }); return applyModelsAndClientExtensions(newClient); } __name($extends, "$extends"); // ../../node_modules/.pnpm/klona@2.0.5/node_modules/klona/dist/index.mjs function klona(x) { if (typeof x !== "object") return x; var k, tmp, str = Object.prototype.toString.call(x); if (str === "[object Object]") { if (x.constructor !== Object && typeof x.constructor === "function") { tmp = new x.constructor(); for (k in x) { if (x.hasOwnProperty(k) && tmp[k] !== x[k]) { tmp[k] = klona(x[k]); } } } else { tmp = {}; for (k in x) { if (k === "__proto__") { Object.defineProperty(tmp, k, { value: klona(x[k]), configurable: true, enumerable: true, writable: true }); } else { tmp[k] = klona(x[k]); } } } return tmp; } if (str === "[object Array]") { k = x.length; for (tmp = Array(k); k--; ) { tmp[k] = klona(x[k]); } return tmp; } if (str === "[object Set]") { tmp = /* @__PURE__ */ new Set(); x.forEach(function(val) { tmp.add(klona(val)); }); return tmp; } if (str === "[object Map]") { tmp = /* @__PURE__ */ new Map(); x.forEach(function(val, key) { tmp.set(klona(key), klona(val)); }); return tmp; } if (str === "[object Date]") { return new Date(+x); } if (str === "[object RegExp]") { tmp = new RegExp(x.source, x.flags); tmp.lastIndex = x.lastIndex; return tmp; } if (str === "[object DataView]") { return new x.constructor(klona(x.buffer)); } if (str === "[object ArrayBuffer]") { return x.slice(0); } if (str.slice(-6) === "Array]") { return new x.constructor(x); } return x; } __name(klona, "klona"); // src/runtime/core/extensions/applyQueryExtensions.ts function iterateAndCallQueryCallbacks(client, params, queryCbs, i = 0) { return createPrismaPromise((transaction, lock) => { if (transaction !== void 0) { void params.lock?.then(); params.transaction = transaction; params.lock = lock; } if (i === queryCbs.length) { return client._executeRequest(params); } return queryCbs[i]({ model: params.model, operation: params.action, args: klona(params.args ?? {}), __internalParams: params, query: (args, __internalParams = params) => { __internalParams.args = args; return iterateAndCallQueryCallbacks(client, __internalParams, queryCbs, i + 1); } }); }); } __name(iterateAndCallQueryCallbacks, "iterateAndCallQueryCallbacks"); function applyQueryExtensions(client, params) { const { jsModelName, action } = params; if (jsModelName === void 0 || client._extensions.isEmpty()) { return client._executeRequest(params); } return iterateAndCallQueryCallbacks(client, params, client._extensions.getAllQueryCallbacks(jsModelName, action)); } __name(applyQueryExtensions, "applyQueryExtensions"); // src/generation/lazyProperty.ts function lazyProperty(compute) { let resultContainer; return { get() { if (resultContainer) { return resultContainer.value; } resultContainer = { value: compute() }; return resultContainer.value; } }; } __name(lazyProperty, "lazyProperty"); // src/runtime/core/extensions/MergedExtensionsList.ts var MergedExtensionsListNode = class { constructor(extension, previous) { this.extension = extension; this.previous = previous; this.computedFieldsCache = new Cache(); this.modelExtensionsCache = new Cache(); this.queryCallbacksCache = new Cache(); this.clientExtensions = lazyProperty(() => { if (!this.extension.client) { return this.previous?.getAllClientExtensions(); } return { ...this.previous?.getAllClientExtensions(), ...wrapAllExtensionCallbacks(this.extension.name, this.extension.client) }; }); } getAllComputedFields(dmmfModelName) { return this.computedFieldsCache.getOrCreate(dmmfModelName, () => { return getComputedFields(this.previous?.getAllComputedFields(dmmfModelName), this.extension, dmmfModelName); }); } getAllClientExtensions() { return this.clientExtensions.get(); } getAllModelExtensions(dmmfModelName) { return this.modelExtensionsCache.getOrCreate(dmmfModelName, () => { const jsModelName = dmmfToJSModelName(dmmfModelName); if (!this.extension.model || !(this.extension.model[jsModelName] || this.extension.model.$allModels)) { return this.previous?.getAllModelExtensions(dmmfModelName); } return { ...this.previous?.getAllModelExtensions(dmmfModelName), ...wrapAllExtensionCallbacks(this.extension.name, this.extension.model.$allModels), ...wrapAllExtensionCallbacks(this.extension.name, this.extension.model[jsModelName]) }; }); } getAllQueryCallbacks(jsModelName, action) { return this.queryCallbacksCache.getOrCreate(`${jsModelName}:${action}`, () => { const previous = this.previous?.getAllQueryCallbacks(jsModelName, action) ?? []; const query2 = this.extension.query; if (!query2 || !(query2[jsModelName] || query2.$allModels)) { return previous; } const newCallbacks = []; if (query2[jsModelName] !== void 0) { if (query2[jsModelName][action] !== void 0) { newCallbacks.push(query2[jsModelName][action]); } if (query2[jsModelName]["$allOperations"] !== void 0) { newCallbacks.push(query2[jsModelName]["$allOperations"]); } } if (query2["$allModels"] !== void 0) { if (query2["$allModels"][action] !== void 0) { newCallbacks.push(query2["$allModels"][action]); } if (query2["$allModels"]["$allOperations"] !== void 0) { newCallbacks.push(query2["$allModels"]["$allOperations"]); } } return previous.concat(newCallbacks.map((callback) => wrapExtensionCallback(this.extension.name, callback))); }); } }; __name(MergedExtensionsListNode, "MergedExtensionsListNode"); var MergedExtensionsList = class { constructor(head) { this.head = head; } static empty() { return new MergedExtensionsList(); } static single(extension) { return new MergedExtensionsList(new MergedExtensionsListNode(extension)); } isEmpty() { return this.head === void 0; } append(extension) { return new MergedExtensionsList(new MergedExtensionsListNode(extension, this.head)); } getAllComputedFields(dmmfModelName) { return this.head?.getAllComputedFields(dmmfModelName); } getAllClientExtensions() { return this.head?.getAllClientExtensions(); } getAllModelExtensions(dmmfModelName) { return this.head?.getAllModelExtensions(dmmfModelName); } getAllQueryCallbacks(jsModelName, action) { return this.head?.getAllQueryCallbacks(jsModelName, action) ?? []; } }; __name(MergedExtensionsList, "MergedExtensionsList"); // src/runtime/core/transaction/utils/createLockCountPromise.ts function getLockCountPromise(knock, cb = () => { }) { let resolve; const lock = new Promise((res) => resolve = res); return { then(onFulfilled) { if (--knock === 0) resolve(cb()); return onFulfilled?.(lock); } }; } __name(getLockCountPromise, "getLockCountPromise"); // src/runtime/getLogLevel.ts function getLogLevel(log3) { if (typeof log3 === "string") { return log3; } return log3.reduce((acc, curr) => { const currentLevel = typeof curr === "string" ? curr : curr.level; if (currentLevel === "query") { return acc; } if (!acc) { return currentLevel; } if (curr === "info" || acc === "info") { return "info"; } return currentLevel; }, void 0); } __name(getLogLevel, "getLogLevel"); // src/runtime/mergeBy.ts function mergeBy(arr1, arr2, cb) { const groupedArr1 = groupBy2(arr1, cb); const groupedArr2 = groupBy2(arr2, cb); const result = Object.values(groupedArr2).map((value) => value[value.length - 1]); const arr2Keys = Object.keys(groupedArr2); Object.entries(groupedArr1).forEach(([key, value]) => { if (!arr2Keys.includes(key)) { result.push(value[value.length - 1]); } }); return result; } __name(mergeBy, "mergeBy"); var groupBy2 = /* @__PURE__ */ __name((arr, cb) => { return arr.reduce((acc, curr) => { const key = cb(curr); if (!acc[key]) { acc[key] = []; } acc[key].push(curr); return acc; }, {}); }, "groupBy"); // src/runtime/MiddlewareHandler.ts var MiddlewareHandler = class { constructor() { this._middlewares = []; } use(middleware) { this._middlewares.push(middleware); } get(id) { return this._middlewares[id]; } has(id) { return !!this._middlewares[id]; } length() { return this._middlewares.length; } }; __name(MiddlewareHandler, "MiddlewareHandler"); var Middlewares = class { constructor() { this.query = new MiddlewareHandler(); this.engine = new MiddlewareHandler(); } }; __name(Middlewares, "Middlewares"); // src/runtime/RequestHandler.ts var import_strip_ansi4 = __toESM(require_strip_ansi()); // src/runtime/core/extensions/applyResultExtensions.ts function applyResultExtensions({ result, modelName, select, extensions }) { const computedFields = extensions.getAllComputedFields(modelName); if (!computedFields) { return result; } const computedPropertiesLayers = []; const maskingLayers = []; for (const field of Object.values(computedFields)) { if (select) { if (!select[field.name]) { continue; } const toMask = field.needs.filter((prop) => !select[prop]); if (toMask.length > 0) { maskingLayers.push(removeProperties(toMask)); } } if (areNeedsMet(result, field.needs)) { computedPropertiesLayers.push( computedPropertyLayer(field, createCompositeProxy(result, computedPropertiesLayers)) ); } } if (computedPropertiesLayers.length > 0 || maskingLayers.length > 0) { return createCompositeProxy(result, [...computedPropertiesLayers, ...maskingLayers]); } return result; } __name(applyResultExtensions, "applyResultExtensions"); function areNeedsMet(result, neededProperties) { return neededProperties.every((property) => hasOwnProperty(result, property)); } __name(areNeedsMet, "areNeedsMet"); function computedPropertyLayer(field, result) { return cacheProperties(addProperty(field.name, () => field.compute(result))); } __name(computedPropertyLayer, "computedPropertyLayer"); // src/runtime/core/extensions/visitQueryResult.ts function visitQueryResult({ visitor, result, args, dmmf, model }) { if (Array.isArray(result)) { for (let i = 0; i < result.length; i++) { result[i] = visitQueryResult({ result: result[i], args, model, dmmf, visitor }); } return result; } const visitResult = visitor(result, model, args) ?? result; if (args.include) { visitNested({ includeOrSelect: args.include, result: visitResult, parentModel: model, dmmf, visitor }); } if (args.select) { visitNested({ includeOrSelect: args.select, result: visitResult, parentModel: model, dmmf, visitor }); } return visitResult; } __name(visitQueryResult, "visitQueryResult"); function visitNested({ includeOrSelect, result, parentModel, dmmf, visitor }) { for (const [fieldName, subConfig] of Object.entries(includeOrSelect)) { if (!subConfig || result[fieldName] == null) { continue; } const field = parentModel.fields.find((field2) => field2.name === fieldName); if (!field || field.kind !== "object" || !field.relationName) { continue; } const args = typeof subConfig === "object" ? subConfig : {}; result[fieldName] = visitQueryResult({ visitor, result: result[fieldName], args, model: dmmf.getModelMap()[field.type], dmmf }); } } __name(visitNested, "visitNested"); // src/runtime/DataLoader.ts var DataLoader = class { constructor(options) { this.options = options; this.tickActive = false; this.batches = {}; } request(request2) { const hash = this.options.batchBy(request2); if (!hash) { return this.options.singleLoader(request2); } if (!this.batches[hash]) { this.batches[hash] = []; if (!this.tickActive) { this.tickActive = true; process.nextTick(() => { this.dispatchBatches(); this.tickActive = false; }); } } return new Promise((resolve, reject) => { this.batches[hash].push({ request: request2, resolve, reject }); }); } dispatchBatches() { for (const key in this.batches) { const batch = this.batches[key]; delete this.batches[key]; if (batch.length === 1) { this.options.singleLoader(batch[0].request).then((result) => { if (result instanceof Error) { batch[0].reject(result); } else { batch[0].resolve(result); } }).catch((e2) => { batch[0].reject(e2); }); } else { this.options.batchLoader(batch.map((j) => j.request)).then((results) => { if (results instanceof Error) { for (let i = 0; i < batch.length; i++) { batch[i].reject(results); } } else { for (let i = 0; i < batch.length; i++) { const value = results[i]; if (value instanceof Error) { batch[i].reject(value); } else { batch[i].resolve(value); } } } }).catch((e2) => { for (let i = 0; i < batch.length; i++) { batch[i].reject(e2); } }); } } } get [Symbol.toStringTag]() { return "DataLoader"; } }; __name(DataLoader, "DataLoader"); // src/runtime/RequestHandler.ts var debug12 = src_default("prisma:client:request_handler"); function getRequestInfo(request2) { const transaction = request2.transaction; const headers = request2.headers ?? {}; const traceparent = getTraceParent({ tracingConfig: request2.tracingConfig }); if (transaction?.kind === "itx") { headers.transactionId = transaction.id; } if (traceparent !== void 0) { headers.traceparent = traceparent; } return { transaction, headers }; } __name(getRequestInfo, "getRequestInfo"); var RequestHandler = class { constructor(client, hooks, logEmitter) { this.logEmmitter = logEmitter; this.client = client; this.hooks = hooks; this.dataloader = new DataLoader({ batchLoader: (requests) => { const info2 = getRequestInfo(requests[0]); const queries = requests.map((r2) => String(r2.document)); const traceparent = getTraceParent({ context: requests[0].otelParentCtx, tracingConfig: client._tracingConfig }); if (traceparent) info2.headers.traceparent = traceparent; const containsWrite = requests.some((r2) => r2.document.type === "mutation"); const batchTransaction = info2.transaction?.kind === "batch" ? info2.transaction : void 0; return this.client._engine.requestBatch({ queries, headers: info2.headers, transaction: batchTransaction, containsWrite }); }, singleLoader: (request2) => { const info2 = getRequestInfo(request2); const query2 = String(request2.document); const interactiveTransaction = info2.transaction?.kind === "itx" ? info2.transaction : void 0; return this.client._engine.request({ query: query2, headers: info2.headers, transaction: interactiveTransaction, isWrite: request2.document.type === "mutation" }); }, batchBy: (request2) => { if (request2.transaction?.id) { return `transaction-${request2.transaction.id}`; } return batchFindUniqueBy(request2); } }); } async request({ document: document2, dataPath = [], rootField, typeName, isList, callsite, rejectOnNotFound, clientMethod, engineHook, args, headers, transaction, unpacker, extensions, otelParentCtx, otelChildCtx }) { if (this.hooks && this.hooks.beforeRequest) { const query2 = String(document2); this.hooks.beforeRequest({ query: query2, path: dataPath, rootField, typeName, document: document2, isList, clientMethod, args }); } try { let data, elapsed; if (engineHook) { const result = await engineHook( { document: document2, runInTransaction: Boolean(transaction) }, (params) => { return this.dataloader.request({ ...params, tracingConfig: this.client._tracingConfig }); } ); data = result.data; elapsed = result.elapsed; } else { const result = await this.dataloader.request({ document: document2, headers, transaction, otelParentCtx, otelChildCtx, tracingConfig: this.client._tracingConfig }); data = result?.data; elapsed = result?.elapsed; } const unpackResult = this.unpack(document2, data, dataPath, rootField, unpacker); throwIfNotFound(unpackResult, clientMethod, typeName, rejectOnNotFound); const extendedResult = this.applyResultExtensions({ result: unpackResult, modelName: typeName, args, extensions }); if (process.env.PRISMA_CLIENT_GET_TIME) { return { data: extendedResult, elapsed }; } return extendedResult; } catch (error2) { this.handleAndLogRequestError({ error: error2, clientMethod, callsite, transaction }); } } handleAndLogRequestError({ error: error2, clientMethod, callsite, transaction }) { try { this.handleRequestError({ error: error2, clientMethod, callsite, transaction }); } catch (err) { if (this.logEmmitter) { this.logEmmitter.emit("error", { message: err.message, target: clientMethod, timestamp: new Date() }); } throw err; } } handleRequestError({ error: error2, clientMethod, callsite, transaction }) { debug12(error2); if (isMismatchingBatchIndex(error2, transaction)) { throw error2; } if (error2 instanceof NotFoundError2) { throw error2; } let message = error2.message; if (callsite) { message = createErrorMessageWithContext({ callsite, originalMethod: clientMethod, isPanic: error2.isPanic, showColors: this.client._errorFormat === "pretty", message }); } message = this.sanitizeMessage(message); if (error2.code) { throw new PrismaClientKnownRequestError(message, { code: error2.code, clientVersion: this.client._clientVersion, meta: error2.meta, batchRequestIdx: error2.batchRequestIdx }); } else if (error2.isPanic) { throw new PrismaClientRustPanicError(message, this.client._clientVersion); } else if (error2 instanceof PrismaClientUnknownRequestError) { throw new PrismaClientUnknownRequestError(message, { clientVersion: this.client._clientVersion, batchRequestIdx: error2.batchRequestIdx }); } else if (error2 instanceof PrismaClientInitializationError) { throw new PrismaClientInitializationError(message, this.client._clientVersion); } else if (error2 instanceof PrismaClientRustPanicError) { throw new PrismaClientRustPanicError(message, this.client._clientVersion); } error2.clientVersion = this.client._clientVersion; throw error2; } sanitizeMessage(message) { if (this.client._errorFormat && this.client._errorFormat !== "pretty") { return (0, import_strip_ansi4.default)(message); } return message; } unpack(document2, data, path7, rootField, unpacker) { if (data?.data) { data = data.data; } if (unpacker) { data[rootField] = unpacker(data[rootField]); } const getPath = []; if (rootField) { getPath.push(rootField); } getPath.push(...path7.filter((p2) => p2 !== "select" && p2 !== "include")); return unpack({ document: document2, data, path: getPath }); } applyResultExtensions({ result, modelName, args, extensions }) { if (extensions.isEmpty() || result == null) { return result; } const model = this.client._baseDmmf.getModelMap()[modelName]; if (!model) { return result; } return visitQueryResult({ result, args: args ?? {}, model, dmmf: this.client._baseDmmf, visitor(value, model2, args2) { const modelName2 = dmmfToJSModelName(model2.name); return applyResultExtensions({ result: value, modelName: modelName2, select: args2.select, extensions }); } }); } get [Symbol.toStringTag]() { return "RequestHandler"; } }; __name(RequestHandler, "RequestHandler"); function isMismatchingBatchIndex(error2, transaction) { return hasBatchIndex(error2) && transaction?.kind === "batch" && error2.batchRequestIdx !== transaction.index; } __name(isMismatchingBatchIndex, "isMismatchingBatchIndex"); function batchFindUniqueBy(request2) { if (!request2.document.children[0].name.startsWith("findUnique")) { return void 0; } const args = request2.document.children[0].args?.args.map((a) => { if (a.value instanceof Args) { return `${a.key}-${a.value.args.map((a2) => a2.key).join(",")}`; } return a.key; }).join(","); const selectionSet = request2.document.children[0].children.join(","); return `${request2.document.children[0].name}|${args}|${selectionSet}`; } __name(batchFindUniqueBy, "batchFindUniqueBy"); // src/runtime/utils/deserializeRawResults.ts function deserializeRawResults(rows) { return rows.map((row) => { const mappedRow = {}; for (const key of Object.keys(row)) { mappedRow[key] = deserializeValue(row[key]); } return mappedRow; }); } __name(deserializeRawResults, "deserializeRawResults"); function deserializeValue({ prisma__type: type, prisma__value: value }) { switch (type) { case "bigint": return BigInt(value); case "bytes": return Buffer.from(value, "base64"); case "decimal": return new decimal_default(value); case "datetime": case "date": return new Date(value); case "time": return new Date(`1970-01-01T${value}Z`); case "array": return value.map(deserializeValue); default: return value; } } __name(deserializeValue, "deserializeValue"); // src/runtime/utils/mssqlPreparedStatement.ts var mssqlPreparedStatement = /* @__PURE__ */ __name((template) => { return template.reduce((acc, str, idx) => `${acc}@P${idx}${str}`); }, "mssqlPreparedStatement"); // src/runtime/utils/serializeRawParameters.ts function serializeRawParameters(parameters) { try { return serializeRawParametersInternal(parameters, "fast"); } catch (error2) { return serializeRawParametersInternal(parameters, "slow"); } } __name(serializeRawParameters, "serializeRawParameters"); function serializeRawParametersInternal(parameters, objectSerialization) { return JSON.stringify(parameters.map((parameter) => encodeParameter(parameter, objectSerialization))); } __name(serializeRawParametersInternal, "serializeRawParametersInternal"); function encodeParameter(parameter, objectSerialization) { if (typeof parameter === "bigint") { return { prisma__type: "bigint", prisma__value: parameter.toString() }; } if (isDate(parameter)) { return { prisma__type: "date", prisma__value: parameter.toJSON() }; } if (decimal_default.isDecimal(parameter)) { return { prisma__type: "decimal", prisma__value: parameter.toJSON() }; } if (Buffer.isBuffer(parameter)) { return { prisma__type: "bytes", prisma__value: parameter.toString("base64") }; } if (isArrayBufferLike(parameter) || ArrayBuffer.isView(parameter)) { return { prisma__type: "bytes", prisma__value: Buffer.from(parameter).toString("base64") }; } if (typeof parameter === "object" && objectSerialization === "slow") { return preprocessObject(parameter); } return parameter; } __name(encodeParameter, "encodeParameter"); function isDate(value) { if (value instanceof Date) { return true; } return Object.prototype.toString.call(value) === "[object Date]" && typeof value.toJSON === "function"; } __name(isDate, "isDate"); function isArrayBufferLike(value) { if (value instanceof ArrayBuffer || value instanceof SharedArrayBuffer) { return true; } if (typeof value === "object" && value !== null) { return value[Symbol.toStringTag] === "ArrayBuffer" || value[Symbol.toStringTag] === "SharedArrayBuffer"; } return false; } __name(isArrayBufferLike, "isArrayBufferLike"); function preprocessObject(obj) { if (typeof obj !== "object" || obj === null) { return obj; } if (typeof obj.toJSON === "function") { return obj.toJSON(); } if (Array.isArray(obj)) { return obj.map(preprocessValueInObject); } const result = {}; for (const key of Object.keys(obj)) { result[key] = preprocessValueInObject(obj[key]); } return result; } __name(preprocessObject, "preprocessObject"); function preprocessValueInObject(value) { if (typeof value === "bigint") { return value.toString(); } return preprocessObject(value); } __name(preprocessValueInObject, "preprocessValueInObject"); // src/runtime/utils/validatePrismaClientOptions.ts var import_js_levenshtein2 = __toESM(require_js_levenshtein()); var knownProperties = ["datasources", "errorFormat", "log", "__internal", "rejectOnNotFound"]; var errorFormats = ["pretty", "colorless", "minimal"]; var logLevels = ["info", "query", "warn", "error"]; var validators = { datasources: (options, datasourceNames) => { if (!options) { return; } if (typeof options !== "object" || Array.isArray(options)) { throw new PrismaClientConstructorValidationError( `Invalid value ${JSON.stringify(options)} for "datasources" provided to PrismaClient constructor` ); } for (const [key, value] of Object.entries(options)) { if (!datasourceNames.includes(key)) { const didYouMean = getDidYouMean(key, datasourceNames) || `Available datasources: ${datasourceNames.join(", ")}`; throw new PrismaClientConstructorValidationError( `Unknown datasource ${key} provided to PrismaClient constructor.${didYouMean}` ); } if (typeof value !== "object" || Array.isArray(value)) { throw new PrismaClientConstructorValidationError( `Invalid value ${JSON.stringify(options)} for datasource "${key}" provided to PrismaClient constructor. It should have this form: { url: "CONNECTION_STRING" }` ); } if (value && typeof value === "object") { for (const [key1, value1] of Object.entries(value)) { if (key1 !== "url") { throw new PrismaClientConstructorValidationError( `Invalid value ${JSON.stringify(options)} for datasource "${key}" provided to PrismaClient constructor. It should have this form: { url: "CONNECTION_STRING" }` ); } if (typeof value1 !== "string") { throw new PrismaClientConstructorValidationError( `Invalid value ${JSON.stringify(value1)} for datasource "${key}" provided to PrismaClient constructor. It should have this form: { url: "CONNECTION_STRING" }` ); } } } } }, errorFormat: (options) => { if (!options) { return; } if (typeof options !== "string") { throw new PrismaClientConstructorValidationError( `Invalid value ${JSON.stringify(options)} for "errorFormat" provided to PrismaClient constructor.` ); } if (!errorFormats.includes(options)) { const didYouMean = getDidYouMean(options, errorFormats); throw new PrismaClientConstructorValidationError( `Invalid errorFormat ${options} provided to PrismaClient constructor.${didYouMean}` ); } }, log: (options) => { if (!options) { return; } if (!Array.isArray(options)) { throw new PrismaClientConstructorValidationError( `Invalid value ${JSON.stringify(options)} for "log" provided to PrismaClient constructor.` ); } function validateLogLevel(level) { if (typeof level === "string") { if (!logLevels.includes(level)) { const didYouMean = getDidYouMean(level, logLevels); throw new PrismaClientConstructorValidationError( `Invalid log level "${level}" provided to PrismaClient constructor.${didYouMean}` ); } } } __name(validateLogLevel, "validateLogLevel"); for (const option of options) { validateLogLevel(option); const logValidators = { level: validateLogLevel, emit: (value) => { const emits = ["stdout", "event"]; if (!emits.includes(value)) { const didYouMean = getDidYouMean(value, emits); throw new PrismaClientConstructorValidationError( `Invalid value ${JSON.stringify( value )} for "emit" in logLevel provided to PrismaClient constructor.${didYouMean}` ); } } }; if (option && typeof option === "object") { for (const [key, value] of Object.entries(option)) { if (logValidators[key]) { logValidators[key](value); } else { throw new PrismaClientConstructorValidationError( `Invalid property ${key} for "log" provided to PrismaClient constructor` ); } } } } }, __internal: (value) => { if (!value) { return; } const knownKeys = ["debug", "hooks", "engine", "measurePerformance"]; if (typeof value !== "object") { throw new PrismaClientConstructorValidationError( `Invalid value ${JSON.stringify(value)} for "__internal" to PrismaClient constructor` ); } for (const [key] of Object.entries(value)) { if (!knownKeys.includes(key)) { const didYouMean = getDidYouMean(key, knownKeys); throw new PrismaClientConstructorValidationError( `Invalid property ${JSON.stringify(key)} for "__internal" provided to PrismaClient constructor.${didYouMean}` ); } } }, rejectOnNotFound: (value) => { if (!value) { return; } if (isError(value) || typeof value === "boolean" || typeof value === "object" || typeof value === "function") { return value; } throw new PrismaClientConstructorValidationError( `Invalid rejectOnNotFound expected a boolean/Error/{[modelName: Error | boolean]} but received ${JSON.stringify( value )}` ); } }; function validatePrismaClientOptions(options, datasourceNames) { for (const [key, value] of Object.entries(options)) { if (!knownProperties.includes(key)) { const didYouMean = getDidYouMean(key, knownProperties); throw new PrismaClientConstructorValidationError( `Unknown property ${key} provided to PrismaClient constructor.${didYouMean}` ); } validators[key](value, datasourceNames); } } __name(validatePrismaClientOptions, "validatePrismaClientOptions"); function getDidYouMean(str, options) { if (options.length === 0) { return ""; } if (typeof str !== "string") { return ""; } const alternative = getAlternative(str, options); if (!alternative) { return ""; } return ` Did you mean "${alternative}"?`; } __name(getDidYouMean, "getDidYouMean"); function getAlternative(str, options) { if (options.length === 0) { return null; } const optionsWithDistances = options.map((value) => ({ value, distance: (0, import_js_levenshtein2.default)(str, value) })); optionsWithDistances.sort((a, b2) => { return a.distance < b2.distance ? -1 : 1; }); const bestAlternative = optionsWithDistances[0]; if (bestAlternative.distance < 3) { return bestAlternative.value; } return null; } __name(getAlternative, "getAlternative"); // src/runtime/utils/waitForBatch.ts function waitForBatch(promises) { if (promises.length === 0) { return Promise.resolve([]); } return new Promise((resolve, reject) => { const successfulResults = new Array(promises.length); let bestError = null; let done = false; let settledPromisesCount = 0; const settleOnePromise = /* @__PURE__ */ __name(() => { if (done) { return; } settledPromisesCount++; if (settledPromisesCount === promises.length) { done = true; if (bestError) { reject(bestError); } else { resolve(successfulResults); } } }, "settleOnePromise"); const immediatelyReject = /* @__PURE__ */ __name((error2) => { if (!done) { done = true; reject(error2); } }, "immediatelyReject"); for (let i = 0; i < promises.length; i++) { promises[i].then( (result) => { successfulResults[i] = result; settleOnePromise(); }, (error2) => { if (!hasBatchIndex(error2)) { immediatelyReject(error2); return; } if (error2.batchRequestIdx === i) { immediatelyReject(error2); } else { if (!bestError) { bestError = error2; } settleOnePromise(); } } ); } }); } __name(waitForBatch, "waitForBatch"); // src/runtime/getPrismaClient.ts var debug13 = src_default("prisma:client"); var ALTER_RE = /^(\s*alter\s)/i; typeof globalThis === "object" ? globalThis.NODE_CLIENT = true : 0; function isReadonlyArray(arg2) { return Array.isArray(arg2); } __name(isReadonlyArray, "isReadonlyArray"); function checkAlter(query2, values, invalidCall) { if (values.length > 0 && ALTER_RE.exec(query2)) { throw new Error(`Running ALTER using ${invalidCall} is not supported Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. Example: await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) More Information: https://pris.ly/d/execute-raw `); } } __name(checkAlter, "checkAlter"); var actionOperationMap = { findUnique: "query", findUniqueOrThrow: "query", findFirst: "query", findFirstOrThrow: "query", findMany: "query", count: "query", create: "mutation", createMany: "mutation", update: "mutation", updateMany: "mutation", upsert: "mutation", delete: "mutation", deleteMany: "mutation", executeRaw: "mutation", queryRaw: "mutation", aggregate: "query", groupBy: "query", runCommandRaw: "mutation", findRaw: "query", aggregateRaw: "query" }; var TX_ID = Symbol.for("prisma.client.transaction.id"); var BatchTxIdCounter = { id: 0, nextId() { return ++this.id; } }; function getPrismaClient(config2) { class PrismaClient { constructor(optionsArg) { this._middlewares = new Middlewares(); this._getDmmf = callOnce(async (params) => { try { const dmmf = await this._engine.getDmmf(); return new DMMFHelper(getPrismaClientDMMF(dmmf)); } catch (error2) { this._fetcher.handleAndLogRequestError({ ...params, error: error2 }); } }); this.$extends = $extends; if (optionsArg) { validatePrismaClientOptions(optionsArg, config2.datasourceNames); } const logEmitter = new import_events.EventEmitter().on("error", (e2) => { }); this._extensions = MergedExtensionsList.empty(); this._previewFeatures = config2.generator?.previewFeatures ?? []; this._rejectOnNotFound = optionsArg?.rejectOnNotFound; this._clientVersion = config2.clientVersion ?? clientVersion; this._activeProvider = config2.activeProvider; this._dataProxy = config2.dataProxy; this._tracingConfig = getTracingConfig(this._previewFeatures); this._clientEngineType = getClientEngineType(config2.generator); const envPaths = { rootEnvPath: config2.relativeEnvPaths.rootEnvPath && import_path5.default.resolve(config2.dirname, config2.relativeEnvPaths.rootEnvPath), schemaEnvPath: config2.relativeEnvPaths.schemaEnvPath && import_path5.default.resolve(config2.dirname, config2.relativeEnvPaths.schemaEnvPath) }; const loadedEnv = tryLoadEnvs(envPaths, { conflictCheck: "none" }); try { const options = optionsArg ?? {}; const internal = options.__internal ?? {}; const useDebug = internal.debug === true; if (useDebug) { src_default.enable("prisma:client"); } if (internal.hooks) { this._hooks = internal.hooks; } let cwd = import_path5.default.resolve(config2.dirname, config2.relativePath); if (!import_fs9.default.existsSync(cwd)) { cwd = config2.dirname; } debug13("dirname", config2.dirname); debug13("relativePath", config2.relativePath); debug13("cwd", cwd); const thedatasources = options.datasources || {}; const inputDatasources = Object.entries(thedatasources).filter(([_, source]) => { return source && source.url; }).map(([name, { url }]) => ({ name, url })); const datasources = mergeBy([], inputDatasources, (source) => source.name); const engineConfig = internal.engine || {}; if (options.errorFormat) { this._errorFormat = options.errorFormat; } else if (process.env.NODE_ENV === "production") { this._errorFormat = "minimal"; } else if (process.env.NO_COLOR) { this._errorFormat = "colorless"; } else { this._errorFormat = "colorless"; } this._baseDmmf = new BaseDMMFHelper(config2.document); if (this._dataProxy) { const rawDmmf = config2.document; this._dmmf = new DMMFHelper(rawDmmf); } this._engineConfig = { cwd, dirname: config2.dirname, enableDebugLogs: useDebug, allowTriggerPanic: engineConfig.allowTriggerPanic, datamodelPath: import_path5.default.join(config2.dirname, config2.filename ?? "schema.prisma"), prismaPath: engineConfig.binaryPath ?? void 0, engineEndpoint: engineConfig.endpoint, datasources, generator: config2.generator, showColors: this._errorFormat === "pretty", logLevel: options.log && getLogLevel(options.log), logQueries: options.log && Boolean( typeof options.log === "string" ? options.log === "query" : options.log.find((o2) => typeof o2 === "string" ? o2 === "query" : o2.level === "query") ), env: loadedEnv?.parsed ?? config2.injectableEdgeEnv?.parsed ?? {}, flags: [], clientVersion: config2.clientVersion, previewFeatures: this._previewFeatures, activeProvider: config2.activeProvider, inlineSchema: config2.inlineSchema, inlineDatasources: config2.inlineDatasources, inlineSchemaHash: config2.inlineSchemaHash, tracingConfig: this._tracingConfig, logEmitter }; debug13("clientVersion", config2.clientVersion); debug13("clientEngineType", this._dataProxy ? "dataproxy" : this._clientEngineType); if (this._dataProxy) { const runtime = true ? "Node.js" : "edge"; debug13(`using Data Proxy with ${runtime} runtime`); } this._engine = this.getEngine(); void this._getActiveProvider(); this._fetcher = new RequestHandler(this, this._hooks, logEmitter); if (options.log) { for (const log3 of options.log) { const level = typeof log3 === "string" ? log3 : log3.emit === "stdout" ? log3.level : null; if (level) { this.$on(level, (event) => { logger_exports.log(`${logger_exports.tags[level] ?? ""}`, event.message || event.query); }); } } } this._metrics = new MetricsClient(this._engine); } catch (e2) { e2.clientVersion = this._clientVersion; throw e2; } return applyModelsAndClientExtensions(this); } get [Symbol.toStringTag]() { return "PrismaClient"; } getEngine() { if (this._dataProxy === true) { return new DataProxyEngine(this._engineConfig); } else if (this._clientEngineType === "library" /* Library */) { return new LibraryEngine(this._engineConfig); } else if (this._clientEngineType === "binary" /* Binary */) { return new BinaryEngine(this._engineConfig); } throw new PrismaClientValidationError("Invalid client engine type, please use `library` or `binary`"); } $use(arg0, arg1) { if (typeof arg0 === "function") { this._middlewares.query.use(arg0); } else if (arg0 === "all") { this._middlewares.query.use(arg1); } else if (arg0 === "engine") { this._middlewares.engine.use(arg1); } else { throw new Error(`Invalid middleware ${arg0}`); } } $on(eventType, callback) { if (eventType === "beforeExit") { this._engine.on("beforeExit", callback); } else { this._engine.on(eventType, (event) => { const fields = event.fields; if (eventType === "query") { return callback({ timestamp: event.timestamp, query: fields?.query ?? event.query, params: fields?.params ?? event.params, duration: fields?.duration_ms ?? event.duration, target: event.target }); } else { return callback({ timestamp: event.timestamp, message: fields?.message ?? event.message, target: event.target }); } }); } } $connect() { try { return this._engine.start(); } catch (e2) { e2.clientVersion = this._clientVersion; throw e2; } } async _runDisconnect() { await this._engine.stop(); delete this._connectionPromise; this._engine = this.getEngine(); delete this._disconnectionPromise; delete this._getConfigPromise; } async $disconnect() { try { await this._engine.stop(); } catch (e2) { e2.clientVersion = this._clientVersion; throw e2; } finally { clearLogs(); if (!this._dataProxy) { this._dmmf = void 0; } } } async _getActiveProvider() { try { const configResult = await this._engine.getConfig(); this._activeProvider = configResult.datasources[0].activeProvider; } catch (e2) { } } $executeRawInternal(transaction, lock, query2, ...values) { let queryString = ""; let parameters = void 0; if (typeof query2 === "string") { queryString = query2; parameters = { values: serializeRawParameters(values || []), __prismaRawParameters__: true }; checkAlter(queryString, values, "prisma.$executeRawUnsafe(, [...values])"); } else if (isReadonlyArray(query2)) { switch (this._activeProvider) { case "sqlite": case "mysql": { const queryInstance = new Sql(query2, values); queryString = queryInstance.sql; parameters = { values: serializeRawParameters(queryInstance.values), __prismaRawParameters__: true }; break; } case "cockroachdb": case "postgresql": { const queryInstance = new Sql(query2, values); queryString = queryInstance.text; checkAlter(queryString, queryInstance.values, "prisma.$executeRaw``"); parameters = { values: serializeRawParameters(queryInstance.values), __prismaRawParameters__: true }; break; } case "sqlserver": { queryString = mssqlPreparedStatement(query2); parameters = { values: serializeRawParameters(values), __prismaRawParameters__: true }; break; } default: { throw new Error(`The ${this._activeProvider} provider does not support $executeRaw`); } } } else { switch (this._activeProvider) { case "sqlite": case "mysql": queryString = query2.sql; break; case "cockroachdb": case "postgresql": queryString = query2.text; checkAlter(queryString, query2.values, "prisma.$executeRaw(sql``)"); break; case "sqlserver": queryString = mssqlPreparedStatement(query2.strings); break; default: throw new Error(`The ${this._activeProvider} provider does not support $executeRaw`); } parameters = { values: serializeRawParameters(query2.values), __prismaRawParameters__: true }; } if (parameters?.values) { debug13(`prisma.$executeRaw(${queryString}, ${parameters.values})`); } else { debug13(`prisma.$executeRaw(${queryString})`); } const args = { query: queryString, parameters }; debug13(`Prisma Client call:`); return this._request({ args, clientMethod: "$executeRaw", dataPath: [], action: "executeRaw", callsite: getCallSite(this._errorFormat), transaction, lock }); } $executeRaw(query2, ...values) { return createPrismaPromise((transaction, lock) => { if (query2.raw !== void 0 || query2.sql !== void 0) { return this.$executeRawInternal(transaction, lock, query2, ...values); } throw new PrismaClientValidationError(`\`$executeRaw\` is a tag function, please use it like the following: \`\`\` const result = await prisma.$executeRaw\`UPDATE User SET cool = \${true} WHERE email = \${'user@email.com'};\` \`\`\` Or read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw `); }); } $executeRawUnsafe(query2, ...values) { return createPrismaPromise((transaction, lock) => { return this.$executeRawInternal(transaction, lock, query2, ...values); }); } $runCommandRaw(command) { if (config2.activeProvider !== "mongodb") { throw new PrismaClientValidationError( `The ${config2.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.` ); } return createPrismaPromise((transaction, lock) => { return this._request({ args: { command }, clientMethod: "$runCommandRaw", dataPath: [], action: "runCommandRaw", callsite: getCallSite(this._errorFormat), transaction, lock }); }); } async $queryRawInternal(transaction, lock, query2, ...values) { let queryString = ""; let parameters = void 0; if (typeof query2 === "string") { queryString = query2; parameters = { values: serializeRawParameters(values || []), __prismaRawParameters__: true }; } else if (isReadonlyArray(query2)) { switch (this._activeProvider) { case "sqlite": case "mysql": { const queryInstance = new Sql(query2, values); queryString = queryInstance.sql; parameters = { values: serializeRawParameters(queryInstance.values), __prismaRawParameters__: true }; break; } case "cockroachdb": case "postgresql": { const queryInstance = new Sql(query2, values); queryString = queryInstance.text; parameters = { values: serializeRawParameters(queryInstance.values), __prismaRawParameters__: true }; break; } case "sqlserver": { const queryInstance = new Sql(query2, values); queryString = mssqlPreparedStatement(queryInstance.strings); parameters = { values: serializeRawParameters(queryInstance.values), __prismaRawParameters__: true }; break; } default: { throw new Error(`The ${this._activeProvider} provider does not support $queryRaw`); } } } else { switch (this._activeProvider) { case "sqlite": case "mysql": queryString = query2.sql; break; case "cockroachdb": case "postgresql": queryString = query2.text; break; case "sqlserver": queryString = mssqlPreparedStatement(query2.strings); break; default: { throw new Error(`The ${this._activeProvider} provider does not support $queryRaw`); } } parameters = { values: serializeRawParameters(query2.values), __prismaRawParameters__: true }; } if (parameters?.values) { debug13(`prisma.queryRaw(${queryString}, ${parameters.values})`); } else { debug13(`prisma.queryRaw(${queryString})`); } const args = { query: queryString, parameters }; debug13(`Prisma Client call:`); return this._request({ args, clientMethod: "$queryRaw", dataPath: [], action: "queryRaw", callsite: getCallSite(this._errorFormat), transaction, lock }).then(deserializeRawResults); } $queryRaw(query2, ...values) { return createPrismaPromise((txId, lock) => { if (query2.raw !== void 0 || query2.sql !== void 0) { return this.$queryRawInternal(txId, lock, query2, ...values); } throw new PrismaClientValidationError(`\`$queryRaw\` is a tag function, please use it like the following: \`\`\` const result = await prisma.$queryRaw\`SELECT * FROM User WHERE id = \${1} OR email = \${'user@email.com'};\` \`\`\` Or read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw `); }); } $queryRawUnsafe(query2, ...values) { return createPrismaPromise((txId, lock) => { return this.$queryRawInternal(txId, lock, query2, ...values); }); } __internal_triggerPanic(fatal) { if (!this._engineConfig.allowTriggerPanic) { throw new Error(`In order to use .__internal_triggerPanic(), please enable it like so: new PrismaClient({ __internal: { engine: { allowTriggerPanic: true } } })`); } const headers = fatal ? { "X-DEBUG-FATAL": "1" } : { "X-DEBUG-NON-FATAL": "1" }; return this._request({ action: "queryRaw", args: { query: "SELECT 1", parameters: void 0 }, clientMethod: "queryRaw", dataPath: [], headers, callsite: getCallSite(this._errorFormat) }); } _transactionWithArray({ promises, options }) { const id = BatchTxIdCounter.nextId(); const lock = getLockCountPromise(promises.length); const requests = promises.map((request2, index) => { if (request2?.[Symbol.toStringTag] !== "PrismaPromise") { throw new Error( `All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.` ); } return request2.requestTransaction?.({ id, index, isolationLevel: options?.isolationLevel }, lock) ?? request2; }); return waitForBatch(requests); } async _transactionWithCallback({ callback, options }) { const headers = { traceparent: getTraceParent({ tracingConfig: this._tracingConfig }) }; const info2 = await this._engine.transaction("start", headers, options); let result; try { result = await callback(transactionProxy(this, { id: info2.id, payload: info2.payload })); await this._engine.transaction("commit", headers, info2); } catch (e2) { await this._engine.transaction("rollback", headers, info2).catch(() => { }); throw e2; } return result; } $transaction(input, options) { let callback; if (typeof input === "function") { callback = /* @__PURE__ */ __name(() => this._transactionWithCallback({ callback: input, options }), "callback"); } else { callback = /* @__PURE__ */ __name(() => this._transactionWithArray({ promises: input, options }), "callback"); } const spanOptions = { name: "transaction", enabled: this._tracingConfig.enabled, attributes: { method: "$transaction" } }; return runInChildSpan(spanOptions, callback); } async _request(internalParams) { internalParams.otelParentCtx = context.active(); try { const params = { args: internalParams.args, dataPath: internalParams.dataPath, runInTransaction: Boolean(internalParams.transaction), action: internalParams.action, model: internalParams.model }; const spanOptions = { middleware: { name: "middleware", enabled: this._tracingConfig.middleware, attributes: { method: "$use" }, active: false }, operation: { name: "operation", enabled: this._tracingConfig.enabled, attributes: { method: params.action, model: params.model, name: `${params.model}.${params.action}` } } }; let index = -1; const consumer = /* @__PURE__ */ __name((changedMiddlewareParams) => { const nextMiddleware = this._middlewares.query.get(++index); if (nextMiddleware) { return runInChildSpan(spanOptions.middleware, async (span) => { return nextMiddleware(changedMiddlewareParams, (p2) => (span?.end(), consumer(p2))); }); } const { runInTransaction, ...changedRequestParams } = changedMiddlewareParams; const requestParams = { ...internalParams, ...changedRequestParams }; if (!runInTransaction) { requestParams.transaction = void 0; } return applyQueryExtensions(this, requestParams); }, "consumer"); return await runInChildSpan(spanOptions.operation, () => { if (true) { const asyncRes = new import_async_hooks.AsyncResource("prisma-client-request"); return asyncRes.runInAsyncScope(() => consumer(params)); } return consumer(params); }); } catch (e2) { e2.clientVersion = this._clientVersion; throw e2; } } async _executeRequest({ args, clientMethod, jsModelName, dataPath, callsite, action, model, headers, argsMapper, transaction, lock, unpacker, otelParentCtx }) { if (this._dmmf === void 0) { this._dmmf = await this._getDmmf({ clientMethod, callsite }); } args = argsMapper ? argsMapper(args) : args; let rootField; const operation = actionOperationMap[action]; if (action === "executeRaw" || action === "queryRaw" || action === "runCommandRaw") { rootField = action; } let mapping; if (model !== void 0) { mapping = this._dmmf?.mappingsMap[model]; if (mapping === void 0) { throw new Error(`Could not find mapping for model ${model}`); } rootField = mapping[action === "count" ? "aggregate" : action]; } if (operation !== "query" && operation !== "mutation") { throw new Error(`Invalid operation ${operation} for action ${action}`); } const field = this._dmmf?.rootFieldMap[rootField]; if (field === void 0) { throw new Error( `Could not find rootField ${rootField} for action ${action} for model ${model} on rootType ${operation}` ); } const { isList } = field.outputType; const typeName = getOutputTypeName(field.outputType.type); const rejectOnNotFound = getRejectOnNotFound(action, typeName, args, this._rejectOnNotFound); warnAboutRejectOnNotFound(rejectOnNotFound, jsModelName, action); const serializationFn = /* @__PURE__ */ __name(() => { const document3 = makeDocument({ dmmf: this._dmmf, rootField, rootTypeName: operation, select: args, modelName: model, extensions: this._extensions }); document3.validate(args, false, clientMethod, this._errorFormat, callsite); return transformDocument(document3); }, "serializationFn"); const spanOptions = { name: "serialize", enabled: this._tracingConfig.enabled }; const document2 = await runInChildSpan(spanOptions, serializationFn); if (src_default.enabled("prisma:client")) { const query2 = String(document2); debug13(`Prisma Client call:`); debug13( `prisma.${clientMethod}(${printJsonWithErrors({ ast: args, keyPaths: [], valuePaths: [], missingItems: [] })})` ); debug13(`Generated request:`); debug13(query2 + "\n"); } await lock; return this._fetcher.request({ document: document2, clientMethod, typeName, dataPath, rejectOnNotFound, isList, rootField, callsite, args, engineHook: this._middlewares.engine.get(0), extensions: this._extensions, headers, transaction, unpacker, otelParentCtx, otelChildCtx: context.active() }); } get $metrics() { if (!this._hasPreviewFlag("metrics")) { throw new PrismaClientValidationError( "`metrics` preview feature must be enabled in order to access metrics API" ); } return this._metrics; } _hasPreviewFlag(feature) { return !!this._engineConfig.previewFeatures?.includes(feature); } } __name(PrismaClient, "PrismaClient"); return PrismaClient; } __name(getPrismaClient, "getPrismaClient"); var forbidden = ["$connect", "$disconnect", "$on", "$transaction", "$use", "$extends"]; function transactionProxy(thing, transaction) { if (typeof thing !== "object") return thing; return new Proxy(thing, { get: (target, prop) => { if (forbidden.includes(prop)) return void 0; if (prop === TX_ID) return transaction?.id; if (typeof target[prop] === "function") { return (...args) => { if (prop === "then") return target[prop](args[0], args[1], transaction); if (prop === "catch") return target[prop](args[0], transaction); if (prop === "finally") return target[prop](args[0], transaction); return transactionProxy(target[prop](...args), transaction); }; } return transactionProxy(target[prop], transaction); }, has(target, prop) { if (forbidden.includes(prop)) { return false; } return Reflect.has(target, prop); } }); } __name(transactionProxy, "transactionProxy"); var rejectOnNotFoundReplacements = { findUnique: "findUniqueOrThrow", findFirst: "findFirstOrThrow" }; function warnAboutRejectOnNotFound(rejectOnNotFound, model, action) { if (rejectOnNotFound) { const replacementAction = rejectOnNotFoundReplacements[action]; const replacementCall = model ? `prisma.${model}.${replacementAction}` : `prisma.${replacementAction}`; const key = `rejectOnNotFound.${model ?? ""}.${action}`; warnOnce2( key, `\`rejectOnNotFound\` option is deprecated and will be removed in Prisma 5. Please use \`${replacementCall}\` method instead` ); } } __name(warnAboutRejectOnNotFound, "warnAboutRejectOnNotFound"); // src/runtime/strictEnum.ts var allowList = /* @__PURE__ */ new Set([ "toJSON", "asymmetricMatch", Symbol.iterator, Symbol.toStringTag, Symbol.isConcatSpreadable, Symbol.toPrimitive ]); function makeStrictEnum(definition) { return new Proxy(definition, { get(target, property) { if (property in target) { return target[property]; } if (allowList.has(property)) { return void 0; } throw new TypeError(`Invalid enum value: ${String(property)}`); } }); } __name(makeStrictEnum, "makeStrictEnum"); // src/runtime/utils/find.ts var import_fs10 = __toESM(require("fs")); var import_path6 = __toESM(require("path")); var import_util8 = require("util"); var readdirAsync = (0, import_util8.promisify)(import_fs10.default.readdir); var realpathAsync = (0, import_util8.promisify)(import_fs10.default.realpath); var statAsync = (0, import_util8.promisify)(import_fs10.default.stat); var readdirSync = import_fs10.default.readdirSync; var realpathSync = import_fs10.default.realpathSync; var statSync = import_fs10.default.statSync; function direntToType(dirent) { return dirent.isFile() ? "f" : dirent.isDirectory() ? "d" : dirent.isSymbolicLink() ? "l" : void 0; } __name(direntToType, "direntToType"); function isMatched(string, regexs) { for (const regex of regexs) { if (typeof regex === "string") { if (string.includes(regex)) { return true; } } else if (regex.exec(string)) { return true; } } return false; } __name(isMatched, "isMatched"); function findSync(root, match, types = ["f", "d", "l"], deep = [], limit = Infinity, handler = () => true, found = [], seen = {}) { try { const realRoot = realpathSync(root); if (seen[realRoot]) { return found; } if (limit - found.length <= 0) { return found; } if (direntToType(statSync(realRoot)) !== "d") { return found; } const items = readdirSync(root, { withFileTypes: true }); seen[realRoot] = true; for (const item of items) { const itemName = item.name; const itemType = direntToType(item); const itemPath = import_path6.default.join(root, item.name); if (itemType && types.includes(itemType)) { if (isMatched(itemPath, match)) { const value = handler(root, itemName, itemType); if (typeof value === "string") { found.push(value); } else if (value === true) { found.push(itemPath); } } } if (deep.includes(itemType)) { findSync(itemPath, match, types, deep, limit, handler, found, seen); } } } catch { } return found; } __name(findSync, "findSync"); // src/runtime/warnEnvConflicts.ts function warnEnvConflicts(envPaths) { tryLoadEnvs(envPaths, { conflictCheck: "warn" }); } __name(warnEnvConflicts, "warnEnvConflicts"); // src/runtime/index.ts var decompressFromBase642 = lzString.decompressFromBase64; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { DMMF, DMMFClass, Debug, Decimal, Engine, Extensions, MetricsClient, NotFoundError, PrismaClientExtensionError, PrismaClientInitializationError, PrismaClientKnownRequestError, PrismaClientRustPanicError, PrismaClientUnknownRequestError, PrismaClientValidationError, Sql, Types, decompressFromBase64, empty, findSync, getPrismaClient, join, makeDocument, makeStrictEnum, objectEnumValues, raw, sqltag, transformDocument, unpack, warnEnvConflicts }); /*! * decimal.js v10.4.2 * An arbitrary-precision Decimal type for JavaScript. * https://github.com/MikeMcl/decimal.js * Copyright (c) 2022 Michael Mclaughlin * MIT Licence */ /*! * @description Recursive object extending * @author Viacheslav Lotsmanov * @license MIT * * The MIT License (MIT) * * Copyright (c) 2013-2018 Viacheslav Lotsmanov * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*! formdata-polyfill. MIT License. Jimmy Wärting */