1"use strict"; 2var __create = Object.create; 3var __defProp = Object.defineProperty; 4var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 5var __getOwnPropNames = Object.getOwnPropertyNames; 6var __getProtoOf = Object.getPrototypeOf; 7var __hasOwnProp = Object.prototype.hasOwnProperty; 8var __esm = (fn2, res) => function __init() { 9 return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res; 10}; 11var __commonJS = (cb, mod) => function __require() { 12 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 13}; 14var __export = (target, all) => { 15 for (var name in all) 16 __defProp(target, name, { get: all[name], enumerable: true }); 17}; 18var __copyProps = (to, from, except, desc) => { 19 if (from && typeof from === "object" || typeof from === "function") { 20 for (let key of __getOwnPropNames(from)) 21 if (!__hasOwnProp.call(to, key) && key !== except) 22 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 23 } 24 return to; 25}; 26var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 27 // If the importer is in node compatibility mode or this is not an ESM 28 // file that has been converted to a CommonJS file using a Babel- 29 // compatible transform (i.e. "__esModule" has not been set), then set 30 // "default" to the CommonJS "module.exports" for node compatibility. 31 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 32 mod 33)); 34var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); 35 36// .yarn/cache/typanion-npm-3.14.0-8af344c436-8b03b19844.zip/node_modules/typanion/lib/index.mjs 37var lib_exports = {}; 38__export(lib_exports, { 39 KeyRelationship: () => KeyRelationship, 40 TypeAssertionError: () => TypeAssertionError, 41 applyCascade: () => applyCascade, 42 as: () => as, 43 assert: () => assert, 44 assertWithErrors: () => assertWithErrors, 45 cascade: () => cascade, 46 fn: () => fn, 47 hasAtLeastOneKey: () => hasAtLeastOneKey, 48 hasExactLength: () => hasExactLength, 49 hasForbiddenKeys: () => hasForbiddenKeys, 50 hasKeyRelationship: () => hasKeyRelationship, 51 hasMaxLength: () => hasMaxLength, 52 hasMinLength: () => hasMinLength, 53 hasMutuallyExclusiveKeys: () => hasMutuallyExclusiveKeys, 54 hasRequiredKeys: () => hasRequiredKeys, 55 hasUniqueItems: () => hasUniqueItems, 56 isArray: () => isArray, 57 isAtLeast: () => isAtLeast, 58 isAtMost: () => isAtMost, 59 isBase64: () => isBase64, 60 isBoolean: () => isBoolean, 61 isDate: () => isDate, 62 isDict: () => isDict, 63 isEnum: () => isEnum, 64 isHexColor: () => isHexColor, 65 isISO8601: () => isISO8601, 66 isInExclusiveRange: () => isInExclusiveRange, 67 isInInclusiveRange: () => isInInclusiveRange, 68 isInstanceOf: () => isInstanceOf, 69 isInteger: () => isInteger, 70 isJSON: () => isJSON, 71 isLiteral: () => isLiteral, 72 isLowerCase: () => isLowerCase, 73 isMap: () => isMap, 74 isNegative: () => isNegative, 75 isNullable: () => isNullable, 76 isNumber: () => isNumber, 77 isObject: () => isObject, 78 isOneOf: () => isOneOf, 79 isOptional: () => isOptional, 80 isPartial: () => isPartial, 81 isPayload: () => isPayload, 82 isPositive: () => isPositive, 83 isRecord: () => isRecord, 84 isSet: () => isSet, 85 isString: () => isString, 86 isTuple: () => isTuple, 87 isUUID4: () => isUUID4, 88 isUnknown: () => isUnknown, 89 isUpperCase: () => isUpperCase, 90 makeTrait: () => makeTrait, 91 makeValidator: () => makeValidator, 92 matchesRegExp: () => matchesRegExp, 93 softAssert: () => softAssert 94}); 95function getPrintable(value) { 96 if (value === null) 97 return `null`; 98 if (value === void 0) 99 return `undefined`; 100 if (value === ``) 101 return `an empty string`; 102 if (typeof value === "symbol") 103 return `<${value.toString()}>`; 104 if (Array.isArray(value)) 105 return `an array`; 106 return JSON.stringify(value); 107} 108function getPrintableArray(value, conjunction) { 109 if (value.length === 0) 110 return `nothing`; 111 if (value.length === 1) 112 return getPrintable(value[0]); 113 const rest = value.slice(0, -1); 114 const trailing = value[value.length - 1]; 115 const separator = value.length > 2 ? `, ${conjunction} ` : ` ${conjunction} `; 116 return `${rest.map((value2) => getPrintable(value2)).join(`, `)}${separator}${getPrintable(trailing)}`; 117} 118function computeKey(state, key) { 119 var _a, _b, _c; 120 if (typeof key === `number`) { 121 return `${(_a = state === null || state === void 0 ? void 0 : state.p) !== null && _a !== void 0 ? _a : `.`}[${key}]`; 122 } else if (simpleKeyRegExp.test(key)) { 123 return `${(_b = state === null || state === void 0 ? void 0 : state.p) !== null && _b !== void 0 ? _b : ``}.${key}`; 124 } else { 125 return `${(_c = state === null || state === void 0 ? void 0 : state.p) !== null && _c !== void 0 ? _c : `.`}[${JSON.stringify(key)}]`; 126 } 127} 128function plural(n, singular, plural2) { 129 return n === 1 ? singular : plural2; 130} 131function pushError({ errors, p } = {}, message) { 132 errors === null || errors === void 0 ? void 0 : errors.push(`${p !== null && p !== void 0 ? p : `.`}: ${message}`); 133 return false; 134} 135function makeSetter(target, key) { 136 return (v) => { 137 target[key] = v; 138 }; 139} 140function makeCoercionFn(target, key) { 141 return (v) => { 142 const previous = target[key]; 143 target[key] = v; 144 return makeCoercionFn(target, key).bind(null, previous); 145 }; 146} 147function makeLazyCoercionFn(fn2, orig, generator) { 148 const commit = () => { 149 fn2(generator()); 150 return revert; 151 }; 152 const revert = () => { 153 fn2(orig); 154 return commit; 155 }; 156 return commit; 157} 158function isUnknown() { 159 return makeValidator({ 160 test: (value, state) => { 161 return true; 162 } 163 }); 164} 165function isLiteral(expected) { 166 return makeValidator({ 167 test: (value, state) => { 168 if (value !== expected) 169 return pushError(state, `Expected ${getPrintable(expected)} (got ${getPrintable(value)})`); 170 return true; 171 } 172 }); 173} 174function isString() { 175 return makeValidator({ 176 test: (value, state) => { 177 if (typeof value !== `string`) 178 return pushError(state, `Expected a string (got ${getPrintable(value)})`); 179 return true; 180 } 181 }); 182} 183function isEnum(enumSpec) { 184 const valuesArray = Array.isArray(enumSpec) ? enumSpec : Object.values(enumSpec); 185 const isAlphaNum = valuesArray.every((item) => typeof item === "string" || typeof item === "number"); 186 const values = new Set(valuesArray); 187 if (values.size === 1) 188 return isLiteral([...values][0]); 189 return makeValidator({ 190 test: (value, state) => { 191 if (!values.has(value)) { 192 if (isAlphaNum) { 193 return pushError(state, `Expected one of ${getPrintableArray(valuesArray, `or`)} (got ${getPrintable(value)})`); 194 } else { 195 return pushError(state, `Expected a valid enumeration value (got ${getPrintable(value)})`); 196 } 197 } 198 return true; 199 } 200 }); 201} 202function isBoolean() { 203 return makeValidator({ 204 test: (value, state) => { 205 var _a; 206 if (typeof value !== `boolean`) { 207 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 208 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 209 return pushError(state, `Unbound coercion result`); 210 const coercion = BOOLEAN_COERCIONS.get(value); 211 if (typeof coercion !== `undefined`) { 212 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, coercion)]); 213 return true; 214 } 215 } 216 return pushError(state, `Expected a boolean (got ${getPrintable(value)})`); 217 } 218 return true; 219 } 220 }); 221} 222function isNumber() { 223 return makeValidator({ 224 test: (value, state) => { 225 var _a; 226 if (typeof value !== `number`) { 227 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 228 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 229 return pushError(state, `Unbound coercion result`); 230 let coercion; 231 if (typeof value === `string`) { 232 let val; 233 try { 234 val = JSON.parse(value); 235 } catch (_b) { 236 } 237 if (typeof val === `number`) { 238 if (JSON.stringify(val) === value) { 239 coercion = val; 240 } else { 241 return pushError(state, `Received a number that can't be safely represented by the runtime (${value})`); 242 } 243 } 244 } 245 if (typeof coercion !== `undefined`) { 246 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, coercion)]); 247 return true; 248 } 249 } 250 return pushError(state, `Expected a number (got ${getPrintable(value)})`); 251 } 252 return true; 253 } 254 }); 255} 256function isPayload(spec) { 257 return makeValidator({ 258 test: (value, state) => { 259 var _a; 260 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) === `undefined`) 261 return pushError(state, `The isPayload predicate can only be used with coercion enabled`); 262 if (typeof state.coercion === `undefined`) 263 return pushError(state, `Unbound coercion result`); 264 if (typeof value !== `string`) 265 return pushError(state, `Expected a string (got ${getPrintable(value)})`); 266 let inner; 267 try { 268 inner = JSON.parse(value); 269 } catch (_b) { 270 return pushError(state, `Expected a JSON string (got ${getPrintable(value)})`); 271 } 272 const wrapper = { value: inner }; 273 if (!spec(inner, Object.assign(Object.assign({}, state), { coercion: makeCoercionFn(wrapper, `value`) }))) 274 return false; 275 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, wrapper.value)]); 276 return true; 277 } 278 }); 279} 280function isDate() { 281 return makeValidator({ 282 test: (value, state) => { 283 var _a; 284 if (!(value instanceof Date)) { 285 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 286 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 287 return pushError(state, `Unbound coercion result`); 288 let coercion; 289 if (typeof value === `string` && iso8601RegExp.test(value)) { 290 coercion = new Date(value); 291 } else { 292 let timestamp; 293 if (typeof value === `string`) { 294 let val; 295 try { 296 val = JSON.parse(value); 297 } catch (_b) { 298 } 299 if (typeof val === `number`) { 300 timestamp = val; 301 } 302 } else if (typeof value === `number`) { 303 timestamp = value; 304 } 305 if (typeof timestamp !== `undefined`) { 306 if (Number.isSafeInteger(timestamp) || !Number.isSafeInteger(timestamp * 1e3)) { 307 coercion = new Date(timestamp * 1e3); 308 } else { 309 return pushError(state, `Received a timestamp that can't be safely represented by the runtime (${value})`); 310 } 311 } 312 } 313 if (typeof coercion !== `undefined`) { 314 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, coercion)]); 315 return true; 316 } 317 } 318 return pushError(state, `Expected a date (got ${getPrintable(value)})`); 319 } 320 return true; 321 } 322 }); 323} 324function isArray(spec, { delimiter } = {}) { 325 return makeValidator({ 326 test: (value, state) => { 327 var _a; 328 const originalValue = value; 329 if (typeof value === `string` && typeof delimiter !== `undefined`) { 330 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 331 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 332 return pushError(state, `Unbound coercion result`); 333 value = value.split(delimiter); 334 } 335 } 336 if (!Array.isArray(value)) 337 return pushError(state, `Expected an array (got ${getPrintable(value)})`); 338 let valid = true; 339 for (let t = 0, T = value.length; t < T; ++t) { 340 valid = spec(value[t], Object.assign(Object.assign({}, state), { p: computeKey(state, t), coercion: makeCoercionFn(value, t) })) && valid; 341 if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { 342 break; 343 } 344 } 345 if (value !== originalValue) 346 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, value)]); 347 return valid; 348 } 349 }); 350} 351function isSet(spec, { delimiter } = {}) { 352 const isArrayValidator = isArray(spec, { delimiter }); 353 return makeValidator({ 354 test: (value, state) => { 355 var _a, _b; 356 if (Object.getPrototypeOf(value).toString() === `[object Set]`) { 357 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 358 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 359 return pushError(state, `Unbound coercion result`); 360 const originalValues = [...value]; 361 const coercedValues = [...value]; 362 if (!isArrayValidator(coercedValues, Object.assign(Object.assign({}, state), { coercion: void 0 }))) 363 return false; 364 const updateValue = () => coercedValues.some((val, t) => val !== originalValues[t]) ? new Set(coercedValues) : value; 365 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, makeLazyCoercionFn(state.coercion, value, updateValue)]); 366 return true; 367 } else { 368 let valid = true; 369 for (const subValue of value) { 370 valid = spec(subValue, Object.assign({}, state)) && valid; 371 if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { 372 break; 373 } 374 } 375 return valid; 376 } 377 } 378 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 379 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 380 return pushError(state, `Unbound coercion result`); 381 const store = { value }; 382 if (!isArrayValidator(value, Object.assign(Object.assign({}, state), { coercion: makeCoercionFn(store, `value`) }))) 383 return false; 384 state.coercions.push([(_b = state.p) !== null && _b !== void 0 ? _b : `.`, makeLazyCoercionFn(state.coercion, value, () => new Set(store.value))]); 385 return true; 386 } 387 return pushError(state, `Expected a set (got ${getPrintable(value)})`); 388 } 389 }); 390} 391function isMap(keySpec, valueSpec) { 392 const isArrayValidator = isArray(isTuple([keySpec, valueSpec])); 393 const isRecordValidator = isRecord(valueSpec, { keys: keySpec }); 394 return makeValidator({ 395 test: (value, state) => { 396 var _a, _b, _c; 397 if (Object.getPrototypeOf(value).toString() === `[object Map]`) { 398 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 399 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 400 return pushError(state, `Unbound coercion result`); 401 const originalValues = [...value]; 402 const coercedValues = [...value]; 403 if (!isArrayValidator(coercedValues, Object.assign(Object.assign({}, state), { coercion: void 0 }))) 404 return false; 405 const updateValue = () => coercedValues.some((val, t) => val[0] !== originalValues[t][0] || val[1] !== originalValues[t][1]) ? new Map(coercedValues) : value; 406 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, makeLazyCoercionFn(state.coercion, value, updateValue)]); 407 return true; 408 } else { 409 let valid = true; 410 for (const [key, subValue] of value) { 411 valid = keySpec(key, Object.assign({}, state)) && valid; 412 if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { 413 break; 414 } 415 valid = valueSpec(subValue, Object.assign(Object.assign({}, state), { p: computeKey(state, key) })) && valid; 416 if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { 417 break; 418 } 419 } 420 return valid; 421 } 422 } 423 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 424 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 425 return pushError(state, `Unbound coercion result`); 426 const store = { value }; 427 if (Array.isArray(value)) { 428 if (!isArrayValidator(value, Object.assign(Object.assign({}, state), { coercion: void 0 }))) 429 return false; 430 state.coercions.push([(_b = state.p) !== null && _b !== void 0 ? _b : `.`, makeLazyCoercionFn(state.coercion, value, () => new Map(store.value))]); 431 return true; 432 } else { 433 if (!isRecordValidator(value, Object.assign(Object.assign({}, state), { coercion: makeCoercionFn(store, `value`) }))) 434 return false; 435 state.coercions.push([(_c = state.p) !== null && _c !== void 0 ? _c : `.`, makeLazyCoercionFn(state.coercion, value, () => new Map(Object.entries(store.value)))]); 436 return true; 437 } 438 } 439 return pushError(state, `Expected a map (got ${getPrintable(value)})`); 440 } 441 }); 442} 443function isTuple(spec, { delimiter } = {}) { 444 const lengthValidator = hasExactLength(spec.length); 445 return makeValidator({ 446 test: (value, state) => { 447 var _a; 448 if (typeof value === `string` && typeof delimiter !== `undefined`) { 449 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 450 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 451 return pushError(state, `Unbound coercion result`); 452 value = value.split(delimiter); 453 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, value)]); 454 } 455 } 456 if (!Array.isArray(value)) 457 return pushError(state, `Expected a tuple (got ${getPrintable(value)})`); 458 let valid = lengthValidator(value, Object.assign({}, state)); 459 for (let t = 0, T = value.length; t < T && t < spec.length; ++t) { 460 valid = spec[t](value[t], Object.assign(Object.assign({}, state), { p: computeKey(state, t), coercion: makeCoercionFn(value, t) })) && valid; 461 if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { 462 break; 463 } 464 } 465 return valid; 466 } 467 }); 468} 469function isRecord(spec, { keys: keySpec = null } = {}) { 470 const isArrayValidator = isArray(isTuple([keySpec !== null && keySpec !== void 0 ? keySpec : isString(), spec])); 471 return makeValidator({ 472 test: (value, state) => { 473 var _a; 474 if (Array.isArray(value)) { 475 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 476 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 477 return pushError(state, `Unbound coercion result`); 478 if (!isArrayValidator(value, Object.assign(Object.assign({}, state), { coercion: void 0 }))) 479 return false; 480 value = Object.fromEntries(value); 481 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, value)]); 482 return true; 483 } 484 } 485 if (typeof value !== `object` || value === null) 486 return pushError(state, `Expected an object (got ${getPrintable(value)})`); 487 const keys = Object.keys(value); 488 let valid = true; 489 for (let t = 0, T = keys.length; t < T && (valid || (state === null || state === void 0 ? void 0 : state.errors) != null); ++t) { 490 const key = keys[t]; 491 const sub = value[key]; 492 if (key === `__proto__` || key === `constructor`) { 493 valid = pushError(Object.assign(Object.assign({}, state), { p: computeKey(state, key) }), `Unsafe property name`); 494 continue; 495 } 496 if (keySpec !== null && !keySpec(key, state)) { 497 valid = false; 498 continue; 499 } 500 if (!spec(sub, Object.assign(Object.assign({}, state), { p: computeKey(state, key), coercion: makeCoercionFn(value, key) }))) { 501 valid = false; 502 continue; 503 } 504 } 505 return valid; 506 } 507 }); 508} 509function isDict(spec, opts = {}) { 510 return isRecord(spec, opts); 511} 512function isObject(props, { extra: extraSpec = null } = {}) { 513 const specKeys = Object.keys(props); 514 const validator = makeValidator({ 515 test: (value, state) => { 516 if (typeof value !== `object` || value === null) 517 return pushError(state, `Expected an object (got ${getPrintable(value)})`); 518 const keys = /* @__PURE__ */ new Set([...specKeys, ...Object.keys(value)]); 519 const extra = {}; 520 let valid = true; 521 for (const key of keys) { 522 if (key === `constructor` || key === `__proto__`) { 523 valid = pushError(Object.assign(Object.assign({}, state), { p: computeKey(state, key) }), `Unsafe property name`); 524 } else { 525 const spec = Object.prototype.hasOwnProperty.call(props, key) ? props[key] : void 0; 526 const sub = Object.prototype.hasOwnProperty.call(value, key) ? value[key] : void 0; 527 if (typeof spec !== `undefined`) { 528 valid = spec(sub, Object.assign(Object.assign({}, state), { p: computeKey(state, key), coercion: makeCoercionFn(value, key) })) && valid; 529 } else if (extraSpec === null) { 530 valid = pushError(Object.assign(Object.assign({}, state), { p: computeKey(state, key) }), `Extraneous property (got ${getPrintable(sub)})`); 531 } else { 532 Object.defineProperty(extra, key, { 533 enumerable: true, 534 get: () => sub, 535 set: makeSetter(value, key) 536 }); 537 } 538 } 539 if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { 540 break; 541 } 542 } 543 if (extraSpec !== null && (valid || (state === null || state === void 0 ? void 0 : state.errors) != null)) 544 valid = extraSpec(extra, state) && valid; 545 return valid; 546 } 547 }); 548 return Object.assign(validator, { 549 properties: props 550 }); 551} 552function isPartial(props) { 553 return isObject(props, { extra: isRecord(isUnknown()) }); 554} 555function makeTrait(value) { 556 return () => { 557 return value; 558 }; 559} 560function makeValidator({ test }) { 561 return makeTrait(test)(); 562} 563function assert(val, validator) { 564 if (!validator(val)) { 565 throw new TypeAssertionError(); 566 } 567} 568function assertWithErrors(val, validator) { 569 const errors = []; 570 if (!validator(val, { errors })) { 571 throw new TypeAssertionError({ errors }); 572 } 573} 574function softAssert(val, validator) { 575} 576function as(value, validator, { coerce = false, errors: storeErrors, throw: throws } = {}) { 577 const errors = storeErrors ? [] : void 0; 578 if (!coerce) { 579 if (validator(value, { errors })) { 580 return throws ? value : { value, errors: void 0 }; 581 } else if (!throws) { 582 return { value: void 0, errors: errors !== null && errors !== void 0 ? errors : true }; 583 } else { 584 throw new TypeAssertionError({ errors }); 585 } 586 } 587 const state = { value }; 588 const coercion = makeCoercionFn(state, `value`); 589 const coercions = []; 590 if (!validator(value, { errors, coercion, coercions })) { 591 if (!throws) { 592 return { value: void 0, errors: errors !== null && errors !== void 0 ? errors : true }; 593 } else { 594 throw new TypeAssertionError({ errors }); 595 } 596 } 597 for (const [, apply] of coercions) 598 apply(); 599 if (throws) { 600 return state.value; 601 } else { 602 return { value: state.value, errors: void 0 }; 603 } 604} 605function fn(validators, fn2) { 606 const isValidArgList = isTuple(validators); 607 return (...args) => { 608 const check = isValidArgList(args); 609 if (!check) 610 throw new TypeAssertionError(); 611 return fn2(...args); 612 }; 613} 614function hasMinLength(length) { 615 return makeValidator({ 616 test: (value, state) => { 617 if (!(value.length >= length)) 618 return pushError(state, `Expected to have a length of at least ${length} elements (got ${value.length})`); 619 return true; 620 } 621 }); 622} 623function hasMaxLength(length) { 624 return makeValidator({ 625 test: (value, state) => { 626 if (!(value.length <= length)) 627 return pushError(state, `Expected to have a length of at most ${length} elements (got ${value.length})`); 628 return true; 629 } 630 }); 631} 632function hasExactLength(length) { 633 return makeValidator({ 634 test: (value, state) => { 635 if (!(value.length === length)) 636 return pushError(state, `Expected to have a length of exactly ${length} elements (got ${value.length})`); 637 return true; 638 } 639 }); 640} 641function hasUniqueItems({ map } = {}) { 642 return makeValidator({ 643 test: (value, state) => { 644 const set = /* @__PURE__ */ new Set(); 645 const dup = /* @__PURE__ */ new Set(); 646 for (let t = 0, T = value.length; t < T; ++t) { 647 const sub = value[t]; 648 const key = typeof map !== `undefined` ? map(sub) : sub; 649 if (set.has(key)) { 650 if (dup.has(key)) 651 continue; 652 pushError(state, `Expected to contain unique elements; got a duplicate with ${getPrintable(value)}`); 653 dup.add(key); 654 } else { 655 set.add(key); 656 } 657 } 658 return dup.size === 0; 659 } 660 }); 661} 662function isNegative() { 663 return makeValidator({ 664 test: (value, state) => { 665 if (!(value <= 0)) 666 return pushError(state, `Expected to be negative (got ${value})`); 667 return true; 668 } 669 }); 670} 671function isPositive() { 672 return makeValidator({ 673 test: (value, state) => { 674 if (!(value >= 0)) 675 return pushError(state, `Expected to be positive (got ${value})`); 676 return true; 677 } 678 }); 679} 680function isAtLeast(n) { 681 return makeValidator({ 682 test: (value, state) => { 683 if (!(value >= n)) 684 return pushError(state, `Expected to be at least ${n} (got ${value})`); 685 return true; 686 } 687 }); 688} 689function isAtMost(n) { 690 return makeValidator({ 691 test: (value, state) => { 692 if (!(value <= n)) 693 return pushError(state, `Expected to be at most ${n} (got ${value})`); 694 return true; 695 } 696 }); 697} 698function isInInclusiveRange(a, b) { 699 return makeValidator({ 700 test: (value, state) => { 701 if (!(value >= a && value <= b)) 702 return pushError(state, `Expected to be in the [${a}; ${b}] range (got ${value})`); 703 return true; 704 } 705 }); 706} 707function isInExclusiveRange(a, b) { 708 return makeValidator({ 709 test: (value, state) => { 710 if (!(value >= a && value < b)) 711 return pushError(state, `Expected to be in the [${a}; ${b}[ range (got ${value})`); 712 return true; 713 } 714 }); 715} 716function isInteger({ unsafe = false } = {}) { 717 return makeValidator({ 718 test: (value, state) => { 719 if (value !== Math.round(value)) 720 return pushError(state, `Expected to be an integer (got ${value})`); 721 if (!unsafe && !Number.isSafeInteger(value)) 722 return pushError(state, `Expected to be a safe integer (got ${value})`); 723 return true; 724 } 725 }); 726} 727function matchesRegExp(regExp) { 728 return makeValidator({ 729 test: (value, state) => { 730 if (!regExp.test(value)) 731 return pushError(state, `Expected to match the pattern ${regExp.toString()} (got ${getPrintable(value)})`); 732 return true; 733 } 734 }); 735} 736function isLowerCase() { 737 return makeValidator({ 738 test: (value, state) => { 739 if (value !== value.toLowerCase()) 740 return pushError(state, `Expected to be all-lowercase (got ${value})`); 741 return true; 742 } 743 }); 744} 745function isUpperCase() { 746 return makeValidator({ 747 test: (value, state) => { 748 if (value !== value.toUpperCase()) 749 return pushError(state, `Expected to be all-uppercase (got ${value})`); 750 return true; 751 } 752 }); 753} 754function isUUID4() { 755 return makeValidator({ 756 test: (value, state) => { 757 if (!uuid4RegExp.test(value)) 758 return pushError(state, `Expected to be a valid UUID v4 (got ${getPrintable(value)})`); 759 return true; 760 } 761 }); 762} 763function isISO8601() { 764 return makeValidator({ 765 test: (value, state) => { 766 if (!iso8601RegExp.test(value)) 767 return pushError(state, `Expected to be a valid ISO 8601 date string (got ${getPrintable(value)})`); 768 return true; 769 } 770 }); 771} 772function isHexColor({ alpha = false }) { 773 return makeValidator({ 774 test: (value, state) => { 775 const res = alpha ? colorStringRegExp.test(value) : colorStringAlphaRegExp.test(value); 776 if (!res) 777 return pushError(state, `Expected to be a valid hexadecimal color string (got ${getPrintable(value)})`); 778 return true; 779 } 780 }); 781} 782function isBase64() { 783 return makeValidator({ 784 test: (value, state) => { 785 if (!base64RegExp.test(value)) 786 return pushError(state, `Expected to be a valid base 64 string (got ${getPrintable(value)})`); 787 return true; 788 } 789 }); 790} 791function isJSON(spec = isUnknown()) { 792 return makeValidator({ 793 test: (value, state) => { 794 let data; 795 try { 796 data = JSON.parse(value); 797 } catch (_a) { 798 return pushError(state, `Expected to be a valid JSON string (got ${getPrintable(value)})`); 799 } 800 return spec(data, state); 801 } 802 }); 803} 804function cascade(spec, ...followups) { 805 const resolvedFollowups = Array.isArray(followups[0]) ? followups[0] : followups; 806 return makeValidator({ 807 test: (value, state) => { 808 var _a, _b; 809 const context = { value }; 810 const subCoercion = typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined` ? makeCoercionFn(context, `value`) : void 0; 811 const subCoercions = typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined` ? [] : void 0; 812 if (!spec(value, Object.assign(Object.assign({}, state), { coercion: subCoercion, coercions: subCoercions }))) 813 return false; 814 const reverts = []; 815 if (typeof subCoercions !== `undefined`) 816 for (const [, coercion] of subCoercions) 817 reverts.push(coercion()); 818 try { 819 if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { 820 if (context.value !== value) { 821 if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) 822 return pushError(state, `Unbound coercion result`); 823 state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, context.value)]); 824 } 825 (_b = state === null || state === void 0 ? void 0 : state.coercions) === null || _b === void 0 ? void 0 : _b.push(...subCoercions); 826 } 827 return resolvedFollowups.every((spec2) => { 828 return spec2(context.value, state); 829 }); 830 } finally { 831 for (const revert of reverts) { 832 revert(); 833 } 834 } 835 } 836 }); 837} 838function applyCascade(spec, ...followups) { 839 const resolvedFollowups = Array.isArray(followups[0]) ? followups[0] : followups; 840 return cascade(spec, resolvedFollowups); 841} 842function isOptional(spec) { 843 return makeValidator({ 844 test: (value, state) => { 845 if (typeof value === `undefined`) 846 return true; 847 return spec(value, state); 848 } 849 }); 850} 851function isNullable(spec) { 852 return makeValidator({ 853 test: (value, state) => { 854 if (value === null) 855 return true; 856 return spec(value, state); 857 } 858 }); 859} 860function hasRequiredKeys(requiredKeys, options) { 861 var _a; 862 const requiredSet = new Set(requiredKeys); 863 const check = checks[(_a = options === null || options === void 0 ? void 0 : options.missingIf) !== null && _a !== void 0 ? _a : "missing"]; 864 return makeValidator({ 865 test: (value, state) => { 866 const keys = new Set(Object.keys(value)); 867 const problems = []; 868 for (const key of requiredSet) 869 if (!check(keys, key, value)) 870 problems.push(key); 871 if (problems.length > 0) 872 return pushError(state, `Missing required ${plural(problems.length, `property`, `properties`)} ${getPrintableArray(problems, `and`)}`); 873 return true; 874 } 875 }); 876} 877function hasAtLeastOneKey(requiredKeys, options) { 878 var _a; 879 const requiredSet = new Set(requiredKeys); 880 const check = checks[(_a = options === null || options === void 0 ? void 0 : options.missingIf) !== null && _a !== void 0 ? _a : "missing"]; 881 return makeValidator({ 882 test: (value, state) => { 883 const keys = Object.keys(value); 884 const valid = keys.some((key) => check(requiredSet, key, value)); 885 if (!valid) 886 return pushError(state, `Missing at least one property from ${getPrintableArray(Array.from(requiredSet), `or`)}`); 887 return true; 888 } 889 }); 890} 891function hasForbiddenKeys(forbiddenKeys, options) { 892 var _a; 893 const forbiddenSet = new Set(forbiddenKeys); 894 const check = checks[(_a = options === null || options === void 0 ? void 0 : options.missingIf) !== null && _a !== void 0 ? _a : "missing"]; 895 return makeValidator({ 896 test: (value, state) => { 897 const keys = new Set(Object.keys(value)); 898 const problems = []; 899 for (const key of forbiddenSet) 900 if (check(keys, key, value)) 901 problems.push(key); 902 if (problems.length > 0) 903 return pushError(state, `Forbidden ${plural(problems.length, `property`, `properties`)} ${getPrintableArray(problems, `and`)}`); 904 return true; 905 } 906 }); 907} 908function hasMutuallyExclusiveKeys(exclusiveKeys, options) { 909 var _a; 910 const exclusiveSet = new Set(exclusiveKeys); 911 const check = checks[(_a = options === null || options === void 0 ? void 0 : options.missingIf) !== null && _a !== void 0 ? _a : "missing"]; 912 return makeValidator({ 913 test: (value, state) => { 914 const keys = new Set(Object.keys(value)); 915 const used = []; 916 for (const key of exclusiveSet) 917 if (check(keys, key, value)) 918 used.push(key); 919 if (used.length > 1) 920 return pushError(state, `Mutually exclusive properties ${getPrintableArray(used, `and`)}`); 921 return true; 922 } 923 }); 924} 925function hasKeyRelationship(subject, relationship, others, options) { 926 var _a, _b; 927 const skipped = new Set((_a = options === null || options === void 0 ? void 0 : options.ignore) !== null && _a !== void 0 ? _a : []); 928 const check = checks[(_b = options === null || options === void 0 ? void 0 : options.missingIf) !== null && _b !== void 0 ? _b : "missing"]; 929 const otherSet = new Set(others); 930 const spec = keyRelationships[relationship]; 931 const conjunction = relationship === KeyRelationship.Forbids ? `or` : `and`; 932 return makeValidator({ 933 test: (value, state) => { 934 const keys = new Set(Object.keys(value)); 935 if (!check(keys, subject, value) || skipped.has(value[subject])) 936 return true; 937 const problems = []; 938 for (const key of otherSet) 939 if ((check(keys, key, value) && !skipped.has(value[key])) !== spec.expect) 940 problems.push(key); 941 if (problems.length >= 1) 942 return pushError(state, `Property "${subject}" ${spec.message} ${plural(problems.length, `property`, `properties`)} ${getPrintableArray(problems, conjunction)}`); 943 return true; 944 } 945 }); 946} 947var simpleKeyRegExp, colorStringRegExp, colorStringAlphaRegExp, base64RegExp, uuid4RegExp, iso8601RegExp, BOOLEAN_COERCIONS, isInstanceOf, isOneOf, TypeAssertionError, checks, KeyRelationship, keyRelationships; 948var init_lib = __esm({ 949 ".yarn/cache/typanion-npm-3.14.0-8af344c436-8b03b19844.zip/node_modules/typanion/lib/index.mjs"() { 950 simpleKeyRegExp = /^[a-zA-Z_][a-zA-Z0-9_]*$/; 951 colorStringRegExp = /^#[0-9a-f]{6}$/i; 952 colorStringAlphaRegExp = /^#[0-9a-f]{6}([0-9a-f]{2})?$/i; 953 base64RegExp = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/; 954 uuid4RegExp = /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i; 955 iso8601RegExp = /^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/; 956 BOOLEAN_COERCIONS = /* @__PURE__ */ new Map([ 957 [`true`, true], 958 [`True`, true], 959 [`1`, true], 960 [1, true], 961 [`false`, false], 962 [`False`, false], 963 [`0`, false], 964 [0, false] 965 ]); 966 isInstanceOf = (constructor) => makeValidator({ 967 test: (value, state) => { 968 if (!(value instanceof constructor)) 969 return pushError(state, `Expected an instance of ${constructor.name} (got ${getPrintable(value)})`); 970 return true; 971 } 972 }); 973 isOneOf = (specs, { exclusive = false } = {}) => makeValidator({ 974 test: (value, state) => { 975 var _a, _b, _c; 976 const matches = []; 977 const errorBuffer = typeof (state === null || state === void 0 ? void 0 : state.errors) !== `undefined` ? [] : void 0; 978 for (let t = 0, T = specs.length; t < T; ++t) { 979 const subErrors = typeof (state === null || state === void 0 ? void 0 : state.errors) !== `undefined` ? [] : void 0; 980 const subCoercions = typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined` ? [] : void 0; 981 if (specs[t](value, Object.assign(Object.assign({}, state), { errors: subErrors, coercions: subCoercions, p: `${(_a = state === null || state === void 0 ? void 0 : state.p) !== null && _a !== void 0 ? _a : `.`}#${t + 1}` }))) { 982 matches.push([`#${t + 1}`, subCoercions]); 983 if (!exclusive) { 984 break; 985 } 986 } else { 987 errorBuffer === null || errorBuffer === void 0 ? void 0 : errorBuffer.push(subErrors[0]); 988 } 989 } 990 if (matches.length === 1) { 991 const [, subCoercions] = matches[0]; 992 if (typeof subCoercions !== `undefined`) 993 (_b = state === null || state === void 0 ? void 0 : state.coercions) === null || _b === void 0 ? void 0 : _b.push(...subCoercions); 994 return true; 995 } 996 if (matches.length > 1) 997 pushError(state, `Expected to match exactly a single predicate (matched ${matches.join(`, `)})`); 998 else 999 (_c = state === null || state === void 0 ? void 0 : state.errors) === null || _c === void 0 ? void 0 : _c.push(...errorBuffer); 1000 return false; 1001 } 1002 }); 1003 TypeAssertionError = class extends Error { 1004 constructor({ errors } = {}) { 1005 let errorMessage = `Type mismatch`; 1006 if (errors && errors.length > 0) { 1007 errorMessage += ` 1008`; 1009 for (const error of errors) { 1010 errorMessage += ` 1011- ${error}`; 1012 } 1013 } 1014 super(errorMessage); 1015 } 1016 }; 1017 checks = { 1018 missing: (keys, key) => keys.has(key), 1019 undefined: (keys, key, value) => keys.has(key) && typeof value[key] !== `undefined`, 1020 nil: (keys, key, value) => keys.has(key) && value[key] != null, 1021 falsy: (keys, key, value) => keys.has(key) && !!value[key] 1022 }; 1023 (function(KeyRelationship2) { 1024 KeyRelationship2["Forbids"] = "Forbids"; 1025 KeyRelationship2["Requires"] = "Requires"; 1026 })(KeyRelationship || (KeyRelationship = {})); 1027 keyRelationships = { 1028 [KeyRelationship.Forbids]: { 1029 expect: false, 1030 message: `forbids using` 1031 }, 1032 [KeyRelationship.Requires]: { 1033 expect: true, 1034 message: `requires using` 1035 } 1036 }; 1037 } 1038}); 1039 1040// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/constants.js 1041var require_constants = __commonJS({ 1042 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/constants.js"(exports, module2) { 1043 var SEMVER_SPEC_VERSION = "2.0.0"; 1044 var MAX_LENGTH = 256; 1045 var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 1046 9007199254740991; 1047 var MAX_SAFE_COMPONENT_LENGTH = 16; 1048 var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; 1049 var RELEASE_TYPES = [ 1050 "major", 1051 "premajor", 1052 "minor", 1053 "preminor", 1054 "patch", 1055 "prepatch", 1056 "prerelease" 1057 ]; 1058 module2.exports = { 1059 MAX_LENGTH, 1060 MAX_SAFE_COMPONENT_LENGTH, 1061 MAX_SAFE_BUILD_LENGTH, 1062 MAX_SAFE_INTEGER, 1063 RELEASE_TYPES, 1064 SEMVER_SPEC_VERSION, 1065 FLAG_INCLUDE_PRERELEASE: 1, 1066 FLAG_LOOSE: 2 1067 }; 1068 } 1069}); 1070 1071// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/debug.js 1072var require_debug = __commonJS({ 1073 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/debug.js"(exports, module2) { 1074 var debug2 = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { 1075 }; 1076 module2.exports = debug2; 1077 } 1078}); 1079 1080// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/re.js 1081var require_re = __commonJS({ 1082 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/re.js"(exports, module2) { 1083 var { 1084 MAX_SAFE_COMPONENT_LENGTH, 1085 MAX_SAFE_BUILD_LENGTH, 1086 MAX_LENGTH 1087 } = require_constants(); 1088 var debug2 = require_debug(); 1089 exports = module2.exports = {}; 1090 var re = exports.re = []; 1091 var safeRe = exports.safeRe = []; 1092 var src = exports.src = []; 1093 var t = exports.t = {}; 1094 var R = 0; 1095 var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; 1096 var safeRegexReplacements = [ 1097 ["\\s", 1], 1098 ["\\d", MAX_LENGTH], 1099 [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] 1100 ]; 1101 var makeSafeRegex = (value) => { 1102 for (const [token, max] of safeRegexReplacements) { 1103 value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`); 1104 } 1105 return value; 1106 }; 1107 var createToken = (name, value, isGlobal) => { 1108 const safe = makeSafeRegex(value); 1109 const index = R++; 1110 debug2(name, index, value); 1111 t[name] = index; 1112 src[index] = value; 1113 re[index] = new RegExp(value, isGlobal ? "g" : void 0); 1114 safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); 1115 }; 1116 createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); 1117 createToken("NUMERICIDENTIFIERLOOSE", "\\d+"); 1118 createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); 1119 createToken("MAINVERSION", `(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`); 1120 createToken("MAINVERSIONLOOSE", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`); 1121 createToken("PRERELEASEIDENTIFIER", `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`); 1122 createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`); 1123 createToken("PRERELEASE", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); 1124 createToken("PRERELEASELOOSE", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); 1125 createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`); 1126 createToken("BUILD", `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); 1127 createToken("FULLPLAIN", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); 1128 createToken("FULL", `^${src[t.FULLPLAIN]}$`); 1129 createToken("LOOSEPLAIN", `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); 1130 createToken("LOOSE", `^${src[t.LOOSEPLAIN]}$`); 1131 createToken("GTLT", "((?:<|>)?=?)"); 1132 createToken("XRANGEIDENTIFIERLOOSE", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); 1133 createToken("XRANGEIDENTIFIER", `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); 1134 createToken("XRANGEPLAIN", `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`); 1135 createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`); 1136 createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); 1137 createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); 1138 createToken("COERCEPLAIN", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`); 1139 createToken("COERCE", `${src[t.COERCEPLAIN]}(?:$|[^\\d])`); 1140 createToken("COERCEFULL", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`); 1141 createToken("COERCERTL", src[t.COERCE], true); 1142 createToken("COERCERTLFULL", src[t.COERCEFULL], true); 1143 createToken("LONETILDE", "(?:~>?)"); 1144 createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true); 1145 exports.tildeTrimReplace = "$1~"; 1146 createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); 1147 createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); 1148 createToken("LONECARET", "(?:\\^)"); 1149 createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true); 1150 exports.caretTrimReplace = "$1^"; 1151 createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); 1152 createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); 1153 createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); 1154 createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); 1155 createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); 1156 exports.comparatorTrimReplace = "$1$2$3"; 1157 createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`); 1158 createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`); 1159 createToken("STAR", "(<|>)?=?\\s*\\*"); 1160 createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); 1161 createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); 1162 } 1163}); 1164 1165// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/parse-options.js 1166var require_parse_options = __commonJS({ 1167 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/parse-options.js"(exports, module2) { 1168 var looseOption = Object.freeze({ loose: true }); 1169 var emptyOpts = Object.freeze({}); 1170 var parseOptions = (options) => { 1171 if (!options) { 1172 return emptyOpts; 1173 } 1174 if (typeof options !== "object") { 1175 return looseOption; 1176 } 1177 return options; 1178 }; 1179 module2.exports = parseOptions; 1180 } 1181}); 1182 1183// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/identifiers.js 1184var require_identifiers = __commonJS({ 1185 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/internal/identifiers.js"(exports, module2) { 1186 var numeric = /^[0-9]+$/; 1187 var compareIdentifiers = (a, b) => { 1188 const anum = numeric.test(a); 1189 const bnum = numeric.test(b); 1190 if (anum && bnum) { 1191 a = +a; 1192 b = +b; 1193 } 1194 return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; 1195 }; 1196 var rcompareIdentifiers = (a, b) => compareIdentifiers(b, a); 1197 module2.exports = { 1198 compareIdentifiers, 1199 rcompareIdentifiers 1200 }; 1201 } 1202}); 1203 1204// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/classes/semver.js 1205var require_semver = __commonJS({ 1206 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/classes/semver.js"(exports, module2) { 1207 var debug2 = require_debug(); 1208 var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants(); 1209 var { safeRe: re, t } = require_re(); 1210 var parseOptions = require_parse_options(); 1211 var { compareIdentifiers } = require_identifiers(); 1212 var SemVer = class _SemVer { 1213 constructor(version2, options) { 1214 options = parseOptions(options); 1215 if (version2 instanceof _SemVer) { 1216 if (version2.loose === !!options.loose && version2.includePrerelease === !!options.includePrerelease) { 1217 return version2; 1218 } else { 1219 version2 = version2.version; 1220 } 1221 } else if (typeof version2 !== "string") { 1222 throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version2}".`); 1223 } 1224 if (version2.length > MAX_LENGTH) { 1225 throw new TypeError( 1226 `version is longer than ${MAX_LENGTH} characters` 1227 ); 1228 } 1229 debug2("SemVer", version2, options); 1230 this.options = options; 1231 this.loose = !!options.loose; 1232 this.includePrerelease = !!options.includePrerelease; 1233 const m = version2.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); 1234 if (!m) { 1235 throw new TypeError(`Invalid Version: ${version2}`); 1236 } 1237 this.raw = version2; 1238 this.major = +m[1]; 1239 this.minor = +m[2]; 1240 this.patch = +m[3]; 1241 if (this.major > MAX_SAFE_INTEGER || this.major < 0) { 1242 throw new TypeError("Invalid major version"); 1243 } 1244 if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { 1245 throw new TypeError("Invalid minor version"); 1246 } 1247 if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { 1248 throw new TypeError("Invalid patch version"); 1249 } 1250 if (!m[4]) { 1251 this.prerelease = []; 1252 } else { 1253 this.prerelease = m[4].split(".").map((id) => { 1254 if (/^[0-9]+$/.test(id)) { 1255 const num = +id; 1256 if (num >= 0 && num < MAX_SAFE_INTEGER) { 1257 return num; 1258 } 1259 } 1260 return id; 1261 }); 1262 } 1263 this.build = m[5] ? m[5].split(".") : []; 1264 this.format(); 1265 } 1266 format() { 1267 this.version = `${this.major}.${this.minor}.${this.patch}`; 1268 if (this.prerelease.length) { 1269 this.version += `-${this.prerelease.join(".")}`; 1270 } 1271 return this.version; 1272 } 1273 toString() { 1274 return this.version; 1275 } 1276 compare(other) { 1277 debug2("SemVer.compare", this.version, this.options, other); 1278 if (!(other instanceof _SemVer)) { 1279 if (typeof other === "string" && other === this.version) { 1280 return 0; 1281 } 1282 other = new _SemVer(other, this.options); 1283 } 1284 if (other.version === this.version) { 1285 return 0; 1286 } 1287 return this.compareMain(other) || this.comparePre(other); 1288 } 1289 compareMain(other) { 1290 if (!(other instanceof _SemVer)) { 1291 other = new _SemVer(other, this.options); 1292 } 1293 return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); 1294 } 1295 comparePre(other) { 1296 if (!(other instanceof _SemVer)) { 1297 other = new _SemVer(other, this.options); 1298 } 1299 if (this.prerelease.length && !other.prerelease.length) { 1300 return -1; 1301 } else if (!this.prerelease.length && other.prerelease.length) { 1302 return 1; 1303 } else if (!this.prerelease.length && !other.prerelease.length) { 1304 return 0; 1305 } 1306 let i = 0; 1307 do { 1308 const a = this.prerelease[i]; 1309 const b = other.prerelease[i]; 1310 debug2("prerelease compare", i, a, b); 1311 if (a === void 0 && b === void 0) { 1312 return 0; 1313 } else if (b === void 0) { 1314 return 1; 1315 } else if (a === void 0) { 1316 return -1; 1317 } else if (a === b) { 1318 continue; 1319 } else { 1320 return compareIdentifiers(a, b); 1321 } 1322 } while (++i); 1323 } 1324 compareBuild(other) { 1325 if (!(other instanceof _SemVer)) { 1326 other = new _SemVer(other, this.options); 1327 } 1328 let i = 0; 1329 do { 1330 const a = this.build[i]; 1331 const b = other.build[i]; 1332 debug2("prerelease compare", i, a, b); 1333 if (a === void 0 && b === void 0) { 1334 return 0; 1335 } else if (b === void 0) { 1336 return 1; 1337 } else if (a === void 0) { 1338 return -1; 1339 } else if (a === b) { 1340 continue; 1341 } else { 1342 return compareIdentifiers(a, b); 1343 } 1344 } while (++i); 1345 } 1346 // preminor will bump the version up to the next minor release, and immediately 1347 // down to pre-release. premajor and prepatch work the same way. 1348 inc(release, identifier, identifierBase) { 1349 switch (release) { 1350 case "premajor": 1351 this.prerelease.length = 0; 1352 this.patch = 0; 1353 this.minor = 0; 1354 this.major++; 1355 this.inc("pre", identifier, identifierBase); 1356 break; 1357 case "preminor": 1358 this.prerelease.length = 0; 1359 this.patch = 0; 1360 this.minor++; 1361 this.inc("pre", identifier, identifierBase); 1362 break; 1363 case "prepatch": 1364 this.prerelease.length = 0; 1365 this.inc("patch", identifier, identifierBase); 1366 this.inc("pre", identifier, identifierBase); 1367 break; 1368 case "prerelease": 1369 if (this.prerelease.length === 0) { 1370 this.inc("patch", identifier, identifierBase); 1371 } 1372 this.inc("pre", identifier, identifierBase); 1373 break; 1374 case "major": 1375 if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { 1376 this.major++; 1377 } 1378 this.minor = 0; 1379 this.patch = 0; 1380 this.prerelease = []; 1381 break; 1382 case "minor": 1383 if (this.patch !== 0 || this.prerelease.length === 0) { 1384 this.minor++; 1385 } 1386 this.patch = 0; 1387 this.prerelease = []; 1388 break; 1389 case "patch": 1390 if (this.prerelease.length === 0) { 1391 this.patch++; 1392 } 1393 this.prerelease = []; 1394 break; 1395 case "pre": { 1396 const base = Number(identifierBase) ? 1 : 0; 1397 if (!identifier && identifierBase === false) { 1398 throw new Error("invalid increment argument: identifier is empty"); 1399 } 1400 if (this.prerelease.length === 0) { 1401 this.prerelease = [base]; 1402 } else { 1403 let i = this.prerelease.length; 1404 while (--i >= 0) { 1405 if (typeof this.prerelease[i] === "number") { 1406 this.prerelease[i]++; 1407 i = -2; 1408 } 1409 } 1410 if (i === -1) { 1411 if (identifier === this.prerelease.join(".") && identifierBase === false) { 1412 throw new Error("invalid increment argument: identifier already exists"); 1413 } 1414 this.prerelease.push(base); 1415 } 1416 } 1417 if (identifier) { 1418 let prerelease = [identifier, base]; 1419 if (identifierBase === false) { 1420 prerelease = [identifier]; 1421 } 1422 if (compareIdentifiers(this.prerelease[0], identifier) === 0) { 1423 if (isNaN(this.prerelease[1])) { 1424 this.prerelease = prerelease; 1425 } 1426 } else { 1427 this.prerelease = prerelease; 1428 } 1429 } 1430 break; 1431 } 1432 default: 1433 throw new Error(`invalid increment argument: ${release}`); 1434 } 1435 this.raw = this.format(); 1436 if (this.build.length) { 1437 this.raw += `+${this.build.join(".")}`; 1438 } 1439 return this; 1440 } 1441 }; 1442 module2.exports = SemVer; 1443 } 1444}); 1445 1446// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/parse.js 1447var require_parse = __commonJS({ 1448 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/parse.js"(exports, module2) { 1449 var SemVer = require_semver(); 1450 var parse = (version2, options, throwErrors = false) => { 1451 if (version2 instanceof SemVer) { 1452 return version2; 1453 } 1454 try { 1455 return new SemVer(version2, options); 1456 } catch (er) { 1457 if (!throwErrors) { 1458 return null; 1459 } 1460 throw er; 1461 } 1462 }; 1463 module2.exports = parse; 1464 } 1465}); 1466 1467// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/valid.js 1468var require_valid = __commonJS({ 1469 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/valid.js"(exports, module2) { 1470 var parse = require_parse(); 1471 var valid = (version2, options) => { 1472 const v = parse(version2, options); 1473 return v ? v.version : null; 1474 }; 1475 module2.exports = valid; 1476 } 1477}); 1478 1479// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/clean.js 1480var require_clean = __commonJS({ 1481 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/clean.js"(exports, module2) { 1482 var parse = require_parse(); 1483 var clean = (version2, options) => { 1484 const s = parse(version2.trim().replace(/^[=v]+/, ""), options); 1485 return s ? s.version : null; 1486 }; 1487 module2.exports = clean; 1488 } 1489}); 1490 1491// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/inc.js 1492var require_inc = __commonJS({ 1493 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/inc.js"(exports, module2) { 1494 var SemVer = require_semver(); 1495 var inc = (version2, release, options, identifier, identifierBase) => { 1496 if (typeof options === "string") { 1497 identifierBase = identifier; 1498 identifier = options; 1499 options = void 0; 1500 } 1501 try { 1502 return new SemVer( 1503 version2 instanceof SemVer ? version2.version : version2, 1504 options 1505 ).inc(release, identifier, identifierBase).version; 1506 } catch (er) { 1507 return null; 1508 } 1509 }; 1510 module2.exports = inc; 1511 } 1512}); 1513 1514// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/diff.js 1515var require_diff = __commonJS({ 1516 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/diff.js"(exports, module2) { 1517 var parse = require_parse(); 1518 var diff = (version1, version2) => { 1519 const v1 = parse(version1, null, true); 1520 const v2 = parse(version2, null, true); 1521 const comparison = v1.compare(v2); 1522 if (comparison === 0) { 1523 return null; 1524 } 1525 const v1Higher = comparison > 0; 1526 const highVersion = v1Higher ? v1 : v2; 1527 const lowVersion = v1Higher ? v2 : v1; 1528 const highHasPre = !!highVersion.prerelease.length; 1529 const lowHasPre = !!lowVersion.prerelease.length; 1530 if (lowHasPre && !highHasPre) { 1531 if (!lowVersion.patch && !lowVersion.minor) { 1532 return "major"; 1533 } 1534 if (highVersion.patch) { 1535 return "patch"; 1536 } 1537 if (highVersion.minor) { 1538 return "minor"; 1539 } 1540 return "major"; 1541 } 1542 const prefix = highHasPre ? "pre" : ""; 1543 if (v1.major !== v2.major) { 1544 return prefix + "major"; 1545 } 1546 if (v1.minor !== v2.minor) { 1547 return prefix + "minor"; 1548 } 1549 if (v1.patch !== v2.patch) { 1550 return prefix + "patch"; 1551 } 1552 return "prerelease"; 1553 }; 1554 module2.exports = diff; 1555 } 1556}); 1557 1558// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/major.js 1559var require_major = __commonJS({ 1560 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/major.js"(exports, module2) { 1561 var SemVer = require_semver(); 1562 var major = (a, loose) => new SemVer(a, loose).major; 1563 module2.exports = major; 1564 } 1565}); 1566 1567// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/minor.js 1568var require_minor = __commonJS({ 1569 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/minor.js"(exports, module2) { 1570 var SemVer = require_semver(); 1571 var minor = (a, loose) => new SemVer(a, loose).minor; 1572 module2.exports = minor; 1573 } 1574}); 1575 1576// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/patch.js 1577var require_patch = __commonJS({ 1578 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/patch.js"(exports, module2) { 1579 var SemVer = require_semver(); 1580 var patch = (a, loose) => new SemVer(a, loose).patch; 1581 module2.exports = patch; 1582 } 1583}); 1584 1585// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/prerelease.js 1586var require_prerelease = __commonJS({ 1587 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/prerelease.js"(exports, module2) { 1588 var parse = require_parse(); 1589 var prerelease = (version2, options) => { 1590 const parsed = parse(version2, options); 1591 return parsed && parsed.prerelease.length ? parsed.prerelease : null; 1592 }; 1593 module2.exports = prerelease; 1594 } 1595}); 1596 1597// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/compare.js 1598var require_compare = __commonJS({ 1599 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/compare.js"(exports, module2) { 1600 var SemVer = require_semver(); 1601 var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)); 1602 module2.exports = compare; 1603 } 1604}); 1605 1606// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/rcompare.js 1607var require_rcompare = __commonJS({ 1608 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/rcompare.js"(exports, module2) { 1609 var compare = require_compare(); 1610 var rcompare = (a, b, loose) => compare(b, a, loose); 1611 module2.exports = rcompare; 1612 } 1613}); 1614 1615// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/compare-loose.js 1616var require_compare_loose = __commonJS({ 1617 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/compare-loose.js"(exports, module2) { 1618 var compare = require_compare(); 1619 var compareLoose = (a, b) => compare(a, b, true); 1620 module2.exports = compareLoose; 1621 } 1622}); 1623 1624// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/compare-build.js 1625var require_compare_build = __commonJS({ 1626 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/compare-build.js"(exports, module2) { 1627 var SemVer = require_semver(); 1628 var compareBuild = (a, b, loose) => { 1629 const versionA = new SemVer(a, loose); 1630 const versionB = new SemVer(b, loose); 1631 return versionA.compare(versionB) || versionA.compareBuild(versionB); 1632 }; 1633 module2.exports = compareBuild; 1634 } 1635}); 1636 1637// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/sort.js 1638var require_sort = __commonJS({ 1639 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/sort.js"(exports, module2) { 1640 var compareBuild = require_compare_build(); 1641 var sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)); 1642 module2.exports = sort; 1643 } 1644}); 1645 1646// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/rsort.js 1647var require_rsort = __commonJS({ 1648 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/rsort.js"(exports, module2) { 1649 var compareBuild = require_compare_build(); 1650 var rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); 1651 module2.exports = rsort; 1652 } 1653}); 1654 1655// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/gt.js 1656var require_gt = __commonJS({ 1657 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/gt.js"(exports, module2) { 1658 var compare = require_compare(); 1659 var gt = (a, b, loose) => compare(a, b, loose) > 0; 1660 module2.exports = gt; 1661 } 1662}); 1663 1664// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/lt.js 1665var require_lt = __commonJS({ 1666 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/lt.js"(exports, module2) { 1667 var compare = require_compare(); 1668 var lt = (a, b, loose) => compare(a, b, loose) < 0; 1669 module2.exports = lt; 1670 } 1671}); 1672 1673// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/eq.js 1674var require_eq = __commonJS({ 1675 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/eq.js"(exports, module2) { 1676 var compare = require_compare(); 1677 var eq = (a, b, loose) => compare(a, b, loose) === 0; 1678 module2.exports = eq; 1679 } 1680}); 1681 1682// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/neq.js 1683var require_neq = __commonJS({ 1684 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/neq.js"(exports, module2) { 1685 var compare = require_compare(); 1686 var neq = (a, b, loose) => compare(a, b, loose) !== 0; 1687 module2.exports = neq; 1688 } 1689}); 1690 1691// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/gte.js 1692var require_gte = __commonJS({ 1693 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/gte.js"(exports, module2) { 1694 var compare = require_compare(); 1695 var gte = (a, b, loose) => compare(a, b, loose) >= 0; 1696 module2.exports = gte; 1697 } 1698}); 1699 1700// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/lte.js 1701var require_lte = __commonJS({ 1702 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/lte.js"(exports, module2) { 1703 var compare = require_compare(); 1704 var lte = (a, b, loose) => compare(a, b, loose) <= 0; 1705 module2.exports = lte; 1706 } 1707}); 1708 1709// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/cmp.js 1710var require_cmp = __commonJS({ 1711 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/cmp.js"(exports, module2) { 1712 var eq = require_eq(); 1713 var neq = require_neq(); 1714 var gt = require_gt(); 1715 var gte = require_gte(); 1716 var lt = require_lt(); 1717 var lte = require_lte(); 1718 var cmp = (a, op, b, loose) => { 1719 switch (op) { 1720 case "===": 1721 if (typeof a === "object") { 1722 a = a.version; 1723 } 1724 if (typeof b === "object") { 1725 b = b.version; 1726 } 1727 return a === b; 1728 case "!==": 1729 if (typeof a === "object") { 1730 a = a.version; 1731 } 1732 if (typeof b === "object") { 1733 b = b.version; 1734 } 1735 return a !== b; 1736 case "": 1737 case "=": 1738 case "==": 1739 return eq(a, b, loose); 1740 case "!=": 1741 return neq(a, b, loose); 1742 case ">": 1743 return gt(a, b, loose); 1744 case ">=": 1745 return gte(a, b, loose); 1746 case "<": 1747 return lt(a, b, loose); 1748 case "<=": 1749 return lte(a, b, loose); 1750 default: 1751 throw new TypeError(`Invalid operator: ${op}`); 1752 } 1753 }; 1754 module2.exports = cmp; 1755 } 1756}); 1757 1758// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/coerce.js 1759var require_coerce = __commonJS({ 1760 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/coerce.js"(exports, module2) { 1761 var SemVer = require_semver(); 1762 var parse = require_parse(); 1763 var { safeRe: re, t } = require_re(); 1764 var coerce = (version2, options) => { 1765 if (version2 instanceof SemVer) { 1766 return version2; 1767 } 1768 if (typeof version2 === "number") { 1769 version2 = String(version2); 1770 } 1771 if (typeof version2 !== "string") { 1772 return null; 1773 } 1774 options = options || {}; 1775 let match = null; 1776 if (!options.rtl) { 1777 match = version2.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]); 1778 } else { 1779 const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]; 1780 let next; 1781 while ((next = coerceRtlRegex.exec(version2)) && (!match || match.index + match[0].length !== version2.length)) { 1782 if (!match || next.index + next[0].length !== match.index + match[0].length) { 1783 match = next; 1784 } 1785 coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; 1786 } 1787 coerceRtlRegex.lastIndex = -1; 1788 } 1789 if (match === null) { 1790 return null; 1791 } 1792 const major = match[2]; 1793 const minor = match[3] || "0"; 1794 const patch = match[4] || "0"; 1795 const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ""; 1796 const build = options.includePrerelease && match[6] ? `+${match[6]}` : ""; 1797 return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options); 1798 }; 1799 module2.exports = coerce; 1800 } 1801}); 1802 1803// .yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip/node_modules/yallist/iterator.js 1804var require_iterator = __commonJS({ 1805 ".yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip/node_modules/yallist/iterator.js"(exports, module2) { 1806 "use strict"; 1807 module2.exports = function(Yallist) { 1808 Yallist.prototype[Symbol.iterator] = function* () { 1809 for (let walker = this.head; walker; walker = walker.next) { 1810 yield walker.value; 1811 } 1812 }; 1813 }; 1814 } 1815}); 1816 1817// .yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip/node_modules/yallist/yallist.js 1818var require_yallist = __commonJS({ 1819 ".yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip/node_modules/yallist/yallist.js"(exports, module2) { 1820 "use strict"; 1821 module2.exports = Yallist; 1822 Yallist.Node = Node; 1823 Yallist.create = Yallist; 1824 function Yallist(list) { 1825 var self2 = this; 1826 if (!(self2 instanceof Yallist)) { 1827 self2 = new Yallist(); 1828 } 1829 self2.tail = null; 1830 self2.head = null; 1831 self2.length = 0; 1832 if (list && typeof list.forEach === "function") { 1833 list.forEach(function(item) { 1834 self2.push(item); 1835 }); 1836 } else if (arguments.length > 0) { 1837 for (var i = 0, l = arguments.length; i < l; i++) { 1838 self2.push(arguments[i]); 1839 } 1840 } 1841 return self2; 1842 } 1843 Yallist.prototype.removeNode = function(node) { 1844 if (node.list !== this) { 1845 throw new Error("removing node which does not belong to this list"); 1846 } 1847 var next = node.next; 1848 var prev = node.prev; 1849 if (next) { 1850 next.prev = prev; 1851 } 1852 if (prev) { 1853 prev.next = next; 1854 } 1855 if (node === this.head) { 1856 this.head = next; 1857 } 1858 if (node === this.tail) { 1859 this.tail = prev; 1860 } 1861 node.list.length--; 1862 node.next = null; 1863 node.prev = null; 1864 node.list = null; 1865 return next; 1866 }; 1867 Yallist.prototype.unshiftNode = function(node) { 1868 if (node === this.head) { 1869 return; 1870 } 1871 if (node.list) { 1872 node.list.removeNode(node); 1873 } 1874 var head = this.head; 1875 node.list = this; 1876 node.next = head; 1877 if (head) { 1878 head.prev = node; 1879 } 1880 this.head = node; 1881 if (!this.tail) { 1882 this.tail = node; 1883 } 1884 this.length++; 1885 }; 1886 Yallist.prototype.pushNode = function(node) { 1887 if (node === this.tail) { 1888 return; 1889 } 1890 if (node.list) { 1891 node.list.removeNode(node); 1892 } 1893 var tail = this.tail; 1894 node.list = this; 1895 node.prev = tail; 1896 if (tail) { 1897 tail.next = node; 1898 } 1899 this.tail = node; 1900 if (!this.head) { 1901 this.head = node; 1902 } 1903 this.length++; 1904 }; 1905 Yallist.prototype.push = function() { 1906 for (var i = 0, l = arguments.length; i < l; i++) { 1907 push(this, arguments[i]); 1908 } 1909 return this.length; 1910 }; 1911 Yallist.prototype.unshift = function() { 1912 for (var i = 0, l = arguments.length; i < l; i++) { 1913 unshift(this, arguments[i]); 1914 } 1915 return this.length; 1916 }; 1917 Yallist.prototype.pop = function() { 1918 if (!this.tail) { 1919 return void 0; 1920 } 1921 var res = this.tail.value; 1922 this.tail = this.tail.prev; 1923 if (this.tail) { 1924 this.tail.next = null; 1925 } else { 1926 this.head = null; 1927 } 1928 this.length--; 1929 return res; 1930 }; 1931 Yallist.prototype.shift = function() { 1932 if (!this.head) { 1933 return void 0; 1934 } 1935 var res = this.head.value; 1936 this.head = this.head.next; 1937 if (this.head) { 1938 this.head.prev = null; 1939 } else { 1940 this.tail = null; 1941 } 1942 this.length--; 1943 return res; 1944 }; 1945 Yallist.prototype.forEach = function(fn2, thisp) { 1946 thisp = thisp || this; 1947 for (var walker = this.head, i = 0; walker !== null; i++) { 1948 fn2.call(thisp, walker.value, i, this); 1949 walker = walker.next; 1950 } 1951 }; 1952 Yallist.prototype.forEachReverse = function(fn2, thisp) { 1953 thisp = thisp || this; 1954 for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { 1955 fn2.call(thisp, walker.value, i, this); 1956 walker = walker.prev; 1957 } 1958 }; 1959 Yallist.prototype.get = function(n) { 1960 for (var i = 0, walker = this.head; walker !== null && i < n; i++) { 1961 walker = walker.next; 1962 } 1963 if (i === n && walker !== null) { 1964 return walker.value; 1965 } 1966 }; 1967 Yallist.prototype.getReverse = function(n) { 1968 for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { 1969 walker = walker.prev; 1970 } 1971 if (i === n && walker !== null) { 1972 return walker.value; 1973 } 1974 }; 1975 Yallist.prototype.map = function(fn2, thisp) { 1976 thisp = thisp || this; 1977 var res = new Yallist(); 1978 for (var walker = this.head; walker !== null; ) { 1979 res.push(fn2.call(thisp, walker.value, this)); 1980 walker = walker.next; 1981 } 1982 return res; 1983 }; 1984 Yallist.prototype.mapReverse = function(fn2, thisp) { 1985 thisp = thisp || this; 1986 var res = new Yallist(); 1987 for (var walker = this.tail; walker !== null; ) { 1988 res.push(fn2.call(thisp, walker.value, this)); 1989 walker = walker.prev; 1990 } 1991 return res; 1992 }; 1993 Yallist.prototype.reduce = function(fn2, initial) { 1994 var acc; 1995 var walker = this.head; 1996 if (arguments.length > 1) { 1997 acc = initial; 1998 } else if (this.head) { 1999 walker = this.head.next; 2000 acc = this.head.value; 2001 } else { 2002 throw new TypeError("Reduce of empty list with no initial value"); 2003 } 2004 for (var i = 0; walker !== null; i++) { 2005 acc = fn2(acc, walker.value, i); 2006 walker = walker.next; 2007 } 2008 return acc; 2009 }; 2010 Yallist.prototype.reduceReverse = function(fn2, initial) { 2011 var acc; 2012 var walker = this.tail; 2013 if (arguments.length > 1) { 2014 acc = initial; 2015 } else if (this.tail) { 2016 walker = this.tail.prev; 2017 acc = this.tail.value; 2018 } else { 2019 throw new TypeError("Reduce of empty list with no initial value"); 2020 } 2021 for (var i = this.length - 1; walker !== null; i--) { 2022 acc = fn2(acc, walker.value, i); 2023 walker = walker.prev; 2024 } 2025 return acc; 2026 }; 2027 Yallist.prototype.toArray = function() { 2028 var arr = new Array(this.length); 2029 for (var i = 0, walker = this.head; walker !== null; i++) { 2030 arr[i] = walker.value; 2031 walker = walker.next; 2032 } 2033 return arr; 2034 }; 2035 Yallist.prototype.toArrayReverse = function() { 2036 var arr = new Array(this.length); 2037 for (var i = 0, walker = this.tail; walker !== null; i++) { 2038 arr[i] = walker.value; 2039 walker = walker.prev; 2040 } 2041 return arr; 2042 }; 2043 Yallist.prototype.slice = function(from, to) { 2044 to = to || this.length; 2045 if (to < 0) { 2046 to += this.length; 2047 } 2048 from = from || 0; 2049 if (from < 0) { 2050 from += this.length; 2051 } 2052 var ret = new Yallist(); 2053 if (to < from || to < 0) { 2054 return ret; 2055 } 2056 if (from < 0) { 2057 from = 0; 2058 } 2059 if (to > this.length) { 2060 to = this.length; 2061 } 2062 for (var i = 0, walker = this.head; walker !== null && i < from; i++) { 2063 walker = walker.next; 2064 } 2065 for (; walker !== null && i < to; i++, walker = walker.next) { 2066 ret.push(walker.value); 2067 } 2068 return ret; 2069 }; 2070 Yallist.prototype.sliceReverse = function(from, to) { 2071 to = to || this.length; 2072 if (to < 0) { 2073 to += this.length; 2074 } 2075 from = from || 0; 2076 if (from < 0) { 2077 from += this.length; 2078 } 2079 var ret = new Yallist(); 2080 if (to < from || to < 0) { 2081 return ret; 2082 } 2083 if (from < 0) { 2084 from = 0; 2085 } 2086 if (to > this.length) { 2087 to = this.length; 2088 } 2089 for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { 2090 walker = walker.prev; 2091 } 2092 for (; walker !== null && i > from; i--, walker = walker.prev) { 2093 ret.push(walker.value); 2094 } 2095 return ret; 2096 }; 2097 Yallist.prototype.splice = function(start, deleteCount, ...nodes) { 2098 if (start > this.length) { 2099 start = this.length - 1; 2100 } 2101 if (start < 0) { 2102 start = this.length + start; 2103 } 2104 for (var i = 0, walker = this.head; walker !== null && i < start; i++) { 2105 walker = walker.next; 2106 } 2107 var ret = []; 2108 for (var i = 0; walker && i < deleteCount; i++) { 2109 ret.push(walker.value); 2110 walker = this.removeNode(walker); 2111 } 2112 if (walker === null) { 2113 walker = this.tail; 2114 } 2115 if (walker !== this.head && walker !== this.tail) { 2116 walker = walker.prev; 2117 } 2118 for (var i = 0; i < nodes.length; i++) { 2119 walker = insert(this, walker, nodes[i]); 2120 } 2121 return ret; 2122 }; 2123 Yallist.prototype.reverse = function() { 2124 var head = this.head; 2125 var tail = this.tail; 2126 for (var walker = head; walker !== null; walker = walker.prev) { 2127 var p = walker.prev; 2128 walker.prev = walker.next; 2129 walker.next = p; 2130 } 2131 this.head = tail; 2132 this.tail = head; 2133 return this; 2134 }; 2135 function insert(self2, node, value) { 2136 var inserted = node === self2.head ? new Node(value, null, node, self2) : new Node(value, node, node.next, self2); 2137 if (inserted.next === null) { 2138 self2.tail = inserted; 2139 } 2140 if (inserted.prev === null) { 2141 self2.head = inserted; 2142 } 2143 self2.length++; 2144 return inserted; 2145 } 2146 function push(self2, item) { 2147 self2.tail = new Node(item, self2.tail, null, self2); 2148 if (!self2.head) { 2149 self2.head = self2.tail; 2150 } 2151 self2.length++; 2152 } 2153 function unshift(self2, item) { 2154 self2.head = new Node(item, null, self2.head, self2); 2155 if (!self2.tail) { 2156 self2.tail = self2.head; 2157 } 2158 self2.length++; 2159 } 2160 function Node(value, prev, next, list) { 2161 if (!(this instanceof Node)) { 2162 return new Node(value, prev, next, list); 2163 } 2164 this.list = list; 2165 this.value = value; 2166 if (prev) { 2167 prev.next = this; 2168 this.prev = prev; 2169 } else { 2170 this.prev = null; 2171 } 2172 if (next) { 2173 next.prev = this; 2174 this.next = next; 2175 } else { 2176 this.next = null; 2177 } 2178 } 2179 try { 2180 require_iterator()(Yallist); 2181 } catch (er) { 2182 } 2183 } 2184}); 2185 2186// .yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-cb53e58278.zip/node_modules/lru-cache/index.js 2187var require_lru_cache = __commonJS({ 2188 ".yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-cb53e58278.zip/node_modules/lru-cache/index.js"(exports, module2) { 2189 "use strict"; 2190 var Yallist = require_yallist(); 2191 var MAX = Symbol("max"); 2192 var LENGTH = Symbol("length"); 2193 var LENGTH_CALCULATOR = Symbol("lengthCalculator"); 2194 var ALLOW_STALE = Symbol("allowStale"); 2195 var MAX_AGE = Symbol("maxAge"); 2196 var DISPOSE = Symbol("dispose"); 2197 var NO_DISPOSE_ON_SET = Symbol("noDisposeOnSet"); 2198 var LRU_LIST = Symbol("lruList"); 2199 var CACHE = Symbol("cache"); 2200 var UPDATE_AGE_ON_GET = Symbol("updateAgeOnGet"); 2201 var naiveLength = () => 1; 2202 var LRUCache = class { 2203 constructor(options) { 2204 if (typeof options === "number") 2205 options = { max: options }; 2206 if (!options) 2207 options = {}; 2208 if (options.max && (typeof options.max !== "number" || options.max < 0)) 2209 throw new TypeError("max must be a non-negative number"); 2210 const max = this[MAX] = options.max || Infinity; 2211 const lc = options.length || naiveLength; 2212 this[LENGTH_CALCULATOR] = typeof lc !== "function" ? naiveLength : lc; 2213 this[ALLOW_STALE] = options.stale || false; 2214 if (options.maxAge && typeof options.maxAge !== "number") 2215 throw new TypeError("maxAge must be a number"); 2216 this[MAX_AGE] = options.maxAge || 0; 2217 this[DISPOSE] = options.dispose; 2218 this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; 2219 this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false; 2220 this.reset(); 2221 } 2222 // resize the cache when the max changes. 2223 set max(mL) { 2224 if (typeof mL !== "number" || mL < 0) 2225 throw new TypeError("max must be a non-negative number"); 2226 this[MAX] = mL || Infinity; 2227 trim(this); 2228 } 2229 get max() { 2230 return this[MAX]; 2231 } 2232 set allowStale(allowStale) { 2233 this[ALLOW_STALE] = !!allowStale; 2234 } 2235 get allowStale() { 2236 return this[ALLOW_STALE]; 2237 } 2238 set maxAge(mA) { 2239 if (typeof mA !== "number") 2240 throw new TypeError("maxAge must be a non-negative number"); 2241 this[MAX_AGE] = mA; 2242 trim(this); 2243 } 2244 get maxAge() { 2245 return this[MAX_AGE]; 2246 } 2247 // resize the cache when the lengthCalculator changes. 2248 set lengthCalculator(lC) { 2249 if (typeof lC !== "function") 2250 lC = naiveLength; 2251 if (lC !== this[LENGTH_CALCULATOR]) { 2252 this[LENGTH_CALCULATOR] = lC; 2253 this[LENGTH] = 0; 2254 this[LRU_LIST].forEach((hit) => { 2255 hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); 2256 this[LENGTH] += hit.length; 2257 }); 2258 } 2259 trim(this); 2260 } 2261 get lengthCalculator() { 2262 return this[LENGTH_CALCULATOR]; 2263 } 2264 get length() { 2265 return this[LENGTH]; 2266 } 2267 get itemCount() { 2268 return this[LRU_LIST].length; 2269 } 2270 rforEach(fn2, thisp) { 2271 thisp = thisp || this; 2272 for (let walker = this[LRU_LIST].tail; walker !== null; ) { 2273 const prev = walker.prev; 2274 forEachStep(this, fn2, walker, thisp); 2275 walker = prev; 2276 } 2277 } 2278 forEach(fn2, thisp) { 2279 thisp = thisp || this; 2280 for (let walker = this[LRU_LIST].head; walker !== null; ) { 2281 const next = walker.next; 2282 forEachStep(this, fn2, walker, thisp); 2283 walker = next; 2284 } 2285 } 2286 keys() { 2287 return this[LRU_LIST].toArray().map((k) => k.key); 2288 } 2289 values() { 2290 return this[LRU_LIST].toArray().map((k) => k.value); 2291 } 2292 reset() { 2293 if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { 2294 this[LRU_LIST].forEach((hit) => this[DISPOSE](hit.key, hit.value)); 2295 } 2296 this[CACHE] = /* @__PURE__ */ new Map(); 2297 this[LRU_LIST] = new Yallist(); 2298 this[LENGTH] = 0; 2299 } 2300 dump() { 2301 return this[LRU_LIST].map((hit) => isStale(this, hit) ? false : { 2302 k: hit.key, 2303 v: hit.value, 2304 e: hit.now + (hit.maxAge || 0) 2305 }).toArray().filter((h) => h); 2306 } 2307 dumpLru() { 2308 return this[LRU_LIST]; 2309 } 2310 set(key, value, maxAge) { 2311 maxAge = maxAge || this[MAX_AGE]; 2312 if (maxAge && typeof maxAge !== "number") 2313 throw new TypeError("maxAge must be a number"); 2314 const now = maxAge ? Date.now() : 0; 2315 const len = this[LENGTH_CALCULATOR](value, key); 2316 if (this[CACHE].has(key)) { 2317 if (len > this[MAX]) { 2318 del(this, this[CACHE].get(key)); 2319 return false; 2320 } 2321 const node = this[CACHE].get(key); 2322 const item = node.value; 2323 if (this[DISPOSE]) { 2324 if (!this[NO_DISPOSE_ON_SET]) 2325 this[DISPOSE](key, item.value); 2326 } 2327 item.now = now; 2328 item.maxAge = maxAge; 2329 item.value = value; 2330 this[LENGTH] += len - item.length; 2331 item.length = len; 2332 this.get(key); 2333 trim(this); 2334 return true; 2335 } 2336 const hit = new Entry(key, value, len, now, maxAge); 2337 if (hit.length > this[MAX]) { 2338 if (this[DISPOSE]) 2339 this[DISPOSE](key, value); 2340 return false; 2341 } 2342 this[LENGTH] += hit.length; 2343 this[LRU_LIST].unshift(hit); 2344 this[CACHE].set(key, this[LRU_LIST].head); 2345 trim(this); 2346 return true; 2347 } 2348 has(key) { 2349 if (!this[CACHE].has(key)) 2350 return false; 2351 const hit = this[CACHE].get(key).value; 2352 return !isStale(this, hit); 2353 } 2354 get(key) { 2355 return get(this, key, true); 2356 } 2357 peek(key) { 2358 return get(this, key, false); 2359 } 2360 pop() { 2361 const node = this[LRU_LIST].tail; 2362 if (!node) 2363 return null; 2364 del(this, node); 2365 return node.value; 2366 } 2367 del(key) { 2368 del(this, this[CACHE].get(key)); 2369 } 2370 load(arr) { 2371 this.reset(); 2372 const now = Date.now(); 2373 for (let l = arr.length - 1; l >= 0; l--) { 2374 const hit = arr[l]; 2375 const expiresAt = hit.e || 0; 2376 if (expiresAt === 0) 2377 this.set(hit.k, hit.v); 2378 else { 2379 const maxAge = expiresAt - now; 2380 if (maxAge > 0) { 2381 this.set(hit.k, hit.v, maxAge); 2382 } 2383 } 2384 } 2385 } 2386 prune() { 2387 this[CACHE].forEach((value, key) => get(this, key, false)); 2388 } 2389 }; 2390 var get = (self2, key, doUse) => { 2391 const node = self2[CACHE].get(key); 2392 if (node) { 2393 const hit = node.value; 2394 if (isStale(self2, hit)) { 2395 del(self2, node); 2396 if (!self2[ALLOW_STALE]) 2397 return void 0; 2398 } else { 2399 if (doUse) { 2400 if (self2[UPDATE_AGE_ON_GET]) 2401 node.value.now = Date.now(); 2402 self2[LRU_LIST].unshiftNode(node); 2403 } 2404 } 2405 return hit.value; 2406 } 2407 }; 2408 var isStale = (self2, hit) => { 2409 if (!hit || !hit.maxAge && !self2[MAX_AGE]) 2410 return false; 2411 const diff = Date.now() - hit.now; 2412 return hit.maxAge ? diff > hit.maxAge : self2[MAX_AGE] && diff > self2[MAX_AGE]; 2413 }; 2414 var trim = (self2) => { 2415 if (self2[LENGTH] > self2[MAX]) { 2416 for (let walker = self2[LRU_LIST].tail; self2[LENGTH] > self2[MAX] && walker !== null; ) { 2417 const prev = walker.prev; 2418 del(self2, walker); 2419 walker = prev; 2420 } 2421 } 2422 }; 2423 var del = (self2, node) => { 2424 if (node) { 2425 const hit = node.value; 2426 if (self2[DISPOSE]) 2427 self2[DISPOSE](hit.key, hit.value); 2428 self2[LENGTH] -= hit.length; 2429 self2[CACHE].delete(hit.key); 2430 self2[LRU_LIST].removeNode(node); 2431 } 2432 }; 2433 var Entry = class { 2434 constructor(key, value, length, now, maxAge) { 2435 this.key = key; 2436 this.value = value; 2437 this.length = length; 2438 this.now = now; 2439 this.maxAge = maxAge || 0; 2440 } 2441 }; 2442 var forEachStep = (self2, fn2, node, thisp) => { 2443 let hit = node.value; 2444 if (isStale(self2, hit)) { 2445 del(self2, node); 2446 if (!self2[ALLOW_STALE]) 2447 hit = void 0; 2448 } 2449 if (hit) 2450 fn2.call(thisp, hit.value, hit.key, self2); 2451 }; 2452 module2.exports = LRUCache; 2453 } 2454}); 2455 2456// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/classes/range.js 2457var require_range = __commonJS({ 2458 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/classes/range.js"(exports, module2) { 2459 var Range = class _Range { 2460 constructor(range, options) { 2461 options = parseOptions(options); 2462 if (range instanceof _Range) { 2463 if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { 2464 return range; 2465 } else { 2466 return new _Range(range.raw, options); 2467 } 2468 } 2469 if (range instanceof Comparator) { 2470 this.raw = range.value; 2471 this.set = [[range]]; 2472 this.format(); 2473 return this; 2474 } 2475 this.options = options; 2476 this.loose = !!options.loose; 2477 this.includePrerelease = !!options.includePrerelease; 2478 this.raw = range.trim().split(/\s+/).join(" "); 2479 this.set = this.raw.split("||").map((r) => this.parseRange(r.trim())).filter((c) => c.length); 2480 if (!this.set.length) { 2481 throw new TypeError(`Invalid SemVer Range: ${this.raw}`); 2482 } 2483 if (this.set.length > 1) { 2484 const first = this.set[0]; 2485 this.set = this.set.filter((c) => !isNullSet(c[0])); 2486 if (this.set.length === 0) { 2487 this.set = [first]; 2488 } else if (this.set.length > 1) { 2489 for (const c of this.set) { 2490 if (c.length === 1 && isAny(c[0])) { 2491 this.set = [c]; 2492 break; 2493 } 2494 } 2495 } 2496 } 2497 this.format(); 2498 } 2499 format() { 2500 this.range = this.set.map((comps) => comps.join(" ").trim()).join("||").trim(); 2501 return this.range; 2502 } 2503 toString() { 2504 return this.range; 2505 } 2506 parseRange(range) { 2507 const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE); 2508 const memoKey = memoOpts + ":" + range; 2509 const cached = cache.get(memoKey); 2510 if (cached) { 2511 return cached; 2512 } 2513 const loose = this.options.loose; 2514 const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; 2515 range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); 2516 debug2("hyphen replace", range); 2517 range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); 2518 debug2("comparator trim", range); 2519 range = range.replace(re[t.TILDETRIM], tildeTrimReplace); 2520 debug2("tilde trim", range); 2521 range = range.replace(re[t.CARETTRIM], caretTrimReplace); 2522 debug2("caret trim", range); 2523 let rangeList = range.split(" ").map((comp) => parseComparator(comp, this.options)).join(" ").split(/\s+/).map((comp) => replaceGTE0(comp, this.options)); 2524 if (loose) { 2525 rangeList = rangeList.filter((comp) => { 2526 debug2("loose invalid filter", comp, this.options); 2527 return !!comp.match(re[t.COMPARATORLOOSE]); 2528 }); 2529 } 2530 debug2("range list", rangeList); 2531 const rangeMap = /* @__PURE__ */ new Map(); 2532 const comparators = rangeList.map((comp) => new Comparator(comp, this.options)); 2533 for (const comp of comparators) { 2534 if (isNullSet(comp)) { 2535 return [comp]; 2536 } 2537 rangeMap.set(comp.value, comp); 2538 } 2539 if (rangeMap.size > 1 && rangeMap.has("")) { 2540 rangeMap.delete(""); 2541 } 2542 const result = [...rangeMap.values()]; 2543 cache.set(memoKey, result); 2544 return result; 2545 } 2546 intersects(range, options) { 2547 if (!(range instanceof _Range)) { 2548 throw new TypeError("a Range is required"); 2549 } 2550 return this.set.some((thisComparators) => { 2551 return isSatisfiable(thisComparators, options) && range.set.some((rangeComparators) => { 2552 return isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator) => { 2553 return rangeComparators.every((rangeComparator) => { 2554 return thisComparator.intersects(rangeComparator, options); 2555 }); 2556 }); 2557 }); 2558 }); 2559 } 2560 // if ANY of the sets match ALL of its comparators, then pass 2561 test(version2) { 2562 if (!version2) { 2563 return false; 2564 } 2565 if (typeof version2 === "string") { 2566 try { 2567 version2 = new SemVer(version2, this.options); 2568 } catch (er) { 2569 return false; 2570 } 2571 } 2572 for (let i = 0; i < this.set.length; i++) { 2573 if (testSet(this.set[i], version2, this.options)) { 2574 return true; 2575 } 2576 } 2577 return false; 2578 } 2579 }; 2580 module2.exports = Range; 2581 var LRU = require_lru_cache(); 2582 var cache = new LRU({ max: 1e3 }); 2583 var parseOptions = require_parse_options(); 2584 var Comparator = require_comparator(); 2585 var debug2 = require_debug(); 2586 var SemVer = require_semver(); 2587 var { 2588 safeRe: re, 2589 t, 2590 comparatorTrimReplace, 2591 tildeTrimReplace, 2592 caretTrimReplace 2593 } = require_re(); 2594 var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants(); 2595 var isNullSet = (c) => c.value === "<0.0.0-0"; 2596 var isAny = (c) => c.value === ""; 2597 var isSatisfiable = (comparators, options) => { 2598 let result = true; 2599 const remainingComparators = comparators.slice(); 2600 let testComparator = remainingComparators.pop(); 2601 while (result && remainingComparators.length) { 2602 result = remainingComparators.every((otherComparator) => { 2603 return testComparator.intersects(otherComparator, options); 2604 }); 2605 testComparator = remainingComparators.pop(); 2606 } 2607 return result; 2608 }; 2609 var parseComparator = (comp, options) => { 2610 debug2("comp", comp, options); 2611 comp = replaceCarets(comp, options); 2612 debug2("caret", comp); 2613 comp = replaceTildes(comp, options); 2614 debug2("tildes", comp); 2615 comp = replaceXRanges(comp, options); 2616 debug2("xrange", comp); 2617 comp = replaceStars(comp, options); 2618 debug2("stars", comp); 2619 return comp; 2620 }; 2621 var isX = (id) => !id || id.toLowerCase() === "x" || id === "*"; 2622 var replaceTildes = (comp, options) => { 2623 return comp.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" "); 2624 }; 2625 var replaceTilde = (comp, options) => { 2626 const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; 2627 return comp.replace(r, (_, M, m, p, pr) => { 2628 debug2("tilde", comp, _, M, m, p, pr); 2629 let ret; 2630 if (isX(M)) { 2631 ret = ""; 2632 } else if (isX(m)) { 2633 ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; 2634 } else if (isX(p)) { 2635 ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; 2636 } else if (pr) { 2637 debug2("replaceTilde pr", pr); 2638 ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; 2639 } else { 2640 ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; 2641 } 2642 debug2("tilde return", ret); 2643 return ret; 2644 }); 2645 }; 2646 var replaceCarets = (comp, options) => { 2647 return comp.trim().split(/\s+/).map((c) => replaceCaret(c, options)).join(" "); 2648 }; 2649 var replaceCaret = (comp, options) => { 2650 debug2("caret", comp, options); 2651 const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; 2652 const z = options.includePrerelease ? "-0" : ""; 2653 return comp.replace(r, (_, M, m, p, pr) => { 2654 debug2("caret", comp, _, M, m, p, pr); 2655 let ret; 2656 if (isX(M)) { 2657 ret = ""; 2658 } else if (isX(m)) { 2659 ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; 2660 } else if (isX(p)) { 2661 if (M === "0") { 2662 ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; 2663 } else { 2664 ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; 2665 } 2666 } else if (pr) { 2667 debug2("replaceCaret pr", pr); 2668 if (M === "0") { 2669 if (m === "0") { 2670 ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`; 2671 } else { 2672 ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; 2673 } 2674 } else { 2675 ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`; 2676 } 2677 } else { 2678 debug2("no pr"); 2679 if (M === "0") { 2680 if (m === "0") { 2681 ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`; 2682 } else { 2683 ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`; 2684 } 2685 } else { 2686 ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`; 2687 } 2688 } 2689 debug2("caret return", ret); 2690 return ret; 2691 }); 2692 }; 2693 var replaceXRanges = (comp, options) => { 2694 debug2("replaceXRanges", comp, options); 2695 return comp.split(/\s+/).map((c) => replaceXRange(c, options)).join(" "); 2696 }; 2697 var replaceXRange = (comp, options) => { 2698 comp = comp.trim(); 2699 const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; 2700 return comp.replace(r, (ret, gtlt, M, m, p, pr) => { 2701 debug2("xRange", comp, ret, gtlt, M, m, p, pr); 2702 const xM = isX(M); 2703 const xm = xM || isX(m); 2704 const xp = xm || isX(p); 2705 const anyX = xp; 2706 if (gtlt === "=" && anyX) { 2707 gtlt = ""; 2708 } 2709 pr = options.includePrerelease ? "-0" : ""; 2710 if (xM) { 2711 if (gtlt === ">" || gtlt === "<") { 2712 ret = "<0.0.0-0"; 2713 } else { 2714 ret = "*"; 2715 } 2716 } else if (gtlt && anyX) { 2717 if (xm) { 2718 m = 0; 2719 } 2720 p = 0; 2721 if (gtlt === ">") { 2722 gtlt = ">="; 2723 if (xm) { 2724 M = +M + 1; 2725 m = 0; 2726 p = 0; 2727 } else { 2728 m = +m + 1; 2729 p = 0; 2730 } 2731 } else if (gtlt === "<=") { 2732 gtlt = "<"; 2733 if (xm) { 2734 M = +M + 1; 2735 } else { 2736 m = +m + 1; 2737 } 2738 } 2739 if (gtlt === "<") { 2740 pr = "-0"; 2741 } 2742 ret = `${gtlt + M}.${m}.${p}${pr}`; 2743 } else if (xm) { 2744 ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; 2745 } else if (xp) { 2746 ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`; 2747 } 2748 debug2("xRange return", ret); 2749 return ret; 2750 }); 2751 }; 2752 var replaceStars = (comp, options) => { 2753 debug2("replaceStars", comp, options); 2754 return comp.trim().replace(re[t.STAR], ""); 2755 }; 2756 var replaceGTE0 = (comp, options) => { 2757 debug2("replaceGTE0", comp, options); 2758 return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], ""); 2759 }; 2760 var hyphenReplace = (incPr) => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) => { 2761 if (isX(fM)) { 2762 from = ""; 2763 } else if (isX(fm)) { 2764 from = `>=${fM}.0.0${incPr ? "-0" : ""}`; 2765 } else if (isX(fp)) { 2766 from = `>=${fM}.${fm}.0${incPr ? "-0" : ""}`; 2767 } else if (fpr) { 2768 from = `>=${from}`; 2769 } else { 2770 from = `>=${from}${incPr ? "-0" : ""}`; 2771 } 2772 if (isX(tM)) { 2773 to = ""; 2774 } else if (isX(tm)) { 2775 to = `<${+tM + 1}.0.0-0`; 2776 } else if (isX(tp)) { 2777 to = `<${tM}.${+tm + 1}.0-0`; 2778 } else if (tpr) { 2779 to = `<=${tM}.${tm}.${tp}-${tpr}`; 2780 } else if (incPr) { 2781 to = `<${tM}.${tm}.${+tp + 1}-0`; 2782 } else { 2783 to = `<=${to}`; 2784 } 2785 return `${from} ${to}`.trim(); 2786 }; 2787 var testSet = (set, version2, options) => { 2788 for (let i = 0; i < set.length; i++) { 2789 if (!set[i].test(version2)) { 2790 return false; 2791 } 2792 } 2793 if (version2.prerelease.length && !options.includePrerelease) { 2794 for (let i = 0; i < set.length; i++) { 2795 debug2(set[i].semver); 2796 if (set[i].semver === Comparator.ANY) { 2797 continue; 2798 } 2799 if (set[i].semver.prerelease.length > 0) { 2800 const allowed = set[i].semver; 2801 if (allowed.major === version2.major && allowed.minor === version2.minor && allowed.patch === version2.patch) { 2802 return true; 2803 } 2804 } 2805 } 2806 return false; 2807 } 2808 return true; 2809 }; 2810 } 2811}); 2812 2813// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/classes/comparator.js 2814var require_comparator = __commonJS({ 2815 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/classes/comparator.js"(exports, module2) { 2816 var ANY = Symbol("SemVer ANY"); 2817 var Comparator = class _Comparator { 2818 static get ANY() { 2819 return ANY; 2820 } 2821 constructor(comp, options) { 2822 options = parseOptions(options); 2823 if (comp instanceof _Comparator) { 2824 if (comp.loose === !!options.loose) { 2825 return comp; 2826 } else { 2827 comp = comp.value; 2828 } 2829 } 2830 comp = comp.trim().split(/\s+/).join(" "); 2831 debug2("comparator", comp, options); 2832 this.options = options; 2833 this.loose = !!options.loose; 2834 this.parse(comp); 2835 if (this.semver === ANY) { 2836 this.value = ""; 2837 } else { 2838 this.value = this.operator + this.semver.version; 2839 } 2840 debug2("comp", this); 2841 } 2842 parse(comp) { 2843 const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; 2844 const m = comp.match(r); 2845 if (!m) { 2846 throw new TypeError(`Invalid comparator: ${comp}`); 2847 } 2848 this.operator = m[1] !== void 0 ? m[1] : ""; 2849 if (this.operator === "=") { 2850 this.operator = ""; 2851 } 2852 if (!m[2]) { 2853 this.semver = ANY; 2854 } else { 2855 this.semver = new SemVer(m[2], this.options.loose); 2856 } 2857 } 2858 toString() { 2859 return this.value; 2860 } 2861 test(version2) { 2862 debug2("Comparator.test", version2, this.options.loose); 2863 if (this.semver === ANY || version2 === ANY) { 2864 return true; 2865 } 2866 if (typeof version2 === "string") { 2867 try { 2868 version2 = new SemVer(version2, this.options); 2869 } catch (er) { 2870 return false; 2871 } 2872 } 2873 return cmp(version2, this.operator, this.semver, this.options); 2874 } 2875 intersects(comp, options) { 2876 if (!(comp instanceof _Comparator)) { 2877 throw new TypeError("a Comparator is required"); 2878 } 2879 if (this.operator === "") { 2880 if (this.value === "") { 2881 return true; 2882 } 2883 return new Range(comp.value, options).test(this.value); 2884 } else if (comp.operator === "") { 2885 if (comp.value === "") { 2886 return true; 2887 } 2888 return new Range(this.value, options).test(comp.semver); 2889 } 2890 options = parseOptions(options); 2891 if (options.includePrerelease && (this.value === "<0.0.0-0" || comp.value === "<0.0.0-0")) { 2892 return false; 2893 } 2894 if (!options.includePrerelease && (this.value.startsWith("<0.0.0") || comp.value.startsWith("<0.0.0"))) { 2895 return false; 2896 } 2897 if (this.operator.startsWith(">") && comp.operator.startsWith(">")) { 2898 return true; 2899 } 2900 if (this.operator.startsWith("<") && comp.operator.startsWith("<")) { 2901 return true; 2902 } 2903 if (this.semver.version === comp.semver.version && this.operator.includes("=") && comp.operator.includes("=")) { 2904 return true; 2905 } 2906 if (cmp(this.semver, "<", comp.semver, options) && this.operator.startsWith(">") && comp.operator.startsWith("<")) { 2907 return true; 2908 } 2909 if (cmp(this.semver, ">", comp.semver, options) && this.operator.startsWith("<") && comp.operator.startsWith(">")) { 2910 return true; 2911 } 2912 return false; 2913 } 2914 }; 2915 module2.exports = Comparator; 2916 var parseOptions = require_parse_options(); 2917 var { safeRe: re, t } = require_re(); 2918 var cmp = require_cmp(); 2919 var debug2 = require_debug(); 2920 var SemVer = require_semver(); 2921 var Range = require_range(); 2922 } 2923}); 2924 2925// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/satisfies.js 2926var require_satisfies = __commonJS({ 2927 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/functions/satisfies.js"(exports, module2) { 2928 var Range = require_range(); 2929 var satisfies = (version2, range, options) => { 2930 try { 2931 range = new Range(range, options); 2932 } catch (er) { 2933 return false; 2934 } 2935 return range.test(version2); 2936 }; 2937 module2.exports = satisfies; 2938 } 2939}); 2940 2941// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/to-comparators.js 2942var require_to_comparators = __commonJS({ 2943 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/to-comparators.js"(exports, module2) { 2944 var Range = require_range(); 2945 var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" ")); 2946 module2.exports = toComparators; 2947 } 2948}); 2949 2950// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/max-satisfying.js 2951var require_max_satisfying = __commonJS({ 2952 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/max-satisfying.js"(exports, module2) { 2953 var SemVer = require_semver(); 2954 var Range = require_range(); 2955 var maxSatisfying = (versions, range, options) => { 2956 let max = null; 2957 let maxSV = null; 2958 let rangeObj = null; 2959 try { 2960 rangeObj = new Range(range, options); 2961 } catch (er) { 2962 return null; 2963 } 2964 versions.forEach((v) => { 2965 if (rangeObj.test(v)) { 2966 if (!max || maxSV.compare(v) === -1) { 2967 max = v; 2968 maxSV = new SemVer(max, options); 2969 } 2970 } 2971 }); 2972 return max; 2973 }; 2974 module2.exports = maxSatisfying; 2975 } 2976}); 2977 2978// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/min-satisfying.js 2979var require_min_satisfying = __commonJS({ 2980 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/min-satisfying.js"(exports, module2) { 2981 var SemVer = require_semver(); 2982 var Range = require_range(); 2983 var minSatisfying = (versions, range, options) => { 2984 let min = null; 2985 let minSV = null; 2986 let rangeObj = null; 2987 try { 2988 rangeObj = new Range(range, options); 2989 } catch (er) { 2990 return null; 2991 } 2992 versions.forEach((v) => { 2993 if (rangeObj.test(v)) { 2994 if (!min || minSV.compare(v) === 1) { 2995 min = v; 2996 minSV = new SemVer(min, options); 2997 } 2998 } 2999 }); 3000 return min; 3001 }; 3002 module2.exports = minSatisfying; 3003 } 3004}); 3005 3006// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/min-version.js 3007var require_min_version = __commonJS({ 3008 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/min-version.js"(exports, module2) { 3009 var SemVer = require_semver(); 3010 var Range = require_range(); 3011 var gt = require_gt(); 3012 var minVersion = (range, loose) => { 3013 range = new Range(range, loose); 3014 let minver = new SemVer("0.0.0"); 3015 if (range.test(minver)) { 3016 return minver; 3017 } 3018 minver = new SemVer("0.0.0-0"); 3019 if (range.test(minver)) { 3020 return minver; 3021 } 3022 minver = null; 3023 for (let i = 0; i < range.set.length; ++i) { 3024 const comparators = range.set[i]; 3025 let setMin = null; 3026 comparators.forEach((comparator) => { 3027 const compver = new SemVer(comparator.semver.version); 3028 switch (comparator.operator) { 3029 case ">": 3030 if (compver.prerelease.length === 0) { 3031 compver.patch++; 3032 } else { 3033 compver.prerelease.push(0); 3034 } 3035 compver.raw = compver.format(); 3036 case "": 3037 case ">=": 3038 if (!setMin || gt(compver, setMin)) { 3039 setMin = compver; 3040 } 3041 break; 3042 case "<": 3043 case "<=": 3044 break; 3045 default: 3046 throw new Error(`Unexpected operation: ${comparator.operator}`); 3047 } 3048 }); 3049 if (setMin && (!minver || gt(minver, setMin))) { 3050 minver = setMin; 3051 } 3052 } 3053 if (minver && range.test(minver)) { 3054 return minver; 3055 } 3056 return null; 3057 }; 3058 module2.exports = minVersion; 3059 } 3060}); 3061 3062// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/valid.js 3063var require_valid2 = __commonJS({ 3064 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/valid.js"(exports, module2) { 3065 var Range = require_range(); 3066 var validRange = (range, options) => { 3067 try { 3068 return new Range(range, options).range || "*"; 3069 } catch (er) { 3070 return null; 3071 } 3072 }; 3073 module2.exports = validRange; 3074 } 3075}); 3076 3077// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/outside.js 3078var require_outside = __commonJS({ 3079 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/outside.js"(exports, module2) { 3080 var SemVer = require_semver(); 3081 var Comparator = require_comparator(); 3082 var { ANY } = Comparator; 3083 var Range = require_range(); 3084 var satisfies = require_satisfies(); 3085 var gt = require_gt(); 3086 var lt = require_lt(); 3087 var lte = require_lte(); 3088 var gte = require_gte(); 3089 var outside = (version2, range, hilo, options) => { 3090 version2 = new SemVer(version2, options); 3091 range = new Range(range, options); 3092 let gtfn, ltefn, ltfn, comp, ecomp; 3093 switch (hilo) { 3094 case ">": 3095 gtfn = gt; 3096 ltefn = lte; 3097 ltfn = lt; 3098 comp = ">"; 3099 ecomp = ">="; 3100 break; 3101 case "<": 3102 gtfn = lt; 3103 ltefn = gte; 3104 ltfn = gt; 3105 comp = "<"; 3106 ecomp = "<="; 3107 break; 3108 default: 3109 throw new TypeError('Must provide a hilo val of "<" or ">"'); 3110 } 3111 if (satisfies(version2, range, options)) { 3112 return false; 3113 } 3114 for (let i = 0; i < range.set.length; ++i) { 3115 const comparators = range.set[i]; 3116 let high = null; 3117 let low = null; 3118 comparators.forEach((comparator) => { 3119 if (comparator.semver === ANY) { 3120 comparator = new Comparator(">=0.0.0"); 3121 } 3122 high = high || comparator; 3123 low = low || comparator; 3124 if (gtfn(comparator.semver, high.semver, options)) { 3125 high = comparator; 3126 } else if (ltfn(comparator.semver, low.semver, options)) { 3127 low = comparator; 3128 } 3129 }); 3130 if (high.operator === comp || high.operator === ecomp) { 3131 return false; 3132 } 3133 if ((!low.operator || low.operator === comp) && ltefn(version2, low.semver)) { 3134 return false; 3135 } else if (low.operator === ecomp && ltfn(version2, low.semver)) { 3136 return false; 3137 } 3138 } 3139 return true; 3140 }; 3141 module2.exports = outside; 3142 } 3143}); 3144 3145// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/gtr.js 3146var require_gtr = __commonJS({ 3147 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/gtr.js"(exports, module2) { 3148 var outside = require_outside(); 3149 var gtr = (version2, range, options) => outside(version2, range, ">", options); 3150 module2.exports = gtr; 3151 } 3152}); 3153 3154// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/ltr.js 3155var require_ltr = __commonJS({ 3156 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/ltr.js"(exports, module2) { 3157 var outside = require_outside(); 3158 var ltr = (version2, range, options) => outside(version2, range, "<", options); 3159 module2.exports = ltr; 3160 } 3161}); 3162 3163// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/intersects.js 3164var require_intersects = __commonJS({ 3165 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/intersects.js"(exports, module2) { 3166 var Range = require_range(); 3167 var intersects = (r1, r2, options) => { 3168 r1 = new Range(r1, options); 3169 r2 = new Range(r2, options); 3170 return r1.intersects(r2, options); 3171 }; 3172 module2.exports = intersects; 3173 } 3174}); 3175 3176// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/simplify.js 3177var require_simplify = __commonJS({ 3178 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/simplify.js"(exports, module2) { 3179 var satisfies = require_satisfies(); 3180 var compare = require_compare(); 3181 module2.exports = (versions, range, options) => { 3182 const set = []; 3183 let first = null; 3184 let prev = null; 3185 const v = versions.sort((a, b) => compare(a, b, options)); 3186 for (const version2 of v) { 3187 const included = satisfies(version2, range, options); 3188 if (included) { 3189 prev = version2; 3190 if (!first) { 3191 first = version2; 3192 } 3193 } else { 3194 if (prev) { 3195 set.push([first, prev]); 3196 } 3197 prev = null; 3198 first = null; 3199 } 3200 } 3201 if (first) { 3202 set.push([first, null]); 3203 } 3204 const ranges = []; 3205 for (const [min, max] of set) { 3206 if (min === max) { 3207 ranges.push(min); 3208 } else if (!max && min === v[0]) { 3209 ranges.push("*"); 3210 } else if (!max) { 3211 ranges.push(`>=${min}`); 3212 } else if (min === v[0]) { 3213 ranges.push(`<=${max}`); 3214 } else { 3215 ranges.push(`${min} - ${max}`); 3216 } 3217 } 3218 const simplified = ranges.join(" || "); 3219 const original = typeof range.raw === "string" ? range.raw : String(range); 3220 return simplified.length < original.length ? simplified : range; 3221 }; 3222 } 3223}); 3224 3225// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/subset.js 3226var require_subset = __commonJS({ 3227 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/ranges/subset.js"(exports, module2) { 3228 var Range = require_range(); 3229 var Comparator = require_comparator(); 3230 var { ANY } = Comparator; 3231 var satisfies = require_satisfies(); 3232 var compare = require_compare(); 3233 var subset = (sub, dom, options = {}) => { 3234 if (sub === dom) { 3235 return true; 3236 } 3237 sub = new Range(sub, options); 3238 dom = new Range(dom, options); 3239 let sawNonNull = false; 3240 OUTER: 3241 for (const simpleSub of sub.set) { 3242 for (const simpleDom of dom.set) { 3243 const isSub = simpleSubset(simpleSub, simpleDom, options); 3244 sawNonNull = sawNonNull || isSub !== null; 3245 if (isSub) { 3246 continue OUTER; 3247 } 3248 } 3249 if (sawNonNull) { 3250 return false; 3251 } 3252 } 3253 return true; 3254 }; 3255 var minimumVersionWithPreRelease = [new Comparator(">=0.0.0-0")]; 3256 var minimumVersion = [new Comparator(">=0.0.0")]; 3257 var simpleSubset = (sub, dom, options) => { 3258 if (sub === dom) { 3259 return true; 3260 } 3261 if (sub.length === 1 && sub[0].semver === ANY) { 3262 if (dom.length === 1 && dom[0].semver === ANY) { 3263 return true; 3264 } else if (options.includePrerelease) { 3265 sub = minimumVersionWithPreRelease; 3266 } else { 3267 sub = minimumVersion; 3268 } 3269 } 3270 if (dom.length === 1 && dom[0].semver === ANY) { 3271 if (options.includePrerelease) { 3272 return true; 3273 } else { 3274 dom = minimumVersion; 3275 } 3276 } 3277 const eqSet = /* @__PURE__ */ new Set(); 3278 let gt, lt; 3279 for (const c of sub) { 3280 if (c.operator === ">" || c.operator === ">=") { 3281 gt = higherGT(gt, c, options); 3282 } else if (c.operator === "<" || c.operator === "<=") { 3283 lt = lowerLT(lt, c, options); 3284 } else { 3285 eqSet.add(c.semver); 3286 } 3287 } 3288 if (eqSet.size > 1) { 3289 return null; 3290 } 3291 let gtltComp; 3292 if (gt && lt) { 3293 gtltComp = compare(gt.semver, lt.semver, options); 3294 if (gtltComp > 0) { 3295 return null; 3296 } else if (gtltComp === 0 && (gt.operator !== ">=" || lt.operator !== "<=")) { 3297 return null; 3298 } 3299 } 3300 for (const eq of eqSet) { 3301 if (gt && !satisfies(eq, String(gt), options)) { 3302 return null; 3303 } 3304 if (lt && !satisfies(eq, String(lt), options)) { 3305 return null; 3306 } 3307 for (const c of dom) { 3308 if (!satisfies(eq, String(c), options)) { 3309 return false; 3310 } 3311 } 3312 return true; 3313 } 3314 let higher, lower; 3315 let hasDomLT, hasDomGT; 3316 let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; 3317 let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false; 3318 if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) { 3319 needDomLTPre = false; 3320 } 3321 for (const c of dom) { 3322 hasDomGT = hasDomGT || c.operator === ">" || c.operator === ">="; 3323 hasDomLT = hasDomLT || c.operator === "<" || c.operator === "<="; 3324 if (gt) { 3325 if (needDomGTPre) { 3326 if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) { 3327 needDomGTPre = false; 3328 } 3329 } 3330 if (c.operator === ">" || c.operator === ">=") { 3331 higher = higherGT(gt, c, options); 3332 if (higher === c && higher !== gt) { 3333 return false; 3334 } 3335 } else if (gt.operator === ">=" && !satisfies(gt.semver, String(c), options)) { 3336 return false; 3337 } 3338 } 3339 if (lt) { 3340 if (needDomLTPre) { 3341 if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) { 3342 needDomLTPre = false; 3343 } 3344 } 3345 if (c.operator === "<" || c.operator === "<=") { 3346 lower = lowerLT(lt, c, options); 3347 if (lower === c && lower !== lt) { 3348 return false; 3349 } 3350 } else if (lt.operator === "<=" && !satisfies(lt.semver, String(c), options)) { 3351 return false; 3352 } 3353 } 3354 if (!c.operator && (lt || gt) && gtltComp !== 0) { 3355 return false; 3356 } 3357 } 3358 if (gt && hasDomLT && !lt && gtltComp !== 0) { 3359 return false; 3360 } 3361 if (lt && hasDomGT && !gt && gtltComp !== 0) { 3362 return false; 3363 } 3364 if (needDomGTPre || needDomLTPre) { 3365 return false; 3366 } 3367 return true; 3368 }; 3369 var higherGT = (a, b, options) => { 3370 if (!a) { 3371 return b; 3372 } 3373 const comp = compare(a.semver, b.semver, options); 3374 return comp > 0 ? a : comp < 0 ? b : b.operator === ">" && a.operator === ">=" ? b : a; 3375 }; 3376 var lowerLT = (a, b, options) => { 3377 if (!a) { 3378 return b; 3379 } 3380 const comp = compare(a.semver, b.semver, options); 3381 return comp < 0 ? a : comp > 0 ? b : b.operator === "<" && a.operator === "<=" ? b : a; 3382 }; 3383 module2.exports = subset; 3384 } 3385}); 3386 3387// .yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/index.js 3388var require_semver2 = __commonJS({ 3389 ".yarn/cache/semver-npm-7.6.0-f4630729f6-fbfe717094.zip/node_modules/semver/index.js"(exports, module2) { 3390 var internalRe = require_re(); 3391 var constants = require_constants(); 3392 var SemVer = require_semver(); 3393 var identifiers = require_identifiers(); 3394 var parse = require_parse(); 3395 var valid = require_valid(); 3396 var clean = require_clean(); 3397 var inc = require_inc(); 3398 var diff = require_diff(); 3399 var major = require_major(); 3400 var minor = require_minor(); 3401 var patch = require_patch(); 3402 var prerelease = require_prerelease(); 3403 var compare = require_compare(); 3404 var rcompare = require_rcompare(); 3405 var compareLoose = require_compare_loose(); 3406 var compareBuild = require_compare_build(); 3407 var sort = require_sort(); 3408 var rsort = require_rsort(); 3409 var gt = require_gt(); 3410 var lt = require_lt(); 3411 var eq = require_eq(); 3412 var neq = require_neq(); 3413 var gte = require_gte(); 3414 var lte = require_lte(); 3415 var cmp = require_cmp(); 3416 var coerce = require_coerce(); 3417 var Comparator = require_comparator(); 3418 var Range = require_range(); 3419 var satisfies = require_satisfies(); 3420 var toComparators = require_to_comparators(); 3421 var maxSatisfying = require_max_satisfying(); 3422 var minSatisfying = require_min_satisfying(); 3423 var minVersion = require_min_version(); 3424 var validRange = require_valid2(); 3425 var outside = require_outside(); 3426 var gtr = require_gtr(); 3427 var ltr = require_ltr(); 3428 var intersects = require_intersects(); 3429 var simplifyRange = require_simplify(); 3430 var subset = require_subset(); 3431 module2.exports = { 3432 parse, 3433 valid, 3434 clean, 3435 inc, 3436 diff, 3437 major, 3438 minor, 3439 patch, 3440 prerelease, 3441 compare, 3442 rcompare, 3443 compareLoose, 3444 compareBuild, 3445 sort, 3446 rsort, 3447 gt, 3448 lt, 3449 eq, 3450 neq, 3451 gte, 3452 lte, 3453 cmp, 3454 coerce, 3455 Comparator, 3456 Range, 3457 satisfies, 3458 toComparators, 3459 maxSatisfying, 3460 minSatisfying, 3461 minVersion, 3462 validRange, 3463 outside, 3464 gtr, 3465 ltr, 3466 intersects, 3467 simplifyRange, 3468 subset, 3469 SemVer, 3470 re: internalRe.re, 3471 src: internalRe.src, 3472 tokens: internalRe.t, 3473 SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, 3474 RELEASE_TYPES: constants.RELEASE_TYPES, 3475 compareIdentifiers: identifiers.compareIdentifiers, 3476 rcompareIdentifiers: identifiers.rcompareIdentifiers 3477 }; 3478 } 3479}); 3480 3481// .yarn/cache/ms-npm-2.1.2-ec0c1512ff-a437714e2f.zip/node_modules/ms/index.js 3482var require_ms = __commonJS({ 3483 ".yarn/cache/ms-npm-2.1.2-ec0c1512ff-a437714e2f.zip/node_modules/ms/index.js"(exports, module2) { 3484 var s = 1e3; 3485 var m = s * 60; 3486 var h = m * 60; 3487 var d = h * 24; 3488 var w = d * 7; 3489 var y = d * 365.25; 3490 module2.exports = function(val, options) { 3491 options = options || {}; 3492 var type = typeof val; 3493 if (type === "string" && val.length > 0) { 3494 return parse(val); 3495 } else if (type === "number" && isFinite(val)) { 3496 return options.long ? fmtLong(val) : fmtShort(val); 3497 } 3498 throw new Error( 3499 "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) 3500 ); 3501 }; 3502 function parse(str) { 3503 str = String(str); 3504 if (str.length > 100) { 3505 return; 3506 } 3507 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( 3508 str 3509 ); 3510 if (!match) { 3511 return; 3512 } 3513 var n = parseFloat(match[1]); 3514 var type = (match[2] || "ms").toLowerCase(); 3515 switch (type) { 3516 case "years": 3517 case "year": 3518 case "yrs": 3519 case "yr": 3520 case "y": 3521 return n * y; 3522 case "weeks": 3523 case "week": 3524 case "w": 3525 return n * w; 3526 case "days": 3527 case "day": 3528 case "d": 3529 return n * d; 3530 case "hours": 3531 case "hour": 3532 case "hrs": 3533 case "hr": 3534 case "h": 3535 return n * h; 3536 case "minutes": 3537 case "minute": 3538 case "mins": 3539 case "min": 3540 case "m": 3541 return n * m; 3542 case "seconds": 3543 case "second": 3544 case "secs": 3545 case "sec": 3546 case "s": 3547 return n * s; 3548 case "milliseconds": 3549 case "millisecond": 3550 case "msecs": 3551 case "msec": 3552 case "ms": 3553 return n; 3554 default: 3555 return void 0; 3556 } 3557 } 3558 function fmtShort(ms) { 3559 var msAbs = Math.abs(ms); 3560 if (msAbs >= d) { 3561 return Math.round(ms / d) + "d"; 3562 } 3563 if (msAbs >= h) { 3564 return Math.round(ms / h) + "h"; 3565 } 3566 if (msAbs >= m) { 3567 return Math.round(ms / m) + "m"; 3568 } 3569 if (msAbs >= s) { 3570 return Math.round(ms / s) + "s"; 3571 } 3572 return ms + "ms"; 3573 } 3574 function fmtLong(ms) { 3575 var msAbs = Math.abs(ms); 3576 if (msAbs >= d) { 3577 return plural2(ms, msAbs, d, "day"); 3578 } 3579 if (msAbs >= h) { 3580 return plural2(ms, msAbs, h, "hour"); 3581 } 3582 if (msAbs >= m) { 3583 return plural2(ms, msAbs, m, "minute"); 3584 } 3585 if (msAbs >= s) { 3586 return plural2(ms, msAbs, s, "second"); 3587 } 3588 return ms + " ms"; 3589 } 3590 function plural2(ms, msAbs, n, name) { 3591 var isPlural = msAbs >= n * 1.5; 3592 return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); 3593 } 3594 } 3595}); 3596 3597// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js 3598var require_common = __commonJS({ 3599 ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js"(exports, module2) { 3600 function setup(env2) { 3601 createDebug.debug = createDebug; 3602 createDebug.default = createDebug; 3603 createDebug.coerce = coerce; 3604 createDebug.disable = disable; 3605 createDebug.enable = enable; 3606 createDebug.enabled = enabled; 3607 createDebug.humanize = require_ms(); 3608 createDebug.destroy = destroy; 3609 Object.keys(env2).forEach((key) => { 3610 createDebug[key] = env2[key]; 3611 }); 3612 createDebug.names = []; 3613 createDebug.skips = []; 3614 createDebug.formatters = {}; 3615 function selectColor(namespace) { 3616 let hash = 0; 3617 for (let i = 0; i < namespace.length; i++) { 3618 hash = (hash << 5) - hash + namespace.charCodeAt(i); 3619 hash |= 0; 3620 } 3621 return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; 3622 } 3623 createDebug.selectColor = selectColor; 3624 function createDebug(namespace) { 3625 let prevTime; 3626 let enableOverride = null; 3627 let namespacesCache; 3628 let enabledCache; 3629 function debug2(...args) { 3630 if (!debug2.enabled) { 3631 return; 3632 } 3633 const self2 = debug2; 3634 const curr = Number(/* @__PURE__ */ new Date()); 3635 const ms = curr - (prevTime || curr); 3636 self2.diff = ms; 3637 self2.prev = prevTime; 3638 self2.curr = curr; 3639 prevTime = curr; 3640 args[0] = createDebug.coerce(args[0]); 3641 if (typeof args[0] !== "string") { 3642 args.unshift("%O"); 3643 } 3644 let index = 0; 3645 args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { 3646 if (match === "%%") { 3647 return "%"; 3648 } 3649 index++; 3650 const formatter = createDebug.formatters[format]; 3651 if (typeof formatter === "function") { 3652 const val = args[index]; 3653 match = formatter.call(self2, val); 3654 args.splice(index, 1); 3655 index--; 3656 } 3657 return match; 3658 }); 3659 createDebug.formatArgs.call(self2, args); 3660 const logFn = self2.log || createDebug.log; 3661 logFn.apply(self2, args); 3662 } 3663 debug2.namespace = namespace; 3664 debug2.useColors = createDebug.useColors(); 3665 debug2.color = createDebug.selectColor(namespace); 3666 debug2.extend = extend; 3667 debug2.destroy = createDebug.destroy; 3668 Object.defineProperty(debug2, "enabled", { 3669 enumerable: true, 3670 configurable: false, 3671 get: () => { 3672 if (enableOverride !== null) { 3673 return enableOverride; 3674 } 3675 if (namespacesCache !== createDebug.namespaces) { 3676 namespacesCache = createDebug.namespaces; 3677 enabledCache = createDebug.enabled(namespace); 3678 } 3679 return enabledCache; 3680 }, 3681 set: (v) => { 3682 enableOverride = v; 3683 } 3684 }); 3685 if (typeof createDebug.init === "function") { 3686 createDebug.init(debug2); 3687 } 3688 return debug2; 3689 } 3690 function extend(namespace, delimiter) { 3691 const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); 3692 newDebug.log = this.log; 3693 return newDebug; 3694 } 3695 function enable(namespaces) { 3696 createDebug.save(namespaces); 3697 createDebug.namespaces = namespaces; 3698 createDebug.names = []; 3699 createDebug.skips = []; 3700 let i; 3701 const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); 3702 const len = split.length; 3703 for (i = 0; i < len; i++) { 3704 if (!split[i]) { 3705 continue; 3706 } 3707 namespaces = split[i].replace(/\*/g, ".*?"); 3708 if (namespaces[0] === "-") { 3709 createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); 3710 } else { 3711 createDebug.names.push(new RegExp("^" + namespaces + "$")); 3712 } 3713 } 3714 } 3715 function disable() { 3716 const namespaces = [ 3717 ...createDebug.names.map(toNamespace), 3718 ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) 3719 ].join(","); 3720 createDebug.enable(""); 3721 return namespaces; 3722 } 3723 function enabled(name) { 3724 if (name[name.length - 1] === "*") { 3725 return true; 3726 } 3727 let i; 3728 let len; 3729 for (i = 0, len = createDebug.skips.length; i < len; i++) { 3730 if (createDebug.skips[i].test(name)) { 3731 return false; 3732 } 3733 } 3734 for (i = 0, len = createDebug.names.length; i < len; i++) { 3735 if (createDebug.names[i].test(name)) { 3736 return true; 3737 } 3738 } 3739 return false; 3740 } 3741 function toNamespace(regexp) { 3742 return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); 3743 } 3744 function coerce(val) { 3745 if (val instanceof Error) { 3746 return val.stack || val.message; 3747 } 3748 return val; 3749 } 3750 function destroy() { 3751 console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); 3752 } 3753 createDebug.enable(createDebug.load()); 3754 return createDebug; 3755 } 3756 module2.exports = setup; 3757 } 3758}); 3759 3760// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js 3761var require_browser = __commonJS({ 3762 ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js"(exports, module2) { 3763 exports.formatArgs = formatArgs; 3764 exports.save = save; 3765 exports.load = load; 3766 exports.useColors = useColors; 3767 exports.storage = localstorage(); 3768 exports.destroy = (() => { 3769 let warned = false; 3770 return () => { 3771 if (!warned) { 3772 warned = true; 3773 console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); 3774 } 3775 }; 3776 })(); 3777 exports.colors = [ 3778 "#0000CC", 3779 "#0000FF", 3780 "#0033CC", 3781 "#0033FF", 3782 "#0066CC", 3783 "#0066FF", 3784 "#0099CC", 3785 "#0099FF", 3786 "#00CC00", 3787 "#00CC33", 3788 "#00CC66", 3789 "#00CC99", 3790 "#00CCCC", 3791 "#00CCFF", 3792 "#3300CC", 3793 "#3300FF", 3794 "#3333CC", 3795 "#3333FF", 3796 "#3366CC", 3797 "#3366FF", 3798 "#3399CC", 3799 "#3399FF", 3800 "#33CC00", 3801 "#33CC33", 3802 "#33CC66", 3803 "#33CC99", 3804 "#33CCCC", 3805 "#33CCFF", 3806 "#6600CC", 3807 "#6600FF", 3808 "#6633CC", 3809 "#6633FF", 3810 "#66CC00", 3811 "#66CC33", 3812 "#9900CC", 3813 "#9900FF", 3814 "#9933CC", 3815 "#9933FF", 3816 "#99CC00", 3817 "#99CC33", 3818 "#CC0000", 3819 "#CC0033", 3820 "#CC0066", 3821 "#CC0099", 3822 "#CC00CC", 3823 "#CC00FF", 3824 "#CC3300", 3825 "#CC3333", 3826 "#CC3366", 3827 "#CC3399", 3828 "#CC33CC", 3829 "#CC33FF", 3830 "#CC6600", 3831 "#CC6633", 3832 "#CC9900", 3833 "#CC9933", 3834 "#CCCC00", 3835 "#CCCC33", 3836 "#FF0000", 3837 "#FF0033", 3838 "#FF0066", 3839 "#FF0099", 3840 "#FF00CC", 3841 "#FF00FF", 3842 "#FF3300", 3843 "#FF3333", 3844 "#FF3366", 3845 "#FF3399", 3846 "#FF33CC", 3847 "#FF33FF", 3848 "#FF6600", 3849 "#FF6633", 3850 "#FF9900", 3851 "#FF9933", 3852 "#FFCC00", 3853 "#FFCC33" 3854 ]; 3855 function useColors() { 3856 if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { 3857 return true; 3858 } 3859 if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { 3860 return false; 3861 } 3862 return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 3863 typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? 3864 // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages 3865 typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker 3866 typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); 3867 } 3868 function formatArgs(args) { 3869 args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); 3870 if (!this.useColors) { 3871 return; 3872 } 3873 const c = "color: " + this.color; 3874 args.splice(1, 0, c, "color: inherit"); 3875 let index = 0; 3876 let lastC = 0; 3877 args[0].replace(/%[a-zA-Z%]/g, (match) => { 3878 if (match === "%%") { 3879 return; 3880 } 3881 index++; 3882 if (match === "%c") { 3883 lastC = index; 3884 } 3885 }); 3886 args.splice(lastC, 0, c); 3887 } 3888 exports.log = console.debug || console.log || (() => { 3889 }); 3890 function save(namespaces) { 3891 try { 3892 if (namespaces) { 3893 exports.storage.setItem("debug", namespaces); 3894 } else { 3895 exports.storage.removeItem("debug"); 3896 } 3897 } catch (error) { 3898 } 3899 } 3900 function load() { 3901 let r; 3902 try { 3903 r = exports.storage.getItem("debug"); 3904 } catch (error) { 3905 } 3906 if (!r && typeof process !== "undefined" && "env" in process) { 3907 r = process.env.DEBUG; 3908 } 3909 return r; 3910 } 3911 function localstorage() { 3912 try { 3913 return localStorage; 3914 } catch (error) { 3915 } 3916 } 3917 module2.exports = require_common()(exports); 3918 var { formatters } = module2.exports; 3919 formatters.j = function(v) { 3920 try { 3921 return JSON.stringify(v); 3922 } catch (error) { 3923 return "[UnexpectedJSONParseError]: " + error.message; 3924 } 3925 }; 3926 } 3927}); 3928 3929// .yarn/cache/supports-color-npm-9.4.0-a415f39758-6c24e6b2b6.zip/node_modules/supports-color/index.js 3930var supports_color_exports = {}; 3931__export(supports_color_exports, { 3932 createSupportsColor: () => createSupportsColor, 3933 default: () => supports_color_default 3934}); 3935function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) { 3936 const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; 3937 const position = argv.indexOf(prefix + flag); 3938 const terminatorPosition = argv.indexOf("--"); 3939 return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); 3940} 3941function envForceColor() { 3942 if ("FORCE_COLOR" in env) { 3943 if (env.FORCE_COLOR === "true") { 3944 return 1; 3945 } 3946 if (env.FORCE_COLOR === "false") { 3947 return 0; 3948 } 3949 return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); 3950 } 3951} 3952function translateLevel(level) { 3953 if (level === 0) { 3954 return false; 3955 } 3956 return { 3957 level, 3958 hasBasic: true, 3959 has256: level >= 2, 3960 has16m: level >= 3 3961 }; 3962} 3963function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) { 3964 const noFlagForceColor = envForceColor(); 3965 if (noFlagForceColor !== void 0) { 3966 flagForceColor = noFlagForceColor; 3967 } 3968 const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; 3969 if (forceColor === 0) { 3970 return 0; 3971 } 3972 if (sniffFlags) { 3973 if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { 3974 return 3; 3975 } 3976 if (hasFlag("color=256")) { 3977 return 2; 3978 } 3979 } 3980 if ("TF_BUILD" in env && "AGENT_NAME" in env) { 3981 return 1; 3982 } 3983 if (haveStream && !streamIsTTY && forceColor === void 0) { 3984 return 0; 3985 } 3986 const min = forceColor || 0; 3987 if (env.TERM === "dumb") { 3988 return min; 3989 } 3990 if (import_node_process.default.platform === "win32") { 3991 const osRelease = import_node_os.default.release().split("."); 3992 if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { 3993 return Number(osRelease[2]) >= 14931 ? 3 : 2; 3994 } 3995 return 1; 3996 } 3997 if ("CI" in env) { 3998 if ("GITHUB_ACTIONS" in env || "GITEA_ACTIONS" in env) { 3999 return 3; 4000 } 4001 if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { 4002 return 1; 4003 } 4004 return min; 4005 } 4006 if ("TEAMCITY_VERSION" in env) { 4007 return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; 4008 } 4009 if (env.COLORTERM === "truecolor") { 4010 return 3; 4011 } 4012 if (env.TERM === "xterm-kitty") { 4013 return 3; 4014 } 4015 if ("TERM_PROGRAM" in env) { 4016 const version2 = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); 4017 switch (env.TERM_PROGRAM) { 4018 case "iTerm.app": { 4019 return version2 >= 3 ? 3 : 2; 4020 } 4021 case "Apple_Terminal": { 4022 return 2; 4023 } 4024 } 4025 } 4026 if (/-256(color)?$/i.test(env.TERM)) { 4027 return 2; 4028 } 4029 if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { 4030 return 1; 4031 } 4032 if ("COLORTERM" in env) { 4033 return 1; 4034 } 4035 return min; 4036} 4037function createSupportsColor(stream, options = {}) { 4038 const level = _supportsColor(stream, { 4039 streamIsTTY: stream && stream.isTTY, 4040 ...options 4041 }); 4042 return translateLevel(level); 4043} 4044var import_node_process, import_node_os, import_node_tty, env, flagForceColor, supportsColor, supports_color_default; 4045var init_supports_color = __esm({ 4046 ".yarn/cache/supports-color-npm-9.4.0-a415f39758-6c24e6b2b6.zip/node_modules/supports-color/index.js"() { 4047 import_node_process = __toESM(require("node:process"), 1); 4048 import_node_os = __toESM(require("node:os"), 1); 4049 import_node_tty = __toESM(require("node:tty"), 1); 4050 ({ env } = import_node_process.default); 4051 if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { 4052 flagForceColor = 0; 4053 } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { 4054 flagForceColor = 1; 4055 } 4056 supportsColor = { 4057 stdout: createSupportsColor({ isTTY: import_node_tty.default.isatty(1) }), 4058 stderr: createSupportsColor({ isTTY: import_node_tty.default.isatty(2) }) 4059 }; 4060 supports_color_default = supportsColor; 4061 } 4062}); 4063 4064// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js 4065var require_node = __commonJS({ 4066 ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js"(exports, module2) { 4067 var tty3 = require("tty"); 4068 var util = require("util"); 4069 exports.init = init; 4070 exports.log = log2; 4071 exports.formatArgs = formatArgs; 4072 exports.save = save; 4073 exports.load = load; 4074 exports.useColors = useColors; 4075 exports.destroy = util.deprecate( 4076 () => { 4077 }, 4078 "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." 4079 ); 4080 exports.colors = [6, 2, 3, 4, 5, 1]; 4081 try { 4082 const supportsColor2 = (init_supports_color(), __toCommonJS(supports_color_exports)); 4083 if (supportsColor2 && (supportsColor2.stderr || supportsColor2).level >= 2) { 4084 exports.colors = [ 4085 20, 4086 21, 4087 26, 4088 27, 4089 32, 4090 33, 4091 38, 4092 39, 4093 40, 4094 41, 4095 42, 4096 43, 4097 44, 4098 45, 4099 56, 4100 57, 4101 62, 4102 63, 4103 68, 4104 69, 4105 74, 4106 75, 4107 76, 4108 77, 4109 78, 4110 79, 4111 80, 4112 81, 4113 92, 4114 93, 4115 98, 4116 99, 4117 112, 4118 113, 4119 128, 4120 129, 4121 134, 4122 135, 4123 148, 4124 149, 4125 160, 4126 161, 4127 162, 4128 163, 4129 164, 4130 165, 4131 166, 4132 167, 4133 168, 4134 169, 4135 170, 4136 171, 4137 172, 4138 173, 4139 178, 4140 179, 4141 184, 4142 185, 4143 196, 4144 197, 4145 198, 4146 199, 4147 200, 4148 201, 4149 202, 4150 203, 4151 204, 4152 205, 4153 206, 4154 207, 4155 208, 4156 209, 4157 214, 4158 215, 4159 220, 4160 221 4161 ]; 4162 } 4163 } catch (error) { 4164 } 4165 exports.inspectOpts = Object.keys(process.env).filter((key) => { 4166 return /^debug_/i.test(key); 4167 }).reduce((obj, key) => { 4168 const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { 4169 return k.toUpperCase(); 4170 }); 4171 let val = process.env[key]; 4172 if (/^(yes|on|true|enabled)$/i.test(val)) { 4173 val = true; 4174 } else if (/^(no|off|false|disabled)$/i.test(val)) { 4175 val = false; 4176 } else if (val === "null") { 4177 val = null; 4178 } else { 4179 val = Number(val); 4180 } 4181 obj[prop] = val; 4182 return obj; 4183 }, {}); 4184 function useColors() { 4185 return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty3.isatty(process.stderr.fd); 4186 } 4187 function formatArgs(args) { 4188 const { namespace: name, useColors: useColors2 } = this; 4189 if (useColors2) { 4190 const c = this.color; 4191 const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); 4192 const prefix = ` ${colorCode};1m${name} \x1B[0m`; 4193 args[0] = prefix + args[0].split("\n").join("\n" + prefix); 4194 args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m"); 4195 } else { 4196 args[0] = getDate() + name + " " + args[0]; 4197 } 4198 } 4199 function getDate() { 4200 if (exports.inspectOpts.hideDate) { 4201 return ""; 4202 } 4203 return (/* @__PURE__ */ new Date()).toISOString() + " "; 4204 } 4205 function log2(...args) { 4206 return process.stderr.write(util.format(...args) + "\n"); 4207 } 4208 function save(namespaces) { 4209 if (namespaces) { 4210 process.env.DEBUG = namespaces; 4211 } else { 4212 delete process.env.DEBUG; 4213 } 4214 } 4215 function load() { 4216 return process.env.DEBUG; 4217 } 4218 function init(debug2) { 4219 debug2.inspectOpts = {}; 4220 const keys = Object.keys(exports.inspectOpts); 4221 for (let i = 0; i < keys.length; i++) { 4222 debug2.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; 4223 } 4224 } 4225 module2.exports = require_common()(exports); 4226 var { formatters } = module2.exports; 4227 formatters.o = function(v) { 4228 this.inspectOpts.colors = this.useColors; 4229 return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); 4230 }; 4231 formatters.O = function(v) { 4232 this.inspectOpts.colors = this.useColors; 4233 return util.inspect(v, this.inspectOpts); 4234 }; 4235 } 4236}); 4237 4238// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js 4239var require_src = __commonJS({ 4240 ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js"(exports, module2) { 4241 if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { 4242 module2.exports = require_browser(); 4243 } else { 4244 module2.exports = require_node(); 4245 } 4246 } 4247}); 4248 4249// .yarn/cache/proxy-from-env-npm-1.1.0-c13d07f26b-fe7dd8b1bd.zip/node_modules/proxy-from-env/index.js 4250var require_proxy_from_env = __commonJS({ 4251 ".yarn/cache/proxy-from-env-npm-1.1.0-c13d07f26b-fe7dd8b1bd.zip/node_modules/proxy-from-env/index.js"(exports) { 4252 "use strict"; 4253 var parseUrl = require("url").parse; 4254 var DEFAULT_PORTS = { 4255 ftp: 21, 4256 gopher: 70, 4257 http: 80, 4258 https: 443, 4259 ws: 80, 4260 wss: 443 4261 }; 4262 var stringEndsWith = String.prototype.endsWith || function(s) { 4263 return s.length <= this.length && this.indexOf(s, this.length - s.length) !== -1; 4264 }; 4265 function getProxyForUrl(url) { 4266 var parsedUrl = typeof url === "string" ? parseUrl(url) : url || {}; 4267 var proto = parsedUrl.protocol; 4268 var hostname = parsedUrl.host; 4269 var port = parsedUrl.port; 4270 if (typeof hostname !== "string" || !hostname || typeof proto !== "string") { 4271 return ""; 4272 } 4273 proto = proto.split(":", 1)[0]; 4274 hostname = hostname.replace(/:\d*$/, ""); 4275 port = parseInt(port) || DEFAULT_PORTS[proto] || 0; 4276 if (!shouldProxy(hostname, port)) { 4277 return ""; 4278 } 4279 var proxy = getEnv("npm_config_" + proto + "_proxy") || getEnv(proto + "_proxy") || getEnv("npm_config_proxy") || getEnv("all_proxy"); 4280 if (proxy && proxy.indexOf("://") === -1) { 4281 proxy = proto + "://" + proxy; 4282 } 4283 return proxy; 4284 } 4285 function shouldProxy(hostname, port) { 4286 var NO_PROXY = (getEnv("npm_config_no_proxy") || getEnv("no_proxy")).toLowerCase(); 4287 if (!NO_PROXY) { 4288 return true; 4289 } 4290 if (NO_PROXY === "*") { 4291 return false; 4292 } 4293 return NO_PROXY.split(/[,\s]/).every(function(proxy) { 4294 if (!proxy) { 4295 return true; 4296 } 4297 var parsedProxy = proxy.match(/^(.+):(\d+)$/); 4298 var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy; 4299 var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0; 4300 if (parsedProxyPort && parsedProxyPort !== port) { 4301 return true; 4302 } 4303 if (!/^[.*]/.test(parsedProxyHostname)) { 4304 return hostname !== parsedProxyHostname; 4305 } 4306 if (parsedProxyHostname.charAt(0) === "*") { 4307 parsedProxyHostname = parsedProxyHostname.slice(1); 4308 } 4309 return !stringEndsWith.call(hostname, parsedProxyHostname); 4310 }); 4311 } 4312 function getEnv(key) { 4313 return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || ""; 4314 } 4315 exports.getProxyForUrl = getProxyForUrl; 4316 } 4317}); 4318 4319// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/symbols.js 4320var require_symbols = __commonJS({ 4321 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/symbols.js"(exports, module2) { 4322 module2.exports = { 4323 kClose: Symbol("close"), 4324 kDestroy: Symbol("destroy"), 4325 kDispatch: Symbol("dispatch"), 4326 kUrl: Symbol("url"), 4327 kWriting: Symbol("writing"), 4328 kResuming: Symbol("resuming"), 4329 kQueue: Symbol("queue"), 4330 kConnect: Symbol("connect"), 4331 kConnecting: Symbol("connecting"), 4332 kHeadersList: Symbol("headers list"), 4333 kKeepAliveDefaultTimeout: Symbol("default keep alive timeout"), 4334 kKeepAliveMaxTimeout: Symbol("max keep alive timeout"), 4335 kKeepAliveTimeoutThreshold: Symbol("keep alive timeout threshold"), 4336 kKeepAliveTimeoutValue: Symbol("keep alive timeout"), 4337 kKeepAlive: Symbol("keep alive"), 4338 kHeadersTimeout: Symbol("headers timeout"), 4339 kBodyTimeout: Symbol("body timeout"), 4340 kServerName: Symbol("server name"), 4341 kLocalAddress: Symbol("local address"), 4342 kHost: Symbol("host"), 4343 kNoRef: Symbol("no ref"), 4344 kBodyUsed: Symbol("used"), 4345 kRunning: Symbol("running"), 4346 kBlocking: Symbol("blocking"), 4347 kPending: Symbol("pending"), 4348 kSize: Symbol("size"), 4349 kBusy: Symbol("busy"), 4350 kQueued: Symbol("queued"), 4351 kFree: Symbol("free"), 4352 kConnected: Symbol("connected"), 4353 kClosed: Symbol("closed"), 4354 kNeedDrain: Symbol("need drain"), 4355 kReset: Symbol("reset"), 4356 kDestroyed: Symbol.for("nodejs.stream.destroyed"), 4357 kMaxHeadersSize: Symbol("max headers size"), 4358 kRunningIdx: Symbol("running index"), 4359 kPendingIdx: Symbol("pending index"), 4360 kError: Symbol("error"), 4361 kClients: Symbol("clients"), 4362 kClient: Symbol("client"), 4363 kParser: Symbol("parser"), 4364 kOnDestroyed: Symbol("destroy callbacks"), 4365 kPipelining: Symbol("pipelining"), 4366 kSocket: Symbol("socket"), 4367 kHostHeader: Symbol("host header"), 4368 kConnector: Symbol("connector"), 4369 kStrictContentLength: Symbol("strict content length"), 4370 kMaxRedirections: Symbol("maxRedirections"), 4371 kMaxRequests: Symbol("maxRequestsPerClient"), 4372 kProxy: Symbol("proxy agent options"), 4373 kCounter: Symbol("socket request counter"), 4374 kInterceptors: Symbol("dispatch interceptors"), 4375 kMaxResponseSize: Symbol("max response size"), 4376 kHTTP2Session: Symbol("http2Session"), 4377 kHTTP2SessionState: Symbol("http2Session state"), 4378 kHTTP2BuildRequest: Symbol("http2 build request"), 4379 kHTTP1BuildRequest: Symbol("http1 build request"), 4380 kHTTP2CopyHeaders: Symbol("http2 copy headers"), 4381 kHTTPConnVersion: Symbol("http connection version"), 4382 kRetryHandlerDefaultRetry: Symbol("retry agent default retry"), 4383 kConstruct: Symbol("constructable") 4384 }; 4385 } 4386}); 4387 4388// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/errors.js 4389var require_errors = __commonJS({ 4390 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/errors.js"(exports, module2) { 4391 "use strict"; 4392 var UndiciError = class extends Error { 4393 constructor(message) { 4394 super(message); 4395 this.name = "UndiciError"; 4396 this.code = "UND_ERR"; 4397 } 4398 }; 4399 var ConnectTimeoutError = class extends UndiciError { 4400 constructor(message) { 4401 super(message); 4402 this.name = "ConnectTimeoutError"; 4403 this.message = message || "Connect Timeout Error"; 4404 this.code = "UND_ERR_CONNECT_TIMEOUT"; 4405 } 4406 }; 4407 var HeadersTimeoutError = class extends UndiciError { 4408 constructor(message) { 4409 super(message); 4410 this.name = "HeadersTimeoutError"; 4411 this.message = message || "Headers Timeout Error"; 4412 this.code = "UND_ERR_HEADERS_TIMEOUT"; 4413 } 4414 }; 4415 var HeadersOverflowError = class extends UndiciError { 4416 constructor(message) { 4417 super(message); 4418 this.name = "HeadersOverflowError"; 4419 this.message = message || "Headers Overflow Error"; 4420 this.code = "UND_ERR_HEADERS_OVERFLOW"; 4421 } 4422 }; 4423 var BodyTimeoutError = class extends UndiciError { 4424 constructor(message) { 4425 super(message); 4426 this.name = "BodyTimeoutError"; 4427 this.message = message || "Body Timeout Error"; 4428 this.code = "UND_ERR_BODY_TIMEOUT"; 4429 } 4430 }; 4431 var ResponseStatusCodeError = class extends UndiciError { 4432 constructor(message, statusCode, headers, body) { 4433 super(message); 4434 this.name = "ResponseStatusCodeError"; 4435 this.message = message || "Response Status Code Error"; 4436 this.code = "UND_ERR_RESPONSE_STATUS_CODE"; 4437 this.body = body; 4438 this.status = statusCode; 4439 this.statusCode = statusCode; 4440 this.headers = headers; 4441 } 4442 }; 4443 var InvalidArgumentError = class extends UndiciError { 4444 constructor(message) { 4445 super(message); 4446 this.name = "InvalidArgumentError"; 4447 this.message = message || "Invalid Argument Error"; 4448 this.code = "UND_ERR_INVALID_ARG"; 4449 } 4450 }; 4451 var InvalidReturnValueError = class extends UndiciError { 4452 constructor(message) { 4453 super(message); 4454 this.name = "InvalidReturnValueError"; 4455 this.message = message || "Invalid Return Value Error"; 4456 this.code = "UND_ERR_INVALID_RETURN_VALUE"; 4457 } 4458 }; 4459 var AbortError = class extends UndiciError { 4460 constructor(message) { 4461 super(message); 4462 this.name = "AbortError"; 4463 this.message = message || "The operation was aborted"; 4464 } 4465 }; 4466 var RequestAbortedError = class extends AbortError { 4467 constructor(message) { 4468 super(message); 4469 this.name = "AbortError"; 4470 this.message = message || "Request aborted"; 4471 this.code = "UND_ERR_ABORTED"; 4472 } 4473 }; 4474 var InformationalError = class extends UndiciError { 4475 constructor(message) { 4476 super(message); 4477 this.name = "InformationalError"; 4478 this.message = message || "Request information"; 4479 this.code = "UND_ERR_INFO"; 4480 } 4481 }; 4482 var RequestContentLengthMismatchError = class extends UndiciError { 4483 constructor(message) { 4484 super(message); 4485 this.name = "RequestContentLengthMismatchError"; 4486 this.message = message || "Request body length does not match content-length header"; 4487 this.code = "UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"; 4488 } 4489 }; 4490 var ResponseContentLengthMismatchError = class extends UndiciError { 4491 constructor(message) { 4492 super(message); 4493 this.name = "ResponseContentLengthMismatchError"; 4494 this.message = message || "Response body length does not match content-length header"; 4495 this.code = "UND_ERR_RES_CONTENT_LENGTH_MISMATCH"; 4496 } 4497 }; 4498 var ClientDestroyedError = class extends UndiciError { 4499 constructor(message) { 4500 super(message); 4501 this.name = "ClientDestroyedError"; 4502 this.message = message || "The client is destroyed"; 4503 this.code = "UND_ERR_DESTROYED"; 4504 } 4505 }; 4506 var ClientClosedError = class extends UndiciError { 4507 constructor(message) { 4508 super(message); 4509 this.name = "ClientClosedError"; 4510 this.message = message || "The client is closed"; 4511 this.code = "UND_ERR_CLOSED"; 4512 } 4513 }; 4514 var SocketError = class extends UndiciError { 4515 constructor(message, socket) { 4516 super(message); 4517 this.name = "SocketError"; 4518 this.message = message || "Socket error"; 4519 this.code = "UND_ERR_SOCKET"; 4520 this.socket = socket; 4521 } 4522 }; 4523 var NotSupportedError = class extends UndiciError { 4524 constructor(message) { 4525 super(message); 4526 this.name = "NotSupportedError"; 4527 this.message = message || "Not supported error"; 4528 this.code = "UND_ERR_NOT_SUPPORTED"; 4529 } 4530 }; 4531 var BalancedPoolMissingUpstreamError = class extends UndiciError { 4532 constructor(message) { 4533 super(message); 4534 this.name = "MissingUpstreamError"; 4535 this.message = message || "No upstream has been added to the BalancedPool"; 4536 this.code = "UND_ERR_BPL_MISSING_UPSTREAM"; 4537 } 4538 }; 4539 var HTTPParserError = class extends Error { 4540 constructor(message, code, data) { 4541 super(message); 4542 this.name = "HTTPParserError"; 4543 this.code = code ? `HPE_${code}` : void 0; 4544 this.data = data ? data.toString() : void 0; 4545 } 4546 }; 4547 var ResponseExceededMaxSizeError = class extends UndiciError { 4548 constructor(message) { 4549 super(message); 4550 this.name = "ResponseExceededMaxSizeError"; 4551 this.message = message || "Response content exceeded max size"; 4552 this.code = "UND_ERR_RES_EXCEEDED_MAX_SIZE"; 4553 } 4554 }; 4555 var RequestRetryError = class extends UndiciError { 4556 constructor(message, code, { headers, data }) { 4557 super(message); 4558 this.name = "RequestRetryError"; 4559 this.message = message || "Request retry error"; 4560 this.code = "UND_ERR_REQ_RETRY"; 4561 this.statusCode = code; 4562 this.data = data; 4563 this.headers = headers; 4564 } 4565 }; 4566 module2.exports = { 4567 AbortError, 4568 HTTPParserError, 4569 UndiciError, 4570 HeadersTimeoutError, 4571 HeadersOverflowError, 4572 BodyTimeoutError, 4573 RequestContentLengthMismatchError, 4574 ConnectTimeoutError, 4575 ResponseStatusCodeError, 4576 InvalidArgumentError, 4577 InvalidReturnValueError, 4578 RequestAbortedError, 4579 ClientDestroyedError, 4580 ClientClosedError, 4581 InformationalError, 4582 SocketError, 4583 NotSupportedError, 4584 ResponseContentLengthMismatchError, 4585 BalancedPoolMissingUpstreamError, 4586 ResponseExceededMaxSizeError, 4587 RequestRetryError 4588 }; 4589 } 4590}); 4591 4592// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/dispatcher.js 4593var require_dispatcher = __commonJS({ 4594 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/dispatcher.js"(exports, module2) { 4595 "use strict"; 4596 var EventEmitter = require("node:events"); 4597 var Dispatcher = class extends EventEmitter { 4598 dispatch() { 4599 throw new Error("not implemented"); 4600 } 4601 close() { 4602 throw new Error("not implemented"); 4603 } 4604 destroy() { 4605 throw new Error("not implemented"); 4606 } 4607 }; 4608 module2.exports = Dispatcher; 4609 } 4610}); 4611 4612// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/dispatcher-base.js 4613var require_dispatcher_base = __commonJS({ 4614 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/dispatcher-base.js"(exports, module2) { 4615 "use strict"; 4616 var Dispatcher = require_dispatcher(); 4617 var { 4618 ClientDestroyedError, 4619 ClientClosedError, 4620 InvalidArgumentError 4621 } = require_errors(); 4622 var { kDestroy, kClose, kDispatch, kInterceptors } = require_symbols(); 4623 var kDestroyed = Symbol("destroyed"); 4624 var kClosed = Symbol("closed"); 4625 var kOnDestroyed = Symbol("onDestroyed"); 4626 var kOnClosed = Symbol("onClosed"); 4627 var kInterceptedDispatch = Symbol("Intercepted Dispatch"); 4628 var DispatcherBase = class extends Dispatcher { 4629 constructor() { 4630 super(); 4631 this[kDestroyed] = false; 4632 this[kOnDestroyed] = null; 4633 this[kClosed] = false; 4634 this[kOnClosed] = []; 4635 } 4636 get destroyed() { 4637 return this[kDestroyed]; 4638 } 4639 get closed() { 4640 return this[kClosed]; 4641 } 4642 get interceptors() { 4643 return this[kInterceptors]; 4644 } 4645 set interceptors(newInterceptors) { 4646 if (newInterceptors) { 4647 for (let i = newInterceptors.length - 1; i >= 0; i--) { 4648 const interceptor = this[kInterceptors][i]; 4649 if (typeof interceptor !== "function") { 4650 throw new InvalidArgumentError("interceptor must be an function"); 4651 } 4652 } 4653 } 4654 this[kInterceptors] = newInterceptors; 4655 } 4656 close(callback) { 4657 if (callback === void 0) { 4658 return new Promise((resolve, reject) => { 4659 this.close((err, data) => { 4660 return err ? reject(err) : resolve(data); 4661 }); 4662 }); 4663 } 4664 if (typeof callback !== "function") { 4665 throw new InvalidArgumentError("invalid callback"); 4666 } 4667 if (this[kDestroyed]) { 4668 queueMicrotask(() => callback(new ClientDestroyedError(), null)); 4669 return; 4670 } 4671 if (this[kClosed]) { 4672 if (this[kOnClosed]) { 4673 this[kOnClosed].push(callback); 4674 } else { 4675 queueMicrotask(() => callback(null, null)); 4676 } 4677 return; 4678 } 4679 this[kClosed] = true; 4680 this[kOnClosed].push(callback); 4681 const onClosed = () => { 4682 const callbacks = this[kOnClosed]; 4683 this[kOnClosed] = null; 4684 for (let i = 0; i < callbacks.length; i++) { 4685 callbacks[i](null, null); 4686 } 4687 }; 4688 this[kClose]().then(() => this.destroy()).then(() => { 4689 queueMicrotask(onClosed); 4690 }); 4691 } 4692 destroy(err, callback) { 4693 if (typeof err === "function") { 4694 callback = err; 4695 err = null; 4696 } 4697 if (callback === void 0) { 4698 return new Promise((resolve, reject) => { 4699 this.destroy(err, (err2, data) => { 4700 return err2 ? ( 4701 /* istanbul ignore next: should never error */ 4702 reject(err2) 4703 ) : resolve(data); 4704 }); 4705 }); 4706 } 4707 if (typeof callback !== "function") { 4708 throw new InvalidArgumentError("invalid callback"); 4709 } 4710 if (this[kDestroyed]) { 4711 if (this[kOnDestroyed]) { 4712 this[kOnDestroyed].push(callback); 4713 } else { 4714 queueMicrotask(() => callback(null, null)); 4715 } 4716 return; 4717 } 4718 if (!err) { 4719 err = new ClientDestroyedError(); 4720 } 4721 this[kDestroyed] = true; 4722 this[kOnDestroyed] = this[kOnDestroyed] || []; 4723 this[kOnDestroyed].push(callback); 4724 const onDestroyed = () => { 4725 const callbacks = this[kOnDestroyed]; 4726 this[kOnDestroyed] = null; 4727 for (let i = 0; i < callbacks.length; i++) { 4728 callbacks[i](null, null); 4729 } 4730 }; 4731 this[kDestroy](err).then(() => { 4732 queueMicrotask(onDestroyed); 4733 }); 4734 } 4735 [kInterceptedDispatch](opts, handler) { 4736 if (!this[kInterceptors] || this[kInterceptors].length === 0) { 4737 this[kInterceptedDispatch] = this[kDispatch]; 4738 return this[kDispatch](opts, handler); 4739 } 4740 let dispatch = this[kDispatch].bind(this); 4741 for (let i = this[kInterceptors].length - 1; i >= 0; i--) { 4742 dispatch = this[kInterceptors][i](dispatch); 4743 } 4744 this[kInterceptedDispatch] = dispatch; 4745 return dispatch(opts, handler); 4746 } 4747 dispatch(opts, handler) { 4748 if (!handler || typeof handler !== "object") { 4749 throw new InvalidArgumentError("handler must be an object"); 4750 } 4751 try { 4752 if (!opts || typeof opts !== "object") { 4753 throw new InvalidArgumentError("opts must be an object."); 4754 } 4755 if (this[kDestroyed] || this[kOnDestroyed]) { 4756 throw new ClientDestroyedError(); 4757 } 4758 if (this[kClosed]) { 4759 throw new ClientClosedError(); 4760 } 4761 return this[kInterceptedDispatch](opts, handler); 4762 } catch (err) { 4763 if (typeof handler.onError !== "function") { 4764 throw new InvalidArgumentError("invalid onError method"); 4765 } 4766 handler.onError(err); 4767 return false; 4768 } 4769 } 4770 }; 4771 module2.exports = DispatcherBase; 4772 } 4773}); 4774 4775// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/node/fixed-queue.js 4776var require_fixed_queue = __commonJS({ 4777 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/node/fixed-queue.js"(exports, module2) { 4778 "use strict"; 4779 var kSize = 2048; 4780 var kMask = kSize - 1; 4781 var FixedCircularBuffer = class { 4782 constructor() { 4783 this.bottom = 0; 4784 this.top = 0; 4785 this.list = new Array(kSize); 4786 this.next = null; 4787 } 4788 isEmpty() { 4789 return this.top === this.bottom; 4790 } 4791 isFull() { 4792 return (this.top + 1 & kMask) === this.bottom; 4793 } 4794 push(data) { 4795 this.list[this.top] = data; 4796 this.top = this.top + 1 & kMask; 4797 } 4798 shift() { 4799 const nextItem = this.list[this.bottom]; 4800 if (nextItem === void 0) 4801 return null; 4802 this.list[this.bottom] = void 0; 4803 this.bottom = this.bottom + 1 & kMask; 4804 return nextItem; 4805 } 4806 }; 4807 module2.exports = class FixedQueue { 4808 constructor() { 4809 this.head = this.tail = new FixedCircularBuffer(); 4810 } 4811 isEmpty() { 4812 return this.head.isEmpty(); 4813 } 4814 push(data) { 4815 if (this.head.isFull()) { 4816 this.head = this.head.next = new FixedCircularBuffer(); 4817 } 4818 this.head.push(data); 4819 } 4820 shift() { 4821 const tail = this.tail; 4822 const next = tail.shift(); 4823 if (tail.isEmpty() && tail.next !== null) { 4824 this.tail = tail.next; 4825 } 4826 return next; 4827 } 4828 }; 4829 } 4830}); 4831 4832// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/pool-stats.js 4833var require_pool_stats = __commonJS({ 4834 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/pool-stats.js"(exports, module2) { 4835 var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols(); 4836 var kPool = Symbol("pool"); 4837 var PoolStats = class { 4838 constructor(pool) { 4839 this[kPool] = pool; 4840 } 4841 get connected() { 4842 return this[kPool][kConnected]; 4843 } 4844 get free() { 4845 return this[kPool][kFree]; 4846 } 4847 get pending() { 4848 return this[kPool][kPending]; 4849 } 4850 get queued() { 4851 return this[kPool][kQueued]; 4852 } 4853 get running() { 4854 return this[kPool][kRunning]; 4855 } 4856 get size() { 4857 return this[kPool][kSize]; 4858 } 4859 }; 4860 module2.exports = PoolStats; 4861 } 4862}); 4863 4864// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/pool-base.js 4865var require_pool_base = __commonJS({ 4866 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/pool-base.js"(exports, module2) { 4867 "use strict"; 4868 var DispatcherBase = require_dispatcher_base(); 4869 var FixedQueue = require_fixed_queue(); 4870 var { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require_symbols(); 4871 var PoolStats = require_pool_stats(); 4872 var kClients = Symbol("clients"); 4873 var kNeedDrain = Symbol("needDrain"); 4874 var kQueue = Symbol("queue"); 4875 var kClosedResolve = Symbol("closed resolve"); 4876 var kOnDrain = Symbol("onDrain"); 4877 var kOnConnect = Symbol("onConnect"); 4878 var kOnDisconnect = Symbol("onDisconnect"); 4879 var kOnConnectionError = Symbol("onConnectionError"); 4880 var kGetDispatcher = Symbol("get dispatcher"); 4881 var kAddClient = Symbol("add client"); 4882 var kRemoveClient = Symbol("remove client"); 4883 var kStats = Symbol("stats"); 4884 var PoolBase = class extends DispatcherBase { 4885 constructor() { 4886 super(); 4887 this[kQueue] = new FixedQueue(); 4888 this[kClients] = []; 4889 this[kQueued] = 0; 4890 const pool = this; 4891 this[kOnDrain] = function onDrain(origin, targets) { 4892 const queue = pool[kQueue]; 4893 let needDrain = false; 4894 while (!needDrain) { 4895 const item = queue.shift(); 4896 if (!item) { 4897 break; 4898 } 4899 pool[kQueued]--; 4900 needDrain = !this.dispatch(item.opts, item.handler); 4901 } 4902 this[kNeedDrain] = needDrain; 4903 if (!this[kNeedDrain] && pool[kNeedDrain]) { 4904 pool[kNeedDrain] = false; 4905 pool.emit("drain", origin, [pool, ...targets]); 4906 } 4907 if (pool[kClosedResolve] && queue.isEmpty()) { 4908 Promise.all(pool[kClients].map((c) => c.close())).then(pool[kClosedResolve]); 4909 } 4910 }; 4911 this[kOnConnect] = (origin, targets) => { 4912 pool.emit("connect", origin, [pool, ...targets]); 4913 }; 4914 this[kOnDisconnect] = (origin, targets, err) => { 4915 pool.emit("disconnect", origin, [pool, ...targets], err); 4916 }; 4917 this[kOnConnectionError] = (origin, targets, err) => { 4918 pool.emit("connectionError", origin, [pool, ...targets], err); 4919 }; 4920 this[kStats] = new PoolStats(this); 4921 } 4922 get [kBusy]() { 4923 return this[kNeedDrain]; 4924 } 4925 get [kConnected]() { 4926 return this[kClients].filter((client) => client[kConnected]).length; 4927 } 4928 get [kFree]() { 4929 return this[kClients].filter((client) => client[kConnected] && !client[kNeedDrain]).length; 4930 } 4931 get [kPending]() { 4932 let ret = this[kQueued]; 4933 for (const { [kPending]: pending } of this[kClients]) { 4934 ret += pending; 4935 } 4936 return ret; 4937 } 4938 get [kRunning]() { 4939 let ret = 0; 4940 for (const { [kRunning]: running } of this[kClients]) { 4941 ret += running; 4942 } 4943 return ret; 4944 } 4945 get [kSize]() { 4946 let ret = this[kQueued]; 4947 for (const { [kSize]: size } of this[kClients]) { 4948 ret += size; 4949 } 4950 return ret; 4951 } 4952 get stats() { 4953 return this[kStats]; 4954 } 4955 async [kClose]() { 4956 if (this[kQueue].isEmpty()) { 4957 return Promise.all(this[kClients].map((c) => c.close())); 4958 } else { 4959 return new Promise((resolve) => { 4960 this[kClosedResolve] = resolve; 4961 }); 4962 } 4963 } 4964 async [kDestroy](err) { 4965 while (true) { 4966 const item = this[kQueue].shift(); 4967 if (!item) { 4968 break; 4969 } 4970 item.handler.onError(err); 4971 } 4972 return Promise.all(this[kClients].map((c) => c.destroy(err))); 4973 } 4974 [kDispatch](opts, handler) { 4975 const dispatcher = this[kGetDispatcher](); 4976 if (!dispatcher) { 4977 this[kNeedDrain] = true; 4978 this[kQueue].push({ opts, handler }); 4979 this[kQueued]++; 4980 } else if (!dispatcher.dispatch(opts, handler)) { 4981 dispatcher[kNeedDrain] = true; 4982 this[kNeedDrain] = !this[kGetDispatcher](); 4983 } 4984 return !this[kNeedDrain]; 4985 } 4986 [kAddClient](client) { 4987 client.on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); 4988 this[kClients].push(client); 4989 if (this[kNeedDrain]) { 4990 process.nextTick(() => { 4991 if (this[kNeedDrain]) { 4992 this[kOnDrain](client[kUrl], [this, client]); 4993 } 4994 }); 4995 } 4996 return this; 4997 } 4998 [kRemoveClient](client) { 4999 client.close(() => { 5000 const idx = this[kClients].indexOf(client); 5001 if (idx !== -1) { 5002 this[kClients].splice(idx, 1); 5003 } 5004 }); 5005 this[kNeedDrain] = this[kClients].some((dispatcher) => !dispatcher[kNeedDrain] && dispatcher.closed !== true && dispatcher.destroyed !== true); 5006 } 5007 }; 5008 module2.exports = { 5009 PoolBase, 5010 kClients, 5011 kNeedDrain, 5012 kAddClient, 5013 kRemoveClient, 5014 kGetDispatcher 5015 }; 5016 } 5017}); 5018 5019// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/constants.js 5020var require_constants2 = __commonJS({ 5021 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/constants.js"(exports, module2) { 5022 "use strict"; 5023 var headerNameLowerCasedRecord = {}; 5024 var wellknownHeaderNames = [ 5025 "Accept", 5026 "Accept-Encoding", 5027 "Accept-Language", 5028 "Accept-Ranges", 5029 "Access-Control-Allow-Credentials", 5030 "Access-Control-Allow-Headers", 5031 "Access-Control-Allow-Methods", 5032 "Access-Control-Allow-Origin", 5033 "Access-Control-Expose-Headers", 5034 "Access-Control-Max-Age", 5035 "Access-Control-Request-Headers", 5036 "Access-Control-Request-Method", 5037 "Age", 5038 "Allow", 5039 "Alt-Svc", 5040 "Alt-Used", 5041 "Authorization", 5042 "Cache-Control", 5043 "Clear-Site-Data", 5044 "Connection", 5045 "Content-Disposition", 5046 "Content-Encoding", 5047 "Content-Language", 5048 "Content-Length", 5049 "Content-Location", 5050 "Content-Range", 5051 "Content-Security-Policy", 5052 "Content-Security-Policy-Report-Only", 5053 "Content-Type", 5054 "Cookie", 5055 "Cross-Origin-Embedder-Policy", 5056 "Cross-Origin-Opener-Policy", 5057 "Cross-Origin-Resource-Policy", 5058 "Date", 5059 "Device-Memory", 5060 "Downlink", 5061 "ECT", 5062 "ETag", 5063 "Expect", 5064 "Expect-CT", 5065 "Expires", 5066 "Forwarded", 5067 "From", 5068 "Host", 5069 "If-Match", 5070 "If-Modified-Since", 5071 "If-None-Match", 5072 "If-Range", 5073 "If-Unmodified-Since", 5074 "Keep-Alive", 5075 "Last-Modified", 5076 "Link", 5077 "Location", 5078 "Max-Forwards", 5079 "Origin", 5080 "Permissions-Policy", 5081 "Pragma", 5082 "Proxy-Authenticate", 5083 "Proxy-Authorization", 5084 "RTT", 5085 "Range", 5086 "Referer", 5087 "Referrer-Policy", 5088 "Refresh", 5089 "Retry-After", 5090 "Sec-WebSocket-Accept", 5091 "Sec-WebSocket-Extensions", 5092 "Sec-WebSocket-Key", 5093 "Sec-WebSocket-Protocol", 5094 "Sec-WebSocket-Version", 5095 "Server", 5096 "Server-Timing", 5097 "Service-Worker-Allowed", 5098 "Service-Worker-Navigation-Preload", 5099 "Set-Cookie", 5100 "SourceMap", 5101 "Strict-Transport-Security", 5102 "Supports-Loading-Mode", 5103 "TE", 5104 "Timing-Allow-Origin", 5105 "Trailer", 5106 "Transfer-Encoding", 5107 "Upgrade", 5108 "Upgrade-Insecure-Requests", 5109 "User-Agent", 5110 "Vary", 5111 "Via", 5112 "WWW-Authenticate", 5113 "X-Content-Type-Options", 5114 "X-DNS-Prefetch-Control", 5115 "X-Frame-Options", 5116 "X-Permitted-Cross-Domain-Policies", 5117 "X-Powered-By", 5118 "X-Requested-With", 5119 "X-XSS-Protection" 5120 ]; 5121 for (let i = 0; i < wellknownHeaderNames.length; ++i) { 5122 const key = wellknownHeaderNames[i]; 5123 const lowerCasedKey = key.toLowerCase(); 5124 headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey; 5125 } 5126 Object.setPrototypeOf(headerNameLowerCasedRecord, null); 5127 module2.exports = { 5128 wellknownHeaderNames, 5129 headerNameLowerCasedRecord 5130 }; 5131 } 5132}); 5133 5134// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/tree.js 5135var require_tree = __commonJS({ 5136 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/tree.js"(exports, module2) { 5137 "use strict"; 5138 var { 5139 wellknownHeaderNames, 5140 headerNameLowerCasedRecord 5141 } = require_constants2(); 5142 var TstNode = class _TstNode { 5143 /** @type {any} */ 5144 value = null; 5145 /** @type {null | TstNode} */ 5146 left = null; 5147 /** @type {null | TstNode} */ 5148 middle = null; 5149 /** @type {null | TstNode} */ 5150 right = null; 5151 /** @type {number} */ 5152 code; 5153 /** 5154 * @param {Uint8Array} key 5155 * @param {any} value 5156 * @param {number} index 5157 */ 5158 constructor(key, value, index) { 5159 if (index === void 0 || index >= key.length) { 5160 throw new TypeError("Unreachable"); 5161 } 5162 this.code = key[index]; 5163 if (key.length !== ++index) { 5164 this.middle = new _TstNode(key, value, index); 5165 } else { 5166 this.value = value; 5167 } 5168 } 5169 /** 5170 * @param {Uint8Array} key 5171 * @param {any} value 5172 * @param {number} index 5173 */ 5174 add(key, value, index) { 5175 if (index === void 0 || index >= key.length) { 5176 throw new TypeError("Unreachable"); 5177 } 5178 const code = key[index]; 5179 if (this.code === code) { 5180 if (key.length === ++index) { 5181 this.value = value; 5182 } else if (this.middle !== null) { 5183 this.middle.add(key, value, index); 5184 } else { 5185 this.middle = new _TstNode(key, value, index); 5186 } 5187 } else if (this.code < code) { 5188 if (this.left !== null) { 5189 this.left.add(key, value, index); 5190 } else { 5191 this.left = new _TstNode(key, value, index); 5192 } 5193 } else if (this.right !== null) { 5194 this.right.add(key, value, index); 5195 } else { 5196 this.right = new _TstNode(key, value, index); 5197 } 5198 } 5199 /** 5200 * @param {Uint8Array} key 5201 * @return {TstNode | null} 5202 */ 5203 search(key) { 5204 const keylength = key.length; 5205 let index = 0; 5206 let node = this; 5207 while (node !== null && index < keylength) { 5208 let code = key[index]; 5209 if (code >= 65 && code <= 90) { 5210 code |= 32; 5211 } 5212 while (node !== null) { 5213 if (code === node.code) { 5214 if (keylength === ++index) { 5215 return node; 5216 } 5217 node = node.middle; 5218 break; 5219 } 5220 node = node.code < code ? node.left : node.right; 5221 } 5222 } 5223 return null; 5224 } 5225 }; 5226 var TernarySearchTree = class { 5227 /** @type {TstNode | null} */ 5228 node = null; 5229 /** 5230 * @param {Uint8Array} key 5231 * @param {any} value 5232 * */ 5233 insert(key, value) { 5234 if (this.node === null) { 5235 this.node = new TstNode(key, value, 0); 5236 } else { 5237 this.node.add(key, value, 0); 5238 } 5239 } 5240 /** 5241 * @param {Uint8Array} key 5242 */ 5243 lookup(key) { 5244 return this.node?.search(key)?.value ?? null; 5245 } 5246 }; 5247 var tree = new TernarySearchTree(); 5248 for (let i = 0; i < wellknownHeaderNames.length; ++i) { 5249 const key = headerNameLowerCasedRecord[wellknownHeaderNames[i]]; 5250 tree.insert(Buffer.from(key), key); 5251 } 5252 module2.exports = { 5253 TernarySearchTree, 5254 tree 5255 }; 5256 } 5257}); 5258 5259// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/util.js 5260var require_util = __commonJS({ 5261 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/util.js"(exports, module2) { 5262 "use strict"; 5263 var assert3 = require("node:assert"); 5264 var { kDestroyed, kBodyUsed } = require_symbols(); 5265 var { IncomingMessage } = require("node:http"); 5266 var stream = require("node:stream"); 5267 var net = require("node:net"); 5268 var { InvalidArgumentError } = require_errors(); 5269 var { Blob: Blob2 } = require("node:buffer"); 5270 var nodeUtil = require("node:util"); 5271 var { stringify } = require("node:querystring"); 5272 var { headerNameLowerCasedRecord } = require_constants2(); 5273 var { tree } = require_tree(); 5274 var [nodeMajor, nodeMinor] = process.versions.node.split(".").map((v) => Number(v)); 5275 function nop() { 5276 } 5277 function isStream(obj) { 5278 return obj && typeof obj === "object" && typeof obj.pipe === "function" && typeof obj.on === "function"; 5279 } 5280 function isBlobLike(object) { 5281 return Blob2 && object instanceof Blob2 || object && typeof object === "object" && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && /^(Blob|File)$/.test(object[Symbol.toStringTag]); 5282 } 5283 function buildURL(url, queryParams) { 5284 if (url.includes("?") || url.includes("#")) { 5285 throw new Error('Query params cannot be passed when url already contains "?" or "#".'); 5286 } 5287 const stringified = stringify(queryParams); 5288 if (stringified) { 5289 url += "?" + stringified; 5290 } 5291 return url; 5292 } 5293 function parseURL(url) { 5294 if (typeof url === "string") { 5295 url = new URL(url); 5296 if (!/^https?:/.test(url.origin || url.protocol)) { 5297 throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); 5298 } 5299 return url; 5300 } 5301 if (!url || typeof url !== "object") { 5302 throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object."); 5303 } 5304 if (!/^https?:/.test(url.origin || url.protocol)) { 5305 throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); 5306 } 5307 if (!(url instanceof URL)) { 5308 if (url.port != null && url.port !== "" && !Number.isFinite(parseInt(url.port))) { 5309 throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer."); 5310 } 5311 if (url.path != null && typeof url.path !== "string") { 5312 throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined."); 5313 } 5314 if (url.pathname != null && typeof url.pathname !== "string") { 5315 throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined."); 5316 } 5317 if (url.hostname != null && typeof url.hostname !== "string") { 5318 throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined."); 5319 } 5320 if (url.origin != null && typeof url.origin !== "string") { 5321 throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined."); 5322 } 5323 const port = url.port != null ? url.port : url.protocol === "https:" ? 443 : 80; 5324 let origin = url.origin != null ? url.origin : `${url.protocol}//${url.hostname}:${port}`; 5325 let path10 = url.path != null ? url.path : `${url.pathname || ""}${url.search || ""}`; 5326 if (origin.endsWith("/")) { 5327 origin = origin.substring(0, origin.length - 1); 5328 } 5329 if (path10 && !path10.startsWith("/")) { 5330 path10 = `/${path10}`; 5331 } 5332 url = new URL(origin + path10); 5333 } 5334 return url; 5335 } 5336 function parseOrigin(url) { 5337 url = parseURL(url); 5338 if (url.pathname !== "/" || url.search || url.hash) { 5339 throw new InvalidArgumentError("invalid url"); 5340 } 5341 return url; 5342 } 5343 function getHostname(host) { 5344 if (host[0] === "[") { 5345 const idx2 = host.indexOf("]"); 5346 assert3(idx2 !== -1); 5347 return host.substring(1, idx2); 5348 } 5349 const idx = host.indexOf(":"); 5350 if (idx === -1) 5351 return host; 5352 return host.substring(0, idx); 5353 } 5354 function getServerName(host) { 5355 if (!host) { 5356 return null; 5357 } 5358 assert3.strictEqual(typeof host, "string"); 5359 const servername = getHostname(host); 5360 if (net.isIP(servername)) { 5361 return ""; 5362 } 5363 return servername; 5364 } 5365 function deepClone(obj) { 5366 return JSON.parse(JSON.stringify(obj)); 5367 } 5368 function isAsyncIterable(obj) { 5369 return !!(obj != null && typeof obj[Symbol.asyncIterator] === "function"); 5370 } 5371 function isIterable(obj) { 5372 return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function")); 5373 } 5374 function bodyLength(body) { 5375 if (body == null) { 5376 return 0; 5377 } else if (isStream(body)) { 5378 const state = body._readableState; 5379 return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) ? state.length : null; 5380 } else if (isBlobLike(body)) { 5381 return body.size != null ? body.size : null; 5382 } else if (isBuffer(body)) { 5383 return body.byteLength; 5384 } 5385 return null; 5386 } 5387 function isDestroyed(stream2) { 5388 return !stream2 || !!(stream2.destroyed || stream2[kDestroyed]); 5389 } 5390 function isReadableAborted(stream2) { 5391 const state = stream2?._readableState; 5392 return isDestroyed(stream2) && state && !state.endEmitted; 5393 } 5394 function destroy(stream2, err) { 5395 if (stream2 == null || !isStream(stream2) || isDestroyed(stream2)) { 5396 return; 5397 } 5398 if (typeof stream2.destroy === "function") { 5399 if (Object.getPrototypeOf(stream2).constructor === IncomingMessage) { 5400 stream2.socket = null; 5401 } 5402 stream2.destroy(err); 5403 } else if (err) { 5404 process.nextTick((stream3, err2) => { 5405 stream3.emit("error", err2); 5406 }, stream2, err); 5407 } 5408 if (stream2.destroyed !== true) { 5409 stream2[kDestroyed] = true; 5410 } 5411 } 5412 var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; 5413 function parseKeepAliveTimeout(val) { 5414 const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR); 5415 return m ? parseInt(m[1], 10) * 1e3 : null; 5416 } 5417 function headerNameToString(value) { 5418 return typeof value === "string" ? headerNameLowerCasedRecord[value] ?? value.toLowerCase() : tree.lookup(value) ?? value.toString("latin1").toLowerCase(); 5419 } 5420 function bufferToLowerCasedHeaderName(value) { 5421 return tree.lookup(value) ?? value.toString("latin1").toLowerCase(); 5422 } 5423 function parseHeaders(headers, obj) { 5424 if (!Array.isArray(headers)) 5425 return headers; 5426 if (obj === void 0) 5427 obj = {}; 5428 for (let i = 0; i < headers.length; i += 2) { 5429 const key = headerNameToString(headers[i]); 5430 let val = obj[key]; 5431 if (val) { 5432 if (typeof val === "string") { 5433 val = [val]; 5434 obj[key] = val; 5435 } 5436 val.push(headers[i + 1].toString("utf8")); 5437 } else { 5438 const headersValue = headers[i + 1]; 5439 if (typeof headersValue === "string") { 5440 obj[key] = headersValue; 5441 } else { 5442 obj[key] = Array.isArray(headersValue) ? headersValue.map((x) => x.toString("utf8")) : headersValue.toString("utf8"); 5443 } 5444 } 5445 } 5446 if ("content-length" in obj && "content-disposition" in obj) { 5447 obj["content-disposition"] = Buffer.from(obj["content-disposition"]).toString("latin1"); 5448 } 5449 return obj; 5450 } 5451 function parseRawHeaders(headers) { 5452 const ret = []; 5453 let hasContentLength = false; 5454 let contentDispositionIdx = -1; 5455 for (let n = 0; n < headers.length; n += 2) { 5456 const key = headers[n + 0].toString(); 5457 const val = headers[n + 1].toString("utf8"); 5458 if (key.length === 14 && (key === "content-length" || key.toLowerCase() === "content-length")) { 5459 ret.push(key, val); 5460 hasContentLength = true; 5461 } else if (key.length === 19 && (key === "content-disposition" || key.toLowerCase() === "content-disposition")) { 5462 contentDispositionIdx = ret.push(key, val) - 1; 5463 } else { 5464 ret.push(key, val); 5465 } 5466 } 5467 if (hasContentLength && contentDispositionIdx !== -1) { 5468 ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString("latin1"); 5469 } 5470 return ret; 5471 } 5472 function isBuffer(buffer) { 5473 return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); 5474 } 5475 function validateHandler(handler, method, upgrade) { 5476 if (!handler || typeof handler !== "object") { 5477 throw new InvalidArgumentError("handler must be an object"); 5478 } 5479 if (typeof handler.onConnect !== "function") { 5480 throw new InvalidArgumentError("invalid onConnect method"); 5481 } 5482 if (typeof handler.onError !== "function") { 5483 throw new InvalidArgumentError("invalid onError method"); 5484 } 5485 if (typeof handler.onBodySent !== "function" && handler.onBodySent !== void 0) { 5486 throw new InvalidArgumentError("invalid onBodySent method"); 5487 } 5488 if (upgrade || method === "CONNECT") { 5489 if (typeof handler.onUpgrade !== "function") { 5490 throw new InvalidArgumentError("invalid onUpgrade method"); 5491 } 5492 } else { 5493 if (typeof handler.onHeaders !== "function") { 5494 throw new InvalidArgumentError("invalid onHeaders method"); 5495 } 5496 if (typeof handler.onData !== "function") { 5497 throw new InvalidArgumentError("invalid onData method"); 5498 } 5499 if (typeof handler.onComplete !== "function") { 5500 throw new InvalidArgumentError("invalid onComplete method"); 5501 } 5502 } 5503 } 5504 function isDisturbed(body) { 5505 return !!(body && (stream.isDisturbed(body) || body[kBodyUsed])); 5506 } 5507 function isErrored(body) { 5508 return !!(body && stream.isErrored(body)); 5509 } 5510 function isReadable(body) { 5511 return !!(body && stream.isReadable(body)); 5512 } 5513 function getSocketInfo(socket) { 5514 return { 5515 localAddress: socket.localAddress, 5516 localPort: socket.localPort, 5517 remoteAddress: socket.remoteAddress, 5518 remotePort: socket.remotePort, 5519 remoteFamily: socket.remoteFamily, 5520 timeout: socket.timeout, 5521 bytesWritten: socket.bytesWritten, 5522 bytesRead: socket.bytesRead 5523 }; 5524 } 5525 function ReadableStreamFrom(iterable) { 5526 let iterator; 5527 return new ReadableStream( 5528 { 5529 async start() { 5530 iterator = iterable[Symbol.asyncIterator](); 5531 }, 5532 async pull(controller) { 5533 const { done, value } = await iterator.next(); 5534 if (done) { 5535 queueMicrotask(() => { 5536 controller.close(); 5537 controller.byobRequest?.respond(0); 5538 }); 5539 } else { 5540 const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); 5541 if (buf.byteLength) { 5542 controller.enqueue(new Uint8Array(buf)); 5543 } 5544 } 5545 return controller.desiredSize > 0; 5546 }, 5547 async cancel(reason) { 5548 await iterator.return(); 5549 }, 5550 type: "bytes" 5551 } 5552 ); 5553 } 5554 function isFormDataLike(object) { 5555 return object && typeof object === "object" && typeof object.append === "function" && typeof object.delete === "function" && typeof object.get === "function" && typeof object.getAll === "function" && typeof object.has === "function" && typeof object.set === "function" && object[Symbol.toStringTag] === "FormData"; 5556 } 5557 function addAbortListener(signal, listener) { 5558 if ("addEventListener" in signal) { 5559 signal.addEventListener("abort", listener, { once: true }); 5560 return () => signal.removeEventListener("abort", listener); 5561 } 5562 signal.addListener("abort", listener); 5563 return () => signal.removeListener("abort", listener); 5564 } 5565 var hasToWellFormed = !!String.prototype.toWellFormed; 5566 function toUSVString(val) { 5567 if (hasToWellFormed) { 5568 return `${val}`.toWellFormed(); 5569 } else if (nodeUtil.toUSVString) { 5570 return nodeUtil.toUSVString(val); 5571 } 5572 return `${val}`; 5573 } 5574 function isTokenCharCode(c) { 5575 switch (c) { 5576 case 34: 5577 case 40: 5578 case 41: 5579 case 44: 5580 case 47: 5581 case 58: 5582 case 59: 5583 case 60: 5584 case 61: 5585 case 62: 5586 case 63: 5587 case 64: 5588 case 91: 5589 case 92: 5590 case 93: 5591 case 123: 5592 case 125: 5593 return false; 5594 default: 5595 return c >= 33 && c <= 126; 5596 } 5597 } 5598 function isValidHTTPToken(characters) { 5599 if (characters.length === 0) { 5600 return false; 5601 } 5602 for (let i = 0; i < characters.length; ++i) { 5603 if (!isTokenCharCode(characters.charCodeAt(i))) { 5604 return false; 5605 } 5606 } 5607 return true; 5608 } 5609 function parseRangeHeader(range) { 5610 if (range == null || range === "") 5611 return { start: 0, end: null, size: null }; 5612 const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; 5613 return m ? { 5614 start: parseInt(m[1]), 5615 end: m[2] ? parseInt(m[2]) : null, 5616 size: m[3] ? parseInt(m[3]) : null 5617 } : null; 5618 } 5619 var kEnumerableProperty = /* @__PURE__ */ Object.create(null); 5620 kEnumerableProperty.enumerable = true; 5621 module2.exports = { 5622 kEnumerableProperty, 5623 nop, 5624 isDisturbed, 5625 isErrored, 5626 isReadable, 5627 toUSVString, 5628 isReadableAborted, 5629 isBlobLike, 5630 parseOrigin, 5631 parseURL, 5632 getServerName, 5633 isStream, 5634 isIterable, 5635 isAsyncIterable, 5636 isDestroyed, 5637 headerNameToString, 5638 bufferToLowerCasedHeaderName, 5639 parseRawHeaders, 5640 parseHeaders, 5641 parseKeepAliveTimeout, 5642 destroy, 5643 bodyLength, 5644 deepClone, 5645 ReadableStreamFrom, 5646 isBuffer, 5647 validateHandler, 5648 getSocketInfo, 5649 isFormDataLike, 5650 buildURL, 5651 addAbortListener, 5652 isValidHTTPToken, 5653 isTokenCharCode, 5654 parseRangeHeader, 5655 nodeMajor, 5656 nodeMinor, 5657 nodeHasAutoSelectFamily: nodeMajor > 18 || nodeMajor === 18 && nodeMinor >= 13, 5658 safeHTTPMethods: ["GET", "HEAD", "OPTIONS", "TRACE"] 5659 }; 5660 } 5661}); 5662 5663// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/diagnostics.js 5664var require_diagnostics = __commonJS({ 5665 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/diagnostics.js"(exports, module2) { 5666 "use strict"; 5667 var diagnosticsChannel = require("node:diagnostics_channel"); 5668 var util = require("node:util"); 5669 var undiciDebugLog = util.debuglog("undici"); 5670 var fetchDebuglog = util.debuglog("fetch"); 5671 var websocketDebuglog = util.debuglog("websocket"); 5672 var isClientSet = false; 5673 var channels = { 5674 // Client 5675 beforeConnect: diagnosticsChannel.channel("undici:client:beforeConnect"), 5676 connected: diagnosticsChannel.channel("undici:client:connected"), 5677 connectError: diagnosticsChannel.channel("undici:client:connectError"), 5678 sendHeaders: diagnosticsChannel.channel("undici:client:sendHeaders"), 5679 // Request 5680 create: diagnosticsChannel.channel("undici:request:create"), 5681 bodySent: diagnosticsChannel.channel("undici:request:bodySent"), 5682 headers: diagnosticsChannel.channel("undici:request:headers"), 5683 trailers: diagnosticsChannel.channel("undici:request:trailers"), 5684 error: diagnosticsChannel.channel("undici:request:error"), 5685 // WebSocket 5686 open: diagnosticsChannel.channel("undici:websocket:open"), 5687 close: diagnosticsChannel.channel("undici:websocket:close"), 5688 socketError: diagnosticsChannel.channel("undici:websocket:socket_error"), 5689 ping: diagnosticsChannel.channel("undici:websocket:ping"), 5690 pong: diagnosticsChannel.channel("undici:websocket:pong") 5691 }; 5692 if (undiciDebugLog.enabled || fetchDebuglog.enabled) { 5693 const debuglog = fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog; 5694 diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { 5695 const { 5696 connectParams: { version: version2, protocol, port, host } 5697 } = evt; 5698 debuglog( 5699 "connecting to %s using %s%s", 5700 `${host}${port ? `:${port}` : ""}`, 5701 protocol, 5702 version2 5703 ); 5704 }); 5705 diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { 5706 const { 5707 connectParams: { version: version2, protocol, port, host } 5708 } = evt; 5709 debuglog( 5710 "connected to %s using %s%s", 5711 `${host}${port ? `:${port}` : ""}`, 5712 protocol, 5713 version2 5714 ); 5715 }); 5716 diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { 5717 const { 5718 connectParams: { version: version2, protocol, port, host }, 5719 error 5720 } = evt; 5721 debuglog( 5722 "connection to %s using %s%s errored - %s", 5723 `${host}${port ? `:${port}` : ""}`, 5724 protocol, 5725 version2, 5726 error.message 5727 ); 5728 }); 5729 diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { 5730 const { 5731 request: { method, path: path10, origin } 5732 } = evt; 5733 debuglog("sending request to %s %s/%s", method, origin, path10); 5734 }); 5735 diagnosticsChannel.channel("undici:request:headers").subscribe((evt) => { 5736 const { 5737 request: { method, path: path10, origin }, 5738 response: { statusCode } 5739 } = evt; 5740 debuglog( 5741 "received response to %s %s/%s - HTTP %d", 5742 method, 5743 origin, 5744 path10, 5745 statusCode 5746 ); 5747 }); 5748 diagnosticsChannel.channel("undici:request:trailers").subscribe((evt) => { 5749 const { 5750 request: { method, path: path10, origin } 5751 } = evt; 5752 debuglog("trailers received from %s %s/%s", method, origin, path10); 5753 }); 5754 diagnosticsChannel.channel("undici:request:error").subscribe((evt) => { 5755 const { 5756 request: { method, path: path10, origin }, 5757 error 5758 } = evt; 5759 debuglog( 5760 "request to %s %s/%s errored - %s", 5761 method, 5762 origin, 5763 path10, 5764 error.message 5765 ); 5766 }); 5767 isClientSet = true; 5768 } 5769 if (websocketDebuglog.enabled) { 5770 if (!isClientSet) { 5771 const debuglog = undiciDebugLog.enabled ? undiciDebugLog : websocketDebuglog; 5772 diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { 5773 const { 5774 connectParams: { version: version2, protocol, port, host } 5775 } = evt; 5776 debuglog( 5777 "connecting to %s%s using %s%s", 5778 host, 5779 port ? `:${port}` : "", 5780 protocol, 5781 version2 5782 ); 5783 }); 5784 diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { 5785 const { 5786 connectParams: { version: version2, protocol, port, host } 5787 } = evt; 5788 debuglog( 5789 "connected to %s%s using %s%s", 5790 host, 5791 port ? `:${port}` : "", 5792 protocol, 5793 version2 5794 ); 5795 }); 5796 diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { 5797 const { 5798 connectParams: { version: version2, protocol, port, host }, 5799 error 5800 } = evt; 5801 debuglog( 5802 "connection to %s%s using %s%s errored - %s", 5803 host, 5804 port ? `:${port}` : "", 5805 protocol, 5806 version2, 5807 error.message 5808 ); 5809 }); 5810 diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { 5811 const { 5812 request: { method, path: path10, origin } 5813 } = evt; 5814 debuglog("sending request to %s %s/%s", method, origin, path10); 5815 }); 5816 } 5817 diagnosticsChannel.channel("undici:websocket:open").subscribe((evt) => { 5818 const { 5819 address: { address, port } 5820 } = evt; 5821 websocketDebuglog("connection opened %s%s", address, port ? `:${port}` : ""); 5822 }); 5823 diagnosticsChannel.channel("undici:websocket:close").subscribe((evt) => { 5824 const { websocket, code, reason } = evt; 5825 websocketDebuglog( 5826 "closed connection to %s - %s %s", 5827 websocket.url, 5828 code, 5829 reason 5830 ); 5831 }); 5832 diagnosticsChannel.channel("undici:websocket:socket_error").subscribe((err) => { 5833 websocketDebuglog("connection errored - %s", err.message); 5834 }); 5835 diagnosticsChannel.channel("undici:websocket:ping").subscribe((evt) => { 5836 websocketDebuglog("ping received"); 5837 }); 5838 diagnosticsChannel.channel("undici:websocket:pong").subscribe((evt) => { 5839 websocketDebuglog("pong received"); 5840 }); 5841 } 5842 module2.exports = { 5843 channels 5844 }; 5845 } 5846}); 5847 5848// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/timers.js 5849var require_timers = __commonJS({ 5850 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/timers.js"(exports, module2) { 5851 "use strict"; 5852 var fastNow = Date.now(); 5853 var fastNowTimeout; 5854 var fastTimers = []; 5855 function onTimeout() { 5856 fastNow = Date.now(); 5857 let len = fastTimers.length; 5858 let idx = 0; 5859 while (idx < len) { 5860 const timer = fastTimers[idx]; 5861 if (timer.state === 0) { 5862 timer.state = fastNow + timer.delay; 5863 } else if (timer.state > 0 && fastNow >= timer.state) { 5864 timer.state = -1; 5865 timer.callback(timer.opaque); 5866 } 5867 if (timer.state === -1) { 5868 timer.state = -2; 5869 if (idx !== len - 1) { 5870 fastTimers[idx] = fastTimers.pop(); 5871 } else { 5872 fastTimers.pop(); 5873 } 5874 len -= 1; 5875 } else { 5876 idx += 1; 5877 } 5878 } 5879 if (fastTimers.length > 0) { 5880 refreshTimeout(); 5881 } 5882 } 5883 function refreshTimeout() { 5884 if (fastNowTimeout?.refresh) { 5885 fastNowTimeout.refresh(); 5886 } else { 5887 clearTimeout(fastNowTimeout); 5888 fastNowTimeout = setTimeout(onTimeout, 1e3); 5889 if (fastNowTimeout.unref) { 5890 fastNowTimeout.unref(); 5891 } 5892 } 5893 } 5894 var Timeout = class { 5895 constructor(callback, delay, opaque) { 5896 this.callback = callback; 5897 this.delay = delay; 5898 this.opaque = opaque; 5899 this.state = -2; 5900 this.refresh(); 5901 } 5902 refresh() { 5903 if (this.state === -2) { 5904 fastTimers.push(this); 5905 if (!fastNowTimeout || fastTimers.length === 1) { 5906 refreshTimeout(); 5907 } 5908 } 5909 this.state = 0; 5910 } 5911 clear() { 5912 this.state = -1; 5913 } 5914 }; 5915 module2.exports = { 5916 setTimeout(callback, delay, opaque) { 5917 return delay < 1e3 ? setTimeout(callback, delay, opaque) : new Timeout(callback, delay, opaque); 5918 }, 5919 clearTimeout(timeout) { 5920 if (timeout instanceof Timeout) { 5921 timeout.clear(); 5922 } else { 5923 clearTimeout(timeout); 5924 } 5925 } 5926 }; 5927 } 5928}); 5929 5930// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js 5931var require_sbmh = __commonJS({ 5932 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js"(exports, module2) { 5933 "use strict"; 5934 var EventEmitter = require("node:events").EventEmitter; 5935 var inherits = require("node:util").inherits; 5936 function SBMH(needle) { 5937 if (typeof needle === "string") { 5938 needle = Buffer.from(needle); 5939 } 5940 if (!Buffer.isBuffer(needle)) { 5941 throw new TypeError("The needle has to be a String or a Buffer."); 5942 } 5943 const needleLength = needle.length; 5944 if (needleLength === 0) { 5945 throw new Error("The needle cannot be an empty String/Buffer."); 5946 } 5947 if (needleLength > 256) { 5948 throw new Error("The needle cannot have a length bigger than 256."); 5949 } 5950 this.maxMatches = Infinity; 5951 this.matches = 0; 5952 this._occ = new Array(256).fill(needleLength); 5953 this._lookbehind_size = 0; 5954 this._needle = needle; 5955 this._bufpos = 0; 5956 this._lookbehind = Buffer.alloc(needleLength); 5957 for (var i = 0; i < needleLength - 1; ++i) { 5958 this._occ[needle[i]] = needleLength - 1 - i; 5959 } 5960 } 5961 inherits(SBMH, EventEmitter); 5962 SBMH.prototype.reset = function() { 5963 this._lookbehind_size = 0; 5964 this.matches = 0; 5965 this._bufpos = 0; 5966 }; 5967 SBMH.prototype.push = function(chunk, pos) { 5968 if (!Buffer.isBuffer(chunk)) { 5969 chunk = Buffer.from(chunk, "binary"); 5970 } 5971 const chlen = chunk.length; 5972 this._bufpos = pos || 0; 5973 let r; 5974 while (r !== chlen && this.matches < this.maxMatches) { 5975 r = this._sbmh_feed(chunk); 5976 } 5977 return r; 5978 }; 5979 SBMH.prototype._sbmh_feed = function(data) { 5980 const len = data.length; 5981 const needle = this._needle; 5982 const needleLength = needle.length; 5983 const lastNeedleChar = needle[needleLength - 1]; 5984 let pos = -this._lookbehind_size; 5985 let ch; 5986 if (pos < 0) { 5987 while (pos < 0 && pos <= len - needleLength) { 5988 ch = this._sbmh_lookup_char(data, pos + needleLength - 1); 5989 if (ch === lastNeedleChar && this._sbmh_memcmp(data, pos, needleLength - 1)) { 5990 this._lookbehind_size = 0; 5991 ++this.matches; 5992 this.emit("info", true); 5993 return this._bufpos = pos + needleLength; 5994 } 5995 pos += this._occ[ch]; 5996 } 5997 if (pos < 0) { 5998 while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { 5999 ++pos; 6000 } 6001 } 6002 if (pos >= 0) { 6003 this.emit("info", false, this._lookbehind, 0, this._lookbehind_size); 6004 this._lookbehind_size = 0; 6005 } else { 6006 const bytesToCutOff = this._lookbehind_size + pos; 6007 if (bytesToCutOff > 0) { 6008 this.emit("info", false, this._lookbehind, 0, bytesToCutOff); 6009 } 6010 this._lookbehind.copy( 6011 this._lookbehind, 6012 0, 6013 bytesToCutOff, 6014 this._lookbehind_size - bytesToCutOff 6015 ); 6016 this._lookbehind_size -= bytesToCutOff; 6017 data.copy(this._lookbehind, this._lookbehind_size); 6018 this._lookbehind_size += len; 6019 this._bufpos = len; 6020 return len; 6021 } 6022 } 6023 pos += (pos >= 0) * this._bufpos; 6024 if (data.indexOf(needle, pos) !== -1) { 6025 pos = data.indexOf(needle, pos); 6026 ++this.matches; 6027 if (pos > 0) { 6028 this.emit("info", true, data, this._bufpos, pos); 6029 } else { 6030 this.emit("info", true); 6031 } 6032 return this._bufpos = pos + needleLength; 6033 } else { 6034 pos = len - needleLength; 6035 } 6036 while (pos < len && (data[pos] !== needle[0] || Buffer.compare( 6037 data.subarray(pos, pos + len - pos), 6038 needle.subarray(0, len - pos) 6039 ) !== 0)) { 6040 ++pos; 6041 } 6042 if (pos < len) { 6043 data.copy(this._lookbehind, 0, pos, pos + (len - pos)); 6044 this._lookbehind_size = len - pos; 6045 } 6046 if (pos > 0) { 6047 this.emit("info", false, data, this._bufpos, pos < len ? pos : len); 6048 } 6049 this._bufpos = len; 6050 return len; 6051 }; 6052 SBMH.prototype._sbmh_lookup_char = function(data, pos) { 6053 return pos < 0 ? this._lookbehind[this._lookbehind_size + pos] : data[pos]; 6054 }; 6055 SBMH.prototype._sbmh_memcmp = function(data, pos, len) { 6056 for (var i = 0; i < len; ++i) { 6057 if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { 6058 return false; 6059 } 6060 } 6061 return true; 6062 }; 6063 module2.exports = SBMH; 6064 } 6065}); 6066 6067// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js 6068var require_PartStream = __commonJS({ 6069 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js"(exports, module2) { 6070 "use strict"; 6071 var inherits = require("node:util").inherits; 6072 var ReadableStream2 = require("node:stream").Readable; 6073 function PartStream(opts) { 6074 ReadableStream2.call(this, opts); 6075 } 6076 inherits(PartStream, ReadableStream2); 6077 PartStream.prototype._read = function(n) { 6078 }; 6079 module2.exports = PartStream; 6080 } 6081}); 6082 6083// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/getLimit.js 6084var require_getLimit = __commonJS({ 6085 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/getLimit.js"(exports, module2) { 6086 "use strict"; 6087 module2.exports = function getLimit(limits, name, defaultLimit) { 6088 if (!limits || limits[name] === void 0 || limits[name] === null) { 6089 return defaultLimit; 6090 } 6091 if (typeof limits[name] !== "number" || isNaN(limits[name])) { 6092 throw new TypeError("Limit " + name + " is not a valid number"); 6093 } 6094 return limits[name]; 6095 }; 6096 } 6097}); 6098 6099// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js 6100var require_HeaderParser = __commonJS({ 6101 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js"(exports, module2) { 6102 "use strict"; 6103 var EventEmitter = require("node:events").EventEmitter; 6104 var inherits = require("node:util").inherits; 6105 var getLimit = require_getLimit(); 6106 var StreamSearch = require_sbmh(); 6107 var B_DCRLF = Buffer.from("\r\n\r\n"); 6108 var RE_CRLF = /\r\n/g; 6109 var RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/; 6110 function HeaderParser(cfg) { 6111 EventEmitter.call(this); 6112 cfg = cfg || {}; 6113 const self2 = this; 6114 this.nread = 0; 6115 this.maxed = false; 6116 this.npairs = 0; 6117 this.maxHeaderPairs = getLimit(cfg, "maxHeaderPairs", 2e3); 6118 this.maxHeaderSize = getLimit(cfg, "maxHeaderSize", 80 * 1024); 6119 this.buffer = ""; 6120 this.header = {}; 6121 this.finished = false; 6122 this.ss = new StreamSearch(B_DCRLF); 6123 this.ss.on("info", function(isMatch, data, start, end) { 6124 if (data && !self2.maxed) { 6125 if (self2.nread + end - start >= self2.maxHeaderSize) { 6126 end = self2.maxHeaderSize - self2.nread + start; 6127 self2.nread = self2.maxHeaderSize; 6128 self2.maxed = true; 6129 } else { 6130 self2.nread += end - start; 6131 } 6132 self2.buffer += data.toString("binary", start, end); 6133 } 6134 if (isMatch) { 6135 self2._finish(); 6136 } 6137 }); 6138 } 6139 inherits(HeaderParser, EventEmitter); 6140 HeaderParser.prototype.push = function(data) { 6141 const r = this.ss.push(data); 6142 if (this.finished) { 6143 return r; 6144 } 6145 }; 6146 HeaderParser.prototype.reset = function() { 6147 this.finished = false; 6148 this.buffer = ""; 6149 this.header = {}; 6150 this.ss.reset(); 6151 }; 6152 HeaderParser.prototype._finish = function() { 6153 if (this.buffer) { 6154 this._parseHeader(); 6155 } 6156 this.ss.matches = this.ss.maxMatches; 6157 const header = this.header; 6158 this.header = {}; 6159 this.buffer = ""; 6160 this.finished = true; 6161 this.nread = this.npairs = 0; 6162 this.maxed = false; 6163 this.emit("header", header); 6164 }; 6165 HeaderParser.prototype._parseHeader = function() { 6166 if (this.npairs === this.maxHeaderPairs) { 6167 return; 6168 } 6169 const lines = this.buffer.split(RE_CRLF); 6170 const len = lines.length; 6171 let m, h; 6172 for (var i = 0; i < len; ++i) { 6173 if (lines[i].length === 0) { 6174 continue; 6175 } 6176 if (lines[i][0] === " " || lines[i][0] === " ") { 6177 if (h) { 6178 this.header[h][this.header[h].length - 1] += lines[i]; 6179 continue; 6180 } 6181 } 6182 const posColon = lines[i].indexOf(":"); 6183 if (posColon === -1 || posColon === 0) { 6184 return; 6185 } 6186 m = RE_HDR.exec(lines[i]); 6187 h = m[1].toLowerCase(); 6188 this.header[h] = this.header[h] || []; 6189 this.header[h].push(m[2] || ""); 6190 if (++this.npairs === this.maxHeaderPairs) { 6191 break; 6192 } 6193 } 6194 }; 6195 module2.exports = HeaderParser; 6196 } 6197}); 6198 6199// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js 6200var require_Dicer = __commonJS({ 6201 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js"(exports, module2) { 6202 "use strict"; 6203 var WritableStream = require("node:stream").Writable; 6204 var inherits = require("node:util").inherits; 6205 var StreamSearch = require_sbmh(); 6206 var PartStream = require_PartStream(); 6207 var HeaderParser = require_HeaderParser(); 6208 var DASH = 45; 6209 var B_ONEDASH = Buffer.from("-"); 6210 var B_CRLF = Buffer.from("\r\n"); 6211 var EMPTY_FN = function() { 6212 }; 6213 function Dicer(cfg) { 6214 if (!(this instanceof Dicer)) { 6215 return new Dicer(cfg); 6216 } 6217 WritableStream.call(this, cfg); 6218 if (!cfg || !cfg.headerFirst && typeof cfg.boundary !== "string") { 6219 throw new TypeError("Boundary required"); 6220 } 6221 if (typeof cfg.boundary === "string") { 6222 this.setBoundary(cfg.boundary); 6223 } else { 6224 this._bparser = void 0; 6225 } 6226 this._headerFirst = cfg.headerFirst; 6227 this._dashes = 0; 6228 this._parts = 0; 6229 this._finished = false; 6230 this._realFinish = false; 6231 this._isPreamble = true; 6232 this._justMatched = false; 6233 this._firstWrite = true; 6234 this._inHeader = true; 6235 this._part = void 0; 6236 this._cb = void 0; 6237 this._ignoreData = false; 6238 this._partOpts = { highWaterMark: cfg.partHwm }; 6239 this._pause = false; 6240 const self2 = this; 6241 this._hparser = new HeaderParser(cfg); 6242 this._hparser.on("header", function(header) { 6243 self2._inHeader = false; 6244 self2._part.emit("header", header); 6245 }); 6246 } 6247 inherits(Dicer, WritableStream); 6248 Dicer.prototype.emit = function(ev) { 6249 if (ev === "finish" && !this._realFinish) { 6250 if (!this._finished) { 6251 const self2 = this; 6252 process.nextTick(function() { 6253 self2.emit("error", new Error("Unexpected end of multipart data")); 6254 if (self2._part && !self2._ignoreData) { 6255 const type = self2._isPreamble ? "Preamble" : "Part"; 6256 self2._part.emit("error", new Error(type + " terminated early due to unexpected end of multipart data")); 6257 self2._part.push(null); 6258 process.nextTick(function() { 6259 self2._realFinish = true; 6260 self2.emit("finish"); 6261 self2._realFinish = false; 6262 }); 6263 return; 6264 } 6265 self2._realFinish = true; 6266 self2.emit("finish"); 6267 self2._realFinish = false; 6268 }); 6269 } 6270 } else { 6271 WritableStream.prototype.emit.apply(this, arguments); 6272 } 6273 }; 6274 Dicer.prototype._write = function(data, encoding, cb) { 6275 if (!this._hparser && !this._bparser) { 6276 return cb(); 6277 } 6278 if (this._headerFirst && this._isPreamble) { 6279 if (!this._part) { 6280 this._part = new PartStream(this._partOpts); 6281 if (this._events.preamble) { 6282 this.emit("preamble", this._part); 6283 } else { 6284 this._ignore(); 6285 } 6286 } 6287 const r = this._hparser.push(data); 6288 if (!this._inHeader && r !== void 0 && r < data.length) { 6289 data = data.slice(r); 6290 } else { 6291 return cb(); 6292 } 6293 } 6294 if (this._firstWrite) { 6295 this._bparser.push(B_CRLF); 6296 this._firstWrite = false; 6297 } 6298 this._bparser.push(data); 6299 if (this._pause) { 6300 this._cb = cb; 6301 } else { 6302 cb(); 6303 } 6304 }; 6305 Dicer.prototype.reset = function() { 6306 this._part = void 0; 6307 this._bparser = void 0; 6308 this._hparser = void 0; 6309 }; 6310 Dicer.prototype.setBoundary = function(boundary) { 6311 const self2 = this; 6312 this._bparser = new StreamSearch("\r\n--" + boundary); 6313 this._bparser.on("info", function(isMatch, data, start, end) { 6314 self2._oninfo(isMatch, data, start, end); 6315 }); 6316 }; 6317 Dicer.prototype._ignore = function() { 6318 if (this._part && !this._ignoreData) { 6319 this._ignoreData = true; 6320 this._part.on("error", EMPTY_FN); 6321 this._part.resume(); 6322 } 6323 }; 6324 Dicer.prototype._oninfo = function(isMatch, data, start, end) { 6325 let buf; 6326 const self2 = this; 6327 let i = 0; 6328 let r; 6329 let shouldWriteMore = true; 6330 if (!this._part && this._justMatched && data) { 6331 while (this._dashes < 2 && start + i < end) { 6332 if (data[start + i] === DASH) { 6333 ++i; 6334 ++this._dashes; 6335 } else { 6336 if (this._dashes) { 6337 buf = B_ONEDASH; 6338 } 6339 this._dashes = 0; 6340 break; 6341 } 6342 } 6343 if (this._dashes === 2) { 6344 if (start + i < end && this._events.trailer) { 6345 this.emit("trailer", data.slice(start + i, end)); 6346 } 6347 this.reset(); 6348 this._finished = true; 6349 if (self2._parts === 0) { 6350 self2._realFinish = true; 6351 self2.emit("finish"); 6352 self2._realFinish = false; 6353 } 6354 } 6355 if (this._dashes) { 6356 return; 6357 } 6358 } 6359 if (this._justMatched) { 6360 this._justMatched = false; 6361 } 6362 if (!this._part) { 6363 this._part = new PartStream(this._partOpts); 6364 this._part._read = function(n) { 6365 self2._unpause(); 6366 }; 6367 if (this._isPreamble && this._events.preamble) { 6368 this.emit("preamble", this._part); 6369 } else if (this._isPreamble !== true && this._events.part) { 6370 this.emit("part", this._part); 6371 } else { 6372 this._ignore(); 6373 } 6374 if (!this._isPreamble) { 6375 this._inHeader = true; 6376 } 6377 } 6378 if (data && start < end && !this._ignoreData) { 6379 if (this._isPreamble || !this._inHeader) { 6380 if (buf) { 6381 shouldWriteMore = this._part.push(buf); 6382 } 6383 shouldWriteMore = this._part.push(data.slice(start, end)); 6384 if (!shouldWriteMore) { 6385 this._pause = true; 6386 } 6387 } else if (!this._isPreamble && this._inHeader) { 6388 if (buf) { 6389 this._hparser.push(buf); 6390 } 6391 r = this._hparser.push(data.slice(start, end)); 6392 if (!this._inHeader && r !== void 0 && r < end) { 6393 this._oninfo(false, data, start + r, end); 6394 } 6395 } 6396 } 6397 if (isMatch) { 6398 this._hparser.reset(); 6399 if (this._isPreamble) { 6400 this._isPreamble = false; 6401 } else { 6402 if (start !== end) { 6403 ++this._parts; 6404 this._part.on("end", function() { 6405 if (--self2._parts === 0) { 6406 if (self2._finished) { 6407 self2._realFinish = true; 6408 self2.emit("finish"); 6409 self2._realFinish = false; 6410 } else { 6411 self2._unpause(); 6412 } 6413 } 6414 }); 6415 } 6416 } 6417 this._part.push(null); 6418 this._part = void 0; 6419 this._ignoreData = false; 6420 this._justMatched = true; 6421 this._dashes = 0; 6422 } 6423 }; 6424 Dicer.prototype._unpause = function() { 6425 if (!this._pause) { 6426 return; 6427 } 6428 this._pause = false; 6429 if (this._cb) { 6430 const cb = this._cb; 6431 this._cb = void 0; 6432 cb(); 6433 } 6434 }; 6435 module2.exports = Dicer; 6436 } 6437}); 6438 6439// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/decodeText.js 6440var require_decodeText = __commonJS({ 6441 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/decodeText.js"(exports, module2) { 6442 "use strict"; 6443 var utf8Decoder = new TextDecoder("utf-8"); 6444 var textDecoders = /* @__PURE__ */ new Map([ 6445 ["utf-8", utf8Decoder], 6446 ["utf8", utf8Decoder] 6447 ]); 6448 function getDecoder(charset) { 6449 let lc; 6450 while (true) { 6451 switch (charset) { 6452 case "utf-8": 6453 case "utf8": 6454 return decoders.utf8; 6455 case "latin1": 6456 case "ascii": 6457 case "us-ascii": 6458 case "iso-8859-1": 6459 case "iso8859-1": 6460 case "iso88591": 6461 case "iso_8859-1": 6462 case "windows-1252": 6463 case "iso_8859-1:1987": 6464 case "cp1252": 6465 case "x-cp1252": 6466 return decoders.latin1; 6467 case "utf16le": 6468 case "utf-16le": 6469 case "ucs2": 6470 case "ucs-2": 6471 return decoders.utf16le; 6472 case "base64": 6473 return decoders.base64; 6474 default: 6475 if (lc === void 0) { 6476 lc = true; 6477 charset = charset.toLowerCase(); 6478 continue; 6479 } 6480 return decoders.other.bind(charset); 6481 } 6482 } 6483 } 6484 var decoders = { 6485 utf8: (data, sourceEncoding) => { 6486 if (data.length === 0) { 6487 return ""; 6488 } 6489 if (typeof data === "string") { 6490 data = Buffer.from(data, sourceEncoding); 6491 } 6492 return data.utf8Slice(0, data.length); 6493 }, 6494 latin1: (data, sourceEncoding) => { 6495 if (data.length === 0) { 6496 return ""; 6497 } 6498 if (typeof data === "string") { 6499 return data; 6500 } 6501 return data.latin1Slice(0, data.length); 6502 }, 6503 utf16le: (data, sourceEncoding) => { 6504 if (data.length === 0) { 6505 return ""; 6506 } 6507 if (typeof data === "string") { 6508 data = Buffer.from(data, sourceEncoding); 6509 } 6510 return data.ucs2Slice(0, data.length); 6511 }, 6512 base64: (data, sourceEncoding) => { 6513 if (data.length === 0) { 6514 return ""; 6515 } 6516 if (typeof data === "string") { 6517 data = Buffer.from(data, sourceEncoding); 6518 } 6519 return data.base64Slice(0, data.length); 6520 }, 6521 other: (data, sourceEncoding) => { 6522 if (data.length === 0) { 6523 return ""; 6524 } 6525 if (typeof data === "string") { 6526 data = Buffer.from(data, sourceEncoding); 6527 } 6528 if (textDecoders.has(exports.toString())) { 6529 try { 6530 return textDecoders.get(exports).decode(data); 6531 } catch (e) { 6532 } 6533 } 6534 return typeof data === "string" ? data : data.toString(); 6535 } 6536 }; 6537 function decodeText(text, sourceEncoding, destEncoding) { 6538 if (text) { 6539 return getDecoder(destEncoding)(text, sourceEncoding); 6540 } 6541 return text; 6542 } 6543 module2.exports = decodeText; 6544 } 6545}); 6546 6547// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/parseParams.js 6548var require_parseParams = __commonJS({ 6549 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/parseParams.js"(exports, module2) { 6550 "use strict"; 6551 var decodeText = require_decodeText(); 6552 var RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g; 6553 var EncodedLookup = { 6554 "%00": "\0", 6555 "%01": "", 6556 "%02": "", 6557 "%03": "", 6558 "%04": "", 6559 "%05": "", 6560 "%06": "", 6561 "%07": "\x07", 6562 "%08": "\b", 6563 "%09": " ", 6564 "%0a": "\n", 6565 "%0A": "\n", 6566 "%0b": "\v", 6567 "%0B": "\v", 6568 "%0c": "\f", 6569 "%0C": "\f", 6570 "%0d": "\r", 6571 "%0D": "\r", 6572 "%0e": "", 6573 "%0E": "", 6574 "%0f": "", 6575 "%0F": "", 6576 "%10": "", 6577 "%11": "", 6578 "%12": "", 6579 "%13": "", 6580 "%14": "", 6581 "%15": "", 6582 "%16": "", 6583 "%17": "", 6584 "%18": "", 6585 "%19": "", 6586 "%1a": "", 6587 "%1A": "", 6588 "%1b": "\x1B", 6589 "%1B": "\x1B", 6590 "%1c": "", 6591 "%1C": "", 6592 "%1d": "", 6593 "%1D": "", 6594 "%1e": "", 6595 "%1E": "", 6596 "%1f": "", 6597 "%1F": "", 6598 "%20": " ", 6599 "%21": "!", 6600 "%22": '"', 6601 "%23": "#", 6602 "%24": "$", 6603 "%25": "%", 6604 "%26": "&", 6605 "%27": "'", 6606 "%28": "(", 6607 "%29": ")", 6608 "%2a": "*", 6609 "%2A": "*", 6610 "%2b": "+", 6611 "%2B": "+", 6612 "%2c": ",", 6613 "%2C": ",", 6614 "%2d": "-", 6615 "%2D": "-", 6616 "%2e": ".", 6617 "%2E": ".", 6618 "%2f": "/", 6619 "%2F": "/", 6620 "%30": "0", 6621 "%31": "1", 6622 "%32": "2", 6623 "%33": "3", 6624 "%34": "4", 6625 "%35": "5", 6626 "%36": "6", 6627 "%37": "7", 6628 "%38": "8", 6629 "%39": "9", 6630 "%3a": ":", 6631 "%3A": ":", 6632 "%3b": ";", 6633 "%3B": ";", 6634 "%3c": "<", 6635 "%3C": "<", 6636 "%3d": "=", 6637 "%3D": "=", 6638 "%3e": ">", 6639 "%3E": ">", 6640 "%3f": "?", 6641 "%3F": "?", 6642 "%40": "@", 6643 "%41": "A", 6644 "%42": "B", 6645 "%43": "C", 6646 "%44": "D", 6647 "%45": "E", 6648 "%46": "F", 6649 "%47": "G", 6650 "%48": "H", 6651 "%49": "I", 6652 "%4a": "J", 6653 "%4A": "J", 6654 "%4b": "K", 6655 "%4B": "K", 6656 "%4c": "L", 6657 "%4C": "L", 6658 "%4d": "M", 6659 "%4D": "M", 6660 "%4e": "N", 6661 "%4E": "N", 6662 "%4f": "O", 6663 "%4F": "O", 6664 "%50": "P", 6665 "%51": "Q", 6666 "%52": "R", 6667 "%53": "S", 6668 "%54": "T", 6669 "%55": "U", 6670 "%56": "V", 6671 "%57": "W", 6672 "%58": "X", 6673 "%59": "Y", 6674 "%5a": "Z", 6675 "%5A": "Z", 6676 "%5b": "[", 6677 "%5B": "[", 6678 "%5c": "\\", 6679 "%5C": "\\", 6680 "%5d": "]", 6681 "%5D": "]", 6682 "%5e": "^", 6683 "%5E": "^", 6684 "%5f": "_", 6685 "%5F": "_", 6686 "%60": "`", 6687 "%61": "a", 6688 "%62": "b", 6689 "%63": "c", 6690 "%64": "d", 6691 "%65": "e", 6692 "%66": "f", 6693 "%67": "g", 6694 "%68": "h", 6695 "%69": "i", 6696 "%6a": "j", 6697 "%6A": "j", 6698 "%6b": "k", 6699 "%6B": "k", 6700 "%6c": "l", 6701 "%6C": "l", 6702 "%6d": "m", 6703 "%6D": "m", 6704 "%6e": "n", 6705 "%6E": "n", 6706 "%6f": "o", 6707 "%6F": "o", 6708 "%70": "p", 6709 "%71": "q", 6710 "%72": "r", 6711 "%73": "s", 6712 "%74": "t", 6713 "%75": "u", 6714 "%76": "v", 6715 "%77": "w", 6716 "%78": "x", 6717 "%79": "y", 6718 "%7a": "z", 6719 "%7A": "z", 6720 "%7b": "{", 6721 "%7B": "{", 6722 "%7c": "|", 6723 "%7C": "|", 6724 "%7d": "}", 6725 "%7D": "}", 6726 "%7e": "~", 6727 "%7E": "~", 6728 "%7f": "\x7F", 6729 "%7F": "\x7F", 6730 "%80": "\x80", 6731 "%81": "\x81", 6732 "%82": "\x82", 6733 "%83": "\x83", 6734 "%84": "\x84", 6735 "%85": "\x85", 6736 "%86": "\x86", 6737 "%87": "\x87", 6738 "%88": "\x88", 6739 "%89": "\x89", 6740 "%8a": "\x8A", 6741 "%8A": "\x8A", 6742 "%8b": "\x8B", 6743 "%8B": "\x8B", 6744 "%8c": "\x8C", 6745 "%8C": "\x8C", 6746 "%8d": "\x8D", 6747 "%8D": "\x8D", 6748 "%8e": "\x8E", 6749 "%8E": "\x8E", 6750 "%8f": "\x8F", 6751 "%8F": "\x8F", 6752 "%90": "\x90", 6753 "%91": "\x91", 6754 "%92": "\x92", 6755 "%93": "\x93", 6756 "%94": "\x94", 6757 "%95": "\x95", 6758 "%96": "\x96", 6759 "%97": "\x97", 6760 "%98": "\x98", 6761 "%99": "\x99", 6762 "%9a": "\x9A", 6763 "%9A": "\x9A", 6764 "%9b": "\x9B", 6765 "%9B": "\x9B", 6766 "%9c": "\x9C", 6767 "%9C": "\x9C", 6768 "%9d": "\x9D", 6769 "%9D": "\x9D", 6770 "%9e": "\x9E", 6771 "%9E": "\x9E", 6772 "%9f": "\x9F", 6773 "%9F": "\x9F", 6774 "%a0": "\xA0", 6775 "%A0": "\xA0", 6776 "%a1": "\xA1", 6777 "%A1": "\xA1", 6778 "%a2": "\xA2", 6779 "%A2": "\xA2", 6780 "%a3": "\xA3", 6781 "%A3": "\xA3", 6782 "%a4": "\xA4", 6783 "%A4": "\xA4", 6784 "%a5": "\xA5", 6785 "%A5": "\xA5", 6786 "%a6": "\xA6", 6787 "%A6": "\xA6", 6788 "%a7": "\xA7", 6789 "%A7": "\xA7", 6790 "%a8": "\xA8", 6791 "%A8": "\xA8", 6792 "%a9": "\xA9", 6793 "%A9": "\xA9", 6794 "%aa": "\xAA", 6795 "%Aa": "\xAA", 6796 "%aA": "\xAA", 6797 "%AA": "\xAA", 6798 "%ab": "\xAB", 6799 "%Ab": "\xAB", 6800 "%aB": "\xAB", 6801 "%AB": "\xAB", 6802 "%ac": "\xAC", 6803 "%Ac": "\xAC", 6804 "%aC": "\xAC", 6805 "%AC": "\xAC", 6806 "%ad": "\xAD", 6807 "%Ad": "\xAD", 6808 "%aD": "\xAD", 6809 "%AD": "\xAD", 6810 "%ae": "\xAE", 6811 "%Ae": "\xAE", 6812 "%aE": "\xAE", 6813 "%AE": "\xAE", 6814 "%af": "\xAF", 6815 "%Af": "\xAF", 6816 "%aF": "\xAF", 6817 "%AF": "\xAF", 6818 "%b0": "\xB0", 6819 "%B0": "\xB0", 6820 "%b1": "\xB1", 6821 "%B1": "\xB1", 6822 "%b2": "\xB2", 6823 "%B2": "\xB2", 6824 "%b3": "\xB3", 6825 "%B3": "\xB3", 6826 "%b4": "\xB4", 6827 "%B4": "\xB4", 6828 "%b5": "\xB5", 6829 "%B5": "\xB5", 6830 "%b6": "\xB6", 6831 "%B6": "\xB6", 6832 "%b7": "\xB7", 6833 "%B7": "\xB7", 6834 "%b8": "\xB8", 6835 "%B8": "\xB8", 6836 "%b9": "\xB9", 6837 "%B9": "\xB9", 6838 "%ba": "\xBA", 6839 "%Ba": "\xBA", 6840 "%bA": "\xBA", 6841 "%BA": "\xBA", 6842 "%bb": "\xBB", 6843 "%Bb": "\xBB", 6844 "%bB": "\xBB", 6845 "%BB": "\xBB", 6846 "%bc": "\xBC", 6847 "%Bc": "\xBC", 6848 "%bC": "\xBC", 6849 "%BC": "\xBC", 6850 "%bd": "\xBD", 6851 "%Bd": "\xBD", 6852 "%bD": "\xBD", 6853 "%BD": "\xBD", 6854 "%be": "\xBE", 6855 "%Be": "\xBE", 6856 "%bE": "\xBE", 6857 "%BE": "\xBE", 6858 "%bf": "\xBF", 6859 "%Bf": "\xBF", 6860 "%bF": "\xBF", 6861 "%BF": "\xBF", 6862 "%c0": "\xC0", 6863 "%C0": "\xC0", 6864 "%c1": "\xC1", 6865 "%C1": "\xC1", 6866 "%c2": "\xC2", 6867 "%C2": "\xC2", 6868 "%c3": "\xC3", 6869 "%C3": "\xC3", 6870 "%c4": "\xC4", 6871 "%C4": "\xC4", 6872 "%c5": "\xC5", 6873 "%C5": "\xC5", 6874 "%c6": "\xC6", 6875 "%C6": "\xC6", 6876 "%c7": "\xC7", 6877 "%C7": "\xC7", 6878 "%c8": "\xC8", 6879 "%C8": "\xC8", 6880 "%c9": "\xC9", 6881 "%C9": "\xC9", 6882 "%ca": "\xCA", 6883 "%Ca": "\xCA", 6884 "%cA": "\xCA", 6885 "%CA": "\xCA", 6886 "%cb": "\xCB", 6887 "%Cb": "\xCB", 6888 "%cB": "\xCB", 6889 "%CB": "\xCB", 6890 "%cc": "\xCC", 6891 "%Cc": "\xCC", 6892 "%cC": "\xCC", 6893 "%CC": "\xCC", 6894 "%cd": "\xCD", 6895 "%Cd": "\xCD", 6896 "%cD": "\xCD", 6897 "%CD": "\xCD", 6898 "%ce": "\xCE", 6899 "%Ce": "\xCE", 6900 "%cE": "\xCE", 6901 "%CE": "\xCE", 6902 "%cf": "\xCF", 6903 "%Cf": "\xCF", 6904 "%cF": "\xCF", 6905 "%CF": "\xCF", 6906 "%d0": "\xD0", 6907 "%D0": "\xD0", 6908 "%d1": "\xD1", 6909 "%D1": "\xD1", 6910 "%d2": "\xD2", 6911 "%D2": "\xD2", 6912 "%d3": "\xD3", 6913 "%D3": "\xD3", 6914 "%d4": "\xD4", 6915 "%D4": "\xD4", 6916 "%d5": "\xD5", 6917 "%D5": "\xD5", 6918 "%d6": "\xD6", 6919 "%D6": "\xD6", 6920 "%d7": "\xD7", 6921 "%D7": "\xD7", 6922 "%d8": "\xD8", 6923 "%D8": "\xD8", 6924 "%d9": "\xD9", 6925 "%D9": "\xD9", 6926 "%da": "\xDA", 6927 "%Da": "\xDA", 6928 "%dA": "\xDA", 6929 "%DA": "\xDA", 6930 "%db": "\xDB", 6931 "%Db": "\xDB", 6932 "%dB": "\xDB", 6933 "%DB": "\xDB", 6934 "%dc": "\xDC", 6935 "%Dc": "\xDC", 6936 "%dC": "\xDC", 6937 "%DC": "\xDC", 6938 "%dd": "\xDD", 6939 "%Dd": "\xDD", 6940 "%dD": "\xDD", 6941 "%DD": "\xDD", 6942 "%de": "\xDE", 6943 "%De": "\xDE", 6944 "%dE": "\xDE", 6945 "%DE": "\xDE", 6946 "%df": "\xDF", 6947 "%Df": "\xDF", 6948 "%dF": "\xDF", 6949 "%DF": "\xDF", 6950 "%e0": "\xE0", 6951 "%E0": "\xE0", 6952 "%e1": "\xE1", 6953 "%E1": "\xE1", 6954 "%e2": "\xE2", 6955 "%E2": "\xE2", 6956 "%e3": "\xE3", 6957 "%E3": "\xE3", 6958 "%e4": "\xE4", 6959 "%E4": "\xE4", 6960 "%e5": "\xE5", 6961 "%E5": "\xE5", 6962 "%e6": "\xE6", 6963 "%E6": "\xE6", 6964 "%e7": "\xE7", 6965 "%E7": "\xE7", 6966 "%e8": "\xE8", 6967 "%E8": "\xE8", 6968 "%e9": "\xE9", 6969 "%E9": "\xE9", 6970 "%ea": "\xEA", 6971 "%Ea": "\xEA", 6972 "%eA": "\xEA", 6973 "%EA": "\xEA", 6974 "%eb": "\xEB", 6975 "%Eb": "\xEB", 6976 "%eB": "\xEB", 6977 "%EB": "\xEB", 6978 "%ec": "\xEC", 6979 "%Ec": "\xEC", 6980 "%eC": "\xEC", 6981 "%EC": "\xEC", 6982 "%ed": "\xED", 6983 "%Ed": "\xED", 6984 "%eD": "\xED", 6985 "%ED": "\xED", 6986 "%ee": "\xEE", 6987 "%Ee": "\xEE", 6988 "%eE": "\xEE", 6989 "%EE": "\xEE", 6990 "%ef": "\xEF", 6991 "%Ef": "\xEF", 6992 "%eF": "\xEF", 6993 "%EF": "\xEF", 6994 "%f0": "\xF0", 6995 "%F0": "\xF0", 6996 "%f1": "\xF1", 6997 "%F1": "\xF1", 6998 "%f2": "\xF2", 6999 "%F2": "\xF2", 7000 "%f3": "\xF3", 7001 "%F3": "\xF3", 7002 "%f4": "\xF4", 7003 "%F4": "\xF4", 7004 "%f5": "\xF5", 7005 "%F5": "\xF5", 7006 "%f6": "\xF6", 7007 "%F6": "\xF6", 7008 "%f7": "\xF7", 7009 "%F7": "\xF7", 7010 "%f8": "\xF8", 7011 "%F8": "\xF8", 7012 "%f9": "\xF9", 7013 "%F9": "\xF9", 7014 "%fa": "\xFA", 7015 "%Fa": "\xFA", 7016 "%fA": "\xFA", 7017 "%FA": "\xFA", 7018 "%fb": "\xFB", 7019 "%Fb": "\xFB", 7020 "%fB": "\xFB", 7021 "%FB": "\xFB", 7022 "%fc": "\xFC", 7023 "%Fc": "\xFC", 7024 "%fC": "\xFC", 7025 "%FC": "\xFC", 7026 "%fd": "\xFD", 7027 "%Fd": "\xFD", 7028 "%fD": "\xFD", 7029 "%FD": "\xFD", 7030 "%fe": "\xFE", 7031 "%Fe": "\xFE", 7032 "%fE": "\xFE", 7033 "%FE": "\xFE", 7034 "%ff": "\xFF", 7035 "%Ff": "\xFF", 7036 "%fF": "\xFF", 7037 "%FF": "\xFF" 7038 }; 7039 function encodedReplacer(match) { 7040 return EncodedLookup[match]; 7041 } 7042 var STATE_KEY = 0; 7043 var STATE_VALUE = 1; 7044 var STATE_CHARSET = 2; 7045 var STATE_LANG = 3; 7046 function parseParams(str) { 7047 const res = []; 7048 let state = STATE_KEY; 7049 let charset = ""; 7050 let inquote = false; 7051 let escaping = false; 7052 let p = 0; 7053 let tmp = ""; 7054 const len = str.length; 7055 for (var i = 0; i < len; ++i) { 7056 const char = str[i]; 7057 if (char === "\\" && inquote) { 7058 if (escaping) { 7059 escaping = false; 7060 } else { 7061 escaping = true; 7062 continue; 7063 } 7064 } else if (char === '"') { 7065 if (!escaping) { 7066 if (inquote) { 7067 inquote = false; 7068 state = STATE_KEY; 7069 } else { 7070 inquote = true; 7071 } 7072 continue; 7073 } else { 7074 escaping = false; 7075 } 7076 } else { 7077 if (escaping && inquote) { 7078 tmp += "\\"; 7079 } 7080 escaping = false; 7081 if ((state === STATE_CHARSET || state === STATE_LANG) && char === "'") { 7082 if (state === STATE_CHARSET) { 7083 state = STATE_LANG; 7084 charset = tmp.substring(1); 7085 } else { 7086 state = STATE_VALUE; 7087 } 7088 tmp = ""; 7089 continue; 7090 } else if (state === STATE_KEY && (char === "*" || char === "=") && res.length) { 7091 state = char === "*" ? STATE_CHARSET : STATE_VALUE; 7092 res[p] = [tmp, void 0]; 7093 tmp = ""; 7094 continue; 7095 } else if (!inquote && char === ";") { 7096 state = STATE_KEY; 7097 if (charset) { 7098 if (tmp.length) { 7099 tmp = decodeText( 7100 tmp.replace(RE_ENCODED, encodedReplacer), 7101 "binary", 7102 charset 7103 ); 7104 } 7105 charset = ""; 7106 } else if (tmp.length) { 7107 tmp = decodeText(tmp, "binary", "utf8"); 7108 } 7109 if (res[p] === void 0) { 7110 res[p] = tmp; 7111 } else { 7112 res[p][1] = tmp; 7113 } 7114 tmp = ""; 7115 ++p; 7116 continue; 7117 } else if (!inquote && (char === " " || char === " ")) { 7118 continue; 7119 } 7120 } 7121 tmp += char; 7122 } 7123 if (charset && tmp.length) { 7124 tmp = decodeText( 7125 tmp.replace(RE_ENCODED, encodedReplacer), 7126 "binary", 7127 charset 7128 ); 7129 } else if (tmp) { 7130 tmp = decodeText(tmp, "binary", "utf8"); 7131 } 7132 if (res[p] === void 0) { 7133 if (tmp) { 7134 res[p] = tmp; 7135 } 7136 } else { 7137 res[p][1] = tmp; 7138 } 7139 return res; 7140 } 7141 module2.exports = parseParams; 7142 } 7143}); 7144 7145// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/basename.js 7146var require_basename = __commonJS({ 7147 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/basename.js"(exports, module2) { 7148 "use strict"; 7149 module2.exports = function basename(path10) { 7150 if (typeof path10 !== "string") { 7151 return ""; 7152 } 7153 for (var i = path10.length - 1; i >= 0; --i) { 7154 switch (path10.charCodeAt(i)) { 7155 case 47: 7156 case 92: 7157 path10 = path10.slice(i + 1); 7158 return path10 === ".." || path10 === "." ? "" : path10; 7159 } 7160 } 7161 return path10 === ".." || path10 === "." ? "" : path10; 7162 }; 7163 } 7164}); 7165 7166// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/types/multipart.js 7167var require_multipart = __commonJS({ 7168 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/types/multipart.js"(exports, module2) { 7169 "use strict"; 7170 var { Readable: Readable2 } = require("node:stream"); 7171 var { inherits } = require("node:util"); 7172 var Dicer = require_Dicer(); 7173 var parseParams = require_parseParams(); 7174 var decodeText = require_decodeText(); 7175 var basename = require_basename(); 7176 var getLimit = require_getLimit(); 7177 var RE_BOUNDARY = /^boundary$/i; 7178 var RE_FIELD = /^form-data$/i; 7179 var RE_CHARSET = /^charset$/i; 7180 var RE_FILENAME = /^filename$/i; 7181 var RE_NAME = /^name$/i; 7182 Multipart.detect = /^multipart\/form-data/i; 7183 function Multipart(boy, cfg) { 7184 let i; 7185 let len; 7186 const self2 = this; 7187 let boundary; 7188 const limits = cfg.limits; 7189 const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => contentType === "application/octet-stream" || fileName !== void 0); 7190 const parsedConType = cfg.parsedConType || []; 7191 const defCharset = cfg.defCharset || "utf8"; 7192 const preservePath = cfg.preservePath; 7193 const fileOpts = { highWaterMark: cfg.fileHwm }; 7194 for (i = 0, len = parsedConType.length; i < len; ++i) { 7195 if (Array.isArray(parsedConType[i]) && RE_BOUNDARY.test(parsedConType[i][0])) { 7196 boundary = parsedConType[i][1]; 7197 break; 7198 } 7199 } 7200 function checkFinished() { 7201 if (nends === 0 && finished && !boy._done) { 7202 finished = false; 7203 self2.end(); 7204 } 7205 } 7206 if (typeof boundary !== "string") { 7207 throw new Error("Multipart: Boundary not found"); 7208 } 7209 const fieldSizeLimit = getLimit(limits, "fieldSize", 1 * 1024 * 1024); 7210 const fileSizeLimit = getLimit(limits, "fileSize", Infinity); 7211 const filesLimit = getLimit(limits, "files", Infinity); 7212 const fieldsLimit = getLimit(limits, "fields", Infinity); 7213 const partsLimit = getLimit(limits, "parts", Infinity); 7214 const headerPairsLimit = getLimit(limits, "headerPairs", 2e3); 7215 const headerSizeLimit = getLimit(limits, "headerSize", 80 * 1024); 7216 let nfiles = 0; 7217 let nfields = 0; 7218 let nends = 0; 7219 let curFile; 7220 let curField; 7221 let finished = false; 7222 this._needDrain = false; 7223 this._pause = false; 7224 this._cb = void 0; 7225 this._nparts = 0; 7226 this._boy = boy; 7227 const parserCfg = { 7228 boundary, 7229 maxHeaderPairs: headerPairsLimit, 7230 maxHeaderSize: headerSizeLimit, 7231 partHwm: fileOpts.highWaterMark, 7232 highWaterMark: cfg.highWaterMark 7233 }; 7234 this.parser = new Dicer(parserCfg); 7235 this.parser.on("drain", function() { 7236 self2._needDrain = false; 7237 if (self2._cb && !self2._pause) { 7238 const cb = self2._cb; 7239 self2._cb = void 0; 7240 cb(); 7241 } 7242 }).on("part", function onPart(part) { 7243 if (++self2._nparts > partsLimit) { 7244 self2.parser.removeListener("part", onPart); 7245 self2.parser.on("part", skipPart); 7246 boy.hitPartsLimit = true; 7247 boy.emit("partsLimit"); 7248 return skipPart(part); 7249 } 7250 if (curField) { 7251 const field = curField; 7252 field.emit("end"); 7253 field.removeAllListeners("end"); 7254 } 7255 part.on("header", function(header) { 7256 let contype; 7257 let fieldname; 7258 let parsed; 7259 let charset; 7260 let encoding; 7261 let filename; 7262 let nsize = 0; 7263 if (header["content-type"]) { 7264 parsed = parseParams(header["content-type"][0]); 7265 if (parsed[0]) { 7266 contype = parsed[0].toLowerCase(); 7267 for (i = 0, len = parsed.length; i < len; ++i) { 7268 if (RE_CHARSET.test(parsed[i][0])) { 7269 charset = parsed[i][1].toLowerCase(); 7270 break; 7271 } 7272 } 7273 } 7274 } 7275 if (contype === void 0) { 7276 contype = "text/plain"; 7277 } 7278 if (charset === void 0) { 7279 charset = defCharset; 7280 } 7281 if (header["content-disposition"]) { 7282 parsed = parseParams(header["content-disposition"][0]); 7283 if (!RE_FIELD.test(parsed[0])) { 7284 return skipPart(part); 7285 } 7286 for (i = 0, len = parsed.length; i < len; ++i) { 7287 if (RE_NAME.test(parsed[i][0])) { 7288 fieldname = parsed[i][1]; 7289 } else if (RE_FILENAME.test(parsed[i][0])) { 7290 filename = parsed[i][1]; 7291 if (!preservePath) { 7292 filename = basename(filename); 7293 } 7294 } 7295 } 7296 } else { 7297 return skipPart(part); 7298 } 7299 if (header["content-transfer-encoding"]) { 7300 encoding = header["content-transfer-encoding"][0].toLowerCase(); 7301 } else { 7302 encoding = "7bit"; 7303 } 7304 let onData, onEnd; 7305 if (isPartAFile(fieldname, contype, filename)) { 7306 if (nfiles === filesLimit) { 7307 if (!boy.hitFilesLimit) { 7308 boy.hitFilesLimit = true; 7309 boy.emit("filesLimit"); 7310 } 7311 return skipPart(part); 7312 } 7313 ++nfiles; 7314 if (!boy._events.file) { 7315 self2.parser._ignore(); 7316 return; 7317 } 7318 ++nends; 7319 const file = new FileStream(fileOpts); 7320 curFile = file; 7321 file.on("end", function() { 7322 --nends; 7323 self2._pause = false; 7324 checkFinished(); 7325 if (self2._cb && !self2._needDrain) { 7326 const cb = self2._cb; 7327 self2._cb = void 0; 7328 cb(); 7329 } 7330 }); 7331 file._read = function(n) { 7332 if (!self2._pause) { 7333 return; 7334 } 7335 self2._pause = false; 7336 if (self2._cb && !self2._needDrain) { 7337 const cb = self2._cb; 7338 self2._cb = void 0; 7339 cb(); 7340 } 7341 }; 7342 boy.emit("file", fieldname, file, filename, encoding, contype); 7343 onData = function(data) { 7344 if ((nsize += data.length) > fileSizeLimit) { 7345 const extralen = fileSizeLimit - nsize + data.length; 7346 if (extralen > 0) { 7347 file.push(data.slice(0, extralen)); 7348 } 7349 file.truncated = true; 7350 file.bytesRead = fileSizeLimit; 7351 part.removeAllListeners("data"); 7352 file.emit("limit"); 7353 return; 7354 } else if (!file.push(data)) { 7355 self2._pause = true; 7356 } 7357 file.bytesRead = nsize; 7358 }; 7359 onEnd = function() { 7360 curFile = void 0; 7361 file.push(null); 7362 }; 7363 } else { 7364 if (nfields === fieldsLimit) { 7365 if (!boy.hitFieldsLimit) { 7366 boy.hitFieldsLimit = true; 7367 boy.emit("fieldsLimit"); 7368 } 7369 return skipPart(part); 7370 } 7371 ++nfields; 7372 ++nends; 7373 let buffer = ""; 7374 let truncated = false; 7375 curField = part; 7376 onData = function(data) { 7377 if ((nsize += data.length) > fieldSizeLimit) { 7378 const extralen = fieldSizeLimit - (nsize - data.length); 7379 buffer += data.toString("binary", 0, extralen); 7380 truncated = true; 7381 part.removeAllListeners("data"); 7382 } else { 7383 buffer += data.toString("binary"); 7384 } 7385 }; 7386 onEnd = function() { 7387 curField = void 0; 7388 if (buffer.length) { 7389 buffer = decodeText(buffer, "binary", charset); 7390 } 7391 boy.emit("field", fieldname, buffer, false, truncated, encoding, contype); 7392 --nends; 7393 checkFinished(); 7394 }; 7395 } 7396 part._readableState.sync = false; 7397 part.on("data", onData); 7398 part.on("end", onEnd); 7399 }).on("error", function(err) { 7400 if (curFile) { 7401 curFile.emit("error", err); 7402 } 7403 }); 7404 }).on("error", function(err) { 7405 boy.emit("error", err); 7406 }).on("finish", function() { 7407 finished = true; 7408 checkFinished(); 7409 }); 7410 } 7411 Multipart.prototype.write = function(chunk, cb) { 7412 const r = this.parser.write(chunk); 7413 if (r && !this._pause) { 7414 cb(); 7415 } else { 7416 this._needDrain = !r; 7417 this._cb = cb; 7418 } 7419 }; 7420 Multipart.prototype.end = function() { 7421 const self2 = this; 7422 if (self2.parser.writable) { 7423 self2.parser.end(); 7424 } else if (!self2._boy._done) { 7425 process.nextTick(function() { 7426 self2._boy._done = true; 7427 self2._boy.emit("finish"); 7428 }); 7429 } 7430 }; 7431 function skipPart(part) { 7432 part.resume(); 7433 } 7434 function FileStream(opts) { 7435 Readable2.call(this, opts); 7436 this.bytesRead = 0; 7437 this.truncated = false; 7438 } 7439 inherits(FileStream, Readable2); 7440 FileStream.prototype._read = function(n) { 7441 }; 7442 module2.exports = Multipart; 7443 } 7444}); 7445 7446// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/Decoder.js 7447var require_Decoder = __commonJS({ 7448 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/utils/Decoder.js"(exports, module2) { 7449 "use strict"; 7450 var RE_PLUS = /\+/g; 7451 var HEX = [ 7452 0, 7453 0, 7454 0, 7455 0, 7456 0, 7457 0, 7458 0, 7459 0, 7460 0, 7461 0, 7462 0, 7463 0, 7464 0, 7465 0, 7466 0, 7467 0, 7468 0, 7469 0, 7470 0, 7471 0, 7472 0, 7473 0, 7474 0, 7475 0, 7476 0, 7477 0, 7478 0, 7479 0, 7480 0, 7481 0, 7482 0, 7483 0, 7484 0, 7485 0, 7486 0, 7487 0, 7488 0, 7489 0, 7490 0, 7491 0, 7492 0, 7493 0, 7494 0, 7495 0, 7496 0, 7497 0, 7498 0, 7499 0, 7500 1, 7501 1, 7502 1, 7503 1, 7504 1, 7505 1, 7506 1, 7507 1, 7508 1, 7509 1, 7510 0, 7511 0, 7512 0, 7513 0, 7514 0, 7515 0, 7516 0, 7517 1, 7518 1, 7519 1, 7520 1, 7521 1, 7522 1, 7523 0, 7524 0, 7525 0, 7526 0, 7527 0, 7528 0, 7529 0, 7530 0, 7531 0, 7532 0, 7533 0, 7534 0, 7535 0, 7536 0, 7537 0, 7538 0, 7539 0, 7540 0, 7541 0, 7542 0, 7543 0, 7544 0, 7545 0, 7546 0, 7547 0, 7548 0, 7549 1, 7550 1, 7551 1, 7552 1, 7553 1, 7554 1, 7555 0, 7556 0, 7557 0, 7558 0, 7559 0, 7560 0, 7561 0, 7562 0, 7563 0, 7564 0, 7565 0, 7566 0, 7567 0, 7568 0, 7569 0, 7570 0, 7571 0, 7572 0, 7573 0, 7574 0, 7575 0, 7576 0, 7577 0, 7578 0, 7579 0 7580 ]; 7581 function Decoder() { 7582 this.buffer = void 0; 7583 } 7584 Decoder.prototype.write = function(str) { 7585 str = str.replace(RE_PLUS, " "); 7586 let res = ""; 7587 let i = 0; 7588 let p = 0; 7589 const len = str.length; 7590 for (; i < len; ++i) { 7591 if (this.buffer !== void 0) { 7592 if (!HEX[str.charCodeAt(i)]) { 7593 res += "%" + this.buffer; 7594 this.buffer = void 0; 7595 --i; 7596 } else { 7597 this.buffer += str[i]; 7598 ++p; 7599 if (this.buffer.length === 2) { 7600 res += String.fromCharCode(parseInt(this.buffer, 16)); 7601 this.buffer = void 0; 7602 } 7603 } 7604 } else if (str[i] === "%") { 7605 if (i > p) { 7606 res += str.substring(p, i); 7607 p = i; 7608 } 7609 this.buffer = ""; 7610 ++p; 7611 } 7612 } 7613 if (p < len && this.buffer === void 0) { 7614 res += str.substring(p); 7615 } 7616 return res; 7617 }; 7618 Decoder.prototype.reset = function() { 7619 this.buffer = void 0; 7620 }; 7621 module2.exports = Decoder; 7622 } 7623}); 7624 7625// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/types/urlencoded.js 7626var require_urlencoded = __commonJS({ 7627 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/types/urlencoded.js"(exports, module2) { 7628 "use strict"; 7629 var Decoder = require_Decoder(); 7630 var decodeText = require_decodeText(); 7631 var getLimit = require_getLimit(); 7632 var RE_CHARSET = /^charset$/i; 7633 UrlEncoded.detect = /^application\/x-www-form-urlencoded/i; 7634 function UrlEncoded(boy, cfg) { 7635 const limits = cfg.limits; 7636 const parsedConType = cfg.parsedConType; 7637 this.boy = boy; 7638 this.fieldSizeLimit = getLimit(limits, "fieldSize", 1 * 1024 * 1024); 7639 this.fieldNameSizeLimit = getLimit(limits, "fieldNameSize", 100); 7640 this.fieldsLimit = getLimit(limits, "fields", Infinity); 7641 let charset; 7642 for (var i = 0, len = parsedConType.length; i < len; ++i) { 7643 if (Array.isArray(parsedConType[i]) && RE_CHARSET.test(parsedConType[i][0])) { 7644 charset = parsedConType[i][1].toLowerCase(); 7645 break; 7646 } 7647 } 7648 if (charset === void 0) { 7649 charset = cfg.defCharset || "utf8"; 7650 } 7651 this.decoder = new Decoder(); 7652 this.charset = charset; 7653 this._fields = 0; 7654 this._state = "key"; 7655 this._checkingBytes = true; 7656 this._bytesKey = 0; 7657 this._bytesVal = 0; 7658 this._key = ""; 7659 this._val = ""; 7660 this._keyTrunc = false; 7661 this._valTrunc = false; 7662 this._hitLimit = false; 7663 } 7664 UrlEncoded.prototype.write = function(data, cb) { 7665 if (this._fields === this.fieldsLimit) { 7666 if (!this.boy.hitFieldsLimit) { 7667 this.boy.hitFieldsLimit = true; 7668 this.boy.emit("fieldsLimit"); 7669 } 7670 return cb(); 7671 } 7672 let idxeq; 7673 let idxamp; 7674 let i; 7675 let p = 0; 7676 const len = data.length; 7677 while (p < len) { 7678 if (this._state === "key") { 7679 idxeq = idxamp = void 0; 7680 for (i = p; i < len; ++i) { 7681 if (!this._checkingBytes) { 7682 ++p; 7683 } 7684 if (data[i] === 61) { 7685 idxeq = i; 7686 break; 7687 } else if (data[i] === 38) { 7688 idxamp = i; 7689 break; 7690 } 7691 if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) { 7692 this._hitLimit = true; 7693 break; 7694 } else if (this._checkingBytes) { 7695 ++this._bytesKey; 7696 } 7697 } 7698 if (idxeq !== void 0) { 7699 if (idxeq > p) { 7700 this._key += this.decoder.write(data.toString("binary", p, idxeq)); 7701 } 7702 this._state = "val"; 7703 this._hitLimit = false; 7704 this._checkingBytes = true; 7705 this._val = ""; 7706 this._bytesVal = 0; 7707 this._valTrunc = false; 7708 this.decoder.reset(); 7709 p = idxeq + 1; 7710 } else if (idxamp !== void 0) { 7711 ++this._fields; 7712 let key; 7713 const keyTrunc = this._keyTrunc; 7714 if (idxamp > p) { 7715 key = this._key += this.decoder.write(data.toString("binary", p, idxamp)); 7716 } else { 7717 key = this._key; 7718 } 7719 this._hitLimit = false; 7720 this._checkingBytes = true; 7721 this._key = ""; 7722 this._bytesKey = 0; 7723 this._keyTrunc = false; 7724 this.decoder.reset(); 7725 if (key.length) { 7726 this.boy.emit( 7727 "field", 7728 decodeText(key, "binary", this.charset), 7729 "", 7730 keyTrunc, 7731 false 7732 ); 7733 } 7734 p = idxamp + 1; 7735 if (this._fields === this.fieldsLimit) { 7736 return cb(); 7737 } 7738 } else if (this._hitLimit) { 7739 if (i > p) { 7740 this._key += this.decoder.write(data.toString("binary", p, i)); 7741 } 7742 p = i; 7743 if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) { 7744 this._checkingBytes = false; 7745 this._keyTrunc = true; 7746 } 7747 } else { 7748 if (p < len) { 7749 this._key += this.decoder.write(data.toString("binary", p)); 7750 } 7751 p = len; 7752 } 7753 } else { 7754 idxamp = void 0; 7755 for (i = p; i < len; ++i) { 7756 if (!this._checkingBytes) { 7757 ++p; 7758 } 7759 if (data[i] === 38) { 7760 idxamp = i; 7761 break; 7762 } 7763 if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) { 7764 this._hitLimit = true; 7765 break; 7766 } else if (this._checkingBytes) { 7767 ++this._bytesVal; 7768 } 7769 } 7770 if (idxamp !== void 0) { 7771 ++this._fields; 7772 if (idxamp > p) { 7773 this._val += this.decoder.write(data.toString("binary", p, idxamp)); 7774 } 7775 this.boy.emit( 7776 "field", 7777 decodeText(this._key, "binary", this.charset), 7778 decodeText(this._val, "binary", this.charset), 7779 this._keyTrunc, 7780 this._valTrunc 7781 ); 7782 this._state = "key"; 7783 this._hitLimit = false; 7784 this._checkingBytes = true; 7785 this._key = ""; 7786 this._bytesKey = 0; 7787 this._keyTrunc = false; 7788 this.decoder.reset(); 7789 p = idxamp + 1; 7790 if (this._fields === this.fieldsLimit) { 7791 return cb(); 7792 } 7793 } else if (this._hitLimit) { 7794 if (i > p) { 7795 this._val += this.decoder.write(data.toString("binary", p, i)); 7796 } 7797 p = i; 7798 if (this._val === "" && this.fieldSizeLimit === 0 || (this._bytesVal = this._val.length) === this.fieldSizeLimit) { 7799 this._checkingBytes = false; 7800 this._valTrunc = true; 7801 } 7802 } else { 7803 if (p < len) { 7804 this._val += this.decoder.write(data.toString("binary", p)); 7805 } 7806 p = len; 7807 } 7808 } 7809 } 7810 cb(); 7811 }; 7812 UrlEncoded.prototype.end = function() { 7813 if (this.boy._done) { 7814 return; 7815 } 7816 if (this._state === "key" && this._key.length > 0) { 7817 this.boy.emit( 7818 "field", 7819 decodeText(this._key, "binary", this.charset), 7820 "", 7821 this._keyTrunc, 7822 false 7823 ); 7824 } else if (this._state === "val") { 7825 this.boy.emit( 7826 "field", 7827 decodeText(this._key, "binary", this.charset), 7828 decodeText(this._val, "binary", this.charset), 7829 this._keyTrunc, 7830 this._valTrunc 7831 ); 7832 } 7833 this.boy._done = true; 7834 this.boy.emit("finish"); 7835 }; 7836 module2.exports = UrlEncoded; 7837 } 7838}); 7839 7840// .yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/main.js 7841var require_main = __commonJS({ 7842 ".yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-7bb641080a.zip/node_modules/@fastify/busboy/lib/main.js"(exports, module2) { 7843 "use strict"; 7844 var WritableStream = require("node:stream").Writable; 7845 var { inherits } = require("node:util"); 7846 var Dicer = require_Dicer(); 7847 var MultipartParser = require_multipart(); 7848 var UrlencodedParser = require_urlencoded(); 7849 var parseParams = require_parseParams(); 7850 function Busboy(opts) { 7851 if (!(this instanceof Busboy)) { 7852 return new Busboy(opts); 7853 } 7854 if (typeof opts !== "object") { 7855 throw new TypeError("Busboy expected an options-Object."); 7856 } 7857 if (typeof opts.headers !== "object") { 7858 throw new TypeError("Busboy expected an options-Object with headers-attribute."); 7859 } 7860 if (typeof opts.headers["content-type"] !== "string") { 7861 throw new TypeError("Missing Content-Type-header."); 7862 } 7863 const { 7864 headers, 7865 ...streamOptions 7866 } = opts; 7867 this.opts = { 7868 autoDestroy: false, 7869 ...streamOptions 7870 }; 7871 WritableStream.call(this, this.opts); 7872 this._done = false; 7873 this._parser = this.getParserByHeaders(headers); 7874 this._finished = false; 7875 } 7876 inherits(Busboy, WritableStream); 7877 Busboy.prototype.emit = function(ev) { 7878 if (ev === "finish") { 7879 if (!this._done) { 7880 this._parser?.end(); 7881 return; 7882 } else if (this._finished) { 7883 return; 7884 } 7885 this._finished = true; 7886 } 7887 WritableStream.prototype.emit.apply(this, arguments); 7888 }; 7889 Busboy.prototype.getParserByHeaders = function(headers) { 7890 const parsed = parseParams(headers["content-type"]); 7891 const cfg = { 7892 defCharset: this.opts.defCharset, 7893 fileHwm: this.opts.fileHwm, 7894 headers, 7895 highWaterMark: this.opts.highWaterMark, 7896 isPartAFile: this.opts.isPartAFile, 7897 limits: this.opts.limits, 7898 parsedConType: parsed, 7899 preservePath: this.opts.preservePath 7900 }; 7901 if (MultipartParser.detect.test(parsed[0])) { 7902 return new MultipartParser(this, cfg); 7903 } 7904 if (UrlencodedParser.detect.test(parsed[0])) { 7905 return new UrlencodedParser(this, cfg); 7906 } 7907 throw new Error("Unsupported Content-Type."); 7908 }; 7909 Busboy.prototype._write = function(chunk, encoding, cb) { 7910 this._parser.write(chunk, cb); 7911 }; 7912 module2.exports = Busboy; 7913 module2.exports.default = Busboy; 7914 module2.exports.Busboy = Busboy; 7915 module2.exports.Dicer = Dicer; 7916 } 7917}); 7918 7919// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/constants.js 7920var require_constants3 = __commonJS({ 7921 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/constants.js"(exports, module2) { 7922 "use strict"; 7923 var corsSafeListedMethods = ["GET", "HEAD", "POST"]; 7924 var corsSafeListedMethodsSet = new Set(corsSafeListedMethods); 7925 var nullBodyStatus = [101, 204, 205, 304]; 7926 var redirectStatus = [301, 302, 303, 307, 308]; 7927 var redirectStatusSet = new Set(redirectStatus); 7928 var badPorts = [ 7929 "1", 7930 "7", 7931 "9", 7932 "11", 7933 "13", 7934 "15", 7935 "17", 7936 "19", 7937 "20", 7938 "21", 7939 "22", 7940 "23", 7941 "25", 7942 "37", 7943 "42", 7944 "43", 7945 "53", 7946 "69", 7947 "77", 7948 "79", 7949 "87", 7950 "95", 7951 "101", 7952 "102", 7953 "103", 7954 "104", 7955 "109", 7956 "110", 7957 "111", 7958 "113", 7959 "115", 7960 "117", 7961 "119", 7962 "123", 7963 "135", 7964 "137", 7965 "139", 7966 "143", 7967 "161", 7968 "179", 7969 "389", 7970 "427", 7971 "465", 7972 "512", 7973 "513", 7974 "514", 7975 "515", 7976 "526", 7977 "530", 7978 "531", 7979 "532", 7980 "540", 7981 "548", 7982 "554", 7983 "556", 7984 "563", 7985 "587", 7986 "601", 7987 "636", 7988 "989", 7989 "990", 7990 "993", 7991 "995", 7992 "1719", 7993 "1720", 7994 "1723", 7995 "2049", 7996 "3659", 7997 "4045", 7998 "5060", 7999 "5061", 8000 "6000", 8001 "6566", 8002 "6665", 8003 "6666", 8004 "6667", 8005 "6668", 8006 "6669", 8007 "6697", 8008 "10080" 8009 ]; 8010 var badPortsSet = new Set(badPorts); 8011 var referrerPolicy = [ 8012 "", 8013 "no-referrer", 8014 "no-referrer-when-downgrade", 8015 "same-origin", 8016 "origin", 8017 "strict-origin", 8018 "origin-when-cross-origin", 8019 "strict-origin-when-cross-origin", 8020 "unsafe-url" 8021 ]; 8022 var referrerPolicySet = new Set(referrerPolicy); 8023 var requestRedirect = ["follow", "manual", "error"]; 8024 var safeMethods = ["GET", "HEAD", "OPTIONS", "TRACE"]; 8025 var safeMethodsSet = new Set(safeMethods); 8026 var requestMode = ["navigate", "same-origin", "no-cors", "cors"]; 8027 var requestCredentials = ["omit", "same-origin", "include"]; 8028 var requestCache = [ 8029 "default", 8030 "no-store", 8031 "reload", 8032 "no-cache", 8033 "force-cache", 8034 "only-if-cached" 8035 ]; 8036 var requestBodyHeader = [ 8037 "content-encoding", 8038 "content-language", 8039 "content-location", 8040 "content-type", 8041 // See https://github.com/nodejs/undici/issues/2021 8042 // 'Content-Length' is a forbidden header name, which is typically 8043 // removed in the Headers implementation. However, undici doesn't 8044 // filter out headers, so we add it here. 8045 "content-length" 8046 ]; 8047 var requestDuplex = [ 8048 "half" 8049 ]; 8050 var forbiddenMethods = ["CONNECT", "TRACE", "TRACK"]; 8051 var forbiddenMethodsSet = new Set(forbiddenMethods); 8052 var subresource = [ 8053 "audio", 8054 "audioworklet", 8055 "font", 8056 "image", 8057 "manifest", 8058 "paintworklet", 8059 "script", 8060 "style", 8061 "track", 8062 "video", 8063 "xslt", 8064 "" 8065 ]; 8066 var subresourceSet = new Set(subresource); 8067 module2.exports = { 8068 subresource, 8069 forbiddenMethods, 8070 requestBodyHeader, 8071 referrerPolicy, 8072 requestRedirect, 8073 requestMode, 8074 requestCredentials, 8075 requestCache, 8076 redirectStatus, 8077 corsSafeListedMethods, 8078 nullBodyStatus, 8079 safeMethods, 8080 badPorts, 8081 requestDuplex, 8082 subresourceSet, 8083 badPortsSet, 8084 redirectStatusSet, 8085 corsSafeListedMethodsSet, 8086 safeMethodsSet, 8087 forbiddenMethodsSet, 8088 referrerPolicySet 8089 }; 8090 } 8091}); 8092 8093// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/global.js 8094var require_global = __commonJS({ 8095 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/global.js"(exports, module2) { 8096 "use strict"; 8097 var globalOrigin = Symbol.for("undici.globalOrigin.1"); 8098 function getGlobalOrigin() { 8099 return globalThis[globalOrigin]; 8100 } 8101 function setGlobalOrigin(newOrigin) { 8102 if (newOrigin === void 0) { 8103 Object.defineProperty(globalThis, globalOrigin, { 8104 value: void 0, 8105 writable: true, 8106 enumerable: false, 8107 configurable: false 8108 }); 8109 return; 8110 } 8111 const parsedURL = new URL(newOrigin); 8112 if (parsedURL.protocol !== "http:" && parsedURL.protocol !== "https:") { 8113 throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`); 8114 } 8115 Object.defineProperty(globalThis, globalOrigin, { 8116 value: parsedURL, 8117 writable: true, 8118 enumerable: false, 8119 configurable: false 8120 }); 8121 } 8122 module2.exports = { 8123 getGlobalOrigin, 8124 setGlobalOrigin 8125 }; 8126 } 8127}); 8128 8129// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/dataURL.js 8130var require_dataURL = __commonJS({ 8131 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/dataURL.js"(exports, module2) { 8132 var assert3 = require("node:assert"); 8133 var encoder = new TextEncoder(); 8134 var HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/; 8135 var HTTP_WHITESPACE_REGEX = /[\u000A|\u000D|\u0009|\u0020]/; 8136 var ASCII_WHITESPACE_REPLACE_REGEX = /[\u0009\u000A\u000C\u000D\u0020]/g; 8137 var HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/; 8138 function dataURLProcessor(dataURL) { 8139 assert3(dataURL.protocol === "data:"); 8140 let input = URLSerializer(dataURL, true); 8141 input = input.slice(5); 8142 const position = { position: 0 }; 8143 let mimeType = collectASequenceOfCodePointsFast( 8144 ",", 8145 input, 8146 position 8147 ); 8148 const mimeTypeLength = mimeType.length; 8149 mimeType = removeASCIIWhitespace(mimeType, true, true); 8150 if (position.position >= input.length) { 8151 return "failure"; 8152 } 8153 position.position++; 8154 const encodedBody = input.slice(mimeTypeLength + 1); 8155 let body = stringPercentDecode(encodedBody); 8156 if (/;(\u0020){0,}base64$/i.test(mimeType)) { 8157 const stringBody = isomorphicDecode(body); 8158 body = forgivingBase64(stringBody); 8159 if (body === "failure") { 8160 return "failure"; 8161 } 8162 mimeType = mimeType.slice(0, -6); 8163 mimeType = mimeType.replace(/(\u0020)+$/, ""); 8164 mimeType = mimeType.slice(0, -1); 8165 } 8166 if (mimeType.startsWith(";")) { 8167 mimeType = "text/plain" + mimeType; 8168 } 8169 let mimeTypeRecord = parseMIMEType(mimeType); 8170 if (mimeTypeRecord === "failure") { 8171 mimeTypeRecord = parseMIMEType("text/plain;charset=US-ASCII"); 8172 } 8173 return { mimeType: mimeTypeRecord, body }; 8174 } 8175 function URLSerializer(url, excludeFragment = false) { 8176 if (!excludeFragment) { 8177 return url.href; 8178 } 8179 const href = url.href; 8180 const hashLength = url.hash.length; 8181 const serialized = hashLength === 0 ? href : href.substring(0, href.length - hashLength); 8182 if (!hashLength && href.endsWith("#")) { 8183 return serialized.slice(0, -1); 8184 } 8185 return serialized; 8186 } 8187 function collectASequenceOfCodePoints(condition, input, position) { 8188 let result = ""; 8189 while (position.position < input.length && condition(input[position.position])) { 8190 result += input[position.position]; 8191 position.position++; 8192 } 8193 return result; 8194 } 8195 function collectASequenceOfCodePointsFast(char, input, position) { 8196 const idx = input.indexOf(char, position.position); 8197 const start = position.position; 8198 if (idx === -1) { 8199 position.position = input.length; 8200 return input.slice(start); 8201 } 8202 position.position = idx; 8203 return input.slice(start, position.position); 8204 } 8205 function stringPercentDecode(input) { 8206 const bytes = encoder.encode(input); 8207 return percentDecode(bytes); 8208 } 8209 function isHexCharByte(byte) { 8210 return byte >= 48 && byte <= 57 || byte >= 65 && byte <= 70 || byte >= 97 && byte <= 102; 8211 } 8212 function hexByteToNumber(byte) { 8213 return ( 8214 // 0-9 8215 byte >= 48 && byte <= 57 ? byte - 48 : (byte & 223) - 55 8216 ); 8217 } 8218 function percentDecode(input) { 8219 const length = input.length; 8220 const output = new Uint8Array(length); 8221 let j = 0; 8222 for (let i = 0; i < length; ++i) { 8223 const byte = input[i]; 8224 if (byte !== 37) { 8225 output[j++] = byte; 8226 } else if (byte === 37 && !(isHexCharByte(input[i + 1]) && isHexCharByte(input[i + 2]))) { 8227 output[j++] = 37; 8228 } else { 8229 output[j++] = hexByteToNumber(input[i + 1]) << 4 | hexByteToNumber(input[i + 2]); 8230 i += 2; 8231 } 8232 } 8233 return length === j ? output : output.subarray(0, j); 8234 } 8235 function parseMIMEType(input) { 8236 input = removeHTTPWhitespace(input, true, true); 8237 const position = { position: 0 }; 8238 const type = collectASequenceOfCodePointsFast( 8239 "/", 8240 input, 8241 position 8242 ); 8243 if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { 8244 return "failure"; 8245 } 8246 if (position.position > input.length) { 8247 return "failure"; 8248 } 8249 position.position++; 8250 let subtype = collectASequenceOfCodePointsFast( 8251 ";", 8252 input, 8253 position 8254 ); 8255 subtype = removeHTTPWhitespace(subtype, false, true); 8256 if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { 8257 return "failure"; 8258 } 8259 const typeLowercase = type.toLowerCase(); 8260 const subtypeLowercase = subtype.toLowerCase(); 8261 const mimeType = { 8262 type: typeLowercase, 8263 subtype: subtypeLowercase, 8264 /** @type {Map<string, string>} */ 8265 parameters: /* @__PURE__ */ new Map(), 8266 // https://mimesniff.spec.whatwg.org/#mime-type-essence 8267 essence: `${typeLowercase}/${subtypeLowercase}` 8268 }; 8269 while (position.position < input.length) { 8270 position.position++; 8271 collectASequenceOfCodePoints( 8272 // https://fetch.spec.whatwg.org/#http-whitespace 8273 (char) => HTTP_WHITESPACE_REGEX.test(char), 8274 input, 8275 position 8276 ); 8277 let parameterName = collectASequenceOfCodePoints( 8278 (char) => char !== ";" && char !== "=", 8279 input, 8280 position 8281 ); 8282 parameterName = parameterName.toLowerCase(); 8283 if (position.position < input.length) { 8284 if (input[position.position] === ";") { 8285 continue; 8286 } 8287 position.position++; 8288 } 8289 if (position.position > input.length) { 8290 break; 8291 } 8292 let parameterValue = null; 8293 if (input[position.position] === '"') { 8294 parameterValue = collectAnHTTPQuotedString(input, position, true); 8295 collectASequenceOfCodePointsFast( 8296 ";", 8297 input, 8298 position 8299 ); 8300 } else { 8301 parameterValue = collectASequenceOfCodePointsFast( 8302 ";", 8303 input, 8304 position 8305 ); 8306 parameterValue = removeHTTPWhitespace(parameterValue, false, true); 8307 if (parameterValue.length === 0) { 8308 continue; 8309 } 8310 } 8311 if (parameterName.length !== 0 && HTTP_TOKEN_CODEPOINTS.test(parameterName) && (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && !mimeType.parameters.has(parameterName)) { 8312 mimeType.parameters.set(parameterName, parameterValue); 8313 } 8314 } 8315 return mimeType; 8316 } 8317 function forgivingBase64(data) { 8318 data = data.replace(ASCII_WHITESPACE_REPLACE_REGEX, ""); 8319 let dataLength = data.length; 8320 if (dataLength % 4 === 0) { 8321 if (data.charCodeAt(dataLength - 1) === 61) { 8322 --dataLength; 8323 if (data.charCodeAt(dataLength - 1) === 61) { 8324 --dataLength; 8325 } 8326 } 8327 } 8328 if (dataLength % 4 === 1) { 8329 return "failure"; 8330 } 8331 if (/[^+/0-9A-Za-z]/.test(data.length === dataLength ? data : data.substring(0, dataLength))) { 8332 return "failure"; 8333 } 8334 const buffer = Buffer.from(data, "base64"); 8335 return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); 8336 } 8337 function collectAnHTTPQuotedString(input, position, extractValue) { 8338 const positionStart = position.position; 8339 let value = ""; 8340 assert3(input[position.position] === '"'); 8341 position.position++; 8342 while (true) { 8343 value += collectASequenceOfCodePoints( 8344 (char) => char !== '"' && char !== "\\", 8345 input, 8346 position 8347 ); 8348 if (position.position >= input.length) { 8349 break; 8350 } 8351 const quoteOrBackslash = input[position.position]; 8352 position.position++; 8353 if (quoteOrBackslash === "\\") { 8354 if (position.position >= input.length) { 8355 value += "\\"; 8356 break; 8357 } 8358 value += input[position.position]; 8359 position.position++; 8360 } else { 8361 assert3(quoteOrBackslash === '"'); 8362 break; 8363 } 8364 } 8365 if (extractValue) { 8366 return value; 8367 } 8368 return input.slice(positionStart, position.position); 8369 } 8370 function serializeAMimeType(mimeType) { 8371 assert3(mimeType !== "failure"); 8372 const { parameters, essence } = mimeType; 8373 let serialization = essence; 8374 for (let [name, value] of parameters.entries()) { 8375 serialization += ";"; 8376 serialization += name; 8377 serialization += "="; 8378 if (!HTTP_TOKEN_CODEPOINTS.test(value)) { 8379 value = value.replace(/(\\|")/g, "\\$1"); 8380 value = '"' + value; 8381 value += '"'; 8382 } 8383 serialization += value; 8384 } 8385 return serialization; 8386 } 8387 function isHTTPWhiteSpace(char) { 8388 return char === 13 || char === 10 || char === 9 || char === 32; 8389 } 8390 function removeHTTPWhitespace(str, leading = true, trailing = true) { 8391 return removeChars(str, leading, trailing, isHTTPWhiteSpace); 8392 } 8393 function isASCIIWhitespace(char) { 8394 return char === 13 || char === 10 || char === 9 || char === 12 || char === 32; 8395 } 8396 function removeASCIIWhitespace(str, leading = true, trailing = true) { 8397 return removeChars(str, leading, trailing, isASCIIWhitespace); 8398 } 8399 function removeChars(str, leading, trailing, predicate) { 8400 let lead = 0; 8401 let trail = str.length - 1; 8402 if (leading) { 8403 while (lead < str.length && predicate(str.charCodeAt(lead))) 8404 lead++; 8405 } 8406 if (trailing) { 8407 while (trail > 0 && predicate(str.charCodeAt(trail))) 8408 trail--; 8409 } 8410 return lead === 0 && trail === str.length - 1 ? str : str.slice(lead, trail + 1); 8411 } 8412 function isomorphicDecode(input) { 8413 const length = input.length; 8414 if ((2 << 15) - 1 > length) { 8415 return String.fromCharCode.apply(null, input); 8416 } 8417 let result = ""; 8418 let i = 0; 8419 let addition = (2 << 15) - 1; 8420 while (i < length) { 8421 if (i + addition > length) { 8422 addition = length - i; 8423 } 8424 result += String.fromCharCode.apply(null, input.subarray(i, i += addition)); 8425 } 8426 return result; 8427 } 8428 function minimizeSupportedMimeType(mimeType) { 8429 switch (mimeType.essence) { 8430 case "application/ecmascript": 8431 case "application/javascript": 8432 case "application/x-ecmascript": 8433 case "application/x-javascript": 8434 case "text/ecmascript": 8435 case "text/javascript": 8436 case "text/javascript1.0": 8437 case "text/javascript1.1": 8438 case "text/javascript1.2": 8439 case "text/javascript1.3": 8440 case "text/javascript1.4": 8441 case "text/javascript1.5": 8442 case "text/jscript": 8443 case "text/livescript": 8444 case "text/x-ecmascript": 8445 case "text/x-javascript": 8446 return "text/javascript"; 8447 case "application/json": 8448 case "text/json": 8449 return "application/json"; 8450 case "image/svg+xml": 8451 return "image/svg+xml"; 8452 case "text/xml": 8453 case "application/xml": 8454 return "application/xml"; 8455 } 8456 if (mimeType.subtype.endsWith("+json")) { 8457 return "application/json"; 8458 } 8459 if (mimeType.subtype.endsWith("+xml")) { 8460 return "application/xml"; 8461 } 8462 return ""; 8463 } 8464 module2.exports = { 8465 dataURLProcessor, 8466 URLSerializer, 8467 collectASequenceOfCodePoints, 8468 collectASequenceOfCodePointsFast, 8469 stringPercentDecode, 8470 parseMIMEType, 8471 collectAnHTTPQuotedString, 8472 serializeAMimeType, 8473 removeChars, 8474 minimizeSupportedMimeType 8475 }; 8476 } 8477}); 8478 8479// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/util.js 8480var require_util2 = __commonJS({ 8481 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/util.js"(exports, module2) { 8482 "use strict"; 8483 var { Transform } = require("node:stream"); 8484 var zlib = require("node:zlib"); 8485 var { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require_constants3(); 8486 var { getGlobalOrigin } = require_global(); 8487 var { collectASequenceOfCodePoints, collectAnHTTPQuotedString, removeChars, parseMIMEType } = require_dataURL(); 8488 var { performance } = require("node:perf_hooks"); 8489 var { isBlobLike, toUSVString, ReadableStreamFrom, isValidHTTPToken } = require_util(); 8490 var assert3 = require("node:assert"); 8491 var { isUint8Array } = require("util/types"); 8492 var crypto; 8493 try { 8494 crypto = require("node:crypto"); 8495 } catch { 8496 } 8497 function responseURL(response) { 8498 const urlList = response.urlList; 8499 const length = urlList.length; 8500 return length === 0 ? null : urlList[length - 1].toString(); 8501 } 8502 function responseLocationURL(response, requestFragment) { 8503 if (!redirectStatusSet.has(response.status)) { 8504 return null; 8505 } 8506 let location = response.headersList.get("location", true); 8507 if (location !== null && isValidHeaderValue(location)) { 8508 location = new URL(location, responseURL(response)); 8509 } 8510 if (location && !location.hash) { 8511 location.hash = requestFragment; 8512 } 8513 return location; 8514 } 8515 function requestCurrentURL(request) { 8516 return request.urlList[request.urlList.length - 1]; 8517 } 8518 function requestBadPort(request) { 8519 const url = requestCurrentURL(request); 8520 if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { 8521 return "blocked"; 8522 } 8523 return "allowed"; 8524 } 8525 function isErrorLike(object) { 8526 return object instanceof Error || (object?.constructor?.name === "Error" || object?.constructor?.name === "DOMException"); 8527 } 8528 function isValidReasonPhrase(statusText) { 8529 for (let i = 0; i < statusText.length; ++i) { 8530 const c = statusText.charCodeAt(i); 8531 if (!(c === 9 || // HTAB 8532 c >= 32 && c <= 126 || // SP / VCHAR 8533 c >= 128 && c <= 255)) { 8534 return false; 8535 } 8536 } 8537 return true; 8538 } 8539 function isValidHeaderName(potentialValue) { 8540 return isValidHTTPToken(potentialValue); 8541 } 8542 function isValidHeaderValue(potentialValue) { 8543 if (potentialValue.startsWith(" ") || potentialValue.startsWith(" ") || potentialValue.endsWith(" ") || potentialValue.endsWith(" ")) { 8544 return false; 8545 } 8546 if (potentialValue.includes("\0") || potentialValue.includes("\r") || potentialValue.includes("\n")) { 8547 return false; 8548 } 8549 return true; 8550 } 8551 function setRequestReferrerPolicyOnRedirect(request, actualResponse) { 8552 const { headersList } = actualResponse; 8553 const policyHeader = (headersList.get("referrer-policy", true) ?? "").split(","); 8554 let policy = ""; 8555 if (policyHeader.length > 0) { 8556 for (let i = policyHeader.length; i !== 0; i--) { 8557 const token = policyHeader[i - 1].trim(); 8558 if (referrerPolicyTokens.has(token)) { 8559 policy = token; 8560 break; 8561 } 8562 } 8563 } 8564 if (policy !== "") { 8565 request.referrerPolicy = policy; 8566 } 8567 } 8568 function crossOriginResourcePolicyCheck() { 8569 return "allowed"; 8570 } 8571 function corsCheck() { 8572 return "success"; 8573 } 8574 function TAOCheck() { 8575 return "success"; 8576 } 8577 function appendFetchMetadata(httpRequest) { 8578 let header = null; 8579 header = httpRequest.mode; 8580 httpRequest.headersList.set("sec-fetch-mode", header, true); 8581 } 8582 function appendRequestOriginHeader(request) { 8583 let serializedOrigin = request.origin; 8584 if (request.responseTainting === "cors" || request.mode === "websocket") { 8585 if (serializedOrigin) { 8586 request.headersList.append("origin", serializedOrigin, true); 8587 } 8588 } else if (request.method !== "GET" && request.method !== "HEAD") { 8589 switch (request.referrerPolicy) { 8590 case "no-referrer": 8591 serializedOrigin = null; 8592 break; 8593 case "no-referrer-when-downgrade": 8594 case "strict-origin": 8595 case "strict-origin-when-cross-origin": 8596 if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) { 8597 serializedOrigin = null; 8598 } 8599 break; 8600 case "same-origin": 8601 if (!sameOrigin(request, requestCurrentURL(request))) { 8602 serializedOrigin = null; 8603 } 8604 break; 8605 default: 8606 } 8607 if (serializedOrigin) { 8608 request.headersList.append("origin", serializedOrigin, true); 8609 } 8610 } 8611 } 8612 function coarsenTime(timestamp, crossOriginIsolatedCapability) { 8613 return timestamp; 8614 } 8615 function clampAndCoarsenConnectionTimingInfo(connectionTimingInfo, defaultStartTime, crossOriginIsolatedCapability) { 8616 if (!connectionTimingInfo?.startTime || connectionTimingInfo.startTime < defaultStartTime) { 8617 return { 8618 domainLookupStartTime: defaultStartTime, 8619 domainLookupEndTime: defaultStartTime, 8620 connectionStartTime: defaultStartTime, 8621 connectionEndTime: defaultStartTime, 8622 secureConnectionStartTime: defaultStartTime, 8623 ALPNNegotiatedProtocol: connectionTimingInfo?.ALPNNegotiatedProtocol 8624 }; 8625 } 8626 return { 8627 domainLookupStartTime: coarsenTime(connectionTimingInfo.domainLookupStartTime, crossOriginIsolatedCapability), 8628 domainLookupEndTime: coarsenTime(connectionTimingInfo.domainLookupEndTime, crossOriginIsolatedCapability), 8629 connectionStartTime: coarsenTime(connectionTimingInfo.connectionStartTime, crossOriginIsolatedCapability), 8630 connectionEndTime: coarsenTime(connectionTimingInfo.connectionEndTime, crossOriginIsolatedCapability), 8631 secureConnectionStartTime: coarsenTime(connectionTimingInfo.secureConnectionStartTime, crossOriginIsolatedCapability), 8632 ALPNNegotiatedProtocol: connectionTimingInfo.ALPNNegotiatedProtocol 8633 }; 8634 } 8635 function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { 8636 return coarsenTime(performance.now(), crossOriginIsolatedCapability); 8637 } 8638 function createOpaqueTimingInfo(timingInfo) { 8639 return { 8640 startTime: timingInfo.startTime ?? 0, 8641 redirectStartTime: 0, 8642 redirectEndTime: 0, 8643 postRedirectStartTime: timingInfo.startTime ?? 0, 8644 finalServiceWorkerStartTime: 0, 8645 finalNetworkResponseStartTime: 0, 8646 finalNetworkRequestStartTime: 0, 8647 endTime: 0, 8648 encodedBodySize: 0, 8649 decodedBodySize: 0, 8650 finalConnectionTimingInfo: null 8651 }; 8652 } 8653 function makePolicyContainer() { 8654 return { 8655 referrerPolicy: "strict-origin-when-cross-origin" 8656 }; 8657 } 8658 function clonePolicyContainer(policyContainer) { 8659 return { 8660 referrerPolicy: policyContainer.referrerPolicy 8661 }; 8662 } 8663 function determineRequestsReferrer(request) { 8664 const policy = request.referrerPolicy; 8665 assert3(policy); 8666 let referrerSource = null; 8667 if (request.referrer === "client") { 8668 const globalOrigin = getGlobalOrigin(); 8669 if (!globalOrigin || globalOrigin.origin === "null") { 8670 return "no-referrer"; 8671 } 8672 referrerSource = new URL(globalOrigin); 8673 } else if (request.referrer instanceof URL) { 8674 referrerSource = request.referrer; 8675 } 8676 let referrerURL = stripURLForReferrer(referrerSource); 8677 const referrerOrigin = stripURLForReferrer(referrerSource, true); 8678 if (referrerURL.toString().length > 4096) { 8679 referrerURL = referrerOrigin; 8680 } 8681 const areSameOrigin = sameOrigin(request, referrerURL); 8682 const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(request.url); 8683 switch (policy) { 8684 case "origin": 8685 return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true); 8686 case "unsafe-url": 8687 return referrerURL; 8688 case "same-origin": 8689 return areSameOrigin ? referrerOrigin : "no-referrer"; 8690 case "origin-when-cross-origin": 8691 return areSameOrigin ? referrerURL : referrerOrigin; 8692 case "strict-origin-when-cross-origin": { 8693 const currentURL = requestCurrentURL(request); 8694 if (sameOrigin(referrerURL, currentURL)) { 8695 return referrerURL; 8696 } 8697 if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { 8698 return "no-referrer"; 8699 } 8700 return referrerOrigin; 8701 } 8702 case "strict-origin": 8703 case "no-referrer-when-downgrade": 8704 default: 8705 return isNonPotentiallyTrustWorthy ? "no-referrer" : referrerOrigin; 8706 } 8707 } 8708 function stripURLForReferrer(url, originOnly) { 8709 assert3(url instanceof URL); 8710 if (url.protocol === "file:" || url.protocol === "about:" || url.protocol === "blank:") { 8711 return "no-referrer"; 8712 } 8713 url.username = ""; 8714 url.password = ""; 8715 url.hash = ""; 8716 if (originOnly) { 8717 url.pathname = ""; 8718 url.search = ""; 8719 } 8720 return url; 8721 } 8722 function isURLPotentiallyTrustworthy(url) { 8723 if (!(url instanceof URL)) { 8724 return false; 8725 } 8726 if (url.href === "about:blank" || url.href === "about:srcdoc") { 8727 return true; 8728 } 8729 if (url.protocol === "data:") 8730 return true; 8731 if (url.protocol === "file:") 8732 return true; 8733 return isOriginPotentiallyTrustworthy(url.origin); 8734 function isOriginPotentiallyTrustworthy(origin) { 8735 if (origin == null || origin === "null") 8736 return false; 8737 const originAsURL = new URL(origin); 8738 if (originAsURL.protocol === "https:" || originAsURL.protocol === "wss:") { 8739 return true; 8740 } 8741 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")) { 8742 return true; 8743 } 8744 return false; 8745 } 8746 } 8747 function bytesMatch(bytes, metadataList) { 8748 if (crypto === void 0) { 8749 return true; 8750 } 8751 const parsedMetadata = parseMetadata(metadataList); 8752 if (parsedMetadata === "no metadata") { 8753 return true; 8754 } 8755 if (parsedMetadata.length === 0) { 8756 return true; 8757 } 8758 const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo)); 8759 const strongest = list[0].algo; 8760 const metadata = list.filter((item) => item.algo === strongest); 8761 for (const item of metadata) { 8762 const algorithm = item.algo; 8763 let expectedValue = item.hash; 8764 if (expectedValue.endsWith("==")) { 8765 expectedValue = expectedValue.slice(0, -2); 8766 } 8767 let actualValue = crypto.createHash(algorithm).update(bytes).digest("base64"); 8768 if (actualValue.endsWith("==")) { 8769 actualValue = actualValue.slice(0, -2); 8770 } 8771 if (actualValue === expectedValue) { 8772 return true; 8773 } 8774 let actualBase64URL = crypto.createHash(algorithm).update(bytes).digest("base64url"); 8775 if (actualBase64URL.endsWith("==")) { 8776 actualBase64URL = actualBase64URL.slice(0, -2); 8777 } 8778 if (actualBase64URL === expectedValue) { 8779 return true; 8780 } 8781 } 8782 return false; 8783 } 8784 var parseHashWithOptions = /(?<algo>sha256|sha384|sha512)-(?<hash>[A-Za-z0-9+/]+={0,2}(?=\s|$))( +[!-~]*)?/i; 8785 function parseMetadata(metadata) { 8786 const result = []; 8787 let empty = true; 8788 const supportedHashes = crypto.getHashes(); 8789 for (const token of metadata.split(" ")) { 8790 empty = false; 8791 const parsedToken = parseHashWithOptions.exec(token); 8792 if (parsedToken === null || parsedToken.groups === void 0) { 8793 continue; 8794 } 8795 const algorithm = parsedToken.groups.algo; 8796 if (supportedHashes.includes(algorithm.toLowerCase())) { 8797 result.push(parsedToken.groups); 8798 } 8799 } 8800 if (empty === true) { 8801 return "no metadata"; 8802 } 8803 return result; 8804 } 8805 function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) { 8806 } 8807 function sameOrigin(A, B) { 8808 if (A.origin === B.origin && A.origin === "null") { 8809 return true; 8810 } 8811 if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { 8812 return true; 8813 } 8814 return false; 8815 } 8816 function createDeferredPromise() { 8817 let res; 8818 let rej; 8819 const promise = new Promise((resolve, reject) => { 8820 res = resolve; 8821 rej = reject; 8822 }); 8823 return { promise, resolve: res, reject: rej }; 8824 } 8825 function isAborted(fetchParams) { 8826 return fetchParams.controller.state === "aborted"; 8827 } 8828 function isCancelled(fetchParams) { 8829 return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; 8830 } 8831 var normalizeMethodRecordBase = { 8832 delete: "DELETE", 8833 DELETE: "DELETE", 8834 get: "GET", 8835 GET: "GET", 8836 head: "HEAD", 8837 HEAD: "HEAD", 8838 options: "OPTIONS", 8839 OPTIONS: "OPTIONS", 8840 post: "POST", 8841 POST: "POST", 8842 put: "PUT", 8843 PUT: "PUT" 8844 }; 8845 var normalizeMethodRecord = { 8846 ...normalizeMethodRecordBase, 8847 patch: "patch", 8848 PATCH: "PATCH" 8849 }; 8850 Object.setPrototypeOf(normalizeMethodRecordBase, null); 8851 Object.setPrototypeOf(normalizeMethodRecord, null); 8852 function normalizeMethod(method) { 8853 return normalizeMethodRecordBase[method.toLowerCase()] ?? method; 8854 } 8855 function serializeJavascriptValueToJSONString(value) { 8856 const result = JSON.stringify(value); 8857 if (result === void 0) { 8858 throw new TypeError("Value is not JSON serializable"); 8859 } 8860 assert3(typeof result === "string"); 8861 return result; 8862 } 8863 var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); 8864 function makeIterator(iterator, name, kind, keyIndex = 0, valueIndex = 1) { 8865 const object = { 8866 index: 0, 8867 kind, 8868 target: iterator 8869 }; 8870 const iteratorObject = Object.create(esIteratorPrototype); 8871 Object.defineProperty(iteratorObject, "next", { 8872 value: function next() { 8873 if (Object.getPrototypeOf(this) !== iteratorObject) { 8874 throw new TypeError( 8875 `'next' called on an object that does not implement interface ${name} Iterator.` 8876 ); 8877 } 8878 const { index, kind: kind2, target } = object; 8879 const values = target(); 8880 const len = values.length; 8881 if (index >= len) { 8882 return { value: void 0, done: true }; 8883 } 8884 const { [keyIndex]: key, [valueIndex]: value } = values[index]; 8885 object.index = index + 1; 8886 let result; 8887 switch (kind2) { 8888 case "key": 8889 result = key; 8890 break; 8891 case "value": 8892 result = value; 8893 break; 8894 case "key+value": 8895 result = [key, value]; 8896 break; 8897 } 8898 return { 8899 value: result, 8900 done: false 8901 }; 8902 }, 8903 writable: true, 8904 enumerable: true, 8905 configurable: true 8906 }); 8907 Object.defineProperty(iteratorObject, Symbol.toStringTag, { 8908 value: `${name} Iterator`, 8909 writable: false, 8910 enumerable: false, 8911 configurable: true 8912 }); 8913 return Object.create(iteratorObject); 8914 } 8915 async function fullyReadBody(body, processBody, processBodyError) { 8916 const successSteps = processBody; 8917 const errorSteps = processBodyError; 8918 let reader; 8919 try { 8920 reader = body.stream.getReader(); 8921 } catch (e) { 8922 errorSteps(e); 8923 return; 8924 } 8925 try { 8926 const result = await readAllBytes(reader); 8927 successSteps(result); 8928 } catch (e) { 8929 errorSteps(e); 8930 } 8931 } 8932 function isReadableStreamLike(stream) { 8933 return stream instanceof ReadableStream || stream[Symbol.toStringTag] === "ReadableStream" && typeof stream.tee === "function"; 8934 } 8935 function readableStreamClose(controller) { 8936 try { 8937 controller.close(); 8938 controller.byobRequest?.respond(0); 8939 } catch (err) { 8940 if (!err.message.includes("Controller is already closed") && !err.message.includes("ReadableStream is already closed")) { 8941 throw err; 8942 } 8943 } 8944 } 8945 function isomorphicEncode(input) { 8946 for (let i = 0; i < input.length; i++) { 8947 assert3(input.charCodeAt(i) <= 255); 8948 } 8949 return input; 8950 } 8951 async function readAllBytes(reader) { 8952 const bytes = []; 8953 let byteLength = 0; 8954 while (true) { 8955 const { done, value: chunk } = await reader.read(); 8956 if (done) { 8957 return Buffer.concat(bytes, byteLength); 8958 } 8959 if (!isUint8Array(chunk)) { 8960 throw new TypeError("Received non-Uint8Array chunk"); 8961 } 8962 bytes.push(chunk); 8963 byteLength += chunk.length; 8964 } 8965 } 8966 function urlIsLocal(url) { 8967 assert3("protocol" in url); 8968 const protocol = url.protocol; 8969 return protocol === "about:" || protocol === "blob:" || protocol === "data:"; 8970 } 8971 function urlHasHttpsScheme(url) { 8972 if (typeof url === "string") { 8973 return url.startsWith("https:"); 8974 } 8975 return url.protocol === "https:"; 8976 } 8977 function urlIsHttpHttpsScheme(url) { 8978 assert3("protocol" in url); 8979 const protocol = url.protocol; 8980 return protocol === "http:" || protocol === "https:"; 8981 } 8982 function simpleRangeHeaderValue(value, allowWhitespace) { 8983 const data = value; 8984 if (!data.startsWith("bytes")) { 8985 return "failure"; 8986 } 8987 const position = { position: 5 }; 8988 if (allowWhitespace) { 8989 collectASequenceOfCodePoints( 8990 (char) => char === " " || char === " ", 8991 data, 8992 position 8993 ); 8994 } 8995 if (data.charCodeAt(position.position) !== 61) { 8996 return "failure"; 8997 } 8998 position.position++; 8999 if (allowWhitespace) { 9000 collectASequenceOfCodePoints( 9001 (char) => char === " " || char === " ", 9002 data, 9003 position 9004 ); 9005 } 9006 const rangeStart = collectASequenceOfCodePoints( 9007 (char) => { 9008 const code = char.charCodeAt(0); 9009 return code >= 48 && code <= 57; 9010 }, 9011 data, 9012 position 9013 ); 9014 const rangeStartValue = rangeStart.length ? Number(rangeStart) : null; 9015 if (allowWhitespace) { 9016 collectASequenceOfCodePoints( 9017 (char) => char === " " || char === " ", 9018 data, 9019 position 9020 ); 9021 } 9022 if (data.charCodeAt(position.position) !== 45) { 9023 return "failure"; 9024 } 9025 position.position++; 9026 if (allowWhitespace) { 9027 collectASequenceOfCodePoints( 9028 (char) => char === " " || char === " ", 9029 data, 9030 position 9031 ); 9032 } 9033 const rangeEnd = collectASequenceOfCodePoints( 9034 (char) => { 9035 const code = char.charCodeAt(0); 9036 return code >= 48 && code <= 57; 9037 }, 9038 data, 9039 position 9040 ); 9041 const rangeEndValue = rangeEnd.length ? Number(rangeEnd) : null; 9042 if (position.position < data.length) { 9043 return "failure"; 9044 } 9045 if (rangeEndValue === null && rangeStartValue === null) { 9046 return "failure"; 9047 } 9048 if (rangeStartValue > rangeEndValue) { 9049 return "failure"; 9050 } 9051 return { rangeStartValue, rangeEndValue }; 9052 } 9053 function buildContentRange(rangeStart, rangeEnd, fullLength) { 9054 let contentRange = "bytes "; 9055 contentRange += isomorphicEncode(`${rangeStart}`); 9056 contentRange += "-"; 9057 contentRange += isomorphicEncode(`${rangeEnd}`); 9058 contentRange += "/"; 9059 contentRange += isomorphicEncode(`${fullLength}`); 9060 return contentRange; 9061 } 9062 var InflateStream = class extends Transform { 9063 _transform(chunk, encoding, callback) { 9064 if (!this._inflateStream) { 9065 if (chunk.length === 0) { 9066 callback(); 9067 return; 9068 } 9069 this._inflateStream = (chunk[0] & 15) === 8 ? zlib.createInflate() : zlib.createInflateRaw(); 9070 this._inflateStream.on("data", this.push.bind(this)); 9071 this._inflateStream.on("end", () => this.push(null)); 9072 this._inflateStream.on("error", (err) => this.destroy(err)); 9073 } 9074 this._inflateStream.write(chunk, encoding, callback); 9075 } 9076 _final(callback) { 9077 if (this._inflateStream) { 9078 this._inflateStream.end(); 9079 this._inflateStream = null; 9080 } 9081 callback(); 9082 } 9083 }; 9084 function createInflate() { 9085 return new InflateStream(); 9086 } 9087 function extractMimeType(headers) { 9088 let charset = null; 9089 let essence = null; 9090 let mimeType = null; 9091 const values = getDecodeSplit("content-type", headers); 9092 if (values === null) { 9093 return "failure"; 9094 } 9095 for (const value of values) { 9096 const temporaryMimeType = parseMIMEType(value); 9097 if (temporaryMimeType === "failure" || temporaryMimeType.essence === "*/*") { 9098 continue; 9099 } 9100 mimeType = temporaryMimeType; 9101 if (mimeType.essence !== essence) { 9102 charset = null; 9103 if (mimeType.parameters.has("charset")) { 9104 charset = mimeType.parameters.get("charset"); 9105 } 9106 essence = mimeType.essence; 9107 } else if (!mimeType.parameters.has("charset") && charset !== null) { 9108 mimeType.parameters.set("charset", charset); 9109 } 9110 } 9111 if (mimeType == null) { 9112 return "failure"; 9113 } 9114 return mimeType; 9115 } 9116 function gettingDecodingSplitting(value) { 9117 const input = value; 9118 const position = { position: 0 }; 9119 const values = []; 9120 let temporaryValue = ""; 9121 while (position.position < input.length) { 9122 temporaryValue += collectASequenceOfCodePoints( 9123 (char) => char !== '"' && char !== ",", 9124 input, 9125 position 9126 ); 9127 if (position.position < input.length) { 9128 if (input.charCodeAt(position.position) === 34) { 9129 temporaryValue += collectAnHTTPQuotedString( 9130 input, 9131 position 9132 ); 9133 if (position.position < input.length) { 9134 continue; 9135 } 9136 } else { 9137 assert3(input.charCodeAt(position.position) === 44); 9138 position.position++; 9139 } 9140 } 9141 temporaryValue = removeChars(temporaryValue, true, true, (char) => char === 9 || char === 32); 9142 values.push(temporaryValue); 9143 temporaryValue = ""; 9144 } 9145 return values; 9146 } 9147 function getDecodeSplit(name, list) { 9148 const value = list.get(name, true); 9149 if (value === null) { 9150 return null; 9151 } 9152 return gettingDecodingSplitting(value); 9153 } 9154 module2.exports = { 9155 isAborted, 9156 isCancelled, 9157 createDeferredPromise, 9158 ReadableStreamFrom, 9159 toUSVString, 9160 tryUpgradeRequestToAPotentiallyTrustworthyURL, 9161 clampAndCoarsenConnectionTimingInfo, 9162 coarsenedSharedCurrentTime, 9163 determineRequestsReferrer, 9164 makePolicyContainer, 9165 clonePolicyContainer, 9166 appendFetchMetadata, 9167 appendRequestOriginHeader, 9168 TAOCheck, 9169 corsCheck, 9170 crossOriginResourcePolicyCheck, 9171 createOpaqueTimingInfo, 9172 setRequestReferrerPolicyOnRedirect, 9173 isValidHTTPToken, 9174 requestBadPort, 9175 requestCurrentURL, 9176 responseURL, 9177 responseLocationURL, 9178 isBlobLike, 9179 isURLPotentiallyTrustworthy, 9180 isValidReasonPhrase, 9181 sameOrigin, 9182 normalizeMethod, 9183 serializeJavascriptValueToJSONString, 9184 makeIterator, 9185 isValidHeaderName, 9186 isValidHeaderValue, 9187 isErrorLike, 9188 fullyReadBody, 9189 bytesMatch, 9190 isReadableStreamLike, 9191 readableStreamClose, 9192 isomorphicEncode, 9193 urlIsLocal, 9194 urlHasHttpsScheme, 9195 urlIsHttpHttpsScheme, 9196 readAllBytes, 9197 normalizeMethodRecord, 9198 simpleRangeHeaderValue, 9199 buildContentRange, 9200 parseMetadata, 9201 createInflate, 9202 extractMimeType 9203 }; 9204 } 9205}); 9206 9207// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/symbols.js 9208var require_symbols2 = __commonJS({ 9209 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/symbols.js"(exports, module2) { 9210 "use strict"; 9211 module2.exports = { 9212 kUrl: Symbol("url"), 9213 kHeaders: Symbol("headers"), 9214 kSignal: Symbol("signal"), 9215 kState: Symbol("state"), 9216 kGuard: Symbol("guard"), 9217 kRealm: Symbol("realm") 9218 }; 9219 } 9220}); 9221 9222// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/webidl.js 9223var require_webidl = __commonJS({ 9224 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/webidl.js"(exports, module2) { 9225 "use strict"; 9226 var { types } = require("node:util"); 9227 var { toUSVString } = require_util2(); 9228 var webidl = {}; 9229 webidl.converters = {}; 9230 webidl.util = {}; 9231 webidl.errors = {}; 9232 webidl.errors.exception = function(message) { 9233 return new TypeError(`${message.header}: ${message.message}`); 9234 }; 9235 webidl.errors.conversionFailed = function(context) { 9236 const plural2 = context.types.length === 1 ? "" : " one of"; 9237 const message = `${context.argument} could not be converted to${plural2}: ${context.types.join(", ")}.`; 9238 return webidl.errors.exception({ 9239 header: context.prefix, 9240 message 9241 }); 9242 }; 9243 webidl.errors.invalidArgument = function(context) { 9244 return webidl.errors.exception({ 9245 header: context.prefix, 9246 message: `"${context.value}" is an invalid ${context.type}.` 9247 }); 9248 }; 9249 webidl.brandCheck = function(V, I, opts = void 0) { 9250 if (opts?.strict !== false) { 9251 if (!(V instanceof I)) { 9252 throw new TypeError("Illegal invocation"); 9253 } 9254 } else { 9255 if (V?.[Symbol.toStringTag] !== I.prototype[Symbol.toStringTag]) { 9256 throw new TypeError("Illegal invocation"); 9257 } 9258 } 9259 }; 9260 webidl.argumentLengthCheck = function({ length }, min, ctx) { 9261 if (length < min) { 9262 throw webidl.errors.exception({ 9263 message: `${min} argument${min !== 1 ? "s" : ""} required, but${length ? " only" : ""} ${length} found.`, 9264 ...ctx 9265 }); 9266 } 9267 }; 9268 webidl.illegalConstructor = function() { 9269 throw webidl.errors.exception({ 9270 header: "TypeError", 9271 message: "Illegal constructor" 9272 }); 9273 }; 9274 webidl.util.Type = function(V) { 9275 switch (typeof V) { 9276 case "undefined": 9277 return "Undefined"; 9278 case "boolean": 9279 return "Boolean"; 9280 case "string": 9281 return "String"; 9282 case "symbol": 9283 return "Symbol"; 9284 case "number": 9285 return "Number"; 9286 case "bigint": 9287 return "BigInt"; 9288 case "function": 9289 case "object": { 9290 if (V === null) { 9291 return "Null"; 9292 } 9293 return "Object"; 9294 } 9295 } 9296 }; 9297 webidl.util.ConvertToInt = function(V, bitLength, signedness, opts = {}) { 9298 let upperBound; 9299 let lowerBound; 9300 if (bitLength === 64) { 9301 upperBound = Math.pow(2, 53) - 1; 9302 if (signedness === "unsigned") { 9303 lowerBound = 0; 9304 } else { 9305 lowerBound = Math.pow(-2, 53) + 1; 9306 } 9307 } else if (signedness === "unsigned") { 9308 lowerBound = 0; 9309 upperBound = Math.pow(2, bitLength) - 1; 9310 } else { 9311 lowerBound = Math.pow(-2, bitLength) - 1; 9312 upperBound = Math.pow(2, bitLength - 1) - 1; 9313 } 9314 let x = Number(V); 9315 if (x === 0) { 9316 x = 0; 9317 } 9318 if (opts.enforceRange === true) { 9319 if (Number.isNaN(x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { 9320 throw webidl.errors.exception({ 9321 header: "Integer conversion", 9322 message: `Could not convert ${V} to an integer.` 9323 }); 9324 } 9325 x = webidl.util.IntegerPart(x); 9326 if (x < lowerBound || x > upperBound) { 9327 throw webidl.errors.exception({ 9328 header: "Integer conversion", 9329 message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` 9330 }); 9331 } 9332 return x; 9333 } 9334 if (!Number.isNaN(x) && opts.clamp === true) { 9335 x = Math.min(Math.max(x, lowerBound), upperBound); 9336 if (Math.floor(x) % 2 === 0) { 9337 x = Math.floor(x); 9338 } else { 9339 x = Math.ceil(x); 9340 } 9341 return x; 9342 } 9343 if (Number.isNaN(x) || x === 0 && Object.is(0, x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { 9344 return 0; 9345 } 9346 x = webidl.util.IntegerPart(x); 9347 x = x % Math.pow(2, bitLength); 9348 if (signedness === "signed" && x >= Math.pow(2, bitLength) - 1) { 9349 return x - Math.pow(2, bitLength); 9350 } 9351 return x; 9352 }; 9353 webidl.util.IntegerPart = function(n) { 9354 const r = Math.floor(Math.abs(n)); 9355 if (n < 0) { 9356 return -1 * r; 9357 } 9358 return r; 9359 }; 9360 webidl.sequenceConverter = function(converter) { 9361 return (V) => { 9362 if (webidl.util.Type(V) !== "Object") { 9363 throw webidl.errors.exception({ 9364 header: "Sequence", 9365 message: `Value of type ${webidl.util.Type(V)} is not an Object.` 9366 }); 9367 } 9368 const method = V?.[Symbol.iterator]?.(); 9369 const seq = []; 9370 if (method === void 0 || typeof method.next !== "function") { 9371 throw webidl.errors.exception({ 9372 header: "Sequence", 9373 message: "Object is not an iterator." 9374 }); 9375 } 9376 while (true) { 9377 const { done, value } = method.next(); 9378 if (done) { 9379 break; 9380 } 9381 seq.push(converter(value)); 9382 } 9383 return seq; 9384 }; 9385 }; 9386 webidl.recordConverter = function(keyConverter, valueConverter) { 9387 return (O) => { 9388 if (webidl.util.Type(O) !== "Object") { 9389 throw webidl.errors.exception({ 9390 header: "Record", 9391 message: `Value of type ${webidl.util.Type(O)} is not an Object.` 9392 }); 9393 } 9394 const result = {}; 9395 if (!types.isProxy(O)) { 9396 const keys2 = Object.keys(O); 9397 for (const key of keys2) { 9398 const typedKey = keyConverter(key); 9399 const typedValue = valueConverter(O[key]); 9400 result[typedKey] = typedValue; 9401 } 9402 return result; 9403 } 9404 const keys = Reflect.ownKeys(O); 9405 for (const key of keys) { 9406 const desc = Reflect.getOwnPropertyDescriptor(O, key); 9407 if (desc?.enumerable) { 9408 const typedKey = keyConverter(key); 9409 const typedValue = valueConverter(O[key]); 9410 result[typedKey] = typedValue; 9411 } 9412 } 9413 return result; 9414 }; 9415 }; 9416 webidl.interfaceConverter = function(i) { 9417 return (V, opts = {}) => { 9418 if (opts.strict !== false && !(V instanceof i)) { 9419 throw webidl.errors.exception({ 9420 header: i.name, 9421 message: `Expected ${V} to be an instance of ${i.name}.` 9422 }); 9423 } 9424 return V; 9425 }; 9426 }; 9427 webidl.dictionaryConverter = function(converters) { 9428 return (dictionary) => { 9429 const type = webidl.util.Type(dictionary); 9430 const dict = {}; 9431 if (type === "Null" || type === "Undefined") { 9432 return dict; 9433 } else if (type !== "Object") { 9434 throw webidl.errors.exception({ 9435 header: "Dictionary", 9436 message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` 9437 }); 9438 } 9439 for (const options of converters) { 9440 const { key, defaultValue, required, converter } = options; 9441 if (required === true) { 9442 if (!Object.hasOwn(dictionary, key)) { 9443 throw webidl.errors.exception({ 9444 header: "Dictionary", 9445 message: `Missing required key "${key}".` 9446 }); 9447 } 9448 } 9449 let value = dictionary[key]; 9450 const hasDefault = Object.hasOwn(options, "defaultValue"); 9451 if (hasDefault && value !== null) { 9452 value = value ?? defaultValue; 9453 } 9454 if (required || hasDefault || value !== void 0) { 9455 value = converter(value); 9456 if (options.allowedValues && !options.allowedValues.includes(value)) { 9457 throw webidl.errors.exception({ 9458 header: "Dictionary", 9459 message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.` 9460 }); 9461 } 9462 dict[key] = value; 9463 } 9464 } 9465 return dict; 9466 }; 9467 }; 9468 webidl.nullableConverter = function(converter) { 9469 return (V) => { 9470 if (V === null) { 9471 return V; 9472 } 9473 return converter(V); 9474 }; 9475 }; 9476 webidl.converters.DOMString = function(V, opts = {}) { 9477 if (V === null && opts.legacyNullToEmptyString) { 9478 return ""; 9479 } 9480 if (typeof V === "symbol") { 9481 throw new TypeError("Could not convert argument of type symbol to string."); 9482 } 9483 return String(V); 9484 }; 9485 webidl.converters.ByteString = function(V) { 9486 const x = webidl.converters.DOMString(V); 9487 for (let index = 0; index < x.length; index++) { 9488 if (x.charCodeAt(index) > 255) { 9489 throw new TypeError( 9490 `Cannot convert argument to a ByteString because the character at index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.` 9491 ); 9492 } 9493 } 9494 return x; 9495 }; 9496 webidl.converters.USVString = toUSVString; 9497 webidl.converters.boolean = function(V) { 9498 const x = Boolean(V); 9499 return x; 9500 }; 9501 webidl.converters.any = function(V) { 9502 return V; 9503 }; 9504 webidl.converters["long long"] = function(V) { 9505 const x = webidl.util.ConvertToInt(V, 64, "signed"); 9506 return x; 9507 }; 9508 webidl.converters["unsigned long long"] = function(V) { 9509 const x = webidl.util.ConvertToInt(V, 64, "unsigned"); 9510 return x; 9511 }; 9512 webidl.converters["unsigned long"] = function(V) { 9513 const x = webidl.util.ConvertToInt(V, 32, "unsigned"); 9514 return x; 9515 }; 9516 webidl.converters["unsigned short"] = function(V, opts) { 9517 const x = webidl.util.ConvertToInt(V, 16, "unsigned", opts); 9518 return x; 9519 }; 9520 webidl.converters.ArrayBuffer = function(V, opts = {}) { 9521 if (webidl.util.Type(V) !== "Object" || !types.isAnyArrayBuffer(V)) { 9522 throw webidl.errors.conversionFailed({ 9523 prefix: `${V}`, 9524 argument: `${V}`, 9525 types: ["ArrayBuffer"] 9526 }); 9527 } 9528 if (opts.allowShared === false && types.isSharedArrayBuffer(V)) { 9529 throw webidl.errors.exception({ 9530 header: "ArrayBuffer", 9531 message: "SharedArrayBuffer is not allowed." 9532 }); 9533 } 9534 return V; 9535 }; 9536 webidl.converters.TypedArray = function(V, T, opts = {}) { 9537 if (webidl.util.Type(V) !== "Object" || !types.isTypedArray(V) || V.constructor.name !== T.name) { 9538 throw webidl.errors.conversionFailed({ 9539 prefix: `${T.name}`, 9540 argument: `${V}`, 9541 types: [T.name] 9542 }); 9543 } 9544 if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { 9545 throw webidl.errors.exception({ 9546 header: "ArrayBuffer", 9547 message: "SharedArrayBuffer is not allowed." 9548 }); 9549 } 9550 return V; 9551 }; 9552 webidl.converters.DataView = function(V, opts = {}) { 9553 if (webidl.util.Type(V) !== "Object" || !types.isDataView(V)) { 9554 throw webidl.errors.exception({ 9555 header: "DataView", 9556 message: "Object is not a DataView." 9557 }); 9558 } 9559 if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { 9560 throw webidl.errors.exception({ 9561 header: "ArrayBuffer", 9562 message: "SharedArrayBuffer is not allowed." 9563 }); 9564 } 9565 return V; 9566 }; 9567 webidl.converters.BufferSource = function(V, opts = {}) { 9568 if (types.isAnyArrayBuffer(V)) { 9569 return webidl.converters.ArrayBuffer(V, { ...opts, allowShared: false }); 9570 } 9571 if (types.isTypedArray(V)) { 9572 return webidl.converters.TypedArray(V, V.constructor, { ...opts, allowShared: false }); 9573 } 9574 if (types.isDataView(V)) { 9575 return webidl.converters.DataView(V, opts, { ...opts, allowShared: false }); 9576 } 9577 throw new TypeError(`Could not convert ${V} to a BufferSource.`); 9578 }; 9579 webidl.converters["sequence<ByteString>"] = webidl.sequenceConverter( 9580 webidl.converters.ByteString 9581 ); 9582 webidl.converters["sequence<sequence<ByteString>>"] = webidl.sequenceConverter( 9583 webidl.converters["sequence<ByteString>"] 9584 ); 9585 webidl.converters["record<ByteString, ByteString>"] = webidl.recordConverter( 9586 webidl.converters.ByteString, 9587 webidl.converters.ByteString 9588 ); 9589 module2.exports = { 9590 webidl 9591 }; 9592 } 9593}); 9594 9595// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/file.js 9596var require_file = __commonJS({ 9597 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/file.js"(exports, module2) { 9598 "use strict"; 9599 var { Blob: Blob2, File: NativeFile } = require("node:buffer"); 9600 var { types } = require("node:util"); 9601 var { kState } = require_symbols2(); 9602 var { isBlobLike } = require_util2(); 9603 var { webidl } = require_webidl(); 9604 var { parseMIMEType, serializeAMimeType } = require_dataURL(); 9605 var { kEnumerableProperty } = require_util(); 9606 var encoder = new TextEncoder(); 9607 var File = class _File extends Blob2 { 9608 constructor(fileBits, fileName, options = {}) { 9609 webidl.argumentLengthCheck(arguments, 2, { header: "File constructor" }); 9610 fileBits = webidl.converters["sequence<BlobPart>"](fileBits); 9611 fileName = webidl.converters.USVString(fileName); 9612 options = webidl.converters.FilePropertyBag(options); 9613 const n = fileName; 9614 let t = options.type; 9615 let d; 9616 substep: { 9617 if (t) { 9618 t = parseMIMEType(t); 9619 if (t === "failure") { 9620 t = ""; 9621 break substep; 9622 } 9623 t = serializeAMimeType(t).toLowerCase(); 9624 } 9625 d = options.lastModified; 9626 } 9627 super(processBlobParts(fileBits, options), { type: t }); 9628 this[kState] = { 9629 name: n, 9630 lastModified: d, 9631 type: t 9632 }; 9633 } 9634 get name() { 9635 webidl.brandCheck(this, _File); 9636 return this[kState].name; 9637 } 9638 get lastModified() { 9639 webidl.brandCheck(this, _File); 9640 return this[kState].lastModified; 9641 } 9642 get type() { 9643 webidl.brandCheck(this, _File); 9644 return this[kState].type; 9645 } 9646 }; 9647 var FileLike = class _FileLike { 9648 constructor(blobLike, fileName, options = {}) { 9649 const n = fileName; 9650 const t = options.type; 9651 const d = options.lastModified ?? Date.now(); 9652 this[kState] = { 9653 blobLike, 9654 name: n, 9655 type: t, 9656 lastModified: d 9657 }; 9658 } 9659 stream(...args) { 9660 webidl.brandCheck(this, _FileLike); 9661 return this[kState].blobLike.stream(...args); 9662 } 9663 arrayBuffer(...args) { 9664 webidl.brandCheck(this, _FileLike); 9665 return this[kState].blobLike.arrayBuffer(...args); 9666 } 9667 slice(...args) { 9668 webidl.brandCheck(this, _FileLike); 9669 return this[kState].blobLike.slice(...args); 9670 } 9671 text(...args) { 9672 webidl.brandCheck(this, _FileLike); 9673 return this[kState].blobLike.text(...args); 9674 } 9675 get size() { 9676 webidl.brandCheck(this, _FileLike); 9677 return this[kState].blobLike.size; 9678 } 9679 get type() { 9680 webidl.brandCheck(this, _FileLike); 9681 return this[kState].blobLike.type; 9682 } 9683 get name() { 9684 webidl.brandCheck(this, _FileLike); 9685 return this[kState].name; 9686 } 9687 get lastModified() { 9688 webidl.brandCheck(this, _FileLike); 9689 return this[kState].lastModified; 9690 } 9691 get [Symbol.toStringTag]() { 9692 return "File"; 9693 } 9694 }; 9695 Object.defineProperties(File.prototype, { 9696 [Symbol.toStringTag]: { 9697 value: "File", 9698 configurable: true 9699 }, 9700 name: kEnumerableProperty, 9701 lastModified: kEnumerableProperty 9702 }); 9703 webidl.converters.Blob = webidl.interfaceConverter(Blob2); 9704 webidl.converters.BlobPart = function(V, opts) { 9705 if (webidl.util.Type(V) === "Object") { 9706 if (isBlobLike(V)) { 9707 return webidl.converters.Blob(V, { strict: false }); 9708 } 9709 if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) { 9710 return webidl.converters.BufferSource(V, opts); 9711 } 9712 } 9713 return webidl.converters.USVString(V, opts); 9714 }; 9715 webidl.converters["sequence<BlobPart>"] = webidl.sequenceConverter( 9716 webidl.converters.BlobPart 9717 ); 9718 webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ 9719 { 9720 key: "lastModified", 9721 converter: webidl.converters["long long"], 9722 get defaultValue() { 9723 return Date.now(); 9724 } 9725 }, 9726 { 9727 key: "type", 9728 converter: webidl.converters.DOMString, 9729 defaultValue: "" 9730 }, 9731 { 9732 key: "endings", 9733 converter: (value) => { 9734 value = webidl.converters.DOMString(value); 9735 value = value.toLowerCase(); 9736 if (value !== "native") { 9737 value = "transparent"; 9738 } 9739 return value; 9740 }, 9741 defaultValue: "transparent" 9742 } 9743 ]); 9744 function processBlobParts(parts, options) { 9745 const bytes = []; 9746 for (const element of parts) { 9747 if (typeof element === "string") { 9748 let s = element; 9749 if (options.endings === "native") { 9750 s = convertLineEndingsNative(s); 9751 } 9752 bytes.push(encoder.encode(s)); 9753 } else if (ArrayBuffer.isView(element) || types.isArrayBuffer(element)) { 9754 if (element.buffer) { 9755 bytes.push( 9756 new Uint8Array(element.buffer, element.byteOffset, element.byteLength) 9757 ); 9758 } else { 9759 bytes.push(new Uint8Array(element)); 9760 } 9761 } else if (isBlobLike(element)) { 9762 bytes.push(element); 9763 } 9764 } 9765 return bytes; 9766 } 9767 function convertLineEndingsNative(s) { 9768 let nativeLineEnding = "\n"; 9769 if (process.platform === "win32") { 9770 nativeLineEnding = "\r\n"; 9771 } 9772 return s.replace(/\r?\n/g, nativeLineEnding); 9773 } 9774 function isFileLike(object) { 9775 return NativeFile && object instanceof NativeFile || object instanceof File || object && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && object[Symbol.toStringTag] === "File"; 9776 } 9777 module2.exports = { File, FileLike, isFileLike }; 9778 } 9779}); 9780 9781// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/formdata.js 9782var require_formdata = __commonJS({ 9783 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/formdata.js"(exports, module2) { 9784 "use strict"; 9785 var { isBlobLike, toUSVString, makeIterator } = require_util2(); 9786 var { kState } = require_symbols2(); 9787 var { kEnumerableProperty } = require_util(); 9788 var { File: UndiciFile, FileLike, isFileLike } = require_file(); 9789 var { webidl } = require_webidl(); 9790 var { File: NativeFile } = require("node:buffer"); 9791 var File = NativeFile ?? UndiciFile; 9792 var FormData = class _FormData { 9793 constructor(form) { 9794 if (form !== void 0) { 9795 throw webidl.errors.conversionFailed({ 9796 prefix: "FormData constructor", 9797 argument: "Argument 1", 9798 types: ["undefined"] 9799 }); 9800 } 9801 this[kState] = []; 9802 } 9803 append(name, value, filename = void 0) { 9804 webidl.brandCheck(this, _FormData); 9805 webidl.argumentLengthCheck(arguments, 2, { header: "FormData.append" }); 9806 if (arguments.length === 3 && !isBlobLike(value)) { 9807 throw new TypeError( 9808 "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" 9809 ); 9810 } 9811 name = webidl.converters.USVString(name); 9812 value = isBlobLike(value) ? webidl.converters.Blob(value, { strict: false }) : webidl.converters.USVString(value); 9813 filename = arguments.length === 3 ? webidl.converters.USVString(filename) : void 0; 9814 const entry = makeEntry(name, value, filename); 9815 this[kState].push(entry); 9816 } 9817 delete(name) { 9818 webidl.brandCheck(this, _FormData); 9819 webidl.argumentLengthCheck(arguments, 1, { header: "FormData.delete" }); 9820 name = webidl.converters.USVString(name); 9821 this[kState] = this[kState].filter((entry) => entry.name !== name); 9822 } 9823 get(name) { 9824 webidl.brandCheck(this, _FormData); 9825 webidl.argumentLengthCheck(arguments, 1, { header: "FormData.get" }); 9826 name = webidl.converters.USVString(name); 9827 const idx = this[kState].findIndex((entry) => entry.name === name); 9828 if (idx === -1) { 9829 return null; 9830 } 9831 return this[kState][idx].value; 9832 } 9833 getAll(name) { 9834 webidl.brandCheck(this, _FormData); 9835 webidl.argumentLengthCheck(arguments, 1, { header: "FormData.getAll" }); 9836 name = webidl.converters.USVString(name); 9837 return this[kState].filter((entry) => entry.name === name).map((entry) => entry.value); 9838 } 9839 has(name) { 9840 webidl.brandCheck(this, _FormData); 9841 webidl.argumentLengthCheck(arguments, 1, { header: "FormData.has" }); 9842 name = webidl.converters.USVString(name); 9843 return this[kState].findIndex((entry) => entry.name === name) !== -1; 9844 } 9845 set(name, value, filename = void 0) { 9846 webidl.brandCheck(this, _FormData); 9847 webidl.argumentLengthCheck(arguments, 2, { header: "FormData.set" }); 9848 if (arguments.length === 3 && !isBlobLike(value)) { 9849 throw new TypeError( 9850 "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" 9851 ); 9852 } 9853 name = webidl.converters.USVString(name); 9854 value = isBlobLike(value) ? webidl.converters.Blob(value, { strict: false }) : webidl.converters.USVString(value); 9855 filename = arguments.length === 3 ? toUSVString(filename) : void 0; 9856 const entry = makeEntry(name, value, filename); 9857 const idx = this[kState].findIndex((entry2) => entry2.name === name); 9858 if (idx !== -1) { 9859 this[kState] = [ 9860 ...this[kState].slice(0, idx), 9861 entry, 9862 ...this[kState].slice(idx + 1).filter((entry2) => entry2.name !== name) 9863 ]; 9864 } else { 9865 this[kState].push(entry); 9866 } 9867 } 9868 entries() { 9869 webidl.brandCheck(this, _FormData); 9870 return makeIterator( 9871 () => this[kState], 9872 "FormData", 9873 "key+value", 9874 "name", 9875 "value" 9876 ); 9877 } 9878 keys() { 9879 webidl.brandCheck(this, _FormData); 9880 return makeIterator( 9881 () => this[kState], 9882 "FormData", 9883 "key", 9884 "name", 9885 "value" 9886 ); 9887 } 9888 values() { 9889 webidl.brandCheck(this, _FormData); 9890 return makeIterator( 9891 () => this[kState], 9892 "FormData", 9893 "value", 9894 "name", 9895 "value" 9896 ); 9897 } 9898 /** 9899 * @param {(value: string, key: string, self: FormData) => void} callbackFn 9900 * @param {unknown} thisArg 9901 */ 9902 forEach(callbackFn, thisArg = globalThis) { 9903 webidl.brandCheck(this, _FormData); 9904 webidl.argumentLengthCheck(arguments, 1, { header: "FormData.forEach" }); 9905 if (typeof callbackFn !== "function") { 9906 throw new TypeError( 9907 "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'." 9908 ); 9909 } 9910 for (const [key, value] of this) { 9911 callbackFn.call(thisArg, value, key, this); 9912 } 9913 } 9914 }; 9915 FormData.prototype[Symbol.iterator] = FormData.prototype.entries; 9916 Object.defineProperties(FormData.prototype, { 9917 append: kEnumerableProperty, 9918 delete: kEnumerableProperty, 9919 get: kEnumerableProperty, 9920 getAll: kEnumerableProperty, 9921 has: kEnumerableProperty, 9922 set: kEnumerableProperty, 9923 entries: kEnumerableProperty, 9924 keys: kEnumerableProperty, 9925 values: kEnumerableProperty, 9926 forEach: kEnumerableProperty, 9927 [Symbol.iterator]: { enumerable: false }, 9928 [Symbol.toStringTag]: { 9929 value: "FormData", 9930 configurable: true 9931 } 9932 }); 9933 function makeEntry(name, value, filename) { 9934 name = Buffer.from(name).toString("utf8"); 9935 if (typeof value === "string") { 9936 value = Buffer.from(value).toString("utf8"); 9937 } else { 9938 if (!isFileLike(value)) { 9939 value = value instanceof Blob ? new File([value], "blob", { type: value.type }) : new FileLike(value, "blob", { type: value.type }); 9940 } 9941 if (filename !== void 0) { 9942 const options = { 9943 type: value.type, 9944 lastModified: value.lastModified 9945 }; 9946 value = NativeFile && value instanceof NativeFile || value instanceof UndiciFile ? new File([value], filename, options) : new FileLike(value, filename, options); 9947 } 9948 } 9949 return { name, value }; 9950 } 9951 module2.exports = { FormData }; 9952 } 9953}); 9954 9955// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/body.js 9956var require_body = __commonJS({ 9957 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/fetch/body.js"(exports, module2) { 9958 "use strict"; 9959 var Busboy = require_main(); 9960 var util = require_util(); 9961 var { 9962 ReadableStreamFrom, 9963 isBlobLike, 9964 isReadableStreamLike, 9965 readableStreamClose, 9966 createDeferredPromise, 9967 fullyReadBody, 9968 extractMimeType 9969 } = require_util2(); 9970 var { FormData } = require_formdata(); 9971 var { kState } = require_symbols2(); 9972 var { webidl } = require_webidl(); 9973 var { Blob: Blob2, File: NativeFile } = require("node:buffer"); 9974 var { kBodyUsed } = require_symbols(); 9975 var assert3 = require("node:assert"); 9976 var { isErrored } = require_util(); 9977 var { isUint8Array, isArrayBuffer } = require("util/types"); 9978 var { File: UndiciFile } = require_file(); 9979 var { serializeAMimeType } = require_dataURL(); 9980 var File = NativeFile ?? UndiciFile; 9981 var textEncoder = new TextEncoder(); 9982 var textDecoder = new TextDecoder(); 9983 function extractBody(object, keepalive = false) { 9984 let stream = null; 9985 if (object instanceof ReadableStream) { 9986 stream = object; 9987 } else if (isBlobLike(object)) { 9988 stream = object.stream(); 9989 } else { 9990 stream = new ReadableStream({ 9991 async pull(controller) { 9992 const buffer = typeof source === "string" ? textEncoder.encode(source) : source; 9993 if (buffer.byteLength) { 9994 controller.enqueue(buffer); 9995 } 9996 queueMicrotask(() => readableStreamClose(controller)); 9997 }, 9998 start() { 9999 }, 10000 type: "bytes" 10001 }); 10002 } 10003 assert3(isReadableStreamLike(stream)); 10004 let action = null; 10005 let source = null; 10006 let length = null; 10007 let type = null; 10008 if (typeof object === "string") { 10009 source = object; 10010 type = "text/plain;charset=UTF-8"; 10011 } else if (object instanceof URLSearchParams) { 10012 source = object.toString(); 10013 type = "application/x-www-form-urlencoded;charset=UTF-8"; 10014 } else if (isArrayBuffer(object)) { 10015 source = new Uint8Array(object.slice()); 10016 } else if (ArrayBuffer.isView(object)) { 10017 source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)); 10018 } else if (util.isFormDataLike(object)) { 10019 const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, "0")}`; 10020 const prefix = `--${boundary}\r 10021Content-Disposition: form-data`; 10022 const escape = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"); 10023 const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, "\r\n"); 10024 const blobParts = []; 10025 const rn = new Uint8Array([13, 10]); 10026 length = 0; 10027 let hasUnknownSizeValue = false; 10028 for (const [name, value] of object) { 10029 if (typeof value === "string") { 10030 const chunk2 = textEncoder.encode(prefix + `; name="${escape(normalizeLinefeeds(name))}"\r 10031\r 10032${normalizeLinefeeds(value)}\r 10033`); 10034 blobParts.push(chunk2); 10035 length += chunk2.byteLength; 10036 } else { 10037 const chunk2 = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape(value.name)}"` : "") + `\r 10038Content-Type: ${value.type || "application/octet-stream"}\r 10039\r 10040`); 10041 blobParts.push(chunk2, value, rn); 10042 if (typeof value.size === "number") { 10043 length += chunk2.byteLength + value.size + rn.byteLength; 10044 } else { 10045 hasUnknownSizeValue = true; 10046 } 10047 } 10048 } 10049 const chunk = textEncoder.encode(`--${boundary}--`); 10050 blobParts.push(chunk); 10051 length += chunk.byteLength; 10052 if (hasUnknownSizeValue) { 10053 length = null; 10054 } 10055 source = object; 10056 action = async function* () { 10057 for (const part of blobParts) { 10058 if (part.stream) { 10059 yield* part.stream(); 10060 } else { 10061 yield part; 10062 } 10063 } 10064 }; 10065 type = `multipart/form-data; boundary=${boundary}`; 10066 } else if (isBlobLike(object)) { 10067 source = object; 10068 length = object.size; 10069 if (object.type) { 10070 type = object.type; 10071 } 10072 } else if (typeof object[Symbol.asyncIterator] === "function") { 10073 if (keepalive) { 10074 throw new TypeError("keepalive"); 10075 } 10076 if (util.isDisturbed(object) || object.locked) { 10077 throw new TypeError( 10078 "Response body object should not be disturbed or locked" 10079 ); 10080 } 10081 stream = object instanceof ReadableStream ? object : ReadableStreamFrom(object); 10082 } 10083 if (typeof source === "string" || util.isBuffer(source)) { 10084 length = Buffer.byteLength(source); 10085 } 10086 if (action != null) { 10087 let iterator; 10088 stream = new ReadableStream({ 10089 async start() { 10090 iterator = action(object)[Symbol.asyncIterator](); 10091 }, 10092 async pull(controller) { 10093 const { value, done } = await iterator.next(); 10094 if (done) { 10095 queueMicrotask(() => { 10096 controller.close(); 10097 controller.byobRequest?.respond(0); 10098 }); 10099 } else { 10100 if (!isErrored(stream)) { 10101 const buffer = new Uint8Array(value); 10102 if (buffer.byteLength) { 10103 controller.enqueue(buffer); 10104 } 10105 } 10106 } 10107 return controller.desiredSize > 0; 10108 }, 10109 async cancel(reason) { 10110 await iterator.return(); 10111 }, 10112 type: "bytes" 10113 }); 10114 } 10115 const body = { stream, source, length }; 10116 return [body, type]; 10117 } 10118 function safelyExtractBody(object, keepalive = false) { 10119 if (object instanceof ReadableStream) { 10120 assert3(!util.isDisturbed(object), "The body has already been consumed."); 10121 assert3(!object.locked, "The stream is locked."); 10122 } 10123 return extractBody(object, keepalive); 10124 } 10125 function cloneBody(body) { 10126 const [out1, out2] = body.stream.tee(); 10127 const out2Clone = structuredClone(out2, { transfer: [out2] }); 10128 const [, finalClone] = out2Clone.tee(); 10129 body.stream = out1; 10130 return { 10131 stream: finalClone, 10132 length: body.length, 10133 source: body.source 10134 }; 10135 } 10136 async function* consumeBody(body) { 10137 if (body) { 10138 if (isUint8Array(body)) { 10139 yield body; 10140 } else { 10141 const stream = body.stream; 10142 if (util.isDisturbed(stream)) { 10143 throw new TypeError("The body has already been consumed."); 10144 } 10145 if (stream.locked) { 10146 throw new TypeError("The stream is locked."); 10147 } 10148 stream[kBodyUsed] = true; 10149 yield* stream; 10150 } 10151 } 10152 } 10153 function throwIfAborted(state) { 10154 if (state.aborted) { 10155 throw new DOMException("The operation was aborted.", "AbortError"); 10156 } 10157 } 10158 function bodyMixinMethods(instance) { 10159 const methods = { 10160 blob() { 10161 return specConsumeBody(this, (bytes) => { 10162 let mimeType = bodyMimeType(this); 10163 if (mimeType === null) { 10164 mimeType = ""; 10165 } else if (mimeType) { 10166 mimeType = serializeAMimeType(mimeType); 10167 } 10168 return new Blob2([bytes], { type: mimeType }); 10169 }, instance); 10170 }, 10171 arrayBuffer() { 10172 return specConsumeBody(this, (bytes) => { 10173 return new Uint8Array(bytes).buffer; 10174 }, instance); 10175 }, 10176 text() { 10177 return specConsumeBody(this, utf8DecodeBytes, instance); 10178 }, 10179 json() { 10180 return specConsumeBody(this, parseJSONFromBytes, instance); 10181 }, 10182 async formData() { 10183 webidl.brandCheck(this, instance); 10184 throwIfAborted(this[kState]); 10185 const mimeType = bodyMimeType(this); 10186 if (mimeType !== null && mimeType.essence === "multipart/form-data") { 10187 const headers = {}; 10188 for (const [key, value] of this.headers) 10189 headers[key] = value; 10190 const responseFormData = new FormData(); 10191 let busboy; 10192 try { 10193 busboy = new Busboy({ 10194 headers, 10195 preservePath: true 10196 }); 10197 } catch (err) { 10198 throw new DOMException(`${err}`, "AbortError"); 10199 } 10200 busboy.on("field", (name, value) => { 10201 responseFormData.append(name, value); 10202 }); 10203 busboy.on("file", (name, value, filename, encoding, mimeType2) => { 10204 const chunks = []; 10205 if (encoding === "base64" || encoding.toLowerCase() === "base64") { 10206 let base64chunk = ""; 10207 value.on("data", (chunk) => { 10208 base64chunk += chunk.toString().replace(/[\r\n]/gm, ""); 10209 const end = base64chunk.length - base64chunk.length % 4; 10210 chunks.push(Buffer.from(base64chunk.slice(0, end), "base64")); 10211 base64chunk = base64chunk.slice(end); 10212 }); 10213 value.on("end", () => { 10214 chunks.push(Buffer.from(base64chunk, "base64")); 10215 responseFormData.append(name, new File(chunks, filename, { type: mimeType2 })); 10216 }); 10217 } else { 10218 value.on("data", (chunk) => { 10219 chunks.push(chunk); 10220 }); 10221 value.on("end", () => { 10222 responseFormData.append(name, new File(chunks, filename, { type: mimeType2 })); 10223 }); 10224 } 10225 }); 10226 const busboyResolve = new Promise((resolve, reject) => { 10227 busboy.on("finish", resolve); 10228 busboy.on("error", (err) => reject(new TypeError(err))); 10229 }); 10230 if (this.body !== null) 10231 for await (const chunk of consumeBody(this[kState].body)) 10232 busboy.write(chunk); 10233 busboy.end(); 10234 await busboyResolve; 10235 return responseFormData; 10236 } else if (mimeType !== null && mimeType.essence === "application/x-www-form-urlencoded") { 10237 let entries; 10238 try { 10239 let text = ""; 10240 const streamingDecoder = new TextDecoder("utf-8", { ignoreBOM: true }); 10241 for await (const chunk of consumeBody(this[kState].body)) { 10242 if (!isUint8Array(chunk)) { 10243 throw new TypeError("Expected Uint8Array chunk"); 10244 } 10245 text += streamingDecoder.decode(chunk, { stream: true }); 10246 } 10247 text += streamingDecoder.decode(); 10248 entries = new URLSearchParams(text); 10249 } catch (err) { 10250 throw new TypeError(void 0, { cause: err }); 10251 } 10252 const formData = new FormData(); 10253 for (const [name, value] of entries) { 10254 formData.append(name, value); 10255 } 10256 return formData; 10257 } else { 10258 await Promise.resolve(); 10259 throwIfAborted(this[kState]); 10260 throw webidl.errors.exception({ 10261 header: `${instance.name}.formData`, 10262 message: "Could not parse content as FormData." 10263 }); 10264 } 10265 } 10266 }; 10267 return methods; 10268 } 10269 function mixinBody(prototype) { 10270 Object.assign(prototype.prototype, bodyMixinMethods(prototype)); 10271 } 10272 async function specConsumeBody(object, convertBytesToJSValue, instance) { 10273 webidl.brandCheck(object, instance); 10274 throwIfAborted(object[kState]); 10275 if (bodyUnusable(object[kState].body)) { 10276 throw new TypeError("Body is unusable"); 10277 } 10278 const promise = createDeferredPromise(); 10279 const errorSteps = (error) => promise.reject(error); 10280 const successSteps = (data) => { 10281 try { 10282 promise.resolve(convertBytesToJSValue(data)); 10283 } catch (e) { 10284 errorSteps(e); 10285 } 10286 }; 10287 if (object[kState].body == null) { 10288 successSteps(new Uint8Array()); 10289 return promise.promise; 10290 } 10291 await fullyReadBody(object[kState].body, successSteps, errorSteps); 10292 return promise.promise; 10293 } 10294 function bodyUnusable(body) { 10295 return body != null && (body.stream.locked || util.isDisturbed(body.stream)); 10296 } 10297 function utf8DecodeBytes(buffer) { 10298 if (buffer.length === 0) { 10299 return ""; 10300 } 10301 if (buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) { 10302 buffer = buffer.subarray(3); 10303 } 10304 const output = textDecoder.decode(buffer); 10305 return output; 10306 } 10307 function parseJSONFromBytes(bytes) { 10308 return JSON.parse(utf8DecodeBytes(bytes)); 10309 } 10310 function bodyMimeType(requestOrResponse) { 10311 const headers = requestOrResponse[kState].headersList; 10312 const mimeType = extractMimeType(headers); 10313 if (mimeType === "failure") { 10314 return null; 10315 } 10316 return mimeType; 10317 } 10318 module2.exports = { 10319 extractBody, 10320 safelyExtractBody, 10321 cloneBody, 10322 mixinBody 10323 }; 10324 } 10325}); 10326 10327// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/request.js 10328var require_request = __commonJS({ 10329 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/request.js"(exports, module2) { 10330 "use strict"; 10331 var { 10332 InvalidArgumentError, 10333 NotSupportedError 10334 } = require_errors(); 10335 var assert3 = require("node:assert"); 10336 var { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require_symbols(); 10337 var util = require_util(); 10338 var { channels } = require_diagnostics(); 10339 var { headerNameLowerCasedRecord } = require_constants2(); 10340 var headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; 10341 var invalidPathRegex = /[^\u0021-\u00ff]/; 10342 var kHandler = Symbol("handler"); 10343 var extractBody; 10344 var Request = class _Request { 10345 constructor(origin, { 10346 path: path10, 10347 method, 10348 body, 10349 headers, 10350 query, 10351 idempotent, 10352 blocking, 10353 upgrade, 10354 headersTimeout, 10355 bodyTimeout, 10356 reset, 10357 throwOnError, 10358 expectContinue 10359 }, handler) { 10360 if (typeof path10 !== "string") { 10361 throw new InvalidArgumentError("path must be a string"); 10362 } else if (path10[0] !== "/" && !(path10.startsWith("http://") || path10.startsWith("https://")) && method !== "CONNECT") { 10363 throw new InvalidArgumentError("path must be an absolute URL or start with a slash"); 10364 } else if (invalidPathRegex.exec(path10) !== null) { 10365 throw new InvalidArgumentError("invalid request path"); 10366 } 10367 if (typeof method !== "string") { 10368 throw new InvalidArgumentError("method must be a string"); 10369 } else if (!util.isValidHTTPToken(method)) { 10370 throw new InvalidArgumentError("invalid request method"); 10371 } 10372 if (upgrade && typeof upgrade !== "string") { 10373 throw new InvalidArgumentError("upgrade must be a string"); 10374 } 10375 if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { 10376 throw new InvalidArgumentError("invalid headersTimeout"); 10377 } 10378 if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { 10379 throw new InvalidArgumentError("invalid bodyTimeout"); 10380 } 10381 if (reset != null && typeof reset !== "boolean") { 10382 throw new InvalidArgumentError("invalid reset"); 10383 } 10384 if (expectContinue != null && typeof expectContinue !== "boolean") { 10385 throw new InvalidArgumentError("invalid expectContinue"); 10386 } 10387 this.headersTimeout = headersTimeout; 10388 this.bodyTimeout = bodyTimeout; 10389 this.throwOnError = throwOnError === true; 10390 this.method = method; 10391 this.abort = null; 10392 if (body == null) { 10393 this.body = null; 10394 } else if (util.isStream(body)) { 10395 this.body = body; 10396 const rState = this.body._readableState; 10397 if (!rState || !rState.autoDestroy) { 10398 this.endHandler = function autoDestroy() { 10399 util.destroy(this); 10400 }; 10401 this.body.on("end", this.endHandler); 10402 } 10403 this.errorHandler = (err) => { 10404 if (this.abort) { 10405 this.abort(err); 10406 } else { 10407 this.error = err; 10408 } 10409 }; 10410 this.body.on("error", this.errorHandler); 10411 } else if (util.isBuffer(body)) { 10412 this.body = body.byteLength ? body : null; 10413 } else if (ArrayBuffer.isView(body)) { 10414 this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; 10415 } else if (body instanceof ArrayBuffer) { 10416 this.body = body.byteLength ? Buffer.from(body) : null; 10417 } else if (typeof body === "string") { 10418 this.body = body.length ? Buffer.from(body) : null; 10419 } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) { 10420 this.body = body; 10421 } else { 10422 throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable"); 10423 } 10424 this.completed = false; 10425 this.aborted = false; 10426 this.upgrade = upgrade || null; 10427 this.path = query ? util.buildURL(path10, query) : path10; 10428 this.origin = origin; 10429 this.idempotent = idempotent == null ? method === "HEAD" || method === "GET" : idempotent; 10430 this.blocking = blocking == null ? false : blocking; 10431 this.reset = reset == null ? null : reset; 10432 this.host = null; 10433 this.contentLength = null; 10434 this.contentType = null; 10435 this.headers = ""; 10436 this.expectContinue = expectContinue != null ? expectContinue : false; 10437 if (Array.isArray(headers)) { 10438 if (headers.length % 2 !== 0) { 10439 throw new InvalidArgumentError("headers array must be even"); 10440 } 10441 for (let i = 0; i < headers.length; i += 2) { 10442 processHeader(this, headers[i], headers[i + 1]); 10443 } 10444 } else if (headers && typeof headers === "object") { 10445 const keys = Object.keys(headers); 10446 for (let i = 0; i < keys.length; i++) { 10447 const key = keys[i]; 10448 processHeader(this, key, headers[key]); 10449 } 10450 } else if (headers != null) { 10451 throw new InvalidArgumentError("headers must be an object or an array"); 10452 } 10453 if (util.isFormDataLike(this.body)) { 10454 if (!extractBody) { 10455 extractBody = require_body().extractBody; 10456 } 10457 const [bodyStream, contentType] = extractBody(body); 10458 if (this.contentType == null) { 10459 this.contentType = contentType; 10460 this.headers += `content-type: ${contentType}\r 10461`; 10462 } 10463 this.body = bodyStream.stream; 10464 this.contentLength = bodyStream.length; 10465 } else if (util.isBlobLike(body) && this.contentType == null && body.type) { 10466 this.contentType = body.type; 10467 this.headers += `content-type: ${body.type}\r 10468`; 10469 } 10470 util.validateHandler(handler, method, upgrade); 10471 this.servername = util.getServerName(this.host); 10472 this[kHandler] = handler; 10473 if (channels.create.hasSubscribers) { 10474 channels.create.publish({ request: this }); 10475 } 10476 } 10477 onBodySent(chunk) { 10478 if (this[kHandler].onBodySent) { 10479 try { 10480 return this[kHandler].onBodySent(chunk); 10481 } catch (err) { 10482 this.abort(err); 10483 } 10484 } 10485 } 10486 onRequestSent() { 10487 if (channels.bodySent.hasSubscribers) { 10488 channels.bodySent.publish({ request: this }); 10489 } 10490 if (this[kHandler].onRequestSent) { 10491 try { 10492 return this[kHandler].onRequestSent(); 10493 } catch (err) { 10494 this.abort(err); 10495 } 10496 } 10497 } 10498 onConnect(abort) { 10499 assert3(!this.aborted); 10500 assert3(!this.completed); 10501 if (this.error) { 10502 abort(this.error); 10503 } else { 10504 this.abort = abort; 10505 return this[kHandler].onConnect(abort); 10506 } 10507 } 10508 onResponseStarted() { 10509 return this[kHandler].onResponseStarted?.(); 10510 } 10511 onHeaders(statusCode, headers, resume, statusText) { 10512 assert3(!this.aborted); 10513 assert3(!this.completed); 10514 if (channels.headers.hasSubscribers) { 10515 channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); 10516 } 10517 try { 10518 return this[kHandler].onHeaders(statusCode, headers, resume, statusText); 10519 } catch (err) { 10520 this.abort(err); 10521 } 10522 } 10523 onData(chunk) { 10524 assert3(!this.aborted); 10525 assert3(!this.completed); 10526 try { 10527 return this[kHandler].onData(chunk); 10528 } catch (err) { 10529 this.abort(err); 10530 return false; 10531 } 10532 } 10533 onUpgrade(statusCode, headers, socket) { 10534 assert3(!this.aborted); 10535 assert3(!this.completed); 10536 return this[kHandler].onUpgrade(statusCode, headers, socket); 10537 } 10538 onComplete(trailers) { 10539 this.onFinally(); 10540 assert3(!this.aborted); 10541 this.completed = true; 10542 if (channels.trailers.hasSubscribers) { 10543 channels.trailers.publish({ request: this, trailers }); 10544 } 10545 try { 10546 return this[kHandler].onComplete(trailers); 10547 } catch (err) { 10548 this.onError(err); 10549 } 10550 } 10551 onError(error) { 10552 this.onFinally(); 10553 if (channels.error.hasSubscribers) { 10554 channels.error.publish({ request: this, error }); 10555 } 10556 if (this.aborted) { 10557 return; 10558 } 10559 this.aborted = true; 10560 return this[kHandler].onError(error); 10561 } 10562 onFinally() { 10563 if (this.errorHandler) { 10564 this.body.off("error", this.errorHandler); 10565 this.errorHandler = null; 10566 } 10567 if (this.endHandler) { 10568 this.body.off("end", this.endHandler); 10569 this.endHandler = null; 10570 } 10571 } 10572 // TODO: adjust to support H2 10573 addHeader(key, value) { 10574 processHeader(this, key, value); 10575 return this; 10576 } 10577 static [kHTTP1BuildRequest](origin, opts, handler) { 10578 return new _Request(origin, opts, handler); 10579 } 10580 static [kHTTP2BuildRequest](origin, opts, handler) { 10581 const headers = opts.headers; 10582 opts = { ...opts, headers: null }; 10583 const request = new _Request(origin, opts, handler); 10584 request.headers = {}; 10585 if (Array.isArray(headers)) { 10586 if (headers.length % 2 !== 0) { 10587 throw new InvalidArgumentError("headers array must be even"); 10588 } 10589 for (let i = 0; i < headers.length; i += 2) { 10590 processHeader(request, headers[i], headers[i + 1], true); 10591 } 10592 } else if (headers && typeof headers === "object") { 10593 const keys = Object.keys(headers); 10594 for (let i = 0; i < keys.length; i++) { 10595 const key = keys[i]; 10596 processHeader(request, key, headers[key], true); 10597 } 10598 } else if (headers != null) { 10599 throw new InvalidArgumentError("headers must be an object or an array"); 10600 } 10601 return request; 10602 } 10603 static [kHTTP2CopyHeaders](raw) { 10604 const rawHeaders = raw.split("\r\n"); 10605 const headers = {}; 10606 for (const header of rawHeaders) { 10607 const [key, value] = header.split(": "); 10608 if (value == null || value.length === 0) 10609 continue; 10610 if (headers[key]) { 10611 headers[key] += `,${value}`; 10612 } else { 10613 headers[key] = value; 10614 } 10615 } 10616 return headers; 10617 } 10618 }; 10619 function processHeaderValue(key, val, skipAppend) { 10620 if (val && typeof val === "object") { 10621 throw new InvalidArgumentError(`invalid ${key} header`); 10622 } 10623 val = val != null ? `${val}` : ""; 10624 if (headerCharRegex.exec(val) !== null) { 10625 throw new InvalidArgumentError(`invalid ${key} header`); 10626 } 10627 return skipAppend ? val : `${key}: ${val}\r 10628`; 10629 } 10630 function processHeader(request, key, val, skipAppend = false) { 10631 if (val && (typeof val === "object" && !Array.isArray(val))) { 10632 throw new InvalidArgumentError(`invalid ${key} header`); 10633 } else if (val === void 0) { 10634 return; 10635 } 10636 let headerName = headerNameLowerCasedRecord[key]; 10637 if (headerName === void 0) { 10638 headerName = key.toLowerCase(); 10639 if (headerNameLowerCasedRecord[headerName] === void 0 && !util.isValidHTTPToken(headerName)) { 10640 throw new InvalidArgumentError("invalid header key"); 10641 } 10642 } 10643 if (request.host === null && headerName === "host") { 10644 if (headerCharRegex.exec(val) !== null) { 10645 throw new InvalidArgumentError(`invalid ${key} header`); 10646 } 10647 request.host = val; 10648 } else if (request.contentLength === null && headerName === "content-length") { 10649 request.contentLength = parseInt(val, 10); 10650 if (!Number.isFinite(request.contentLength)) { 10651 throw new InvalidArgumentError("invalid content-length header"); 10652 } 10653 } else if (request.contentType === null && headerName === "content-type") { 10654 request.contentType = val; 10655 if (skipAppend) 10656 request.headers[key] = processHeaderValue(key, val, skipAppend); 10657 else 10658 request.headers += processHeaderValue(key, val); 10659 } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") { 10660 throw new InvalidArgumentError(`invalid ${headerName} header`); 10661 } else if (headerName === "connection") { 10662 const value = typeof val === "string" ? val.toLowerCase() : null; 10663 if (value !== "close" && value !== "keep-alive") { 10664 throw new InvalidArgumentError("invalid connection header"); 10665 } else if (value === "close") { 10666 request.reset = true; 10667 } 10668 } else if (headerName === "expect") { 10669 throw new NotSupportedError("expect header not supported"); 10670 } else if (Array.isArray(val)) { 10671 for (let i = 0; i < val.length; i++) { 10672 if (skipAppend) { 10673 if (request.headers[key]) { 10674 request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`; 10675 } else { 10676 request.headers[key] = processHeaderValue(key, val[i], skipAppend); 10677 } 10678 } else { 10679 request.headers += processHeaderValue(key, val[i]); 10680 } 10681 } 10682 } else if (skipAppend) { 10683 request.headers[key] = processHeaderValue(key, val, skipAppend); 10684 } else { 10685 request.headers += processHeaderValue(key, val); 10686 } 10687 } 10688 module2.exports = Request; 10689 } 10690}); 10691 10692// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/connect.js 10693var require_connect = __commonJS({ 10694 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/core/connect.js"(exports, module2) { 10695 "use strict"; 10696 var net = require("node:net"); 10697 var assert3 = require("node:assert"); 10698 var util = require_util(); 10699 var { InvalidArgumentError, ConnectTimeoutError } = require_errors(); 10700 var tls; 10701 var SessionCache; 10702 if (global.FinalizationRegistry && !(process.env.NODE_V8_COVERAGE || process.env.UNDICI_NO_FG)) { 10703 SessionCache = class WeakSessionCache { 10704 constructor(maxCachedSessions) { 10705 this._maxCachedSessions = maxCachedSessions; 10706 this._sessionCache = /* @__PURE__ */ new Map(); 10707 this._sessionRegistry = new global.FinalizationRegistry((key) => { 10708 if (this._sessionCache.size < this._maxCachedSessions) { 10709 return; 10710 } 10711 const ref = this._sessionCache.get(key); 10712 if (ref !== void 0 && ref.deref() === void 0) { 10713 this._sessionCache.delete(key); 10714 } 10715 }); 10716 } 10717 get(sessionKey) { 10718 const ref = this._sessionCache.get(sessionKey); 10719 return ref ? ref.deref() : null; 10720 } 10721 set(sessionKey, session) { 10722 if (this._maxCachedSessions === 0) { 10723 return; 10724 } 10725 this._sessionCache.set(sessionKey, new WeakRef(session)); 10726 this._sessionRegistry.register(session, sessionKey); 10727 } 10728 }; 10729 } else { 10730 SessionCache = class SimpleSessionCache { 10731 constructor(maxCachedSessions) { 10732 this._maxCachedSessions = maxCachedSessions; 10733 this._sessionCache = /* @__PURE__ */ new Map(); 10734 } 10735 get(sessionKey) { 10736 return this._sessionCache.get(sessionKey); 10737 } 10738 set(sessionKey, session) { 10739 if (this._maxCachedSessions === 0) { 10740 return; 10741 } 10742 if (this._sessionCache.size >= this._maxCachedSessions) { 10743 const { value: oldestKey } = this._sessionCache.keys().next(); 10744 this._sessionCache.delete(oldestKey); 10745 } 10746 this._sessionCache.set(sessionKey, session); 10747 } 10748 }; 10749 } 10750 function buildConnector({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) { 10751 if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { 10752 throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero"); 10753 } 10754 const options = { path: socketPath, ...opts }; 10755 const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions); 10756 timeout = timeout == null ? 1e4 : timeout; 10757 allowH2 = allowH2 != null ? allowH2 : false; 10758 return function connect({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { 10759 let socket; 10760 if (protocol === "https:") { 10761 if (!tls) { 10762 tls = require("node:tls"); 10763 } 10764 servername = servername || options.servername || util.getServerName(host) || null; 10765 const sessionKey = servername || hostname; 10766 const session = sessionCache.get(sessionKey) || null; 10767 assert3(sessionKey); 10768 socket = tls.connect({ 10769 highWaterMark: 16384, 10770 // TLS in node can't have bigger HWM anyway... 10771 ...options, 10772 servername, 10773 session, 10774 localAddress, 10775 // TODO(HTTP/2): Add support for h2c 10776 ALPNProtocols: allowH2 ? ["http/1.1", "h2"] : ["http/1.1"], 10777 socket: httpSocket, 10778 // upgrade socket connection 10779 port: port || 443, 10780 host: hostname 10781 }); 10782 socket.on("session", function(session2) { 10783 sessionCache.set(sessionKey, session2); 10784 }); 10785 } else { 10786 assert3(!httpSocket, "httpSocket can only be sent on TLS update"); 10787 socket = net.connect({ 10788 highWaterMark: 64 * 1024, 10789 // Same as nodejs fs streams. 10790 ...options, 10791 localAddress, 10792 port: port || 80, 10793 host: hostname 10794 }); 10795 } 10796 if (options.keepAlive == null || options.keepAlive) { 10797 const keepAliveInitialDelay = options.keepAliveInitialDelay === void 0 ? 6e4 : options.keepAliveInitialDelay; 10798 socket.setKeepAlive(true, keepAliveInitialDelay); 10799 } 10800 const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout); 10801 socket.setNoDelay(true).once(protocol === "https:" ? "secureConnect" : "connect", function() { 10802 cancelTimeout(); 10803 if (callback) { 10804 const cb = callback; 10805 callback = null; 10806 cb(null, this); 10807 } 10808 }).on("error", function(err) { 10809 cancelTimeout(); 10810 if (callback) { 10811 const cb = callback; 10812 callback = null; 10813 cb(err); 10814 } 10815 }); 10816 return socket; 10817 }; 10818 } 10819 function setupTimeout(onConnectTimeout2, timeout) { 10820 if (!timeout) { 10821 return () => { 10822 }; 10823 } 10824 let s1 = null; 10825 let s2 = null; 10826 const timeoutId = setTimeout(() => { 10827 s1 = setImmediate(() => { 10828 if (process.platform === "win32") { 10829 s2 = setImmediate(() => onConnectTimeout2()); 10830 } else { 10831 onConnectTimeout2(); 10832 } 10833 }); 10834 }, timeout); 10835 return () => { 10836 clearTimeout(timeoutId); 10837 clearImmediate(s1); 10838 clearImmediate(s2); 10839 }; 10840 } 10841 function onConnectTimeout(socket) { 10842 let message = "Connect Timeout Error"; 10843 if (Array.isArray(socket.autoSelectFamilyAttemptedAddresses)) { 10844 message = +` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")})`; 10845 } 10846 util.destroy(socket, new ConnectTimeoutError(message)); 10847 } 10848 module2.exports = buildConnector; 10849 } 10850}); 10851 10852// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/llhttp/utils.js 10853var require_utils = __commonJS({ 10854 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/llhttp/utils.js"(exports) { 10855 "use strict"; 10856 Object.defineProperty(exports, "__esModule", { value: true }); 10857 exports.enumToMap = void 0; 10858 function enumToMap(obj) { 10859 const res = {}; 10860 Object.keys(obj).forEach((key) => { 10861 const value = obj[key]; 10862 if (typeof value === "number") { 10863 res[key] = value; 10864 } 10865 }); 10866 return res; 10867 } 10868 exports.enumToMap = enumToMap; 10869 } 10870}); 10871 10872// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/llhttp/constants.js 10873var require_constants4 = __commonJS({ 10874 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/llhttp/constants.js"(exports) { 10875 "use strict"; 10876 Object.defineProperty(exports, "__esModule", { value: true }); 10877 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; 10878 var utils_1 = require_utils(); 10879 var ERROR; 10880 (function(ERROR2) { 10881 ERROR2[ERROR2["OK"] = 0] = "OK"; 10882 ERROR2[ERROR2["INTERNAL"] = 1] = "INTERNAL"; 10883 ERROR2[ERROR2["STRICT"] = 2] = "STRICT"; 10884 ERROR2[ERROR2["LF_EXPECTED"] = 3] = "LF_EXPECTED"; 10885 ERROR2[ERROR2["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; 10886 ERROR2[ERROR2["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; 10887 ERROR2[ERROR2["INVALID_METHOD"] = 6] = "INVALID_METHOD"; 10888 ERROR2[ERROR2["INVALID_URL"] = 7] = "INVALID_URL"; 10889 ERROR2[ERROR2["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; 10890 ERROR2[ERROR2["INVALID_VERSION"] = 9] = "INVALID_VERSION"; 10891 ERROR2[ERROR2["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; 10892 ERROR2[ERROR2["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; 10893 ERROR2[ERROR2["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; 10894 ERROR2[ERROR2["INVALID_STATUS"] = 13] = "INVALID_STATUS"; 10895 ERROR2[ERROR2["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; 10896 ERROR2[ERROR2["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; 10897 ERROR2[ERROR2["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; 10898 ERROR2[ERROR2["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; 10899 ERROR2[ERROR2["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; 10900 ERROR2[ERROR2["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; 10901 ERROR2[ERROR2["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; 10902 ERROR2[ERROR2["PAUSED"] = 21] = "PAUSED"; 10903 ERROR2[ERROR2["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; 10904 ERROR2[ERROR2["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; 10905 ERROR2[ERROR2["USER"] = 24] = "USER"; 10906 })(ERROR = exports.ERROR || (exports.ERROR = {})); 10907 var TYPE; 10908 (function(TYPE2) { 10909 TYPE2[TYPE2["BOTH"] = 0] = "BOTH"; 10910 TYPE2[TYPE2["REQUEST"] = 1] = "REQUEST"; 10911 TYPE2[TYPE2["RESPONSE"] = 2] = "RESPONSE"; 10912 })(TYPE = exports.TYPE || (exports.TYPE = {})); 10913 var FLAGS; 10914 (function(FLAGS2) { 10915 FLAGS2[FLAGS2["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; 10916 FLAGS2[FLAGS2["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; 10917 FLAGS2[FLAGS2["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; 10918 FLAGS2[FLAGS2["CHUNKED"] = 8] = "CHUNKED"; 10919 FLAGS2[FLAGS2["UPGRADE"] = 16] = "UPGRADE"; 10920 FLAGS2[FLAGS2["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; 10921 FLAGS2[FLAGS2["SKIPBODY"] = 64] = "SKIPBODY"; 10922 FLAGS2[FLAGS2["TRAILING"] = 128] = "TRAILING"; 10923 FLAGS2[FLAGS2["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; 10924 })(FLAGS = exports.FLAGS || (exports.FLAGS = {})); 10925 var LENIENT_FLAGS; 10926 (function(LENIENT_FLAGS2) { 10927 LENIENT_FLAGS2[LENIENT_FLAGS2["HEADERS"] = 1] = "HEADERS"; 10928 LENIENT_FLAGS2[LENIENT_FLAGS2["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; 10929 LENIENT_FLAGS2[LENIENT_FLAGS2["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; 10930 })(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); 10931 var METHODS; 10932 (function(METHODS2) { 10933 METHODS2[METHODS2["DELETE"] = 0] = "DELETE"; 10934 METHODS2[METHODS2["GET"] = 1] = "GET"; 10935 METHODS2[METHODS2["HEAD"] = 2] = "HEAD"; 10936 METHODS2[METHODS2["POST"] = 3] = "POST"; 10937 METHODS2[METHODS2["PUT"] = 4] = "PUT"; 10938 METHODS2[METHODS2["CONNECT"] = 5] = "CONNECT"; 10939 METHODS2[METHODS2["OPTIONS"] = 6] = "OPTIONS"; 10940 METHODS2[METHODS2["TRACE"] = 7] = "TRACE"; 10941 METHODS2[METHODS2["COPY"] = 8] = "COPY"; 10942 METHODS2[METHODS2["LOCK"] = 9] = "LOCK"; 10943 METHODS2[METHODS2["MKCOL"] = 10] = "MKCOL"; 10944 METHODS2[METHODS2["MOVE"] = 11] = "MOVE"; 10945 METHODS2[METHODS2["PROPFIND"] = 12] = "PROPFIND"; 10946 METHODS2[METHODS2["PROPPATCH"] = 13] = "PROPPATCH"; 10947 METHODS2[METHODS2["SEARCH"] = 14] = "SEARCH"; 10948 METHODS2[METHODS2["UNLOCK"] = 15] = "UNLOCK"; 10949 METHODS2[METHODS2["BIND"] = 16] = "BIND"; 10950 METHODS2[METHODS2["REBIND"] = 17] = "REBIND"; 10951 METHODS2[METHODS2["UNBIND"] = 18] = "UNBIND"; 10952 METHODS2[METHODS2["ACL"] = 19] = "ACL"; 10953 METHODS2[METHODS2["REPORT"] = 20] = "REPORT"; 10954 METHODS2[METHODS2["MKACTIVITY"] = 21] = "MKACTIVITY"; 10955 METHODS2[METHODS2["CHECKOUT"] = 22] = "CHECKOUT"; 10956 METHODS2[METHODS2["MERGE"] = 23] = "MERGE"; 10957 METHODS2[METHODS2["M-SEARCH"] = 24] = "M-SEARCH"; 10958 METHODS2[METHODS2["NOTIFY"] = 25] = "NOTIFY"; 10959 METHODS2[METHODS2["SUBSCRIBE"] = 26] = "SUBSCRIBE"; 10960 METHODS2[METHODS2["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; 10961 METHODS2[METHODS2["PATCH"] = 28] = "PATCH"; 10962 METHODS2[METHODS2["PURGE"] = 29] = "PURGE"; 10963 METHODS2[METHODS2["MKCALENDAR"] = 30] = "MKCALENDAR"; 10964 METHODS2[METHODS2["LINK"] = 31] = "LINK"; 10965 METHODS2[METHODS2["UNLINK"] = 32] = "UNLINK"; 10966 METHODS2[METHODS2["SOURCE"] = 33] = "SOURCE"; 10967 METHODS2[METHODS2["PRI"] = 34] = "PRI"; 10968 METHODS2[METHODS2["DESCRIBE"] = 35] = "DESCRIBE"; 10969 METHODS2[METHODS2["ANNOUNCE"] = 36] = "ANNOUNCE"; 10970 METHODS2[METHODS2["SETUP"] = 37] = "SETUP"; 10971 METHODS2[METHODS2["PLAY"] = 38] = "PLAY"; 10972 METHODS2[METHODS2["PAUSE"] = 39] = "PAUSE"; 10973 METHODS2[METHODS2["TEARDOWN"] = 40] = "TEARDOWN"; 10974 METHODS2[METHODS2["GET_PARAMETER"] = 41] = "GET_PARAMETER"; 10975 METHODS2[METHODS2["SET_PARAMETER"] = 42] = "SET_PARAMETER"; 10976 METHODS2[METHODS2["REDIRECT"] = 43] = "REDIRECT"; 10977 METHODS2[METHODS2["RECORD"] = 44] = "RECORD"; 10978 METHODS2[METHODS2["FLUSH"] = 45] = "FLUSH"; 10979 })(METHODS = exports.METHODS || (exports.METHODS = {})); 10980 exports.METHODS_HTTP = [ 10981 METHODS.DELETE, 10982 METHODS.GET, 10983 METHODS.HEAD, 10984 METHODS.POST, 10985 METHODS.PUT, 10986 METHODS.CONNECT, 10987 METHODS.OPTIONS, 10988 METHODS.TRACE, 10989 METHODS.COPY, 10990 METHODS.LOCK, 10991 METHODS.MKCOL, 10992 METHODS.MOVE, 10993 METHODS.PROPFIND, 10994 METHODS.PROPPATCH, 10995 METHODS.SEARCH, 10996 METHODS.UNLOCK, 10997 METHODS.BIND, 10998 METHODS.REBIND, 10999 METHODS.UNBIND, 11000 METHODS.ACL, 11001 METHODS.REPORT, 11002 METHODS.MKACTIVITY, 11003 METHODS.CHECKOUT, 11004 METHODS.MERGE, 11005 METHODS["M-SEARCH"], 11006 METHODS.NOTIFY, 11007 METHODS.SUBSCRIBE, 11008 METHODS.UNSUBSCRIBE, 11009 METHODS.PATCH, 11010 METHODS.PURGE, 11011 METHODS.MKCALENDAR, 11012 METHODS.LINK, 11013 METHODS.UNLINK, 11014 METHODS.PRI, 11015 // TODO(indutny): should we allow it with HTTP? 11016 METHODS.SOURCE 11017 ]; 11018 exports.METHODS_ICE = [ 11019 METHODS.SOURCE 11020 ]; 11021 exports.METHODS_RTSP = [ 11022 METHODS.OPTIONS, 11023 METHODS.DESCRIBE, 11024 METHODS.ANNOUNCE, 11025 METHODS.SETUP, 11026 METHODS.PLAY, 11027 METHODS.PAUSE, 11028 METHODS.TEARDOWN, 11029 METHODS.GET_PARAMETER, 11030 METHODS.SET_PARAMETER, 11031 METHODS.REDIRECT, 11032 METHODS.RECORD, 11033 METHODS.FLUSH, 11034 // For AirPlay 11035 METHODS.GET, 11036 METHODS.POST 11037 ]; 11038 exports.METHOD_MAP = utils_1.enumToMap(METHODS); 11039 exports.H_METHOD_MAP = {}; 11040 Object.keys(exports.METHOD_MAP).forEach((key) => { 11041 if (/^H/.test(key)) { 11042 exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]; 11043 } 11044 }); 11045 var FINISH; 11046 (function(FINISH2) { 11047 FINISH2[FINISH2["SAFE"] = 0] = "SAFE"; 11048 FINISH2[FINISH2["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; 11049 FINISH2[FINISH2["UNSAFE"] = 2] = "UNSAFE"; 11050 })(FINISH = exports.FINISH || (exports.FINISH = {})); 11051 exports.ALPHA = []; 11052 for (let i = "A".charCodeAt(0); i <= "Z".charCodeAt(0); i++) { 11053 exports.ALPHA.push(String.fromCharCode(i)); 11054 exports.ALPHA.push(String.fromCharCode(i + 32)); 11055 } 11056 exports.NUM_MAP = { 11057 0: 0, 11058 1: 1, 11059 2: 2, 11060 3: 3, 11061 4: 4, 11062 5: 5, 11063 6: 6, 11064 7: 7, 11065 8: 8, 11066 9: 9 11067 }; 11068 exports.HEX_MAP = { 11069 0: 0, 11070 1: 1, 11071 2: 2, 11072 3: 3, 11073 4: 4, 11074 5: 5, 11075 6: 6, 11076 7: 7, 11077 8: 8, 11078 9: 9, 11079 A: 10, 11080 B: 11, 11081 C: 12, 11082 D: 13, 11083 E: 14, 11084 F: 15, 11085 a: 10, 11086 b: 11, 11087 c: 12, 11088 d: 13, 11089 e: 14, 11090 f: 15 11091 }; 11092 exports.NUM = [ 11093 "0", 11094 "1", 11095 "2", 11096 "3", 11097 "4", 11098 "5", 11099 "6", 11100 "7", 11101 "8", 11102 "9" 11103 ]; 11104 exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); 11105 exports.MARK = ["-", "_", ".", "!", "~", "*", "'", "(", ")"]; 11106 exports.USERINFO_CHARS = exports.ALPHANUM.concat(exports.MARK).concat(["%", ";", ":", "&", "=", "+", "$", ","]); 11107 exports.STRICT_URL_CHAR = [ 11108 "!", 11109 '"', 11110 "$", 11111 "%", 11112 "&", 11113 "'", 11114 "(", 11115 ")", 11116 "*", 11117 "+", 11118 ",", 11119 "-", 11120 ".", 11121 "/", 11122 ":", 11123 ";", 11124 "<", 11125 "=", 11126 ">", 11127 "@", 11128 "[", 11129 "\\", 11130 "]", 11131 "^", 11132 "_", 11133 "`", 11134 "{", 11135 "|", 11136 "}", 11137 "~" 11138 ].concat(exports.ALPHANUM); 11139 exports.URL_CHAR = exports.STRICT_URL_CHAR.concat([" ", "\f"]); 11140 for (let i = 128; i <= 255; i++) { 11141 exports.URL_CHAR.push(i); 11142 } 11143 exports.HEX = exports.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]); 11144 exports.STRICT_TOKEN = [ 11145 "!", 11146 "#", 11147 "$", 11148 "%", 11149 "&", 11150 "'", 11151 "*", 11152 "+", 11153 "-", 11154 ".", 11155 "^", 11156 "_", 11157 "`", 11158 "|", 11159 "~" 11160 ].concat(exports.ALPHANUM); 11161 exports.TOKEN = exports.STRICT_TOKEN.concat([" "]); 11162 exports.HEADER_CHARS = [" "]; 11163 for (let i = 32; i <= 255; i++) { 11164 if (i !== 127) { 11165 exports.HEADER_CHARS.push(i); 11166 } 11167 } 11168 exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); 11169 exports.MAJOR = exports.NUM_MAP; 11170 exports.MINOR = exports.MAJOR; 11171 var HEADER_STATE; 11172 (function(HEADER_STATE2) { 11173 HEADER_STATE2[HEADER_STATE2["GENERAL"] = 0] = "GENERAL"; 11174 HEADER_STATE2[HEADER_STATE2["CONNECTION"] = 1] = "CONNECTION"; 11175 HEADER_STATE2[HEADER_STATE2["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; 11176 HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; 11177 HEADER_STATE2[HEADER_STATE2["UPGRADE"] = 4] = "UPGRADE"; 11178 HEADER_STATE2[HEADER_STATE2["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; 11179 HEADER_STATE2[HEADER_STATE2["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; 11180 HEADER_STATE2[HEADER_STATE2["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; 11181 HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; 11182 })(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); 11183 exports.SPECIAL_HEADERS = { 11184 "connection": HEADER_STATE.CONNECTION, 11185 "content-length": HEADER_STATE.CONTENT_LENGTH, 11186 "proxy-connection": HEADER_STATE.CONNECTION, 11187 "transfer-encoding": HEADER_STATE.TRANSFER_ENCODING, 11188 "upgrade": HEADER_STATE.UPGRADE 11189 }; 11190 } 11191}); 11192 11193// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/handler/RedirectHandler.js 11194var require_RedirectHandler = __commonJS({ 11195 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/handler/RedirectHandler.js"(exports, module2) { 11196 "use strict"; 11197 var util = require_util(); 11198 var { kBodyUsed } = require_symbols(); 11199 var assert3 = require("node:assert"); 11200 var { InvalidArgumentError } = require_errors(); 11201 var EE = require("node:events"); 11202 var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; 11203 var kBody = Symbol("body"); 11204 var BodyAsyncIterable = class { 11205 constructor(body) { 11206 this[kBody] = body; 11207 this[kBodyUsed] = false; 11208 } 11209 async *[Symbol.asyncIterator]() { 11210 assert3(!this[kBodyUsed], "disturbed"); 11211 this[kBodyUsed] = true; 11212 yield* this[kBody]; 11213 } 11214 }; 11215 var RedirectHandler = class { 11216 constructor(dispatch, maxRedirections, opts, handler) { 11217 if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { 11218 throw new InvalidArgumentError("maxRedirections must be a positive number"); 11219 } 11220 util.validateHandler(handler, opts.method, opts.upgrade); 11221 this.dispatch = dispatch; 11222 this.location = null; 11223 this.abort = null; 11224 this.opts = { ...opts, maxRedirections: 0 }; 11225 this.maxRedirections = maxRedirections; 11226 this.handler = handler; 11227 this.history = []; 11228 this.redirectionLimitReached = false; 11229 if (util.isStream(this.opts.body)) { 11230 if (util.bodyLength(this.opts.body) === 0) { 11231 this.opts.body.on("data", function() { 11232 assert3(false); 11233 }); 11234 } 11235 if (typeof this.opts.body.readableDidRead !== "boolean") { 11236 this.opts.body[kBodyUsed] = false; 11237 EE.prototype.on.call(this.opts.body, "data", function() { 11238 this[kBodyUsed] = true; 11239 }); 11240 } 11241 } else if (this.opts.body && typeof this.opts.body.pipeTo === "function") { 11242 this.opts.body = new BodyAsyncIterable(this.opts.body); 11243 } else if (this.opts.body && typeof this.opts.body !== "string" && !ArrayBuffer.isView(this.opts.body) && util.isIterable(this.opts.body)) { 11244 this.opts.body = new BodyAsyncIterable(this.opts.body); 11245 } 11246 } 11247 onConnect(abort) { 11248 this.abort = abort; 11249 this.handler.onConnect(abort, { history: this.history }); 11250 } 11251 onUpgrade(statusCode, headers, socket) { 11252 this.handler.onUpgrade(statusCode, headers, socket); 11253 } 11254 onError(error) { 11255 this.handler.onError(error); 11256 } 11257 onHeaders(statusCode, headers, resume, statusText) { 11258 this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers); 11259 if (this.opts.throwOnMaxRedirect && this.history.length >= this.maxRedirections) { 11260 if (this.request) { 11261 this.request.abort(new Error("max redirects")); 11262 } 11263 this.redirectionLimitReached = true; 11264 this.abort(new Error("max redirects")); 11265 return; 11266 } 11267 if (this.opts.origin) { 11268 this.history.push(new URL(this.opts.path, this.opts.origin)); 11269 } 11270 if (!this.location) { 11271 return this.handler.onHeaders(statusCode, headers, resume, statusText); 11272 } 11273 const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); 11274 const path10 = search ? `${pathname}${search}` : pathname; 11275 this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin); 11276 this.opts.path = path10; 11277 this.opts.origin = origin; 11278 this.opts.maxRedirections = 0; 11279 this.opts.query = null; 11280 if (statusCode === 303 && this.opts.method !== "HEAD") { 11281 this.opts.method = "GET"; 11282 this.opts.body = null; 11283 } 11284 } 11285 onData(chunk) { 11286 if (this.location) { 11287 } else { 11288 return this.handler.onData(chunk); 11289 } 11290 } 11291 onComplete(trailers) { 11292 if (this.location) { 11293 this.location = null; 11294 this.abort = null; 11295 this.dispatch(this.opts, this); 11296 } else { 11297 this.handler.onComplete(trailers); 11298 } 11299 } 11300 onBodySent(chunk) { 11301 if (this.handler.onBodySent) { 11302 this.handler.onBodySent(chunk); 11303 } 11304 } 11305 }; 11306 function parseLocation(statusCode, headers) { 11307 if (redirectableStatusCodes.indexOf(statusCode) === -1) { 11308 return null; 11309 } 11310 for (let i = 0; i < headers.length; i += 2) { 11311 if (headers[i].length === 8 && util.headerNameToString(headers[i]) === "location") { 11312 return headers[i + 1]; 11313 } 11314 } 11315 } 11316 function shouldRemoveHeader(header, removeContent, unknownOrigin) { 11317 if (header.length === 4) { 11318 return util.headerNameToString(header) === "host"; 11319 } 11320 if (removeContent && util.headerNameToString(header).startsWith("content-")) { 11321 return true; 11322 } 11323 if (unknownOrigin && (header.length === 13 || header.length === 6)) { 11324 const name = util.headerNameToString(header); 11325 return name === "authorization" || name === "cookie"; 11326 } 11327 return false; 11328 } 11329 function cleanRequestHeaders(headers, removeContent, unknownOrigin) { 11330 const ret = []; 11331 if (Array.isArray(headers)) { 11332 for (let i = 0; i < headers.length; i += 2) { 11333 if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { 11334 ret.push(headers[i], headers[i + 1]); 11335 } 11336 } 11337 } else if (headers && typeof headers === "object") { 11338 for (const key of Object.keys(headers)) { 11339 if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { 11340 ret.push(key, headers[key]); 11341 } 11342 } 11343 } else { 11344 assert3(headers == null, "headers must be an object or an array"); 11345 } 11346 return ret; 11347 } 11348 module2.exports = RedirectHandler; 11349 } 11350}); 11351 11352// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/interceptor/redirectInterceptor.js 11353var require_redirectInterceptor = __commonJS({ 11354 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/interceptor/redirectInterceptor.js"(exports, module2) { 11355 "use strict"; 11356 var RedirectHandler = require_RedirectHandler(); 11357 function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { 11358 return (dispatch) => { 11359 return function Intercept(opts, handler) { 11360 const { maxRedirections = defaultMaxRedirections } = opts; 11361 if (!maxRedirections) { 11362 return dispatch(opts, handler); 11363 } 11364 const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler); 11365 opts = { ...opts, maxRedirections: 0 }; 11366 return dispatch(opts, redirectHandler); 11367 }; 11368 }; 11369 } 11370 module2.exports = createRedirectInterceptor; 11371 } 11372}); 11373 11374// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/llhttp/llhttp-wasm.js 11375var require_llhttp_wasm = __commonJS({ 11376 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports, module2) { 11377 var { Buffer: Buffer2 } = require("node:buffer"); 11378 module2.exports = Buffer2.from("AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8=", "base64"); 11379 } 11380}); 11381 11382// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js 11383var require_llhttp_simd_wasm = __commonJS({ 11384 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports, module2) { 11385 var { Buffer: Buffer2 } = require("node:buffer"); 11386 module2.exports = Buffer2.from("AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64"); 11387 } 11388}); 11389 11390// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/client.js 11391var require_client = __commonJS({ 11392 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/client.js"(exports, module2) { 11393 "use strict"; 11394 var assert3 = require("node:assert"); 11395 var net = require("node:net"); 11396 var http = require("node:http"); 11397 var { pipeline } = require("node:stream"); 11398 var util = require_util(); 11399 var { channels } = require_diagnostics(); 11400 var timers = require_timers(); 11401 var Request = require_request(); 11402 var DispatcherBase = require_dispatcher_base(); 11403 var { 11404 RequestContentLengthMismatchError, 11405 ResponseContentLengthMismatchError, 11406 InvalidArgumentError, 11407 RequestAbortedError, 11408 HeadersTimeoutError, 11409 HeadersOverflowError, 11410 SocketError, 11411 InformationalError, 11412 BodyTimeoutError, 11413 HTTPParserError, 11414 ResponseExceededMaxSizeError, 11415 ClientDestroyedError 11416 } = require_errors(); 11417 var buildConnector = require_connect(); 11418 var { 11419 kUrl, 11420 kReset, 11421 kServerName, 11422 kClient, 11423 kBusy, 11424 kParser, 11425 kConnect, 11426 kBlocking, 11427 kResuming, 11428 kRunning, 11429 kPending, 11430 kSize, 11431 kWriting, 11432 kQueue, 11433 kConnected, 11434 kConnecting, 11435 kNeedDrain, 11436 kNoRef, 11437 kKeepAliveDefaultTimeout, 11438 kHostHeader, 11439 kPendingIdx, 11440 kRunningIdx, 11441 kError, 11442 kPipelining, 11443 kSocket, 11444 kKeepAliveTimeoutValue, 11445 kMaxHeadersSize, 11446 kKeepAliveMaxTimeout, 11447 kKeepAliveTimeoutThreshold, 11448 kHeadersTimeout, 11449 kBodyTimeout, 11450 kStrictContentLength, 11451 kConnector, 11452 kMaxRedirections, 11453 kMaxRequests, 11454 kCounter, 11455 kClose, 11456 kDestroy, 11457 kDispatch, 11458 kInterceptors, 11459 kLocalAddress, 11460 kMaxResponseSize, 11461 kHTTPConnVersion, 11462 // HTTP2 11463 kHost, 11464 kHTTP2Session, 11465 kHTTP2SessionState, 11466 kHTTP2BuildRequest, 11467 kHTTP2CopyHeaders, 11468 kHTTP1BuildRequest 11469 } = require_symbols(); 11470 var http2; 11471 try { 11472 http2 = require("node:http2"); 11473 } catch { 11474 http2 = { constants: {} }; 11475 } 11476 var { 11477 constants: { 11478 HTTP2_HEADER_AUTHORITY, 11479 HTTP2_HEADER_METHOD, 11480 HTTP2_HEADER_PATH, 11481 HTTP2_HEADER_SCHEME, 11482 HTTP2_HEADER_CONTENT_LENGTH, 11483 HTTP2_HEADER_EXPECT, 11484 HTTP2_HEADER_STATUS 11485 } 11486 } = http2; 11487 var h2ExperimentalWarned = false; 11488 var FastBuffer = Buffer[Symbol.species]; 11489 var kClosedResolve = Symbol("kClosedResolve"); 11490 var Client = class extends DispatcherBase { 11491 /** 11492 * 11493 * @param {string|URL} url 11494 * @param {import('../types/client').Client.Options} options 11495 */ 11496 constructor(url, { 11497 interceptors, 11498 maxHeaderSize, 11499 headersTimeout, 11500 socketTimeout, 11501 requestTimeout, 11502 connectTimeout, 11503 bodyTimeout, 11504 idleTimeout, 11505 keepAlive, 11506 keepAliveTimeout, 11507 maxKeepAliveTimeout, 11508 keepAliveMaxTimeout, 11509 keepAliveTimeoutThreshold, 11510 socketPath, 11511 pipelining, 11512 tls, 11513 strictContentLength, 11514 maxCachedSessions, 11515 maxRedirections, 11516 connect: connect2, 11517 maxRequestsPerClient, 11518 localAddress, 11519 maxResponseSize, 11520 autoSelectFamily, 11521 autoSelectFamilyAttemptTimeout, 11522 // h2 11523 allowH2, 11524 maxConcurrentStreams 11525 } = {}) { 11526 super(); 11527 if (keepAlive !== void 0) { 11528 throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead"); 11529 } 11530 if (socketTimeout !== void 0) { 11531 throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead"); 11532 } 11533 if (requestTimeout !== void 0) { 11534 throw new InvalidArgumentError("unsupported requestTimeout, use headersTimeout & bodyTimeout instead"); 11535 } 11536 if (idleTimeout !== void 0) { 11537 throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead"); 11538 } 11539 if (maxKeepAliveTimeout !== void 0) { 11540 throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead"); 11541 } 11542 if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { 11543 throw new InvalidArgumentError("invalid maxHeaderSize"); 11544 } 11545 if (socketPath != null && typeof socketPath !== "string") { 11546 throw new InvalidArgumentError("invalid socketPath"); 11547 } 11548 if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { 11549 throw new InvalidArgumentError("invalid connectTimeout"); 11550 } 11551 if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { 11552 throw new InvalidArgumentError("invalid keepAliveTimeout"); 11553 } 11554 if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { 11555 throw new InvalidArgumentError("invalid keepAliveMaxTimeout"); 11556 } 11557 if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { 11558 throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold"); 11559 } 11560 if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { 11561 throw new InvalidArgumentError("headersTimeout must be a positive integer or zero"); 11562 } 11563 if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { 11564 throw new InvalidArgumentError("bodyTimeout must be a positive integer or zero"); 11565 } 11566 if (connect2 != null && typeof connect2 !== "function" && typeof connect2 !== "object") { 11567 throw new InvalidArgumentError("connect must be a function or an object"); 11568 } 11569 if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { 11570 throw new InvalidArgumentError("maxRedirections must be a positive number"); 11571 } 11572 if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { 11573 throw new InvalidArgumentError("maxRequestsPerClient must be a positive number"); 11574 } 11575 if (localAddress != null && (typeof localAddress !== "string" || net.isIP(localAddress) === 0)) { 11576 throw new InvalidArgumentError("localAddress must be valid string IP address"); 11577 } 11578 if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { 11579 throw new InvalidArgumentError("maxResponseSize must be a positive number"); 11580 } 11581 if (autoSelectFamilyAttemptTimeout != null && (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)) { 11582 throw new InvalidArgumentError("autoSelectFamilyAttemptTimeout must be a positive number"); 11583 } 11584 if (allowH2 != null && typeof allowH2 !== "boolean") { 11585 throw new InvalidArgumentError("allowH2 must be a valid boolean value"); 11586 } 11587 if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== "number" || maxConcurrentStreams < 1)) { 11588 throw new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0"); 11589 } 11590 if (typeof connect2 !== "function") { 11591 connect2 = buildConnector({ 11592 ...tls, 11593 maxCachedSessions, 11594 allowH2, 11595 socketPath, 11596 timeout: connectTimeout, 11597 ...util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, 11598 ...connect2 11599 }); 11600 } 11601 this[kInterceptors] = interceptors?.Client && Array.isArray(interceptors.Client) ? interceptors.Client : [createRedirectInterceptor({ maxRedirections })]; 11602 this[kUrl] = util.parseOrigin(url); 11603 this[kConnector] = connect2; 11604 this[kSocket] = null; 11605 this[kPipelining] = pipelining != null ? pipelining : 1; 11606 this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize; 11607 this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout; 11608 this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 6e5 : keepAliveMaxTimeout; 11609 this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold; 11610 this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]; 11611 this[kServerName] = null; 11612 this[kLocalAddress] = localAddress != null ? localAddress : null; 11613 this[kResuming] = 0; 11614 this[kNeedDrain] = 0; 11615 this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}\r 11616`; 11617 this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 3e5; 11618 this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 3e5; 11619 this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength; 11620 this[kMaxRedirections] = maxRedirections; 11621 this[kMaxRequests] = maxRequestsPerClient; 11622 this[kClosedResolve] = null; 11623 this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1; 11624 this[kHTTPConnVersion] = "h1"; 11625 this[kHTTP2Session] = null; 11626 this[kHTTP2SessionState] = !allowH2 ? null : { 11627 // streams: null, // Fixed queue of streams - For future support of `push` 11628 openStreams: 0, 11629 // Keep track of them to decide whether or not unref the session 11630 maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 11631 // Max peerConcurrentStreams for a Node h2 server 11632 }; 11633 this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}`; 11634 this[kQueue] = []; 11635 this[kRunningIdx] = 0; 11636 this[kPendingIdx] = 0; 11637 } 11638 get pipelining() { 11639 return this[kPipelining]; 11640 } 11641 set pipelining(value) { 11642 this[kPipelining] = value; 11643 resume(this, true); 11644 } 11645 get [kPending]() { 11646 return this[kQueue].length - this[kPendingIdx]; 11647 } 11648 get [kRunning]() { 11649 return this[kPendingIdx] - this[kRunningIdx]; 11650 } 11651 get [kSize]() { 11652 return this[kQueue].length - this[kRunningIdx]; 11653 } 11654 get [kConnected]() { 11655 return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed; 11656 } 11657 get [kBusy]() { 11658 const socket = this[kSocket]; 11659 return socket && (socket[kReset] || socket[kWriting] || socket[kBlocking]) || this[kSize] >= (this[kPipelining] || 1) || this[kPending] > 0; 11660 } 11661 /* istanbul ignore: only used for test */ 11662 [kConnect](cb) { 11663 connect(this); 11664 this.once("connect", cb); 11665 } 11666 [kDispatch](opts, handler) { 11667 const origin = opts.origin || this[kUrl].origin; 11668 const request = this[kHTTPConnVersion] === "h2" ? Request[kHTTP2BuildRequest](origin, opts, handler) : Request[kHTTP1BuildRequest](origin, opts, handler); 11669 this[kQueue].push(request); 11670 if (this[kResuming]) { 11671 } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { 11672 this[kResuming] = 1; 11673 process.nextTick(resume, this); 11674 } else { 11675 resume(this, true); 11676 } 11677 if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { 11678 this[kNeedDrain] = 2; 11679 } 11680 return this[kNeedDrain] < 2; 11681 } 11682 async [kClose]() { 11683 return new Promise((resolve) => { 11684 if (this[kSize]) { 11685 this[kClosedResolve] = resolve; 11686 } else { 11687 resolve(null); 11688 } 11689 }); 11690 } 11691 async [kDestroy](err) { 11692 return new Promise((resolve) => { 11693 const requests = this[kQueue].splice(this[kPendingIdx]); 11694 for (let i = 0; i < requests.length; i++) { 11695 const request = requests[i]; 11696 errorRequest(this, request, err); 11697 } 11698 const callback = () => { 11699 if (this[kClosedResolve]) { 11700 this[kClosedResolve](); 11701 this[kClosedResolve] = null; 11702 } 11703 resolve(); 11704 }; 11705 if (this[kHTTP2Session] != null) { 11706 util.destroy(this[kHTTP2Session], err); 11707 this[kHTTP2Session] = null; 11708 this[kHTTP2SessionState] = null; 11709 } 11710 if (this[kSocket]) { 11711 util.destroy(this[kSocket].on("close", callback), err); 11712 } else { 11713 queueMicrotask(callback); 11714 } 11715 resume(this); 11716 }); 11717 } 11718 }; 11719 function onHttp2SessionError(err) { 11720 assert3(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); 11721 this[kSocket][kError] = err; 11722 onError(this[kClient], err); 11723 } 11724 function onHttp2FrameError(type, code, id) { 11725 const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); 11726 if (id === 0) { 11727 this[kSocket][kError] = err; 11728 onError(this[kClient], err); 11729 } 11730 } 11731 function onHttp2SessionEnd() { 11732 util.destroy(this, new SocketError("other side closed")); 11733 util.destroy(this[kSocket], new SocketError("other side closed")); 11734 } 11735 function onHTTP2GoAway(code) { 11736 const client = this[kClient]; 11737 const err = new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${code}`); 11738 client[kSocket] = null; 11739 client[kHTTP2Session] = null; 11740 if (client.destroyed) { 11741 assert3(this[kPending] === 0); 11742 const requests = client[kQueue].splice(client[kRunningIdx]); 11743 for (let i = 0; i < requests.length; i++) { 11744 const request = requests[i]; 11745 errorRequest(this, request, err); 11746 } 11747 } else if (client[kRunning] > 0) { 11748 const request = client[kQueue][client[kRunningIdx]]; 11749 client[kQueue][client[kRunningIdx]++] = null; 11750 errorRequest(client, request, err); 11751 } 11752 client[kPendingIdx] = client[kRunningIdx]; 11753 assert3(client[kRunning] === 0); 11754 client.emit( 11755 "disconnect", 11756 client[kUrl], 11757 [client], 11758 err 11759 ); 11760 resume(client); 11761 } 11762 var constants = require_constants4(); 11763 var createRedirectInterceptor = require_redirectInterceptor(); 11764 var EMPTY_BUF = Buffer.alloc(0); 11765 async function lazyllhttp() { 11766 const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0; 11767 let mod; 11768 try { 11769 mod = await WebAssembly.compile(require_llhttp_simd_wasm()); 11770 } catch (e) { 11771 mod = await WebAssembly.compile(llhttpWasmData || require_llhttp_wasm()); 11772 } 11773 return await WebAssembly.instantiate(mod, { 11774 env: { 11775 /* eslint-disable camelcase */ 11776 wasm_on_url: (p, at, len) => { 11777 return 0; 11778 }, 11779 wasm_on_status: (p, at, len) => { 11780 assert3.strictEqual(currentParser.ptr, p); 11781 const start = at - currentBufferPtr + currentBufferRef.byteOffset; 11782 return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; 11783 }, 11784 wasm_on_message_begin: (p) => { 11785 assert3.strictEqual(currentParser.ptr, p); 11786 return currentParser.onMessageBegin() || 0; 11787 }, 11788 wasm_on_header_field: (p, at, len) => { 11789 assert3.strictEqual(currentParser.ptr, p); 11790 const start = at - currentBufferPtr + currentBufferRef.byteOffset; 11791 return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; 11792 }, 11793 wasm_on_header_value: (p, at, len) => { 11794 assert3.strictEqual(currentParser.ptr, p); 11795 const start = at - currentBufferPtr + currentBufferRef.byteOffset; 11796 return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; 11797 }, 11798 wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { 11799 assert3.strictEqual(currentParser.ptr, p); 11800 return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; 11801 }, 11802 wasm_on_body: (p, at, len) => { 11803 assert3.strictEqual(currentParser.ptr, p); 11804 const start = at - currentBufferPtr + currentBufferRef.byteOffset; 11805 return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; 11806 }, 11807 wasm_on_message_complete: (p) => { 11808 assert3.strictEqual(currentParser.ptr, p); 11809 return currentParser.onMessageComplete() || 0; 11810 } 11811 /* eslint-enable camelcase */ 11812 } 11813 }); 11814 } 11815 var llhttpInstance = null; 11816 var llhttpPromise = lazyllhttp(); 11817 llhttpPromise.catch(); 11818 var currentParser = null; 11819 var currentBufferRef = null; 11820 var currentBufferSize = 0; 11821 var currentBufferPtr = null; 11822 var TIMEOUT_HEADERS = 1; 11823 var TIMEOUT_BODY = 2; 11824 var TIMEOUT_IDLE = 3; 11825 var Parser = class { 11826 constructor(client, socket, { exports: exports2 }) { 11827 assert3(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); 11828 this.llhttp = exports2; 11829 this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE); 11830 this.client = client; 11831 this.socket = socket; 11832 this.timeout = null; 11833 this.timeoutValue = null; 11834 this.timeoutType = null; 11835 this.statusCode = null; 11836 this.statusText = ""; 11837 this.upgrade = false; 11838 this.headers = []; 11839 this.headersSize = 0; 11840 this.headersMaxSize = client[kMaxHeadersSize]; 11841 this.shouldKeepAlive = false; 11842 this.paused = false; 11843 this.resume = this.resume.bind(this); 11844 this.bytesRead = 0; 11845 this.keepAlive = ""; 11846 this.contentLength = ""; 11847 this.connection = ""; 11848 this.maxResponseSize = client[kMaxResponseSize]; 11849 } 11850 setTimeout(value, type) { 11851 this.timeoutType = type; 11852 if (value !== this.timeoutValue) { 11853 timers.clearTimeout(this.timeout); 11854 if (value) { 11855 this.timeout = timers.setTimeout(onParserTimeout, value, this); 11856 if (this.timeout.unref) { 11857 this.timeout.unref(); 11858 } 11859 } else { 11860 this.timeout = null; 11861 } 11862 this.timeoutValue = value; 11863 } else if (this.timeout) { 11864 if (this.timeout.refresh) { 11865 this.timeout.refresh(); 11866 } 11867 } 11868 } 11869 resume() { 11870 if (this.socket.destroyed || !this.paused) { 11871 return; 11872 } 11873 assert3(this.ptr != null); 11874 assert3(currentParser == null); 11875 this.llhttp.llhttp_resume(this.ptr); 11876 assert3(this.timeoutType === TIMEOUT_BODY); 11877 if (this.timeout) { 11878 if (this.timeout.refresh) { 11879 this.timeout.refresh(); 11880 } 11881 } 11882 this.paused = false; 11883 this.execute(this.socket.read() || EMPTY_BUF); 11884 this.readMore(); 11885 } 11886 readMore() { 11887 while (!this.paused && this.ptr) { 11888 const chunk = this.socket.read(); 11889 if (chunk === null) { 11890 break; 11891 } 11892 this.execute(chunk); 11893 } 11894 } 11895 execute(data) { 11896 assert3(this.ptr != null); 11897 assert3(currentParser == null); 11898 assert3(!this.paused); 11899 const { socket, llhttp } = this; 11900 if (data.length > currentBufferSize) { 11901 if (currentBufferPtr) { 11902 llhttp.free(currentBufferPtr); 11903 } 11904 currentBufferSize = Math.ceil(data.length / 4096) * 4096; 11905 currentBufferPtr = llhttp.malloc(currentBufferSize); 11906 } 11907 new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data); 11908 try { 11909 let ret; 11910 try { 11911 currentBufferRef = data; 11912 currentParser = this; 11913 ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length); 11914 } catch (err) { 11915 throw err; 11916 } finally { 11917 currentParser = null; 11918 currentBufferRef = null; 11919 } 11920 const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr; 11921 if (ret === constants.ERROR.PAUSED_UPGRADE) { 11922 this.onUpgrade(data.slice(offset)); 11923 } else if (ret === constants.ERROR.PAUSED) { 11924 this.paused = true; 11925 socket.unshift(data.slice(offset)); 11926 } else if (ret !== constants.ERROR.OK) { 11927 const ptr = llhttp.llhttp_get_error_reason(this.ptr); 11928 let message = ""; 11929 if (ptr) { 11930 const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0); 11931 message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")"; 11932 } 11933 throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)); 11934 } 11935 } catch (err) { 11936 util.destroy(socket, err); 11937 } 11938 } 11939 destroy() { 11940 assert3(this.ptr != null); 11941 assert3(currentParser == null); 11942 this.llhttp.llhttp_free(this.ptr); 11943 this.ptr = null; 11944 timers.clearTimeout(this.timeout); 11945 this.timeout = null; 11946 this.timeoutValue = null; 11947 this.timeoutType = null; 11948 this.paused = false; 11949 } 11950 onStatus(buf) { 11951 this.statusText = buf.toString(); 11952 } 11953 onMessageBegin() { 11954 const { socket, client } = this; 11955 if (socket.destroyed) { 11956 return -1; 11957 } 11958 const request = client[kQueue][client[kRunningIdx]]; 11959 if (!request) { 11960 return -1; 11961 } 11962 request.onResponseStarted(); 11963 } 11964 onHeaderField(buf) { 11965 const len = this.headers.length; 11966 if ((len & 1) === 0) { 11967 this.headers.push(buf); 11968 } else { 11969 this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); 11970 } 11971 this.trackHeader(buf.length); 11972 } 11973 onHeaderValue(buf) { 11974 let len = this.headers.length; 11975 if ((len & 1) === 1) { 11976 this.headers.push(buf); 11977 len += 1; 11978 } else { 11979 this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); 11980 } 11981 const key = this.headers[len - 2]; 11982 if (key.length === 10) { 11983 const headerName = util.bufferToLowerCasedHeaderName(key); 11984 if (headerName === "keep-alive") { 11985 this.keepAlive += buf.toString(); 11986 } else if (headerName === "connection") { 11987 this.connection += buf.toString(); 11988 } 11989 } else if (key.length === 14 && util.bufferToLowerCasedHeaderName(key) === "content-length") { 11990 this.contentLength += buf.toString(); 11991 } 11992 this.trackHeader(buf.length); 11993 } 11994 trackHeader(len) { 11995 this.headersSize += len; 11996 if (this.headersSize >= this.headersMaxSize) { 11997 util.destroy(this.socket, new HeadersOverflowError()); 11998 } 11999 } 12000 onUpgrade(head) { 12001 const { upgrade, client, socket, headers, statusCode } = this; 12002 assert3(upgrade); 12003 const request = client[kQueue][client[kRunningIdx]]; 12004 assert3(request); 12005 assert3(!socket.destroyed); 12006 assert3(socket === client[kSocket]); 12007 assert3(!this.paused); 12008 assert3(request.upgrade || request.method === "CONNECT"); 12009 this.statusCode = null; 12010 this.statusText = ""; 12011 this.shouldKeepAlive = null; 12012 assert3(this.headers.length % 2 === 0); 12013 this.headers = []; 12014 this.headersSize = 0; 12015 socket.unshift(head); 12016 socket[kParser].destroy(); 12017 socket[kParser] = null; 12018 socket[kClient] = null; 12019 socket[kError] = null; 12020 socket.removeListener("error", onSocketError).removeListener("readable", onSocketReadable).removeListener("end", onSocketEnd).removeListener("close", onSocketClose); 12021 client[kSocket] = null; 12022 client[kQueue][client[kRunningIdx]++] = null; 12023 client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade")); 12024 try { 12025 request.onUpgrade(statusCode, headers, socket); 12026 } catch (err) { 12027 util.destroy(socket, err); 12028 } 12029 resume(client); 12030 } 12031 onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { 12032 const { client, socket, headers, statusText } = this; 12033 if (socket.destroyed) { 12034 return -1; 12035 } 12036 const request = client[kQueue][client[kRunningIdx]]; 12037 if (!request) { 12038 return -1; 12039 } 12040 assert3(!this.upgrade); 12041 assert3(this.statusCode < 200); 12042 if (statusCode === 100) { 12043 util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket))); 12044 return -1; 12045 } 12046 if (upgrade && !request.upgrade) { 12047 util.destroy(socket, new SocketError("bad upgrade", util.getSocketInfo(socket))); 12048 return -1; 12049 } 12050 assert3.strictEqual(this.timeoutType, TIMEOUT_HEADERS); 12051 this.statusCode = statusCode; 12052 this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. 12053 request.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive"; 12054 if (this.statusCode >= 200) { 12055 const bodyTimeout = request.bodyTimeout != null ? request.bodyTimeout : client[kBodyTimeout]; 12056 this.setTimeout(bodyTimeout, TIMEOUT_BODY); 12057 } else if (this.timeout) { 12058 if (this.timeout.refresh) { 12059 this.timeout.refresh(); 12060 } 12061 } 12062 if (request.method === "CONNECT") { 12063 assert3(client[kRunning] === 1); 12064 this.upgrade = true; 12065 return 2; 12066 } 12067 if (upgrade) { 12068 assert3(client[kRunning] === 1); 12069 this.upgrade = true; 12070 return 2; 12071 } 12072 assert3(this.headers.length % 2 === 0); 12073 this.headers = []; 12074 this.headersSize = 0; 12075 if (this.shouldKeepAlive && client[kPipelining]) { 12076 const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null; 12077 if (keepAliveTimeout != null) { 12078 const timeout = Math.min( 12079 keepAliveTimeout - client[kKeepAliveTimeoutThreshold], 12080 client[kKeepAliveMaxTimeout] 12081 ); 12082 if (timeout <= 0) { 12083 socket[kReset] = true; 12084 } else { 12085 client[kKeepAliveTimeoutValue] = timeout; 12086 } 12087 } else { 12088 client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]; 12089 } 12090 } else { 12091 socket[kReset] = true; 12092 } 12093 const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false; 12094 if (request.aborted) { 12095 return -1; 12096 } 12097 if (request.method === "HEAD") { 12098 return 1; 12099 } 12100 if (statusCode < 200) { 12101 return 1; 12102 } 12103 if (socket[kBlocking]) { 12104 socket[kBlocking] = false; 12105 resume(client); 12106 } 12107 return pause ? constants.ERROR.PAUSED : 0; 12108 } 12109 onBody(buf) { 12110 const { client, socket, statusCode, maxResponseSize } = this; 12111 if (socket.destroyed) { 12112 return -1; 12113 } 12114 const request = client[kQueue][client[kRunningIdx]]; 12115 assert3(request); 12116 assert3.strictEqual(this.timeoutType, TIMEOUT_BODY); 12117 if (this.timeout) { 12118 if (this.timeout.refresh) { 12119 this.timeout.refresh(); 12120 } 12121 } 12122 assert3(statusCode >= 200); 12123 if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { 12124 util.destroy(socket, new ResponseExceededMaxSizeError()); 12125 return -1; 12126 } 12127 this.bytesRead += buf.length; 12128 if (request.onData(buf) === false) { 12129 return constants.ERROR.PAUSED; 12130 } 12131 } 12132 onMessageComplete() { 12133 const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; 12134 if (socket.destroyed && (!statusCode || shouldKeepAlive)) { 12135 return -1; 12136 } 12137 if (upgrade) { 12138 return; 12139 } 12140 const request = client[kQueue][client[kRunningIdx]]; 12141 assert3(request); 12142 assert3(statusCode >= 100); 12143 this.statusCode = null; 12144 this.statusText = ""; 12145 this.bytesRead = 0; 12146 this.contentLength = ""; 12147 this.keepAlive = ""; 12148 this.connection = ""; 12149 assert3(this.headers.length % 2 === 0); 12150 this.headers = []; 12151 this.headersSize = 0; 12152 if (statusCode < 200) { 12153 return; 12154 } 12155 if (request.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) { 12156 util.destroy(socket, new ResponseContentLengthMismatchError()); 12157 return -1; 12158 } 12159 request.onComplete(headers); 12160 client[kQueue][client[kRunningIdx]++] = null; 12161 if (socket[kWriting]) { 12162 assert3.strictEqual(client[kRunning], 0); 12163 util.destroy(socket, new InformationalError("reset")); 12164 return constants.ERROR.PAUSED; 12165 } else if (!shouldKeepAlive) { 12166 util.destroy(socket, new InformationalError("reset")); 12167 return constants.ERROR.PAUSED; 12168 } else if (socket[kReset] && client[kRunning] === 0) { 12169 util.destroy(socket, new InformationalError("reset")); 12170 return constants.ERROR.PAUSED; 12171 } else if (client[kPipelining] === 1) { 12172 setImmediate(resume, client); 12173 } else { 12174 resume(client); 12175 } 12176 } 12177 }; 12178 function onParserTimeout(parser) { 12179 const { socket, timeoutType, client } = parser; 12180 if (timeoutType === TIMEOUT_HEADERS) { 12181 if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { 12182 assert3(!parser.paused, "cannot be paused while waiting for headers"); 12183 util.destroy(socket, new HeadersTimeoutError()); 12184 } 12185 } else if (timeoutType === TIMEOUT_BODY) { 12186 if (!parser.paused) { 12187 util.destroy(socket, new BodyTimeoutError()); 12188 } 12189 } else if (timeoutType === TIMEOUT_IDLE) { 12190 assert3(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); 12191 util.destroy(socket, new InformationalError("socket idle timeout")); 12192 } 12193 } 12194 function onSocketReadable() { 12195 const { [kParser]: parser } = this; 12196 if (parser) { 12197 parser.readMore(); 12198 } 12199 } 12200 function onSocketError(err) { 12201 const { [kClient]: client, [kParser]: parser } = this; 12202 assert3(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); 12203 if (client[kHTTPConnVersion] !== "h2") { 12204 if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) { 12205 parser.onMessageComplete(); 12206 return; 12207 } 12208 } 12209 this[kError] = err; 12210 onError(this[kClient], err); 12211 } 12212 function onError(client, err) { 12213 if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { 12214 assert3(client[kPendingIdx] === client[kRunningIdx]); 12215 const requests = client[kQueue].splice(client[kRunningIdx]); 12216 for (let i = 0; i < requests.length; i++) { 12217 const request = requests[i]; 12218 errorRequest(client, request, err); 12219 } 12220 assert3(client[kSize] === 0); 12221 } 12222 } 12223 function onSocketEnd() { 12224 const { [kParser]: parser, [kClient]: client } = this; 12225 if (client[kHTTPConnVersion] !== "h2") { 12226 if (parser.statusCode && !parser.shouldKeepAlive) { 12227 parser.onMessageComplete(); 12228 return; 12229 } 12230 } 12231 util.destroy(this, new SocketError("other side closed", util.getSocketInfo(this))); 12232 } 12233 function onSocketClose() { 12234 const { [kClient]: client, [kParser]: parser } = this; 12235 if (client[kHTTPConnVersion] === "h1" && parser) { 12236 if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { 12237 parser.onMessageComplete(); 12238 } 12239 this[kParser].destroy(); 12240 this[kParser] = null; 12241 } 12242 const err = this[kError] || new SocketError("closed", util.getSocketInfo(this)); 12243 client[kSocket] = null; 12244 if (client.destroyed) { 12245 assert3(client[kPending] === 0); 12246 const requests = client[kQueue].splice(client[kRunningIdx]); 12247 for (let i = 0; i < requests.length; i++) { 12248 const request = requests[i]; 12249 errorRequest(client, request, err); 12250 } 12251 } else if (client[kRunning] > 0 && err.code !== "UND_ERR_INFO") { 12252 const request = client[kQueue][client[kRunningIdx]]; 12253 client[kQueue][client[kRunningIdx]++] = null; 12254 errorRequest(client, request, err); 12255 } 12256 client[kPendingIdx] = client[kRunningIdx]; 12257 assert3(client[kRunning] === 0); 12258 client.emit("disconnect", client[kUrl], [client], err); 12259 resume(client); 12260 } 12261 async function connect(client) { 12262 assert3(!client[kConnecting]); 12263 assert3(!client[kSocket]); 12264 let { host, hostname, protocol, port } = client[kUrl]; 12265 if (hostname[0] === "[") { 12266 const idx = hostname.indexOf("]"); 12267 assert3(idx !== -1); 12268 const ip = hostname.substring(1, idx); 12269 assert3(net.isIP(ip)); 12270 hostname = ip; 12271 } 12272 client[kConnecting] = true; 12273 if (channels.beforeConnect.hasSubscribers) { 12274 channels.beforeConnect.publish({ 12275 connectParams: { 12276 host, 12277 hostname, 12278 protocol, 12279 port, 12280 version: client[kHTTPConnVersion], 12281 servername: client[kServerName], 12282 localAddress: client[kLocalAddress] 12283 }, 12284 connector: client[kConnector] 12285 }); 12286 } 12287 try { 12288 const socket = await new Promise((resolve, reject) => { 12289 client[kConnector]({ 12290 host, 12291 hostname, 12292 protocol, 12293 port, 12294 servername: client[kServerName], 12295 localAddress: client[kLocalAddress] 12296 }, (err, socket2) => { 12297 if (err) { 12298 reject(err); 12299 } else { 12300 resolve(socket2); 12301 } 12302 }); 12303 }); 12304 if (client.destroyed) { 12305 util.destroy(socket.on("error", () => { 12306 }), new ClientDestroyedError()); 12307 return; 12308 } 12309 client[kConnecting] = false; 12310 assert3(socket); 12311 const isH2 = socket.alpnProtocol === "h2"; 12312 if (isH2) { 12313 if (!h2ExperimentalWarned) { 12314 h2ExperimentalWarned = true; 12315 process.emitWarning("H2 support is experimental, expect them to change at any time.", { 12316 code: "UNDICI-H2" 12317 }); 12318 } 12319 const session = http2.connect(client[kUrl], { 12320 createConnection: () => socket, 12321 peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams 12322 }); 12323 client[kHTTPConnVersion] = "h2"; 12324 session[kClient] = client; 12325 session[kSocket] = socket; 12326 session.on("error", onHttp2SessionError); 12327 session.on("frameError", onHttp2FrameError); 12328 session.on("end", onHttp2SessionEnd); 12329 session.on("goaway", onHTTP2GoAway); 12330 session.on("close", onSocketClose); 12331 session.unref(); 12332 client[kHTTP2Session] = session; 12333 socket[kHTTP2Session] = session; 12334 } else { 12335 if (!llhttpInstance) { 12336 llhttpInstance = await llhttpPromise; 12337 llhttpPromise = null; 12338 } 12339 socket[kNoRef] = false; 12340 socket[kWriting] = false; 12341 socket[kReset] = false; 12342 socket[kBlocking] = false; 12343 socket[kParser] = new Parser(client, socket, llhttpInstance); 12344 } 12345 socket[kCounter] = 0; 12346 socket[kMaxRequests] = client[kMaxRequests]; 12347 socket[kClient] = client; 12348 socket[kError] = null; 12349 socket.on("error", onSocketError).on("readable", onSocketReadable).on("end", onSocketEnd).on("close", onSocketClose); 12350 client[kSocket] = socket; 12351 if (channels.connected.hasSubscribers) { 12352 channels.connected.publish({ 12353 connectParams: { 12354 host, 12355 hostname, 12356 protocol, 12357 port, 12358 version: client[kHTTPConnVersion], 12359 servername: client[kServerName], 12360 localAddress: client[kLocalAddress] 12361 }, 12362 connector: client[kConnector], 12363 socket 12364 }); 12365 } 12366 client.emit("connect", client[kUrl], [client]); 12367 } catch (err) { 12368 if (client.destroyed) { 12369 return; 12370 } 12371 client[kConnecting] = false; 12372 if (channels.connectError.hasSubscribers) { 12373 channels.connectError.publish({ 12374 connectParams: { 12375 host, 12376 hostname, 12377 protocol, 12378 port, 12379 version: client[kHTTPConnVersion], 12380 servername: client[kServerName], 12381 localAddress: client[kLocalAddress] 12382 }, 12383 connector: client[kConnector], 12384 error: err 12385 }); 12386 } 12387 if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") { 12388 assert3(client[kRunning] === 0); 12389 while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { 12390 const request = client[kQueue][client[kPendingIdx]++]; 12391 errorRequest(client, request, err); 12392 } 12393 } else { 12394 onError(client, err); 12395 } 12396 client.emit("connectionError", client[kUrl], [client], err); 12397 } 12398 resume(client); 12399 } 12400 function emitDrain(client) { 12401 client[kNeedDrain] = 0; 12402 client.emit("drain", client[kUrl], [client]); 12403 } 12404 function resume(client, sync) { 12405 if (client[kResuming] === 2) { 12406 return; 12407 } 12408 client[kResuming] = 2; 12409 _resume(client, sync); 12410 client[kResuming] = 0; 12411 if (client[kRunningIdx] > 256) { 12412 client[kQueue].splice(0, client[kRunningIdx]); 12413 client[kPendingIdx] -= client[kRunningIdx]; 12414 client[kRunningIdx] = 0; 12415 } 12416 } 12417 function _resume(client, sync) { 12418 while (true) { 12419 if (client.destroyed) { 12420 assert3(client[kPending] === 0); 12421 return; 12422 } 12423 if (client[kClosedResolve] && !client[kSize]) { 12424 client[kClosedResolve](); 12425 client[kClosedResolve] = null; 12426 return; 12427 } 12428 const socket = client[kSocket]; 12429 if (socket && !socket.destroyed && socket.alpnProtocol !== "h2") { 12430 if (client[kSize] === 0) { 12431 if (!socket[kNoRef] && socket.unref) { 12432 socket.unref(); 12433 socket[kNoRef] = true; 12434 } 12435 } else if (socket[kNoRef] && socket.ref) { 12436 socket.ref(); 12437 socket[kNoRef] = false; 12438 } 12439 if (client[kSize] === 0) { 12440 if (socket[kParser].timeoutType !== TIMEOUT_IDLE) { 12441 socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE); 12442 } 12443 } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { 12444 if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { 12445 const request2 = client[kQueue][client[kRunningIdx]]; 12446 const headersTimeout = request2.headersTimeout != null ? request2.headersTimeout : client[kHeadersTimeout]; 12447 socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS); 12448 } 12449 } 12450 } 12451 if (client[kBusy]) { 12452 client[kNeedDrain] = 2; 12453 } else if (client[kNeedDrain] === 2) { 12454 if (sync) { 12455 client[kNeedDrain] = 1; 12456 process.nextTick(emitDrain, client); 12457 } else { 12458 emitDrain(client); 12459 } 12460 continue; 12461 } 12462 if (client[kPending] === 0) { 12463 return; 12464 } 12465 if (client[kRunning] >= (client[kPipelining] || 1)) { 12466 return; 12467 } 12468 const request = client[kQueue][client[kPendingIdx]]; 12469 if (client[kUrl].protocol === "https:" && client[kServerName] !== request.servername) { 12470 if (client[kRunning] > 0) { 12471 return; 12472 } 12473 client[kServerName] = request.servername; 12474 if (socket && socket.servername !== request.servername) { 12475 util.destroy(socket, new InformationalError("servername changed")); 12476 return; 12477 } 12478 } 12479 if (client[kConnecting]) { 12480 return; 12481 } 12482 if (!socket && !client[kHTTP2Session]) { 12483 connect(client); 12484 return; 12485 } 12486 if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) { 12487 return; 12488 } 12489 if (client[kRunning] > 0 && !request.idempotent) { 12490 return; 12491 } 12492 if (client[kRunning] > 0 && (request.upgrade || request.method === "CONNECT")) { 12493 return; 12494 } 12495 if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 && (util.isStream(request.body) || util.isAsyncIterable(request.body))) { 12496 return; 12497 } 12498 if (!request.aborted && write(client, request)) { 12499 client[kPendingIdx]++; 12500 } else { 12501 client[kQueue].splice(client[kPendingIdx], 1); 12502 } 12503 } 12504 } 12505 function shouldSendContentLength(method) { 12506 return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; 12507 } 12508 function write(client, request) { 12509 if (client[kHTTPConnVersion] === "h2") { 12510 writeH2(client, client[kHTTP2Session], request); 12511 return; 12512 } 12513 const { body, method, path: path10, host, upgrade, headers, blocking, reset } = request; 12514 const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH"; 12515 if (body && typeof body.read === "function") { 12516 body.read(0); 12517 } 12518 const bodyLength = util.bodyLength(body); 12519 let contentLength = bodyLength; 12520 if (contentLength === null) { 12521 contentLength = request.contentLength; 12522 } 12523 if (contentLength === 0 && !expectsPayload) { 12524 contentLength = null; 12525 } 12526 if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) { 12527 if (client[kStrictContentLength]) { 12528 errorRequest(client, request, new RequestContentLengthMismatchError()); 12529 return false; 12530 } 12531 process.emitWarning(new RequestContentLengthMismatchError()); 12532 } 12533 const socket = client[kSocket]; 12534 try { 12535 request.onConnect((err) => { 12536 if (request.aborted || request.completed) { 12537 return; 12538 } 12539 errorRequest(client, request, err || new RequestAbortedError()); 12540 util.destroy(socket, new InformationalError("aborted")); 12541 }); 12542 } catch (err) { 12543 errorRequest(client, request, err); 12544 } 12545 if (request.aborted) { 12546 return false; 12547 } 12548 if (method === "HEAD") { 12549 socket[kReset] = true; 12550 } 12551 if (upgrade || method === "CONNECT") { 12552 socket[kReset] = true; 12553 } 12554 if (reset != null) { 12555 socket[kReset] = reset; 12556 } 12557 if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { 12558 socket[kReset] = true; 12559 } 12560 if (blocking) { 12561 socket[kBlocking] = true; 12562 } 12563 let header = `${method} ${path10} HTTP/1.1\r 12564`; 12565 if (typeof host === "string") { 12566 header += `host: ${host}\r 12567`; 12568 } else { 12569 header += client[kHostHeader]; 12570 } 12571 if (upgrade) { 12572 header += `connection: upgrade\r 12573upgrade: ${upgrade}\r 12574`; 12575 } else if (client[kPipelining] && !socket[kReset]) { 12576 header += "connection: keep-alive\r\n"; 12577 } else { 12578 header += "connection: close\r\n"; 12579 } 12580 if (headers) { 12581 header += headers; 12582 } 12583 if (channels.sendHeaders.hasSubscribers) { 12584 channels.sendHeaders.publish({ request, headers: header, socket }); 12585 } 12586 if (!body || bodyLength === 0) { 12587 if (contentLength === 0) { 12588 socket.write(`${header}content-length: 0\r 12589\r 12590`, "latin1"); 12591 } else { 12592 assert3(contentLength === null, "no body must not have content length"); 12593 socket.write(`${header}\r 12594`, "latin1"); 12595 } 12596 request.onRequestSent(); 12597 } else if (util.isBuffer(body)) { 12598 assert3(contentLength === body.byteLength, "buffer body must have content length"); 12599 socket.cork(); 12600 socket.write(`${header}content-length: ${contentLength}\r 12601\r 12602`, "latin1"); 12603 socket.write(body); 12604 socket.uncork(); 12605 request.onBodySent(body); 12606 request.onRequestSent(); 12607 if (!expectsPayload) { 12608 socket[kReset] = true; 12609 } 12610 } else if (util.isBlobLike(body)) { 12611 if (typeof body.stream === "function") { 12612 writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload }); 12613 } else { 12614 writeBlob({ body, client, request, socket, contentLength, header, expectsPayload }); 12615 } 12616 } else if (util.isStream(body)) { 12617 writeStream({ body, client, request, socket, contentLength, header, expectsPayload }); 12618 } else if (util.isIterable(body)) { 12619 writeIterable({ body, client, request, socket, contentLength, header, expectsPayload }); 12620 } else { 12621 assert3(false); 12622 } 12623 return true; 12624 } 12625 function writeH2(client, session, request) { 12626 const { body, method, path: path10, host, upgrade, expectContinue, signal, headers: reqHeaders } = request; 12627 let headers; 12628 if (typeof reqHeaders === "string") 12629 headers = Request[kHTTP2CopyHeaders](reqHeaders.trim()); 12630 else 12631 headers = reqHeaders; 12632 if (upgrade) { 12633 errorRequest(client, request, new Error("Upgrade not supported for H2")); 12634 return false; 12635 } 12636 if (request.aborted) { 12637 return false; 12638 } 12639 let stream; 12640 const h2State = client[kHTTP2SessionState]; 12641 headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]; 12642 headers[HTTP2_HEADER_METHOD] = method; 12643 try { 12644 request.onConnect((err) => { 12645 if (request.aborted || request.completed) { 12646 return; 12647 } 12648 err = err || new RequestAbortedError(); 12649 if (stream != null) { 12650 util.destroy(stream, err); 12651 h2State.openStreams -= 1; 12652 if (h2State.openStreams === 0) { 12653 session.unref(); 12654 } 12655 } 12656 errorRequest(client, request, err); 12657 }); 12658 } catch (err) { 12659 errorRequest(client, request, err); 12660 } 12661 if (method === "CONNECT") { 12662 session.ref(); 12663 stream = session.request(headers, { endStream: false, signal }); 12664 if (stream.id && !stream.pending) { 12665 request.onUpgrade(null, null, stream); 12666 ++h2State.openStreams; 12667 } else { 12668 stream.once("ready", () => { 12669 request.onUpgrade(null, null, stream); 12670 ++h2State.openStreams; 12671 }); 12672 } 12673 stream.once("close", () => { 12674 h2State.openStreams -= 1; 12675 if (h2State.openStreams === 0) 12676 session.unref(); 12677 }); 12678 return true; 12679 } 12680 headers[HTTP2_HEADER_PATH] = path10; 12681 headers[HTTP2_HEADER_SCHEME] = "https"; 12682 const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH"; 12683 if (body && typeof body.read === "function") { 12684 body.read(0); 12685 } 12686 let contentLength = util.bodyLength(body); 12687 if (contentLength == null) { 12688 contentLength = request.contentLength; 12689 } 12690 if (contentLength === 0 || !expectsPayload) { 12691 contentLength = null; 12692 } 12693 if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) { 12694 if (client[kStrictContentLength]) { 12695 errorRequest(client, request, new RequestContentLengthMismatchError()); 12696 return false; 12697 } 12698 process.emitWarning(new RequestContentLengthMismatchError()); 12699 } 12700 if (contentLength != null) { 12701 assert3(body, "no body must not have content length"); 12702 headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; 12703 } 12704 session.ref(); 12705 const shouldEndStream = method === "GET" || method === "HEAD" || body === null; 12706 if (expectContinue) { 12707 headers[HTTP2_HEADER_EXPECT] = "100-continue"; 12708 stream = session.request(headers, { endStream: shouldEndStream, signal }); 12709 stream.once("continue", writeBodyH2); 12710 } else { 12711 stream = session.request(headers, { 12712 endStream: shouldEndStream, 12713 signal 12714 }); 12715 writeBodyH2(); 12716 } 12717 ++h2State.openStreams; 12718 stream.once("response", (headers2) => { 12719 const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2; 12720 request.onResponseStarted(); 12721 if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), "") === false) { 12722 stream.pause(); 12723 } 12724 }); 12725 stream.once("end", () => { 12726 request.onComplete([]); 12727 }); 12728 stream.on("data", (chunk) => { 12729 if (request.onData(chunk) === false) { 12730 stream.pause(); 12731 } 12732 }); 12733 stream.once("close", () => { 12734 h2State.openStreams -= 1; 12735 if (h2State.openStreams === 0) { 12736 session.unref(); 12737 } 12738 }); 12739 stream.once("error", function(err) { 12740 if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { 12741 h2State.streams -= 1; 12742 util.destroy(stream, err); 12743 } 12744 }); 12745 stream.once("frameError", (type, code) => { 12746 const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); 12747 errorRequest(client, request, err); 12748 if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { 12749 h2State.streams -= 1; 12750 util.destroy(stream, err); 12751 } 12752 }); 12753 return true; 12754 function writeBodyH2() { 12755 if (!body) { 12756 request.onRequestSent(); 12757 } else if (util.isBuffer(body)) { 12758 assert3(contentLength === body.byteLength, "buffer body must have content length"); 12759 stream.cork(); 12760 stream.write(body); 12761 stream.uncork(); 12762 stream.end(); 12763 request.onBodySent(body); 12764 request.onRequestSent(); 12765 } else if (util.isBlobLike(body)) { 12766 if (typeof body.stream === "function") { 12767 writeIterable({ 12768 client, 12769 request, 12770 contentLength, 12771 h2stream: stream, 12772 expectsPayload, 12773 body: body.stream(), 12774 socket: client[kSocket], 12775 header: "" 12776 }); 12777 } else { 12778 writeBlob({ 12779 body, 12780 client, 12781 request, 12782 contentLength, 12783 expectsPayload, 12784 h2stream: stream, 12785 header: "", 12786 socket: client[kSocket] 12787 }); 12788 } 12789 } else if (util.isStream(body)) { 12790 writeStream({ 12791 body, 12792 client, 12793 request, 12794 contentLength, 12795 expectsPayload, 12796 socket: client[kSocket], 12797 h2stream: stream, 12798 header: "" 12799 }); 12800 } else if (util.isIterable(body)) { 12801 writeIterable({ 12802 body, 12803 client, 12804 request, 12805 contentLength, 12806 expectsPayload, 12807 header: "", 12808 h2stream: stream, 12809 socket: client[kSocket] 12810 }); 12811 } else { 12812 assert3(false); 12813 } 12814 } 12815 } 12816 function writeStream({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { 12817 assert3(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); 12818 if (client[kHTTPConnVersion] === "h2") { 12819 let onPipeData = function(chunk) { 12820 request.onBodySent(chunk); 12821 }; 12822 const pipe = pipeline( 12823 body, 12824 h2stream, 12825 (err) => { 12826 if (err) { 12827 util.destroy(body, err); 12828 util.destroy(h2stream, err); 12829 } else { 12830 request.onRequestSent(); 12831 } 12832 } 12833 ); 12834 pipe.on("data", onPipeData); 12835 pipe.once("end", () => { 12836 pipe.removeListener("data", onPipeData); 12837 util.destroy(pipe); 12838 }); 12839 return; 12840 } 12841 let finished = false; 12842 const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }); 12843 const onData = function(chunk) { 12844 if (finished) { 12845 return; 12846 } 12847 try { 12848 if (!writer.write(chunk) && this.pause) { 12849 this.pause(); 12850 } 12851 } catch (err) { 12852 util.destroy(this, err); 12853 } 12854 }; 12855 const onDrain = function() { 12856 if (finished) { 12857 return; 12858 } 12859 if (body.resume) { 12860 body.resume(); 12861 } 12862 }; 12863 const onClose = function() { 12864 queueMicrotask(() => { 12865 body.removeListener("error", onFinished); 12866 }); 12867 if (!finished) { 12868 const err = new RequestAbortedError(); 12869 queueMicrotask(() => onFinished(err)); 12870 } 12871 }; 12872 const onFinished = function(err) { 12873 if (finished) { 12874 return; 12875 } 12876 finished = true; 12877 assert3(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); 12878 socket.off("drain", onDrain).off("error", onFinished); 12879 body.removeListener("data", onData).removeListener("end", onFinished).removeListener("close", onClose); 12880 if (!err) { 12881 try { 12882 writer.end(); 12883 } catch (er) { 12884 err = er; 12885 } 12886 } 12887 writer.destroy(err); 12888 if (err && (err.code !== "UND_ERR_INFO" || err.message !== "reset")) { 12889 util.destroy(body, err); 12890 } else { 12891 util.destroy(body); 12892 } 12893 }; 12894 body.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onClose); 12895 if (body.resume) { 12896 body.resume(); 12897 } 12898 socket.on("drain", onDrain).on("error", onFinished); 12899 } 12900 async function writeBlob({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { 12901 assert3(contentLength === body.size, "blob body must have content length"); 12902 const isH2 = client[kHTTPConnVersion] === "h2"; 12903 try { 12904 if (contentLength != null && contentLength !== body.size) { 12905 throw new RequestContentLengthMismatchError(); 12906 } 12907 const buffer = Buffer.from(await body.arrayBuffer()); 12908 if (isH2) { 12909 h2stream.cork(); 12910 h2stream.write(buffer); 12911 h2stream.uncork(); 12912 } else { 12913 socket.cork(); 12914 socket.write(`${header}content-length: ${contentLength}\r 12915\r 12916`, "latin1"); 12917 socket.write(buffer); 12918 socket.uncork(); 12919 } 12920 request.onBodySent(buffer); 12921 request.onRequestSent(); 12922 if (!expectsPayload) { 12923 socket[kReset] = true; 12924 } 12925 resume(client); 12926 } catch (err) { 12927 util.destroy(isH2 ? h2stream : socket, err); 12928 } 12929 } 12930 async function writeIterable({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { 12931 assert3(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); 12932 let callback = null; 12933 function onDrain() { 12934 if (callback) { 12935 const cb = callback; 12936 callback = null; 12937 cb(); 12938 } 12939 } 12940 const waitForDrain = () => new Promise((resolve, reject) => { 12941 assert3(callback === null); 12942 if (socket[kError]) { 12943 reject(socket[kError]); 12944 } else { 12945 callback = resolve; 12946 } 12947 }); 12948 if (client[kHTTPConnVersion] === "h2") { 12949 h2stream.on("close", onDrain).on("drain", onDrain); 12950 try { 12951 for await (const chunk of body) { 12952 if (socket[kError]) { 12953 throw socket[kError]; 12954 } 12955 const res = h2stream.write(chunk); 12956 request.onBodySent(chunk); 12957 if (!res) { 12958 await waitForDrain(); 12959 } 12960 } 12961 } catch (err) { 12962 h2stream.destroy(err); 12963 } finally { 12964 request.onRequestSent(); 12965 h2stream.end(); 12966 h2stream.off("close", onDrain).off("drain", onDrain); 12967 } 12968 return; 12969 } 12970 socket.on("close", onDrain).on("drain", onDrain); 12971 const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }); 12972 try { 12973 for await (const chunk of body) { 12974 if (socket[kError]) { 12975 throw socket[kError]; 12976 } 12977 if (!writer.write(chunk)) { 12978 await waitForDrain(); 12979 } 12980 } 12981 writer.end(); 12982 } catch (err) { 12983 writer.destroy(err); 12984 } finally { 12985 socket.off("close", onDrain).off("drain", onDrain); 12986 } 12987 } 12988 var AsyncWriter = class { 12989 constructor({ socket, request, contentLength, client, expectsPayload, header }) { 12990 this.socket = socket; 12991 this.request = request; 12992 this.contentLength = contentLength; 12993 this.client = client; 12994 this.bytesWritten = 0; 12995 this.expectsPayload = expectsPayload; 12996 this.header = header; 12997 socket[kWriting] = true; 12998 } 12999 write(chunk) { 13000 const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this; 13001 if (socket[kError]) { 13002 throw socket[kError]; 13003 } 13004 if (socket.destroyed) { 13005 return false; 13006 } 13007 const len = Buffer.byteLength(chunk); 13008 if (!len) { 13009 return true; 13010 } 13011 if (contentLength !== null && bytesWritten + len > contentLength) { 13012 if (client[kStrictContentLength]) { 13013 throw new RequestContentLengthMismatchError(); 13014 } 13015 process.emitWarning(new RequestContentLengthMismatchError()); 13016 } 13017 socket.cork(); 13018 if (bytesWritten === 0) { 13019 if (!expectsPayload) { 13020 socket[kReset] = true; 13021 } 13022 if (contentLength === null) { 13023 socket.write(`${header}transfer-encoding: chunked\r 13024`, "latin1"); 13025 } else { 13026 socket.write(`${header}content-length: ${contentLength}\r 13027\r 13028`, "latin1"); 13029 } 13030 } 13031 if (contentLength === null) { 13032 socket.write(`\r 13033${len.toString(16)}\r 13034`, "latin1"); 13035 } 13036 this.bytesWritten += len; 13037 const ret = socket.write(chunk); 13038 socket.uncork(); 13039 request.onBodySent(chunk); 13040 if (!ret) { 13041 if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { 13042 if (socket[kParser].timeout.refresh) { 13043 socket[kParser].timeout.refresh(); 13044 } 13045 } 13046 } 13047 return ret; 13048 } 13049 end() { 13050 const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this; 13051 request.onRequestSent(); 13052 socket[kWriting] = false; 13053 if (socket[kError]) { 13054 throw socket[kError]; 13055 } 13056 if (socket.destroyed) { 13057 return; 13058 } 13059 if (bytesWritten === 0) { 13060 if (expectsPayload) { 13061 socket.write(`${header}content-length: 0\r 13062\r 13063`, "latin1"); 13064 } else { 13065 socket.write(`${header}\r 13066`, "latin1"); 13067 } 13068 } else if (contentLength === null) { 13069 socket.write("\r\n0\r\n\r\n", "latin1"); 13070 } 13071 if (contentLength !== null && bytesWritten !== contentLength) { 13072 if (client[kStrictContentLength]) { 13073 throw new RequestContentLengthMismatchError(); 13074 } else { 13075 process.emitWarning(new RequestContentLengthMismatchError()); 13076 } 13077 } 13078 if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { 13079 if (socket[kParser].timeout.refresh) { 13080 socket[kParser].timeout.refresh(); 13081 } 13082 } 13083 resume(client); 13084 } 13085 destroy(err) { 13086 const { socket, client } = this; 13087 socket[kWriting] = false; 13088 if (err) { 13089 assert3(client[kRunning] <= 1, "pipeline should only contain this request"); 13090 util.destroy(socket, err); 13091 } 13092 } 13093 }; 13094 function errorRequest(client, request, err) { 13095 try { 13096 request.onError(err); 13097 assert3(request.aborted); 13098 } catch (err2) { 13099 client.emit("error", err2); 13100 } 13101 } 13102 module2.exports = Client; 13103 } 13104}); 13105 13106// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/pool.js 13107var require_pool = __commonJS({ 13108 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/pool.js"(exports, module2) { 13109 "use strict"; 13110 var { 13111 PoolBase, 13112 kClients, 13113 kNeedDrain, 13114 kAddClient, 13115 kGetDispatcher 13116 } = require_pool_base(); 13117 var Client = require_client(); 13118 var { 13119 InvalidArgumentError 13120 } = require_errors(); 13121 var util = require_util(); 13122 var { kUrl, kInterceptors } = require_symbols(); 13123 var buildConnector = require_connect(); 13124 var kOptions = Symbol("options"); 13125 var kConnections = Symbol("connections"); 13126 var kFactory = Symbol("factory"); 13127 function defaultFactory(origin, opts) { 13128 return new Client(origin, opts); 13129 } 13130 var Pool = class extends PoolBase { 13131 constructor(origin, { 13132 connections, 13133 factory = defaultFactory, 13134 connect, 13135 connectTimeout, 13136 tls, 13137 maxCachedSessions, 13138 socketPath, 13139 autoSelectFamily, 13140 autoSelectFamilyAttemptTimeout, 13141 allowH2, 13142 ...options 13143 } = {}) { 13144 super(); 13145 if (connections != null && (!Number.isFinite(connections) || connections < 0)) { 13146 throw new InvalidArgumentError("invalid connections"); 13147 } 13148 if (typeof factory !== "function") { 13149 throw new InvalidArgumentError("factory must be a function."); 13150 } 13151 if (connect != null && typeof connect !== "function" && typeof connect !== "object") { 13152 throw new InvalidArgumentError("connect must be a function or an object"); 13153 } 13154 if (typeof connect !== "function") { 13155 connect = buildConnector({ 13156 ...tls, 13157 maxCachedSessions, 13158 allowH2, 13159 socketPath, 13160 timeout: connectTimeout, 13161 ...util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, 13162 ...connect 13163 }); 13164 } 13165 this[kInterceptors] = options.interceptors?.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : []; 13166 this[kConnections] = connections || null; 13167 this[kUrl] = util.parseOrigin(origin); 13168 this[kOptions] = { ...util.deepClone(options), connect, allowH2 }; 13169 this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; 13170 this[kFactory] = factory; 13171 } 13172 [kGetDispatcher]() { 13173 for (const client of this[kClients]) { 13174 if (!client[kNeedDrain]) { 13175 return client; 13176 } 13177 } 13178 if (!this[kConnections] || this[kClients].length < this[kConnections]) { 13179 const dispatcher = this[kFactory](this[kUrl], this[kOptions]); 13180 this[kAddClient](dispatcher); 13181 return dispatcher; 13182 } 13183 } 13184 }; 13185 module2.exports = Pool; 13186 } 13187}); 13188 13189// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/agent.js 13190var require_agent = __commonJS({ 13191 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/agent.js"(exports, module2) { 13192 "use strict"; 13193 var { InvalidArgumentError } = require_errors(); 13194 var { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(); 13195 var DispatcherBase = require_dispatcher_base(); 13196 var Pool = require_pool(); 13197 var Client = require_client(); 13198 var util = require_util(); 13199 var createRedirectInterceptor = require_redirectInterceptor(); 13200 var kOnConnect = Symbol("onConnect"); 13201 var kOnDisconnect = Symbol("onDisconnect"); 13202 var kOnConnectionError = Symbol("onConnectionError"); 13203 var kMaxRedirections = Symbol("maxRedirections"); 13204 var kOnDrain = Symbol("onDrain"); 13205 var kFactory = Symbol("factory"); 13206 var kOptions = Symbol("options"); 13207 function defaultFactory(origin, opts) { 13208 return opts && opts.connections === 1 ? new Client(origin, opts) : new Pool(origin, opts); 13209 } 13210 var Agent = class extends DispatcherBase { 13211 constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { 13212 super(); 13213 if (typeof factory !== "function") { 13214 throw new InvalidArgumentError("factory must be a function."); 13215 } 13216 if (connect != null && typeof connect !== "function" && typeof connect !== "object") { 13217 throw new InvalidArgumentError("connect must be a function or an object"); 13218 } 13219 if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { 13220 throw new InvalidArgumentError("maxRedirections must be a positive number"); 13221 } 13222 if (connect && typeof connect !== "function") { 13223 connect = { ...connect }; 13224 } 13225 this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })]; 13226 this[kOptions] = { ...util.deepClone(options), connect }; 13227 this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; 13228 this[kMaxRedirections] = maxRedirections; 13229 this[kFactory] = factory; 13230 this[kClients] = /* @__PURE__ */ new Map(); 13231 this[kOnDrain] = (origin, targets) => { 13232 this.emit("drain", origin, [this, ...targets]); 13233 }; 13234 this[kOnConnect] = (origin, targets) => { 13235 this.emit("connect", origin, [this, ...targets]); 13236 }; 13237 this[kOnDisconnect] = (origin, targets, err) => { 13238 this.emit("disconnect", origin, [this, ...targets], err); 13239 }; 13240 this[kOnConnectionError] = (origin, targets, err) => { 13241 this.emit("connectionError", origin, [this, ...targets], err); 13242 }; 13243 } 13244 get [kRunning]() { 13245 let ret = 0; 13246 for (const client of this[kClients].values()) { 13247 ret += client[kRunning]; 13248 } 13249 return ret; 13250 } 13251 [kDispatch](opts, handler) { 13252 let key; 13253 if (opts.origin && (typeof opts.origin === "string" || opts.origin instanceof URL)) { 13254 key = String(opts.origin); 13255 } else { 13256 throw new InvalidArgumentError("opts.origin must be a non-empty string or URL."); 13257 } 13258 let dispatcher = this[kClients].get(key); 13259 if (!dispatcher) { 13260 dispatcher = this[kFactory](opts.origin, this[kOptions]).on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); 13261 this[kClients].set(key, dispatcher); 13262 } 13263 return dispatcher.dispatch(opts, handler); 13264 } 13265 async [kClose]() { 13266 const closePromises = []; 13267 for (const client of this[kClients].values()) { 13268 closePromises.push(client.close()); 13269 } 13270 this[kClients].clear(); 13271 await Promise.all(closePromises); 13272 } 13273 async [kDestroy](err) { 13274 const destroyPromises = []; 13275 for (const client of this[kClients].values()) { 13276 destroyPromises.push(client.destroy(err)); 13277 } 13278 this[kClients].clear(); 13279 await Promise.all(destroyPromises); 13280 } 13281 }; 13282 module2.exports = Agent; 13283 } 13284}); 13285 13286// .yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/proxy-agent.js 13287var require_proxy_agent = __commonJS({ 13288 ".yarn/cache/undici-npm-6.6.2-a0bd6785a6-c8c8a43605.zip/node_modules/undici/lib/proxy-agent.js"(exports, module2) { 13289 "use strict"; 13290 var { kProxy, kClose, kDestroy, kInterceptors } = require_symbols(); 13291 var { URL: URL2 } = require("node:url"); 13292 var Agent = require_agent(); 13293 var Pool = require_pool(); 13294 var DispatcherBase = require_dispatcher_base(); 13295 var { InvalidArgumentError, RequestAbortedError } = require_errors(); 13296 var buildConnector = require_connect(); 13297 var kAgent = Symbol("proxy agent"); 13298 var kClient = Symbol("proxy client"); 13299 var kProxyHeaders = Symbol("proxy headers"); 13300 var kRequestTls = Symbol("request tls settings"); 13301 var kProxyTls = Symbol("proxy tls settings"); 13302 var kConnectEndpoint = Symbol("connect endpoint function"); 13303 function defaultProtocolPort(protocol) { 13304 return protocol === "https:" ? 443 : 80; 13305 } 13306 function buildProxyOptions(opts) { 13307 if (typeof opts === "string") { 13308 opts = { uri: opts }; 13309 } 13310 if (!opts || !opts.uri) { 13311 throw new InvalidArgumentError("Proxy opts.uri is mandatory"); 13312 } 13313 return { 13314 uri: opts.uri, 13315 protocol: opts.protocol || "https" 13316 }; 13317 } 13318 function defaultFactory(origin, opts) { 13319 return new Pool(origin, opts); 13320 } 13321 var ProxyAgent = class extends DispatcherBase { 13322 constructor(opts) { 13323 super(opts); 13324 this[kProxy] = buildProxyOptions(opts); 13325 this[kAgent] = new Agent(opts); 13326 this[kInterceptors] = opts.interceptors?.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : []; 13327 if (typeof opts === "string") { 13328 opts = { uri: opts }; 13329 } 13330 if (!opts || !opts.uri) { 13331 throw new InvalidArgumentError("Proxy opts.uri is mandatory"); 13332 } 13333 const { clientFactory = defaultFactory } = opts; 13334 if (typeof clientFactory !== "function") { 13335 throw new InvalidArgumentError("Proxy opts.clientFactory must be a function."); 13336 } 13337 this[kRequestTls] = opts.requestTls; 13338 this[kProxyTls] = opts.proxyTls; 13339 this[kProxyHeaders] = opts.headers || {}; 13340 const resolvedUrl = new URL2(opts.uri); 13341 const { origin, port, username, password } = resolvedUrl; 13342 if (opts.auth && opts.token) { 13343 throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token"); 13344 } else if (opts.auth) { 13345 this[kProxyHeaders]["proxy-authorization"] = `Basic ${opts.auth}`; 13346 } else if (opts.token) { 13347 this[kProxyHeaders]["proxy-authorization"] = opts.token; 13348 } else if (username && password) { 13349 this[kProxyHeaders]["proxy-authorization"] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`; 13350 } 13351 const connect = buildConnector({ ...opts.proxyTls }); 13352 this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }); 13353 this[kClient] = clientFactory(resolvedUrl, { connect }); 13354 this[kAgent] = new Agent({ 13355 ...opts, 13356 connect: async (opts2, callback) => { 13357 let requestedHost = opts2.host; 13358 if (!opts2.port) { 13359 requestedHost += `:${defaultProtocolPort(opts2.protocol)}`; 13360 } 13361 try { 13362 const { socket, statusCode } = await this[kClient].connect({ 13363 origin, 13364 port, 13365 path: requestedHost, 13366 signal: opts2.signal, 13367 headers: { 13368 ...this[kProxyHeaders], 13369 host: requestedHost 13370 } 13371 }); 13372 if (statusCode !== 200) { 13373 socket.on("error", () => { 13374 }).destroy(); 13375 callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)); 13376 } 13377 if (opts2.protocol !== "https:") { 13378 callback(null, socket); 13379 return; 13380 } 13381 let servername; 13382 if (this[kRequestTls]) { 13383 servername = this[kRequestTls].servername; 13384 } else { 13385 servername = opts2.servername; 13386 } 13387 this[kConnectEndpoint]({ ...opts2, servername, httpSocket: socket }, callback); 13388 } catch (err) { 13389 callback(err); 13390 } 13391 } 13392 }); 13393 } 13394 dispatch(opts, handler) { 13395 const { host } = new URL2(opts.origin); 13396 const headers = buildHeaders(opts.headers); 13397 throwIfProxyAuthIsSent(headers); 13398 return this[kAgent].dispatch( 13399 { 13400 ...opts, 13401 headers: { 13402 ...headers, 13403 host 13404 } 13405 }, 13406 handler 13407 ); 13408 } 13409 async [kClose]() { 13410 await this[kAgent].close(); 13411 await this[kClient].close(); 13412 } 13413 async [kDestroy]() { 13414 await this[kAgent].destroy(); 13415 await this[kClient].destroy(); 13416 } 13417 }; 13418 function buildHeaders(headers) { 13419 if (Array.isArray(headers)) { 13420 const headersPair = {}; 13421 for (let i = 0; i < headers.length; i += 2) { 13422 headersPair[headers[i]] = headers[i + 1]; 13423 } 13424 return headersPair; 13425 } 13426 return headers; 13427 } 13428 function throwIfProxyAuthIsSent(headers) { 13429 const existProxyAuth = headers && Object.keys(headers).find((key) => key.toLowerCase() === "proxy-authorization"); 13430 if (existProxyAuth) { 13431 throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); 13432 } 13433 } 13434 module2.exports = ProxyAgent; 13435 } 13436}); 13437 13438// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/high-level-opt.js 13439var require_high_level_opt = __commonJS({ 13440 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/high-level-opt.js"(exports, module2) { 13441 "use strict"; 13442 var argmap = /* @__PURE__ */ new Map([ 13443 ["C", "cwd"], 13444 ["f", "file"], 13445 ["z", "gzip"], 13446 ["P", "preservePaths"], 13447 ["U", "unlink"], 13448 ["strip-components", "strip"], 13449 ["stripComponents", "strip"], 13450 ["keep-newer", "newer"], 13451 ["keepNewer", "newer"], 13452 ["keep-newer-files", "newer"], 13453 ["keepNewerFiles", "newer"], 13454 ["k", "keep"], 13455 ["keep-existing", "keep"], 13456 ["keepExisting", "keep"], 13457 ["m", "noMtime"], 13458 ["no-mtime", "noMtime"], 13459 ["p", "preserveOwner"], 13460 ["L", "follow"], 13461 ["h", "follow"] 13462 ]); 13463 module2.exports = (opt) => opt ? Object.keys(opt).map((k) => [ 13464 argmap.has(k) ? argmap.get(k) : k, 13465 opt[k] 13466 ]).reduce((set, kv) => (set[kv[0]] = kv[1], set), /* @__PURE__ */ Object.create(null)) : {}; 13467 } 13468}); 13469 13470// .yarn/cache/minipass-npm-5.0.0-c64fb63c92-a91d8043f6.zip/node_modules/minipass/index.js 13471var require_minipass = __commonJS({ 13472 ".yarn/cache/minipass-npm-5.0.0-c64fb63c92-a91d8043f6.zip/node_modules/minipass/index.js"(exports) { 13473 "use strict"; 13474 var proc = typeof process === "object" && process ? process : { 13475 stdout: null, 13476 stderr: null 13477 }; 13478 var EE = require("events"); 13479 var Stream = require("stream"); 13480 var stringdecoder = require("string_decoder"); 13481 var SD = stringdecoder.StringDecoder; 13482 var EOF = Symbol("EOF"); 13483 var MAYBE_EMIT_END = Symbol("maybeEmitEnd"); 13484 var EMITTED_END = Symbol("emittedEnd"); 13485 var EMITTING_END = Symbol("emittingEnd"); 13486 var EMITTED_ERROR = Symbol("emittedError"); 13487 var CLOSED = Symbol("closed"); 13488 var READ = Symbol("read"); 13489 var FLUSH = Symbol("flush"); 13490 var FLUSHCHUNK = Symbol("flushChunk"); 13491 var ENCODING = Symbol("encoding"); 13492 var DECODER = Symbol("decoder"); 13493 var FLOWING = Symbol("flowing"); 13494 var PAUSED = Symbol("paused"); 13495 var RESUME = Symbol("resume"); 13496 var BUFFER = Symbol("buffer"); 13497 var PIPES = Symbol("pipes"); 13498 var BUFFERLENGTH = Symbol("bufferLength"); 13499 var BUFFERPUSH = Symbol("bufferPush"); 13500 var BUFFERSHIFT = Symbol("bufferShift"); 13501 var OBJECTMODE = Symbol("objectMode"); 13502 var DESTROYED = Symbol("destroyed"); 13503 var ERROR = Symbol("error"); 13504 var EMITDATA = Symbol("emitData"); 13505 var EMITEND = Symbol("emitEnd"); 13506 var EMITEND2 = Symbol("emitEnd2"); 13507 var ASYNC = Symbol("async"); 13508 var ABORT = Symbol("abort"); 13509 var ABORTED = Symbol("aborted"); 13510 var SIGNAL = Symbol("signal"); 13511 var defer = (fn2) => Promise.resolve().then(fn2); 13512 var doIter = global._MP_NO_ITERATOR_SYMBOLS_ !== "1"; 13513 var ASYNCITERATOR = doIter && Symbol.asyncIterator || Symbol("asyncIterator not implemented"); 13514 var ITERATOR = doIter && Symbol.iterator || Symbol("iterator not implemented"); 13515 var isEndish = (ev) => ev === "end" || ev === "finish" || ev === "prefinish"; 13516 var isArrayBuffer = (b) => b instanceof ArrayBuffer || typeof b === "object" && b.constructor && b.constructor.name === "ArrayBuffer" && b.byteLength >= 0; 13517 var isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b); 13518 var Pipe = class { 13519 constructor(src, dest, opts) { 13520 this.src = src; 13521 this.dest = dest; 13522 this.opts = opts; 13523 this.ondrain = () => src[RESUME](); 13524 dest.on("drain", this.ondrain); 13525 } 13526 unpipe() { 13527 this.dest.removeListener("drain", this.ondrain); 13528 } 13529 // istanbul ignore next - only here for the prototype 13530 proxyErrors() { 13531 } 13532 end() { 13533 this.unpipe(); 13534 if (this.opts.end) 13535 this.dest.end(); 13536 } 13537 }; 13538 var PipeProxyErrors = class extends Pipe { 13539 unpipe() { 13540 this.src.removeListener("error", this.proxyErrors); 13541 super.unpipe(); 13542 } 13543 constructor(src, dest, opts) { 13544 super(src, dest, opts); 13545 this.proxyErrors = (er) => dest.emit("error", er); 13546 src.on("error", this.proxyErrors); 13547 } 13548 }; 13549 var Minipass = class _Minipass extends Stream { 13550 constructor(options) { 13551 super(); 13552 this[FLOWING] = false; 13553 this[PAUSED] = false; 13554 this[PIPES] = []; 13555 this[BUFFER] = []; 13556 this[OBJECTMODE] = options && options.objectMode || false; 13557 if (this[OBJECTMODE]) 13558 this[ENCODING] = null; 13559 else 13560 this[ENCODING] = options && options.encoding || null; 13561 if (this[ENCODING] === "buffer") 13562 this[ENCODING] = null; 13563 this[ASYNC] = options && !!options.async || false; 13564 this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null; 13565 this[EOF] = false; 13566 this[EMITTED_END] = false; 13567 this[EMITTING_END] = false; 13568 this[CLOSED] = false; 13569 this[EMITTED_ERROR] = null; 13570 this.writable = true; 13571 this.readable = true; 13572 this[BUFFERLENGTH] = 0; 13573 this[DESTROYED] = false; 13574 if (options && options.debugExposeBuffer === true) { 13575 Object.defineProperty(this, "buffer", { get: () => this[BUFFER] }); 13576 } 13577 if (options && options.debugExposePipes === true) { 13578 Object.defineProperty(this, "pipes", { get: () => this[PIPES] }); 13579 } 13580 this[SIGNAL] = options && options.signal; 13581 this[ABORTED] = false; 13582 if (this[SIGNAL]) { 13583 this[SIGNAL].addEventListener("abort", () => this[ABORT]()); 13584 if (this[SIGNAL].aborted) { 13585 this[ABORT](); 13586 } 13587 } 13588 } 13589 get bufferLength() { 13590 return this[BUFFERLENGTH]; 13591 } 13592 get encoding() { 13593 return this[ENCODING]; 13594 } 13595 set encoding(enc) { 13596 if (this[OBJECTMODE]) 13597 throw new Error("cannot set encoding in objectMode"); 13598 if (this[ENCODING] && enc !== this[ENCODING] && (this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH])) 13599 throw new Error("cannot change encoding"); 13600 if (this[ENCODING] !== enc) { 13601 this[DECODER] = enc ? new SD(enc) : null; 13602 if (this[BUFFER].length) 13603 this[BUFFER] = this[BUFFER].map((chunk) => this[DECODER].write(chunk)); 13604 } 13605 this[ENCODING] = enc; 13606 } 13607 setEncoding(enc) { 13608 this.encoding = enc; 13609 } 13610 get objectMode() { 13611 return this[OBJECTMODE]; 13612 } 13613 set objectMode(om) { 13614 this[OBJECTMODE] = this[OBJECTMODE] || !!om; 13615 } 13616 get ["async"]() { 13617 return this[ASYNC]; 13618 } 13619 set ["async"](a) { 13620 this[ASYNC] = this[ASYNC] || !!a; 13621 } 13622 // drop everything and get out of the flow completely 13623 [ABORT]() { 13624 this[ABORTED] = true; 13625 this.emit("abort", this[SIGNAL].reason); 13626 this.destroy(this[SIGNAL].reason); 13627 } 13628 get aborted() { 13629 return this[ABORTED]; 13630 } 13631 set aborted(_) { 13632 } 13633 write(chunk, encoding, cb) { 13634 if (this[ABORTED]) 13635 return false; 13636 if (this[EOF]) 13637 throw new Error("write after end"); 13638 if (this[DESTROYED]) { 13639 this.emit( 13640 "error", 13641 Object.assign( 13642 new Error("Cannot call write after a stream was destroyed"), 13643 { code: "ERR_STREAM_DESTROYED" } 13644 ) 13645 ); 13646 return true; 13647 } 13648 if (typeof encoding === "function") 13649 cb = encoding, encoding = "utf8"; 13650 if (!encoding) 13651 encoding = "utf8"; 13652 const fn2 = this[ASYNC] ? defer : (f) => f(); 13653 if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) { 13654 if (isArrayBufferView(chunk)) 13655 chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength); 13656 else if (isArrayBuffer(chunk)) 13657 chunk = Buffer.from(chunk); 13658 else if (typeof chunk !== "string") 13659 this.objectMode = true; 13660 } 13661 if (this[OBJECTMODE]) { 13662 if (this.flowing && this[BUFFERLENGTH] !== 0) 13663 this[FLUSH](true); 13664 if (this.flowing) 13665 this.emit("data", chunk); 13666 else 13667 this[BUFFERPUSH](chunk); 13668 if (this[BUFFERLENGTH] !== 0) 13669 this.emit("readable"); 13670 if (cb) 13671 fn2(cb); 13672 return this.flowing; 13673 } 13674 if (!chunk.length) { 13675 if (this[BUFFERLENGTH] !== 0) 13676 this.emit("readable"); 13677 if (cb) 13678 fn2(cb); 13679 return this.flowing; 13680 } 13681 if (typeof chunk === "string" && // unless it is a string already ready for us to use 13682 !(encoding === this[ENCODING] && !this[DECODER].lastNeed)) { 13683 chunk = Buffer.from(chunk, encoding); 13684 } 13685 if (Buffer.isBuffer(chunk) && this[ENCODING]) 13686 chunk = this[DECODER].write(chunk); 13687 if (this.flowing && this[BUFFERLENGTH] !== 0) 13688 this[FLUSH](true); 13689 if (this.flowing) 13690 this.emit("data", chunk); 13691 else 13692 this[BUFFERPUSH](chunk); 13693 if (this[BUFFERLENGTH] !== 0) 13694 this.emit("readable"); 13695 if (cb) 13696 fn2(cb); 13697 return this.flowing; 13698 } 13699 read(n) { 13700 if (this[DESTROYED]) 13701 return null; 13702 if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) { 13703 this[MAYBE_EMIT_END](); 13704 return null; 13705 } 13706 if (this[OBJECTMODE]) 13707 n = null; 13708 if (this[BUFFER].length > 1 && !this[OBJECTMODE]) { 13709 if (this.encoding) 13710 this[BUFFER] = [this[BUFFER].join("")]; 13711 else 13712 this[BUFFER] = [Buffer.concat(this[BUFFER], this[BUFFERLENGTH])]; 13713 } 13714 const ret = this[READ](n || null, this[BUFFER][0]); 13715 this[MAYBE_EMIT_END](); 13716 return ret; 13717 } 13718 [READ](n, chunk) { 13719 if (n === chunk.length || n === null) 13720 this[BUFFERSHIFT](); 13721 else { 13722 this[BUFFER][0] = chunk.slice(n); 13723 chunk = chunk.slice(0, n); 13724 this[BUFFERLENGTH] -= n; 13725 } 13726 this.emit("data", chunk); 13727 if (!this[BUFFER].length && !this[EOF]) 13728 this.emit("drain"); 13729 return chunk; 13730 } 13731 end(chunk, encoding, cb) { 13732 if (typeof chunk === "function") 13733 cb = chunk, chunk = null; 13734 if (typeof encoding === "function") 13735 cb = encoding, encoding = "utf8"; 13736 if (chunk) 13737 this.write(chunk, encoding); 13738 if (cb) 13739 this.once("end", cb); 13740 this[EOF] = true; 13741 this.writable = false; 13742 if (this.flowing || !this[PAUSED]) 13743 this[MAYBE_EMIT_END](); 13744 return this; 13745 } 13746 // don't let the internal resume be overwritten 13747 [RESUME]() { 13748 if (this[DESTROYED]) 13749 return; 13750 this[PAUSED] = false; 13751 this[FLOWING] = true; 13752 this.emit("resume"); 13753 if (this[BUFFER].length) 13754 this[FLUSH](); 13755 else if (this[EOF]) 13756 this[MAYBE_EMIT_END](); 13757 else 13758 this.emit("drain"); 13759 } 13760 resume() { 13761 return this[RESUME](); 13762 } 13763 pause() { 13764 this[FLOWING] = false; 13765 this[PAUSED] = true; 13766 } 13767 get destroyed() { 13768 return this[DESTROYED]; 13769 } 13770 get flowing() { 13771 return this[FLOWING]; 13772 } 13773 get paused() { 13774 return this[PAUSED]; 13775 } 13776 [BUFFERPUSH](chunk) { 13777 if (this[OBJECTMODE]) 13778 this[BUFFERLENGTH] += 1; 13779 else 13780 this[BUFFERLENGTH] += chunk.length; 13781 this[BUFFER].push(chunk); 13782 } 13783 [BUFFERSHIFT]() { 13784 if (this[OBJECTMODE]) 13785 this[BUFFERLENGTH] -= 1; 13786 else 13787 this[BUFFERLENGTH] -= this[BUFFER][0].length; 13788 return this[BUFFER].shift(); 13789 } 13790 [FLUSH](noDrain) { 13791 do { 13792 } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) && this[BUFFER].length); 13793 if (!noDrain && !this[BUFFER].length && !this[EOF]) 13794 this.emit("drain"); 13795 } 13796 [FLUSHCHUNK](chunk) { 13797 this.emit("data", chunk); 13798 return this.flowing; 13799 } 13800 pipe(dest, opts) { 13801 if (this[DESTROYED]) 13802 return; 13803 const ended = this[EMITTED_END]; 13804 opts = opts || {}; 13805 if (dest === proc.stdout || dest === proc.stderr) 13806 opts.end = false; 13807 else 13808 opts.end = opts.end !== false; 13809 opts.proxyErrors = !!opts.proxyErrors; 13810 if (ended) { 13811 if (opts.end) 13812 dest.end(); 13813 } else { 13814 this[PIPES].push( 13815 !opts.proxyErrors ? new Pipe(this, dest, opts) : new PipeProxyErrors(this, dest, opts) 13816 ); 13817 if (this[ASYNC]) 13818 defer(() => this[RESUME]()); 13819 else 13820 this[RESUME](); 13821 } 13822 return dest; 13823 } 13824 unpipe(dest) { 13825 const p = this[PIPES].find((p2) => p2.dest === dest); 13826 if (p) { 13827 this[PIPES].splice(this[PIPES].indexOf(p), 1); 13828 p.unpipe(); 13829 } 13830 } 13831 addListener(ev, fn2) { 13832 return this.on(ev, fn2); 13833 } 13834 on(ev, fn2) { 13835 const ret = super.on(ev, fn2); 13836 if (ev === "data" && !this[PIPES].length && !this.flowing) 13837 this[RESUME](); 13838 else if (ev === "readable" && this[BUFFERLENGTH] !== 0) 13839 super.emit("readable"); 13840 else if (isEndish(ev) && this[EMITTED_END]) { 13841 super.emit(ev); 13842 this.removeAllListeners(ev); 13843 } else if (ev === "error" && this[EMITTED_ERROR]) { 13844 if (this[ASYNC]) 13845 defer(() => fn2.call(this, this[EMITTED_ERROR])); 13846 else 13847 fn2.call(this, this[EMITTED_ERROR]); 13848 } 13849 return ret; 13850 } 13851 get emittedEnd() { 13852 return this[EMITTED_END]; 13853 } 13854 [MAYBE_EMIT_END]() { 13855 if (!this[EMITTING_END] && !this[EMITTED_END] && !this[DESTROYED] && this[BUFFER].length === 0 && this[EOF]) { 13856 this[EMITTING_END] = true; 13857 this.emit("end"); 13858 this.emit("prefinish"); 13859 this.emit("finish"); 13860 if (this[CLOSED]) 13861 this.emit("close"); 13862 this[EMITTING_END] = false; 13863 } 13864 } 13865 emit(ev, data, ...extra) { 13866 if (ev !== "error" && ev !== "close" && ev !== DESTROYED && this[DESTROYED]) 13867 return; 13868 else if (ev === "data") { 13869 return !this[OBJECTMODE] && !data ? false : this[ASYNC] ? defer(() => this[EMITDATA](data)) : this[EMITDATA](data); 13870 } else if (ev === "end") { 13871 return this[EMITEND](); 13872 } else if (ev === "close") { 13873 this[CLOSED] = true; 13874 if (!this[EMITTED_END] && !this[DESTROYED]) 13875 return; 13876 const ret2 = super.emit("close"); 13877 this.removeAllListeners("close"); 13878 return ret2; 13879 } else if (ev === "error") { 13880 this[EMITTED_ERROR] = data; 13881 super.emit(ERROR, data); 13882 const ret2 = !this[SIGNAL] || this.listeners("error").length ? super.emit("error", data) : false; 13883 this[MAYBE_EMIT_END](); 13884 return ret2; 13885 } else if (ev === "resume") { 13886 const ret2 = super.emit("resume"); 13887 this[MAYBE_EMIT_END](); 13888 return ret2; 13889 } else if (ev === "finish" || ev === "prefinish") { 13890 const ret2 = super.emit(ev); 13891 this.removeAllListeners(ev); 13892 return ret2; 13893 } 13894 const ret = super.emit(ev, data, ...extra); 13895 this[MAYBE_EMIT_END](); 13896 return ret; 13897 } 13898 [EMITDATA](data) { 13899 for (const p of this[PIPES]) { 13900 if (p.dest.write(data) === false) 13901 this.pause(); 13902 } 13903 const ret = super.emit("data", data); 13904 this[MAYBE_EMIT_END](); 13905 return ret; 13906 } 13907 [EMITEND]() { 13908 if (this[EMITTED_END]) 13909 return; 13910 this[EMITTED_END] = true; 13911 this.readable = false; 13912 if (this[ASYNC]) 13913 defer(() => this[EMITEND2]()); 13914 else 13915 this[EMITEND2](); 13916 } 13917 [EMITEND2]() { 13918 if (this[DECODER]) { 13919 const data = this[DECODER].end(); 13920 if (data) { 13921 for (const p of this[PIPES]) { 13922 p.dest.write(data); 13923 } 13924 super.emit("data", data); 13925 } 13926 } 13927 for (const p of this[PIPES]) { 13928 p.end(); 13929 } 13930 const ret = super.emit("end"); 13931 this.removeAllListeners("end"); 13932 return ret; 13933 } 13934 // const all = await stream.collect() 13935 collect() { 13936 const buf = []; 13937 if (!this[OBJECTMODE]) 13938 buf.dataLength = 0; 13939 const p = this.promise(); 13940 this.on("data", (c) => { 13941 buf.push(c); 13942 if (!this[OBJECTMODE]) 13943 buf.dataLength += c.length; 13944 }); 13945 return p.then(() => buf); 13946 } 13947 // const data = await stream.concat() 13948 concat() { 13949 return this[OBJECTMODE] ? Promise.reject(new Error("cannot concat in objectMode")) : this.collect().then( 13950 (buf) => this[OBJECTMODE] ? Promise.reject(new Error("cannot concat in objectMode")) : this[ENCODING] ? buf.join("") : Buffer.concat(buf, buf.dataLength) 13951 ); 13952 } 13953 // stream.promise().then(() => done, er => emitted error) 13954 promise() { 13955 return new Promise((resolve, reject) => { 13956 this.on(DESTROYED, () => reject(new Error("stream destroyed"))); 13957 this.on("error", (er) => reject(er)); 13958 this.on("end", () => resolve()); 13959 }); 13960 } 13961 // for await (let chunk of stream) 13962 [ASYNCITERATOR]() { 13963 let stopped = false; 13964 const stop = () => { 13965 this.pause(); 13966 stopped = true; 13967 return Promise.resolve({ done: true }); 13968 }; 13969 const next = () => { 13970 if (stopped) 13971 return stop(); 13972 const res = this.read(); 13973 if (res !== null) 13974 return Promise.resolve({ done: false, value: res }); 13975 if (this[EOF]) 13976 return stop(); 13977 let resolve = null; 13978 let reject = null; 13979 const onerr = (er) => { 13980 this.removeListener("data", ondata); 13981 this.removeListener("end", onend); 13982 this.removeListener(DESTROYED, ondestroy); 13983 stop(); 13984 reject(er); 13985 }; 13986 const ondata = (value) => { 13987 this.removeListener("error", onerr); 13988 this.removeListener("end", onend); 13989 this.removeListener(DESTROYED, ondestroy); 13990 this.pause(); 13991 resolve({ value, done: !!this[EOF] }); 13992 }; 13993 const onend = () => { 13994 this.removeListener("error", onerr); 13995 this.removeListener("data", ondata); 13996 this.removeListener(DESTROYED, ondestroy); 13997 stop(); 13998 resolve({ done: true }); 13999 }; 14000 const ondestroy = () => onerr(new Error("stream destroyed")); 14001 return new Promise((res2, rej) => { 14002 reject = rej; 14003 resolve = res2; 14004 this.once(DESTROYED, ondestroy); 14005 this.once("error", onerr); 14006 this.once("end", onend); 14007 this.once("data", ondata); 14008 }); 14009 }; 14010 return { 14011 next, 14012 throw: stop, 14013 return: stop, 14014 [ASYNCITERATOR]() { 14015 return this; 14016 } 14017 }; 14018 } 14019 // for (let chunk of stream) 14020 [ITERATOR]() { 14021 let stopped = false; 14022 const stop = () => { 14023 this.pause(); 14024 this.removeListener(ERROR, stop); 14025 this.removeListener(DESTROYED, stop); 14026 this.removeListener("end", stop); 14027 stopped = true; 14028 return { done: true }; 14029 }; 14030 const next = () => { 14031 if (stopped) 14032 return stop(); 14033 const value = this.read(); 14034 return value === null ? stop() : { value }; 14035 }; 14036 this.once("end", stop); 14037 this.once(ERROR, stop); 14038 this.once(DESTROYED, stop); 14039 return { 14040 next, 14041 throw: stop, 14042 return: stop, 14043 [ITERATOR]() { 14044 return this; 14045 } 14046 }; 14047 } 14048 destroy(er) { 14049 if (this[DESTROYED]) { 14050 if (er) 14051 this.emit("error", er); 14052 else 14053 this.emit(DESTROYED); 14054 return this; 14055 } 14056 this[DESTROYED] = true; 14057 this[BUFFER].length = 0; 14058 this[BUFFERLENGTH] = 0; 14059 if (typeof this.close === "function" && !this[CLOSED]) 14060 this.close(); 14061 if (er) 14062 this.emit("error", er); 14063 else 14064 this.emit(DESTROYED); 14065 return this; 14066 } 14067 static isStream(s) { 14068 return !!s && (s instanceof _Minipass || s instanceof Stream || s instanceof EE && // readable 14069 (typeof s.pipe === "function" || // writable 14070 typeof s.write === "function" && typeof s.end === "function")); 14071 } 14072 }; 14073 exports.Minipass = Minipass; 14074 } 14075}); 14076 14077// .yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-64fae024e1.zip/node_modules/minizlib/constants.js 14078var require_constants5 = __commonJS({ 14079 ".yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-64fae024e1.zip/node_modules/minizlib/constants.js"(exports, module2) { 14080 var realZlibConstants = require("zlib").constants || /* istanbul ignore next */ 14081 { ZLIB_VERNUM: 4736 }; 14082 module2.exports = Object.freeze(Object.assign(/* @__PURE__ */ Object.create(null), { 14083 Z_NO_FLUSH: 0, 14084 Z_PARTIAL_FLUSH: 1, 14085 Z_SYNC_FLUSH: 2, 14086 Z_FULL_FLUSH: 3, 14087 Z_FINISH: 4, 14088 Z_BLOCK: 5, 14089 Z_OK: 0, 14090 Z_STREAM_END: 1, 14091 Z_NEED_DICT: 2, 14092 Z_ERRNO: -1, 14093 Z_STREAM_ERROR: -2, 14094 Z_DATA_ERROR: -3, 14095 Z_MEM_ERROR: -4, 14096 Z_BUF_ERROR: -5, 14097 Z_VERSION_ERROR: -6, 14098 Z_NO_COMPRESSION: 0, 14099 Z_BEST_SPEED: 1, 14100 Z_BEST_COMPRESSION: 9, 14101 Z_DEFAULT_COMPRESSION: -1, 14102 Z_FILTERED: 1, 14103 Z_HUFFMAN_ONLY: 2, 14104 Z_RLE: 3, 14105 Z_FIXED: 4, 14106 Z_DEFAULT_STRATEGY: 0, 14107 DEFLATE: 1, 14108 INFLATE: 2, 14109 GZIP: 3, 14110 GUNZIP: 4, 14111 DEFLATERAW: 5, 14112 INFLATERAW: 6, 14113 UNZIP: 7, 14114 BROTLI_DECODE: 8, 14115 BROTLI_ENCODE: 9, 14116 Z_MIN_WINDOWBITS: 8, 14117 Z_MAX_WINDOWBITS: 15, 14118 Z_DEFAULT_WINDOWBITS: 15, 14119 Z_MIN_CHUNK: 64, 14120 Z_MAX_CHUNK: Infinity, 14121 Z_DEFAULT_CHUNK: 16384, 14122 Z_MIN_MEMLEVEL: 1, 14123 Z_MAX_MEMLEVEL: 9, 14124 Z_DEFAULT_MEMLEVEL: 8, 14125 Z_MIN_LEVEL: -1, 14126 Z_MAX_LEVEL: 9, 14127 Z_DEFAULT_LEVEL: -1, 14128 BROTLI_OPERATION_PROCESS: 0, 14129 BROTLI_OPERATION_FLUSH: 1, 14130 BROTLI_OPERATION_FINISH: 2, 14131 BROTLI_OPERATION_EMIT_METADATA: 3, 14132 BROTLI_MODE_GENERIC: 0, 14133 BROTLI_MODE_TEXT: 1, 14134 BROTLI_MODE_FONT: 2, 14135 BROTLI_DEFAULT_MODE: 0, 14136 BROTLI_MIN_QUALITY: 0, 14137 BROTLI_MAX_QUALITY: 11, 14138 BROTLI_DEFAULT_QUALITY: 11, 14139 BROTLI_MIN_WINDOW_BITS: 10, 14140 BROTLI_MAX_WINDOW_BITS: 24, 14141 BROTLI_LARGE_MAX_WINDOW_BITS: 30, 14142 BROTLI_DEFAULT_WINDOW: 22, 14143 BROTLI_MIN_INPUT_BLOCK_BITS: 16, 14144 BROTLI_MAX_INPUT_BLOCK_BITS: 24, 14145 BROTLI_PARAM_MODE: 0, 14146 BROTLI_PARAM_QUALITY: 1, 14147 BROTLI_PARAM_LGWIN: 2, 14148 BROTLI_PARAM_LGBLOCK: 3, 14149 BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4, 14150 BROTLI_PARAM_SIZE_HINT: 5, 14151 BROTLI_PARAM_LARGE_WINDOW: 6, 14152 BROTLI_PARAM_NPOSTFIX: 7, 14153 BROTLI_PARAM_NDIRECT: 8, 14154 BROTLI_DECODER_RESULT_ERROR: 0, 14155 BROTLI_DECODER_RESULT_SUCCESS: 1, 14156 BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2, 14157 BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3, 14158 BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0, 14159 BROTLI_DECODER_PARAM_LARGE_WINDOW: 1, 14160 BROTLI_DECODER_NO_ERROR: 0, 14161 BROTLI_DECODER_SUCCESS: 1, 14162 BROTLI_DECODER_NEEDS_MORE_INPUT: 2, 14163 BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3, 14164 BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1, 14165 BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2, 14166 BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3, 14167 BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4, 14168 BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5, 14169 BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6, 14170 BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7, 14171 BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8, 14172 BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9, 14173 BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10, 14174 BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11, 14175 BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12, 14176 BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13, 14177 BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14, 14178 BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15, 14179 BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16, 14180 BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19, 14181 BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20, 14182 BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21, 14183 BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22, 14184 BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25, 14185 BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26, 14186 BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27, 14187 BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30, 14188 BROTLI_DECODER_ERROR_UNREACHABLE: -31 14189 }, realZlibConstants)); 14190 } 14191}); 14192 14193// .yarn/cache/minipass-npm-3.3.6-b8d93a945b-a114746943.zip/node_modules/minipass/index.js 14194var require_minipass2 = __commonJS({ 14195 ".yarn/cache/minipass-npm-3.3.6-b8d93a945b-a114746943.zip/node_modules/minipass/index.js"(exports, module2) { 14196 "use strict"; 14197 var proc = typeof process === "object" && process ? process : { 14198 stdout: null, 14199 stderr: null 14200 }; 14201 var EE = require("events"); 14202 var Stream = require("stream"); 14203 var SD = require("string_decoder").StringDecoder; 14204 var EOF = Symbol("EOF"); 14205 var MAYBE_EMIT_END = Symbol("maybeEmitEnd"); 14206 var EMITTED_END = Symbol("emittedEnd"); 14207 var EMITTING_END = Symbol("emittingEnd"); 14208 var EMITTED_ERROR = Symbol("emittedError"); 14209 var CLOSED = Symbol("closed"); 14210 var READ = Symbol("read"); 14211 var FLUSH = Symbol("flush"); 14212 var FLUSHCHUNK = Symbol("flushChunk"); 14213 var ENCODING = Symbol("encoding"); 14214 var DECODER = Symbol("decoder"); 14215 var FLOWING = Symbol("flowing"); 14216 var PAUSED = Symbol("paused"); 14217 var RESUME = Symbol("resume"); 14218 var BUFFERLENGTH = Symbol("bufferLength"); 14219 var BUFFERPUSH = Symbol("bufferPush"); 14220 var BUFFERSHIFT = Symbol("bufferShift"); 14221 var OBJECTMODE = Symbol("objectMode"); 14222 var DESTROYED = Symbol("destroyed"); 14223 var EMITDATA = Symbol("emitData"); 14224 var EMITEND = Symbol("emitEnd"); 14225 var EMITEND2 = Symbol("emitEnd2"); 14226 var ASYNC = Symbol("async"); 14227 var defer = (fn2) => Promise.resolve().then(fn2); 14228 var doIter = global._MP_NO_ITERATOR_SYMBOLS_ !== "1"; 14229 var ASYNCITERATOR = doIter && Symbol.asyncIterator || Symbol("asyncIterator not implemented"); 14230 var ITERATOR = doIter && Symbol.iterator || Symbol("iterator not implemented"); 14231 var isEndish = (ev) => ev === "end" || ev === "finish" || ev === "prefinish"; 14232 var isArrayBuffer = (b) => b instanceof ArrayBuffer || typeof b === "object" && b.constructor && b.constructor.name === "ArrayBuffer" && b.byteLength >= 0; 14233 var isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b); 14234 var Pipe = class { 14235 constructor(src, dest, opts) { 14236 this.src = src; 14237 this.dest = dest; 14238 this.opts = opts; 14239 this.ondrain = () => src[RESUME](); 14240 dest.on("drain", this.ondrain); 14241 } 14242 unpipe() { 14243 this.dest.removeListener("drain", this.ondrain); 14244 } 14245 // istanbul ignore next - only here for the prototype 14246 proxyErrors() { 14247 } 14248 end() { 14249 this.unpipe(); 14250 if (this.opts.end) 14251 this.dest.end(); 14252 } 14253 }; 14254 var PipeProxyErrors = class extends Pipe { 14255 unpipe() { 14256 this.src.removeListener("error", this.proxyErrors); 14257 super.unpipe(); 14258 } 14259 constructor(src, dest, opts) { 14260 super(src, dest, opts); 14261 this.proxyErrors = (er) => dest.emit("error", er); 14262 src.on("error", this.proxyErrors); 14263 } 14264 }; 14265 module2.exports = class Minipass extends Stream { 14266 constructor(options) { 14267 super(); 14268 this[FLOWING] = false; 14269 this[PAUSED] = false; 14270 this.pipes = []; 14271 this.buffer = []; 14272 this[OBJECTMODE] = options && options.objectMode || false; 14273 if (this[OBJECTMODE]) 14274 this[ENCODING] = null; 14275 else 14276 this[ENCODING] = options && options.encoding || null; 14277 if (this[ENCODING] === "buffer") 14278 this[ENCODING] = null; 14279 this[ASYNC] = options && !!options.async || false; 14280 this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null; 14281 this[EOF] = false; 14282 this[EMITTED_END] = false; 14283 this[EMITTING_END] = false; 14284 this[CLOSED] = false; 14285 this[EMITTED_ERROR] = null; 14286 this.writable = true; 14287 this.readable = true; 14288 this[BUFFERLENGTH] = 0; 14289 this[DESTROYED] = false; 14290 } 14291 get bufferLength() { 14292 return this[BUFFERLENGTH]; 14293 } 14294 get encoding() { 14295 return this[ENCODING]; 14296 } 14297 set encoding(enc) { 14298 if (this[OBJECTMODE]) 14299 throw new Error("cannot set encoding in objectMode"); 14300 if (this[ENCODING] && enc !== this[ENCODING] && (this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH])) 14301 throw new Error("cannot change encoding"); 14302 if (this[ENCODING] !== enc) { 14303 this[DECODER] = enc ? new SD(enc) : null; 14304 if (this.buffer.length) 14305 this.buffer = this.buffer.map((chunk) => this[DECODER].write(chunk)); 14306 } 14307 this[ENCODING] = enc; 14308 } 14309 setEncoding(enc) { 14310 this.encoding = enc; 14311 } 14312 get objectMode() { 14313 return this[OBJECTMODE]; 14314 } 14315 set objectMode(om) { 14316 this[OBJECTMODE] = this[OBJECTMODE] || !!om; 14317 } 14318 get ["async"]() { 14319 return this[ASYNC]; 14320 } 14321 set ["async"](a) { 14322 this[ASYNC] = this[ASYNC] || !!a; 14323 } 14324 write(chunk, encoding, cb) { 14325 if (this[EOF]) 14326 throw new Error("write after end"); 14327 if (this[DESTROYED]) { 14328 this.emit("error", Object.assign( 14329 new Error("Cannot call write after a stream was destroyed"), 14330 { code: "ERR_STREAM_DESTROYED" } 14331 )); 14332 return true; 14333 } 14334 if (typeof encoding === "function") 14335 cb = encoding, encoding = "utf8"; 14336 if (!encoding) 14337 encoding = "utf8"; 14338 const fn2 = this[ASYNC] ? defer : (f) => f(); 14339 if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) { 14340 if (isArrayBufferView(chunk)) 14341 chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength); 14342 else if (isArrayBuffer(chunk)) 14343 chunk = Buffer.from(chunk); 14344 else if (typeof chunk !== "string") 14345 this.objectMode = true; 14346 } 14347 if (this[OBJECTMODE]) { 14348 if (this.flowing && this[BUFFERLENGTH] !== 0) 14349 this[FLUSH](true); 14350 if (this.flowing) 14351 this.emit("data", chunk); 14352 else 14353 this[BUFFERPUSH](chunk); 14354 if (this[BUFFERLENGTH] !== 0) 14355 this.emit("readable"); 14356 if (cb) 14357 fn2(cb); 14358 return this.flowing; 14359 } 14360 if (!chunk.length) { 14361 if (this[BUFFERLENGTH] !== 0) 14362 this.emit("readable"); 14363 if (cb) 14364 fn2(cb); 14365 return this.flowing; 14366 } 14367 if (typeof chunk === "string" && // unless it is a string already ready for us to use 14368 !(encoding === this[ENCODING] && !this[DECODER].lastNeed)) { 14369 chunk = Buffer.from(chunk, encoding); 14370 } 14371 if (Buffer.isBuffer(chunk) && this[ENCODING]) 14372 chunk = this[DECODER].write(chunk); 14373 if (this.flowing && this[BUFFERLENGTH] !== 0) 14374 this[FLUSH](true); 14375 if (this.flowing) 14376 this.emit("data", chunk); 14377 else 14378 this[BUFFERPUSH](chunk); 14379 if (this[BUFFERLENGTH] !== 0) 14380 this.emit("readable"); 14381 if (cb) 14382 fn2(cb); 14383 return this.flowing; 14384 } 14385 read(n) { 14386 if (this[DESTROYED]) 14387 return null; 14388 if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) { 14389 this[MAYBE_EMIT_END](); 14390 return null; 14391 } 14392 if (this[OBJECTMODE]) 14393 n = null; 14394 if (this.buffer.length > 1 && !this[OBJECTMODE]) { 14395 if (this.encoding) 14396 this.buffer = [this.buffer.join("")]; 14397 else 14398 this.buffer = [Buffer.concat(this.buffer, this[BUFFERLENGTH])]; 14399 } 14400 const ret = this[READ](n || null, this.buffer[0]); 14401 this[MAYBE_EMIT_END](); 14402 return ret; 14403 } 14404 [READ](n, chunk) { 14405 if (n === chunk.length || n === null) 14406 this[BUFFERSHIFT](); 14407 else { 14408 this.buffer[0] = chunk.slice(n); 14409 chunk = chunk.slice(0, n); 14410 this[BUFFERLENGTH] -= n; 14411 } 14412 this.emit("data", chunk); 14413 if (!this.buffer.length && !this[EOF]) 14414 this.emit("drain"); 14415 return chunk; 14416 } 14417 end(chunk, encoding, cb) { 14418 if (typeof chunk === "function") 14419 cb = chunk, chunk = null; 14420 if (typeof encoding === "function") 14421 cb = encoding, encoding = "utf8"; 14422 if (chunk) 14423 this.write(chunk, encoding); 14424 if (cb) 14425 this.once("end", cb); 14426 this[EOF] = true; 14427 this.writable = false; 14428 if (this.flowing || !this[PAUSED]) 14429 this[MAYBE_EMIT_END](); 14430 return this; 14431 } 14432 // don't let the internal resume be overwritten 14433 [RESUME]() { 14434 if (this[DESTROYED]) 14435 return; 14436 this[PAUSED] = false; 14437 this[FLOWING] = true; 14438 this.emit("resume"); 14439 if (this.buffer.length) 14440 this[FLUSH](); 14441 else if (this[EOF]) 14442 this[MAYBE_EMIT_END](); 14443 else 14444 this.emit("drain"); 14445 } 14446 resume() { 14447 return this[RESUME](); 14448 } 14449 pause() { 14450 this[FLOWING] = false; 14451 this[PAUSED] = true; 14452 } 14453 get destroyed() { 14454 return this[DESTROYED]; 14455 } 14456 get flowing() { 14457 return this[FLOWING]; 14458 } 14459 get paused() { 14460 return this[PAUSED]; 14461 } 14462 [BUFFERPUSH](chunk) { 14463 if (this[OBJECTMODE]) 14464 this[BUFFERLENGTH] += 1; 14465 else 14466 this[BUFFERLENGTH] += chunk.length; 14467 this.buffer.push(chunk); 14468 } 14469 [BUFFERSHIFT]() { 14470 if (this.buffer.length) { 14471 if (this[OBJECTMODE]) 14472 this[BUFFERLENGTH] -= 1; 14473 else 14474 this[BUFFERLENGTH] -= this.buffer[0].length; 14475 } 14476 return this.buffer.shift(); 14477 } 14478 [FLUSH](noDrain) { 14479 do { 14480 } while (this[FLUSHCHUNK](this[BUFFERSHIFT]())); 14481 if (!noDrain && !this.buffer.length && !this[EOF]) 14482 this.emit("drain"); 14483 } 14484 [FLUSHCHUNK](chunk) { 14485 return chunk ? (this.emit("data", chunk), this.flowing) : false; 14486 } 14487 pipe(dest, opts) { 14488 if (this[DESTROYED]) 14489 return; 14490 const ended = this[EMITTED_END]; 14491 opts = opts || {}; 14492 if (dest === proc.stdout || dest === proc.stderr) 14493 opts.end = false; 14494 else 14495 opts.end = opts.end !== false; 14496 opts.proxyErrors = !!opts.proxyErrors; 14497 if (ended) { 14498 if (opts.end) 14499 dest.end(); 14500 } else { 14501 this.pipes.push(!opts.proxyErrors ? new Pipe(this, dest, opts) : new PipeProxyErrors(this, dest, opts)); 14502 if (this[ASYNC]) 14503 defer(() => this[RESUME]()); 14504 else 14505 this[RESUME](); 14506 } 14507 return dest; 14508 } 14509 unpipe(dest) { 14510 const p = this.pipes.find((p2) => p2.dest === dest); 14511 if (p) { 14512 this.pipes.splice(this.pipes.indexOf(p), 1); 14513 p.unpipe(); 14514 } 14515 } 14516 addListener(ev, fn2) { 14517 return this.on(ev, fn2); 14518 } 14519 on(ev, fn2) { 14520 const ret = super.on(ev, fn2); 14521 if (ev === "data" && !this.pipes.length && !this.flowing) 14522 this[RESUME](); 14523 else if (ev === "readable" && this[BUFFERLENGTH] !== 0) 14524 super.emit("readable"); 14525 else if (isEndish(ev) && this[EMITTED_END]) { 14526 super.emit(ev); 14527 this.removeAllListeners(ev); 14528 } else if (ev === "error" && this[EMITTED_ERROR]) { 14529 if (this[ASYNC]) 14530 defer(() => fn2.call(this, this[EMITTED_ERROR])); 14531 else 14532 fn2.call(this, this[EMITTED_ERROR]); 14533 } 14534 return ret; 14535 } 14536 get emittedEnd() { 14537 return this[EMITTED_END]; 14538 } 14539 [MAYBE_EMIT_END]() { 14540 if (!this[EMITTING_END] && !this[EMITTED_END] && !this[DESTROYED] && this.buffer.length === 0 && this[EOF]) { 14541 this[EMITTING_END] = true; 14542 this.emit("end"); 14543 this.emit("prefinish"); 14544 this.emit("finish"); 14545 if (this[CLOSED]) 14546 this.emit("close"); 14547 this[EMITTING_END] = false; 14548 } 14549 } 14550 emit(ev, data, ...extra) { 14551 if (ev !== "error" && ev !== "close" && ev !== DESTROYED && this[DESTROYED]) 14552 return; 14553 else if (ev === "data") { 14554 return !data ? false : this[ASYNC] ? defer(() => this[EMITDATA](data)) : this[EMITDATA](data); 14555 } else if (ev === "end") { 14556 return this[EMITEND](); 14557 } else if (ev === "close") { 14558 this[CLOSED] = true; 14559 if (!this[EMITTED_END] && !this[DESTROYED]) 14560 return; 14561 const ret2 = super.emit("close"); 14562 this.removeAllListeners("close"); 14563 return ret2; 14564 } else if (ev === "error") { 14565 this[EMITTED_ERROR] = data; 14566 const ret2 = super.emit("error", data); 14567 this[MAYBE_EMIT_END](); 14568 return ret2; 14569 } else if (ev === "resume") { 14570 const ret2 = super.emit("resume"); 14571 this[MAYBE_EMIT_END](); 14572 return ret2; 14573 } else if (ev === "finish" || ev === "prefinish") { 14574 const ret2 = super.emit(ev); 14575 this.removeAllListeners(ev); 14576 return ret2; 14577 } 14578 const ret = super.emit(ev, data, ...extra); 14579 this[MAYBE_EMIT_END](); 14580 return ret; 14581 } 14582 [EMITDATA](data) { 14583 for (const p of this.pipes) { 14584 if (p.dest.write(data) === false) 14585 this.pause(); 14586 } 14587 const ret = super.emit("data", data); 14588 this[MAYBE_EMIT_END](); 14589 return ret; 14590 } 14591 [EMITEND]() { 14592 if (this[EMITTED_END]) 14593 return; 14594 this[EMITTED_END] = true; 14595 this.readable = false; 14596 if (this[ASYNC]) 14597 defer(() => this[EMITEND2]()); 14598 else 14599 this[EMITEND2](); 14600 } 14601 [EMITEND2]() { 14602 if (this[DECODER]) { 14603 const data = this[DECODER].end(); 14604 if (data) { 14605 for (const p of this.pipes) { 14606 p.dest.write(data); 14607 } 14608 super.emit("data", data); 14609 } 14610 } 14611 for (const p of this.pipes) { 14612 p.end(); 14613 } 14614 const ret = super.emit("end"); 14615 this.removeAllListeners("end"); 14616 return ret; 14617 } 14618 // const all = await stream.collect() 14619 collect() { 14620 const buf = []; 14621 if (!this[OBJECTMODE]) 14622 buf.dataLength = 0; 14623 const p = this.promise(); 14624 this.on("data", (c) => { 14625 buf.push(c); 14626 if (!this[OBJECTMODE]) 14627 buf.dataLength += c.length; 14628 }); 14629 return p.then(() => buf); 14630 } 14631 // const data = await stream.concat() 14632 concat() { 14633 return this[OBJECTMODE] ? Promise.reject(new Error("cannot concat in objectMode")) : this.collect().then((buf) => this[OBJECTMODE] ? Promise.reject(new Error("cannot concat in objectMode")) : this[ENCODING] ? buf.join("") : Buffer.concat(buf, buf.dataLength)); 14634 } 14635 // stream.promise().then(() => done, er => emitted error) 14636 promise() { 14637 return new Promise((resolve, reject) => { 14638 this.on(DESTROYED, () => reject(new Error("stream destroyed"))); 14639 this.on("error", (er) => reject(er)); 14640 this.on("end", () => resolve()); 14641 }); 14642 } 14643 // for await (let chunk of stream) 14644 [ASYNCITERATOR]() { 14645 const next = () => { 14646 const res = this.read(); 14647 if (res !== null) 14648 return Promise.resolve({ done: false, value: res }); 14649 if (this[EOF]) 14650 return Promise.resolve({ done: true }); 14651 let resolve = null; 14652 let reject = null; 14653 const onerr = (er) => { 14654 this.removeListener("data", ondata); 14655 this.removeListener("end", onend); 14656 reject(er); 14657 }; 14658 const ondata = (value) => { 14659 this.removeListener("error", onerr); 14660 this.removeListener("end", onend); 14661 this.pause(); 14662 resolve({ value, done: !!this[EOF] }); 14663 }; 14664 const onend = () => { 14665 this.removeListener("error", onerr); 14666 this.removeListener("data", ondata); 14667 resolve({ done: true }); 14668 }; 14669 const ondestroy = () => onerr(new Error("stream destroyed")); 14670 return new Promise((res2, rej) => { 14671 reject = rej; 14672 resolve = res2; 14673 this.once(DESTROYED, ondestroy); 14674 this.once("error", onerr); 14675 this.once("end", onend); 14676 this.once("data", ondata); 14677 }); 14678 }; 14679 return { next }; 14680 } 14681 // for (let chunk of stream) 14682 [ITERATOR]() { 14683 const next = () => { 14684 const value = this.read(); 14685 const done = value === null; 14686 return { value, done }; 14687 }; 14688 return { next }; 14689 } 14690 destroy(er) { 14691 if (this[DESTROYED]) { 14692 if (er) 14693 this.emit("error", er); 14694 else 14695 this.emit(DESTROYED); 14696 return this; 14697 } 14698 this[DESTROYED] = true; 14699 this.buffer.length = 0; 14700 this[BUFFERLENGTH] = 0; 14701 if (typeof this.close === "function" && !this[CLOSED]) 14702 this.close(); 14703 if (er) 14704 this.emit("error", er); 14705 else 14706 this.emit(DESTROYED); 14707 return this; 14708 } 14709 static isStream(s) { 14710 return !!s && (s instanceof Minipass || s instanceof Stream || s instanceof EE && (typeof s.pipe === "function" || // readable 14711 typeof s.write === "function" && typeof s.end === "function")); 14712 } 14713 }; 14714 } 14715}); 14716 14717// .yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-64fae024e1.zip/node_modules/minizlib/index.js 14718var require_minizlib = __commonJS({ 14719 ".yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-64fae024e1.zip/node_modules/minizlib/index.js"(exports) { 14720 "use strict"; 14721 var assert3 = require("assert"); 14722 var Buffer2 = require("buffer").Buffer; 14723 var realZlib = require("zlib"); 14724 var constants = exports.constants = require_constants5(); 14725 var Minipass = require_minipass2(); 14726 var OriginalBufferConcat = Buffer2.concat; 14727 var _superWrite = Symbol("_superWrite"); 14728 var ZlibError = class extends Error { 14729 constructor(err) { 14730 super("zlib: " + err.message); 14731 this.code = err.code; 14732 this.errno = err.errno; 14733 if (!this.code) 14734 this.code = "ZLIB_ERROR"; 14735 this.message = "zlib: " + err.message; 14736 Error.captureStackTrace(this, this.constructor); 14737 } 14738 get name() { 14739 return "ZlibError"; 14740 } 14741 }; 14742 var _opts = Symbol("opts"); 14743 var _flushFlag = Symbol("flushFlag"); 14744 var _finishFlushFlag = Symbol("finishFlushFlag"); 14745 var _fullFlushFlag = Symbol("fullFlushFlag"); 14746 var _handle = Symbol("handle"); 14747 var _onError = Symbol("onError"); 14748 var _sawError = Symbol("sawError"); 14749 var _level = Symbol("level"); 14750 var _strategy = Symbol("strategy"); 14751 var _ended = Symbol("ended"); 14752 var _defaultFullFlush = Symbol("_defaultFullFlush"); 14753 var ZlibBase = class extends Minipass { 14754 constructor(opts, mode) { 14755 if (!opts || typeof opts !== "object") 14756 throw new TypeError("invalid options for ZlibBase constructor"); 14757 super(opts); 14758 this[_sawError] = false; 14759 this[_ended] = false; 14760 this[_opts] = opts; 14761 this[_flushFlag] = opts.flush; 14762 this[_finishFlushFlag] = opts.finishFlush; 14763 try { 14764 this[_handle] = new realZlib[mode](opts); 14765 } catch (er) { 14766 throw new ZlibError(er); 14767 } 14768 this[_onError] = (err) => { 14769 if (this[_sawError]) 14770 return; 14771 this[_sawError] = true; 14772 this.close(); 14773 this.emit("error", err); 14774 }; 14775 this[_handle].on("error", (er) => this[_onError](new ZlibError(er))); 14776 this.once("end", () => this.close); 14777 } 14778 close() { 14779 if (this[_handle]) { 14780 this[_handle].close(); 14781 this[_handle] = null; 14782 this.emit("close"); 14783 } 14784 } 14785 reset() { 14786 if (!this[_sawError]) { 14787 assert3(this[_handle], "zlib binding closed"); 14788 return this[_handle].reset(); 14789 } 14790 } 14791 flush(flushFlag) { 14792 if (this.ended) 14793 return; 14794 if (typeof flushFlag !== "number") 14795 flushFlag = this[_fullFlushFlag]; 14796 this.write(Object.assign(Buffer2.alloc(0), { [_flushFlag]: flushFlag })); 14797 } 14798 end(chunk, encoding, cb) { 14799 if (chunk) 14800 this.write(chunk, encoding); 14801 this.flush(this[_finishFlushFlag]); 14802 this[_ended] = true; 14803 return super.end(null, null, cb); 14804 } 14805 get ended() { 14806 return this[_ended]; 14807 } 14808 write(chunk, encoding, cb) { 14809 if (typeof encoding === "function") 14810 cb = encoding, encoding = "utf8"; 14811 if (typeof chunk === "string") 14812 chunk = Buffer2.from(chunk, encoding); 14813 if (this[_sawError]) 14814 return; 14815 assert3(this[_handle], "zlib binding closed"); 14816 const nativeHandle = this[_handle]._handle; 14817 const originalNativeClose = nativeHandle.close; 14818 nativeHandle.close = () => { 14819 }; 14820 const originalClose = this[_handle].close; 14821 this[_handle].close = () => { 14822 }; 14823 Buffer2.concat = (args) => args; 14824 let result; 14825 try { 14826 const flushFlag = typeof chunk[_flushFlag] === "number" ? chunk[_flushFlag] : this[_flushFlag]; 14827 result = this[_handle]._processChunk(chunk, flushFlag); 14828 Buffer2.concat = OriginalBufferConcat; 14829 } catch (err) { 14830 Buffer2.concat = OriginalBufferConcat; 14831 this[_onError](new ZlibError(err)); 14832 } finally { 14833 if (this[_handle]) { 14834 this[_handle]._handle = nativeHandle; 14835 nativeHandle.close = originalNativeClose; 14836 this[_handle].close = originalClose; 14837 this[_handle].removeAllListeners("error"); 14838 } 14839 } 14840 if (this[_handle]) 14841 this[_handle].on("error", (er) => this[_onError](new ZlibError(er))); 14842 let writeReturn; 14843 if (result) { 14844 if (Array.isArray(result) && result.length > 0) { 14845 writeReturn = this[_superWrite](Buffer2.from(result[0])); 14846 for (let i = 1; i < result.length; i++) { 14847 writeReturn = this[_superWrite](result[i]); 14848 } 14849 } else { 14850 writeReturn = this[_superWrite](Buffer2.from(result)); 14851 } 14852 } 14853 if (cb) 14854 cb(); 14855 return writeReturn; 14856 } 14857 [_superWrite](data) { 14858 return super.write(data); 14859 } 14860 }; 14861 var Zlib = class extends ZlibBase { 14862 constructor(opts, mode) { 14863 opts = opts || {}; 14864 opts.flush = opts.flush || constants.Z_NO_FLUSH; 14865 opts.finishFlush = opts.finishFlush || constants.Z_FINISH; 14866 super(opts, mode); 14867 this[_fullFlushFlag] = constants.Z_FULL_FLUSH; 14868 this[_level] = opts.level; 14869 this[_strategy] = opts.strategy; 14870 } 14871 params(level, strategy) { 14872 if (this[_sawError]) 14873 return; 14874 if (!this[_handle]) 14875 throw new Error("cannot switch params when binding is closed"); 14876 if (!this[_handle].params) 14877 throw new Error("not supported in this implementation"); 14878 if (this[_level] !== level || this[_strategy] !== strategy) { 14879 this.flush(constants.Z_SYNC_FLUSH); 14880 assert3(this[_handle], "zlib binding closed"); 14881 const origFlush = this[_handle].flush; 14882 this[_handle].flush = (flushFlag, cb) => { 14883 this.flush(flushFlag); 14884 cb(); 14885 }; 14886 try { 14887 this[_handle].params(level, strategy); 14888 } finally { 14889 this[_handle].flush = origFlush; 14890 } 14891 if (this[_handle]) { 14892 this[_level] = level; 14893 this[_strategy] = strategy; 14894 } 14895 } 14896 } 14897 }; 14898 var Deflate = class extends Zlib { 14899 constructor(opts) { 14900 super(opts, "Deflate"); 14901 } 14902 }; 14903 var Inflate = class extends Zlib { 14904 constructor(opts) { 14905 super(opts, "Inflate"); 14906 } 14907 }; 14908 var _portable = Symbol("_portable"); 14909 var Gzip = class extends Zlib { 14910 constructor(opts) { 14911 super(opts, "Gzip"); 14912 this[_portable] = opts && !!opts.portable; 14913 } 14914 [_superWrite](data) { 14915 if (!this[_portable]) 14916 return super[_superWrite](data); 14917 this[_portable] = false; 14918 data[9] = 255; 14919 return super[_superWrite](data); 14920 } 14921 }; 14922 var Gunzip = class extends Zlib { 14923 constructor(opts) { 14924 super(opts, "Gunzip"); 14925 } 14926 }; 14927 var DeflateRaw = class extends Zlib { 14928 constructor(opts) { 14929 super(opts, "DeflateRaw"); 14930 } 14931 }; 14932 var InflateRaw = class extends Zlib { 14933 constructor(opts) { 14934 super(opts, "InflateRaw"); 14935 } 14936 }; 14937 var Unzip = class extends Zlib { 14938 constructor(opts) { 14939 super(opts, "Unzip"); 14940 } 14941 }; 14942 var Brotli = class extends ZlibBase { 14943 constructor(opts, mode) { 14944 opts = opts || {}; 14945 opts.flush = opts.flush || constants.BROTLI_OPERATION_PROCESS; 14946 opts.finishFlush = opts.finishFlush || constants.BROTLI_OPERATION_FINISH; 14947 super(opts, mode); 14948 this[_fullFlushFlag] = constants.BROTLI_OPERATION_FLUSH; 14949 } 14950 }; 14951 var BrotliCompress = class extends Brotli { 14952 constructor(opts) { 14953 super(opts, "BrotliCompress"); 14954 } 14955 }; 14956 var BrotliDecompress = class extends Brotli { 14957 constructor(opts) { 14958 super(opts, "BrotliDecompress"); 14959 } 14960 }; 14961 exports.Deflate = Deflate; 14962 exports.Inflate = Inflate; 14963 exports.Gzip = Gzip; 14964 exports.Gunzip = Gunzip; 14965 exports.DeflateRaw = DeflateRaw; 14966 exports.InflateRaw = InflateRaw; 14967 exports.Unzip = Unzip; 14968 if (typeof realZlib.BrotliCompress === "function") { 14969 exports.BrotliCompress = BrotliCompress; 14970 exports.BrotliDecompress = BrotliDecompress; 14971 } else { 14972 exports.BrotliCompress = exports.BrotliDecompress = class { 14973 constructor() { 14974 throw new Error("Brotli is not supported in this version of Node.js"); 14975 } 14976 }; 14977 } 14978 } 14979}); 14980 14981// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/normalize-windows-path.js 14982var require_normalize_windows_path = __commonJS({ 14983 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/normalize-windows-path.js"(exports, module2) { 14984 var platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform; 14985 module2.exports = platform !== "win32" ? (p) => p : (p) => p && p.replace(/\\/g, "/"); 14986 } 14987}); 14988 14989// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/read-entry.js 14990var require_read_entry = __commonJS({ 14991 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/read-entry.js"(exports, module2) { 14992 "use strict"; 14993 var { Minipass } = require_minipass(); 14994 var normPath = require_normalize_windows_path(); 14995 var SLURP = Symbol("slurp"); 14996 module2.exports = class ReadEntry extends Minipass { 14997 constructor(header, ex, gex) { 14998 super(); 14999 this.pause(); 15000 this.extended = ex; 15001 this.globalExtended = gex; 15002 this.header = header; 15003 this.startBlockSize = 512 * Math.ceil(header.size / 512); 15004 this.blockRemain = this.startBlockSize; 15005 this.remain = header.size; 15006 this.type = header.type; 15007 this.meta = false; 15008 this.ignore = false; 15009 switch (this.type) { 15010 case "File": 15011 case "OldFile": 15012 case "Link": 15013 case "SymbolicLink": 15014 case "CharacterDevice": 15015 case "BlockDevice": 15016 case "Directory": 15017 case "FIFO": 15018 case "ContiguousFile": 15019 case "GNUDumpDir": 15020 break; 15021 case "NextFileHasLongLinkpath": 15022 case "NextFileHasLongPath": 15023 case "OldGnuLongPath": 15024 case "GlobalExtendedHeader": 15025 case "ExtendedHeader": 15026 case "OldExtendedHeader": 15027 this.meta = true; 15028 break; 15029 default: 15030 this.ignore = true; 15031 } 15032 this.path = normPath(header.path); 15033 this.mode = header.mode; 15034 if (this.mode) { 15035 this.mode = this.mode & 4095; 15036 } 15037 this.uid = header.uid; 15038 this.gid = header.gid; 15039 this.uname = header.uname; 15040 this.gname = header.gname; 15041 this.size = header.size; 15042 this.mtime = header.mtime; 15043 this.atime = header.atime; 15044 this.ctime = header.ctime; 15045 this.linkpath = normPath(header.linkpath); 15046 this.uname = header.uname; 15047 this.gname = header.gname; 15048 if (ex) { 15049 this[SLURP](ex); 15050 } 15051 if (gex) { 15052 this[SLURP](gex, true); 15053 } 15054 } 15055 write(data) { 15056 const writeLen = data.length; 15057 if (writeLen > this.blockRemain) { 15058 throw new Error("writing more to entry than is appropriate"); 15059 } 15060 const r = this.remain; 15061 const br = this.blockRemain; 15062 this.remain = Math.max(0, r - writeLen); 15063 this.blockRemain = Math.max(0, br - writeLen); 15064 if (this.ignore) { 15065 return true; 15066 } 15067 if (r >= writeLen) { 15068 return super.write(data); 15069 } 15070 return super.write(data.slice(0, r)); 15071 } 15072 [SLURP](ex, global2) { 15073 for (const k in ex) { 15074 if (ex[k] !== null && ex[k] !== void 0 && !(global2 && k === "path")) { 15075 this[k] = k === "path" || k === "linkpath" ? normPath(ex[k]) : ex[k]; 15076 } 15077 } 15078 } 15079 }; 15080 } 15081}); 15082 15083// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/types.js 15084var require_types = __commonJS({ 15085 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/types.js"(exports) { 15086 "use strict"; 15087 exports.name = /* @__PURE__ */ new Map([ 15088 ["0", "File"], 15089 // same as File 15090 ["", "OldFile"], 15091 ["1", "Link"], 15092 ["2", "SymbolicLink"], 15093 // Devices and FIFOs aren't fully supported 15094 // they are parsed, but skipped when unpacking 15095 ["3", "CharacterDevice"], 15096 ["4", "BlockDevice"], 15097 ["5", "Directory"], 15098 ["6", "FIFO"], 15099 // same as File 15100 ["7", "ContiguousFile"], 15101 // pax headers 15102 ["g", "GlobalExtendedHeader"], 15103 ["x", "ExtendedHeader"], 15104 // vendor-specific stuff 15105 // skip 15106 ["A", "SolarisACL"], 15107 // like 5, but with data, which should be skipped 15108 ["D", "GNUDumpDir"], 15109 // metadata only, skip 15110 ["I", "Inode"], 15111 // data = link path of next file 15112 ["K", "NextFileHasLongLinkpath"], 15113 // data = path of next file 15114 ["L", "NextFileHasLongPath"], 15115 // skip 15116 ["M", "ContinuationFile"], 15117 // like L 15118 ["N", "OldGnuLongPath"], 15119 // skip 15120 ["S", "SparseFile"], 15121 // skip 15122 ["V", "TapeVolumeHeader"], 15123 // like x 15124 ["X", "OldExtendedHeader"] 15125 ]); 15126 exports.code = new Map(Array.from(exports.name).map((kv) => [kv[1], kv[0]])); 15127 } 15128}); 15129 15130// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/large-numbers.js 15131var require_large_numbers = __commonJS({ 15132 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/large-numbers.js"(exports, module2) { 15133 "use strict"; 15134 var encode = (num, buf) => { 15135 if (!Number.isSafeInteger(num)) { 15136 throw Error("cannot encode number outside of javascript safe integer range"); 15137 } else if (num < 0) { 15138 encodeNegative(num, buf); 15139 } else { 15140 encodePositive(num, buf); 15141 } 15142 return buf; 15143 }; 15144 var encodePositive = (num, buf) => { 15145 buf[0] = 128; 15146 for (var i = buf.length; i > 1; i--) { 15147 buf[i - 1] = num & 255; 15148 num = Math.floor(num / 256); 15149 } 15150 }; 15151 var encodeNegative = (num, buf) => { 15152 buf[0] = 255; 15153 var flipped = false; 15154 num = num * -1; 15155 for (var i = buf.length; i > 1; i--) { 15156 var byte = num & 255; 15157 num = Math.floor(num / 256); 15158 if (flipped) { 15159 buf[i - 1] = onesComp(byte); 15160 } else if (byte === 0) { 15161 buf[i - 1] = 0; 15162 } else { 15163 flipped = true; 15164 buf[i - 1] = twosComp(byte); 15165 } 15166 } 15167 }; 15168 var parse = (buf) => { 15169 const pre = buf[0]; 15170 const value = pre === 128 ? pos(buf.slice(1, buf.length)) : pre === 255 ? twos(buf) : null; 15171 if (value === null) { 15172 throw Error("invalid base256 encoding"); 15173 } 15174 if (!Number.isSafeInteger(value)) { 15175 throw Error("parsed number outside of javascript safe integer range"); 15176 } 15177 return value; 15178 }; 15179 var twos = (buf) => { 15180 var len = buf.length; 15181 var sum = 0; 15182 var flipped = false; 15183 for (var i = len - 1; i > -1; i--) { 15184 var byte = buf[i]; 15185 var f; 15186 if (flipped) { 15187 f = onesComp(byte); 15188 } else if (byte === 0) { 15189 f = byte; 15190 } else { 15191 flipped = true; 15192 f = twosComp(byte); 15193 } 15194 if (f !== 0) { 15195 sum -= f * Math.pow(256, len - i - 1); 15196 } 15197 } 15198 return sum; 15199 }; 15200 var pos = (buf) => { 15201 var len = buf.length; 15202 var sum = 0; 15203 for (var i = len - 1; i > -1; i--) { 15204 var byte = buf[i]; 15205 if (byte !== 0) { 15206 sum += byte * Math.pow(256, len - i - 1); 15207 } 15208 } 15209 return sum; 15210 }; 15211 var onesComp = (byte) => (255 ^ byte) & 255; 15212 var twosComp = (byte) => (255 ^ byte) + 1 & 255; 15213 module2.exports = { 15214 encode, 15215 parse 15216 }; 15217 } 15218}); 15219 15220// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/header.js 15221var require_header = __commonJS({ 15222 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/header.js"(exports, module2) { 15223 "use strict"; 15224 var types = require_types(); 15225 var pathModule = require("path").posix; 15226 var large = require_large_numbers(); 15227 var SLURP = Symbol("slurp"); 15228 var TYPE = Symbol("type"); 15229 var Header = class { 15230 constructor(data, off, ex, gex) { 15231 this.cksumValid = false; 15232 this.needPax = false; 15233 this.nullBlock = false; 15234 this.block = null; 15235 this.path = null; 15236 this.mode = null; 15237 this.uid = null; 15238 this.gid = null; 15239 this.size = null; 15240 this.mtime = null; 15241 this.cksum = null; 15242 this[TYPE] = "0"; 15243 this.linkpath = null; 15244 this.uname = null; 15245 this.gname = null; 15246 this.devmaj = 0; 15247 this.devmin = 0; 15248 this.atime = null; 15249 this.ctime = null; 15250 if (Buffer.isBuffer(data)) { 15251 this.decode(data, off || 0, ex, gex); 15252 } else if (data) { 15253 this.set(data); 15254 } 15255 } 15256 decode(buf, off, ex, gex) { 15257 if (!off) { 15258 off = 0; 15259 } 15260 if (!buf || !(buf.length >= off + 512)) { 15261 throw new Error("need 512 bytes for header"); 15262 } 15263 this.path = decString(buf, off, 100); 15264 this.mode = decNumber(buf, off + 100, 8); 15265 this.uid = decNumber(buf, off + 108, 8); 15266 this.gid = decNumber(buf, off + 116, 8); 15267 this.size = decNumber(buf, off + 124, 12); 15268 this.mtime = decDate(buf, off + 136, 12); 15269 this.cksum = decNumber(buf, off + 148, 12); 15270 this[SLURP](ex); 15271 this[SLURP](gex, true); 15272 this[TYPE] = decString(buf, off + 156, 1); 15273 if (this[TYPE] === "") { 15274 this[TYPE] = "0"; 15275 } 15276 if (this[TYPE] === "0" && this.path.slice(-1) === "/") { 15277 this[TYPE] = "5"; 15278 } 15279 if (this[TYPE] === "5") { 15280 this.size = 0; 15281 } 15282 this.linkpath = decString(buf, off + 157, 100); 15283 if (buf.slice(off + 257, off + 265).toString() === "ustar\x0000") { 15284 this.uname = decString(buf, off + 265, 32); 15285 this.gname = decString(buf, off + 297, 32); 15286 this.devmaj = decNumber(buf, off + 329, 8); 15287 this.devmin = decNumber(buf, off + 337, 8); 15288 if (buf[off + 475] !== 0) { 15289 const prefix = decString(buf, off + 345, 155); 15290 this.path = prefix + "/" + this.path; 15291 } else { 15292 const prefix = decString(buf, off + 345, 130); 15293 if (prefix) { 15294 this.path = prefix + "/" + this.path; 15295 } 15296 this.atime = decDate(buf, off + 476, 12); 15297 this.ctime = decDate(buf, off + 488, 12); 15298 } 15299 } 15300 let sum = 8 * 32; 15301 for (let i = off; i < off + 148; i++) { 15302 sum += buf[i]; 15303 } 15304 for (let i = off + 156; i < off + 512; i++) { 15305 sum += buf[i]; 15306 } 15307 this.cksumValid = sum === this.cksum; 15308 if (this.cksum === null && sum === 8 * 32) { 15309 this.nullBlock = true; 15310 } 15311 } 15312 [SLURP](ex, global2) { 15313 for (const k in ex) { 15314 if (ex[k] !== null && ex[k] !== void 0 && !(global2 && k === "path")) { 15315 this[k] = ex[k]; 15316 } 15317 } 15318 } 15319 encode(buf, off) { 15320 if (!buf) { 15321 buf = this.block = Buffer.alloc(512); 15322 off = 0; 15323 } 15324 if (!off) { 15325 off = 0; 15326 } 15327 if (!(buf.length >= off + 512)) { 15328 throw new Error("need 512 bytes for header"); 15329 } 15330 const prefixSize = this.ctime || this.atime ? 130 : 155; 15331 const split = splitPrefix(this.path || "", prefixSize); 15332 const path10 = split[0]; 15333 const prefix = split[1]; 15334 this.needPax = split[2]; 15335 this.needPax = encString(buf, off, 100, path10) || this.needPax; 15336 this.needPax = encNumber(buf, off + 100, 8, this.mode) || this.needPax; 15337 this.needPax = encNumber(buf, off + 108, 8, this.uid) || this.needPax; 15338 this.needPax = encNumber(buf, off + 116, 8, this.gid) || this.needPax; 15339 this.needPax = encNumber(buf, off + 124, 12, this.size) || this.needPax; 15340 this.needPax = encDate(buf, off + 136, 12, this.mtime) || this.needPax; 15341 buf[off + 156] = this[TYPE].charCodeAt(0); 15342 this.needPax = encString(buf, off + 157, 100, this.linkpath) || this.needPax; 15343 buf.write("ustar\x0000", off + 257, 8); 15344 this.needPax = encString(buf, off + 265, 32, this.uname) || this.needPax; 15345 this.needPax = encString(buf, off + 297, 32, this.gname) || this.needPax; 15346 this.needPax = encNumber(buf, off + 329, 8, this.devmaj) || this.needPax; 15347 this.needPax = encNumber(buf, off + 337, 8, this.devmin) || this.needPax; 15348 this.needPax = encString(buf, off + 345, prefixSize, prefix) || this.needPax; 15349 if (buf[off + 475] !== 0) { 15350 this.needPax = encString(buf, off + 345, 155, prefix) || this.needPax; 15351 } else { 15352 this.needPax = encString(buf, off + 345, 130, prefix) || this.needPax; 15353 this.needPax = encDate(buf, off + 476, 12, this.atime) || this.needPax; 15354 this.needPax = encDate(buf, off + 488, 12, this.ctime) || this.needPax; 15355 } 15356 let sum = 8 * 32; 15357 for (let i = off; i < off + 148; i++) { 15358 sum += buf[i]; 15359 } 15360 for (let i = off + 156; i < off + 512; i++) { 15361 sum += buf[i]; 15362 } 15363 this.cksum = sum; 15364 encNumber(buf, off + 148, 8, this.cksum); 15365 this.cksumValid = true; 15366 return this.needPax; 15367 } 15368 set(data) { 15369 for (const i in data) { 15370 if (data[i] !== null && data[i] !== void 0) { 15371 this[i] = data[i]; 15372 } 15373 } 15374 } 15375 get type() { 15376 return types.name.get(this[TYPE]) || this[TYPE]; 15377 } 15378 get typeKey() { 15379 return this[TYPE]; 15380 } 15381 set type(type) { 15382 if (types.code.has(type)) { 15383 this[TYPE] = types.code.get(type); 15384 } else { 15385 this[TYPE] = type; 15386 } 15387 } 15388 }; 15389 var splitPrefix = (p, prefixSize) => { 15390 const pathSize = 100; 15391 let pp = p; 15392 let prefix = ""; 15393 let ret; 15394 const root = pathModule.parse(p).root || "."; 15395 if (Buffer.byteLength(pp) < pathSize) { 15396 ret = [pp, prefix, false]; 15397 } else { 15398 prefix = pathModule.dirname(pp); 15399 pp = pathModule.basename(pp); 15400 do { 15401 if (Buffer.byteLength(pp) <= pathSize && Buffer.byteLength(prefix) <= prefixSize) { 15402 ret = [pp, prefix, false]; 15403 } else if (Buffer.byteLength(pp) > pathSize && Buffer.byteLength(prefix) <= prefixSize) { 15404 ret = [pp.slice(0, pathSize - 1), prefix, true]; 15405 } else { 15406 pp = pathModule.join(pathModule.basename(prefix), pp); 15407 prefix = pathModule.dirname(prefix); 15408 } 15409 } while (prefix !== root && !ret); 15410 if (!ret) { 15411 ret = [p.slice(0, pathSize - 1), "", true]; 15412 } 15413 } 15414 return ret; 15415 }; 15416 var decString = (buf, off, size) => buf.slice(off, off + size).toString("utf8").replace(/\0.*/, ""); 15417 var decDate = (buf, off, size) => numToDate(decNumber(buf, off, size)); 15418 var numToDate = (num) => num === null ? null : new Date(num * 1e3); 15419 var decNumber = (buf, off, size) => buf[off] & 128 ? large.parse(buf.slice(off, off + size)) : decSmallNumber(buf, off, size); 15420 var nanNull = (value) => isNaN(value) ? null : value; 15421 var decSmallNumber = (buf, off, size) => nanNull(parseInt( 15422 buf.slice(off, off + size).toString("utf8").replace(/\0.*$/, "").trim(), 15423 8 15424 )); 15425 var MAXNUM = { 15426 12: 8589934591, 15427 8: 2097151 15428 }; 15429 var encNumber = (buf, off, size, number) => number === null ? false : number > MAXNUM[size] || number < 0 ? (large.encode(number, buf.slice(off, off + size)), true) : (encSmallNumber(buf, off, size, number), false); 15430 var encSmallNumber = (buf, off, size, number) => buf.write(octalString(number, size), off, size, "ascii"); 15431 var octalString = (number, size) => padOctal(Math.floor(number).toString(8), size); 15432 var padOctal = (string, size) => (string.length === size - 1 ? string : new Array(size - string.length - 1).join("0") + string + " ") + "\0"; 15433 var encDate = (buf, off, size, date) => date === null ? false : encNumber(buf, off, size, date.getTime() / 1e3); 15434 var NULLS = new Array(156).join("\0"); 15435 var encString = (buf, off, size, string) => string === null ? false : (buf.write(string + NULLS, off, size, "utf8"), string.length !== Buffer.byteLength(string) || string.length > size); 15436 module2.exports = Header; 15437 } 15438}); 15439 15440// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/pax.js 15441var require_pax = __commonJS({ 15442 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/pax.js"(exports, module2) { 15443 "use strict"; 15444 var Header = require_header(); 15445 var path10 = require("path"); 15446 var Pax = class { 15447 constructor(obj, global2) { 15448 this.atime = obj.atime || null; 15449 this.charset = obj.charset || null; 15450 this.comment = obj.comment || null; 15451 this.ctime = obj.ctime || null; 15452 this.gid = obj.gid || null; 15453 this.gname = obj.gname || null; 15454 this.linkpath = obj.linkpath || null; 15455 this.mtime = obj.mtime || null; 15456 this.path = obj.path || null; 15457 this.size = obj.size || null; 15458 this.uid = obj.uid || null; 15459 this.uname = obj.uname || null; 15460 this.dev = obj.dev || null; 15461 this.ino = obj.ino || null; 15462 this.nlink = obj.nlink || null; 15463 this.global = global2 || false; 15464 } 15465 encode() { 15466 const body = this.encodeBody(); 15467 if (body === "") { 15468 return null; 15469 } 15470 const bodyLen = Buffer.byteLength(body); 15471 const bufLen = 512 * Math.ceil(1 + bodyLen / 512); 15472 const buf = Buffer.allocUnsafe(bufLen); 15473 for (let i = 0; i < 512; i++) { 15474 buf[i] = 0; 15475 } 15476 new Header({ 15477 // XXX split the path 15478 // then the path should be PaxHeader + basename, but less than 99, 15479 // prepend with the dirname 15480 path: ("PaxHeader/" + path10.basename(this.path)).slice(0, 99), 15481 mode: this.mode || 420, 15482 uid: this.uid || null, 15483 gid: this.gid || null, 15484 size: bodyLen, 15485 mtime: this.mtime || null, 15486 type: this.global ? "GlobalExtendedHeader" : "ExtendedHeader", 15487 linkpath: "", 15488 uname: this.uname || "", 15489 gname: this.gname || "", 15490 devmaj: 0, 15491 devmin: 0, 15492 atime: this.atime || null, 15493 ctime: this.ctime || null 15494 }).encode(buf); 15495 buf.write(body, 512, bodyLen, "utf8"); 15496 for (let i = bodyLen + 512; i < buf.length; i++) { 15497 buf[i] = 0; 15498 } 15499 return buf; 15500 } 15501 encodeBody() { 15502 return this.encodeField("path") + this.encodeField("ctime") + this.encodeField("atime") + this.encodeField("dev") + this.encodeField("ino") + this.encodeField("nlink") + this.encodeField("charset") + this.encodeField("comment") + this.encodeField("gid") + this.encodeField("gname") + this.encodeField("linkpath") + this.encodeField("mtime") + this.encodeField("size") + this.encodeField("uid") + this.encodeField("uname"); 15503 } 15504 encodeField(field) { 15505 if (this[field] === null || this[field] === void 0) { 15506 return ""; 15507 } 15508 const v = this[field] instanceof Date ? this[field].getTime() / 1e3 : this[field]; 15509 const s = " " + (field === "dev" || field === "ino" || field === "nlink" ? "SCHILY." : "") + field + "=" + v + "\n"; 15510 const byteLen = Buffer.byteLength(s); 15511 let digits = Math.floor(Math.log(byteLen) / Math.log(10)) + 1; 15512 if (byteLen + digits >= Math.pow(10, digits)) { 15513 digits += 1; 15514 } 15515 const len = digits + byteLen; 15516 return len + s; 15517 } 15518 }; 15519 Pax.parse = (string, ex, g) => new Pax(merge(parseKV(string), ex), g); 15520 var merge = (a, b) => b ? Object.keys(a).reduce((s, k) => (s[k] = a[k], s), b) : a; 15521 var parseKV = (string) => string.replace(/\n$/, "").split("\n").reduce(parseKVLine, /* @__PURE__ */ Object.create(null)); 15522 var parseKVLine = (set, line) => { 15523 const n = parseInt(line, 10); 15524 if (n !== Buffer.byteLength(line) + 1) { 15525 return set; 15526 } 15527 line = line.slice((n + " ").length); 15528 const kv = line.split("="); 15529 const k = kv.shift().replace(/^SCHILY\.(dev|ino|nlink)/, "$1"); 15530 if (!k) { 15531 return set; 15532 } 15533 const v = kv.join("="); 15534 set[k] = /^([A-Z]+\.)?([mac]|birth|creation)time$/.test(k) ? new Date(v * 1e3) : /^[0-9]+$/.test(v) ? +v : v; 15535 return set; 15536 }; 15537 module2.exports = Pax; 15538 } 15539}); 15540 15541// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/strip-trailing-slashes.js 15542var require_strip_trailing_slashes = __commonJS({ 15543 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/strip-trailing-slashes.js"(exports, module2) { 15544 module2.exports = (str) => { 15545 let i = str.length - 1; 15546 let slashesStart = -1; 15547 while (i > -1 && str.charAt(i) === "/") { 15548 slashesStart = i; 15549 i--; 15550 } 15551 return slashesStart === -1 ? str : str.slice(0, slashesStart); 15552 }; 15553 } 15554}); 15555 15556// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/warn-mixin.js 15557var require_warn_mixin = __commonJS({ 15558 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/warn-mixin.js"(exports, module2) { 15559 "use strict"; 15560 module2.exports = (Base) => class extends Base { 15561 warn(code, message, data = {}) { 15562 if (this.file) { 15563 data.file = this.file; 15564 } 15565 if (this.cwd) { 15566 data.cwd = this.cwd; 15567 } 15568 data.code = message instanceof Error && message.code || code; 15569 data.tarCode = code; 15570 if (!this.strict && data.recoverable !== false) { 15571 if (message instanceof Error) { 15572 data = Object.assign(message, data); 15573 message = message.message; 15574 } 15575 this.emit("warn", data.tarCode, message, data); 15576 } else if (message instanceof Error) { 15577 this.emit("error", Object.assign(message, data)); 15578 } else { 15579 this.emit("error", Object.assign(new Error(`${code}: ${message}`), data)); 15580 } 15581 } 15582 }; 15583 } 15584}); 15585 15586// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/winchars.js 15587var require_winchars = __commonJS({ 15588 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/winchars.js"(exports, module2) { 15589 "use strict"; 15590 var raw = [ 15591 "|", 15592 "<", 15593 ">", 15594 "?", 15595 ":" 15596 ]; 15597 var win = raw.map((char) => String.fromCharCode(61440 + char.charCodeAt(0))); 15598 var toWin = new Map(raw.map((char, i) => [char, win[i]])); 15599 var toRaw = new Map(win.map((char, i) => [char, raw[i]])); 15600 module2.exports = { 15601 encode: (s) => raw.reduce((s2, c) => s2.split(c).join(toWin.get(c)), s), 15602 decode: (s) => win.reduce((s2, c) => s2.split(c).join(toRaw.get(c)), s) 15603 }; 15604 } 15605}); 15606 15607// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/strip-absolute-path.js 15608var require_strip_absolute_path = __commonJS({ 15609 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/strip-absolute-path.js"(exports, module2) { 15610 var { isAbsolute, parse } = require("path").win32; 15611 module2.exports = (path10) => { 15612 let r = ""; 15613 let parsed = parse(path10); 15614 while (isAbsolute(path10) || parsed.root) { 15615 const root = path10.charAt(0) === "/" && path10.slice(0, 4) !== "//?/" ? "/" : parsed.root; 15616 path10 = path10.slice(root.length); 15617 r += root; 15618 parsed = parse(path10); 15619 } 15620 return [r, path10]; 15621 }; 15622 } 15623}); 15624 15625// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/mode-fix.js 15626var require_mode_fix = __commonJS({ 15627 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/mode-fix.js"(exports, module2) { 15628 "use strict"; 15629 module2.exports = (mode, isDir, portable) => { 15630 mode &= 4095; 15631 if (portable) { 15632 mode = (mode | 384) & ~18; 15633 } 15634 if (isDir) { 15635 if (mode & 256) { 15636 mode |= 64; 15637 } 15638 if (mode & 32) { 15639 mode |= 8; 15640 } 15641 if (mode & 4) { 15642 mode |= 1; 15643 } 15644 } 15645 return mode; 15646 }; 15647 } 15648}); 15649 15650// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/write-entry.js 15651var require_write_entry = __commonJS({ 15652 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/write-entry.js"(exports, module2) { 15653 "use strict"; 15654 var { Minipass } = require_minipass(); 15655 var Pax = require_pax(); 15656 var Header = require_header(); 15657 var fs9 = require("fs"); 15658 var path10 = require("path"); 15659 var normPath = require_normalize_windows_path(); 15660 var stripSlash = require_strip_trailing_slashes(); 15661 var prefixPath = (path11, prefix) => { 15662 if (!prefix) { 15663 return normPath(path11); 15664 } 15665 path11 = normPath(path11).replace(/^\.(\/|$)/, ""); 15666 return stripSlash(prefix) + "/" + path11; 15667 }; 15668 var maxReadSize = 16 * 1024 * 1024; 15669 var PROCESS = Symbol("process"); 15670 var FILE = Symbol("file"); 15671 var DIRECTORY = Symbol("directory"); 15672 var SYMLINK = Symbol("symlink"); 15673 var HARDLINK = Symbol("hardlink"); 15674 var HEADER = Symbol("header"); 15675 var READ = Symbol("read"); 15676 var LSTAT = Symbol("lstat"); 15677 var ONLSTAT = Symbol("onlstat"); 15678 var ONREAD = Symbol("onread"); 15679 var ONREADLINK = Symbol("onreadlink"); 15680 var OPENFILE = Symbol("openfile"); 15681 var ONOPENFILE = Symbol("onopenfile"); 15682 var CLOSE = Symbol("close"); 15683 var MODE = Symbol("mode"); 15684 var AWAITDRAIN = Symbol("awaitDrain"); 15685 var ONDRAIN = Symbol("ondrain"); 15686 var PREFIX = Symbol("prefix"); 15687 var HAD_ERROR = Symbol("hadError"); 15688 var warner = require_warn_mixin(); 15689 var winchars = require_winchars(); 15690 var stripAbsolutePath = require_strip_absolute_path(); 15691 var modeFix = require_mode_fix(); 15692 var WriteEntry = warner(class WriteEntry extends Minipass { 15693 constructor(p, opt) { 15694 opt = opt || {}; 15695 super(opt); 15696 if (typeof p !== "string") { 15697 throw new TypeError("path is required"); 15698 } 15699 this.path = normPath(p); 15700 this.portable = !!opt.portable; 15701 this.myuid = process.getuid && process.getuid() || 0; 15702 this.myuser = process.env.USER || ""; 15703 this.maxReadSize = opt.maxReadSize || maxReadSize; 15704 this.linkCache = opt.linkCache || /* @__PURE__ */ new Map(); 15705 this.statCache = opt.statCache || /* @__PURE__ */ new Map(); 15706 this.preservePaths = !!opt.preservePaths; 15707 this.cwd = normPath(opt.cwd || process.cwd()); 15708 this.strict = !!opt.strict; 15709 this.noPax = !!opt.noPax; 15710 this.noMtime = !!opt.noMtime; 15711 this.mtime = opt.mtime || null; 15712 this.prefix = opt.prefix ? normPath(opt.prefix) : null; 15713 this.fd = null; 15714 this.blockLen = null; 15715 this.blockRemain = null; 15716 this.buf = null; 15717 this.offset = null; 15718 this.length = null; 15719 this.pos = null; 15720 this.remain = null; 15721 if (typeof opt.onwarn === "function") { 15722 this.on("warn", opt.onwarn); 15723 } 15724 let pathWarn = false; 15725 if (!this.preservePaths) { 15726 const [root, stripped] = stripAbsolutePath(this.path); 15727 if (root) { 15728 this.path = stripped; 15729 pathWarn = root; 15730 } 15731 } 15732 this.win32 = !!opt.win32 || process.platform === "win32"; 15733 if (this.win32) { 15734 this.path = winchars.decode(this.path.replace(/\\/g, "/")); 15735 p = p.replace(/\\/g, "/"); 15736 } 15737 this.absolute = normPath(opt.absolute || path10.resolve(this.cwd, p)); 15738 if (this.path === "") { 15739 this.path = "./"; 15740 } 15741 if (pathWarn) { 15742 this.warn("TAR_ENTRY_INFO", `stripping ${pathWarn} from absolute path`, { 15743 entry: this, 15744 path: pathWarn + this.path 15745 }); 15746 } 15747 if (this.statCache.has(this.absolute)) { 15748 this[ONLSTAT](this.statCache.get(this.absolute)); 15749 } else { 15750 this[LSTAT](); 15751 } 15752 } 15753 emit(ev, ...data) { 15754 if (ev === "error") { 15755 this[HAD_ERROR] = true; 15756 } 15757 return super.emit(ev, ...data); 15758 } 15759 [LSTAT]() { 15760 fs9.lstat(this.absolute, (er, stat) => { 15761 if (er) { 15762 return this.emit("error", er); 15763 } 15764 this[ONLSTAT](stat); 15765 }); 15766 } 15767 [ONLSTAT](stat) { 15768 this.statCache.set(this.absolute, stat); 15769 this.stat = stat; 15770 if (!stat.isFile()) { 15771 stat.size = 0; 15772 } 15773 this.type = getType(stat); 15774 this.emit("stat", stat); 15775 this[PROCESS](); 15776 } 15777 [PROCESS]() { 15778 switch (this.type) { 15779 case "File": 15780 return this[FILE](); 15781 case "Directory": 15782 return this[DIRECTORY](); 15783 case "SymbolicLink": 15784 return this[SYMLINK](); 15785 default: 15786 return this.end(); 15787 } 15788 } 15789 [MODE](mode) { 15790 return modeFix(mode, this.type === "Directory", this.portable); 15791 } 15792 [PREFIX](path11) { 15793 return prefixPath(path11, this.prefix); 15794 } 15795 [HEADER]() { 15796 if (this.type === "Directory" && this.portable) { 15797 this.noMtime = true; 15798 } 15799 this.header = new Header({ 15800 path: this[PREFIX](this.path), 15801 // only apply the prefix to hard links. 15802 linkpath: this.type === "Link" ? this[PREFIX](this.linkpath) : this.linkpath, 15803 // only the permissions and setuid/setgid/sticky bitflags 15804 // not the higher-order bits that specify file type 15805 mode: this[MODE](this.stat.mode), 15806 uid: this.portable ? null : this.stat.uid, 15807 gid: this.portable ? null : this.stat.gid, 15808 size: this.stat.size, 15809 mtime: this.noMtime ? null : this.mtime || this.stat.mtime, 15810 type: this.type, 15811 uname: this.portable ? null : this.stat.uid === this.myuid ? this.myuser : "", 15812 atime: this.portable ? null : this.stat.atime, 15813 ctime: this.portable ? null : this.stat.ctime 15814 }); 15815 if (this.header.encode() && !this.noPax) { 15816 super.write(new Pax({ 15817 atime: this.portable ? null : this.header.atime, 15818 ctime: this.portable ? null : this.header.ctime, 15819 gid: this.portable ? null : this.header.gid, 15820 mtime: this.noMtime ? null : this.mtime || this.header.mtime, 15821 path: this[PREFIX](this.path), 15822 linkpath: this.type === "Link" ? this[PREFIX](this.linkpath) : this.linkpath, 15823 size: this.header.size, 15824 uid: this.portable ? null : this.header.uid, 15825 uname: this.portable ? null : this.header.uname, 15826 dev: this.portable ? null : this.stat.dev, 15827 ino: this.portable ? null : this.stat.ino, 15828 nlink: this.portable ? null : this.stat.nlink 15829 }).encode()); 15830 } 15831 super.write(this.header.block); 15832 } 15833 [DIRECTORY]() { 15834 if (this.path.slice(-1) !== "/") { 15835 this.path += "/"; 15836 } 15837 this.stat.size = 0; 15838 this[HEADER](); 15839 this.end(); 15840 } 15841 [SYMLINK]() { 15842 fs9.readlink(this.absolute, (er, linkpath) => { 15843 if (er) { 15844 return this.emit("error", er); 15845 } 15846 this[ONREADLINK](linkpath); 15847 }); 15848 } 15849 [ONREADLINK](linkpath) { 15850 this.linkpath = normPath(linkpath); 15851 this[HEADER](); 15852 this.end(); 15853 } 15854 [HARDLINK](linkpath) { 15855 this.type = "Link"; 15856 this.linkpath = normPath(path10.relative(this.cwd, linkpath)); 15857 this.stat.size = 0; 15858 this[HEADER](); 15859 this.end(); 15860 } 15861 [FILE]() { 15862 if (this.stat.nlink > 1) { 15863 const linkKey = this.stat.dev + ":" + this.stat.ino; 15864 if (this.linkCache.has(linkKey)) { 15865 const linkpath = this.linkCache.get(linkKey); 15866 if (linkpath.indexOf(this.cwd) === 0) { 15867 return this[HARDLINK](linkpath); 15868 } 15869 } 15870 this.linkCache.set(linkKey, this.absolute); 15871 } 15872 this[HEADER](); 15873 if (this.stat.size === 0) { 15874 return this.end(); 15875 } 15876 this[OPENFILE](); 15877 } 15878 [OPENFILE]() { 15879 fs9.open(this.absolute, "r", (er, fd) => { 15880 if (er) { 15881 return this.emit("error", er); 15882 } 15883 this[ONOPENFILE](fd); 15884 }); 15885 } 15886 [ONOPENFILE](fd) { 15887 this.fd = fd; 15888 if (this[HAD_ERROR]) { 15889 return this[CLOSE](); 15890 } 15891 this.blockLen = 512 * Math.ceil(this.stat.size / 512); 15892 this.blockRemain = this.blockLen; 15893 const bufLen = Math.min(this.blockLen, this.maxReadSize); 15894 this.buf = Buffer.allocUnsafe(bufLen); 15895 this.offset = 0; 15896 this.pos = 0; 15897 this.remain = this.stat.size; 15898 this.length = this.buf.length; 15899 this[READ](); 15900 } 15901 [READ]() { 15902 const { fd, buf, offset, length, pos } = this; 15903 fs9.read(fd, buf, offset, length, pos, (er, bytesRead) => { 15904 if (er) { 15905 return this[CLOSE](() => this.emit("error", er)); 15906 } 15907 this[ONREAD](bytesRead); 15908 }); 15909 } 15910 [CLOSE](cb) { 15911 fs9.close(this.fd, cb); 15912 } 15913 [ONREAD](bytesRead) { 15914 if (bytesRead <= 0 && this.remain > 0) { 15915 const er = new Error("encountered unexpected EOF"); 15916 er.path = this.absolute; 15917 er.syscall = "read"; 15918 er.code = "EOF"; 15919 return this[CLOSE](() => this.emit("error", er)); 15920 } 15921 if (bytesRead > this.remain) { 15922 const er = new Error("did not encounter expected EOF"); 15923 er.path = this.absolute; 15924 er.syscall = "read"; 15925 er.code = "EOF"; 15926 return this[CLOSE](() => this.emit("error", er)); 15927 } 15928 if (bytesRead === this.remain) { 15929 for (let i = bytesRead; i < this.length && bytesRead < this.blockRemain; i++) { 15930 this.buf[i + this.offset] = 0; 15931 bytesRead++; 15932 this.remain++; 15933 } 15934 } 15935 const writeBuf = this.offset === 0 && bytesRead === this.buf.length ? this.buf : this.buf.slice(this.offset, this.offset + bytesRead); 15936 const flushed = this.write(writeBuf); 15937 if (!flushed) { 15938 this[AWAITDRAIN](() => this[ONDRAIN]()); 15939 } else { 15940 this[ONDRAIN](); 15941 } 15942 } 15943 [AWAITDRAIN](cb) { 15944 this.once("drain", cb); 15945 } 15946 write(writeBuf) { 15947 if (this.blockRemain < writeBuf.length) { 15948 const er = new Error("writing more data than expected"); 15949 er.path = this.absolute; 15950 return this.emit("error", er); 15951 } 15952 this.remain -= writeBuf.length; 15953 this.blockRemain -= writeBuf.length; 15954 this.pos += writeBuf.length; 15955 this.offset += writeBuf.length; 15956 return super.write(writeBuf); 15957 } 15958 [ONDRAIN]() { 15959 if (!this.remain) { 15960 if (this.blockRemain) { 15961 super.write(Buffer.alloc(this.blockRemain)); 15962 } 15963 return this[CLOSE]((er) => er ? this.emit("error", er) : this.end()); 15964 } 15965 if (this.offset >= this.length) { 15966 this.buf = Buffer.allocUnsafe(Math.min(this.blockRemain, this.buf.length)); 15967 this.offset = 0; 15968 } 15969 this.length = this.buf.length - this.offset; 15970 this[READ](); 15971 } 15972 }); 15973 var WriteEntrySync = class extends WriteEntry { 15974 [LSTAT]() { 15975 this[ONLSTAT](fs9.lstatSync(this.absolute)); 15976 } 15977 [SYMLINK]() { 15978 this[ONREADLINK](fs9.readlinkSync(this.absolute)); 15979 } 15980 [OPENFILE]() { 15981 this[ONOPENFILE](fs9.openSync(this.absolute, "r")); 15982 } 15983 [READ]() { 15984 let threw = true; 15985 try { 15986 const { fd, buf, offset, length, pos } = this; 15987 const bytesRead = fs9.readSync(fd, buf, offset, length, pos); 15988 this[ONREAD](bytesRead); 15989 threw = false; 15990 } finally { 15991 if (threw) { 15992 try { 15993 this[CLOSE](() => { 15994 }); 15995 } catch (er) { 15996 } 15997 } 15998 } 15999 } 16000 [AWAITDRAIN](cb) { 16001 cb(); 16002 } 16003 [CLOSE](cb) { 16004 fs9.closeSync(this.fd); 16005 cb(); 16006 } 16007 }; 16008 var WriteEntryTar = warner(class WriteEntryTar extends Minipass { 16009 constructor(readEntry, opt) { 16010 opt = opt || {}; 16011 super(opt); 16012 this.preservePaths = !!opt.preservePaths; 16013 this.portable = !!opt.portable; 16014 this.strict = !!opt.strict; 16015 this.noPax = !!opt.noPax; 16016 this.noMtime = !!opt.noMtime; 16017 this.readEntry = readEntry; 16018 this.type = readEntry.type; 16019 if (this.type === "Directory" && this.portable) { 16020 this.noMtime = true; 16021 } 16022 this.prefix = opt.prefix || null; 16023 this.path = normPath(readEntry.path); 16024 this.mode = this[MODE](readEntry.mode); 16025 this.uid = this.portable ? null : readEntry.uid; 16026 this.gid = this.portable ? null : readEntry.gid; 16027 this.uname = this.portable ? null : readEntry.uname; 16028 this.gname = this.portable ? null : readEntry.gname; 16029 this.size = readEntry.size; 16030 this.mtime = this.noMtime ? null : opt.mtime || readEntry.mtime; 16031 this.atime = this.portable ? null : readEntry.atime; 16032 this.ctime = this.portable ? null : readEntry.ctime; 16033 this.linkpath = normPath(readEntry.linkpath); 16034 if (typeof opt.onwarn === "function") { 16035 this.on("warn", opt.onwarn); 16036 } 16037 let pathWarn = false; 16038 if (!this.preservePaths) { 16039 const [root, stripped] = stripAbsolutePath(this.path); 16040 if (root) { 16041 this.path = stripped; 16042 pathWarn = root; 16043 } 16044 } 16045 this.remain = readEntry.size; 16046 this.blockRemain = readEntry.startBlockSize; 16047 this.header = new Header({ 16048 path: this[PREFIX](this.path), 16049 linkpath: this.type === "Link" ? this[PREFIX](this.linkpath) : this.linkpath, 16050 // only the permissions and setuid/setgid/sticky bitflags 16051 // not the higher-order bits that specify file type 16052 mode: this.mode, 16053 uid: this.portable ? null : this.uid, 16054 gid: this.portable ? null : this.gid, 16055 size: this.size, 16056 mtime: this.noMtime ? null : this.mtime, 16057 type: this.type, 16058 uname: this.portable ? null : this.uname, 16059 atime: this.portable ? null : this.atime, 16060 ctime: this.portable ? null : this.ctime 16061 }); 16062 if (pathWarn) { 16063 this.warn("TAR_ENTRY_INFO", `stripping ${pathWarn} from absolute path`, { 16064 entry: this, 16065 path: pathWarn + this.path 16066 }); 16067 } 16068 if (this.header.encode() && !this.noPax) { 16069 super.write(new Pax({ 16070 atime: this.portable ? null : this.atime, 16071 ctime: this.portable ? null : this.ctime, 16072 gid: this.portable ? null : this.gid, 16073 mtime: this.noMtime ? null : this.mtime, 16074 path: this[PREFIX](this.path), 16075 linkpath: this.type === "Link" ? this[PREFIX](this.linkpath) : this.linkpath, 16076 size: this.size, 16077 uid: this.portable ? null : this.uid, 16078 uname: this.portable ? null : this.uname, 16079 dev: this.portable ? null : this.readEntry.dev, 16080 ino: this.portable ? null : this.readEntry.ino, 16081 nlink: this.portable ? null : this.readEntry.nlink 16082 }).encode()); 16083 } 16084 super.write(this.header.block); 16085 readEntry.pipe(this); 16086 } 16087 [PREFIX](path11) { 16088 return prefixPath(path11, this.prefix); 16089 } 16090 [MODE](mode) { 16091 return modeFix(mode, this.type === "Directory", this.portable); 16092 } 16093 write(data) { 16094 const writeLen = data.length; 16095 if (writeLen > this.blockRemain) { 16096 throw new Error("writing more to entry than is appropriate"); 16097 } 16098 this.blockRemain -= writeLen; 16099 return super.write(data); 16100 } 16101 end() { 16102 if (this.blockRemain) { 16103 super.write(Buffer.alloc(this.blockRemain)); 16104 } 16105 return super.end(); 16106 } 16107 }); 16108 WriteEntry.Sync = WriteEntrySync; 16109 WriteEntry.Tar = WriteEntryTar; 16110 var getType = (stat) => stat.isFile() ? "File" : stat.isDirectory() ? "Directory" : stat.isSymbolicLink() ? "SymbolicLink" : "Unsupported"; 16111 module2.exports = WriteEntry; 16112 } 16113}); 16114 16115// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/pack.js 16116var require_pack = __commonJS({ 16117 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/pack.js"(exports, module2) { 16118 "use strict"; 16119 var PackJob = class { 16120 constructor(path11, absolute) { 16121 this.path = path11 || "./"; 16122 this.absolute = absolute; 16123 this.entry = null; 16124 this.stat = null; 16125 this.readdir = null; 16126 this.pending = false; 16127 this.ignore = false; 16128 this.piped = false; 16129 } 16130 }; 16131 var { Minipass } = require_minipass(); 16132 var zlib = require_minizlib(); 16133 var ReadEntry = require_read_entry(); 16134 var WriteEntry = require_write_entry(); 16135 var WriteEntrySync = WriteEntry.Sync; 16136 var WriteEntryTar = WriteEntry.Tar; 16137 var Yallist = require_yallist(); 16138 var EOF = Buffer.alloc(1024); 16139 var ONSTAT = Symbol("onStat"); 16140 var ENDED = Symbol("ended"); 16141 var QUEUE = Symbol("queue"); 16142 var CURRENT = Symbol("current"); 16143 var PROCESS = Symbol("process"); 16144 var PROCESSING = Symbol("processing"); 16145 var PROCESSJOB = Symbol("processJob"); 16146 var JOBS = Symbol("jobs"); 16147 var JOBDONE = Symbol("jobDone"); 16148 var ADDFSENTRY = Symbol("addFSEntry"); 16149 var ADDTARENTRY = Symbol("addTarEntry"); 16150 var STAT = Symbol("stat"); 16151 var READDIR = Symbol("readdir"); 16152 var ONREADDIR = Symbol("onreaddir"); 16153 var PIPE = Symbol("pipe"); 16154 var ENTRY = Symbol("entry"); 16155 var ENTRYOPT = Symbol("entryOpt"); 16156 var WRITEENTRYCLASS = Symbol("writeEntryClass"); 16157 var WRITE = Symbol("write"); 16158 var ONDRAIN = Symbol("ondrain"); 16159 var fs9 = require("fs"); 16160 var path10 = require("path"); 16161 var warner = require_warn_mixin(); 16162 var normPath = require_normalize_windows_path(); 16163 var Pack = warner(class Pack extends Minipass { 16164 constructor(opt) { 16165 super(opt); 16166 opt = opt || /* @__PURE__ */ Object.create(null); 16167 this.opt = opt; 16168 this.file = opt.file || ""; 16169 this.cwd = opt.cwd || process.cwd(); 16170 this.maxReadSize = opt.maxReadSize; 16171 this.preservePaths = !!opt.preservePaths; 16172 this.strict = !!opt.strict; 16173 this.noPax = !!opt.noPax; 16174 this.prefix = normPath(opt.prefix || ""); 16175 this.linkCache = opt.linkCache || /* @__PURE__ */ new Map(); 16176 this.statCache = opt.statCache || /* @__PURE__ */ new Map(); 16177 this.readdirCache = opt.readdirCache || /* @__PURE__ */ new Map(); 16178 this[WRITEENTRYCLASS] = WriteEntry; 16179 if (typeof opt.onwarn === "function") { 16180 this.on("warn", opt.onwarn); 16181 } 16182 this.portable = !!opt.portable; 16183 this.zip = null; 16184 if (opt.gzip || opt.brotli) { 16185 if (opt.gzip && opt.brotli) { 16186 throw new TypeError("gzip and brotli are mutually exclusive"); 16187 } 16188 if (opt.gzip) { 16189 if (typeof opt.gzip !== "object") { 16190 opt.gzip = {}; 16191 } 16192 if (this.portable) { 16193 opt.gzip.portable = true; 16194 } 16195 this.zip = new zlib.Gzip(opt.gzip); 16196 } 16197 if (opt.brotli) { 16198 if (typeof opt.brotli !== "object") { 16199 opt.brotli = {}; 16200 } 16201 this.zip = new zlib.BrotliCompress(opt.brotli); 16202 } 16203 this.zip.on("data", (chunk) => super.write(chunk)); 16204 this.zip.on("end", (_) => super.end()); 16205 this.zip.on("drain", (_) => this[ONDRAIN]()); 16206 this.on("resume", (_) => this.zip.resume()); 16207 } else { 16208 this.on("drain", this[ONDRAIN]); 16209 } 16210 this.noDirRecurse = !!opt.noDirRecurse; 16211 this.follow = !!opt.follow; 16212 this.noMtime = !!opt.noMtime; 16213 this.mtime = opt.mtime || null; 16214 this.filter = typeof opt.filter === "function" ? opt.filter : (_) => true; 16215 this[QUEUE] = new Yallist(); 16216 this[JOBS] = 0; 16217 this.jobs = +opt.jobs || 4; 16218 this[PROCESSING] = false; 16219 this[ENDED] = false; 16220 } 16221 [WRITE](chunk) { 16222 return super.write(chunk); 16223 } 16224 add(path11) { 16225 this.write(path11); 16226 return this; 16227 } 16228 end(path11) { 16229 if (path11) { 16230 this.write(path11); 16231 } 16232 this[ENDED] = true; 16233 this[PROCESS](); 16234 return this; 16235 } 16236 write(path11) { 16237 if (this[ENDED]) { 16238 throw new Error("write after end"); 16239 } 16240 if (path11 instanceof ReadEntry) { 16241 this[ADDTARENTRY](path11); 16242 } else { 16243 this[ADDFSENTRY](path11); 16244 } 16245 return this.flowing; 16246 } 16247 [ADDTARENTRY](p) { 16248 const absolute = normPath(path10.resolve(this.cwd, p.path)); 16249 if (!this.filter(p.path, p)) { 16250 p.resume(); 16251 } else { 16252 const job = new PackJob(p.path, absolute, false); 16253 job.entry = new WriteEntryTar(p, this[ENTRYOPT](job)); 16254 job.entry.on("end", (_) => this[JOBDONE](job)); 16255 this[JOBS] += 1; 16256 this[QUEUE].push(job); 16257 } 16258 this[PROCESS](); 16259 } 16260 [ADDFSENTRY](p) { 16261 const absolute = normPath(path10.resolve(this.cwd, p)); 16262 this[QUEUE].push(new PackJob(p, absolute)); 16263 this[PROCESS](); 16264 } 16265 [STAT](job) { 16266 job.pending = true; 16267 this[JOBS] += 1; 16268 const stat = this.follow ? "stat" : "lstat"; 16269 fs9[stat](job.absolute, (er, stat2) => { 16270 job.pending = false; 16271 this[JOBS] -= 1; 16272 if (er) { 16273 this.emit("error", er); 16274 } else { 16275 this[ONSTAT](job, stat2); 16276 } 16277 }); 16278 } 16279 [ONSTAT](job, stat) { 16280 this.statCache.set(job.absolute, stat); 16281 job.stat = stat; 16282 if (!this.filter(job.path, stat)) { 16283 job.ignore = true; 16284 } 16285 this[PROCESS](); 16286 } 16287 [READDIR](job) { 16288 job.pending = true; 16289 this[JOBS] += 1; 16290 fs9.readdir(job.absolute, (er, entries) => { 16291 job.pending = false; 16292 this[JOBS] -= 1; 16293 if (er) { 16294 return this.emit("error", er); 16295 } 16296 this[ONREADDIR](job, entries); 16297 }); 16298 } 16299 [ONREADDIR](job, entries) { 16300 this.readdirCache.set(job.absolute, entries); 16301 job.readdir = entries; 16302 this[PROCESS](); 16303 } 16304 [PROCESS]() { 16305 if (this[PROCESSING]) { 16306 return; 16307 } 16308 this[PROCESSING] = true; 16309 for (let w = this[QUEUE].head; w !== null && this[JOBS] < this.jobs; w = w.next) { 16310 this[PROCESSJOB](w.value); 16311 if (w.value.ignore) { 16312 const p = w.next; 16313 this[QUEUE].removeNode(w); 16314 w.next = p; 16315 } 16316 } 16317 this[PROCESSING] = false; 16318 if (this[ENDED] && !this[QUEUE].length && this[JOBS] === 0) { 16319 if (this.zip) { 16320 this.zip.end(EOF); 16321 } else { 16322 super.write(EOF); 16323 super.end(); 16324 } 16325 } 16326 } 16327 get [CURRENT]() { 16328 return this[QUEUE] && this[QUEUE].head && this[QUEUE].head.value; 16329 } 16330 [JOBDONE](job) { 16331 this[QUEUE].shift(); 16332 this[JOBS] -= 1; 16333 this[PROCESS](); 16334 } 16335 [PROCESSJOB](job) { 16336 if (job.pending) { 16337 return; 16338 } 16339 if (job.entry) { 16340 if (job === this[CURRENT] && !job.piped) { 16341 this[PIPE](job); 16342 } 16343 return; 16344 } 16345 if (!job.stat) { 16346 if (this.statCache.has(job.absolute)) { 16347 this[ONSTAT](job, this.statCache.get(job.absolute)); 16348 } else { 16349 this[STAT](job); 16350 } 16351 } 16352 if (!job.stat) { 16353 return; 16354 } 16355 if (job.ignore) { 16356 return; 16357 } 16358 if (!this.noDirRecurse && job.stat.isDirectory() && !job.readdir) { 16359 if (this.readdirCache.has(job.absolute)) { 16360 this[ONREADDIR](job, this.readdirCache.get(job.absolute)); 16361 } else { 16362 this[READDIR](job); 16363 } 16364 if (!job.readdir) { 16365 return; 16366 } 16367 } 16368 job.entry = this[ENTRY](job); 16369 if (!job.entry) { 16370 job.ignore = true; 16371 return; 16372 } 16373 if (job === this[CURRENT] && !job.piped) { 16374 this[PIPE](job); 16375 } 16376 } 16377 [ENTRYOPT](job) { 16378 return { 16379 onwarn: (code, msg, data) => this.warn(code, msg, data), 16380 noPax: this.noPax, 16381 cwd: this.cwd, 16382 absolute: job.absolute, 16383 preservePaths: this.preservePaths, 16384 maxReadSize: this.maxReadSize, 16385 strict: this.strict, 16386 portable: this.portable, 16387 linkCache: this.linkCache, 16388 statCache: this.statCache, 16389 noMtime: this.noMtime, 16390 mtime: this.mtime, 16391 prefix: this.prefix 16392 }; 16393 } 16394 [ENTRY](job) { 16395 this[JOBS] += 1; 16396 try { 16397 return new this[WRITEENTRYCLASS](job.path, this[ENTRYOPT](job)).on("end", () => this[JOBDONE](job)).on("error", (er) => this.emit("error", er)); 16398 } catch (er) { 16399 this.emit("error", er); 16400 } 16401 } 16402 [ONDRAIN]() { 16403 if (this[CURRENT] && this[CURRENT].entry) { 16404 this[CURRENT].entry.resume(); 16405 } 16406 } 16407 // like .pipe() but using super, because our write() is special 16408 [PIPE](job) { 16409 job.piped = true; 16410 if (job.readdir) { 16411 job.readdir.forEach((entry) => { 16412 const p = job.path; 16413 const base = p === "./" ? "" : p.replace(/\/*$/, "/"); 16414 this[ADDFSENTRY](base + entry); 16415 }); 16416 } 16417 const source = job.entry; 16418 const zip = this.zip; 16419 if (zip) { 16420 source.on("data", (chunk) => { 16421 if (!zip.write(chunk)) { 16422 source.pause(); 16423 } 16424 }); 16425 } else { 16426 source.on("data", (chunk) => { 16427 if (!super.write(chunk)) { 16428 source.pause(); 16429 } 16430 }); 16431 } 16432 } 16433 pause() { 16434 if (this.zip) { 16435 this.zip.pause(); 16436 } 16437 return super.pause(); 16438 } 16439 }); 16440 var PackSync = class extends Pack { 16441 constructor(opt) { 16442 super(opt); 16443 this[WRITEENTRYCLASS] = WriteEntrySync; 16444 } 16445 // pause/resume are no-ops in sync streams. 16446 pause() { 16447 } 16448 resume() { 16449 } 16450 [STAT](job) { 16451 const stat = this.follow ? "statSync" : "lstatSync"; 16452 this[ONSTAT](job, fs9[stat](job.absolute)); 16453 } 16454 [READDIR](job, stat) { 16455 this[ONREADDIR](job, fs9.readdirSync(job.absolute)); 16456 } 16457 // gotta get it all in this tick 16458 [PIPE](job) { 16459 const source = job.entry; 16460 const zip = this.zip; 16461 if (job.readdir) { 16462 job.readdir.forEach((entry) => { 16463 const p = job.path; 16464 const base = p === "./" ? "" : p.replace(/\/*$/, "/"); 16465 this[ADDFSENTRY](base + entry); 16466 }); 16467 } 16468 if (zip) { 16469 source.on("data", (chunk) => { 16470 zip.write(chunk); 16471 }); 16472 } else { 16473 source.on("data", (chunk) => { 16474 super[WRITE](chunk); 16475 }); 16476 } 16477 } 16478 }; 16479 Pack.Sync = PackSync; 16480 module2.exports = Pack; 16481 } 16482}); 16483 16484// .yarn/cache/fs-minipass-npm-2.1.0-501ef87306-703d16522b.zip/node_modules/fs-minipass/index.js 16485var require_fs_minipass = __commonJS({ 16486 ".yarn/cache/fs-minipass-npm-2.1.0-501ef87306-703d16522b.zip/node_modules/fs-minipass/index.js"(exports) { 16487 "use strict"; 16488 var MiniPass = require_minipass2(); 16489 var EE = require("events").EventEmitter; 16490 var fs9 = require("fs"); 16491 var writev = fs9.writev; 16492 if (!writev) { 16493 const binding = process.binding("fs"); 16494 const FSReqWrap = binding.FSReqWrap || binding.FSReqCallback; 16495 writev = (fd, iovec, pos, cb) => { 16496 const done = (er, bw) => cb(er, bw, iovec); 16497 const req = new FSReqWrap(); 16498 req.oncomplete = done; 16499 binding.writeBuffers(fd, iovec, pos, req); 16500 }; 16501 } 16502 var _autoClose = Symbol("_autoClose"); 16503 var _close = Symbol("_close"); 16504 var _ended = Symbol("_ended"); 16505 var _fd = Symbol("_fd"); 16506 var _finished = Symbol("_finished"); 16507 var _flags = Symbol("_flags"); 16508 var _flush = Symbol("_flush"); 16509 var _handleChunk = Symbol("_handleChunk"); 16510 var _makeBuf = Symbol("_makeBuf"); 16511 var _mode = Symbol("_mode"); 16512 var _needDrain = Symbol("_needDrain"); 16513 var _onerror = Symbol("_onerror"); 16514 var _onopen = Symbol("_onopen"); 16515 var _onread = Symbol("_onread"); 16516 var _onwrite = Symbol("_onwrite"); 16517 var _open = Symbol("_open"); 16518 var _path = Symbol("_path"); 16519 var _pos = Symbol("_pos"); 16520 var _queue = Symbol("_queue"); 16521 var _read = Symbol("_read"); 16522 var _readSize = Symbol("_readSize"); 16523 var _reading = Symbol("_reading"); 16524 var _remain = Symbol("_remain"); 16525 var _size = Symbol("_size"); 16526 var _write = Symbol("_write"); 16527 var _writing = Symbol("_writing"); 16528 var _defaultFlag = Symbol("_defaultFlag"); 16529 var _errored = Symbol("_errored"); 16530 var ReadStream = class extends MiniPass { 16531 constructor(path10, opt) { 16532 opt = opt || {}; 16533 super(opt); 16534 this.readable = true; 16535 this.writable = false; 16536 if (typeof path10 !== "string") 16537 throw new TypeError("path must be a string"); 16538 this[_errored] = false; 16539 this[_fd] = typeof opt.fd === "number" ? opt.fd : null; 16540 this[_path] = path10; 16541 this[_readSize] = opt.readSize || 16 * 1024 * 1024; 16542 this[_reading] = false; 16543 this[_size] = typeof opt.size === "number" ? opt.size : Infinity; 16544 this[_remain] = this[_size]; 16545 this[_autoClose] = typeof opt.autoClose === "boolean" ? opt.autoClose : true; 16546 if (typeof this[_fd] === "number") 16547 this[_read](); 16548 else 16549 this[_open](); 16550 } 16551 get fd() { 16552 return this[_fd]; 16553 } 16554 get path() { 16555 return this[_path]; 16556 } 16557 write() { 16558 throw new TypeError("this is a readable stream"); 16559 } 16560 end() { 16561 throw new TypeError("this is a readable stream"); 16562 } 16563 [_open]() { 16564 fs9.open(this[_path], "r", (er, fd) => this[_onopen](er, fd)); 16565 } 16566 [_onopen](er, fd) { 16567 if (er) 16568 this[_onerror](er); 16569 else { 16570 this[_fd] = fd; 16571 this.emit("open", fd); 16572 this[_read](); 16573 } 16574 } 16575 [_makeBuf]() { 16576 return Buffer.allocUnsafe(Math.min(this[_readSize], this[_remain])); 16577 } 16578 [_read]() { 16579 if (!this[_reading]) { 16580 this[_reading] = true; 16581 const buf = this[_makeBuf](); 16582 if (buf.length === 0) 16583 return process.nextTick(() => this[_onread](null, 0, buf)); 16584 fs9.read(this[_fd], buf, 0, buf.length, null, (er, br, buf2) => this[_onread](er, br, buf2)); 16585 } 16586 } 16587 [_onread](er, br, buf) { 16588 this[_reading] = false; 16589 if (er) 16590 this[_onerror](er); 16591 else if (this[_handleChunk](br, buf)) 16592 this[_read](); 16593 } 16594 [_close]() { 16595 if (this[_autoClose] && typeof this[_fd] === "number") { 16596 const fd = this[_fd]; 16597 this[_fd] = null; 16598 fs9.close(fd, (er) => er ? this.emit("error", er) : this.emit("close")); 16599 } 16600 } 16601 [_onerror](er) { 16602 this[_reading] = true; 16603 this[_close](); 16604 this.emit("error", er); 16605 } 16606 [_handleChunk](br, buf) { 16607 let ret = false; 16608 this[_remain] -= br; 16609 if (br > 0) 16610 ret = super.write(br < buf.length ? buf.slice(0, br) : buf); 16611 if (br === 0 || this[_remain] <= 0) { 16612 ret = false; 16613 this[_close](); 16614 super.end(); 16615 } 16616 return ret; 16617 } 16618 emit(ev, data) { 16619 switch (ev) { 16620 case "prefinish": 16621 case "finish": 16622 break; 16623 case "drain": 16624 if (typeof this[_fd] === "number") 16625 this[_read](); 16626 break; 16627 case "error": 16628 if (this[_errored]) 16629 return; 16630 this[_errored] = true; 16631 return super.emit(ev, data); 16632 default: 16633 return super.emit(ev, data); 16634 } 16635 } 16636 }; 16637 var ReadStreamSync = class extends ReadStream { 16638 [_open]() { 16639 let threw = true; 16640 try { 16641 this[_onopen](null, fs9.openSync(this[_path], "r")); 16642 threw = false; 16643 } finally { 16644 if (threw) 16645 this[_close](); 16646 } 16647 } 16648 [_read]() { 16649 let threw = true; 16650 try { 16651 if (!this[_reading]) { 16652 this[_reading] = true; 16653 do { 16654 const buf = this[_makeBuf](); 16655 const br = buf.length === 0 ? 0 : fs9.readSync(this[_fd], buf, 0, buf.length, null); 16656 if (!this[_handleChunk](br, buf)) 16657 break; 16658 } while (true); 16659 this[_reading] = false; 16660 } 16661 threw = false; 16662 } finally { 16663 if (threw) 16664 this[_close](); 16665 } 16666 } 16667 [_close]() { 16668 if (this[_autoClose] && typeof this[_fd] === "number") { 16669 const fd = this[_fd]; 16670 this[_fd] = null; 16671 fs9.closeSync(fd); 16672 this.emit("close"); 16673 } 16674 } 16675 }; 16676 var WriteStream = class extends EE { 16677 constructor(path10, opt) { 16678 opt = opt || {}; 16679 super(opt); 16680 this.readable = false; 16681 this.writable = true; 16682 this[_errored] = false; 16683 this[_writing] = false; 16684 this[_ended] = false; 16685 this[_needDrain] = false; 16686 this[_queue] = []; 16687 this[_path] = path10; 16688 this[_fd] = typeof opt.fd === "number" ? opt.fd : null; 16689 this[_mode] = opt.mode === void 0 ? 438 : opt.mode; 16690 this[_pos] = typeof opt.start === "number" ? opt.start : null; 16691 this[_autoClose] = typeof opt.autoClose === "boolean" ? opt.autoClose : true; 16692 const defaultFlag = this[_pos] !== null ? "r+" : "w"; 16693 this[_defaultFlag] = opt.flags === void 0; 16694 this[_flags] = this[_defaultFlag] ? defaultFlag : opt.flags; 16695 if (this[_fd] === null) 16696 this[_open](); 16697 } 16698 emit(ev, data) { 16699 if (ev === "error") { 16700 if (this[_errored]) 16701 return; 16702 this[_errored] = true; 16703 } 16704 return super.emit(ev, data); 16705 } 16706 get fd() { 16707 return this[_fd]; 16708 } 16709 get path() { 16710 return this[_path]; 16711 } 16712 [_onerror](er) { 16713 this[_close](); 16714 this[_writing] = true; 16715 this.emit("error", er); 16716 } 16717 [_open]() { 16718 fs9.open( 16719 this[_path], 16720 this[_flags], 16721 this[_mode], 16722 (er, fd) => this[_onopen](er, fd) 16723 ); 16724 } 16725 [_onopen](er, fd) { 16726 if (this[_defaultFlag] && this[_flags] === "r+" && er && er.code === "ENOENT") { 16727 this[_flags] = "w"; 16728 this[_open](); 16729 } else if (er) 16730 this[_onerror](er); 16731 else { 16732 this[_fd] = fd; 16733 this.emit("open", fd); 16734 this[_flush](); 16735 } 16736 } 16737 end(buf, enc) { 16738 if (buf) 16739 this.write(buf, enc); 16740 this[_ended] = true; 16741 if (!this[_writing] && !this[_queue].length && typeof this[_fd] === "number") 16742 this[_onwrite](null, 0); 16743 return this; 16744 } 16745 write(buf, enc) { 16746 if (typeof buf === "string") 16747 buf = Buffer.from(buf, enc); 16748 if (this[_ended]) { 16749 this.emit("error", new Error("write() after end()")); 16750 return false; 16751 } 16752 if (this[_fd] === null || this[_writing] || this[_queue].length) { 16753 this[_queue].push(buf); 16754 this[_needDrain] = true; 16755 return false; 16756 } 16757 this[_writing] = true; 16758 this[_write](buf); 16759 return true; 16760 } 16761 [_write](buf) { 16762 fs9.write(this[_fd], buf, 0, buf.length, this[_pos], (er, bw) => this[_onwrite](er, bw)); 16763 } 16764 [_onwrite](er, bw) { 16765 if (er) 16766 this[_onerror](er); 16767 else { 16768 if (this[_pos] !== null) 16769 this[_pos] += bw; 16770 if (this[_queue].length) 16771 this[_flush](); 16772 else { 16773 this[_writing] = false; 16774 if (this[_ended] && !this[_finished]) { 16775 this[_finished] = true; 16776 this[_close](); 16777 this.emit("finish"); 16778 } else if (this[_needDrain]) { 16779 this[_needDrain] = false; 16780 this.emit("drain"); 16781 } 16782 } 16783 } 16784 } 16785 [_flush]() { 16786 if (this[_queue].length === 0) { 16787 if (this[_ended]) 16788 this[_onwrite](null, 0); 16789 } else if (this[_queue].length === 1) 16790 this[_write](this[_queue].pop()); 16791 else { 16792 const iovec = this[_queue]; 16793 this[_queue] = []; 16794 writev( 16795 this[_fd], 16796 iovec, 16797 this[_pos], 16798 (er, bw) => this[_onwrite](er, bw) 16799 ); 16800 } 16801 } 16802 [_close]() { 16803 if (this[_autoClose] && typeof this[_fd] === "number") { 16804 const fd = this[_fd]; 16805 this[_fd] = null; 16806 fs9.close(fd, (er) => er ? this.emit("error", er) : this.emit("close")); 16807 } 16808 } 16809 }; 16810 var WriteStreamSync = class extends WriteStream { 16811 [_open]() { 16812 let fd; 16813 if (this[_defaultFlag] && this[_flags] === "r+") { 16814 try { 16815 fd = fs9.openSync(this[_path], this[_flags], this[_mode]); 16816 } catch (er) { 16817 if (er.code === "ENOENT") { 16818 this[_flags] = "w"; 16819 return this[_open](); 16820 } else 16821 throw er; 16822 } 16823 } else 16824 fd = fs9.openSync(this[_path], this[_flags], this[_mode]); 16825 this[_onopen](null, fd); 16826 } 16827 [_close]() { 16828 if (this[_autoClose] && typeof this[_fd] === "number") { 16829 const fd = this[_fd]; 16830 this[_fd] = null; 16831 fs9.closeSync(fd); 16832 this.emit("close"); 16833 } 16834 } 16835 [_write](buf) { 16836 let threw = true; 16837 try { 16838 this[_onwrite]( 16839 null, 16840 fs9.writeSync(this[_fd], buf, 0, buf.length, this[_pos]) 16841 ); 16842 threw = false; 16843 } finally { 16844 if (threw) 16845 try { 16846 this[_close](); 16847 } catch (_) { 16848 } 16849 } 16850 } 16851 }; 16852 exports.ReadStream = ReadStream; 16853 exports.ReadStreamSync = ReadStreamSync; 16854 exports.WriteStream = WriteStream; 16855 exports.WriteStreamSync = WriteStreamSync; 16856 } 16857}); 16858 16859// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/parse.js 16860var require_parse2 = __commonJS({ 16861 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/parse.js"(exports, module2) { 16862 "use strict"; 16863 var warner = require_warn_mixin(); 16864 var Header = require_header(); 16865 var EE = require("events"); 16866 var Yallist = require_yallist(); 16867 var maxMetaEntrySize = 1024 * 1024; 16868 var Entry = require_read_entry(); 16869 var Pax = require_pax(); 16870 var zlib = require_minizlib(); 16871 var { nextTick } = require("process"); 16872 var gzipHeader = Buffer.from([31, 139]); 16873 var STATE = Symbol("state"); 16874 var WRITEENTRY = Symbol("writeEntry"); 16875 var READENTRY = Symbol("readEntry"); 16876 var NEXTENTRY = Symbol("nextEntry"); 16877 var PROCESSENTRY = Symbol("processEntry"); 16878 var EX = Symbol("extendedHeader"); 16879 var GEX = Symbol("globalExtendedHeader"); 16880 var META = Symbol("meta"); 16881 var EMITMETA = Symbol("emitMeta"); 16882 var BUFFER = Symbol("buffer"); 16883 var QUEUE = Symbol("queue"); 16884 var ENDED = Symbol("ended"); 16885 var EMITTEDEND = Symbol("emittedEnd"); 16886 var EMIT = Symbol("emit"); 16887 var UNZIP = Symbol("unzip"); 16888 var CONSUMECHUNK = Symbol("consumeChunk"); 16889 var CONSUMECHUNKSUB = Symbol("consumeChunkSub"); 16890 var CONSUMEBODY = Symbol("consumeBody"); 16891 var CONSUMEMETA = Symbol("consumeMeta"); 16892 var CONSUMEHEADER = Symbol("consumeHeader"); 16893 var CONSUMING = Symbol("consuming"); 16894 var BUFFERCONCAT = Symbol("bufferConcat"); 16895 var MAYBEEND = Symbol("maybeEnd"); 16896 var WRITING = Symbol("writing"); 16897 var ABORTED = Symbol("aborted"); 16898 var DONE = Symbol("onDone"); 16899 var SAW_VALID_ENTRY = Symbol("sawValidEntry"); 16900 var SAW_NULL_BLOCK = Symbol("sawNullBlock"); 16901 var SAW_EOF = Symbol("sawEOF"); 16902 var CLOSESTREAM = Symbol("closeStream"); 16903 var noop = (_) => true; 16904 module2.exports = warner(class Parser extends EE { 16905 constructor(opt) { 16906 opt = opt || {}; 16907 super(opt); 16908 this.file = opt.file || ""; 16909 this[SAW_VALID_ENTRY] = null; 16910 this.on(DONE, (_) => { 16911 if (this[STATE] === "begin" || this[SAW_VALID_ENTRY] === false) { 16912 this.warn("TAR_BAD_ARCHIVE", "Unrecognized archive format"); 16913 } 16914 }); 16915 if (opt.ondone) { 16916 this.on(DONE, opt.ondone); 16917 } else { 16918 this.on(DONE, (_) => { 16919 this.emit("prefinish"); 16920 this.emit("finish"); 16921 this.emit("end"); 16922 }); 16923 } 16924 this.strict = !!opt.strict; 16925 this.maxMetaEntrySize = opt.maxMetaEntrySize || maxMetaEntrySize; 16926 this.filter = typeof opt.filter === "function" ? opt.filter : noop; 16927 const isTBR = opt.file && (opt.file.endsWith(".tar.br") || opt.file.endsWith(".tbr")); 16928 this.brotli = !opt.gzip && opt.brotli !== void 0 ? opt.brotli : isTBR ? void 0 : false; 16929 this.writable = true; 16930 this.readable = false; 16931 this[QUEUE] = new Yallist(); 16932 this[BUFFER] = null; 16933 this[READENTRY] = null; 16934 this[WRITEENTRY] = null; 16935 this[STATE] = "begin"; 16936 this[META] = ""; 16937 this[EX] = null; 16938 this[GEX] = null; 16939 this[ENDED] = false; 16940 this[UNZIP] = null; 16941 this[ABORTED] = false; 16942 this[SAW_NULL_BLOCK] = false; 16943 this[SAW_EOF] = false; 16944 this.on("end", () => this[CLOSESTREAM]()); 16945 if (typeof opt.onwarn === "function") { 16946 this.on("warn", opt.onwarn); 16947 } 16948 if (typeof opt.onentry === "function") { 16949 this.on("entry", opt.onentry); 16950 } 16951 } 16952 [CONSUMEHEADER](chunk, position) { 16953 if (this[SAW_VALID_ENTRY] === null) { 16954 this[SAW_VALID_ENTRY] = false; 16955 } 16956 let header; 16957 try { 16958 header = new Header(chunk, position, this[EX], this[GEX]); 16959 } catch (er) { 16960 return this.warn("TAR_ENTRY_INVALID", er); 16961 } 16962 if (header.nullBlock) { 16963 if (this[SAW_NULL_BLOCK]) { 16964 this[SAW_EOF] = true; 16965 if (this[STATE] === "begin") { 16966 this[STATE] = "header"; 16967 } 16968 this[EMIT]("eof"); 16969 } else { 16970 this[SAW_NULL_BLOCK] = true; 16971 this[EMIT]("nullBlock"); 16972 } 16973 } else { 16974 this[SAW_NULL_BLOCK] = false; 16975 if (!header.cksumValid) { 16976 this.warn("TAR_ENTRY_INVALID", "checksum failure", { header }); 16977 } else if (!header.path) { 16978 this.warn("TAR_ENTRY_INVALID", "path is required", { header }); 16979 } else { 16980 const type = header.type; 16981 if (/^(Symbolic)?Link$/.test(type) && !header.linkpath) { 16982 this.warn("TAR_ENTRY_INVALID", "linkpath required", { header }); 16983 } else if (!/^(Symbolic)?Link$/.test(type) && header.linkpath) { 16984 this.warn("TAR_ENTRY_INVALID", "linkpath forbidden", { header }); 16985 } else { 16986 const entry = this[WRITEENTRY] = new Entry(header, this[EX], this[GEX]); 16987 if (!this[SAW_VALID_ENTRY]) { 16988 if (entry.remain) { 16989 const onend = () => { 16990 if (!entry.invalid) { 16991 this[SAW_VALID_ENTRY] = true; 16992 } 16993 }; 16994 entry.on("end", onend); 16995 } else { 16996 this[SAW_VALID_ENTRY] = true; 16997 } 16998 } 16999 if (entry.meta) { 17000 if (entry.size > this.maxMetaEntrySize) { 17001 entry.ignore = true; 17002 this[EMIT]("ignoredEntry", entry); 17003 this[STATE] = "ignore"; 17004 entry.resume(); 17005 } else if (entry.size > 0) { 17006 this[META] = ""; 17007 entry.on("data", (c) => this[META] += c); 17008 this[STATE] = "meta"; 17009 } 17010 } else { 17011 this[EX] = null; 17012 entry.ignore = entry.ignore || !this.filter(entry.path, entry); 17013 if (entry.ignore) { 17014 this[EMIT]("ignoredEntry", entry); 17015 this[STATE] = entry.remain ? "ignore" : "header"; 17016 entry.resume(); 17017 } else { 17018 if (entry.remain) { 17019 this[STATE] = "body"; 17020 } else { 17021 this[STATE] = "header"; 17022 entry.end(); 17023 } 17024 if (!this[READENTRY]) { 17025 this[QUEUE].push(entry); 17026 this[NEXTENTRY](); 17027 } else { 17028 this[QUEUE].push(entry); 17029 } 17030 } 17031 } 17032 } 17033 } 17034 } 17035 } 17036 [CLOSESTREAM]() { 17037 nextTick(() => this.emit("close")); 17038 } 17039 [PROCESSENTRY](entry) { 17040 let go = true; 17041 if (!entry) { 17042 this[READENTRY] = null; 17043 go = false; 17044 } else if (Array.isArray(entry)) { 17045 this.emit.apply(this, entry); 17046 } else { 17047 this[READENTRY] = entry; 17048 this.emit("entry", entry); 17049 if (!entry.emittedEnd) { 17050 entry.on("end", (_) => this[NEXTENTRY]()); 17051 go = false; 17052 } 17053 } 17054 return go; 17055 } 17056 [NEXTENTRY]() { 17057 do { 17058 } while (this[PROCESSENTRY](this[QUEUE].shift())); 17059 if (!this[QUEUE].length) { 17060 const re = this[READENTRY]; 17061 const drainNow = !re || re.flowing || re.size === re.remain; 17062 if (drainNow) { 17063 if (!this[WRITING]) { 17064 this.emit("drain"); 17065 } 17066 } else { 17067 re.once("drain", (_) => this.emit("drain")); 17068 } 17069 } 17070 } 17071 [CONSUMEBODY](chunk, position) { 17072 const entry = this[WRITEENTRY]; 17073 const br = entry.blockRemain; 17074 const c = br >= chunk.length && position === 0 ? chunk : chunk.slice(position, position + br); 17075 entry.write(c); 17076 if (!entry.blockRemain) { 17077 this[STATE] = "header"; 17078 this[WRITEENTRY] = null; 17079 entry.end(); 17080 } 17081 return c.length; 17082 } 17083 [CONSUMEMETA](chunk, position) { 17084 const entry = this[WRITEENTRY]; 17085 const ret = this[CONSUMEBODY](chunk, position); 17086 if (!this[WRITEENTRY]) { 17087 this[EMITMETA](entry); 17088 } 17089 return ret; 17090 } 17091 [EMIT](ev, data, extra) { 17092 if (!this[QUEUE].length && !this[READENTRY]) { 17093 this.emit(ev, data, extra); 17094 } else { 17095 this[QUEUE].push([ev, data, extra]); 17096 } 17097 } 17098 [EMITMETA](entry) { 17099 this[EMIT]("meta", this[META]); 17100 switch (entry.type) { 17101 case "ExtendedHeader": 17102 case "OldExtendedHeader": 17103 this[EX] = Pax.parse(this[META], this[EX], false); 17104 break; 17105 case "GlobalExtendedHeader": 17106 this[GEX] = Pax.parse(this[META], this[GEX], true); 17107 break; 17108 case "NextFileHasLongPath": 17109 case "OldGnuLongPath": 17110 this[EX] = this[EX] || /* @__PURE__ */ Object.create(null); 17111 this[EX].path = this[META].replace(/\0.*/, ""); 17112 break; 17113 case "NextFileHasLongLinkpath": 17114 this[EX] = this[EX] || /* @__PURE__ */ Object.create(null); 17115 this[EX].linkpath = this[META].replace(/\0.*/, ""); 17116 break; 17117 default: 17118 throw new Error("unknown meta: " + entry.type); 17119 } 17120 } 17121 abort(error) { 17122 this[ABORTED] = true; 17123 this.emit("abort", error); 17124 this.warn("TAR_ABORT", error, { recoverable: false }); 17125 } 17126 write(chunk) { 17127 if (this[ABORTED]) { 17128 return; 17129 } 17130 const needSniff = this[UNZIP] === null || this.brotli === void 0 && this[UNZIP] === false; 17131 if (needSniff && chunk) { 17132 if (this[BUFFER]) { 17133 chunk = Buffer.concat([this[BUFFER], chunk]); 17134 this[BUFFER] = null; 17135 } 17136 if (chunk.length < gzipHeader.length) { 17137 this[BUFFER] = chunk; 17138 return true; 17139 } 17140 for (let i = 0; this[UNZIP] === null && i < gzipHeader.length; i++) { 17141 if (chunk[i] !== gzipHeader[i]) { 17142 this[UNZIP] = false; 17143 } 17144 } 17145 const maybeBrotli = this.brotli === void 0; 17146 if (this[UNZIP] === false && maybeBrotli) { 17147 if (chunk.length < 512) { 17148 if (this[ENDED]) { 17149 this.brotli = true; 17150 } else { 17151 this[BUFFER] = chunk; 17152 return true; 17153 } 17154 } else { 17155 try { 17156 new Header(chunk.slice(0, 512)); 17157 this.brotli = false; 17158 } catch (_) { 17159 this.brotli = true; 17160 } 17161 } 17162 } 17163 if (this[UNZIP] === null || this[UNZIP] === false && this.brotli) { 17164 const ended = this[ENDED]; 17165 this[ENDED] = false; 17166 this[UNZIP] = this[UNZIP] === null ? new zlib.Unzip() : new zlib.BrotliDecompress(); 17167 this[UNZIP].on("data", (chunk2) => this[CONSUMECHUNK](chunk2)); 17168 this[UNZIP].on("error", (er) => this.abort(er)); 17169 this[UNZIP].on("end", (_) => { 17170 this[ENDED] = true; 17171 this[CONSUMECHUNK](); 17172 }); 17173 this[WRITING] = true; 17174 const ret2 = this[UNZIP][ended ? "end" : "write"](chunk); 17175 this[WRITING] = false; 17176 return ret2; 17177 } 17178 } 17179 this[WRITING] = true; 17180 if (this[UNZIP]) { 17181 this[UNZIP].write(chunk); 17182 } else { 17183 this[CONSUMECHUNK](chunk); 17184 } 17185 this[WRITING] = false; 17186 const ret = this[QUEUE].length ? false : this[READENTRY] ? this[READENTRY].flowing : true; 17187 if (!ret && !this[QUEUE].length) { 17188 this[READENTRY].once("drain", (_) => this.emit("drain")); 17189 } 17190 return ret; 17191 } 17192 [BUFFERCONCAT](c) { 17193 if (c && !this[ABORTED]) { 17194 this[BUFFER] = this[BUFFER] ? Buffer.concat([this[BUFFER], c]) : c; 17195 } 17196 } 17197 [MAYBEEND]() { 17198 if (this[ENDED] && !this[EMITTEDEND] && !this[ABORTED] && !this[CONSUMING]) { 17199 this[EMITTEDEND] = true; 17200 const entry = this[WRITEENTRY]; 17201 if (entry && entry.blockRemain) { 17202 const have = this[BUFFER] ? this[BUFFER].length : 0; 17203 this.warn("TAR_BAD_ARCHIVE", `Truncated input (needed ${entry.blockRemain} more bytes, only ${have} available)`, { entry }); 17204 if (this[BUFFER]) { 17205 entry.write(this[BUFFER]); 17206 } 17207 entry.end(); 17208 } 17209 this[EMIT](DONE); 17210 } 17211 } 17212 [CONSUMECHUNK](chunk) { 17213 if (this[CONSUMING]) { 17214 this[BUFFERCONCAT](chunk); 17215 } else if (!chunk && !this[BUFFER]) { 17216 this[MAYBEEND](); 17217 } else { 17218 this[CONSUMING] = true; 17219 if (this[BUFFER]) { 17220 this[BUFFERCONCAT](chunk); 17221 const c = this[BUFFER]; 17222 this[BUFFER] = null; 17223 this[CONSUMECHUNKSUB](c); 17224 } else { 17225 this[CONSUMECHUNKSUB](chunk); 17226 } 17227 while (this[BUFFER] && this[BUFFER].length >= 512 && !this[ABORTED] && !this[SAW_EOF]) { 17228 const c = this[BUFFER]; 17229 this[BUFFER] = null; 17230 this[CONSUMECHUNKSUB](c); 17231 } 17232 this[CONSUMING] = false; 17233 } 17234 if (!this[BUFFER] || this[ENDED]) { 17235 this[MAYBEEND](); 17236 } 17237 } 17238 [CONSUMECHUNKSUB](chunk) { 17239 let position = 0; 17240 const length = chunk.length; 17241 while (position + 512 <= length && !this[ABORTED] && !this[SAW_EOF]) { 17242 switch (this[STATE]) { 17243 case "begin": 17244 case "header": 17245 this[CONSUMEHEADER](chunk, position); 17246 position += 512; 17247 break; 17248 case "ignore": 17249 case "body": 17250 position += this[CONSUMEBODY](chunk, position); 17251 break; 17252 case "meta": 17253 position += this[CONSUMEMETA](chunk, position); 17254 break; 17255 default: 17256 throw new Error("invalid state: " + this[STATE]); 17257 } 17258 } 17259 if (position < length) { 17260 if (this[BUFFER]) { 17261 this[BUFFER] = Buffer.concat([chunk.slice(position), this[BUFFER]]); 17262 } else { 17263 this[BUFFER] = chunk.slice(position); 17264 } 17265 } 17266 } 17267 end(chunk) { 17268 if (!this[ABORTED]) { 17269 if (this[UNZIP]) { 17270 this[UNZIP].end(chunk); 17271 } else { 17272 this[ENDED] = true; 17273 if (this.brotli === void 0) 17274 chunk = chunk || Buffer.alloc(0); 17275 this.write(chunk); 17276 } 17277 } 17278 } 17279 }); 17280 } 17281}); 17282 17283// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/list.js 17284var require_list = __commonJS({ 17285 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/list.js"(exports, module2) { 17286 "use strict"; 17287 var hlo = require_high_level_opt(); 17288 var Parser = require_parse2(); 17289 var fs9 = require("fs"); 17290 var fsm = require_fs_minipass(); 17291 var path10 = require("path"); 17292 var stripSlash = require_strip_trailing_slashes(); 17293 module2.exports = (opt_, files, cb) => { 17294 if (typeof opt_ === "function") { 17295 cb = opt_, files = null, opt_ = {}; 17296 } else if (Array.isArray(opt_)) { 17297 files = opt_, opt_ = {}; 17298 } 17299 if (typeof files === "function") { 17300 cb = files, files = null; 17301 } 17302 if (!files) { 17303 files = []; 17304 } else { 17305 files = Array.from(files); 17306 } 17307 const opt = hlo(opt_); 17308 if (opt.sync && typeof cb === "function") { 17309 throw new TypeError("callback not supported for sync tar functions"); 17310 } 17311 if (!opt.file && typeof cb === "function") { 17312 throw new TypeError("callback only supported with file option"); 17313 } 17314 if (files.length) { 17315 filesFilter(opt, files); 17316 } 17317 if (!opt.noResume) { 17318 onentryFunction(opt); 17319 } 17320 return opt.file && opt.sync ? listFileSync(opt) : opt.file ? listFile(opt, cb) : list(opt); 17321 }; 17322 var onentryFunction = (opt) => { 17323 const onentry = opt.onentry; 17324 opt.onentry = onentry ? (e) => { 17325 onentry(e); 17326 e.resume(); 17327 } : (e) => e.resume(); 17328 }; 17329 var filesFilter = (opt, files) => { 17330 const map = new Map(files.map((f) => [stripSlash(f), true])); 17331 const filter = opt.filter; 17332 const mapHas = (file, r) => { 17333 const root = r || path10.parse(file).root || "."; 17334 const ret = file === root ? false : map.has(file) ? map.get(file) : mapHas(path10.dirname(file), root); 17335 map.set(file, ret); 17336 return ret; 17337 }; 17338 opt.filter = filter ? (file, entry) => filter(file, entry) && mapHas(stripSlash(file)) : (file) => mapHas(stripSlash(file)); 17339 }; 17340 var listFileSync = (opt) => { 17341 const p = list(opt); 17342 const file = opt.file; 17343 let threw = true; 17344 let fd; 17345 try { 17346 const stat = fs9.statSync(file); 17347 const readSize = opt.maxReadSize || 16 * 1024 * 1024; 17348 if (stat.size < readSize) { 17349 p.end(fs9.readFileSync(file)); 17350 } else { 17351 let pos = 0; 17352 const buf = Buffer.allocUnsafe(readSize); 17353 fd = fs9.openSync(file, "r"); 17354 while (pos < stat.size) { 17355 const bytesRead = fs9.readSync(fd, buf, 0, readSize, pos); 17356 pos += bytesRead; 17357 p.write(buf.slice(0, bytesRead)); 17358 } 17359 p.end(); 17360 } 17361 threw = false; 17362 } finally { 17363 if (threw && fd) { 17364 try { 17365 fs9.closeSync(fd); 17366 } catch (er) { 17367 } 17368 } 17369 } 17370 }; 17371 var listFile = (opt, cb) => { 17372 const parse = new Parser(opt); 17373 const readSize = opt.maxReadSize || 16 * 1024 * 1024; 17374 const file = opt.file; 17375 const p = new Promise((resolve, reject) => { 17376 parse.on("error", reject); 17377 parse.on("end", resolve); 17378 fs9.stat(file, (er, stat) => { 17379 if (er) { 17380 reject(er); 17381 } else { 17382 const stream = new fsm.ReadStream(file, { 17383 readSize, 17384 size: stat.size 17385 }); 17386 stream.on("error", reject); 17387 stream.pipe(parse); 17388 } 17389 }); 17390 }); 17391 return cb ? p.then(cb, cb) : p; 17392 }; 17393 var list = (opt) => new Parser(opt); 17394 } 17395}); 17396 17397// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/create.js 17398var require_create = __commonJS({ 17399 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/create.js"(exports, module2) { 17400 "use strict"; 17401 var hlo = require_high_level_opt(); 17402 var Pack = require_pack(); 17403 var fsm = require_fs_minipass(); 17404 var t = require_list(); 17405 var path10 = require("path"); 17406 module2.exports = (opt_, files, cb) => { 17407 if (typeof files === "function") { 17408 cb = files; 17409 } 17410 if (Array.isArray(opt_)) { 17411 files = opt_, opt_ = {}; 17412 } 17413 if (!files || !Array.isArray(files) || !files.length) { 17414 throw new TypeError("no files or directories specified"); 17415 } 17416 files = Array.from(files); 17417 const opt = hlo(opt_); 17418 if (opt.sync && typeof cb === "function") { 17419 throw new TypeError("callback not supported for sync tar functions"); 17420 } 17421 if (!opt.file && typeof cb === "function") { 17422 throw new TypeError("callback only supported with file option"); 17423 } 17424 return opt.file && opt.sync ? createFileSync(opt, files) : opt.file ? createFile(opt, files, cb) : opt.sync ? createSync(opt, files) : create(opt, files); 17425 }; 17426 var createFileSync = (opt, files) => { 17427 const p = new Pack.Sync(opt); 17428 const stream = new fsm.WriteStreamSync(opt.file, { 17429 mode: opt.mode || 438 17430 }); 17431 p.pipe(stream); 17432 addFilesSync(p, files); 17433 }; 17434 var createFile = (opt, files, cb) => { 17435 const p = new Pack(opt); 17436 const stream = new fsm.WriteStream(opt.file, { 17437 mode: opt.mode || 438 17438 }); 17439 p.pipe(stream); 17440 const promise = new Promise((res, rej) => { 17441 stream.on("error", rej); 17442 stream.on("close", res); 17443 p.on("error", rej); 17444 }); 17445 addFilesAsync(p, files); 17446 return cb ? promise.then(cb, cb) : promise; 17447 }; 17448 var addFilesSync = (p, files) => { 17449 files.forEach((file) => { 17450 if (file.charAt(0) === "@") { 17451 t({ 17452 file: path10.resolve(p.cwd, file.slice(1)), 17453 sync: true, 17454 noResume: true, 17455 onentry: (entry) => p.add(entry) 17456 }); 17457 } else { 17458 p.add(file); 17459 } 17460 }); 17461 p.end(); 17462 }; 17463 var addFilesAsync = (p, files) => { 17464 while (files.length) { 17465 const file = files.shift(); 17466 if (file.charAt(0) === "@") { 17467 return t({ 17468 file: path10.resolve(p.cwd, file.slice(1)), 17469 noResume: true, 17470 onentry: (entry) => p.add(entry) 17471 }).then((_) => addFilesAsync(p, files)); 17472 } else { 17473 p.add(file); 17474 } 17475 } 17476 p.end(); 17477 }; 17478 var createSync = (opt, files) => { 17479 const p = new Pack.Sync(opt); 17480 addFilesSync(p, files); 17481 return p; 17482 }; 17483 var create = (opt, files) => { 17484 const p = new Pack(opt); 17485 addFilesAsync(p, files); 17486 return p; 17487 }; 17488 } 17489}); 17490 17491// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/replace.js 17492var require_replace = __commonJS({ 17493 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/replace.js"(exports, module2) { 17494 "use strict"; 17495 var hlo = require_high_level_opt(); 17496 var Pack = require_pack(); 17497 var fs9 = require("fs"); 17498 var fsm = require_fs_minipass(); 17499 var t = require_list(); 17500 var path10 = require("path"); 17501 var Header = require_header(); 17502 module2.exports = (opt_, files, cb) => { 17503 const opt = hlo(opt_); 17504 if (!opt.file) { 17505 throw new TypeError("file is required"); 17506 } 17507 if (opt.gzip || opt.brotli || opt.file.endsWith(".br") || opt.file.endsWith(".tbr")) { 17508 throw new TypeError("cannot append to compressed archives"); 17509 } 17510 if (!files || !Array.isArray(files) || !files.length) { 17511 throw new TypeError("no files or directories specified"); 17512 } 17513 files = Array.from(files); 17514 return opt.sync ? replaceSync(opt, files) : replace(opt, files, cb); 17515 }; 17516 var replaceSync = (opt, files) => { 17517 const p = new Pack.Sync(opt); 17518 let threw = true; 17519 let fd; 17520 let position; 17521 try { 17522 try { 17523 fd = fs9.openSync(opt.file, "r+"); 17524 } catch (er) { 17525 if (er.code === "ENOENT") { 17526 fd = fs9.openSync(opt.file, "w+"); 17527 } else { 17528 throw er; 17529 } 17530 } 17531 const st = fs9.fstatSync(fd); 17532 const headBuf = Buffer.alloc(512); 17533 POSITION: 17534 for (position = 0; position < st.size; position += 512) { 17535 for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) { 17536 bytes = fs9.readSync( 17537 fd, 17538 headBuf, 17539 bufPos, 17540 headBuf.length - bufPos, 17541 position + bufPos 17542 ); 17543 if (position === 0 && headBuf[0] === 31 && headBuf[1] === 139) { 17544 throw new Error("cannot append to compressed archives"); 17545 } 17546 if (!bytes) { 17547 break POSITION; 17548 } 17549 } 17550 const h = new Header(headBuf); 17551 if (!h.cksumValid) { 17552 break; 17553 } 17554 const entryBlockSize = 512 * Math.ceil(h.size / 512); 17555 if (position + entryBlockSize + 512 > st.size) { 17556 break; 17557 } 17558 position += entryBlockSize; 17559 if (opt.mtimeCache) { 17560 opt.mtimeCache.set(h.path, h.mtime); 17561 } 17562 } 17563 threw = false; 17564 streamSync(opt, p, position, fd, files); 17565 } finally { 17566 if (threw) { 17567 try { 17568 fs9.closeSync(fd); 17569 } catch (er) { 17570 } 17571 } 17572 } 17573 }; 17574 var streamSync = (opt, p, position, fd, files) => { 17575 const stream = new fsm.WriteStreamSync(opt.file, { 17576 fd, 17577 start: position 17578 }); 17579 p.pipe(stream); 17580 addFilesSync(p, files); 17581 }; 17582 var replace = (opt, files, cb) => { 17583 files = Array.from(files); 17584 const p = new Pack(opt); 17585 const getPos = (fd, size, cb_) => { 17586 const cb2 = (er, pos) => { 17587 if (er) { 17588 fs9.close(fd, (_) => cb_(er)); 17589 } else { 17590 cb_(null, pos); 17591 } 17592 }; 17593 let position = 0; 17594 if (size === 0) { 17595 return cb2(null, 0); 17596 } 17597 let bufPos = 0; 17598 const headBuf = Buffer.alloc(512); 17599 const onread = (er, bytes) => { 17600 if (er) { 17601 return cb2(er); 17602 } 17603 bufPos += bytes; 17604 if (bufPos < 512 && bytes) { 17605 return fs9.read( 17606 fd, 17607 headBuf, 17608 bufPos, 17609 headBuf.length - bufPos, 17610 position + bufPos, 17611 onread 17612 ); 17613 } 17614 if (position === 0 && headBuf[0] === 31 && headBuf[1] === 139) { 17615 return cb2(new Error("cannot append to compressed archives")); 17616 } 17617 if (bufPos < 512) { 17618 return cb2(null, position); 17619 } 17620 const h = new Header(headBuf); 17621 if (!h.cksumValid) { 17622 return cb2(null, position); 17623 } 17624 const entryBlockSize = 512 * Math.ceil(h.size / 512); 17625 if (position + entryBlockSize + 512 > size) { 17626 return cb2(null, position); 17627 } 17628 position += entryBlockSize + 512; 17629 if (position >= size) { 17630 return cb2(null, position); 17631 } 17632 if (opt.mtimeCache) { 17633 opt.mtimeCache.set(h.path, h.mtime); 17634 } 17635 bufPos = 0; 17636 fs9.read(fd, headBuf, 0, 512, position, onread); 17637 }; 17638 fs9.read(fd, headBuf, 0, 512, position, onread); 17639 }; 17640 const promise = new Promise((resolve, reject) => { 17641 p.on("error", reject); 17642 let flag = "r+"; 17643 const onopen = (er, fd) => { 17644 if (er && er.code === "ENOENT" && flag === "r+") { 17645 flag = "w+"; 17646 return fs9.open(opt.file, flag, onopen); 17647 } 17648 if (er) { 17649 return reject(er); 17650 } 17651 fs9.fstat(fd, (er2, st) => { 17652 if (er2) { 17653 return fs9.close(fd, () => reject(er2)); 17654 } 17655 getPos(fd, st.size, (er3, position) => { 17656 if (er3) { 17657 return reject(er3); 17658 } 17659 const stream = new fsm.WriteStream(opt.file, { 17660 fd, 17661 start: position 17662 }); 17663 p.pipe(stream); 17664 stream.on("error", reject); 17665 stream.on("close", resolve); 17666 addFilesAsync(p, files); 17667 }); 17668 }); 17669 }; 17670 fs9.open(opt.file, flag, onopen); 17671 }); 17672 return cb ? promise.then(cb, cb) : promise; 17673 }; 17674 var addFilesSync = (p, files) => { 17675 files.forEach((file) => { 17676 if (file.charAt(0) === "@") { 17677 t({ 17678 file: path10.resolve(p.cwd, file.slice(1)), 17679 sync: true, 17680 noResume: true, 17681 onentry: (entry) => p.add(entry) 17682 }); 17683 } else { 17684 p.add(file); 17685 } 17686 }); 17687 p.end(); 17688 }; 17689 var addFilesAsync = (p, files) => { 17690 while (files.length) { 17691 const file = files.shift(); 17692 if (file.charAt(0) === "@") { 17693 return t({ 17694 file: path10.resolve(p.cwd, file.slice(1)), 17695 noResume: true, 17696 onentry: (entry) => p.add(entry) 17697 }).then((_) => addFilesAsync(p, files)); 17698 } else { 17699 p.add(file); 17700 } 17701 } 17702 p.end(); 17703 }; 17704 } 17705}); 17706 17707// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/update.js 17708var require_update = __commonJS({ 17709 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/update.js"(exports, module2) { 17710 "use strict"; 17711 var hlo = require_high_level_opt(); 17712 var r = require_replace(); 17713 module2.exports = (opt_, files, cb) => { 17714 const opt = hlo(opt_); 17715 if (!opt.file) { 17716 throw new TypeError("file is required"); 17717 } 17718 if (opt.gzip || opt.brotli || opt.file.endsWith(".br") || opt.file.endsWith(".tbr")) { 17719 throw new TypeError("cannot append to compressed archives"); 17720 } 17721 if (!files || !Array.isArray(files) || !files.length) { 17722 throw new TypeError("no files or directories specified"); 17723 } 17724 files = Array.from(files); 17725 mtimeFilter(opt); 17726 return r(opt, files, cb); 17727 }; 17728 var mtimeFilter = (opt) => { 17729 const filter = opt.filter; 17730 if (!opt.mtimeCache) { 17731 opt.mtimeCache = /* @__PURE__ */ new Map(); 17732 } 17733 opt.filter = filter ? (path10, stat) => filter(path10, stat) && !(opt.mtimeCache.get(path10) > stat.mtime) : (path10, stat) => !(opt.mtimeCache.get(path10) > stat.mtime); 17734 }; 17735 } 17736}); 17737 17738// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/opts-arg.js 17739var require_opts_arg = __commonJS({ 17740 ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/opts-arg.js"(exports, module2) { 17741 var { promisify } = require("util"); 17742 var fs9 = require("fs"); 17743 var optsArg = (opts) => { 17744 if (!opts) 17745 opts = { mode: 511, fs: fs9 }; 17746 else if (typeof opts === "object") 17747 opts = { mode: 511, fs: fs9, ...opts }; 17748 else if (typeof opts === "number") 17749 opts = { mode: opts, fs: fs9 }; 17750 else if (typeof opts === "string") 17751 opts = { mode: parseInt(opts, 8), fs: fs9 }; 17752 else 17753 throw new TypeError("invalid options argument"); 17754 opts.mkdir = opts.mkdir || opts.fs.mkdir || fs9.mkdir; 17755 opts.mkdirAsync = promisify(opts.mkdir); 17756 opts.stat = opts.stat || opts.fs.stat || fs9.stat; 17757 opts.statAsync = promisify(opts.stat); 17758 opts.statSync = opts.statSync || opts.fs.statSync || fs9.statSync; 17759 opts.mkdirSync = opts.mkdirSync || opts.fs.mkdirSync || fs9.mkdirSync; 17760 return opts; 17761 }; 17762 module2.exports = optsArg; 17763 } 17764}); 17765 17766// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/path-arg.js 17767var require_path_arg = __commonJS({ 17768 ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/path-arg.js"(exports, module2) { 17769 var platform = process.env.__TESTING_MKDIRP_PLATFORM__ || process.platform; 17770 var { resolve, parse } = require("path"); 17771 var pathArg = (path10) => { 17772 if (/\0/.test(path10)) { 17773 throw Object.assign( 17774 new TypeError("path must be a string without null bytes"), 17775 { 17776 path: path10, 17777 code: "ERR_INVALID_ARG_VALUE" 17778 } 17779 ); 17780 } 17781 path10 = resolve(path10); 17782 if (platform === "win32") { 17783 const badWinChars = /[*|"<>?:]/; 17784 const { root } = parse(path10); 17785 if (badWinChars.test(path10.substr(root.length))) { 17786 throw Object.assign(new Error("Illegal characters in path."), { 17787 path: path10, 17788 code: "EINVAL" 17789 }); 17790 } 17791 } 17792 return path10; 17793 }; 17794 module2.exports = pathArg; 17795 } 17796}); 17797 17798// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/find-made.js 17799var require_find_made = __commonJS({ 17800 ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/find-made.js"(exports, module2) { 17801 var { dirname } = require("path"); 17802 var findMade = (opts, parent, path10 = void 0) => { 17803 if (path10 === parent) 17804 return Promise.resolve(); 17805 return opts.statAsync(parent).then( 17806 (st) => st.isDirectory() ? path10 : void 0, 17807 // will fail later 17808 (er) => er.code === "ENOENT" ? findMade(opts, dirname(parent), parent) : void 0 17809 ); 17810 }; 17811 var findMadeSync = (opts, parent, path10 = void 0) => { 17812 if (path10 === parent) 17813 return void 0; 17814 try { 17815 return opts.statSync(parent).isDirectory() ? path10 : void 0; 17816 } catch (er) { 17817 return er.code === "ENOENT" ? findMadeSync(opts, dirname(parent), parent) : void 0; 17818 } 17819 }; 17820 module2.exports = { findMade, findMadeSync }; 17821 } 17822}); 17823 17824// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/mkdirp-manual.js 17825var require_mkdirp_manual = __commonJS({ 17826 ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/mkdirp-manual.js"(exports, module2) { 17827 var { dirname } = require("path"); 17828 var mkdirpManual = (path10, opts, made) => { 17829 opts.recursive = false; 17830 const parent = dirname(path10); 17831 if (parent === path10) { 17832 return opts.mkdirAsync(path10, opts).catch((er) => { 17833 if (er.code !== "EISDIR") 17834 throw er; 17835 }); 17836 } 17837 return opts.mkdirAsync(path10, opts).then(() => made || path10, (er) => { 17838 if (er.code === "ENOENT") 17839 return mkdirpManual(parent, opts).then((made2) => mkdirpManual(path10, opts, made2)); 17840 if (er.code !== "EEXIST" && er.code !== "EROFS") 17841 throw er; 17842 return opts.statAsync(path10).then((st) => { 17843 if (st.isDirectory()) 17844 return made; 17845 else 17846 throw er; 17847 }, () => { 17848 throw er; 17849 }); 17850 }); 17851 }; 17852 var mkdirpManualSync = (path10, opts, made) => { 17853 const parent = dirname(path10); 17854 opts.recursive = false; 17855 if (parent === path10) { 17856 try { 17857 return opts.mkdirSync(path10, opts); 17858 } catch (er) { 17859 if (er.code !== "EISDIR") 17860 throw er; 17861 else 17862 return; 17863 } 17864 } 17865 try { 17866 opts.mkdirSync(path10, opts); 17867 return made || path10; 17868 } catch (er) { 17869 if (er.code === "ENOENT") 17870 return mkdirpManualSync(path10, opts, mkdirpManualSync(parent, opts, made)); 17871 if (er.code !== "EEXIST" && er.code !== "EROFS") 17872 throw er; 17873 try { 17874 if (!opts.statSync(path10).isDirectory()) 17875 throw er; 17876 } catch (_) { 17877 throw er; 17878 } 17879 } 17880 }; 17881 module2.exports = { mkdirpManual, mkdirpManualSync }; 17882 } 17883}); 17884 17885// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/mkdirp-native.js 17886var require_mkdirp_native = __commonJS({ 17887 ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/mkdirp-native.js"(exports, module2) { 17888 var { dirname } = require("path"); 17889 var { findMade, findMadeSync } = require_find_made(); 17890 var { mkdirpManual, mkdirpManualSync } = require_mkdirp_manual(); 17891 var mkdirpNative = (path10, opts) => { 17892 opts.recursive = true; 17893 const parent = dirname(path10); 17894 if (parent === path10) 17895 return opts.mkdirAsync(path10, opts); 17896 return findMade(opts, path10).then((made) => opts.mkdirAsync(path10, opts).then(() => made).catch((er) => { 17897 if (er.code === "ENOENT") 17898 return mkdirpManual(path10, opts); 17899 else 17900 throw er; 17901 })); 17902 }; 17903 var mkdirpNativeSync = (path10, opts) => { 17904 opts.recursive = true; 17905 const parent = dirname(path10); 17906 if (parent === path10) 17907 return opts.mkdirSync(path10, opts); 17908 const made = findMadeSync(opts, path10); 17909 try { 17910 opts.mkdirSync(path10, opts); 17911 return made; 17912 } catch (er) { 17913 if (er.code === "ENOENT") 17914 return mkdirpManualSync(path10, opts); 17915 else 17916 throw er; 17917 } 17918 }; 17919 module2.exports = { mkdirpNative, mkdirpNativeSync }; 17920 } 17921}); 17922 17923// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/use-native.js 17924var require_use_native = __commonJS({ 17925 ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/use-native.js"(exports, module2) { 17926 var fs9 = require("fs"); 17927 var version2 = process.env.__TESTING_MKDIRP_NODE_VERSION__ || process.version; 17928 var versArr = version2.replace(/^v/, "").split("."); 17929 var hasNative = +versArr[0] > 10 || +versArr[0] === 10 && +versArr[1] >= 12; 17930 var useNative = !hasNative ? () => false : (opts) => opts.mkdir === fs9.mkdir; 17931 var useNativeSync = !hasNative ? () => false : (opts) => opts.mkdirSync === fs9.mkdirSync; 17932 module2.exports = { useNative, useNativeSync }; 17933 } 17934}); 17935 17936// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/index.js 17937var require_mkdirp = __commonJS({ 17938 ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/index.js"(exports, module2) { 17939 var optsArg = require_opts_arg(); 17940 var pathArg = require_path_arg(); 17941 var { mkdirpNative, mkdirpNativeSync } = require_mkdirp_native(); 17942 var { mkdirpManual, mkdirpManualSync } = require_mkdirp_manual(); 17943 var { useNative, useNativeSync } = require_use_native(); 17944 var mkdirp = (path10, opts) => { 17945 path10 = pathArg(path10); 17946 opts = optsArg(opts); 17947 return useNative(opts) ? mkdirpNative(path10, opts) : mkdirpManual(path10, opts); 17948 }; 17949 var mkdirpSync = (path10, opts) => { 17950 path10 = pathArg(path10); 17951 opts = optsArg(opts); 17952 return useNativeSync(opts) ? mkdirpNativeSync(path10, opts) : mkdirpManualSync(path10, opts); 17953 }; 17954 mkdirp.sync = mkdirpSync; 17955 mkdirp.native = (path10, opts) => mkdirpNative(pathArg(path10), optsArg(opts)); 17956 mkdirp.manual = (path10, opts) => mkdirpManual(pathArg(path10), optsArg(opts)); 17957 mkdirp.nativeSync = (path10, opts) => mkdirpNativeSync(pathArg(path10), optsArg(opts)); 17958 mkdirp.manualSync = (path10, opts) => mkdirpManualSync(pathArg(path10), optsArg(opts)); 17959 module2.exports = mkdirp; 17960 } 17961}); 17962 17963// .yarn/cache/chownr-npm-2.0.0-638f1c9c61-594754e130.zip/node_modules/chownr/chownr.js 17964var require_chownr = __commonJS({ 17965 ".yarn/cache/chownr-npm-2.0.0-638f1c9c61-594754e130.zip/node_modules/chownr/chownr.js"(exports, module2) { 17966 "use strict"; 17967 var fs9 = require("fs"); 17968 var path10 = require("path"); 17969 var LCHOWN = fs9.lchown ? "lchown" : "chown"; 17970 var LCHOWNSYNC = fs9.lchownSync ? "lchownSync" : "chownSync"; 17971 var needEISDIRHandled = fs9.lchown && !process.version.match(/v1[1-9]+\./) && !process.version.match(/v10\.[6-9]/); 17972 var lchownSync = (path11, uid, gid) => { 17973 try { 17974 return fs9[LCHOWNSYNC](path11, uid, gid); 17975 } catch (er) { 17976 if (er.code !== "ENOENT") 17977 throw er; 17978 } 17979 }; 17980 var chownSync = (path11, uid, gid) => { 17981 try { 17982 return fs9.chownSync(path11, uid, gid); 17983 } catch (er) { 17984 if (er.code !== "ENOENT") 17985 throw er; 17986 } 17987 }; 17988 var handleEISDIR = needEISDIRHandled ? (path11, uid, gid, cb) => (er) => { 17989 if (!er || er.code !== "EISDIR") 17990 cb(er); 17991 else 17992 fs9.chown(path11, uid, gid, cb); 17993 } : (_, __, ___, cb) => cb; 17994 var handleEISDirSync = needEISDIRHandled ? (path11, uid, gid) => { 17995 try { 17996 return lchownSync(path11, uid, gid); 17997 } catch (er) { 17998 if (er.code !== "EISDIR") 17999 throw er; 18000 chownSync(path11, uid, gid); 18001 } 18002 } : (path11, uid, gid) => lchownSync(path11, uid, gid); 18003 var nodeVersion = process.version; 18004 var readdir = (path11, options, cb) => fs9.readdir(path11, options, cb); 18005 var readdirSync = (path11, options) => fs9.readdirSync(path11, options); 18006 if (/^v4\./.test(nodeVersion)) 18007 readdir = (path11, options, cb) => fs9.readdir(path11, cb); 18008 var chown = (cpath, uid, gid, cb) => { 18009 fs9[LCHOWN](cpath, uid, gid, handleEISDIR(cpath, uid, gid, (er) => { 18010 cb(er && er.code !== "ENOENT" ? er : null); 18011 })); 18012 }; 18013 var chownrKid = (p, child, uid, gid, cb) => { 18014 if (typeof child === "string") 18015 return fs9.lstat(path10.resolve(p, child), (er, stats) => { 18016 if (er) 18017 return cb(er.code !== "ENOENT" ? er : null); 18018 stats.name = child; 18019 chownrKid(p, stats, uid, gid, cb); 18020 }); 18021 if (child.isDirectory()) { 18022 chownr(path10.resolve(p, child.name), uid, gid, (er) => { 18023 if (er) 18024 return cb(er); 18025 const cpath = path10.resolve(p, child.name); 18026 chown(cpath, uid, gid, cb); 18027 }); 18028 } else { 18029 const cpath = path10.resolve(p, child.name); 18030 chown(cpath, uid, gid, cb); 18031 } 18032 }; 18033 var chownr = (p, uid, gid, cb) => { 18034 readdir(p, { withFileTypes: true }, (er, children) => { 18035 if (er) { 18036 if (er.code === "ENOENT") 18037 return cb(); 18038 else if (er.code !== "ENOTDIR" && er.code !== "ENOTSUP") 18039 return cb(er); 18040 } 18041 if (er || !children.length) 18042 return chown(p, uid, gid, cb); 18043 let len = children.length; 18044 let errState = null; 18045 const then = (er2) => { 18046 if (errState) 18047 return; 18048 if (er2) 18049 return cb(errState = er2); 18050 if (--len === 0) 18051 return chown(p, uid, gid, cb); 18052 }; 18053 children.forEach((child) => chownrKid(p, child, uid, gid, then)); 18054 }); 18055 }; 18056 var chownrKidSync = (p, child, uid, gid) => { 18057 if (typeof child === "string") { 18058 try { 18059 const stats = fs9.lstatSync(path10.resolve(p, child)); 18060 stats.name = child; 18061 child = stats; 18062 } catch (er) { 18063 if (er.code === "ENOENT") 18064 return; 18065 else 18066 throw er; 18067 } 18068 } 18069 if (child.isDirectory()) 18070 chownrSync(path10.resolve(p, child.name), uid, gid); 18071 handleEISDirSync(path10.resolve(p, child.name), uid, gid); 18072 }; 18073 var chownrSync = (p, uid, gid) => { 18074 let children; 18075 try { 18076 children = readdirSync(p, { withFileTypes: true }); 18077 } catch (er) { 18078 if (er.code === "ENOENT") 18079 return; 18080 else if (er.code === "ENOTDIR" || er.code === "ENOTSUP") 18081 return handleEISDirSync(p, uid, gid); 18082 else 18083 throw er; 18084 } 18085 if (children && children.length) 18086 children.forEach((child) => chownrKidSync(p, child, uid, gid)); 18087 return handleEISDirSync(p, uid, gid); 18088 }; 18089 module2.exports = chownr; 18090 chownr.sync = chownrSync; 18091 } 18092}); 18093 18094// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/mkdir.js 18095var require_mkdir = __commonJS({ 18096 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/mkdir.js"(exports, module2) { 18097 "use strict"; 18098 var mkdirp = require_mkdirp(); 18099 var fs9 = require("fs"); 18100 var path10 = require("path"); 18101 var chownr = require_chownr(); 18102 var normPath = require_normalize_windows_path(); 18103 var SymlinkError = class extends Error { 18104 constructor(symlink, path11) { 18105 super("Cannot extract through symbolic link"); 18106 this.path = path11; 18107 this.symlink = symlink; 18108 } 18109 get name() { 18110 return "SylinkError"; 18111 } 18112 }; 18113 var CwdError = class extends Error { 18114 constructor(path11, code) { 18115 super(code + ": Cannot cd into '" + path11 + "'"); 18116 this.path = path11; 18117 this.code = code; 18118 } 18119 get name() { 18120 return "CwdError"; 18121 } 18122 }; 18123 var cGet = (cache, key) => cache.get(normPath(key)); 18124 var cSet = (cache, key, val) => cache.set(normPath(key), val); 18125 var checkCwd = (dir, cb) => { 18126 fs9.stat(dir, (er, st) => { 18127 if (er || !st.isDirectory()) { 18128 er = new CwdError(dir, er && er.code || "ENOTDIR"); 18129 } 18130 cb(er); 18131 }); 18132 }; 18133 module2.exports = (dir, opt, cb) => { 18134 dir = normPath(dir); 18135 const umask = opt.umask; 18136 const mode = opt.mode | 448; 18137 const needChmod = (mode & umask) !== 0; 18138 const uid = opt.uid; 18139 const gid = opt.gid; 18140 const doChown = typeof uid === "number" && typeof gid === "number" && (uid !== opt.processUid || gid !== opt.processGid); 18141 const preserve = opt.preserve; 18142 const unlink = opt.unlink; 18143 const cache = opt.cache; 18144 const cwd = normPath(opt.cwd); 18145 const done = (er, created) => { 18146 if (er) { 18147 cb(er); 18148 } else { 18149 cSet(cache, dir, true); 18150 if (created && doChown) { 18151 chownr(created, uid, gid, (er2) => done(er2)); 18152 } else if (needChmod) { 18153 fs9.chmod(dir, mode, cb); 18154 } else { 18155 cb(); 18156 } 18157 } 18158 }; 18159 if (cache && cGet(cache, dir) === true) { 18160 return done(); 18161 } 18162 if (dir === cwd) { 18163 return checkCwd(dir, done); 18164 } 18165 if (preserve) { 18166 return mkdirp(dir, { mode }).then((made) => done(null, made), done); 18167 } 18168 const sub = normPath(path10.relative(cwd, dir)); 18169 const parts = sub.split("/"); 18170 mkdir_(cwd, parts, mode, cache, unlink, cwd, null, done); 18171 }; 18172 var mkdir_ = (base, parts, mode, cache, unlink, cwd, created, cb) => { 18173 if (!parts.length) { 18174 return cb(null, created); 18175 } 18176 const p = parts.shift(); 18177 const part = normPath(path10.resolve(base + "/" + p)); 18178 if (cGet(cache, part)) { 18179 return mkdir_(part, parts, mode, cache, unlink, cwd, created, cb); 18180 } 18181 fs9.mkdir(part, mode, onmkdir(part, parts, mode, cache, unlink, cwd, created, cb)); 18182 }; 18183 var onmkdir = (part, parts, mode, cache, unlink, cwd, created, cb) => (er) => { 18184 if (er) { 18185 fs9.lstat(part, (statEr, st) => { 18186 if (statEr) { 18187 statEr.path = statEr.path && normPath(statEr.path); 18188 cb(statEr); 18189 } else if (st.isDirectory()) { 18190 mkdir_(part, parts, mode, cache, unlink, cwd, created, cb); 18191 } else if (unlink) { 18192 fs9.unlink(part, (er2) => { 18193 if (er2) { 18194 return cb(er2); 18195 } 18196 fs9.mkdir(part, mode, onmkdir(part, parts, mode, cache, unlink, cwd, created, cb)); 18197 }); 18198 } else if (st.isSymbolicLink()) { 18199 return cb(new SymlinkError(part, part + "/" + parts.join("/"))); 18200 } else { 18201 cb(er); 18202 } 18203 }); 18204 } else { 18205 created = created || part; 18206 mkdir_(part, parts, mode, cache, unlink, cwd, created, cb); 18207 } 18208 }; 18209 var checkCwdSync = (dir) => { 18210 let ok = false; 18211 let code = "ENOTDIR"; 18212 try { 18213 ok = fs9.statSync(dir).isDirectory(); 18214 } catch (er) { 18215 code = er.code; 18216 } finally { 18217 if (!ok) { 18218 throw new CwdError(dir, code); 18219 } 18220 } 18221 }; 18222 module2.exports.sync = (dir, opt) => { 18223 dir = normPath(dir); 18224 const umask = opt.umask; 18225 const mode = opt.mode | 448; 18226 const needChmod = (mode & umask) !== 0; 18227 const uid = opt.uid; 18228 const gid = opt.gid; 18229 const doChown = typeof uid === "number" && typeof gid === "number" && (uid !== opt.processUid || gid !== opt.processGid); 18230 const preserve = opt.preserve; 18231 const unlink = opt.unlink; 18232 const cache = opt.cache; 18233 const cwd = normPath(opt.cwd); 18234 const done = (created2) => { 18235 cSet(cache, dir, true); 18236 if (created2 && doChown) { 18237 chownr.sync(created2, uid, gid); 18238 } 18239 if (needChmod) { 18240 fs9.chmodSync(dir, mode); 18241 } 18242 }; 18243 if (cache && cGet(cache, dir) === true) { 18244 return done(); 18245 } 18246 if (dir === cwd) { 18247 checkCwdSync(cwd); 18248 return done(); 18249 } 18250 if (preserve) { 18251 return done(mkdirp.sync(dir, mode)); 18252 } 18253 const sub = normPath(path10.relative(cwd, dir)); 18254 const parts = sub.split("/"); 18255 let created = null; 18256 for (let p = parts.shift(), part = cwd; p && (part += "/" + p); p = parts.shift()) { 18257 part = normPath(path10.resolve(part)); 18258 if (cGet(cache, part)) { 18259 continue; 18260 } 18261 try { 18262 fs9.mkdirSync(part, mode); 18263 created = created || part; 18264 cSet(cache, part, true); 18265 } catch (er) { 18266 const st = fs9.lstatSync(part); 18267 if (st.isDirectory()) { 18268 cSet(cache, part, true); 18269 continue; 18270 } else if (unlink) { 18271 fs9.unlinkSync(part); 18272 fs9.mkdirSync(part, mode); 18273 created = created || part; 18274 cSet(cache, part, true); 18275 continue; 18276 } else if (st.isSymbolicLink()) { 18277 return new SymlinkError(part, part + "/" + parts.join("/")); 18278 } 18279 } 18280 } 18281 return done(created); 18282 }; 18283 } 18284}); 18285 18286// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/normalize-unicode.js 18287var require_normalize_unicode = __commonJS({ 18288 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/normalize-unicode.js"(exports, module2) { 18289 var normalizeCache = /* @__PURE__ */ Object.create(null); 18290 var { hasOwnProperty } = Object.prototype; 18291 module2.exports = (s) => { 18292 if (!hasOwnProperty.call(normalizeCache, s)) { 18293 normalizeCache[s] = s.normalize("NFD"); 18294 } 18295 return normalizeCache[s]; 18296 }; 18297 } 18298}); 18299 18300// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/path-reservations.js 18301var require_path_reservations = __commonJS({ 18302 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/path-reservations.js"(exports, module2) { 18303 var assert3 = require("assert"); 18304 var normalize = require_normalize_unicode(); 18305 var stripSlashes = require_strip_trailing_slashes(); 18306 var { join: join2 } = require("path"); 18307 var platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform; 18308 var isWindows = platform === "win32"; 18309 module2.exports = () => { 18310 const queues = /* @__PURE__ */ new Map(); 18311 const reservations = /* @__PURE__ */ new Map(); 18312 const getDirs = (path10) => { 18313 const dirs = path10.split("/").slice(0, -1).reduce((set, path11) => { 18314 if (set.length) { 18315 path11 = join2(set[set.length - 1], path11); 18316 } 18317 set.push(path11 || "/"); 18318 return set; 18319 }, []); 18320 return dirs; 18321 }; 18322 const running = /* @__PURE__ */ new Set(); 18323 const getQueues = (fn2) => { 18324 const res = reservations.get(fn2); 18325 if (!res) { 18326 throw new Error("function does not have any path reservations"); 18327 } 18328 return { 18329 paths: res.paths.map((path10) => queues.get(path10)), 18330 dirs: [...res.dirs].map((path10) => queues.get(path10)) 18331 }; 18332 }; 18333 const check = (fn2) => { 18334 const { paths, dirs } = getQueues(fn2); 18335 return paths.every((q) => q[0] === fn2) && dirs.every((q) => q[0] instanceof Set && q[0].has(fn2)); 18336 }; 18337 const run2 = (fn2) => { 18338 if (running.has(fn2) || !check(fn2)) { 18339 return false; 18340 } 18341 running.add(fn2); 18342 fn2(() => clear(fn2)); 18343 return true; 18344 }; 18345 const clear = (fn2) => { 18346 if (!running.has(fn2)) { 18347 return false; 18348 } 18349 const { paths, dirs } = reservations.get(fn2); 18350 const next = /* @__PURE__ */ new Set(); 18351 paths.forEach((path10) => { 18352 const q = queues.get(path10); 18353 assert3.equal(q[0], fn2); 18354 if (q.length === 1) { 18355 queues.delete(path10); 18356 } else { 18357 q.shift(); 18358 if (typeof q[0] === "function") { 18359 next.add(q[0]); 18360 } else { 18361 q[0].forEach((fn3) => next.add(fn3)); 18362 } 18363 } 18364 }); 18365 dirs.forEach((dir) => { 18366 const q = queues.get(dir); 18367 assert3(q[0] instanceof Set); 18368 if (q[0].size === 1 && q.length === 1) { 18369 queues.delete(dir); 18370 } else if (q[0].size === 1) { 18371 q.shift(); 18372 next.add(q[0]); 18373 } else { 18374 q[0].delete(fn2); 18375 } 18376 }); 18377 running.delete(fn2); 18378 next.forEach((fn3) => run2(fn3)); 18379 return true; 18380 }; 18381 const reserve = (paths, fn2) => { 18382 paths = isWindows ? ["win32 parallelization disabled"] : paths.map((p) => { 18383 return stripSlashes(join2(normalize(p))).toLowerCase(); 18384 }); 18385 const dirs = new Set( 18386 paths.map((path10) => getDirs(path10)).reduce((a, b) => a.concat(b)) 18387 ); 18388 reservations.set(fn2, { dirs, paths }); 18389 paths.forEach((path10) => { 18390 const q = queues.get(path10); 18391 if (!q) { 18392 queues.set(path10, [fn2]); 18393 } else { 18394 q.push(fn2); 18395 } 18396 }); 18397 dirs.forEach((dir) => { 18398 const q = queues.get(dir); 18399 if (!q) { 18400 queues.set(dir, [/* @__PURE__ */ new Set([fn2])]); 18401 } else if (q[q.length - 1] instanceof Set) { 18402 q[q.length - 1].add(fn2); 18403 } else { 18404 q.push(/* @__PURE__ */ new Set([fn2])); 18405 } 18406 }); 18407 return run2(fn2); 18408 }; 18409 return { check, reserve }; 18410 }; 18411 } 18412}); 18413 18414// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/get-write-flag.js 18415var require_get_write_flag = __commonJS({ 18416 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/get-write-flag.js"(exports, module2) { 18417 var platform = process.env.__FAKE_PLATFORM__ || process.platform; 18418 var isWindows = platform === "win32"; 18419 var fs9 = global.__FAKE_TESTING_FS__ || require("fs"); 18420 var { O_CREAT, O_TRUNC, O_WRONLY, UV_FS_O_FILEMAP = 0 } = fs9.constants; 18421 var fMapEnabled = isWindows && !!UV_FS_O_FILEMAP; 18422 var fMapLimit = 512 * 1024; 18423 var fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY; 18424 module2.exports = !fMapEnabled ? () => "w" : (size) => size < fMapLimit ? fMapFlag : "w"; 18425 } 18426}); 18427 18428// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/unpack.js 18429var require_unpack = __commonJS({ 18430 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/unpack.js"(exports, module2) { 18431 "use strict"; 18432 var assert3 = require("assert"); 18433 var Parser = require_parse2(); 18434 var fs9 = require("fs"); 18435 var fsm = require_fs_minipass(); 18436 var path10 = require("path"); 18437 var mkdir4 = require_mkdir(); 18438 var wc = require_winchars(); 18439 var pathReservations = require_path_reservations(); 18440 var stripAbsolutePath = require_strip_absolute_path(); 18441 var normPath = require_normalize_windows_path(); 18442 var stripSlash = require_strip_trailing_slashes(); 18443 var normalize = require_normalize_unicode(); 18444 var ONENTRY = Symbol("onEntry"); 18445 var CHECKFS = Symbol("checkFs"); 18446 var CHECKFS2 = Symbol("checkFs2"); 18447 var PRUNECACHE = Symbol("pruneCache"); 18448 var ISREUSABLE = Symbol("isReusable"); 18449 var MAKEFS = Symbol("makeFs"); 18450 var FILE = Symbol("file"); 18451 var DIRECTORY = Symbol("directory"); 18452 var LINK = Symbol("link"); 18453 var SYMLINK = Symbol("symlink"); 18454 var HARDLINK = Symbol("hardlink"); 18455 var UNSUPPORTED = Symbol("unsupported"); 18456 var CHECKPATH = Symbol("checkPath"); 18457 var MKDIR = Symbol("mkdir"); 18458 var ONERROR = Symbol("onError"); 18459 var PENDING = Symbol("pending"); 18460 var PEND = Symbol("pend"); 18461 var UNPEND = Symbol("unpend"); 18462 var ENDED = Symbol("ended"); 18463 var MAYBECLOSE = Symbol("maybeClose"); 18464 var SKIP = Symbol("skip"); 18465 var DOCHOWN = Symbol("doChown"); 18466 var UID = Symbol("uid"); 18467 var GID = Symbol("gid"); 18468 var CHECKED_CWD = Symbol("checkedCwd"); 18469 var crypto = require("crypto"); 18470 var getFlag = require_get_write_flag(); 18471 var platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform; 18472 var isWindows = platform === "win32"; 18473 var unlinkFile = (path11, cb) => { 18474 if (!isWindows) { 18475 return fs9.unlink(path11, cb); 18476 } 18477 const name = path11 + ".DELETE." + crypto.randomBytes(16).toString("hex"); 18478 fs9.rename(path11, name, (er) => { 18479 if (er) { 18480 return cb(er); 18481 } 18482 fs9.unlink(name, cb); 18483 }); 18484 }; 18485 var unlinkFileSync = (path11) => { 18486 if (!isWindows) { 18487 return fs9.unlinkSync(path11); 18488 } 18489 const name = path11 + ".DELETE." + crypto.randomBytes(16).toString("hex"); 18490 fs9.renameSync(path11, name); 18491 fs9.unlinkSync(name); 18492 }; 18493 var uint32 = (a, b, c) => a === a >>> 0 ? a : b === b >>> 0 ? b : c; 18494 var cacheKeyNormalize = (path11) => stripSlash(normPath(normalize(path11))).toLowerCase(); 18495 var pruneCache = (cache, abs) => { 18496 abs = cacheKeyNormalize(abs); 18497 for (const path11 of cache.keys()) { 18498 const pnorm = cacheKeyNormalize(path11); 18499 if (pnorm === abs || pnorm.indexOf(abs + "/") === 0) { 18500 cache.delete(path11); 18501 } 18502 } 18503 }; 18504 var dropCache = (cache) => { 18505 for (const key of cache.keys()) { 18506 cache.delete(key); 18507 } 18508 }; 18509 var Unpack = class extends Parser { 18510 constructor(opt) { 18511 if (!opt) { 18512 opt = {}; 18513 } 18514 opt.ondone = (_) => { 18515 this[ENDED] = true; 18516 this[MAYBECLOSE](); 18517 }; 18518 super(opt); 18519 this[CHECKED_CWD] = false; 18520 this.reservations = pathReservations(); 18521 this.transform = typeof opt.transform === "function" ? opt.transform : null; 18522 this.writable = true; 18523 this.readable = false; 18524 this[PENDING] = 0; 18525 this[ENDED] = false; 18526 this.dirCache = opt.dirCache || /* @__PURE__ */ new Map(); 18527 if (typeof opt.uid === "number" || typeof opt.gid === "number") { 18528 if (typeof opt.uid !== "number" || typeof opt.gid !== "number") { 18529 throw new TypeError("cannot set owner without number uid and gid"); 18530 } 18531 if (opt.preserveOwner) { 18532 throw new TypeError( 18533 "cannot preserve owner in archive and also set owner explicitly" 18534 ); 18535 } 18536 this.uid = opt.uid; 18537 this.gid = opt.gid; 18538 this.setOwner = true; 18539 } else { 18540 this.uid = null; 18541 this.gid = null; 18542 this.setOwner = false; 18543 } 18544 if (opt.preserveOwner === void 0 && typeof opt.uid !== "number") { 18545 this.preserveOwner = process.getuid && process.getuid() === 0; 18546 } else { 18547 this.preserveOwner = !!opt.preserveOwner; 18548 } 18549 this.processUid = (this.preserveOwner || this.setOwner) && process.getuid ? process.getuid() : null; 18550 this.processGid = (this.preserveOwner || this.setOwner) && process.getgid ? process.getgid() : null; 18551 this.forceChown = opt.forceChown === true; 18552 this.win32 = !!opt.win32 || isWindows; 18553 this.newer = !!opt.newer; 18554 this.keep = !!opt.keep; 18555 this.noMtime = !!opt.noMtime; 18556 this.preservePaths = !!opt.preservePaths; 18557 this.unlink = !!opt.unlink; 18558 this.cwd = normPath(path10.resolve(opt.cwd || process.cwd())); 18559 this.strip = +opt.strip || 0; 18560 this.processUmask = opt.noChmod ? 0 : process.umask(); 18561 this.umask = typeof opt.umask === "number" ? opt.umask : this.processUmask; 18562 this.dmode = opt.dmode || 511 & ~this.umask; 18563 this.fmode = opt.fmode || 438 & ~this.umask; 18564 this.on("entry", (entry) => this[ONENTRY](entry)); 18565 } 18566 // a bad or damaged archive is a warning for Parser, but an error 18567 // when extracting. Mark those errors as unrecoverable, because 18568 // the Unpack contract cannot be met. 18569 warn(code, msg, data = {}) { 18570 if (code === "TAR_BAD_ARCHIVE" || code === "TAR_ABORT") { 18571 data.recoverable = false; 18572 } 18573 return super.warn(code, msg, data); 18574 } 18575 [MAYBECLOSE]() { 18576 if (this[ENDED] && this[PENDING] === 0) { 18577 this.emit("prefinish"); 18578 this.emit("finish"); 18579 this.emit("end"); 18580 } 18581 } 18582 [CHECKPATH](entry) { 18583 if (this.strip) { 18584 const parts = normPath(entry.path).split("/"); 18585 if (parts.length < this.strip) { 18586 return false; 18587 } 18588 entry.path = parts.slice(this.strip).join("/"); 18589 if (entry.type === "Link") { 18590 const linkparts = normPath(entry.linkpath).split("/"); 18591 if (linkparts.length >= this.strip) { 18592 entry.linkpath = linkparts.slice(this.strip).join("/"); 18593 } else { 18594 return false; 18595 } 18596 } 18597 } 18598 if (!this.preservePaths) { 18599 const p = normPath(entry.path); 18600 const parts = p.split("/"); 18601 if (parts.includes("..") || isWindows && /^[a-z]:\.\.$/i.test(parts[0])) { 18602 this.warn("TAR_ENTRY_ERROR", `path contains '..'`, { 18603 entry, 18604 path: p 18605 }); 18606 return false; 18607 } 18608 const [root, stripped] = stripAbsolutePath(p); 18609 if (root) { 18610 entry.path = stripped; 18611 this.warn("TAR_ENTRY_INFO", `stripping ${root} from absolute path`, { 18612 entry, 18613 path: p 18614 }); 18615 } 18616 } 18617 if (path10.isAbsolute(entry.path)) { 18618 entry.absolute = normPath(path10.resolve(entry.path)); 18619 } else { 18620 entry.absolute = normPath(path10.resolve(this.cwd, entry.path)); 18621 } 18622 if (!this.preservePaths && entry.absolute.indexOf(this.cwd + "/") !== 0 && entry.absolute !== this.cwd) { 18623 this.warn("TAR_ENTRY_ERROR", "path escaped extraction target", { 18624 entry, 18625 path: normPath(entry.path), 18626 resolvedPath: entry.absolute, 18627 cwd: this.cwd 18628 }); 18629 return false; 18630 } 18631 if (entry.absolute === this.cwd && entry.type !== "Directory" && entry.type !== "GNUDumpDir") { 18632 return false; 18633 } 18634 if (this.win32) { 18635 const { root: aRoot } = path10.win32.parse(entry.absolute); 18636 entry.absolute = aRoot + wc.encode(entry.absolute.slice(aRoot.length)); 18637 const { root: pRoot } = path10.win32.parse(entry.path); 18638 entry.path = pRoot + wc.encode(entry.path.slice(pRoot.length)); 18639 } 18640 return true; 18641 } 18642 [ONENTRY](entry) { 18643 if (!this[CHECKPATH](entry)) { 18644 return entry.resume(); 18645 } 18646 assert3.equal(typeof entry.absolute, "string"); 18647 switch (entry.type) { 18648 case "Directory": 18649 case "GNUDumpDir": 18650 if (entry.mode) { 18651 entry.mode = entry.mode | 448; 18652 } 18653 case "File": 18654 case "OldFile": 18655 case "ContiguousFile": 18656 case "Link": 18657 case "SymbolicLink": 18658 return this[CHECKFS](entry); 18659 case "CharacterDevice": 18660 case "BlockDevice": 18661 case "FIFO": 18662 default: 18663 return this[UNSUPPORTED](entry); 18664 } 18665 } 18666 [ONERROR](er, entry) { 18667 if (er.name === "CwdError") { 18668 this.emit("error", er); 18669 } else { 18670 this.warn("TAR_ENTRY_ERROR", er, { entry }); 18671 this[UNPEND](); 18672 entry.resume(); 18673 } 18674 } 18675 [MKDIR](dir, mode, cb) { 18676 mkdir4(normPath(dir), { 18677 uid: this.uid, 18678 gid: this.gid, 18679 processUid: this.processUid, 18680 processGid: this.processGid, 18681 umask: this.processUmask, 18682 preserve: this.preservePaths, 18683 unlink: this.unlink, 18684 cache: this.dirCache, 18685 cwd: this.cwd, 18686 mode, 18687 noChmod: this.noChmod 18688 }, cb); 18689 } 18690 [DOCHOWN](entry) { 18691 return this.forceChown || this.preserveOwner && (typeof entry.uid === "number" && entry.uid !== this.processUid || typeof entry.gid === "number" && entry.gid !== this.processGid) || (typeof this.uid === "number" && this.uid !== this.processUid || typeof this.gid === "number" && this.gid !== this.processGid); 18692 } 18693 [UID](entry) { 18694 return uint32(this.uid, entry.uid, this.processUid); 18695 } 18696 [GID](entry) { 18697 return uint32(this.gid, entry.gid, this.processGid); 18698 } 18699 [FILE](entry, fullyDone) { 18700 const mode = entry.mode & 4095 || this.fmode; 18701 const stream = new fsm.WriteStream(entry.absolute, { 18702 flags: getFlag(entry.size), 18703 mode, 18704 autoClose: false 18705 }); 18706 stream.on("error", (er) => { 18707 if (stream.fd) { 18708 fs9.close(stream.fd, () => { 18709 }); 18710 } 18711 stream.write = () => true; 18712 this[ONERROR](er, entry); 18713 fullyDone(); 18714 }); 18715 let actions = 1; 18716 const done = (er) => { 18717 if (er) { 18718 if (stream.fd) { 18719 fs9.close(stream.fd, () => { 18720 }); 18721 } 18722 this[ONERROR](er, entry); 18723 fullyDone(); 18724 return; 18725 } 18726 if (--actions === 0) { 18727 fs9.close(stream.fd, (er2) => { 18728 if (er2) { 18729 this[ONERROR](er2, entry); 18730 } else { 18731 this[UNPEND](); 18732 } 18733 fullyDone(); 18734 }); 18735 } 18736 }; 18737 stream.on("finish", (_) => { 18738 const abs = entry.absolute; 18739 const fd = stream.fd; 18740 if (entry.mtime && !this.noMtime) { 18741 actions++; 18742 const atime = entry.atime || /* @__PURE__ */ new Date(); 18743 const mtime = entry.mtime; 18744 fs9.futimes(fd, atime, mtime, (er) => er ? fs9.utimes(abs, atime, mtime, (er2) => done(er2 && er)) : done()); 18745 } 18746 if (this[DOCHOWN](entry)) { 18747 actions++; 18748 const uid = this[UID](entry); 18749 const gid = this[GID](entry); 18750 fs9.fchown(fd, uid, gid, (er) => er ? fs9.chown(abs, uid, gid, (er2) => done(er2 && er)) : done()); 18751 } 18752 done(); 18753 }); 18754 const tx = this.transform ? this.transform(entry) || entry : entry; 18755 if (tx !== entry) { 18756 tx.on("error", (er) => { 18757 this[ONERROR](er, entry); 18758 fullyDone(); 18759 }); 18760 entry.pipe(tx); 18761 } 18762 tx.pipe(stream); 18763 } 18764 [DIRECTORY](entry, fullyDone) { 18765 const mode = entry.mode & 4095 || this.dmode; 18766 this[MKDIR](entry.absolute, mode, (er) => { 18767 if (er) { 18768 this[ONERROR](er, entry); 18769 fullyDone(); 18770 return; 18771 } 18772 let actions = 1; 18773 const done = (_) => { 18774 if (--actions === 0) { 18775 fullyDone(); 18776 this[UNPEND](); 18777 entry.resume(); 18778 } 18779 }; 18780 if (entry.mtime && !this.noMtime) { 18781 actions++; 18782 fs9.utimes(entry.absolute, entry.atime || /* @__PURE__ */ new Date(), entry.mtime, done); 18783 } 18784 if (this[DOCHOWN](entry)) { 18785 actions++; 18786 fs9.chown(entry.absolute, this[UID](entry), this[GID](entry), done); 18787 } 18788 done(); 18789 }); 18790 } 18791 [UNSUPPORTED](entry) { 18792 entry.unsupported = true; 18793 this.warn( 18794 "TAR_ENTRY_UNSUPPORTED", 18795 `unsupported entry type: ${entry.type}`, 18796 { entry } 18797 ); 18798 entry.resume(); 18799 } 18800 [SYMLINK](entry, done) { 18801 this[LINK](entry, entry.linkpath, "symlink", done); 18802 } 18803 [HARDLINK](entry, done) { 18804 const linkpath = normPath(path10.resolve(this.cwd, entry.linkpath)); 18805 this[LINK](entry, linkpath, "link", done); 18806 } 18807 [PEND]() { 18808 this[PENDING]++; 18809 } 18810 [UNPEND]() { 18811 this[PENDING]--; 18812 this[MAYBECLOSE](); 18813 } 18814 [SKIP](entry) { 18815 this[UNPEND](); 18816 entry.resume(); 18817 } 18818 // Check if we can reuse an existing filesystem entry safely and 18819 // overwrite it, rather than unlinking and recreating 18820 // Windows doesn't report a useful nlink, so we just never reuse entries 18821 [ISREUSABLE](entry, st) { 18822 return entry.type === "File" && !this.unlink && st.isFile() && st.nlink <= 1 && !isWindows; 18823 } 18824 // check if a thing is there, and if so, try to clobber it 18825 [CHECKFS](entry) { 18826 this[PEND](); 18827 const paths = [entry.path]; 18828 if (entry.linkpath) { 18829 paths.push(entry.linkpath); 18830 } 18831 this.reservations.reserve(paths, (done) => this[CHECKFS2](entry, done)); 18832 } 18833 [PRUNECACHE](entry) { 18834 if (entry.type === "SymbolicLink") { 18835 dropCache(this.dirCache); 18836 } else if (entry.type !== "Directory") { 18837 pruneCache(this.dirCache, entry.absolute); 18838 } 18839 } 18840 [CHECKFS2](entry, fullyDone) { 18841 this[PRUNECACHE](entry); 18842 const done = (er) => { 18843 this[PRUNECACHE](entry); 18844 fullyDone(er); 18845 }; 18846 const checkCwd = () => { 18847 this[MKDIR](this.cwd, this.dmode, (er) => { 18848 if (er) { 18849 this[ONERROR](er, entry); 18850 done(); 18851 return; 18852 } 18853 this[CHECKED_CWD] = true; 18854 start(); 18855 }); 18856 }; 18857 const start = () => { 18858 if (entry.absolute !== this.cwd) { 18859 const parent = normPath(path10.dirname(entry.absolute)); 18860 if (parent !== this.cwd) { 18861 return this[MKDIR](parent, this.dmode, (er) => { 18862 if (er) { 18863 this[ONERROR](er, entry); 18864 done(); 18865 return; 18866 } 18867 afterMakeParent(); 18868 }); 18869 } 18870 } 18871 afterMakeParent(); 18872 }; 18873 const afterMakeParent = () => { 18874 fs9.lstat(entry.absolute, (lstatEr, st) => { 18875 if (st && (this.keep || this.newer && st.mtime > entry.mtime)) { 18876 this[SKIP](entry); 18877 done(); 18878 return; 18879 } 18880 if (lstatEr || this[ISREUSABLE](entry, st)) { 18881 return this[MAKEFS](null, entry, done); 18882 } 18883 if (st.isDirectory()) { 18884 if (entry.type === "Directory") { 18885 const needChmod = !this.noChmod && entry.mode && (st.mode & 4095) !== entry.mode; 18886 const afterChmod = (er) => this[MAKEFS](er, entry, done); 18887 if (!needChmod) { 18888 return afterChmod(); 18889 } 18890 return fs9.chmod(entry.absolute, entry.mode, afterChmod); 18891 } 18892 if (entry.absolute !== this.cwd) { 18893 return fs9.rmdir(entry.absolute, (er) => this[MAKEFS](er, entry, done)); 18894 } 18895 } 18896 if (entry.absolute === this.cwd) { 18897 return this[MAKEFS](null, entry, done); 18898 } 18899 unlinkFile(entry.absolute, (er) => this[MAKEFS](er, entry, done)); 18900 }); 18901 }; 18902 if (this[CHECKED_CWD]) { 18903 start(); 18904 } else { 18905 checkCwd(); 18906 } 18907 } 18908 [MAKEFS](er, entry, done) { 18909 if (er) { 18910 this[ONERROR](er, entry); 18911 done(); 18912 return; 18913 } 18914 switch (entry.type) { 18915 case "File": 18916 case "OldFile": 18917 case "ContiguousFile": 18918 return this[FILE](entry, done); 18919 case "Link": 18920 return this[HARDLINK](entry, done); 18921 case "SymbolicLink": 18922 return this[SYMLINK](entry, done); 18923 case "Directory": 18924 case "GNUDumpDir": 18925 return this[DIRECTORY](entry, done); 18926 } 18927 } 18928 [LINK](entry, linkpath, link, done) { 18929 fs9[link](linkpath, entry.absolute, (er) => { 18930 if (er) { 18931 this[ONERROR](er, entry); 18932 } else { 18933 this[UNPEND](); 18934 entry.resume(); 18935 } 18936 done(); 18937 }); 18938 } 18939 }; 18940 var callSync = (fn2) => { 18941 try { 18942 return [null, fn2()]; 18943 } catch (er) { 18944 return [er, null]; 18945 } 18946 }; 18947 var UnpackSync = class extends Unpack { 18948 [MAKEFS](er, entry) { 18949 return super[MAKEFS](er, entry, () => { 18950 }); 18951 } 18952 [CHECKFS](entry) { 18953 this[PRUNECACHE](entry); 18954 if (!this[CHECKED_CWD]) { 18955 const er2 = this[MKDIR](this.cwd, this.dmode); 18956 if (er2) { 18957 return this[ONERROR](er2, entry); 18958 } 18959 this[CHECKED_CWD] = true; 18960 } 18961 if (entry.absolute !== this.cwd) { 18962 const parent = normPath(path10.dirname(entry.absolute)); 18963 if (parent !== this.cwd) { 18964 const mkParent = this[MKDIR](parent, this.dmode); 18965 if (mkParent) { 18966 return this[ONERROR](mkParent, entry); 18967 } 18968 } 18969 } 18970 const [lstatEr, st] = callSync(() => fs9.lstatSync(entry.absolute)); 18971 if (st && (this.keep || this.newer && st.mtime > entry.mtime)) { 18972 return this[SKIP](entry); 18973 } 18974 if (lstatEr || this[ISREUSABLE](entry, st)) { 18975 return this[MAKEFS](null, entry); 18976 } 18977 if (st.isDirectory()) { 18978 if (entry.type === "Directory") { 18979 const needChmod = !this.noChmod && entry.mode && (st.mode & 4095) !== entry.mode; 18980 const [er3] = needChmod ? callSync(() => { 18981 fs9.chmodSync(entry.absolute, entry.mode); 18982 }) : []; 18983 return this[MAKEFS](er3, entry); 18984 } 18985 const [er2] = callSync(() => fs9.rmdirSync(entry.absolute)); 18986 this[MAKEFS](er2, entry); 18987 } 18988 const [er] = entry.absolute === this.cwd ? [] : callSync(() => unlinkFileSync(entry.absolute)); 18989 this[MAKEFS](er, entry); 18990 } 18991 [FILE](entry, done) { 18992 const mode = entry.mode & 4095 || this.fmode; 18993 const oner = (er) => { 18994 let closeError; 18995 try { 18996 fs9.closeSync(fd); 18997 } catch (e) { 18998 closeError = e; 18999 } 19000 if (er || closeError) { 19001 this[ONERROR](er || closeError, entry); 19002 } 19003 done(); 19004 }; 19005 let fd; 19006 try { 19007 fd = fs9.openSync(entry.absolute, getFlag(entry.size), mode); 19008 } catch (er) { 19009 return oner(er); 19010 } 19011 const tx = this.transform ? this.transform(entry) || entry : entry; 19012 if (tx !== entry) { 19013 tx.on("error", (er) => this[ONERROR](er, entry)); 19014 entry.pipe(tx); 19015 } 19016 tx.on("data", (chunk) => { 19017 try { 19018 fs9.writeSync(fd, chunk, 0, chunk.length); 19019 } catch (er) { 19020 oner(er); 19021 } 19022 }); 19023 tx.on("end", (_) => { 19024 let er = null; 19025 if (entry.mtime && !this.noMtime) { 19026 const atime = entry.atime || /* @__PURE__ */ new Date(); 19027 const mtime = entry.mtime; 19028 try { 19029 fs9.futimesSync(fd, atime, mtime); 19030 } catch (futimeser) { 19031 try { 19032 fs9.utimesSync(entry.absolute, atime, mtime); 19033 } catch (utimeser) { 19034 er = futimeser; 19035 } 19036 } 19037 } 19038 if (this[DOCHOWN](entry)) { 19039 const uid = this[UID](entry); 19040 const gid = this[GID](entry); 19041 try { 19042 fs9.fchownSync(fd, uid, gid); 19043 } catch (fchowner) { 19044 try { 19045 fs9.chownSync(entry.absolute, uid, gid); 19046 } catch (chowner) { 19047 er = er || fchowner; 19048 } 19049 } 19050 } 19051 oner(er); 19052 }); 19053 } 19054 [DIRECTORY](entry, done) { 19055 const mode = entry.mode & 4095 || this.dmode; 19056 const er = this[MKDIR](entry.absolute, mode); 19057 if (er) { 19058 this[ONERROR](er, entry); 19059 done(); 19060 return; 19061 } 19062 if (entry.mtime && !this.noMtime) { 19063 try { 19064 fs9.utimesSync(entry.absolute, entry.atime || /* @__PURE__ */ new Date(), entry.mtime); 19065 } catch (er2) { 19066 } 19067 } 19068 if (this[DOCHOWN](entry)) { 19069 try { 19070 fs9.chownSync(entry.absolute, this[UID](entry), this[GID](entry)); 19071 } catch (er2) { 19072 } 19073 } 19074 done(); 19075 entry.resume(); 19076 } 19077 [MKDIR](dir, mode) { 19078 try { 19079 return mkdir4.sync(normPath(dir), { 19080 uid: this.uid, 19081 gid: this.gid, 19082 processUid: this.processUid, 19083 processGid: this.processGid, 19084 umask: this.processUmask, 19085 preserve: this.preservePaths, 19086 unlink: this.unlink, 19087 cache: this.dirCache, 19088 cwd: this.cwd, 19089 mode 19090 }); 19091 } catch (er) { 19092 return er; 19093 } 19094 } 19095 [LINK](entry, linkpath, link, done) { 19096 try { 19097 fs9[link + "Sync"](linkpath, entry.absolute); 19098 done(); 19099 entry.resume(); 19100 } catch (er) { 19101 return this[ONERROR](er, entry); 19102 } 19103 } 19104 }; 19105 Unpack.Sync = UnpackSync; 19106 module2.exports = Unpack; 19107 } 19108}); 19109 19110// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/extract.js 19111var require_extract = __commonJS({ 19112 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/extract.js"(exports, module2) { 19113 "use strict"; 19114 var hlo = require_high_level_opt(); 19115 var Unpack = require_unpack(); 19116 var fs9 = require("fs"); 19117 var fsm = require_fs_minipass(); 19118 var path10 = require("path"); 19119 var stripSlash = require_strip_trailing_slashes(); 19120 module2.exports = (opt_, files, cb) => { 19121 if (typeof opt_ === "function") { 19122 cb = opt_, files = null, opt_ = {}; 19123 } else if (Array.isArray(opt_)) { 19124 files = opt_, opt_ = {}; 19125 } 19126 if (typeof files === "function") { 19127 cb = files, files = null; 19128 } 19129 if (!files) { 19130 files = []; 19131 } else { 19132 files = Array.from(files); 19133 } 19134 const opt = hlo(opt_); 19135 if (opt.sync && typeof cb === "function") { 19136 throw new TypeError("callback not supported for sync tar functions"); 19137 } 19138 if (!opt.file && typeof cb === "function") { 19139 throw new TypeError("callback only supported with file option"); 19140 } 19141 if (files.length) { 19142 filesFilter(opt, files); 19143 } 19144 return opt.file && opt.sync ? extractFileSync(opt) : opt.file ? extractFile(opt, cb) : opt.sync ? extractSync(opt) : extract(opt); 19145 }; 19146 var filesFilter = (opt, files) => { 19147 const map = new Map(files.map((f) => [stripSlash(f), true])); 19148 const filter = opt.filter; 19149 const mapHas = (file, r) => { 19150 const root = r || path10.parse(file).root || "."; 19151 const ret = file === root ? false : map.has(file) ? map.get(file) : mapHas(path10.dirname(file), root); 19152 map.set(file, ret); 19153 return ret; 19154 }; 19155 opt.filter = filter ? (file, entry) => filter(file, entry) && mapHas(stripSlash(file)) : (file) => mapHas(stripSlash(file)); 19156 }; 19157 var extractFileSync = (opt) => { 19158 const u = new Unpack.Sync(opt); 19159 const file = opt.file; 19160 const stat = fs9.statSync(file); 19161 const readSize = opt.maxReadSize || 16 * 1024 * 1024; 19162 const stream = new fsm.ReadStreamSync(file, { 19163 readSize, 19164 size: stat.size 19165 }); 19166 stream.pipe(u); 19167 }; 19168 var extractFile = (opt, cb) => { 19169 const u = new Unpack(opt); 19170 const readSize = opt.maxReadSize || 16 * 1024 * 1024; 19171 const file = opt.file; 19172 const p = new Promise((resolve, reject) => { 19173 u.on("error", reject); 19174 u.on("close", resolve); 19175 fs9.stat(file, (er, stat) => { 19176 if (er) { 19177 reject(er); 19178 } else { 19179 const stream = new fsm.ReadStream(file, { 19180 readSize, 19181 size: stat.size 19182 }); 19183 stream.on("error", reject); 19184 stream.pipe(u); 19185 } 19186 }); 19187 }); 19188 return cb ? p.then(cb, cb) : p; 19189 }; 19190 var extractSync = (opt) => new Unpack.Sync(opt); 19191 var extract = (opt) => new Unpack(opt); 19192 } 19193}); 19194 19195// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/index.js 19196var require_tar = __commonJS({ 19197 ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/index.js"(exports) { 19198 "use strict"; 19199 exports.c = exports.create = require_create(); 19200 exports.r = exports.replace = require_replace(); 19201 exports.t = exports.list = require_list(); 19202 exports.u = exports.update = require_update(); 19203 exports.x = exports.extract = require_extract(); 19204 exports.Pack = require_pack(); 19205 exports.Unpack = require_unpack(); 19206 exports.Parse = require_parse2(); 19207 exports.ReadEntry = require_read_entry(); 19208 exports.WriteEntry = require_write_entry(); 19209 exports.Header = require_header(); 19210 exports.Pax = require_pax(); 19211 exports.types = require_types(); 19212 } 19213}); 19214 19215// .yarn/cache/v8-compile-cache-npm-2.4.0-5979f8e405-3878511925.zip/node_modules/v8-compile-cache/v8-compile-cache.js 19216var require_v8_compile_cache = __commonJS({ 19217 ".yarn/cache/v8-compile-cache-npm-2.4.0-5979f8e405-3878511925.zip/node_modules/v8-compile-cache/v8-compile-cache.js"(exports, module2) { 19218 "use strict"; 19219 var Module2 = require("module"); 19220 var crypto = require("crypto"); 19221 var fs9 = require("fs"); 19222 var path10 = require("path"); 19223 var vm = require("vm"); 19224 var os3 = require("os"); 19225 var hasOwnProperty = Object.prototype.hasOwnProperty; 19226 var FileSystemBlobStore = class { 19227 constructor(directory, prefix) { 19228 const name = prefix ? slashEscape(prefix + ".") : ""; 19229 this._blobFilename = path10.join(directory, name + "BLOB"); 19230 this._mapFilename = path10.join(directory, name + "MAP"); 19231 this._lockFilename = path10.join(directory, name + "LOCK"); 19232 this._directory = directory; 19233 this._load(); 19234 } 19235 has(key, invalidationKey) { 19236 if (hasOwnProperty.call(this._memoryBlobs, key)) { 19237 return this._invalidationKeys[key] === invalidationKey; 19238 } else if (hasOwnProperty.call(this._storedMap, key)) { 19239 return this._storedMap[key][0] === invalidationKey; 19240 } 19241 return false; 19242 } 19243 get(key, invalidationKey) { 19244 if (hasOwnProperty.call(this._memoryBlobs, key)) { 19245 if (this._invalidationKeys[key] === invalidationKey) { 19246 return this._memoryBlobs[key]; 19247 } 19248 } else if (hasOwnProperty.call(this._storedMap, key)) { 19249 const mapping = this._storedMap[key]; 19250 if (mapping[0] === invalidationKey) { 19251 return this._storedBlob.slice(mapping[1], mapping[2]); 19252 } 19253 } 19254 } 19255 set(key, invalidationKey, buffer) { 19256 this._invalidationKeys[key] = invalidationKey; 19257 this._memoryBlobs[key] = buffer; 19258 this._dirty = true; 19259 } 19260 delete(key) { 19261 if (hasOwnProperty.call(this._memoryBlobs, key)) { 19262 this._dirty = true; 19263 delete this._memoryBlobs[key]; 19264 } 19265 if (hasOwnProperty.call(this._invalidationKeys, key)) { 19266 this._dirty = true; 19267 delete this._invalidationKeys[key]; 19268 } 19269 if (hasOwnProperty.call(this._storedMap, key)) { 19270 this._dirty = true; 19271 delete this._storedMap[key]; 19272 } 19273 } 19274 isDirty() { 19275 return this._dirty; 19276 } 19277 save() { 19278 const dump = this._getDump(); 19279 const blobToStore = Buffer.concat(dump[0]); 19280 const mapToStore = JSON.stringify(dump[1]); 19281 try { 19282 mkdirpSync(this._directory); 19283 fs9.writeFileSync(this._lockFilename, "LOCK", { flag: "wx" }); 19284 } catch (error) { 19285 return false; 19286 } 19287 try { 19288 fs9.writeFileSync(this._blobFilename, blobToStore); 19289 fs9.writeFileSync(this._mapFilename, mapToStore); 19290 } finally { 19291 fs9.unlinkSync(this._lockFilename); 19292 } 19293 return true; 19294 } 19295 _load() { 19296 try { 19297 this._storedBlob = fs9.readFileSync(this._blobFilename); 19298 this._storedMap = JSON.parse(fs9.readFileSync(this._mapFilename)); 19299 } catch (e) { 19300 this._storedBlob = Buffer.alloc(0); 19301 this._storedMap = {}; 19302 } 19303 this._dirty = false; 19304 this._memoryBlobs = {}; 19305 this._invalidationKeys = {}; 19306 } 19307 _getDump() { 19308 const buffers = []; 19309 const newMap = {}; 19310 let offset = 0; 19311 function push(key, invalidationKey, buffer) { 19312 buffers.push(buffer); 19313 newMap[key] = [invalidationKey, offset, offset + buffer.length]; 19314 offset += buffer.length; 19315 } 19316 for (const key of Object.keys(this._memoryBlobs)) { 19317 const buffer = this._memoryBlobs[key]; 19318 const invalidationKey = this._invalidationKeys[key]; 19319 push(key, invalidationKey, buffer); 19320 } 19321 for (const key of Object.keys(this._storedMap)) { 19322 if (hasOwnProperty.call(newMap, key)) 19323 continue; 19324 const mapping = this._storedMap[key]; 19325 const buffer = this._storedBlob.slice(mapping[1], mapping[2]); 19326 push(key, mapping[0], buffer); 19327 } 19328 return [buffers, newMap]; 19329 } 19330 }; 19331 var NativeCompileCache = class { 19332 constructor() { 19333 this._cacheStore = null; 19334 this._previousModuleCompile = null; 19335 } 19336 setCacheStore(cacheStore) { 19337 this._cacheStore = cacheStore; 19338 } 19339 install() { 19340 const self2 = this; 19341 const hasRequireResolvePaths = typeof require.resolve.paths === "function"; 19342 this._previousModuleCompile = Module2.prototype._compile; 19343 Module2.prototype._compile = function(content, filename) { 19344 const mod = this; 19345 function require2(id) { 19346 return mod.require(id); 19347 } 19348 function resolve(request, options) { 19349 return Module2._resolveFilename(request, mod, false, options); 19350 } 19351 require2.resolve = resolve; 19352 if (hasRequireResolvePaths) { 19353 resolve.paths = function paths(request) { 19354 return Module2._resolveLookupPaths(request, mod, true); 19355 }; 19356 } 19357 require2.main = process.mainModule; 19358 require2.extensions = Module2._extensions; 19359 require2.cache = Module2._cache; 19360 const dirname = path10.dirname(filename); 19361 const compiledWrapper = self2._moduleCompile(filename, content); 19362 const args = [mod.exports, require2, mod, filename, dirname, process, global, Buffer]; 19363 return compiledWrapper.apply(mod.exports, args); 19364 }; 19365 } 19366 uninstall() { 19367 Module2.prototype._compile = this._previousModuleCompile; 19368 } 19369 _moduleCompile(filename, content) { 19370 var contLen = content.length; 19371 if (contLen >= 2) { 19372 if (content.charCodeAt(0) === 35 && content.charCodeAt(1) === 33) { 19373 if (contLen === 2) { 19374 content = ""; 19375 } else { 19376 var i = 2; 19377 for (; i < contLen; ++i) { 19378 var code = content.charCodeAt(i); 19379 if (code === 10 || code === 13) 19380 break; 19381 } 19382 if (i === contLen) { 19383 content = ""; 19384 } else { 19385 content = content.slice(i); 19386 } 19387 } 19388 } 19389 } 19390 var wrapper = Module2.wrap(content); 19391 var invalidationKey = crypto.createHash("sha1").update(content, "utf8").digest("hex"); 19392 var buffer = this._cacheStore.get(filename, invalidationKey); 19393 var script = new vm.Script(wrapper, { 19394 filename, 19395 lineOffset: 0, 19396 displayErrors: true, 19397 cachedData: buffer, 19398 produceCachedData: true 19399 }); 19400 if (script.cachedDataProduced) { 19401 this._cacheStore.set(filename, invalidationKey, script.cachedData); 19402 } else if (script.cachedDataRejected) { 19403 this._cacheStore.delete(filename); 19404 } 19405 var compiledWrapper = script.runInThisContext({ 19406 filename, 19407 lineOffset: 0, 19408 columnOffset: 0, 19409 displayErrors: true 19410 }); 19411 return compiledWrapper; 19412 } 19413 }; 19414 function mkdirpSync(p_) { 19415 _mkdirpSync(path10.resolve(p_), 511); 19416 } 19417 function _mkdirpSync(p, mode) { 19418 try { 19419 fs9.mkdirSync(p, mode); 19420 } catch (err0) { 19421 if (err0.code === "ENOENT") { 19422 _mkdirpSync(path10.dirname(p)); 19423 _mkdirpSync(p); 19424 } else { 19425 try { 19426 const stat = fs9.statSync(p); 19427 if (!stat.isDirectory()) { 19428 throw err0; 19429 } 19430 } catch (err1) { 19431 throw err0; 19432 } 19433 } 19434 } 19435 } 19436 function slashEscape(str) { 19437 const ESCAPE_LOOKUP = { 19438 "\\": "zB", 19439 ":": "zC", 19440 "/": "zS", 19441 "\0": "z0", 19442 "z": "zZ" 19443 }; 19444 const ESCAPE_REGEX = /[\\:/\x00z]/g; 19445 return str.replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]); 19446 } 19447 function supportsCachedData() { 19448 const script = new vm.Script('""', { produceCachedData: true }); 19449 return script.cachedDataProduced === true; 19450 } 19451 function getCacheDir() { 19452 const v8_compile_cache_cache_dir = process.env.V8_COMPILE_CACHE_CACHE_DIR; 19453 if (v8_compile_cache_cache_dir) { 19454 return v8_compile_cache_cache_dir; 19455 } 19456 const dirname = typeof process.getuid === "function" ? "v8-compile-cache-" + process.getuid() : "v8-compile-cache"; 19457 const arch = process.arch; 19458 const version2 = typeof process.versions.v8 === "string" ? process.versions.v8 : typeof process.versions.chakracore === "string" ? "chakracore-" + process.versions.chakracore : "node-" + process.version; 19459 const cacheDir = path10.join(os3.tmpdir(), dirname, arch, version2); 19460 return cacheDir; 19461 } 19462 function getMainName() { 19463 const mainName = require.main && typeof require.main.filename === "string" ? require.main.filename : process.cwd(); 19464 return mainName; 19465 } 19466 if (!process.env.DISABLE_V8_COMPILE_CACHE && supportsCachedData()) { 19467 const cacheDir = getCacheDir(); 19468 const prefix = getMainName(); 19469 const blobStore = new FileSystemBlobStore(cacheDir, prefix); 19470 const nativeCompileCache = new NativeCompileCache(); 19471 nativeCompileCache.setCacheStore(blobStore); 19472 nativeCompileCache.install(); 19473 process.once("exit", () => { 19474 if (blobStore.isDirty()) { 19475 blobStore.save(); 19476 } 19477 nativeCompileCache.uninstall(); 19478 }); 19479 } 19480 module2.exports.__TEST__ = { 19481 FileSystemBlobStore, 19482 NativeCompileCache, 19483 mkdirpSync, 19484 slashEscape, 19485 supportsCachedData, 19486 getCacheDir, 19487 getMainName 19488 }; 19489 } 19490}); 19491 19492// .yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/posix.js 19493var require_posix = __commonJS({ 19494 ".yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/posix.js"(exports) { 19495 "use strict"; 19496 Object.defineProperty(exports, "__esModule", { value: true }); 19497 exports.sync = exports.isexe = void 0; 19498 var fs_1 = require("fs"); 19499 var promises_1 = require("fs/promises"); 19500 var isexe = async (path10, options = {}) => { 19501 const { ignoreErrors = false } = options; 19502 try { 19503 return checkStat(await (0, promises_1.stat)(path10), options); 19504 } catch (e) { 19505 const er = e; 19506 if (ignoreErrors || er.code === "EACCES") 19507 return false; 19508 throw er; 19509 } 19510 }; 19511 exports.isexe = isexe; 19512 var sync = (path10, options = {}) => { 19513 const { ignoreErrors = false } = options; 19514 try { 19515 return checkStat((0, fs_1.statSync)(path10), options); 19516 } catch (e) { 19517 const er = e; 19518 if (ignoreErrors || er.code === "EACCES") 19519 return false; 19520 throw er; 19521 } 19522 }; 19523 exports.sync = sync; 19524 var checkStat = (stat, options) => stat.isFile() && checkMode(stat, options); 19525 var checkMode = (stat, options) => { 19526 const myUid = options.uid ?? process.getuid?.(); 19527 const myGroups = options.groups ?? process.getgroups?.() ?? []; 19528 const myGid = options.gid ?? process.getgid?.() ?? myGroups[0]; 19529 if (myUid === void 0 || myGid === void 0) { 19530 throw new Error("cannot get uid or gid"); 19531 } 19532 const groups = /* @__PURE__ */ new Set([myGid, ...myGroups]); 19533 const mod = stat.mode; 19534 const uid = stat.uid; 19535 const gid = stat.gid; 19536 const u = parseInt("100", 8); 19537 const g = parseInt("010", 8); 19538 const o = parseInt("001", 8); 19539 const ug = u | g; 19540 return !!(mod & o || mod & g && groups.has(gid) || mod & u && uid === myUid || mod & ug && myUid === 0); 19541 }; 19542 } 19543}); 19544 19545// .yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/win32.js 19546var require_win32 = __commonJS({ 19547 ".yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/win32.js"(exports) { 19548 "use strict"; 19549 Object.defineProperty(exports, "__esModule", { value: true }); 19550 exports.sync = exports.isexe = void 0; 19551 var fs_1 = require("fs"); 19552 var promises_1 = require("fs/promises"); 19553 var isexe = async (path10, options = {}) => { 19554 const { ignoreErrors = false } = options; 19555 try { 19556 return checkStat(await (0, promises_1.stat)(path10), path10, options); 19557 } catch (e) { 19558 const er = e; 19559 if (ignoreErrors || er.code === "EACCES") 19560 return false; 19561 throw er; 19562 } 19563 }; 19564 exports.isexe = isexe; 19565 var sync = (path10, options = {}) => { 19566 const { ignoreErrors = false } = options; 19567 try { 19568 return checkStat((0, fs_1.statSync)(path10), path10, options); 19569 } catch (e) { 19570 const er = e; 19571 if (ignoreErrors || er.code === "EACCES") 19572 return false; 19573 throw er; 19574 } 19575 }; 19576 exports.sync = sync; 19577 var checkPathExt = (path10, options) => { 19578 const { pathExt = process.env.PATHEXT || "" } = options; 19579 const peSplit = pathExt.split(";"); 19580 if (peSplit.indexOf("") !== -1) { 19581 return true; 19582 } 19583 for (let i = 0; i < peSplit.length; i++) { 19584 const p = peSplit[i].toLowerCase(); 19585 const ext = path10.substring(path10.length - p.length).toLowerCase(); 19586 if (p && ext === p) { 19587 return true; 19588 } 19589 } 19590 return false; 19591 }; 19592 var checkStat = (stat, path10, options) => stat.isFile() && checkPathExt(path10, options); 19593 } 19594}); 19595 19596// .yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/options.js 19597var require_options = __commonJS({ 19598 ".yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/options.js"(exports) { 19599 "use strict"; 19600 Object.defineProperty(exports, "__esModule", { value: true }); 19601 } 19602}); 19603 19604// .yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/index.js 19605var require_cjs = __commonJS({ 19606 ".yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/index.js"(exports) { 19607 "use strict"; 19608 var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { 19609 if (k2 === void 0) 19610 k2 = k; 19611 var desc = Object.getOwnPropertyDescriptor(m, k); 19612 if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { 19613 desc = { enumerable: true, get: function() { 19614 return m[k]; 19615 } }; 19616 } 19617 Object.defineProperty(o, k2, desc); 19618 } : function(o, m, k, k2) { 19619 if (k2 === void 0) 19620 k2 = k; 19621 o[k2] = m[k]; 19622 }); 19623 var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { 19624 Object.defineProperty(o, "default", { enumerable: true, value: v }); 19625 } : function(o, v) { 19626 o["default"] = v; 19627 }); 19628 var __importStar = exports && exports.__importStar || function(mod) { 19629 if (mod && mod.__esModule) 19630 return mod; 19631 var result = {}; 19632 if (mod != null) { 19633 for (var k in mod) 19634 if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) 19635 __createBinding(result, mod, k); 19636 } 19637 __setModuleDefault(result, mod); 19638 return result; 19639 }; 19640 var __exportStar = exports && exports.__exportStar || function(m, exports2) { 19641 for (var p in m) 19642 if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) 19643 __createBinding(exports2, m, p); 19644 }; 19645 Object.defineProperty(exports, "__esModule", { value: true }); 19646 exports.sync = exports.isexe = exports.posix = exports.win32 = void 0; 19647 var posix = __importStar(require_posix()); 19648 exports.posix = posix; 19649 var win32 = __importStar(require_win32()); 19650 exports.win32 = win32; 19651 __exportStar(require_options(), exports); 19652 var platform = process.env._ISEXE_TEST_PLATFORM_ || process.platform; 19653 var impl = platform === "win32" ? win32 : posix; 19654 exports.isexe = impl.isexe; 19655 exports.sync = impl.sync; 19656 } 19657}); 19658 19659// .yarn/cache/which-npm-4.0.0-dd31cd4928-449fa5c44e.zip/node_modules/which/lib/index.js 19660var require_lib = __commonJS({ 19661 ".yarn/cache/which-npm-4.0.0-dd31cd4928-449fa5c44e.zip/node_modules/which/lib/index.js"(exports, module2) { 19662 var { isexe, sync: isexeSync } = require_cjs(); 19663 var { join: join2, delimiter, sep, posix } = require("path"); 19664 var isWindows = process.platform === "win32"; 19665 var rSlash = new RegExp(`[${posix.sep}${sep === posix.sep ? "" : sep}]`.replace(/(\\)/g, "\\$1")); 19666 var rRel = new RegExp(`^\\.${rSlash.source}`); 19667 var getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" }); 19668 var getPathInfo = (cmd, { 19669 path: optPath = process.env.PATH, 19670 pathExt: optPathExt = process.env.PATHEXT, 19671 delimiter: optDelimiter = delimiter 19672 }) => { 19673 const pathEnv = cmd.match(rSlash) ? [""] : [ 19674 // windows always checks the cwd first 19675 ...isWindows ? [process.cwd()] : [], 19676 ...(optPath || /* istanbul ignore next: very unusual */ 19677 "").split(optDelimiter) 19678 ]; 19679 if (isWindows) { 19680 const pathExtExe = optPathExt || [".EXE", ".CMD", ".BAT", ".COM"].join(optDelimiter); 19681 const pathExt = pathExtExe.split(optDelimiter).flatMap((item) => [item, item.toLowerCase()]); 19682 if (cmd.includes(".") && pathExt[0] !== "") { 19683 pathExt.unshift(""); 19684 } 19685 return { pathEnv, pathExt, pathExtExe }; 19686 } 19687 return { pathEnv, pathExt: [""] }; 19688 }; 19689 var getPathPart = (raw, cmd) => { 19690 const pathPart = /^".*"$/.test(raw) ? raw.slice(1, -1) : raw; 19691 const prefix = !pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : ""; 19692 return prefix + join2(pathPart, cmd); 19693 }; 19694 var which3 = async (cmd, opt = {}) => { 19695 const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt); 19696 const found = []; 19697 for (const envPart of pathEnv) { 19698 const p = getPathPart(envPart, cmd); 19699 for (const ext of pathExt) { 19700 const withExt = p + ext; 19701 const is = await isexe(withExt, { pathExt: pathExtExe, ignoreErrors: true }); 19702 if (is) { 19703 if (!opt.all) { 19704 return withExt; 19705 } 19706 found.push(withExt); 19707 } 19708 } 19709 } 19710 if (opt.all && found.length) { 19711 return found; 19712 } 19713 if (opt.nothrow) { 19714 return null; 19715 } 19716 throw getNotFoundError(cmd); 19717 }; 19718 var whichSync = (cmd, opt = {}) => { 19719 const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt); 19720 const found = []; 19721 for (const pathEnvPart of pathEnv) { 19722 const p = getPathPart(pathEnvPart, cmd); 19723 for (const ext of pathExt) { 19724 const withExt = p + ext; 19725 const is = isexeSync(withExt, { pathExt: pathExtExe, ignoreErrors: true }); 19726 if (is) { 19727 if (!opt.all) { 19728 return withExt; 19729 } 19730 found.push(withExt); 19731 } 19732 } 19733 } 19734 if (opt.all && found.length) { 19735 return found; 19736 } 19737 if (opt.nothrow) { 19738 return null; 19739 } 19740 throw getNotFoundError(cmd); 19741 }; 19742 module2.exports = which3; 19743 which3.sync = whichSync; 19744 } 19745}); 19746 19747// .yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-b32f418ab3.zip/node_modules/is-windows/index.js 19748var require_is_windows = __commonJS({ 19749 ".yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-b32f418ab3.zip/node_modules/is-windows/index.js"(exports, module2) { 19750 (function(factory) { 19751 if (exports && typeof exports === "object" && typeof module2 !== "undefined") { 19752 module2.exports = factory(); 19753 } else if (typeof define === "function" && define.amd) { 19754 define([], factory); 19755 } else if (typeof window !== "undefined") { 19756 window.isWindows = factory(); 19757 } else if (typeof global !== "undefined") { 19758 global.isWindows = factory(); 19759 } else if (typeof self !== "undefined") { 19760 self.isWindows = factory(); 19761 } else { 19762 this.isWindows = factory(); 19763 } 19764 })(function() { 19765 "use strict"; 19766 return function isWindows() { 19767 return process && (process.platform === "win32" || /^(msys|cygwin)$/.test(process.env.OSTYPE)); 19768 }; 19769 }); 19770 } 19771}); 19772 19773// .yarn/cache/cmd-extension-npm-1.0.2-11aa204c4b-acdb425d51.zip/node_modules/cmd-extension/index.js 19774var require_cmd_extension = __commonJS({ 19775 ".yarn/cache/cmd-extension-npm-1.0.2-11aa204c4b-acdb425d51.zip/node_modules/cmd-extension/index.js"(exports, module2) { 19776 "use strict"; 19777 var path10 = require("path"); 19778 var cmdExtension; 19779 if (process.env.PATHEXT) { 19780 cmdExtension = process.env.PATHEXT.split(path10.delimiter).find((ext) => ext.toUpperCase() === ".CMD"); 19781 } 19782 module2.exports = cmdExtension || ".cmd"; 19783 } 19784}); 19785 19786// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/polyfills.js 19787var require_polyfills = __commonJS({ 19788 ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/polyfills.js"(exports, module2) { 19789 var constants = require("constants"); 19790 var origCwd = process.cwd; 19791 var cwd = null; 19792 var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform; 19793 process.cwd = function() { 19794 if (!cwd) 19795 cwd = origCwd.call(process); 19796 return cwd; 19797 }; 19798 try { 19799 process.cwd(); 19800 } catch (er) { 19801 } 19802 if (typeof process.chdir === "function") { 19803 chdir = process.chdir; 19804 process.chdir = function(d) { 19805 cwd = null; 19806 chdir.call(process, d); 19807 }; 19808 if (Object.setPrototypeOf) 19809 Object.setPrototypeOf(process.chdir, chdir); 19810 } 19811 var chdir; 19812 module2.exports = patch; 19813 function patch(fs9) { 19814 if (constants.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { 19815 patchLchmod(fs9); 19816 } 19817 if (!fs9.lutimes) { 19818 patchLutimes(fs9); 19819 } 19820 fs9.chown = chownFix(fs9.chown); 19821 fs9.fchown = chownFix(fs9.fchown); 19822 fs9.lchown = chownFix(fs9.lchown); 19823 fs9.chmod = chmodFix(fs9.chmod); 19824 fs9.fchmod = chmodFix(fs9.fchmod); 19825 fs9.lchmod = chmodFix(fs9.lchmod); 19826 fs9.chownSync = chownFixSync(fs9.chownSync); 19827 fs9.fchownSync = chownFixSync(fs9.fchownSync); 19828 fs9.lchownSync = chownFixSync(fs9.lchownSync); 19829 fs9.chmodSync = chmodFixSync(fs9.chmodSync); 19830 fs9.fchmodSync = chmodFixSync(fs9.fchmodSync); 19831 fs9.lchmodSync = chmodFixSync(fs9.lchmodSync); 19832 fs9.stat = statFix(fs9.stat); 19833 fs9.fstat = statFix(fs9.fstat); 19834 fs9.lstat = statFix(fs9.lstat); 19835 fs9.statSync = statFixSync(fs9.statSync); 19836 fs9.fstatSync = statFixSync(fs9.fstatSync); 19837 fs9.lstatSync = statFixSync(fs9.lstatSync); 19838 if (fs9.chmod && !fs9.lchmod) { 19839 fs9.lchmod = function(path10, mode, cb) { 19840 if (cb) 19841 process.nextTick(cb); 19842 }; 19843 fs9.lchmodSync = function() { 19844 }; 19845 } 19846 if (fs9.chown && !fs9.lchown) { 19847 fs9.lchown = function(path10, uid, gid, cb) { 19848 if (cb) 19849 process.nextTick(cb); 19850 }; 19851 fs9.lchownSync = function() { 19852 }; 19853 } 19854 if (platform === "win32") { 19855 fs9.rename = typeof fs9.rename !== "function" ? fs9.rename : function(fs$rename) { 19856 function rename(from, to, cb) { 19857 var start = Date.now(); 19858 var backoff = 0; 19859 fs$rename(from, to, function CB(er) { 19860 if (er && (er.code === "EACCES" || er.code === "EPERM" || er.code === "EBUSY") && Date.now() - start < 6e4) { 19861 setTimeout(function() { 19862 fs9.stat(to, function(stater, st) { 19863 if (stater && stater.code === "ENOENT") 19864 fs$rename(from, to, CB); 19865 else 19866 cb(er); 19867 }); 19868 }, backoff); 19869 if (backoff < 100) 19870 backoff += 10; 19871 return; 19872 } 19873 if (cb) 19874 cb(er); 19875 }); 19876 } 19877 if (Object.setPrototypeOf) 19878 Object.setPrototypeOf(rename, fs$rename); 19879 return rename; 19880 }(fs9.rename); 19881 } 19882 fs9.read = typeof fs9.read !== "function" ? fs9.read : function(fs$read) { 19883 function read(fd, buffer, offset, length, position, callback_) { 19884 var callback; 19885 if (callback_ && typeof callback_ === "function") { 19886 var eagCounter = 0; 19887 callback = function(er, _, __) { 19888 if (er && er.code === "EAGAIN" && eagCounter < 10) { 19889 eagCounter++; 19890 return fs$read.call(fs9, fd, buffer, offset, length, position, callback); 19891 } 19892 callback_.apply(this, arguments); 19893 }; 19894 } 19895 return fs$read.call(fs9, fd, buffer, offset, length, position, callback); 19896 } 19897 if (Object.setPrototypeOf) 19898 Object.setPrototypeOf(read, fs$read); 19899 return read; 19900 }(fs9.read); 19901 fs9.readSync = typeof fs9.readSync !== "function" ? fs9.readSync : function(fs$readSync) { 19902 return function(fd, buffer, offset, length, position) { 19903 var eagCounter = 0; 19904 while (true) { 19905 try { 19906 return fs$readSync.call(fs9, fd, buffer, offset, length, position); 19907 } catch (er) { 19908 if (er.code === "EAGAIN" && eagCounter < 10) { 19909 eagCounter++; 19910 continue; 19911 } 19912 throw er; 19913 } 19914 } 19915 }; 19916 }(fs9.readSync); 19917 function patchLchmod(fs10) { 19918 fs10.lchmod = function(path10, mode, callback) { 19919 fs10.open( 19920 path10, 19921 constants.O_WRONLY | constants.O_SYMLINK, 19922 mode, 19923 function(err, fd) { 19924 if (err) { 19925 if (callback) 19926 callback(err); 19927 return; 19928 } 19929 fs10.fchmod(fd, mode, function(err2) { 19930 fs10.close(fd, function(err22) { 19931 if (callback) 19932 callback(err2 || err22); 19933 }); 19934 }); 19935 } 19936 ); 19937 }; 19938 fs10.lchmodSync = function(path10, mode) { 19939 var fd = fs10.openSync(path10, constants.O_WRONLY | constants.O_SYMLINK, mode); 19940 var threw = true; 19941 var ret; 19942 try { 19943 ret = fs10.fchmodSync(fd, mode); 19944 threw = false; 19945 } finally { 19946 if (threw) { 19947 try { 19948 fs10.closeSync(fd); 19949 } catch (er) { 19950 } 19951 } else { 19952 fs10.closeSync(fd); 19953 } 19954 } 19955 return ret; 19956 }; 19957 } 19958 function patchLutimes(fs10) { 19959 if (constants.hasOwnProperty("O_SYMLINK") && fs10.futimes) { 19960 fs10.lutimes = function(path10, at, mt, cb) { 19961 fs10.open(path10, constants.O_SYMLINK, function(er, fd) { 19962 if (er) { 19963 if (cb) 19964 cb(er); 19965 return; 19966 } 19967 fs10.futimes(fd, at, mt, function(er2) { 19968 fs10.close(fd, function(er22) { 19969 if (cb) 19970 cb(er2 || er22); 19971 }); 19972 }); 19973 }); 19974 }; 19975 fs10.lutimesSync = function(path10, at, mt) { 19976 var fd = fs10.openSync(path10, constants.O_SYMLINK); 19977 var ret; 19978 var threw = true; 19979 try { 19980 ret = fs10.futimesSync(fd, at, mt); 19981 threw = false; 19982 } finally { 19983 if (threw) { 19984 try { 19985 fs10.closeSync(fd); 19986 } catch (er) { 19987 } 19988 } else { 19989 fs10.closeSync(fd); 19990 } 19991 } 19992 return ret; 19993 }; 19994 } else if (fs10.futimes) { 19995 fs10.lutimes = function(_a, _b, _c, cb) { 19996 if (cb) 19997 process.nextTick(cb); 19998 }; 19999 fs10.lutimesSync = function() { 20000 }; 20001 } 20002 } 20003 function chmodFix(orig) { 20004 if (!orig) 20005 return orig; 20006 return function(target, mode, cb) { 20007 return orig.call(fs9, target, mode, function(er) { 20008 if (chownErOk(er)) 20009 er = null; 20010 if (cb) 20011 cb.apply(this, arguments); 20012 }); 20013 }; 20014 } 20015 function chmodFixSync(orig) { 20016 if (!orig) 20017 return orig; 20018 return function(target, mode) { 20019 try { 20020 return orig.call(fs9, target, mode); 20021 } catch (er) { 20022 if (!chownErOk(er)) 20023 throw er; 20024 } 20025 }; 20026 } 20027 function chownFix(orig) { 20028 if (!orig) 20029 return orig; 20030 return function(target, uid, gid, cb) { 20031 return orig.call(fs9, target, uid, gid, function(er) { 20032 if (chownErOk(er)) 20033 er = null; 20034 if (cb) 20035 cb.apply(this, arguments); 20036 }); 20037 }; 20038 } 20039 function chownFixSync(orig) { 20040 if (!orig) 20041 return orig; 20042 return function(target, uid, gid) { 20043 try { 20044 return orig.call(fs9, target, uid, gid); 20045 } catch (er) { 20046 if (!chownErOk(er)) 20047 throw er; 20048 } 20049 }; 20050 } 20051 function statFix(orig) { 20052 if (!orig) 20053 return orig; 20054 return function(target, options, cb) { 20055 if (typeof options === "function") { 20056 cb = options; 20057 options = null; 20058 } 20059 function callback(er, stats) { 20060 if (stats) { 20061 if (stats.uid < 0) 20062 stats.uid += 4294967296; 20063 if (stats.gid < 0) 20064 stats.gid += 4294967296; 20065 } 20066 if (cb) 20067 cb.apply(this, arguments); 20068 } 20069 return options ? orig.call(fs9, target, options, callback) : orig.call(fs9, target, callback); 20070 }; 20071 } 20072 function statFixSync(orig) { 20073 if (!orig) 20074 return orig; 20075 return function(target, options) { 20076 var stats = options ? orig.call(fs9, target, options) : orig.call(fs9, target); 20077 if (stats) { 20078 if (stats.uid < 0) 20079 stats.uid += 4294967296; 20080 if (stats.gid < 0) 20081 stats.gid += 4294967296; 20082 } 20083 return stats; 20084 }; 20085 } 20086 function chownErOk(er) { 20087 if (!er) 20088 return true; 20089 if (er.code === "ENOSYS") 20090 return true; 20091 var nonroot = !process.getuid || process.getuid() !== 0; 20092 if (nonroot) { 20093 if (er.code === "EINVAL" || er.code === "EPERM") 20094 return true; 20095 } 20096 return false; 20097 } 20098 } 20099 } 20100}); 20101 20102// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/legacy-streams.js 20103var require_legacy_streams = __commonJS({ 20104 ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/legacy-streams.js"(exports, module2) { 20105 var Stream = require("stream").Stream; 20106 module2.exports = legacy; 20107 function legacy(fs9) { 20108 return { 20109 ReadStream, 20110 WriteStream 20111 }; 20112 function ReadStream(path10, options) { 20113 if (!(this instanceof ReadStream)) 20114 return new ReadStream(path10, options); 20115 Stream.call(this); 20116 var self2 = this; 20117 this.path = path10; 20118 this.fd = null; 20119 this.readable = true; 20120 this.paused = false; 20121 this.flags = "r"; 20122 this.mode = 438; 20123 this.bufferSize = 64 * 1024; 20124 options = options || {}; 20125 var keys = Object.keys(options); 20126 for (var index = 0, length = keys.length; index < length; index++) { 20127 var key = keys[index]; 20128 this[key] = options[key]; 20129 } 20130 if (this.encoding) 20131 this.setEncoding(this.encoding); 20132 if (this.start !== void 0) { 20133 if ("number" !== typeof this.start) { 20134 throw TypeError("start must be a Number"); 20135 } 20136 if (this.end === void 0) { 20137 this.end = Infinity; 20138 } else if ("number" !== typeof this.end) { 20139 throw TypeError("end must be a Number"); 20140 } 20141 if (this.start > this.end) { 20142 throw new Error("start must be <= end"); 20143 } 20144 this.pos = this.start; 20145 } 20146 if (this.fd !== null) { 20147 process.nextTick(function() { 20148 self2._read(); 20149 }); 20150 return; 20151 } 20152 fs9.open(this.path, this.flags, this.mode, function(err, fd) { 20153 if (err) { 20154 self2.emit("error", err); 20155 self2.readable = false; 20156 return; 20157 } 20158 self2.fd = fd; 20159 self2.emit("open", fd); 20160 self2._read(); 20161 }); 20162 } 20163 function WriteStream(path10, options) { 20164 if (!(this instanceof WriteStream)) 20165 return new WriteStream(path10, options); 20166 Stream.call(this); 20167 this.path = path10; 20168 this.fd = null; 20169 this.writable = true; 20170 this.flags = "w"; 20171 this.encoding = "binary"; 20172 this.mode = 438; 20173 this.bytesWritten = 0; 20174 options = options || {}; 20175 var keys = Object.keys(options); 20176 for (var index = 0, length = keys.length; index < length; index++) { 20177 var key = keys[index]; 20178 this[key] = options[key]; 20179 } 20180 if (this.start !== void 0) { 20181 if ("number" !== typeof this.start) { 20182 throw TypeError("start must be a Number"); 20183 } 20184 if (this.start < 0) { 20185 throw new Error("start must be >= zero"); 20186 } 20187 this.pos = this.start; 20188 } 20189 this.busy = false; 20190 this._queue = []; 20191 if (this.fd === null) { 20192 this._open = fs9.open; 20193 this._queue.push([this._open, this.path, this.flags, this.mode, void 0]); 20194 this.flush(); 20195 } 20196 } 20197 } 20198 } 20199}); 20200 20201// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/clone.js 20202var require_clone = __commonJS({ 20203 ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/clone.js"(exports, module2) { 20204 "use strict"; 20205 module2.exports = clone; 20206 var getPrototypeOf = Object.getPrototypeOf || function(obj) { 20207 return obj.__proto__; 20208 }; 20209 function clone(obj) { 20210 if (obj === null || typeof obj !== "object") 20211 return obj; 20212 if (obj instanceof Object) 20213 var copy = { __proto__: getPrototypeOf(obj) }; 20214 else 20215 var copy = /* @__PURE__ */ Object.create(null); 20216 Object.getOwnPropertyNames(obj).forEach(function(key) { 20217 Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)); 20218 }); 20219 return copy; 20220 } 20221 } 20222}); 20223 20224// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/graceful-fs.js 20225var require_graceful_fs = __commonJS({ 20226 ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/graceful-fs.js"(exports, module2) { 20227 var fs9 = require("fs"); 20228 var polyfills = require_polyfills(); 20229 var legacy = require_legacy_streams(); 20230 var clone = require_clone(); 20231 var util = require("util"); 20232 var gracefulQueue; 20233 var previousSymbol; 20234 if (typeof Symbol === "function" && typeof Symbol.for === "function") { 20235 gracefulQueue = Symbol.for("graceful-fs.queue"); 20236 previousSymbol = Symbol.for("graceful-fs.previous"); 20237 } else { 20238 gracefulQueue = "___graceful-fs.queue"; 20239 previousSymbol = "___graceful-fs.previous"; 20240 } 20241 function noop() { 20242 } 20243 function publishQueue(context, queue2) { 20244 Object.defineProperty(context, gracefulQueue, { 20245 get: function() { 20246 return queue2; 20247 } 20248 }); 20249 } 20250 var debug2 = noop; 20251 if (util.debuglog) 20252 debug2 = util.debuglog("gfs4"); 20253 else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) 20254 debug2 = function() { 20255 var m = util.format.apply(util, arguments); 20256 m = "GFS4: " + m.split(/\n/).join("\nGFS4: "); 20257 console.error(m); 20258 }; 20259 if (!fs9[gracefulQueue]) { 20260 queue = global[gracefulQueue] || []; 20261 publishQueue(fs9, queue); 20262 fs9.close = function(fs$close) { 20263 function close(fd, cb) { 20264 return fs$close.call(fs9, fd, function(err) { 20265 if (!err) { 20266 resetQueue(); 20267 } 20268 if (typeof cb === "function") 20269 cb.apply(this, arguments); 20270 }); 20271 } 20272 Object.defineProperty(close, previousSymbol, { 20273 value: fs$close 20274 }); 20275 return close; 20276 }(fs9.close); 20277 fs9.closeSync = function(fs$closeSync) { 20278 function closeSync(fd) { 20279 fs$closeSync.apply(fs9, arguments); 20280 resetQueue(); 20281 } 20282 Object.defineProperty(closeSync, previousSymbol, { 20283 value: fs$closeSync 20284 }); 20285 return closeSync; 20286 }(fs9.closeSync); 20287 if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) { 20288 process.on("exit", function() { 20289 debug2(fs9[gracefulQueue]); 20290 require("assert").equal(fs9[gracefulQueue].length, 0); 20291 }); 20292 } 20293 } 20294 var queue; 20295 if (!global[gracefulQueue]) { 20296 publishQueue(global, fs9[gracefulQueue]); 20297 } 20298 module2.exports = patch(clone(fs9)); 20299 if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs9.__patched) { 20300 module2.exports = patch(fs9); 20301 fs9.__patched = true; 20302 } 20303 function patch(fs10) { 20304 polyfills(fs10); 20305 fs10.gracefulify = patch; 20306 fs10.createReadStream = createReadStream; 20307 fs10.createWriteStream = createWriteStream; 20308 var fs$readFile = fs10.readFile; 20309 fs10.readFile = readFile; 20310 function readFile(path10, options, cb) { 20311 if (typeof options === "function") 20312 cb = options, options = null; 20313 return go$readFile(path10, options, cb); 20314 function go$readFile(path11, options2, cb2, startTime) { 20315 return fs$readFile(path11, options2, function(err) { 20316 if (err && (err.code === "EMFILE" || err.code === "ENFILE")) 20317 enqueue([go$readFile, [path11, options2, cb2], err, startTime || Date.now(), Date.now()]); 20318 else { 20319 if (typeof cb2 === "function") 20320 cb2.apply(this, arguments); 20321 } 20322 }); 20323 } 20324 } 20325 var fs$writeFile = fs10.writeFile; 20326 fs10.writeFile = writeFile; 20327 function writeFile(path10, data, options, cb) { 20328 if (typeof options === "function") 20329 cb = options, options = null; 20330 return go$writeFile(path10, data, options, cb); 20331 function go$writeFile(path11, data2, options2, cb2, startTime) { 20332 return fs$writeFile(path11, data2, options2, function(err) { 20333 if (err && (err.code === "EMFILE" || err.code === "ENFILE")) 20334 enqueue([go$writeFile, [path11, data2, options2, cb2], err, startTime || Date.now(), Date.now()]); 20335 else { 20336 if (typeof cb2 === "function") 20337 cb2.apply(this, arguments); 20338 } 20339 }); 20340 } 20341 } 20342 var fs$appendFile = fs10.appendFile; 20343 if (fs$appendFile) 20344 fs10.appendFile = appendFile; 20345 function appendFile(path10, data, options, cb) { 20346 if (typeof options === "function") 20347 cb = options, options = null; 20348 return go$appendFile(path10, data, options, cb); 20349 function go$appendFile(path11, data2, options2, cb2, startTime) { 20350 return fs$appendFile(path11, data2, options2, function(err) { 20351 if (err && (err.code === "EMFILE" || err.code === "ENFILE")) 20352 enqueue([go$appendFile, [path11, data2, options2, cb2], err, startTime || Date.now(), Date.now()]); 20353 else { 20354 if (typeof cb2 === "function") 20355 cb2.apply(this, arguments); 20356 } 20357 }); 20358 } 20359 } 20360 var fs$copyFile = fs10.copyFile; 20361 if (fs$copyFile) 20362 fs10.copyFile = copyFile; 20363 function copyFile(src, dest, flags, cb) { 20364 if (typeof flags === "function") { 20365 cb = flags; 20366 flags = 0; 20367 } 20368 return go$copyFile(src, dest, flags, cb); 20369 function go$copyFile(src2, dest2, flags2, cb2, startTime) { 20370 return fs$copyFile(src2, dest2, flags2, function(err) { 20371 if (err && (err.code === "EMFILE" || err.code === "ENFILE")) 20372 enqueue([go$copyFile, [src2, dest2, flags2, cb2], err, startTime || Date.now(), Date.now()]); 20373 else { 20374 if (typeof cb2 === "function") 20375 cb2.apply(this, arguments); 20376 } 20377 }); 20378 } 20379 } 20380 var fs$readdir = fs10.readdir; 20381 fs10.readdir = readdir; 20382 var noReaddirOptionVersions = /^v[0-5]\./; 20383 function readdir(path10, options, cb) { 20384 if (typeof options === "function") 20385 cb = options, options = null; 20386 var go$readdir = noReaddirOptionVersions.test(process.version) ? function go$readdir2(path11, options2, cb2, startTime) { 20387 return fs$readdir(path11, fs$readdirCallback( 20388 path11, 20389 options2, 20390 cb2, 20391 startTime 20392 )); 20393 } : function go$readdir2(path11, options2, cb2, startTime) { 20394 return fs$readdir(path11, options2, fs$readdirCallback( 20395 path11, 20396 options2, 20397 cb2, 20398 startTime 20399 )); 20400 }; 20401 return go$readdir(path10, options, cb); 20402 function fs$readdirCallback(path11, options2, cb2, startTime) { 20403 return function(err, files) { 20404 if (err && (err.code === "EMFILE" || err.code === "ENFILE")) 20405 enqueue([ 20406 go$readdir, 20407 [path11, options2, cb2], 20408 err, 20409 startTime || Date.now(), 20410 Date.now() 20411 ]); 20412 else { 20413 if (files && files.sort) 20414 files.sort(); 20415 if (typeof cb2 === "function") 20416 cb2.call(this, err, files); 20417 } 20418 }; 20419 } 20420 } 20421 if (process.version.substr(0, 4) === "v0.8") { 20422 var legStreams = legacy(fs10); 20423 ReadStream = legStreams.ReadStream; 20424 WriteStream = legStreams.WriteStream; 20425 } 20426 var fs$ReadStream = fs10.ReadStream; 20427 if (fs$ReadStream) { 20428 ReadStream.prototype = Object.create(fs$ReadStream.prototype); 20429 ReadStream.prototype.open = ReadStream$open; 20430 } 20431 var fs$WriteStream = fs10.WriteStream; 20432 if (fs$WriteStream) { 20433 WriteStream.prototype = Object.create(fs$WriteStream.prototype); 20434 WriteStream.prototype.open = WriteStream$open; 20435 } 20436 Object.defineProperty(fs10, "ReadStream", { 20437 get: function() { 20438 return ReadStream; 20439 }, 20440 set: function(val) { 20441 ReadStream = val; 20442 }, 20443 enumerable: true, 20444 configurable: true 20445 }); 20446 Object.defineProperty(fs10, "WriteStream", { 20447 get: function() { 20448 return WriteStream; 20449 }, 20450 set: function(val) { 20451 WriteStream = val; 20452 }, 20453 enumerable: true, 20454 configurable: true 20455 }); 20456 var FileReadStream = ReadStream; 20457 Object.defineProperty(fs10, "FileReadStream", { 20458 get: function() { 20459 return FileReadStream; 20460 }, 20461 set: function(val) { 20462 FileReadStream = val; 20463 }, 20464 enumerable: true, 20465 configurable: true 20466 }); 20467 var FileWriteStream = WriteStream; 20468 Object.defineProperty(fs10, "FileWriteStream", { 20469 get: function() { 20470 return FileWriteStream; 20471 }, 20472 set: function(val) { 20473 FileWriteStream = val; 20474 }, 20475 enumerable: true, 20476 configurable: true 20477 }); 20478 function ReadStream(path10, options) { 20479 if (this instanceof ReadStream) 20480 return fs$ReadStream.apply(this, arguments), this; 20481 else 20482 return ReadStream.apply(Object.create(ReadStream.prototype), arguments); 20483 } 20484 function ReadStream$open() { 20485 var that = this; 20486 open(that.path, that.flags, that.mode, function(err, fd) { 20487 if (err) { 20488 if (that.autoClose) 20489 that.destroy(); 20490 that.emit("error", err); 20491 } else { 20492 that.fd = fd; 20493 that.emit("open", fd); 20494 that.read(); 20495 } 20496 }); 20497 } 20498 function WriteStream(path10, options) { 20499 if (this instanceof WriteStream) 20500 return fs$WriteStream.apply(this, arguments), this; 20501 else 20502 return WriteStream.apply(Object.create(WriteStream.prototype), arguments); 20503 } 20504 function WriteStream$open() { 20505 var that = this; 20506 open(that.path, that.flags, that.mode, function(err, fd) { 20507 if (err) { 20508 that.destroy(); 20509 that.emit("error", err); 20510 } else { 20511 that.fd = fd; 20512 that.emit("open", fd); 20513 } 20514 }); 20515 } 20516 function createReadStream(path10, options) { 20517 return new fs10.ReadStream(path10, options); 20518 } 20519 function createWriteStream(path10, options) { 20520 return new fs10.WriteStream(path10, options); 20521 } 20522 var fs$open = fs10.open; 20523 fs10.open = open; 20524 function open(path10, flags, mode, cb) { 20525 if (typeof mode === "function") 20526 cb = mode, mode = null; 20527 return go$open(path10, flags, mode, cb); 20528 function go$open(path11, flags2, mode2, cb2, startTime) { 20529 return fs$open(path11, flags2, mode2, function(err, fd) { 20530 if (err && (err.code === "EMFILE" || err.code === "ENFILE")) 20531 enqueue([go$open, [path11, flags2, mode2, cb2], err, startTime || Date.now(), Date.now()]); 20532 else { 20533 if (typeof cb2 === "function") 20534 cb2.apply(this, arguments); 20535 } 20536 }); 20537 } 20538 } 20539 return fs10; 20540 } 20541 function enqueue(elem) { 20542 debug2("ENQUEUE", elem[0].name, elem[1]); 20543 fs9[gracefulQueue].push(elem); 20544 retry(); 20545 } 20546 var retryTimer; 20547 function resetQueue() { 20548 var now = Date.now(); 20549 for (var i = 0; i < fs9[gracefulQueue].length; ++i) { 20550 if (fs9[gracefulQueue][i].length > 2) { 20551 fs9[gracefulQueue][i][3] = now; 20552 fs9[gracefulQueue][i][4] = now; 20553 } 20554 } 20555 retry(); 20556 } 20557 function retry() { 20558 clearTimeout(retryTimer); 20559 retryTimer = void 0; 20560 if (fs9[gracefulQueue].length === 0) 20561 return; 20562 var elem = fs9[gracefulQueue].shift(); 20563 var fn2 = elem[0]; 20564 var args = elem[1]; 20565 var err = elem[2]; 20566 var startTime = elem[3]; 20567 var lastTime = elem[4]; 20568 if (startTime === void 0) { 20569 debug2("RETRY", fn2.name, args); 20570 fn2.apply(null, args); 20571 } else if (Date.now() - startTime >= 6e4) { 20572 debug2("TIMEOUT", fn2.name, args); 20573 var cb = args.pop(); 20574 if (typeof cb === "function") 20575 cb.call(null, err); 20576 } else { 20577 var sinceAttempt = Date.now() - lastTime; 20578 var sinceStart = Math.max(lastTime - startTime, 1); 20579 var desiredDelay = Math.min(sinceStart * 1.2, 100); 20580 if (sinceAttempt >= desiredDelay) { 20581 debug2("RETRY", fn2.name, args); 20582 fn2.apply(null, args.concat([startTime])); 20583 } else { 20584 fs9[gracefulQueue].push(elem); 20585 } 20586 } 20587 if (retryTimer === void 0) { 20588 retryTimer = setTimeout(retry, 0); 20589 } 20590 } 20591 } 20592}); 20593 20594// .yarn/cache/@zkochan-cmd-shim-npm-6.0.0-97792a7373-ba1442ba1e.zip/node_modules/@zkochan/cmd-shim/index.js 20595var require_cmd_shim = __commonJS({ 20596 ".yarn/cache/@zkochan-cmd-shim-npm-6.0.0-97792a7373-ba1442ba1e.zip/node_modules/@zkochan/cmd-shim/index.js"(exports, module2) { 20597 "use strict"; 20598 cmdShim2.ifExists = cmdShimIfExists; 20599 var util_1 = require("util"); 20600 var path10 = require("path"); 20601 var isWindows = require_is_windows(); 20602 var CMD_EXTENSION = require_cmd_extension(); 20603 var shebangExpr = /^#!\s*(?:\/usr\/bin\/env(?:\s+-S\s*)?)?\s*([^ \t]+)(.*)$/; 20604 var DEFAULT_OPTIONS = { 20605 // Create PowerShell file by default if the option hasn't been specified 20606 createPwshFile: true, 20607 createCmdFile: isWindows(), 20608 fs: require_graceful_fs() 20609 }; 20610 var extensionToProgramMap = /* @__PURE__ */ new Map([ 20611 [".js", "node"], 20612 [".cjs", "node"], 20613 [".mjs", "node"], 20614 [".cmd", "cmd"], 20615 [".bat", "cmd"], 20616 [".ps1", "pwsh"], 20617 [".sh", "sh"] 20618 ]); 20619 function ingestOptions(opts) { 20620 const opts_ = { ...DEFAULT_OPTIONS, ...opts }; 20621 const fs9 = opts_.fs; 20622 opts_.fs_ = { 20623 chmod: fs9.chmod ? (0, util_1.promisify)(fs9.chmod) : async () => { 20624 }, 20625 mkdir: (0, util_1.promisify)(fs9.mkdir), 20626 readFile: (0, util_1.promisify)(fs9.readFile), 20627 stat: (0, util_1.promisify)(fs9.stat), 20628 unlink: (0, util_1.promisify)(fs9.unlink), 20629 writeFile: (0, util_1.promisify)(fs9.writeFile) 20630 }; 20631 return opts_; 20632 } 20633 async function cmdShim2(src, to, opts) { 20634 const opts_ = ingestOptions(opts); 20635 await cmdShim_(src, to, opts_); 20636 } 20637 function cmdShimIfExists(src, to, opts) { 20638 return cmdShim2(src, to, opts).catch(() => { 20639 }); 20640 } 20641 function rm2(path11, opts) { 20642 return opts.fs_.unlink(path11).catch(() => { 20643 }); 20644 } 20645 async function cmdShim_(src, to, opts) { 20646 const srcRuntimeInfo = await searchScriptRuntime(src, opts); 20647 await writeShimsPreCommon(to, opts); 20648 return writeAllShims(src, to, srcRuntimeInfo, opts); 20649 } 20650 function writeShimsPreCommon(target, opts) { 20651 return opts.fs_.mkdir(path10.dirname(target), { recursive: true }); 20652 } 20653 function writeAllShims(src, to, srcRuntimeInfo, opts) { 20654 const opts_ = ingestOptions(opts); 20655 const generatorAndExts = [{ generator: generateShShim, extension: "" }]; 20656 if (opts_.createCmdFile) { 20657 generatorAndExts.push({ generator: generateCmdShim, extension: CMD_EXTENSION }); 20658 } 20659 if (opts_.createPwshFile) { 20660 generatorAndExts.push({ generator: generatePwshShim, extension: ".ps1" }); 20661 } 20662 return Promise.all(generatorAndExts.map((generatorAndExt) => writeShim(src, to + generatorAndExt.extension, srcRuntimeInfo, generatorAndExt.generator, opts_))); 20663 } 20664 function writeShimPre(target, opts) { 20665 return rm2(target, opts); 20666 } 20667 function writeShimPost(target, opts) { 20668 return chmodShim(target, opts); 20669 } 20670 async function searchScriptRuntime(target, opts) { 20671 try { 20672 const data = await opts.fs_.readFile(target, "utf8"); 20673 const firstLine = data.trim().split(/\r*\n/)[0]; 20674 const shebang = firstLine.match(shebangExpr); 20675 if (!shebang) { 20676 const targetExtension = path10.extname(target).toLowerCase(); 20677 return { 20678 // undefined if extension is unknown but it's converted to null. 20679 program: extensionToProgramMap.get(targetExtension) || null, 20680 additionalArgs: "" 20681 }; 20682 } 20683 return { 20684 program: shebang[1], 20685 additionalArgs: shebang[2] 20686 }; 20687 } catch (err) { 20688 if (!isWindows() || err.code !== "ENOENT") 20689 throw err; 20690 if (await opts.fs_.stat(`${target}${getExeExtension()}`)) { 20691 return { 20692 program: null, 20693 additionalArgs: "" 20694 }; 20695 } 20696 throw err; 20697 } 20698 } 20699 function getExeExtension() { 20700 let cmdExtension; 20701 if (process.env.PATHEXT) { 20702 cmdExtension = process.env.PATHEXT.split(path10.delimiter).find((ext) => ext.toLowerCase() === ".exe"); 20703 } 20704 return cmdExtension || ".exe"; 20705 } 20706 async function writeShim(src, to, srcRuntimeInfo, generateShimScript, opts) { 20707 const defaultArgs = opts.preserveSymlinks ? "--preserve-symlinks" : ""; 20708 const args = [srcRuntimeInfo.additionalArgs, defaultArgs].filter((arg) => arg).join(" "); 20709 opts = Object.assign({}, opts, { 20710 prog: srcRuntimeInfo.program, 20711 args 20712 }); 20713 await writeShimPre(to, opts); 20714 await opts.fs_.writeFile(to, generateShimScript(src, to, opts), "utf8"); 20715 return writeShimPost(to, opts); 20716 } 20717 function generateCmdShim(src, to, opts) { 20718 const shTarget = path10.relative(path10.dirname(to), src); 20719 let target = shTarget.split("/").join("\\"); 20720 const quotedPathToTarget = path10.isAbsolute(target) ? `"${target}"` : `"%~dp0\\${target}"`; 20721 let longProg; 20722 let prog = opts.prog; 20723 let args = opts.args || ""; 20724 const nodePath = normalizePathEnvVar(opts.nodePath).win32; 20725 const prependToPath = normalizePathEnvVar(opts.prependToPath).win32; 20726 if (!prog) { 20727 prog = quotedPathToTarget; 20728 args = ""; 20729 target = ""; 20730 } else if (prog === "node" && opts.nodeExecPath) { 20731 prog = `"${opts.nodeExecPath}"`; 20732 target = quotedPathToTarget; 20733 } else { 20734 longProg = `"%~dp0\\${prog}.exe"`; 20735 target = quotedPathToTarget; 20736 } 20737 let progArgs = opts.progArgs ? `${opts.progArgs.join(` `)} ` : ""; 20738 let cmd = "@SETLOCAL\r\n"; 20739 if (prependToPath) { 20740 cmd += `@SET "PATH=${prependToPath}:%PATH%"\r 20741`; 20742 } 20743 if (nodePath) { 20744 cmd += `@IF NOT DEFINED NODE_PATH (\r 20745 @SET "NODE_PATH=${nodePath}"\r 20746) ELSE (\r 20747 @SET "NODE_PATH=${nodePath};%NODE_PATH%"\r 20748)\r 20749`; 20750 } 20751 if (longProg) { 20752 cmd += `@IF EXIST ${longProg} (\r 20753 ${longProg} ${args} ${target} ${progArgs}%*\r 20754) ELSE (\r 20755 @SET PATHEXT=%PATHEXT:;.JS;=;%\r 20756 ${prog} ${args} ${target} ${progArgs}%*\r 20757)\r 20758`; 20759 } else { 20760 cmd += `@${prog} ${args} ${target} ${progArgs}%*\r 20761`; 20762 } 20763 return cmd; 20764 } 20765 function generateShShim(src, to, opts) { 20766 let shTarget = path10.relative(path10.dirname(to), src); 20767 let shProg = opts.prog && opts.prog.split("\\").join("/"); 20768 let shLongProg; 20769 shTarget = shTarget.split("\\").join("/"); 20770 const quotedPathToTarget = path10.isAbsolute(shTarget) ? `"${shTarget}"` : `"$basedir/${shTarget}"`; 20771 let args = opts.args || ""; 20772 const shNodePath = normalizePathEnvVar(opts.nodePath).posix; 20773 if (!shProg) { 20774 shProg = quotedPathToTarget; 20775 args = ""; 20776 shTarget = ""; 20777 } else if (opts.prog === "node" && opts.nodeExecPath) { 20778 shProg = `"${opts.nodeExecPath}"`; 20779 shTarget = quotedPathToTarget; 20780 } else { 20781 shLongProg = `"$basedir/${opts.prog}"`; 20782 shTarget = quotedPathToTarget; 20783 } 20784 let progArgs = opts.progArgs ? `${opts.progArgs.join(` `)} ` : ""; 20785 let sh = `#!/bin/sh 20786basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") 20787 20788case \`uname\` in 20789 *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; 20790esac 20791 20792`; 20793 if (opts.prependToPath) { 20794 sh += `export PATH="${opts.prependToPath}:$PATH" 20795`; 20796 } 20797 if (shNodePath) { 20798 sh += `if [ -z "$NODE_PATH" ]; then 20799 export NODE_PATH="${shNodePath}" 20800else 20801 export NODE_PATH="${shNodePath}:$NODE_PATH" 20802fi 20803`; 20804 } 20805 if (shLongProg) { 20806 sh += `if [ -x ${shLongProg} ]; then 20807 exec ${shLongProg} ${args} ${shTarget} ${progArgs}"$@" 20808else 20809 exec ${shProg} ${args} ${shTarget} ${progArgs}"$@" 20810fi 20811`; 20812 } else { 20813 sh += `${shProg} ${args} ${shTarget} ${progArgs}"$@" 20814exit $? 20815`; 20816 } 20817 return sh; 20818 } 20819 function generatePwshShim(src, to, opts) { 20820 let shTarget = path10.relative(path10.dirname(to), src); 20821 const shProg = opts.prog && opts.prog.split("\\").join("/"); 20822 let pwshProg = shProg && `"${shProg}$exe"`; 20823 let pwshLongProg; 20824 shTarget = shTarget.split("\\").join("/"); 20825 const quotedPathToTarget = path10.isAbsolute(shTarget) ? `"${shTarget}"` : `"$basedir/${shTarget}"`; 20826 let args = opts.args || ""; 20827 let normalizedNodePathEnvVar = normalizePathEnvVar(opts.nodePath); 20828 const nodePath = normalizedNodePathEnvVar.win32; 20829 const shNodePath = normalizedNodePathEnvVar.posix; 20830 let normalizedPrependPathEnvVar = normalizePathEnvVar(opts.prependToPath); 20831 const prependPath = normalizedPrependPathEnvVar.win32; 20832 const shPrependPath = normalizedPrependPathEnvVar.posix; 20833 if (!pwshProg) { 20834 pwshProg = quotedPathToTarget; 20835 args = ""; 20836 shTarget = ""; 20837 } else if (opts.prog === "node" && opts.nodeExecPath) { 20838 pwshProg = `"${opts.nodeExecPath}"`; 20839 shTarget = quotedPathToTarget; 20840 } else { 20841 pwshLongProg = `"$basedir/${opts.prog}$exe"`; 20842 shTarget = quotedPathToTarget; 20843 } 20844 let progArgs = opts.progArgs ? `${opts.progArgs.join(` `)} ` : ""; 20845 let pwsh = `#!/usr/bin/env pwsh 20846$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 20847 20848$exe="" 20849${nodePath || prependPath ? '$pathsep=":"\n' : ""}${nodePath ? `$env_node_path=$env:NODE_PATH 20850$new_node_path="${nodePath}" 20851` : ""}${prependPath ? `$env_path=$env:PATH 20852$prepend_path="${prependPath}" 20853` : ""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 20854 # Fix case when both the Windows and Linux builds of Node 20855 # are installed in the same directory 20856 $exe=".exe" 20857${nodePath || prependPath ? ' $pathsep=";"\n' : ""}}`; 20858 if (shNodePath || shPrependPath) { 20859 pwsh += ` else { 20860${shNodePath ? ` $new_node_path="${shNodePath}" 20861` : ""}${shPrependPath ? ` $prepend_path="${shPrependPath}" 20862` : ""}} 20863`; 20864 } 20865 if (shNodePath) { 20866 pwsh += `if ([string]::IsNullOrEmpty($env_node_path)) { 20867 $env:NODE_PATH=$new_node_path 20868} else { 20869 $env:NODE_PATH="$new_node_path$pathsep$env_node_path" 20870} 20871`; 20872 } 20873 if (opts.prependToPath) { 20874 pwsh += ` 20875$env:PATH="$prepend_path$pathsep$env:PATH" 20876`; 20877 } 20878 if (pwshLongProg) { 20879 pwsh += ` 20880$ret=0 20881if (Test-Path ${pwshLongProg}) { 20882 # Support pipeline input 20883 if ($MyInvocation.ExpectingInput) { 20884 $input | & ${pwshLongProg} ${args} ${shTarget} ${progArgs}$args 20885 } else { 20886 & ${pwshLongProg} ${args} ${shTarget} ${progArgs}$args 20887 } 20888 $ret=$LASTEXITCODE 20889} else { 20890 # Support pipeline input 20891 if ($MyInvocation.ExpectingInput) { 20892 $input | & ${pwshProg} ${args} ${shTarget} ${progArgs}$args 20893 } else { 20894 & ${pwshProg} ${args} ${shTarget} ${progArgs}$args 20895 } 20896 $ret=$LASTEXITCODE 20897} 20898${nodePath ? "$env:NODE_PATH=$env_node_path\n" : ""}${prependPath ? "$env:PATH=$env_path\n" : ""}exit $ret 20899`; 20900 } else { 20901 pwsh += ` 20902# Support pipeline input 20903if ($MyInvocation.ExpectingInput) { 20904 $input | & ${pwshProg} ${args} ${shTarget} ${progArgs}$args 20905} else { 20906 & ${pwshProg} ${args} ${shTarget} ${progArgs}$args 20907} 20908${nodePath ? "$env:NODE_PATH=$env_node_path\n" : ""}${prependPath ? "$env:PATH=$env_path\n" : ""}exit $LASTEXITCODE 20909`; 20910 } 20911 return pwsh; 20912 } 20913 function chmodShim(to, opts) { 20914 return opts.fs_.chmod(to, 493); 20915 } 20916 function normalizePathEnvVar(nodePath) { 20917 if (!nodePath || !nodePath.length) { 20918 return { 20919 win32: "", 20920 posix: "" 20921 }; 20922 } 20923 let split = typeof nodePath === "string" ? nodePath.split(path10.delimiter) : Array.from(nodePath); 20924 let result = {}; 20925 for (let i = 0; i < split.length; i++) { 20926 const win32 = split[i].split("/").join("\\"); 20927 const posix = isWindows() ? split[i].split("\\").join("/").replace(/^([^:\\/]*):/, (_, $1) => `/mnt/${$1.toLowerCase()}`) : split[i]; 20928 result.win32 = result.win32 ? `${result.win32};${win32}` : win32; 20929 result.posix = result.posix ? `${result.posix}:${posix}` : posix; 20930 result[i] = { win32, posix }; 20931 } 20932 return result; 20933 } 20934 module2.exports = cmdShim2; 20935 } 20936}); 20937 20938// sources/_lib.ts 20939var lib_exports2 = {}; 20940__export(lib_exports2, { 20941 runMain: () => runMain 20942}); 20943module.exports = __toCommonJS(lib_exports2); 20944 20945// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/constants.mjs 20946var NODE_INITIAL = 0; 20947var NODE_SUCCESS = 1; 20948var NODE_ERRORED = 2; 20949var START_OF_INPUT = ``; 20950var END_OF_INPUT = `\0`; 20951var HELP_COMMAND_INDEX = -1; 20952var HELP_REGEX = /^(-h|--help)(?:=([0-9]+))?$/; 20953var OPTION_REGEX = /^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/; 20954var BATCH_REGEX = /^-[a-zA-Z]{2,}$/; 20955var BINDING_REGEX = /^([^=]+)=([\s\S]*)$/; 20956var DEBUG = process.env.DEBUG_CLI === `1`; 20957 20958// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/errors.mjs 20959var UsageError = class extends Error { 20960 constructor(message) { 20961 super(message); 20962 this.clipanion = { type: `usage` }; 20963 this.name = `UsageError`; 20964 } 20965}; 20966var UnknownSyntaxError = class extends Error { 20967 constructor(input, candidates) { 20968 super(); 20969 this.input = input; 20970 this.candidates = candidates; 20971 this.clipanion = { type: `none` }; 20972 this.name = `UnknownSyntaxError`; 20973 if (this.candidates.length === 0) { 20974 this.message = `Command not found, but we're not sure what's the alternative.`; 20975 } else if (this.candidates.every((candidate) => candidate.reason !== null && candidate.reason === candidates[0].reason)) { 20976 const [{ reason }] = this.candidates; 20977 this.message = `${reason} 20978 20979${this.candidates.map(({ usage }) => `$ ${usage}`).join(` 20980`)}`; 20981 } else if (this.candidates.length === 1) { 20982 const [{ usage }] = this.candidates; 20983 this.message = `Command not found; did you mean: 20984 20985$ ${usage} 20986${whileRunning(input)}`; 20987 } else { 20988 this.message = `Command not found; did you mean one of: 20989 20990${this.candidates.map(({ usage }, index) => { 20991 return `${`${index}.`.padStart(4)} ${usage}`; 20992 }).join(` 20993`)} 20994 20995${whileRunning(input)}`; 20996 } 20997 } 20998}; 20999var AmbiguousSyntaxError = class extends Error { 21000 constructor(input, usages) { 21001 super(); 21002 this.input = input; 21003 this.usages = usages; 21004 this.clipanion = { type: `none` }; 21005 this.name = `AmbiguousSyntaxError`; 21006 this.message = `Cannot find which to pick amongst the following alternatives: 21007 21008${this.usages.map((usage, index) => { 21009 return `${`${index}.`.padStart(4)} ${usage}`; 21010 }).join(` 21011`)} 21012 21013${whileRunning(input)}`; 21014 } 21015}; 21016var whileRunning = (input) => `While running ${input.filter((token) => { 21017 return token !== END_OF_INPUT; 21018}).map((token) => { 21019 const json = JSON.stringify(token); 21020 if (token.match(/\s/) || token.length === 0 || json !== `"${token}"`) { 21021 return json; 21022 } else { 21023 return token; 21024 } 21025}).join(` `)}`; 21026 21027// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/format.mjs 21028var MAX_LINE_LENGTH = 80; 21029var richLine = Array(MAX_LINE_LENGTH).fill(`\u2501`); 21030for (let t = 0; t <= 24; ++t) 21031 richLine[richLine.length - t] = `\x1B[38;5;${232 + t}m\u2501`; 21032var richFormat = { 21033 header: (str) => `\x1B[1m\u2501\u2501\u2501 ${str}${str.length < MAX_LINE_LENGTH - 5 ? ` ${richLine.slice(str.length + 5).join(``)}` : `:`}\x1B[0m`, 21034 bold: (str) => `\x1B[1m${str}\x1B[22m`, 21035 error: (str) => `\x1B[31m\x1B[1m${str}\x1B[22m\x1B[39m`, 21036 code: (str) => `\x1B[36m${str}\x1B[39m` 21037}; 21038var textFormat = { 21039 header: (str) => str, 21040 bold: (str) => str, 21041 error: (str) => str, 21042 code: (str) => str 21043}; 21044function dedent(text) { 21045 const lines = text.split(` 21046`); 21047 const nonEmptyLines = lines.filter((line) => line.match(/\S/)); 21048 const indent = nonEmptyLines.length > 0 ? nonEmptyLines.reduce((minLength, line) => Math.min(minLength, line.length - line.trimStart().length), Number.MAX_VALUE) : 0; 21049 return lines.map((line) => line.slice(indent).trimRight()).join(` 21050`); 21051} 21052function formatMarkdownish(text, { format, paragraphs }) { 21053 text = text.replace(/\r\n?/g, ` 21054`); 21055 text = dedent(text); 21056 text = text.replace(/^\n+|\n+$/g, ``); 21057 text = text.replace(/^(\s*)-([^\n]*?)\n+/gm, `$1-$2 21058 21059`); 21060 text = text.replace(/\n(\n)?\n*/g, ($0, $1) => $1 ? $1 : ` `); 21061 if (paragraphs) { 21062 text = text.split(/\n/).map((paragraph) => { 21063 const bulletMatch = paragraph.match(/^\s*[*-][\t ]+(.*)/); 21064 if (!bulletMatch) 21065 return paragraph.match(/(.{1,80})(?: |$)/g).join(` 21066`); 21067 const indent = paragraph.length - paragraph.trimStart().length; 21068 return bulletMatch[1].match(new RegExp(`(.{1,${78 - indent}})(?: |$)`, `g`)).map((line, index) => { 21069 return ` `.repeat(indent) + (index === 0 ? `- ` : ` `) + line; 21070 }).join(` 21071`); 21072 }).join(` 21073 21074`); 21075 } 21076 text = text.replace(/(`+)((?:.|[\n])*?)\1/g, ($0, $1, $2) => { 21077 return format.code($1 + $2 + $1); 21078 }); 21079 text = text.replace(/(\*\*)((?:.|[\n])*?)\1/g, ($0, $1, $2) => { 21080 return format.bold($1 + $2 + $1); 21081 }); 21082 return text ? `${text} 21083` : ``; 21084} 21085 21086// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/utils.mjs 21087var isOptionSymbol = Symbol(`clipanion/isOption`); 21088function makeCommandOption(spec) { 21089 return { ...spec, [isOptionSymbol]: true }; 21090} 21091function rerouteArguments(a, b) { 21092 if (typeof a === `undefined`) 21093 return [a, b]; 21094 if (typeof a === `object` && a !== null && !Array.isArray(a)) { 21095 return [void 0, a]; 21096 } else { 21097 return [a, b]; 21098 } 21099} 21100function cleanValidationError(message, { mergeName = false } = {}) { 21101 const match = message.match(/^([^:]+): (.*)$/m); 21102 if (!match) 21103 return `validation failed`; 21104 let [, path10, line] = match; 21105 if (mergeName) 21106 line = line[0].toLowerCase() + line.slice(1); 21107 line = path10 !== `.` || !mergeName ? `${path10.replace(/^\.(\[|$)/, `$1`)}: ${line}` : `: ${line}`; 21108 return line; 21109} 21110function formatError(message, errors) { 21111 if (errors.length === 1) { 21112 return new UsageError(`${message}${cleanValidationError(errors[0], { mergeName: true })}`); 21113 } else { 21114 return new UsageError(`${message}: 21115${errors.map((error) => ` 21116- ${cleanValidationError(error)}`).join(``)}`); 21117 } 21118} 21119function applyValidator(name, value, validator) { 21120 if (typeof validator === `undefined`) 21121 return value; 21122 const errors = []; 21123 const coercions = []; 21124 const coercion = (v) => { 21125 const orig = value; 21126 value = v; 21127 return coercion.bind(null, orig); 21128 }; 21129 const check = validator(value, { errors, coercions, coercion }); 21130 if (!check) 21131 throw formatError(`Invalid value for ${name}`, errors); 21132 for (const [, op] of coercions) 21133 op(); 21134 return value; 21135} 21136 21137// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/Command.mjs 21138var Command = class { 21139 constructor() { 21140 this.help = false; 21141 } 21142 /** 21143 * Defines the usage information for the given command. 21144 */ 21145 static Usage(usage) { 21146 return usage; 21147 } 21148 /** 21149 * Standard error handler which will simply rethrow the error. Can be used 21150 * to add custom logic to handle errors from the command or simply return 21151 * the parent class error handling. 21152 */ 21153 async catch(error) { 21154 throw error; 21155 } 21156 async validateAndExecute() { 21157 const commandClass = this.constructor; 21158 const cascade2 = commandClass.schema; 21159 if (Array.isArray(cascade2)) { 21160 const { isDict: isDict2, isUnknown: isUnknown2, applyCascade: applyCascade2 } = await Promise.resolve().then(() => (init_lib(), lib_exports)); 21161 const schema = applyCascade2(isDict2(isUnknown2()), cascade2); 21162 const errors = []; 21163 const coercions = []; 21164 const check = schema(this, { errors, coercions }); 21165 if (!check) 21166 throw formatError(`Invalid option schema`, errors); 21167 for (const [, op] of coercions) { 21168 op(); 21169 } 21170 } else if (cascade2 != null) { 21171 throw new Error(`Invalid command schema`); 21172 } 21173 const exitCode = await this.execute(); 21174 if (typeof exitCode !== `undefined`) { 21175 return exitCode; 21176 } else { 21177 return 0; 21178 } 21179 } 21180}; 21181Command.isOption = isOptionSymbol; 21182Command.Default = []; 21183 21184// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/core.mjs 21185function debug(str) { 21186 if (DEBUG) { 21187 console.log(str); 21188 } 21189} 21190var basicHelpState = { 21191 candidateUsage: null, 21192 requiredOptions: [], 21193 errorMessage: null, 21194 ignoreOptions: false, 21195 path: [], 21196 positionals: [], 21197 options: [], 21198 remainder: null, 21199 selectedIndex: HELP_COMMAND_INDEX 21200}; 21201function makeStateMachine() { 21202 return { 21203 nodes: [makeNode(), makeNode(), makeNode()] 21204 }; 21205} 21206function makeAnyOfMachine(inputs) { 21207 const output = makeStateMachine(); 21208 const heads = []; 21209 let offset = output.nodes.length; 21210 for (const input of inputs) { 21211 heads.push(offset); 21212 for (let t = 0; t < input.nodes.length; ++t) 21213 if (!isTerminalNode(t)) 21214 output.nodes.push(cloneNode(input.nodes[t], offset)); 21215 offset += input.nodes.length - 2; 21216 } 21217 for (const head of heads) 21218 registerShortcut(output, NODE_INITIAL, head); 21219 return output; 21220} 21221function injectNode(machine, node) { 21222 machine.nodes.push(node); 21223 return machine.nodes.length - 1; 21224} 21225function simplifyMachine(input) { 21226 const visited = /* @__PURE__ */ new Set(); 21227 const process5 = (node) => { 21228 if (visited.has(node)) 21229 return; 21230 visited.add(node); 21231 const nodeDef = input.nodes[node]; 21232 for (const transitions of Object.values(nodeDef.statics)) 21233 for (const { to } of transitions) 21234 process5(to); 21235 for (const [, { to }] of nodeDef.dynamics) 21236 process5(to); 21237 for (const { to } of nodeDef.shortcuts) 21238 process5(to); 21239 const shortcuts = new Set(nodeDef.shortcuts.map(({ to }) => to)); 21240 while (nodeDef.shortcuts.length > 0) { 21241 const { to } = nodeDef.shortcuts.shift(); 21242 const toDef = input.nodes[to]; 21243 for (const [segment, transitions] of Object.entries(toDef.statics)) { 21244 const store = !Object.prototype.hasOwnProperty.call(nodeDef.statics, segment) ? nodeDef.statics[segment] = [] : nodeDef.statics[segment]; 21245 for (const transition of transitions) { 21246 if (!store.some(({ to: to2 }) => transition.to === to2)) { 21247 store.push(transition); 21248 } 21249 } 21250 } 21251 for (const [test, transition] of toDef.dynamics) 21252 if (!nodeDef.dynamics.some(([otherTest, { to: to2 }]) => test === otherTest && transition.to === to2)) 21253 nodeDef.dynamics.push([test, transition]); 21254 for (const transition of toDef.shortcuts) { 21255 if (!shortcuts.has(transition.to)) { 21256 nodeDef.shortcuts.push(transition); 21257 shortcuts.add(transition.to); 21258 } 21259 } 21260 } 21261 }; 21262 process5(NODE_INITIAL); 21263} 21264function debugMachine(machine, { prefix = `` } = {}) { 21265 if (DEBUG) { 21266 debug(`${prefix}Nodes are:`); 21267 for (let t = 0; t < machine.nodes.length; ++t) { 21268 debug(`${prefix} ${t}: ${JSON.stringify(machine.nodes[t])}`); 21269 } 21270 } 21271} 21272function runMachineInternal(machine, input, partial = false) { 21273 debug(`Running a vm on ${JSON.stringify(input)}`); 21274 let branches = [{ node: NODE_INITIAL, state: { 21275 candidateUsage: null, 21276 requiredOptions: [], 21277 errorMessage: null, 21278 ignoreOptions: false, 21279 options: [], 21280 path: [], 21281 positionals: [], 21282 remainder: null, 21283 selectedIndex: null 21284 } }]; 21285 debugMachine(machine, { prefix: ` ` }); 21286 const tokens = [START_OF_INPUT, ...input]; 21287 for (let t = 0; t < tokens.length; ++t) { 21288 const segment = tokens[t]; 21289 debug(` Processing ${JSON.stringify(segment)}`); 21290 const nextBranches = []; 21291 for (const { node, state } of branches) { 21292 debug(` Current node is ${node}`); 21293 const nodeDef = machine.nodes[node]; 21294 if (node === NODE_ERRORED) { 21295 nextBranches.push({ node, state }); 21296 continue; 21297 } 21298 console.assert(nodeDef.shortcuts.length === 0, `Shortcuts should have been eliminated by now`); 21299 const hasExactMatch = Object.prototype.hasOwnProperty.call(nodeDef.statics, segment); 21300 if (!partial || t < tokens.length - 1 || hasExactMatch) { 21301 if (hasExactMatch) { 21302 const transitions = nodeDef.statics[segment]; 21303 for (const { to, reducer } of transitions) { 21304 nextBranches.push({ node: to, state: typeof reducer !== `undefined` ? execute(reducers, reducer, state, segment) : state }); 21305 debug(` Static transition to ${to} found`); 21306 } 21307 } else { 21308 debug(` No static transition found`); 21309 } 21310 } else { 21311 let hasMatches = false; 21312 for (const candidate of Object.keys(nodeDef.statics)) { 21313 if (!candidate.startsWith(segment)) 21314 continue; 21315 if (segment === candidate) { 21316 for (const { to, reducer } of nodeDef.statics[candidate]) { 21317 nextBranches.push({ node: to, state: typeof reducer !== `undefined` ? execute(reducers, reducer, state, segment) : state }); 21318 debug(` Static transition to ${to} found`); 21319 } 21320 } else { 21321 for (const { to } of nodeDef.statics[candidate]) { 21322 nextBranches.push({ node: to, state: { ...state, remainder: candidate.slice(segment.length) } }); 21323 debug(` Static transition to ${to} found (partial match)`); 21324 } 21325 } 21326 hasMatches = true; 21327 } 21328 if (!hasMatches) { 21329 debug(` No partial static transition found`); 21330 } 21331 } 21332 if (segment !== END_OF_INPUT) { 21333 for (const [test, { to, reducer }] of nodeDef.dynamics) { 21334 if (execute(tests, test, state, segment)) { 21335 nextBranches.push({ node: to, state: typeof reducer !== `undefined` ? execute(reducers, reducer, state, segment) : state }); 21336 debug(` Dynamic transition to ${to} found (via ${test})`); 21337 } 21338 } 21339 } 21340 } 21341 if (nextBranches.length === 0 && segment === END_OF_INPUT && input.length === 1) { 21342 return [{ 21343 node: NODE_INITIAL, 21344 state: basicHelpState 21345 }]; 21346 } 21347 if (nextBranches.length === 0) { 21348 throw new UnknownSyntaxError(input, branches.filter(({ node }) => { 21349 return node !== NODE_ERRORED; 21350 }).map(({ state }) => { 21351 return { usage: state.candidateUsage, reason: null }; 21352 })); 21353 } 21354 if (nextBranches.every(({ node }) => node === NODE_ERRORED)) { 21355 throw new UnknownSyntaxError(input, nextBranches.map(({ state }) => { 21356 return { usage: state.candidateUsage, reason: state.errorMessage }; 21357 })); 21358 } 21359 branches = trimSmallerBranches(nextBranches); 21360 } 21361 if (branches.length > 0) { 21362 debug(` Results:`); 21363 for (const branch of branches) { 21364 debug(` - ${branch.node} -> ${JSON.stringify(branch.state)}`); 21365 } 21366 } else { 21367 debug(` No results`); 21368 } 21369 return branches; 21370} 21371function checkIfNodeIsFinished(node, state) { 21372 if (state.selectedIndex !== null) 21373 return true; 21374 if (Object.prototype.hasOwnProperty.call(node.statics, END_OF_INPUT)) { 21375 for (const { to } of node.statics[END_OF_INPUT]) 21376 if (to === NODE_SUCCESS) 21377 return true; 21378 } 21379 return false; 21380} 21381function suggestMachine(machine, input, partial) { 21382 const prefix = partial && input.length > 0 ? [``] : []; 21383 const branches = runMachineInternal(machine, input, partial); 21384 const suggestions = []; 21385 const suggestionsJson = /* @__PURE__ */ new Set(); 21386 const traverseSuggestion = (suggestion, node, skipFirst = true) => { 21387 let nextNodes = [node]; 21388 while (nextNodes.length > 0) { 21389 const currentNodes = nextNodes; 21390 nextNodes = []; 21391 for (const node2 of currentNodes) { 21392 const nodeDef = machine.nodes[node2]; 21393 const keys = Object.keys(nodeDef.statics); 21394 for (const key of Object.keys(nodeDef.statics)) { 21395 const segment = keys[0]; 21396 for (const { to, reducer } of nodeDef.statics[segment]) { 21397 if (reducer !== `pushPath`) 21398 continue; 21399 if (!skipFirst) 21400 suggestion.push(segment); 21401 nextNodes.push(to); 21402 } 21403 } 21404 } 21405 skipFirst = false; 21406 } 21407 const json = JSON.stringify(suggestion); 21408 if (suggestionsJson.has(json)) 21409 return; 21410 suggestions.push(suggestion); 21411 suggestionsJson.add(json); 21412 }; 21413 for (const { node, state } of branches) { 21414 if (state.remainder !== null) { 21415 traverseSuggestion([state.remainder], node); 21416 continue; 21417 } 21418 const nodeDef = machine.nodes[node]; 21419 const isFinished = checkIfNodeIsFinished(nodeDef, state); 21420 for (const [candidate, transitions] of Object.entries(nodeDef.statics)) 21421 if (isFinished && candidate !== END_OF_INPUT || !candidate.startsWith(`-`) && transitions.some(({ reducer }) => reducer === `pushPath`)) 21422 traverseSuggestion([...prefix, candidate], node); 21423 if (!isFinished) 21424 continue; 21425 for (const [test, { to }] of nodeDef.dynamics) { 21426 if (to === NODE_ERRORED) 21427 continue; 21428 const tokens = suggest(test, state); 21429 if (tokens === null) 21430 continue; 21431 for (const token of tokens) { 21432 traverseSuggestion([...prefix, token], node); 21433 } 21434 } 21435 } 21436 return [...suggestions].sort(); 21437} 21438function runMachine(machine, input) { 21439 const branches = runMachineInternal(machine, [...input, END_OF_INPUT]); 21440 return selectBestState(input, branches.map(({ state }) => { 21441 return state; 21442 })); 21443} 21444function trimSmallerBranches(branches) { 21445 let maxPathSize = 0; 21446 for (const { state } of branches) 21447 if (state.path.length > maxPathSize) 21448 maxPathSize = state.path.length; 21449 return branches.filter(({ state }) => { 21450 return state.path.length === maxPathSize; 21451 }); 21452} 21453function selectBestState(input, states) { 21454 const terminalStates = states.filter((state) => { 21455 return state.selectedIndex !== null; 21456 }); 21457 if (terminalStates.length === 0) 21458 throw new Error(); 21459 const requiredOptionsSetStates = terminalStates.filter((state) => state.selectedIndex === HELP_COMMAND_INDEX || state.requiredOptions.every((names) => names.some((name) => state.options.find((opt) => opt.name === name)))); 21460 if (requiredOptionsSetStates.length === 0) { 21461 throw new UnknownSyntaxError(input, terminalStates.map((state) => ({ 21462 usage: state.candidateUsage, 21463 reason: null 21464 }))); 21465 } 21466 let maxPathSize = 0; 21467 for (const state of requiredOptionsSetStates) 21468 if (state.path.length > maxPathSize) 21469 maxPathSize = state.path.length; 21470 const bestPathBranches = requiredOptionsSetStates.filter((state) => { 21471 return state.path.length === maxPathSize; 21472 }); 21473 const getPositionalCount = (state) => state.positionals.filter(({ extra }) => { 21474 return !extra; 21475 }).length + state.options.length; 21476 const statesWithPositionalCount = bestPathBranches.map((state) => { 21477 return { state, positionalCount: getPositionalCount(state) }; 21478 }); 21479 let maxPositionalCount = 0; 21480 for (const { positionalCount } of statesWithPositionalCount) 21481 if (positionalCount > maxPositionalCount) 21482 maxPositionalCount = positionalCount; 21483 const bestPositionalStates = statesWithPositionalCount.filter(({ positionalCount }) => { 21484 return positionalCount === maxPositionalCount; 21485 }).map(({ state }) => { 21486 return state; 21487 }); 21488 const fixedStates = aggregateHelpStates(bestPositionalStates); 21489 if (fixedStates.length > 1) 21490 throw new AmbiguousSyntaxError(input, fixedStates.map((state) => state.candidateUsage)); 21491 return fixedStates[0]; 21492} 21493function aggregateHelpStates(states) { 21494 const notHelps = []; 21495 const helps = []; 21496 for (const state of states) { 21497 if (state.selectedIndex === HELP_COMMAND_INDEX) { 21498 helps.push(state); 21499 } else { 21500 notHelps.push(state); 21501 } 21502 } 21503 if (helps.length > 0) { 21504 notHelps.push({ 21505 ...basicHelpState, 21506 path: findCommonPrefix(...helps.map((state) => state.path)), 21507 options: helps.reduce((options, state) => options.concat(state.options), []) 21508 }); 21509 } 21510 return notHelps; 21511} 21512function findCommonPrefix(firstPath, secondPath, ...rest) { 21513 if (secondPath === void 0) 21514 return Array.from(firstPath); 21515 return findCommonPrefix(firstPath.filter((segment, i) => segment === secondPath[i]), ...rest); 21516} 21517function makeNode() { 21518 return { 21519 dynamics: [], 21520 shortcuts: [], 21521 statics: {} 21522 }; 21523} 21524function isTerminalNode(node) { 21525 return node === NODE_SUCCESS || node === NODE_ERRORED; 21526} 21527function cloneTransition(input, offset = 0) { 21528 return { 21529 to: !isTerminalNode(input.to) ? input.to > 2 ? input.to + offset - 2 : input.to + offset : input.to, 21530 reducer: input.reducer 21531 }; 21532} 21533function cloneNode(input, offset = 0) { 21534 const output = makeNode(); 21535 for (const [test, transition] of input.dynamics) 21536 output.dynamics.push([test, cloneTransition(transition, offset)]); 21537 for (const transition of input.shortcuts) 21538 output.shortcuts.push(cloneTransition(transition, offset)); 21539 for (const [segment, transitions] of Object.entries(input.statics)) 21540 output.statics[segment] = transitions.map((transition) => cloneTransition(transition, offset)); 21541 return output; 21542} 21543function registerDynamic(machine, from, test, to, reducer) { 21544 machine.nodes[from].dynamics.push([ 21545 test, 21546 { to, reducer } 21547 ]); 21548} 21549function registerShortcut(machine, from, to, reducer) { 21550 machine.nodes[from].shortcuts.push({ to, reducer }); 21551} 21552function registerStatic(machine, from, test, to, reducer) { 21553 const store = !Object.prototype.hasOwnProperty.call(machine.nodes[from].statics, test) ? machine.nodes[from].statics[test] = [] : machine.nodes[from].statics[test]; 21554 store.push({ to, reducer }); 21555} 21556function execute(store, callback, state, segment) { 21557 if (Array.isArray(callback)) { 21558 const [name, ...args] = callback; 21559 return store[name](state, segment, ...args); 21560 } else { 21561 return store[callback](state, segment); 21562 } 21563} 21564function suggest(callback, state) { 21565 const fn2 = Array.isArray(callback) ? tests[callback[0]] : tests[callback]; 21566 if (typeof fn2.suggest === `undefined`) 21567 return null; 21568 const args = Array.isArray(callback) ? callback.slice(1) : []; 21569 return fn2.suggest(state, ...args); 21570} 21571var tests = { 21572 always: () => { 21573 return true; 21574 }, 21575 isOptionLike: (state, segment) => { 21576 return !state.ignoreOptions && (segment !== `-` && segment.startsWith(`-`)); 21577 }, 21578 isNotOptionLike: (state, segment) => { 21579 return state.ignoreOptions || segment === `-` || !segment.startsWith(`-`); 21580 }, 21581 isOption: (state, segment, name, hidden) => { 21582 return !state.ignoreOptions && segment === name; 21583 }, 21584 isBatchOption: (state, segment, names) => { 21585 return !state.ignoreOptions && BATCH_REGEX.test(segment) && [...segment.slice(1)].every((name) => names.includes(`-${name}`)); 21586 }, 21587 isBoundOption: (state, segment, names, options) => { 21588 const optionParsing = segment.match(BINDING_REGEX); 21589 return !state.ignoreOptions && !!optionParsing && OPTION_REGEX.test(optionParsing[1]) && names.includes(optionParsing[1]) && options.filter((opt) => opt.names.includes(optionParsing[1])).every((opt) => opt.allowBinding); 21590 }, 21591 isNegatedOption: (state, segment, name) => { 21592 return !state.ignoreOptions && segment === `--no-${name.slice(2)}`; 21593 }, 21594 isHelp: (state, segment) => { 21595 return !state.ignoreOptions && HELP_REGEX.test(segment); 21596 }, 21597 isUnsupportedOption: (state, segment, names) => { 21598 return !state.ignoreOptions && segment.startsWith(`-`) && OPTION_REGEX.test(segment) && !names.includes(segment); 21599 }, 21600 isInvalidOption: (state, segment) => { 21601 return !state.ignoreOptions && segment.startsWith(`-`) && !OPTION_REGEX.test(segment); 21602 } 21603}; 21604tests.isOption.suggest = (state, name, hidden = true) => { 21605 return !hidden ? [name] : null; 21606}; 21607var reducers = { 21608 setCandidateState: (state, segment, candidateState) => { 21609 return { ...state, ...candidateState }; 21610 }, 21611 setSelectedIndex: (state, segment, index) => { 21612 return { ...state, selectedIndex: index }; 21613 }, 21614 pushBatch: (state, segment) => { 21615 return { ...state, options: state.options.concat([...segment.slice(1)].map((name) => ({ name: `-${name}`, value: true }))) }; 21616 }, 21617 pushBound: (state, segment) => { 21618 const [, name, value] = segment.match(BINDING_REGEX); 21619 return { ...state, options: state.options.concat({ name, value }) }; 21620 }, 21621 pushPath: (state, segment) => { 21622 return { ...state, path: state.path.concat(segment) }; 21623 }, 21624 pushPositional: (state, segment) => { 21625 return { ...state, positionals: state.positionals.concat({ value: segment, extra: false }) }; 21626 }, 21627 pushExtra: (state, segment) => { 21628 return { ...state, positionals: state.positionals.concat({ value: segment, extra: true }) }; 21629 }, 21630 pushExtraNoLimits: (state, segment) => { 21631 return { ...state, positionals: state.positionals.concat({ value: segment, extra: NoLimits }) }; 21632 }, 21633 pushTrue: (state, segment, name = segment) => { 21634 return { ...state, options: state.options.concat({ name: segment, value: true }) }; 21635 }, 21636 pushFalse: (state, segment, name = segment) => { 21637 return { ...state, options: state.options.concat({ name, value: false }) }; 21638 }, 21639 pushUndefined: (state, segment) => { 21640 return { ...state, options: state.options.concat({ name: segment, value: void 0 }) }; 21641 }, 21642 pushStringValue: (state, segment) => { 21643 var _a; 21644 const copy = { ...state, options: [...state.options] }; 21645 const lastOption = state.options[state.options.length - 1]; 21646 lastOption.value = ((_a = lastOption.value) !== null && _a !== void 0 ? _a : []).concat([segment]); 21647 return copy; 21648 }, 21649 setStringValue: (state, segment) => { 21650 const copy = { ...state, options: [...state.options] }; 21651 const lastOption = state.options[state.options.length - 1]; 21652 lastOption.value = segment; 21653 return copy; 21654 }, 21655 inhibateOptions: (state) => { 21656 return { ...state, ignoreOptions: true }; 21657 }, 21658 useHelp: (state, segment, command) => { 21659 const [ 21660 , 21661 /* name */ 21662 , 21663 index 21664 ] = segment.match(HELP_REGEX); 21665 if (typeof index !== `undefined`) { 21666 return { ...state, options: [{ name: `-c`, value: String(command) }, { name: `-i`, value: index }] }; 21667 } else { 21668 return { ...state, options: [{ name: `-c`, value: String(command) }] }; 21669 } 21670 }, 21671 setError: (state, segment, errorMessage) => { 21672 if (segment === END_OF_INPUT) { 21673 return { ...state, errorMessage: `${errorMessage}.` }; 21674 } else { 21675 return { ...state, errorMessage: `${errorMessage} ("${segment}").` }; 21676 } 21677 }, 21678 setOptionArityError: (state, segment) => { 21679 const lastOption = state.options[state.options.length - 1]; 21680 return { ...state, errorMessage: `Not enough arguments to option ${lastOption.name}.` }; 21681 } 21682}; 21683var NoLimits = Symbol(); 21684var CommandBuilder = class { 21685 constructor(cliIndex, cliOpts) { 21686 this.allOptionNames = []; 21687 this.arity = { leading: [], trailing: [], extra: [], proxy: false }; 21688 this.options = []; 21689 this.paths = []; 21690 this.cliIndex = cliIndex; 21691 this.cliOpts = cliOpts; 21692 } 21693 addPath(path10) { 21694 this.paths.push(path10); 21695 } 21696 setArity({ leading = this.arity.leading, trailing = this.arity.trailing, extra = this.arity.extra, proxy = this.arity.proxy }) { 21697 Object.assign(this.arity, { leading, trailing, extra, proxy }); 21698 } 21699 addPositional({ name = `arg`, required = true } = {}) { 21700 if (!required && this.arity.extra === NoLimits) 21701 throw new Error(`Optional parameters cannot be declared when using .rest() or .proxy()`); 21702 if (!required && this.arity.trailing.length > 0) 21703 throw new Error(`Optional parameters cannot be declared after the required trailing positional arguments`); 21704 if (!required && this.arity.extra !== NoLimits) { 21705 this.arity.extra.push(name); 21706 } else if (this.arity.extra !== NoLimits && this.arity.extra.length === 0) { 21707 this.arity.leading.push(name); 21708 } else { 21709 this.arity.trailing.push(name); 21710 } 21711 } 21712 addRest({ name = `arg`, required = 0 } = {}) { 21713 if (this.arity.extra === NoLimits) 21714 throw new Error(`Infinite lists cannot be declared multiple times in the same command`); 21715 if (this.arity.trailing.length > 0) 21716 throw new Error(`Infinite lists cannot be declared after the required trailing positional arguments`); 21717 for (let t = 0; t < required; ++t) 21718 this.addPositional({ name }); 21719 this.arity.extra = NoLimits; 21720 } 21721 addProxy({ required = 0 } = {}) { 21722 this.addRest({ required }); 21723 this.arity.proxy = true; 21724 } 21725 addOption({ names, description, arity = 0, hidden = false, required = false, allowBinding = true }) { 21726 if (!allowBinding && arity > 1) 21727 throw new Error(`The arity cannot be higher than 1 when the option only supports the --arg=value syntax`); 21728 if (!Number.isInteger(arity)) 21729 throw new Error(`The arity must be an integer, got ${arity}`); 21730 if (arity < 0) 21731 throw new Error(`The arity must be positive, got ${arity}`); 21732 this.allOptionNames.push(...names); 21733 this.options.push({ names, description, arity, hidden, required, allowBinding }); 21734 } 21735 setContext(context) { 21736 this.context = context; 21737 } 21738 usage({ detailed = true, inlineOptions = true } = {}) { 21739 const segments = [this.cliOpts.binaryName]; 21740 const detailedOptionList = []; 21741 if (this.paths.length > 0) 21742 segments.push(...this.paths[0]); 21743 if (detailed) { 21744 for (const { names, arity, hidden, description, required } of this.options) { 21745 if (hidden) 21746 continue; 21747 const args = []; 21748 for (let t = 0; t < arity; ++t) 21749 args.push(` #${t}`); 21750 const definition = `${names.join(`,`)}${args.join(``)}`; 21751 if (!inlineOptions && description) { 21752 detailedOptionList.push({ definition, description, required }); 21753 } else { 21754 segments.push(required ? `<${definition}>` : `[${definition}]`); 21755 } 21756 } 21757 segments.push(...this.arity.leading.map((name) => `<${name}>`)); 21758 if (this.arity.extra === NoLimits) 21759 segments.push(`...`); 21760 else 21761 segments.push(...this.arity.extra.map((name) => `[${name}]`)); 21762 segments.push(...this.arity.trailing.map((name) => `<${name}>`)); 21763 } 21764 const usage = segments.join(` `); 21765 return { usage, options: detailedOptionList }; 21766 } 21767 compile() { 21768 if (typeof this.context === `undefined`) 21769 throw new Error(`Assertion failed: No context attached`); 21770 const machine = makeStateMachine(); 21771 let firstNode = NODE_INITIAL; 21772 const candidateUsage = this.usage().usage; 21773 const requiredOptions = this.options.filter((opt) => opt.required).map((opt) => opt.names); 21774 firstNode = injectNode(machine, makeNode()); 21775 registerStatic(machine, NODE_INITIAL, START_OF_INPUT, firstNode, [`setCandidateState`, { candidateUsage, requiredOptions }]); 21776 const positionalArgument = this.arity.proxy ? `always` : `isNotOptionLike`; 21777 const paths = this.paths.length > 0 ? this.paths : [[]]; 21778 for (const path10 of paths) { 21779 let lastPathNode = firstNode; 21780 if (path10.length > 0) { 21781 const optionPathNode = injectNode(machine, makeNode()); 21782 registerShortcut(machine, lastPathNode, optionPathNode); 21783 this.registerOptions(machine, optionPathNode); 21784 lastPathNode = optionPathNode; 21785 } 21786 for (let t = 0; t < path10.length; ++t) { 21787 const nextPathNode = injectNode(machine, makeNode()); 21788 registerStatic(machine, lastPathNode, path10[t], nextPathNode, `pushPath`); 21789 lastPathNode = nextPathNode; 21790 } 21791 if (this.arity.leading.length > 0 || !this.arity.proxy) { 21792 const helpNode = injectNode(machine, makeNode()); 21793 registerDynamic(machine, lastPathNode, `isHelp`, helpNode, [`useHelp`, this.cliIndex]); 21794 registerDynamic(machine, helpNode, `always`, helpNode, `pushExtra`); 21795 registerStatic(machine, helpNode, END_OF_INPUT, NODE_SUCCESS, [`setSelectedIndex`, HELP_COMMAND_INDEX]); 21796 this.registerOptions(machine, lastPathNode); 21797 } 21798 if (this.arity.leading.length > 0) 21799 registerStatic(machine, lastPathNode, END_OF_INPUT, NODE_ERRORED, [`setError`, `Not enough positional arguments`]); 21800 let lastLeadingNode = lastPathNode; 21801 for (let t = 0; t < this.arity.leading.length; ++t) { 21802 const nextLeadingNode = injectNode(machine, makeNode()); 21803 if (!this.arity.proxy || t + 1 !== this.arity.leading.length) 21804 this.registerOptions(machine, nextLeadingNode); 21805 if (this.arity.trailing.length > 0 || t + 1 !== this.arity.leading.length) 21806 registerStatic(machine, nextLeadingNode, END_OF_INPUT, NODE_ERRORED, [`setError`, `Not enough positional arguments`]); 21807 registerDynamic(machine, lastLeadingNode, `isNotOptionLike`, nextLeadingNode, `pushPositional`); 21808 lastLeadingNode = nextLeadingNode; 21809 } 21810 let lastExtraNode = lastLeadingNode; 21811 if (this.arity.extra === NoLimits || this.arity.extra.length > 0) { 21812 const extraShortcutNode = injectNode(machine, makeNode()); 21813 registerShortcut(machine, lastLeadingNode, extraShortcutNode); 21814 if (this.arity.extra === NoLimits) { 21815 const extraNode = injectNode(machine, makeNode()); 21816 if (!this.arity.proxy) 21817 this.registerOptions(machine, extraNode); 21818 registerDynamic(machine, lastLeadingNode, positionalArgument, extraNode, `pushExtraNoLimits`); 21819 registerDynamic(machine, extraNode, positionalArgument, extraNode, `pushExtraNoLimits`); 21820 registerShortcut(machine, extraNode, extraShortcutNode); 21821 } else { 21822 for (let t = 0; t < this.arity.extra.length; ++t) { 21823 const nextExtraNode = injectNode(machine, makeNode()); 21824 if (!this.arity.proxy || t > 0) 21825 this.registerOptions(machine, nextExtraNode); 21826 registerDynamic(machine, lastExtraNode, positionalArgument, nextExtraNode, `pushExtra`); 21827 registerShortcut(machine, nextExtraNode, extraShortcutNode); 21828 lastExtraNode = nextExtraNode; 21829 } 21830 } 21831 lastExtraNode = extraShortcutNode; 21832 } 21833 if (this.arity.trailing.length > 0) 21834 registerStatic(machine, lastExtraNode, END_OF_INPUT, NODE_ERRORED, [`setError`, `Not enough positional arguments`]); 21835 let lastTrailingNode = lastExtraNode; 21836 for (let t = 0; t < this.arity.trailing.length; ++t) { 21837 const nextTrailingNode = injectNode(machine, makeNode()); 21838 if (!this.arity.proxy) 21839 this.registerOptions(machine, nextTrailingNode); 21840 if (t + 1 < this.arity.trailing.length) 21841 registerStatic(machine, nextTrailingNode, END_OF_INPUT, NODE_ERRORED, [`setError`, `Not enough positional arguments`]); 21842 registerDynamic(machine, lastTrailingNode, `isNotOptionLike`, nextTrailingNode, `pushPositional`); 21843 lastTrailingNode = nextTrailingNode; 21844 } 21845 registerDynamic(machine, lastTrailingNode, positionalArgument, NODE_ERRORED, [`setError`, `Extraneous positional argument`]); 21846 registerStatic(machine, lastTrailingNode, END_OF_INPUT, NODE_SUCCESS, [`setSelectedIndex`, this.cliIndex]); 21847 } 21848 return { 21849 machine, 21850 context: this.context 21851 }; 21852 } 21853 registerOptions(machine, node) { 21854 registerDynamic(machine, node, [`isOption`, `--`], node, `inhibateOptions`); 21855 registerDynamic(machine, node, [`isBatchOption`, this.allOptionNames], node, `pushBatch`); 21856 registerDynamic(machine, node, [`isBoundOption`, this.allOptionNames, this.options], node, `pushBound`); 21857 registerDynamic(machine, node, [`isUnsupportedOption`, this.allOptionNames], NODE_ERRORED, [`setError`, `Unsupported option name`]); 21858 registerDynamic(machine, node, [`isInvalidOption`], NODE_ERRORED, [`setError`, `Invalid option name`]); 21859 for (const option of this.options) { 21860 const longestName = option.names.reduce((longestName2, name) => { 21861 return name.length > longestName2.length ? name : longestName2; 21862 }, ``); 21863 if (option.arity === 0) { 21864 for (const name of option.names) { 21865 registerDynamic(machine, node, [`isOption`, name, option.hidden || name !== longestName], node, `pushTrue`); 21866 if (name.startsWith(`--`) && !name.startsWith(`--no-`)) { 21867 registerDynamic(machine, node, [`isNegatedOption`, name], node, [`pushFalse`, name]); 21868 } 21869 } 21870 } else { 21871 let lastNode = injectNode(machine, makeNode()); 21872 for (const name of option.names) 21873 registerDynamic(machine, node, [`isOption`, name, option.hidden || name !== longestName], lastNode, `pushUndefined`); 21874 for (let t = 0; t < option.arity; ++t) { 21875 const nextNode = injectNode(machine, makeNode()); 21876 registerStatic(machine, lastNode, END_OF_INPUT, NODE_ERRORED, `setOptionArityError`); 21877 registerDynamic(machine, lastNode, `isOptionLike`, NODE_ERRORED, `setOptionArityError`); 21878 const action = option.arity === 1 ? `setStringValue` : `pushStringValue`; 21879 registerDynamic(machine, lastNode, `isNotOptionLike`, nextNode, action); 21880 lastNode = nextNode; 21881 } 21882 registerShortcut(machine, lastNode, node); 21883 } 21884 } 21885 } 21886}; 21887var CliBuilder = class _CliBuilder { 21888 constructor({ binaryName = `...` } = {}) { 21889 this.builders = []; 21890 this.opts = { binaryName }; 21891 } 21892 static build(cbs, opts = {}) { 21893 return new _CliBuilder(opts).commands(cbs).compile(); 21894 } 21895 getBuilderByIndex(n) { 21896 if (!(n >= 0 && n < this.builders.length)) 21897 throw new Error(`Assertion failed: Out-of-bound command index (${n})`); 21898 return this.builders[n]; 21899 } 21900 commands(cbs) { 21901 for (const cb of cbs) 21902 cb(this.command()); 21903 return this; 21904 } 21905 command() { 21906 const builder = new CommandBuilder(this.builders.length, this.opts); 21907 this.builders.push(builder); 21908 return builder; 21909 } 21910 compile() { 21911 const machines = []; 21912 const contexts = []; 21913 for (const builder of this.builders) { 21914 const { machine: machine2, context } = builder.compile(); 21915 machines.push(machine2); 21916 contexts.push(context); 21917 } 21918 const machine = makeAnyOfMachine(machines); 21919 simplifyMachine(machine); 21920 return { 21921 machine, 21922 contexts, 21923 process: (input) => { 21924 return runMachine(machine, input); 21925 }, 21926 suggest: (input, partial) => { 21927 return suggestMachine(machine, input, partial); 21928 } 21929 }; 21930 } 21931}; 21932 21933// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/platform/node.mjs 21934var import_tty = __toESM(require("tty"), 1); 21935function getDefaultColorDepth() { 21936 if (import_tty.default && `getColorDepth` in import_tty.default.WriteStream.prototype) 21937 return import_tty.default.WriteStream.prototype.getColorDepth(); 21938 if (process.env.FORCE_COLOR === `0`) 21939 return 1; 21940 if (process.env.FORCE_COLOR === `1`) 21941 return 8; 21942 if (typeof process.stdout !== `undefined` && process.stdout.isTTY) 21943 return 8; 21944 return 1; 21945} 21946var gContextStorage; 21947function getCaptureActivator(context) { 21948 let contextStorage = gContextStorage; 21949 if (typeof contextStorage === `undefined`) { 21950 if (context.stdout === process.stdout && context.stderr === process.stderr) 21951 return null; 21952 const { AsyncLocalStorage: LazyAsyncLocalStorage } = require("async_hooks"); 21953 contextStorage = gContextStorage = new LazyAsyncLocalStorage(); 21954 const origStdoutWrite = process.stdout._write; 21955 process.stdout._write = function(chunk, encoding, cb) { 21956 const context2 = contextStorage.getStore(); 21957 if (typeof context2 === `undefined`) 21958 return origStdoutWrite.call(this, chunk, encoding, cb); 21959 return context2.stdout.write(chunk, encoding, cb); 21960 }; 21961 const origStderrWrite = process.stderr._write; 21962 process.stderr._write = function(chunk, encoding, cb) { 21963 const context2 = contextStorage.getStore(); 21964 if (typeof context2 === `undefined`) 21965 return origStderrWrite.call(this, chunk, encoding, cb); 21966 return context2.stderr.write(chunk, encoding, cb); 21967 }; 21968 } 21969 return (fn2) => { 21970 return contextStorage.run(context, fn2); 21971 }; 21972} 21973 21974// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/HelpCommand.mjs 21975var HelpCommand = class _HelpCommand extends Command { 21976 constructor(contexts) { 21977 super(); 21978 this.contexts = contexts; 21979 this.commands = []; 21980 } 21981 static from(state, contexts) { 21982 const command = new _HelpCommand(contexts); 21983 command.path = state.path; 21984 for (const opt of state.options) { 21985 switch (opt.name) { 21986 case `-c`: 21987 { 21988 command.commands.push(Number(opt.value)); 21989 } 21990 break; 21991 case `-i`: 21992 { 21993 command.index = Number(opt.value); 21994 } 21995 break; 21996 } 21997 } 21998 return command; 21999 } 22000 async execute() { 22001 let commands = this.commands; 22002 if (typeof this.index !== `undefined` && this.index >= 0 && this.index < commands.length) 22003 commands = [commands[this.index]]; 22004 if (commands.length === 0) { 22005 this.context.stdout.write(this.cli.usage()); 22006 } else if (commands.length === 1) { 22007 this.context.stdout.write(this.cli.usage(this.contexts[commands[0]].commandClass, { detailed: true })); 22008 } else if (commands.length > 1) { 22009 this.context.stdout.write(`Multiple commands match your selection: 22010`); 22011 this.context.stdout.write(` 22012`); 22013 let index = 0; 22014 for (const command of this.commands) 22015 this.context.stdout.write(this.cli.usage(this.contexts[command].commandClass, { prefix: `${index++}. `.padStart(5) })); 22016 this.context.stdout.write(` 22017`); 22018 this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands. 22019`); 22020 } 22021 } 22022}; 22023 22024// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/Cli.mjs 22025var errorCommandSymbol = Symbol(`clipanion/errorCommand`); 22026var Cli = class _Cli { 22027 constructor({ binaryLabel, binaryName: binaryNameOpt = `...`, binaryVersion, enableCapture = false, enableColors } = {}) { 22028 this.registrations = /* @__PURE__ */ new Map(); 22029 this.builder = new CliBuilder({ binaryName: binaryNameOpt }); 22030 this.binaryLabel = binaryLabel; 22031 this.binaryName = binaryNameOpt; 22032 this.binaryVersion = binaryVersion; 22033 this.enableCapture = enableCapture; 22034 this.enableColors = enableColors; 22035 } 22036 /** 22037 * Creates a new Cli and registers all commands passed as parameters. 22038 * 22039 * @param commandClasses The Commands to register 22040 * @returns The created `Cli` instance 22041 */ 22042 static from(commandClasses, options = {}) { 22043 const cli = new _Cli(options); 22044 const resolvedCommandClasses = Array.isArray(commandClasses) ? commandClasses : [commandClasses]; 22045 for (const commandClass of resolvedCommandClasses) 22046 cli.register(commandClass); 22047 return cli; 22048 } 22049 /** 22050 * Registers a command inside the CLI. 22051 */ 22052 register(commandClass) { 22053 var _a; 22054 const specs = /* @__PURE__ */ new Map(); 22055 const command = new commandClass(); 22056 for (const key in command) { 22057 const value = command[key]; 22058 if (typeof value === `object` && value !== null && value[Command.isOption]) { 22059 specs.set(key, value); 22060 } 22061 } 22062 const builder = this.builder.command(); 22063 const index = builder.cliIndex; 22064 const paths = (_a = commandClass.paths) !== null && _a !== void 0 ? _a : command.paths; 22065 if (typeof paths !== `undefined`) 22066 for (const path10 of paths) 22067 builder.addPath(path10); 22068 this.registrations.set(commandClass, { specs, builder, index }); 22069 for (const [key, { definition }] of specs.entries()) 22070 definition(builder, key); 22071 builder.setContext({ 22072 commandClass 22073 }); 22074 } 22075 process(input, userContext) { 22076 const { contexts, process: process5 } = this.builder.compile(); 22077 const state = process5(input); 22078 const context = { 22079 ..._Cli.defaultContext, 22080 ...userContext 22081 }; 22082 switch (state.selectedIndex) { 22083 case HELP_COMMAND_INDEX: { 22084 const command = HelpCommand.from(state, contexts); 22085 command.context = context; 22086 return command; 22087 } 22088 default: 22089 { 22090 const { commandClass } = contexts[state.selectedIndex]; 22091 const record = this.registrations.get(commandClass); 22092 if (typeof record === `undefined`) 22093 throw new Error(`Assertion failed: Expected the command class to have been registered.`); 22094 const command = new commandClass(); 22095 command.context = context; 22096 command.path = state.path; 22097 try { 22098 for (const [key, { transformer }] of record.specs.entries()) 22099 command[key] = transformer(record.builder, key, state, context); 22100 return command; 22101 } catch (error) { 22102 error[errorCommandSymbol] = command; 22103 throw error; 22104 } 22105 } 22106 break; 22107 } 22108 } 22109 async run(input, userContext) { 22110 var _a, _b; 22111 let command; 22112 const context = { 22113 ..._Cli.defaultContext, 22114 ...userContext 22115 }; 22116 const colored = (_a = this.enableColors) !== null && _a !== void 0 ? _a : context.colorDepth > 1; 22117 if (!Array.isArray(input)) { 22118 command = input; 22119 } else { 22120 try { 22121 command = this.process(input, context); 22122 } catch (error) { 22123 context.stdout.write(this.error(error, { colored })); 22124 return 1; 22125 } 22126 } 22127 if (command.help) { 22128 context.stdout.write(this.usage(command, { colored, detailed: true })); 22129 return 0; 22130 } 22131 command.context = context; 22132 command.cli = { 22133 binaryLabel: this.binaryLabel, 22134 binaryName: this.binaryName, 22135 binaryVersion: this.binaryVersion, 22136 enableCapture: this.enableCapture, 22137 enableColors: this.enableColors, 22138 definitions: () => this.definitions(), 22139 error: (error, opts) => this.error(error, opts), 22140 format: (colored2) => this.format(colored2), 22141 process: (input2, subContext) => this.process(input2, { ...context, ...subContext }), 22142 run: (input2, subContext) => this.run(input2, { ...context, ...subContext }), 22143 usage: (command2, opts) => this.usage(command2, opts) 22144 }; 22145 const activate = this.enableCapture ? (_b = getCaptureActivator(context)) !== null && _b !== void 0 ? _b : noopCaptureActivator : noopCaptureActivator; 22146 let exitCode; 22147 try { 22148 exitCode = await activate(() => command.validateAndExecute().catch((error) => command.catch(error).then(() => 0))); 22149 } catch (error) { 22150 context.stdout.write(this.error(error, { colored, command })); 22151 return 1; 22152 } 22153 return exitCode; 22154 } 22155 async runExit(input, context) { 22156 process.exitCode = await this.run(input, context); 22157 } 22158 suggest(input, partial) { 22159 const { suggest: suggest2 } = this.builder.compile(); 22160 return suggest2(input, partial); 22161 } 22162 definitions({ colored = false } = {}) { 22163 const data = []; 22164 for (const [commandClass, { index }] of this.registrations) { 22165 if (typeof commandClass.usage === `undefined`) 22166 continue; 22167 const { usage: path10 } = this.getUsageByIndex(index, { detailed: false }); 22168 const { usage, options } = this.getUsageByIndex(index, { detailed: true, inlineOptions: false }); 22169 const category = typeof commandClass.usage.category !== `undefined` ? formatMarkdownish(commandClass.usage.category, { format: this.format(colored), paragraphs: false }) : void 0; 22170 const description = typeof commandClass.usage.description !== `undefined` ? formatMarkdownish(commandClass.usage.description, { format: this.format(colored), paragraphs: false }) : void 0; 22171 const details = typeof commandClass.usage.details !== `undefined` ? formatMarkdownish(commandClass.usage.details, { format: this.format(colored), paragraphs: true }) : void 0; 22172 const examples = typeof commandClass.usage.examples !== `undefined` ? commandClass.usage.examples.map(([label, cli]) => [formatMarkdownish(label, { format: this.format(colored), paragraphs: false }), cli.replace(/\$0/g, this.binaryName)]) : void 0; 22173 data.push({ path: path10, usage, category, description, details, examples, options }); 22174 } 22175 return data; 22176 } 22177 usage(command = null, { colored, detailed = false, prefix = `$ ` } = {}) { 22178 var _a; 22179 if (command === null) { 22180 for (const commandClass2 of this.registrations.keys()) { 22181 const paths = commandClass2.paths; 22182 const isDocumented = typeof commandClass2.usage !== `undefined`; 22183 const isExclusivelyDefault = !paths || paths.length === 0 || paths.length === 1 && paths[0].length === 0; 22184 const isDefault = isExclusivelyDefault || ((_a = paths === null || paths === void 0 ? void 0 : paths.some((path10) => path10.length === 0)) !== null && _a !== void 0 ? _a : false); 22185 if (isDefault) { 22186 if (command) { 22187 command = null; 22188 break; 22189 } else { 22190 command = commandClass2; 22191 } 22192 } else { 22193 if (isDocumented) { 22194 command = null; 22195 continue; 22196 } 22197 } 22198 } 22199 if (command) { 22200 detailed = true; 22201 } 22202 } 22203 const commandClass = command !== null && command instanceof Command ? command.constructor : command; 22204 let result = ``; 22205 if (!commandClass) { 22206 const commandsByCategories = /* @__PURE__ */ new Map(); 22207 for (const [commandClass2, { index }] of this.registrations.entries()) { 22208 if (typeof commandClass2.usage === `undefined`) 22209 continue; 22210 const category = typeof commandClass2.usage.category !== `undefined` ? formatMarkdownish(commandClass2.usage.category, { format: this.format(colored), paragraphs: false }) : null; 22211 let categoryCommands = commandsByCategories.get(category); 22212 if (typeof categoryCommands === `undefined`) 22213 commandsByCategories.set(category, categoryCommands = []); 22214 const { usage } = this.getUsageByIndex(index); 22215 categoryCommands.push({ commandClass: commandClass2, usage }); 22216 } 22217 const categoryNames = Array.from(commandsByCategories.keys()).sort((a, b) => { 22218 if (a === null) 22219 return -1; 22220 if (b === null) 22221 return 1; 22222 return a.localeCompare(b, `en`, { usage: `sort`, caseFirst: `upper` }); 22223 }); 22224 const hasLabel = typeof this.binaryLabel !== `undefined`; 22225 const hasVersion = typeof this.binaryVersion !== `undefined`; 22226 if (hasLabel || hasVersion) { 22227 if (hasLabel && hasVersion) 22228 result += `${this.format(colored).header(`${this.binaryLabel} - ${this.binaryVersion}`)} 22229 22230`; 22231 else if (hasLabel) 22232 result += `${this.format(colored).header(`${this.binaryLabel}`)} 22233`; 22234 else 22235 result += `${this.format(colored).header(`${this.binaryVersion}`)} 22236`; 22237 result += ` ${this.format(colored).bold(prefix)}${this.binaryName} <command> 22238`; 22239 } else { 22240 result += `${this.format(colored).bold(prefix)}${this.binaryName} <command> 22241`; 22242 } 22243 for (const categoryName of categoryNames) { 22244 const commands = commandsByCategories.get(categoryName).slice().sort((a, b) => { 22245 return a.usage.localeCompare(b.usage, `en`, { usage: `sort`, caseFirst: `upper` }); 22246 }); 22247 const header = categoryName !== null ? categoryName.trim() : `General commands`; 22248 result += ` 22249`; 22250 result += `${this.format(colored).header(`${header}`)} 22251`; 22252 for (const { commandClass: commandClass2, usage } of commands) { 22253 const doc = commandClass2.usage.description || `undocumented`; 22254 result += ` 22255`; 22256 result += ` ${this.format(colored).bold(usage)} 22257`; 22258 result += ` ${formatMarkdownish(doc, { format: this.format(colored), paragraphs: false })}`; 22259 } 22260 } 22261 result += ` 22262`; 22263 result += formatMarkdownish(`You can also print more details about any of these commands by calling them with the \`-h,--help\` flag right after the command name.`, { format: this.format(colored), paragraphs: true }); 22264 } else { 22265 if (!detailed) { 22266 const { usage } = this.getUsageByRegistration(commandClass); 22267 result += `${this.format(colored).bold(prefix)}${usage} 22268`; 22269 } else { 22270 const { description = ``, details = ``, examples = [] } = commandClass.usage || {}; 22271 if (description !== ``) { 22272 result += formatMarkdownish(description, { format: this.format(colored), paragraphs: false }).replace(/^./, ($0) => $0.toUpperCase()); 22273 result += ` 22274`; 22275 } 22276 if (details !== `` || examples.length > 0) { 22277 result += `${this.format(colored).header(`Usage`)} 22278`; 22279 result += ` 22280`; 22281 } 22282 const { usage, options } = this.getUsageByRegistration(commandClass, { inlineOptions: false }); 22283 result += `${this.format(colored).bold(prefix)}${usage} 22284`; 22285 if (options.length > 0) { 22286 result += ` 22287`; 22288 result += `${this.format(colored).header(`Options`)} 22289`; 22290 const maxDefinitionLength = options.reduce((length, option) => { 22291 return Math.max(length, option.definition.length); 22292 }, 0); 22293 result += ` 22294`; 22295 for (const { definition, description: description2 } of options) { 22296 result += ` ${this.format(colored).bold(definition.padEnd(maxDefinitionLength))} ${formatMarkdownish(description2, { format: this.format(colored), paragraphs: false })}`; 22297 } 22298 } 22299 if (details !== ``) { 22300 result += ` 22301`; 22302 result += `${this.format(colored).header(`Details`)} 22303`; 22304 result += ` 22305`; 22306 result += formatMarkdownish(details, { format: this.format(colored), paragraphs: true }); 22307 } 22308 if (examples.length > 0) { 22309 result += ` 22310`; 22311 result += `${this.format(colored).header(`Examples`)} 22312`; 22313 for (const [description2, example] of examples) { 22314 result += ` 22315`; 22316 result += formatMarkdownish(description2, { format: this.format(colored), paragraphs: false }); 22317 result += `${example.replace(/^/m, ` ${this.format(colored).bold(prefix)}`).replace(/\$0/g, this.binaryName)} 22318`; 22319 } 22320 } 22321 } 22322 } 22323 return result; 22324 } 22325 error(error, _a) { 22326 var _b; 22327 var { colored, command = (_b = error[errorCommandSymbol]) !== null && _b !== void 0 ? _b : null } = _a === void 0 ? {} : _a; 22328 if (!error || typeof error !== `object` || !(`stack` in error)) 22329 error = new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(error)})`); 22330 let result = ``; 22331 let name = error.name.replace(/([a-z])([A-Z])/g, `$1 $2`); 22332 if (name === `Error`) 22333 name = `Internal Error`; 22334 result += `${this.format(colored).error(name)}: ${error.message} 22335`; 22336 const meta = error.clipanion; 22337 if (typeof meta !== `undefined`) { 22338 if (meta.type === `usage`) { 22339 result += ` 22340`; 22341 result += this.usage(command); 22342 } 22343 } else { 22344 if (error.stack) { 22345 result += `${error.stack.replace(/^.*\n/, ``)} 22346`; 22347 } 22348 } 22349 return result; 22350 } 22351 format(colored) { 22352 var _a; 22353 return ((_a = colored !== null && colored !== void 0 ? colored : this.enableColors) !== null && _a !== void 0 ? _a : _Cli.defaultContext.colorDepth > 1) ? richFormat : textFormat; 22354 } 22355 getUsageByRegistration(klass, opts) { 22356 const record = this.registrations.get(klass); 22357 if (typeof record === `undefined`) 22358 throw new Error(`Assertion failed: Unregistered command`); 22359 return this.getUsageByIndex(record.index, opts); 22360 } 22361 getUsageByIndex(n, opts) { 22362 return this.builder.getBuilderByIndex(n).usage(opts); 22363 } 22364}; 22365Cli.defaultContext = { 22366 env: process.env, 22367 stdin: process.stdin, 22368 stdout: process.stdout, 22369 stderr: process.stderr, 22370 colorDepth: getDefaultColorDepth() 22371}; 22372function noopCaptureActivator(fn2) { 22373 return fn2(); 22374} 22375 22376// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/builtins/index.mjs 22377var builtins_exports = {}; 22378__export(builtins_exports, { 22379 DefinitionsCommand: () => DefinitionsCommand, 22380 HelpCommand: () => HelpCommand2, 22381 VersionCommand: () => VersionCommand 22382}); 22383 22384// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/builtins/definitions.mjs 22385var DefinitionsCommand = class extends Command { 22386 async execute() { 22387 this.context.stdout.write(`${JSON.stringify(this.cli.definitions(), null, 2)} 22388`); 22389 } 22390}; 22391DefinitionsCommand.paths = [[`--clipanion=definitions`]]; 22392 22393// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/builtins/help.mjs 22394var HelpCommand2 = class extends Command { 22395 async execute() { 22396 this.context.stdout.write(this.cli.usage()); 22397 } 22398}; 22399HelpCommand2.paths = [[`-h`], [`--help`]]; 22400 22401// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/builtins/version.mjs 22402var VersionCommand = class extends Command { 22403 async execute() { 22404 var _a; 22405 this.context.stdout.write(`${(_a = this.cli.binaryVersion) !== null && _a !== void 0 ? _a : `<unknown>`} 22406`); 22407 } 22408}; 22409VersionCommand.paths = [[`-v`], [`--version`]]; 22410 22411// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/index.mjs 22412var options_exports = {}; 22413__export(options_exports, { 22414 Array: () => Array2, 22415 Boolean: () => Boolean2, 22416 Counter: () => Counter, 22417 Proxy: () => Proxy2, 22418 Rest: () => Rest, 22419 String: () => String2, 22420 applyValidator: () => applyValidator, 22421 cleanValidationError: () => cleanValidationError, 22422 formatError: () => formatError, 22423 isOptionSymbol: () => isOptionSymbol, 22424 makeCommandOption: () => makeCommandOption, 22425 rerouteArguments: () => rerouteArguments 22426}); 22427 22428// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Array.mjs 22429function Array2(descriptor, initialValueBase, optsBase) { 22430 const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); 22431 const { arity = 1 } = opts; 22432 const optNames = descriptor.split(`,`); 22433 const nameSet = new Set(optNames); 22434 return makeCommandOption({ 22435 definition(builder) { 22436 builder.addOption({ 22437 names: optNames, 22438 arity, 22439 hidden: opts === null || opts === void 0 ? void 0 : opts.hidden, 22440 description: opts === null || opts === void 0 ? void 0 : opts.description, 22441 required: opts.required 22442 }); 22443 }, 22444 transformer(builder, key, state) { 22445 let usedName; 22446 let currentValue = typeof initialValue !== `undefined` ? [...initialValue] : void 0; 22447 for (const { name, value } of state.options) { 22448 if (!nameSet.has(name)) 22449 continue; 22450 usedName = name; 22451 currentValue = currentValue !== null && currentValue !== void 0 ? currentValue : []; 22452 currentValue.push(value); 22453 } 22454 if (typeof currentValue !== `undefined`) { 22455 return applyValidator(usedName !== null && usedName !== void 0 ? usedName : key, currentValue, opts.validator); 22456 } else { 22457 return currentValue; 22458 } 22459 } 22460 }); 22461} 22462 22463// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Boolean.mjs 22464function Boolean2(descriptor, initialValueBase, optsBase) { 22465 const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); 22466 const optNames = descriptor.split(`,`); 22467 const nameSet = new Set(optNames); 22468 return makeCommandOption({ 22469 definition(builder) { 22470 builder.addOption({ 22471 names: optNames, 22472 allowBinding: false, 22473 arity: 0, 22474 hidden: opts.hidden, 22475 description: opts.description, 22476 required: opts.required 22477 }); 22478 }, 22479 transformer(builer, key, state) { 22480 let currentValue = initialValue; 22481 for (const { name, value } of state.options) { 22482 if (!nameSet.has(name)) 22483 continue; 22484 currentValue = value; 22485 } 22486 return currentValue; 22487 } 22488 }); 22489} 22490 22491// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Counter.mjs 22492function Counter(descriptor, initialValueBase, optsBase) { 22493 const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); 22494 const optNames = descriptor.split(`,`); 22495 const nameSet = new Set(optNames); 22496 return makeCommandOption({ 22497 definition(builder) { 22498 builder.addOption({ 22499 names: optNames, 22500 allowBinding: false, 22501 arity: 0, 22502 hidden: opts.hidden, 22503 description: opts.description, 22504 required: opts.required 22505 }); 22506 }, 22507 transformer(builder, key, state) { 22508 let currentValue = initialValue; 22509 for (const { name, value } of state.options) { 22510 if (!nameSet.has(name)) 22511 continue; 22512 currentValue !== null && currentValue !== void 0 ? currentValue : currentValue = 0; 22513 if (!value) { 22514 currentValue = 0; 22515 } else { 22516 currentValue += 1; 22517 } 22518 } 22519 return currentValue; 22520 } 22521 }); 22522} 22523 22524// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Proxy.mjs 22525function Proxy2(opts = {}) { 22526 return makeCommandOption({ 22527 definition(builder, key) { 22528 var _a; 22529 builder.addProxy({ 22530 name: (_a = opts.name) !== null && _a !== void 0 ? _a : key, 22531 required: opts.required 22532 }); 22533 }, 22534 transformer(builder, key, state) { 22535 return state.positionals.map(({ value }) => value); 22536 } 22537 }); 22538} 22539 22540// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Rest.mjs 22541function Rest(opts = {}) { 22542 return makeCommandOption({ 22543 definition(builder, key) { 22544 var _a; 22545 builder.addRest({ 22546 name: (_a = opts.name) !== null && _a !== void 0 ? _a : key, 22547 required: opts.required 22548 }); 22549 }, 22550 transformer(builder, key, state) { 22551 const isRestPositional = (index) => { 22552 const positional = state.positionals[index]; 22553 if (positional.extra === NoLimits) 22554 return true; 22555 if (positional.extra === false && index < builder.arity.leading.length) 22556 return true; 22557 return false; 22558 }; 22559 let count = 0; 22560 while (count < state.positionals.length && isRestPositional(count)) 22561 count += 1; 22562 return state.positionals.splice(0, count).map(({ value }) => value); 22563 } 22564 }); 22565} 22566 22567// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/String.mjs 22568function StringOption(descriptor, initialValueBase, optsBase) { 22569 const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); 22570 const { arity = 1 } = opts; 22571 const optNames = descriptor.split(`,`); 22572 const nameSet = new Set(optNames); 22573 return makeCommandOption({ 22574 definition(builder) { 22575 builder.addOption({ 22576 names: optNames, 22577 arity: opts.tolerateBoolean ? 0 : arity, 22578 hidden: opts.hidden, 22579 description: opts.description, 22580 required: opts.required 22581 }); 22582 }, 22583 transformer(builder, key, state, context) { 22584 let usedName; 22585 let currentValue = initialValue; 22586 if (typeof opts.env !== `undefined` && context.env[opts.env]) { 22587 usedName = opts.env; 22588 currentValue = context.env[opts.env]; 22589 } 22590 for (const { name, value } of state.options) { 22591 if (!nameSet.has(name)) 22592 continue; 22593 usedName = name; 22594 currentValue = value; 22595 } 22596 if (typeof currentValue === `string`) { 22597 return applyValidator(usedName !== null && usedName !== void 0 ? usedName : key, currentValue, opts.validator); 22598 } else { 22599 return currentValue; 22600 } 22601 } 22602 }); 22603} 22604function StringPositional(opts = {}) { 22605 const { required = true } = opts; 22606 return makeCommandOption({ 22607 definition(builder, key) { 22608 var _a; 22609 builder.addPositional({ 22610 name: (_a = opts.name) !== null && _a !== void 0 ? _a : key, 22611 required: opts.required 22612 }); 22613 }, 22614 transformer(builder, key, state) { 22615 var _a; 22616 for (let i = 0; i < state.positionals.length; ++i) { 22617 if (state.positionals[i].extra === NoLimits) 22618 continue; 22619 if (required && state.positionals[i].extra === true) 22620 continue; 22621 if (!required && state.positionals[i].extra === false) 22622 continue; 22623 const [positional] = state.positionals.splice(i, 1); 22624 return applyValidator((_a = opts.name) !== null && _a !== void 0 ? _a : key, positional.value, opts.validator); 22625 } 22626 return void 0; 22627 } 22628 }); 22629} 22630function String2(descriptor, ...args) { 22631 if (typeof descriptor === `string`) { 22632 return StringOption(descriptor, ...args); 22633 } else { 22634 return StringPositional(descriptor); 22635 } 22636} 22637 22638// package.json 22639var version = "0.25.2"; 22640 22641// sources/Engine.ts 22642var import_fs3 = __toESM(require("fs")); 22643var import_path3 = __toESM(require("path")); 22644var import_process3 = __toESM(require("process")); 22645var import_semver3 = __toESM(require_semver2()); 22646 22647// config.json 22648var config_default = { 22649 definitions: { 22650 npm: { 22651 default: "10.4.0+sha1.904025b4d932cfaed8799e644a1c5ae7f02729fc", 22652 fetchLatestFrom: { 22653 type: "npm", 22654 package: "npm" 22655 }, 22656 transparent: { 22657 commands: [ 22658 [ 22659 "npm", 22660 "init" 22661 ], 22662 [ 22663 "npx" 22664 ] 22665 ] 22666 }, 22667 ranges: { 22668 "*": { 22669 url: "https://registry.npmjs.org/npm/-/npm-{}.tgz", 22670 bin: { 22671 npm: "./bin/npm-cli.js", 22672 npx: "./bin/npx-cli.js" 22673 }, 22674 registry: { 22675 type: "npm", 22676 package: "npm" 22677 }, 22678 commands: { 22679 use: [ 22680 "npm", 22681 "install" 22682 ] 22683 } 22684 } 22685 } 22686 }, 22687 pnpm: { 22688 default: "8.15.3+sha1.64838798f519c18029c1e8a1310e16101fc2eda0", 22689 fetchLatestFrom: { 22690 type: "npm", 22691 package: "pnpm" 22692 }, 22693 transparent: { 22694 commands: [ 22695 [ 22696 "pnpm", 22697 "init" 22698 ], 22699 [ 22700 "pnpx" 22701 ], 22702 [ 22703 "pnpm", 22704 "dlx" 22705 ] 22706 ] 22707 }, 22708 ranges: { 22709 "<6.0.0": { 22710 url: "https://registry.npmjs.org/pnpm/-/pnpm-{}.tgz", 22711 bin: { 22712 pnpm: "./bin/pnpm.js", 22713 pnpx: "./bin/pnpx.js" 22714 }, 22715 registry: { 22716 type: "npm", 22717 package: "pnpm" 22718 }, 22719 commands: { 22720 use: [ 22721 "pnpm", 22722 "install" 22723 ] 22724 } 22725 }, 22726 ">=6.0.0": { 22727 url: "https://registry.npmjs.org/pnpm/-/pnpm-{}.tgz", 22728 bin: { 22729 pnpm: "./bin/pnpm.cjs", 22730 pnpx: "./bin/pnpx.cjs" 22731 }, 22732 registry: { 22733 type: "npm", 22734 package: "pnpm" 22735 }, 22736 commands: { 22737 use: [ 22738 "pnpm", 22739 "install" 22740 ] 22741 } 22742 } 22743 } 22744 }, 22745 yarn: { 22746 default: "1.22.21+sha1.1959a18351b811cdeedbd484a8f86c3cc3bbaf72", 22747 fetchLatestFrom: { 22748 type: "npm", 22749 package: "yarn" 22750 }, 22751 transparent: { 22752 default: "4.1.0+sha224.bc24d7f5afc738464f3d4e95f4e6e7829a35cee54a0fd527ea5baa83", 22753 commands: [ 22754 [ 22755 "yarn", 22756 "dlx" 22757 ] 22758 ] 22759 }, 22760 ranges: { 22761 "<2.0.0": { 22762 url: "https://registry.yarnpkg.com/yarn/-/yarn-{}.tgz", 22763 bin: { 22764 yarn: "./bin/yarn.js", 22765 yarnpkg: "./bin/yarn.js" 22766 }, 22767 registry: { 22768 type: "npm", 22769 package: "yarn" 22770 }, 22771 commands: { 22772 use: [ 22773 "yarn", 22774 "install" 22775 ] 22776 } 22777 }, 22778 ">=2.0.0": { 22779 name: "yarn", 22780 url: "https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js", 22781 bin: [ 22782 "yarn", 22783 "yarnpkg" 22784 ], 22785 registry: { 22786 type: "url", 22787 url: "https://repo.yarnpkg.com/tags", 22788 fields: { 22789 tags: "aliases", 22790 versions: "tags" 22791 } 22792 }, 22793 npmRegistry: { 22794 type: "npm", 22795 package: "@yarnpkg/cli-dist" 22796 }, 22797 commands: { 22798 use: [ 22799 "yarn", 22800 "install" 22801 ] 22802 } 22803 } 22804 } 22805 } 22806 } 22807}; 22808 22809// sources/corepackUtils.ts 22810var import_crypto = require("crypto"); 22811var import_events2 = require("events"); 22812var import_fs2 = __toESM(require("fs")); 22813var import_module = __toESM(require("module")); 22814var import_path2 = __toESM(require("path")); 22815var import_semver = __toESM(require_semver2()); 22816 22817// sources/debugUtils.ts 22818var import_debug = __toESM(require_src()); 22819var log = (0, import_debug.default)(`corepack`); 22820 22821// sources/folderUtils.ts 22822var import_fs = require("fs"); 22823var import_os = require("os"); 22824var import_path = require("path"); 22825var import_process = __toESM(require("process")); 22826var INSTALL_FOLDER_VERSION = 1; 22827function getCorepackHomeFolder() { 22828 return import_process.default.env.COREPACK_HOME ?? (0, import_path.join)( 22829 import_process.default.env.XDG_CACHE_HOME ?? import_process.default.env.LOCALAPPDATA ?? (0, import_path.join)((0, import_os.homedir)(), import_process.default.platform === `win32` ? `AppData/Local` : `.cache`), 22830 `node/corepack` 22831 ); 22832} 22833function getInstallFolder() { 22834 return (0, import_path.join)( 22835 getCorepackHomeFolder(), 22836 `v${INSTALL_FOLDER_VERSION}` 22837 ); 22838} 22839function getTemporaryFolder(target = (0, import_os.tmpdir)()) { 22840 (0, import_fs.mkdirSync)(target, { recursive: true }); 22841 while (true) { 22842 const rnd = Math.random() * 4294967296; 22843 const hex = rnd.toString(16).padStart(8, `0`); 22844 const path10 = (0, import_path.join)(target, `corepack-${import_process.default.pid}-${hex}`); 22845 try { 22846 (0, import_fs.mkdirSync)(path10); 22847 return path10; 22848 } catch (error) { 22849 if (error.code === `EEXIST`) { 22850 continue; 22851 } else if (error.code === `EACCES`) { 22852 throw new UsageError(`Failed to create cache directory. Please ensure the user has write access to the target directory (${target}). If the user's home directory does not exist, create it first.`); 22853 } else { 22854 throw error; 22855 } 22856 } 22857 } 22858} 22859 22860// sources/fsUtils.ts 22861var import_promises = require("fs/promises"); 22862async function rimraf(path10) { 22863 return (0, import_promises.rm)(path10, { recursive: true, force: true }); 22864} 22865 22866// sources/httpUtils.ts 22867var import_assert = __toESM(require("assert")); 22868var import_events = require("events"); 22869var import_process2 = require("process"); 22870var import_stream = require("stream"); 22871async function fetch(input, init) { 22872 if (process.env.COREPACK_ENABLE_NETWORK === `0`) 22873 throw new UsageError(`Network access disabled by the environment; can't reach ${input}`); 22874 const agent = await getProxyAgent(input); 22875 let response; 22876 try { 22877 response = await globalThis.fetch(input, { 22878 ...init, 22879 dispatcher: agent 22880 }); 22881 } catch (error) { 22882 throw new Error( 22883 `Error when performing the request to ${input}; for troubleshooting help, see https://github.com/nodejs/corepack#troubleshooting`, 22884 { cause: error } 22885 ); 22886 } 22887 if (!response.ok) { 22888 await response.arrayBuffer(); 22889 throw new Error( 22890 `Server answered with HTTP ${response.status} when performing the request to ${input}; for troubleshooting help, see https://github.com/nodejs/corepack#troubleshooting` 22891 ); 22892 } 22893 return response; 22894} 22895async function fetchAsJson(input, init) { 22896 const response = await fetch(input, init); 22897 return response.json(); 22898} 22899async function fetchUrlStream(input, init) { 22900 if (process.env.COREPACK_ENABLE_DOWNLOAD_PROMPT === `1`) { 22901 console.error(`Corepack is about to download ${input}.`); 22902 if (import_process2.stdin.isTTY && !process.env.CI) { 22903 import_process2.stderr.write(` 22904Do you want to continue? [Y/n] `); 22905 import_process2.stdin.resume(); 22906 const chars = await (0, import_events.once)(import_process2.stdin, `data`); 22907 import_process2.stdin.pause(); 22908 if (chars[0][0] === 110 || // n 22909 chars[0][0] === 78) { 22910 throw new UsageError(`Aborted by the user`); 22911 } 22912 } 22913 } 22914 const response = await fetch(input, init); 22915 const webStream = response.body; 22916 (0, import_assert.default)(webStream, `Expected stream to be set`); 22917 const stream = import_stream.Readable.fromWeb(webStream); 22918 return stream; 22919} 22920async function getProxyAgent(input) { 22921 const { getProxyForUrl } = await Promise.resolve().then(() => __toESM(require_proxy_from_env())); 22922 const proxy = getProxyForUrl(input); 22923 if (!proxy) 22924 return void 0; 22925 const { default: ProxyAgent } = await Promise.resolve().then(() => __toESM(require_proxy_agent())); 22926 return new ProxyAgent(proxy); 22927} 22928 22929// sources/npmRegistryUtils.ts 22930var DEFAULT_HEADERS = { 22931 [`Accept`]: `application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8` 22932}; 22933var DEFAULT_NPM_REGISTRY_URL = `https://registry.npmjs.org`; 22934async function fetchAsJson2(packageName) { 22935 const npmRegistryUrl = process.env.COREPACK_NPM_REGISTRY || DEFAULT_NPM_REGISTRY_URL; 22936 if (process.env.COREPACK_ENABLE_NETWORK === `0`) 22937 throw new UsageError(`Network access disabled by the environment; can't reach npm repository ${npmRegistryUrl}`); 22938 const headers = { ...DEFAULT_HEADERS }; 22939 if (`COREPACK_NPM_TOKEN` in process.env) { 22940 headers.authorization = `Bearer ${process.env.COREPACK_NPM_TOKEN}`; 22941 } else if (`COREPACK_NPM_USERNAME` in process.env && `COREPACK_NPM_PASSWORD` in process.env) { 22942 const encodedCreds = Buffer.from(`${process.env.COREPACK_NPM_USERNAME}:${process.env.COREPACK_NPM_PASSWORD}`, `utf8`).toString(`base64`); 22943 headers.authorization = `Basic ${encodedCreds}`; 22944 } 22945 return fetchAsJson(`${npmRegistryUrl}/${packageName}`, { headers }); 22946} 22947async function fetchLatestStableVersion(packageName) { 22948 const metadata = await fetchAsJson2(packageName); 22949 const { latest } = metadata[`dist-tags`]; 22950 if (latest === void 0) 22951 throw new Error(`${packageName} does not have a "latest" tag.`); 22952 const { shasum } = metadata.versions[latest].dist; 22953 return `${latest}+sha1.${shasum}`; 22954} 22955async function fetchAvailableTags(packageName) { 22956 const metadata = await fetchAsJson2(packageName); 22957 return metadata[`dist-tags`]; 22958} 22959async function fetchAvailableVersions(packageName) { 22960 const metadata = await fetchAsJson2(packageName); 22961 return Object.keys(metadata.versions); 22962} 22963 22964// sources/corepackUtils.ts 22965function getRegistryFromPackageManagerSpec(spec) { 22966 return process.env.COREPACK_NPM_REGISTRY ? spec.npmRegistry ?? spec.registry : spec.registry; 22967} 22968async function fetchLatestStableVersion2(spec) { 22969 switch (spec.type) { 22970 case `npm`: { 22971 return await fetchLatestStableVersion(spec.package); 22972 } 22973 case `url`: { 22974 const data = await fetchAsJson(spec.url); 22975 return data[spec.fields.tags].stable; 22976 } 22977 default: { 22978 throw new Error(`Unsupported specification ${JSON.stringify(spec)}`); 22979 } 22980 } 22981} 22982async function fetchAvailableTags2(spec) { 22983 switch (spec.type) { 22984 case `npm`: { 22985 return await fetchAvailableTags(spec.package); 22986 } 22987 case `url`: { 22988 const data = await fetchAsJson(spec.url); 22989 return data[spec.fields.tags]; 22990 } 22991 default: { 22992 throw new Error(`Unsupported specification ${JSON.stringify(spec)}`); 22993 } 22994 } 22995} 22996async function fetchAvailableVersions2(spec) { 22997 switch (spec.type) { 22998 case `npm`: { 22999 return await fetchAvailableVersions(spec.package); 23000 } 23001 case `url`: { 23002 const data = await fetchAsJson(spec.url); 23003 const field = data[spec.fields.versions]; 23004 return Array.isArray(field) ? field : Object.keys(field); 23005 } 23006 default: { 23007 throw new Error(`Unsupported specification ${JSON.stringify(spec)}`); 23008 } 23009 } 23010} 23011async function findInstalledVersion(installTarget, descriptor) { 23012 const installFolder = import_path2.default.join(installTarget, descriptor.name); 23013 let cacheDirectory; 23014 try { 23015 cacheDirectory = await import_fs2.default.promises.opendir(installFolder); 23016 } catch (error) { 23017 if (error.code === `ENOENT`) { 23018 return null; 23019 } else { 23020 throw error; 23021 } 23022 } 23023 const range = new import_semver.default.Range(descriptor.range); 23024 let bestMatch = null; 23025 let maxSV = void 0; 23026 for await (const { name } of cacheDirectory) { 23027 if (name.startsWith(`.`)) 23028 continue; 23029 if (range.test(name) && maxSV?.compare(name) !== 1) { 23030 bestMatch = name; 23031 maxSV = new import_semver.default.SemVer(bestMatch); 23032 } 23033 } 23034 return bestMatch; 23035} 23036function isSupportedPackageManagerDescriptor(descriptor) { 23037 return !URL.canParse(descriptor.range); 23038} 23039function isSupportedPackageManagerLocator(locator) { 23040 return !URL.canParse(locator.reference); 23041} 23042function parseURLReference(locator) { 23043 const { hash, href } = new URL(locator.reference); 23044 if (hash) { 23045 return { 23046 version: encodeURIComponent(href.slice(0, -hash.length)), 23047 build: hash.slice(1).split(`.`) 23048 }; 23049 } 23050 return { version: encodeURIComponent(href), build: [] }; 23051} 23052async function installVersion(installTarget, locator, { spec }) { 23053 const locatorIsASupportedPackageManager = isSupportedPackageManagerLocator(locator); 23054 const locatorReference = locatorIsASupportedPackageManager ? import_semver.default.parse(locator.reference) : parseURLReference(locator); 23055 const { version: version2, build } = locatorReference; 23056 const installFolder = import_path2.default.join(installTarget, locator.name, version2); 23057 try { 23058 const corepackFile = import_path2.default.join(installFolder, `.corepack`); 23059 const corepackContent = await import_fs2.default.promises.readFile(corepackFile, `utf8`); 23060 const corepackData = JSON.parse(corepackContent); 23061 log(`Reusing ${locator.name}@${locator.reference}`); 23062 return { 23063 hash: corepackData.hash, 23064 location: installFolder, 23065 bin: corepackData.bin 23066 }; 23067 } catch (err) { 23068 if (err?.code !== `ENOENT`) { 23069 throw err; 23070 } 23071 } 23072 let url; 23073 if (locatorIsASupportedPackageManager) { 23074 const defaultNpmRegistryURL = spec.url.replace(`{}`, version2); 23075 url = process.env.COREPACK_NPM_REGISTRY ? defaultNpmRegistryURL.replace( 23076 DEFAULT_NPM_REGISTRY_URL, 23077 () => process.env.COREPACK_NPM_REGISTRY 23078 ) : defaultNpmRegistryURL; 23079 } else { 23080 url = decodeURIComponent(version2); 23081 } 23082 const tmpFolder = getTemporaryFolder(installTarget); 23083 log(`Installing ${locator.name}@${version2} from ${url} to ${tmpFolder}`); 23084 const stream = await fetchUrlStream(url); 23085 const parsedUrl = new URL(url); 23086 const ext = import_path2.default.posix.extname(parsedUrl.pathname); 23087 let outputFile = null; 23088 let sendTo; 23089 if (ext === `.tgz`) { 23090 const { default: tar } = await Promise.resolve().then(() => __toESM(require_tar())); 23091 sendTo = tar.x({ strip: 1, cwd: tmpFolder }); 23092 } else if (ext === `.js`) { 23093 outputFile = import_path2.default.join(tmpFolder, import_path2.default.posix.basename(parsedUrl.pathname)); 23094 sendTo = import_fs2.default.createWriteStream(outputFile); 23095 } 23096 stream.pipe(sendTo); 23097 const algo = build[0] ?? `sha256`; 23098 const hash = stream.pipe((0, import_crypto.createHash)(algo)); 23099 await (0, import_events2.once)(sendTo, `finish`); 23100 let bin; 23101 if (!locatorIsASupportedPackageManager) { 23102 if (ext === `.tgz`) { 23103 bin = require(import_path2.default.join(tmpFolder, `package.json`)).bin; 23104 } else if (ext === `.js`) { 23105 bin = [locator.name]; 23106 } 23107 } 23108 const actualHash = hash.digest(`hex`); 23109 if (build[1] && actualHash !== build[1]) 23110 throw new Error(`Mismatch hashes. Expected ${build[1]}, got ${actualHash}`); 23111 const serializedHash = `${algo}.${actualHash}`; 23112 await import_fs2.default.promises.writeFile(import_path2.default.join(tmpFolder, `.corepack`), JSON.stringify({ 23113 locator, 23114 bin, 23115 hash: serializedHash 23116 })); 23117 await import_fs2.default.promises.mkdir(import_path2.default.dirname(installFolder), { recursive: true }); 23118 try { 23119 await import_fs2.default.promises.rename(tmpFolder, installFolder); 23120 } catch (err) { 23121 if (err.code === `ENOTEMPTY` || // On Windows the error code is EPERM so we check if it is a directory 23122 err.code === `EPERM` && (await import_fs2.default.promises.stat(installFolder)).isDirectory()) { 23123 log(`Another instance of corepack installed ${locator.name}@${locator.reference}`); 23124 await rimraf(tmpFolder); 23125 } else { 23126 throw err; 23127 } 23128 } 23129 if (locatorIsASupportedPackageManager && process.env.COREPACK_DEFAULT_TO_LATEST !== `0`) { 23130 let lastKnownGoodFile; 23131 try { 23132 lastKnownGoodFile = await getLastKnownGoodFile(`r+`); 23133 const lastKnownGood = await getJSONFileContent(lastKnownGoodFile); 23134 const defaultVersion = getLastKnownGoodFromFileContent(lastKnownGood, locator.name); 23135 if (defaultVersion) { 23136 const currentDefault = import_semver.default.parse(defaultVersion); 23137 const downloadedVersion = locatorReference; 23138 if (currentDefault.major === downloadedVersion.major && import_semver.default.lt(currentDefault, downloadedVersion)) { 23139 await activatePackageManagerFromFileHandle(lastKnownGoodFile, lastKnownGood, locator); 23140 } 23141 } 23142 } catch (err) { 23143 if (err?.code !== `ENOENT`) { 23144 throw err; 23145 } 23146 } finally { 23147 await lastKnownGoodFile?.close(); 23148 } 23149 } 23150 log(`Install finished`); 23151 return { 23152 location: installFolder, 23153 bin, 23154 hash: serializedHash 23155 }; 23156} 23157async function runVersion(locator, installSpec, binName, args) { 23158 let binPath = null; 23159 if (Array.isArray(installSpec.spec.bin)) { 23160 if (installSpec.spec.bin.some((bin) => bin === binName)) { 23161 const parsedUrl = new URL(installSpec.spec.url); 23162 const ext = import_path2.default.posix.extname(parsedUrl.pathname); 23163 if (ext === `.js`) { 23164 binPath = import_path2.default.join(installSpec.location, import_path2.default.posix.basename(parsedUrl.pathname)); 23165 } 23166 } 23167 } else { 23168 for (const [name, dest] of Object.entries(installSpec.spec.bin)) { 23169 if (name === binName) { 23170 binPath = import_path2.default.join(installSpec.location, dest); 23171 break; 23172 } 23173 } 23174 } 23175 if (!binPath) 23176 throw new Error(`Assertion failed: Unable to locate path for bin '${binName}'`); 23177 if (locator.name !== `npm` || import_semver.default.lt(locator.reference, `9.7.0`)) 23178 await Promise.resolve().then(() => __toESM(require_v8_compile_cache())); 23179 process.env.COREPACK_ROOT = import_path2.default.dirname(require.resolve("corepack/package.json")); 23180 process.argv = [ 23181 process.execPath, 23182 binPath, 23183 ...args 23184 ]; 23185 process.execArgv = []; 23186 process.mainModule = void 0; 23187 process.nextTick(import_module.default.runMain, binPath); 23188} 23189 23190// sources/semverUtils.ts 23191var import_semver2 = __toESM(require_semver2()); 23192function satisfiesWithPrereleases(version2, range, loose = false) { 23193 let semverRange; 23194 try { 23195 semverRange = new import_semver2.default.Range(range, loose); 23196 } catch (err) { 23197 return false; 23198 } 23199 if (!version2) 23200 return false; 23201 let semverVersion; 23202 try { 23203 semverVersion = new import_semver2.default.SemVer(version2, semverRange.loose); 23204 if (semverVersion.prerelease) { 23205 semverVersion.prerelease = []; 23206 } 23207 } catch (err) { 23208 return false; 23209 } 23210 return semverRange.set.some((comparatorSet) => { 23211 for (const comparator of comparatorSet) 23212 if (comparator.semver.prerelease) 23213 comparator.semver.prerelease = []; 23214 return comparatorSet.every((comparator) => { 23215 return comparator.test(semverVersion); 23216 }); 23217 }); 23218} 23219 23220// sources/types.ts 23221var SupportedPackageManagers = /* @__PURE__ */ ((SupportedPackageManagers3) => { 23222 SupportedPackageManagers3["Npm"] = `npm`; 23223 SupportedPackageManagers3["Pnpm"] = `pnpm`; 23224 SupportedPackageManagers3["Yarn"] = `yarn`; 23225 return SupportedPackageManagers3; 23226})(SupportedPackageManagers || {}); 23227var SupportedPackageManagerSet = new Set( 23228 Object.values(SupportedPackageManagers) 23229); 23230var SupportedPackageManagerSetWithoutNpm = new Set( 23231 Object.values(SupportedPackageManagers) 23232); 23233SupportedPackageManagerSetWithoutNpm.delete("npm" /* Npm */); 23234function isSupportedPackageManager(value) { 23235 return SupportedPackageManagerSet.has(value); 23236} 23237 23238// sources/Engine.ts 23239function getLastKnownGoodFile(flag = `r`) { 23240 return import_fs3.default.promises.open(import_path3.default.join(getCorepackHomeFolder(), `lastKnownGood.json`), flag); 23241} 23242async function createLastKnownGoodFile() { 23243 await import_fs3.default.promises.mkdir(getCorepackHomeFolder(), { recursive: true }); 23244 return getLastKnownGoodFile(`w`); 23245} 23246async function getJSONFileContent(fh) { 23247 let lastKnownGood; 23248 try { 23249 lastKnownGood = JSON.parse(await fh.readFile(`utf8`)); 23250 } catch { 23251 return void 0; 23252 } 23253 return lastKnownGood; 23254} 23255async function overwriteJSONFileContent(fh, content) { 23256 await fh.truncate(0); 23257 await fh.write(`${JSON.stringify(content, null, 2)} 23258`, 0); 23259} 23260function getLastKnownGoodFromFileContent(lastKnownGood, packageManager) { 23261 if (typeof lastKnownGood === `object` && lastKnownGood !== null && Object.hasOwn(lastKnownGood, packageManager)) { 23262 const override = lastKnownGood[packageManager]; 23263 if (typeof override === `string`) { 23264 return override; 23265 } 23266 } 23267 return void 0; 23268} 23269async function activatePackageManagerFromFileHandle(lastKnownGoodFile, lastKnownGood, locator) { 23270 if (typeof lastKnownGood !== `object` || lastKnownGood === null) 23271 lastKnownGood = {}; 23272 lastKnownGood[locator.name] = locator.reference; 23273 log(`Setting ${locator.name}@${locator.reference} as Last Known Good version`); 23274 await overwriteJSONFileContent(lastKnownGoodFile, lastKnownGood); 23275} 23276var Engine = class { 23277 constructor(config = config_default) { 23278 this.config = config; 23279 } 23280 getPackageManagerFor(binaryName) { 23281 for (const packageManager of SupportedPackageManagerSet) { 23282 for (const rangeDefinition of Object.values(this.config.definitions[packageManager].ranges)) { 23283 const bins = Array.isArray(rangeDefinition.bin) ? rangeDefinition.bin : Object.keys(rangeDefinition.bin); 23284 if (bins.includes(binaryName)) { 23285 return packageManager; 23286 } 23287 } 23288 } 23289 return null; 23290 } 23291 getPackageManagerSpecFor(locator) { 23292 if (!isSupportedPackageManagerLocator(locator)) { 23293 const url = `${locator.reference}`; 23294 return { 23295 url, 23296 bin: void 0, 23297 // bin will be set later 23298 registry: { 23299 type: `url`, 23300 url, 23301 fields: { 23302 tags: ``, 23303 versions: `` 23304 } 23305 } 23306 }; 23307 } 23308 const definition = this.config.definitions[locator.name]; 23309 if (typeof definition === `undefined`) 23310 throw new UsageError(`This package manager (${locator.name}) isn't supported by this corepack build`); 23311 const ranges = Object.keys(definition.ranges).reverse(); 23312 const range = ranges.find((range2) => satisfiesWithPrereleases(locator.reference, range2)); 23313 if (typeof range === `undefined`) 23314 throw new Error(`Assertion failed: Specified resolution (${locator.reference}) isn't supported by any of ${ranges.join(`, `)}`); 23315 return definition.ranges[range]; 23316 } 23317 getBinariesFor(name) { 23318 const binNames = /* @__PURE__ */ new Set(); 23319 for (const rangeDefinition of Object.values(this.config.definitions[name].ranges)) { 23320 const bins = Array.isArray(rangeDefinition.bin) ? rangeDefinition.bin : Object.keys(rangeDefinition.bin); 23321 for (const name2 of bins) { 23322 binNames.add(name2); 23323 } 23324 } 23325 return binNames; 23326 } 23327 async getDefaultDescriptors() { 23328 const locators = []; 23329 for (const name of SupportedPackageManagerSet) 23330 locators.push({ name, range: await this.getDefaultVersion(name) }); 23331 return locators; 23332 } 23333 async getDefaultVersion(packageManager) { 23334 const definition = this.config.definitions[packageManager]; 23335 if (typeof definition === `undefined`) 23336 throw new UsageError(`This package manager (${packageManager}) isn't supported by this corepack build`); 23337 let lastKnownGoodFile = await getLastKnownGoodFile(`r+`).catch((err) => { 23338 if (err?.code !== `ENOENT`) { 23339 throw err; 23340 } 23341 }); 23342 try { 23343 const lastKnownGood = lastKnownGoodFile == null || await getJSONFileContent(lastKnownGoodFile); 23344 const lastKnownGoodForThisPackageManager = getLastKnownGoodFromFileContent(lastKnownGood, packageManager); 23345 if (lastKnownGoodForThisPackageManager) 23346 return lastKnownGoodForThisPackageManager; 23347 if (import_process3.default.env.COREPACK_DEFAULT_TO_LATEST === `0`) 23348 return definition.default; 23349 const reference = await fetchLatestStableVersion2(definition.fetchLatestFrom); 23350 try { 23351 lastKnownGoodFile ??= await createLastKnownGoodFile(); 23352 await activatePackageManagerFromFileHandle(lastKnownGoodFile, lastKnownGood, { 23353 name: packageManager, 23354 reference 23355 }); 23356 } catch { 23357 } 23358 return reference; 23359 } finally { 23360 await lastKnownGoodFile?.close(); 23361 } 23362 } 23363 async activatePackageManager(locator) { 23364 let emptyFile = false; 23365 const lastKnownGoodFile = await getLastKnownGoodFile(`r+`).catch((err) => { 23366 if (err?.code === `ENOENT`) { 23367 emptyFile = true; 23368 return getLastKnownGoodFile(`w`); 23369 } 23370 throw err; 23371 }); 23372 try { 23373 await activatePackageManagerFromFileHandle(lastKnownGoodFile, emptyFile || await getJSONFileContent(lastKnownGoodFile), locator); 23374 } finally { 23375 await lastKnownGoodFile.close(); 23376 } 23377 } 23378 async ensurePackageManager(locator) { 23379 const spec = this.getPackageManagerSpecFor(locator); 23380 const packageManagerInfo = await installVersion(getInstallFolder(), locator, { 23381 spec 23382 }); 23383 spec.bin ??= packageManagerInfo.bin; 23384 return { 23385 ...packageManagerInfo, 23386 locator, 23387 spec 23388 }; 23389 } 23390 async fetchAvailableVersions() { 23391 } 23392 async resolveDescriptor(descriptor, { allowTags = false, useCache = true } = {}) { 23393 if (!isSupportedPackageManagerDescriptor(descriptor)) { 23394 if (import_process3.default.env.COREPACK_ENABLE_UNSAFE_CUSTOM_URLS !== `1` && isSupportedPackageManager(descriptor.name)) 23395 throw new UsageError(`Illegal use of URL for known package manager. Instead, select a specific version, or set COREPACK_ENABLE_UNSAFE_CUSTOM_URLS=1 in your environment (${descriptor.name}@${descriptor.range})`); 23396 return { 23397 name: descriptor.name, 23398 reference: descriptor.range 23399 }; 23400 } 23401 const definition = this.config.definitions[descriptor.name]; 23402 if (typeof definition === `undefined`) 23403 throw new UsageError(`This package manager (${descriptor.name}) isn't supported by this corepack build`); 23404 let finalDescriptor = descriptor; 23405 if (!import_semver3.default.valid(descriptor.range) && !import_semver3.default.validRange(descriptor.range)) { 23406 if (!allowTags) 23407 throw new UsageError(`Packages managers can't be referenced via tags in this context`); 23408 const ranges = Object.keys(definition.ranges); 23409 const tagRange = ranges[ranges.length - 1]; 23410 const packageManagerSpec = definition.ranges[tagRange]; 23411 const registry = getRegistryFromPackageManagerSpec(packageManagerSpec); 23412 const tags = await fetchAvailableTags2(registry); 23413 if (!Object.hasOwn(tags, descriptor.range)) 23414 throw new UsageError(`Tag not found (${descriptor.range})`); 23415 finalDescriptor = { 23416 name: descriptor.name, 23417 range: tags[descriptor.range] 23418 }; 23419 } 23420 const cachedVersion = await findInstalledVersion(getInstallFolder(), finalDescriptor); 23421 if (cachedVersion !== null && useCache) 23422 return { name: finalDescriptor.name, reference: cachedVersion }; 23423 if (import_semver3.default.valid(finalDescriptor.range)) 23424 return { name: finalDescriptor.name, reference: finalDescriptor.range }; 23425 const versions = await Promise.all(Object.keys(definition.ranges).map(async (range) => { 23426 const packageManagerSpec = definition.ranges[range]; 23427 const registry = getRegistryFromPackageManagerSpec(packageManagerSpec); 23428 const versions2 = await fetchAvailableVersions2(registry); 23429 return versions2.filter((version2) => satisfiesWithPrereleases(version2, finalDescriptor.range)); 23430 })); 23431 const highestVersion = [...new Set(versions.flat())].sort(import_semver3.default.rcompare); 23432 if (highestVersion.length === 0) 23433 return null; 23434 return { name: finalDescriptor.name, reference: highestVersion[0] }; 23435 } 23436}; 23437 23438// sources/commands/Cache.ts 23439var import_fs4 = __toESM(require("fs")); 23440var CacheCommand = class extends Command { 23441 static paths = [ 23442 [`cache`, `clean`], 23443 [`cache`, `clear`] 23444 ]; 23445 static usage = Command.Usage({ 23446 description: `Cleans Corepack cache`, 23447 details: ` 23448 Removes Corepack cache directory from your local disk. 23449 ` 23450 }); 23451 async execute() { 23452 await import_fs4.default.promises.rm(getInstallFolder(), { recursive: true, force: true }); 23453 } 23454}; 23455 23456// sources/commands/Disable.ts 23457var import_fs5 = __toESM(require("fs")); 23458var import_path4 = __toESM(require("path")); 23459var import_which = __toESM(require_lib()); 23460var DisableCommand = class extends Command { 23461 static paths = [ 23462 [`disable`] 23463 ]; 23464 static usage = Command.Usage({ 23465 description: `Remove the Corepack shims from the install directory`, 23466 details: ` 23467 When run, this command will remove the shims for the specified package managers from the install directory, or all shims if no parameters are passed. 23468 23469 By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--install-directory\` flag. 23470 `, 23471 examples: [[ 23472 `Disable all shims, removing them if they're next to the \`coreshim\` binary`, 23473 `$0 disable` 23474 ], [ 23475 `Disable all shims, removing them from the specified directory`, 23476 `$0 disable --install-directory /path/to/bin` 23477 ], [ 23478 `Disable the Yarn shim only`, 23479 `$0 disable yarn` 23480 ]] 23481 }); 23482 installDirectory = options_exports.String(`--install-directory`, { 23483 description: `Where the shims are located` 23484 }); 23485 names = options_exports.Rest(); 23486 async execute() { 23487 let installDirectory = this.installDirectory; 23488 if (typeof installDirectory === `undefined`) 23489 installDirectory = import_path4.default.dirname(await (0, import_which.default)(`corepack`)); 23490 const names = this.names.length === 0 ? SupportedPackageManagerSetWithoutNpm : this.names; 23491 for (const name of new Set(names)) { 23492 if (!isSupportedPackageManager(name)) 23493 throw new UsageError(`Invalid package manager name '${name}'`); 23494 for (const binName of this.context.engine.getBinariesFor(name)) { 23495 if (process.platform === `win32`) { 23496 await this.removeWin32Link(installDirectory, binName); 23497 } else { 23498 await this.removePosixLink(installDirectory, binName); 23499 } 23500 } 23501 } 23502 } 23503 async removePosixLink(installDirectory, binName) { 23504 const file = import_path4.default.join(installDirectory, binName); 23505 try { 23506 await import_fs5.default.promises.unlink(file); 23507 } catch (err) { 23508 if (err.code !== `ENOENT`) { 23509 throw err; 23510 } 23511 } 23512 } 23513 async removeWin32Link(installDirectory, binName) { 23514 for (const ext of [``, `.ps1`, `.cmd`]) { 23515 const file = import_path4.default.join(installDirectory, `${binName}${ext}`); 23516 try { 23517 await import_fs5.default.promises.unlink(file); 23518 } catch (err) { 23519 if (err.code !== `ENOENT`) { 23520 throw err; 23521 } 23522 } 23523 } 23524 } 23525}; 23526 23527// sources/commands/Enable.ts 23528var import_cmd_shim = __toESM(require_cmd_shim()); 23529var import_fs6 = __toESM(require("fs")); 23530var import_path5 = __toESM(require("path")); 23531var import_which2 = __toESM(require_lib()); 23532var EnableCommand = class extends Command { 23533 static paths = [ 23534 [`enable`] 23535 ]; 23536 static usage = Command.Usage({ 23537 description: `Add the Corepack shims to the install directories`, 23538 details: ` 23539 When run, this commmand will check whether the shims for the specified package managers can be found with the correct values inside the install directory. If not, or if they don't exist, they will be created. 23540 23541 By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--install-directory\` flag. 23542 `, 23543 examples: [[ 23544 `Enable all shims, putting them next to the \`corepack\` binary`, 23545 `$0 enable` 23546 ], [ 23547 `Enable all shims, putting them in the specified directory`, 23548 `$0 enable --install-directory /path/to/folder` 23549 ], [ 23550 `Enable the Yarn shim only`, 23551 `$0 enable yarn` 23552 ]] 23553 }); 23554 installDirectory = options_exports.String(`--install-directory`, { 23555 description: `Where the shims are to be installed` 23556 }); 23557 names = options_exports.Rest(); 23558 async execute() { 23559 let installDirectory = this.installDirectory; 23560 if (typeof installDirectory === `undefined`) 23561 installDirectory = import_path5.default.dirname(await (0, import_which2.default)(`corepack`)); 23562 installDirectory = import_fs6.default.realpathSync(installDirectory); 23563 const manifestPath = require.resolve("corepack/package.json"); 23564 const distFolder = import_path5.default.join(import_path5.default.dirname(manifestPath), `dist`); 23565 if (!import_fs6.default.existsSync(distFolder)) 23566 throw new Error(`Assertion failed: The stub folder doesn't exist`); 23567 const names = this.names.length === 0 ? SupportedPackageManagerSetWithoutNpm : this.names; 23568 for (const name of new Set(names)) { 23569 if (!isSupportedPackageManager(name)) 23570 throw new UsageError(`Invalid package manager name '${name}'`); 23571 for (const binName of this.context.engine.getBinariesFor(name)) { 23572 if (process.platform === `win32`) { 23573 await this.generateWin32Link(installDirectory, distFolder, binName); 23574 } else { 23575 await this.generatePosixLink(installDirectory, distFolder, binName); 23576 } 23577 } 23578 } 23579 } 23580 async generatePosixLink(installDirectory, distFolder, binName) { 23581 const file = import_path5.default.join(installDirectory, binName); 23582 const symlink = import_path5.default.relative(installDirectory, import_path5.default.join(distFolder, `${binName}.js`)); 23583 if (import_fs6.default.existsSync(file)) { 23584 const currentSymlink = await import_fs6.default.promises.readlink(file); 23585 if (currentSymlink !== symlink) { 23586 await import_fs6.default.promises.unlink(file); 23587 } else { 23588 return; 23589 } 23590 } 23591 await import_fs6.default.promises.symlink(symlink, file); 23592 } 23593 async generateWin32Link(installDirectory, distFolder, binName) { 23594 const file = import_path5.default.join(installDirectory, binName); 23595 await (0, import_cmd_shim.default)(import_path5.default.join(distFolder, `${binName}.js`), file, { 23596 createCmdFile: true 23597 }); 23598 } 23599}; 23600 23601// sources/commands/InstallGlobal.ts 23602var import_fs9 = __toESM(require("fs")); 23603var import_path7 = __toESM(require("path")); 23604 23605// sources/specUtils.ts 23606var import_fs7 = __toESM(require("fs")); 23607var import_path6 = __toESM(require("path")); 23608var import_semver4 = __toESM(require_semver2()); 23609var nodeModulesRegExp = /[\\/]node_modules[\\/](@[^\\/]*[\\/])?([^@\\/][^\\/]*)$/; 23610function parseSpec(raw, source, { enforceExactVersion = true } = {}) { 23611 if (typeof raw !== `string`) 23612 throw new UsageError(`Invalid package manager specification in ${source}; expected a string`); 23613 const atIndex = raw.indexOf(`@`); 23614 if (atIndex === -1 || atIndex === raw.length - 1) { 23615 if (enforceExactVersion) 23616 throw new UsageError(`No version specified for ${raw} in "packageManager" of ${source}`); 23617 const name2 = atIndex === -1 ? raw : raw.slice(0, -1); 23618 if (!isSupportedPackageManager(name2)) 23619 throw new UsageError(`Unsupported package manager specification (${name2})`); 23620 return { 23621 name: name2, 23622 range: `*` 23623 }; 23624 } 23625 const name = raw.slice(0, atIndex); 23626 const range = raw.slice(atIndex + 1); 23627 const isURL = URL.canParse(range); 23628 if (!isURL) { 23629 if (enforceExactVersion && !import_semver4.default.valid(range)) 23630 throw new UsageError(`Invalid package manager specification in ${source} (${raw}); expected a semver version${enforceExactVersion ? `` : `, range, or tag`}`); 23631 if (!isSupportedPackageManager(name)) { 23632 throw new UsageError(`Unsupported package manager specification (${raw})`); 23633 } 23634 } else if (isSupportedPackageManager(name) && process.env.COREPACK_ENABLE_UNSAFE_CUSTOM_URLS !== `1`) { 23635 throw new UsageError(`Illegal use of URL for known package manager. Instead, select a specific version, or set COREPACK_ENABLE_UNSAFE_CUSTOM_URLS=1 in your environment (${raw})`); 23636 } 23637 return { 23638 name, 23639 range 23640 }; 23641} 23642async function findProjectSpec(initialCwd, locator, { transparent = false } = {}) { 23643 const fallbackLocator = { name: locator.name, range: `${locator.reference}` }; 23644 if (process.env.COREPACK_ENABLE_PROJECT_SPEC === `0`) 23645 return fallbackLocator; 23646 if (process.env.COREPACK_ENABLE_STRICT === `0`) 23647 transparent = true; 23648 while (true) { 23649 const result = await loadSpec(initialCwd); 23650 switch (result.type) { 23651 case `NoProject`: 23652 case `NoSpec`: { 23653 return fallbackLocator; 23654 } 23655 case `Found`: { 23656 if (result.spec.name !== locator.name) { 23657 if (transparent) { 23658 return fallbackLocator; 23659 } else { 23660 throw new UsageError(`This project is configured to use ${result.spec.name}`); 23661 } 23662 } else { 23663 return result.spec; 23664 } 23665 } 23666 } 23667 } 23668} 23669async function loadSpec(initialCwd) { 23670 let nextCwd = initialCwd; 23671 let currCwd = ``; 23672 let selection = null; 23673 while (nextCwd !== currCwd && (!selection || !selection.data.packageManager)) { 23674 currCwd = nextCwd; 23675 nextCwd = import_path6.default.dirname(currCwd); 23676 if (nodeModulesRegExp.test(currCwd)) 23677 continue; 23678 const manifestPath = import_path6.default.join(currCwd, `package.json`); 23679 let content; 23680 try { 23681 content = await import_fs7.default.promises.readFile(manifestPath, `utf8`); 23682 } catch (err) { 23683 if (err?.code === `ENOENT`) 23684 continue; 23685 throw err; 23686 } 23687 let data; 23688 try { 23689 data = JSON.parse(content); 23690 } catch { 23691 } 23692 if (typeof data !== `object` || data === null) 23693 throw new UsageError(`Invalid package.json in ${import_path6.default.relative(initialCwd, manifestPath)}`); 23694 selection = { data, manifestPath }; 23695 } 23696 if (selection === null) 23697 return { type: `NoProject`, target: import_path6.default.join(initialCwd, `package.json`) }; 23698 const rawPmSpec = selection.data.packageManager; 23699 if (typeof rawPmSpec === `undefined`) 23700 return { type: `NoSpec`, target: selection.manifestPath }; 23701 return { 23702 type: `Found`, 23703 target: selection.manifestPath, 23704 spec: parseSpec(rawPmSpec, import_path6.default.relative(initialCwd, selection.manifestPath)) 23705 }; 23706} 23707 23708// sources/commands/Base.ts 23709var import_fs8 = __toESM(require("fs")); 23710 23711// sources/nodeUtils.ts 23712var import_os2 = __toESM(require("os")); 23713function getEndOfLine(content) { 23714 const matches = content.match(/\r?\n/g); 23715 if (matches === null) 23716 return import_os2.default.EOL; 23717 const crlf = matches.filter((nl) => nl === `\r 23718`).length; 23719 const lf = matches.length - crlf; 23720 return crlf > lf ? `\r 23721` : ` 23722`; 23723} 23724function normalizeLineEndings(originalContent, newContent) { 23725 return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); 23726} 23727function getIndent(content) { 23728 const indentMatch = content.match(/^[ \t]+/m); 23729 if (indentMatch) { 23730 return indentMatch[0]; 23731 } else { 23732 return ` `; 23733 } 23734} 23735function stripBOM(content) { 23736 if (content.charCodeAt(0) === 65279) { 23737 return content.slice(1); 23738 } else { 23739 return content; 23740 } 23741} 23742function readPackageJson(content) { 23743 return { 23744 data: JSON.parse(stripBOM(content) || `{}`), 23745 indent: getIndent(content) 23746 }; 23747} 23748 23749// sources/commands/Base.ts 23750var BaseCommand = class extends Command { 23751 async resolvePatternsToDescriptors({ patterns }) { 23752 const resolvedSpecs = patterns.map((pattern) => parseSpec(pattern, `CLI arguments`, { enforceExactVersion: false })); 23753 if (resolvedSpecs.length === 0) { 23754 const lookup = await loadSpec(this.context.cwd); 23755 switch (lookup.type) { 23756 case `NoProject`: 23757 throw new UsageError(`Couldn't find a project in the local directory - please explicit the package manager to pack, or run this command from a valid project`); 23758 case `NoSpec`: 23759 throw new UsageError(`The local project doesn't feature a 'packageManager' field - please explicit the package manager to pack, or update the manifest to reference it`); 23760 default: { 23761 return [lookup.spec]; 23762 } 23763 } 23764 } 23765 return resolvedSpecs; 23766 } 23767 async setLocalPackageManager(info) { 23768 const lookup = await loadSpec(this.context.cwd); 23769 const content = lookup.type !== `NoProject` ? await import_fs8.default.promises.readFile(lookup.target, `utf8`) : ``; 23770 const { data, indent } = readPackageJson(content); 23771 const previousPackageManager = data.packageManager ?? `unknown`; 23772 data.packageManager = `${info.locator.name}@${info.locator.reference}+${info.hash}`; 23773 const newContent = normalizeLineEndings(content, `${JSON.stringify(data, null, indent)} 23774`); 23775 await import_fs8.default.promises.writeFile(lookup.target, newContent, `utf8`); 23776 const command = this.context.engine.getPackageManagerSpecFor(info.locator).commands?.use ?? null; 23777 if (command === null) 23778 return 0; 23779 process.env.COREPACK_MIGRATE_FROM = previousPackageManager; 23780 this.context.stdout.write(` 23781`); 23782 const [binaryName, ...args] = command; 23783 return await runVersion(info.locator, info, binaryName, args); 23784 } 23785}; 23786 23787// sources/commands/InstallGlobal.ts 23788var InstallGlobalCommand = class extends BaseCommand { 23789 static paths = [ 23790 [`install`] 23791 ]; 23792 static usage = Command.Usage({ 23793 description: `Install package managers on the system`, 23794 details: ` 23795 Download the selected package managers and install them on the system. 23796 23797 Package managers thus installed will be configured as the new default when calling their respective binaries outside of projects defining the 'packageManager' field. 23798 `, 23799 examples: [[ 23800 `Install the latest version of Yarn 1.x and make it globally available`, 23801 `corepack install -g yarn@^1` 23802 ], [ 23803 `Install the latest version of pnpm, and make it globally available`, 23804 `corepack install -g pnpm` 23805 ]] 23806 }); 23807 global = options_exports.Boolean(`-g,--global`, { 23808 required: true 23809 }); 23810 cacheOnly = options_exports.Boolean(`--cache-only`, false, { 23811 description: `If true, the package managers will only be cached, not set as new defaults` 23812 }); 23813 args = options_exports.Rest(); 23814 async execute() { 23815 if (this.args.length === 0) 23816 throw new UsageError(`No package managers specified`); 23817 for (const arg of this.args) { 23818 if (arg.endsWith(`.tgz`)) { 23819 await this.installFromTarball(import_path7.default.resolve(this.context.cwd, arg)); 23820 } else { 23821 await this.installFromDescriptor(parseSpec(arg, `CLI arguments`, { enforceExactVersion: false })); 23822 } 23823 } 23824 } 23825 log(locator) { 23826 if (this.cacheOnly) { 23827 this.context.stdout.write(`Adding ${locator.name}@${locator.reference} to the cache... 23828`); 23829 } else { 23830 this.context.stdout.write(`Installing ${locator.name}@${locator.reference}... 23831`); 23832 } 23833 } 23834 async installFromDescriptor(descriptor) { 23835 const resolved = await this.context.engine.resolveDescriptor(descriptor, { allowTags: true, useCache: false }); 23836 if (resolved === null) 23837 throw new UsageError(`Failed to successfully resolve '${descriptor.range}' to a valid ${descriptor.name} release`); 23838 this.log(resolved); 23839 await this.context.engine.ensurePackageManager(resolved); 23840 if (!this.cacheOnly) { 23841 await this.context.engine.activatePackageManager(resolved); 23842 } 23843 } 23844 async installFromTarball(p) { 23845 const installFolder = getInstallFolder(); 23846 const archiveEntries = /* @__PURE__ */ new Map(); 23847 const { default: tar } = await Promise.resolve().then(() => __toESM(require_tar())); 23848 let hasShortEntries = false; 23849 await tar.t({ file: p, onentry: (entry) => { 23850 const segments = entry.path.split(/\//g); 23851 if (segments.length > 0 && segments[segments.length - 1] !== `.corepack`) 23852 return; 23853 if (segments.length < 3) { 23854 hasShortEntries = true; 23855 } else { 23856 let references = archiveEntries.get(segments[0]); 23857 if (typeof references === `undefined`) 23858 archiveEntries.set(segments[0], references = /* @__PURE__ */ new Set()); 23859 references.add(segments[1]); 23860 } 23861 } }); 23862 if (hasShortEntries || archiveEntries.size < 1) 23863 throw new UsageError(`Invalid archive format; did it get generated by 'corepack pack'?`); 23864 for (const [name, references] of archiveEntries) { 23865 for (const reference of references) { 23866 if (!isSupportedPackageManager(name)) 23867 throw new UsageError(`Unsupported package manager '${name}'`); 23868 this.log({ name, reference }); 23869 await import_fs9.default.promises.mkdir(installFolder, { recursive: true }); 23870 await tar.x({ file: p, cwd: installFolder }, [`${name}/${reference}`]); 23871 if (!this.cacheOnly) { 23872 await this.context.engine.activatePackageManager({ name, reference }); 23873 } 23874 } 23875 } 23876 } 23877}; 23878 23879// sources/commands/InstallLocal.ts 23880var InstallLocalCommand = class extends BaseCommand { 23881 static paths = [ 23882 [`install`] 23883 ]; 23884 static usage = Command.Usage({ 23885 description: `Install the package manager configured in the local project`, 23886 details: ` 23887 Download and install the package manager configured in the local project. This command doesn't change the global version used when running the package manager from outside the project (use the \`-g,--global\` flag if you wish to do this). 23888 `, 23889 examples: [[ 23890 `Install the project's package manager in the cache`, 23891 `corepack install` 23892 ]] 23893 }); 23894 async execute() { 23895 const [descriptor] = await this.resolvePatternsToDescriptors({ 23896 patterns: [] 23897 }); 23898 const resolved = await this.context.engine.resolveDescriptor(descriptor, { allowTags: true }); 23899 if (resolved === null) 23900 throw new UsageError(`Failed to successfully resolve '${descriptor.range}' to a valid ${descriptor.name} release`); 23901 this.context.stdout.write(`Adding ${resolved.name}@${resolved.reference} to the cache... 23902`); 23903 await this.context.engine.ensurePackageManager(resolved); 23904 } 23905}; 23906 23907// sources/commands/Pack.ts 23908var import_promises2 = require("fs/promises"); 23909var import_path8 = __toESM(require("path")); 23910var PackCommand = class extends BaseCommand { 23911 static paths = [ 23912 [`pack`] 23913 ]; 23914 static usage = Command.Usage({ 23915 description: `Store package managers in a tarball`, 23916 details: ` 23917 Download the selected package managers and store them inside a tarball suitable for use with \`corepack install -g\`. 23918 `, 23919 examples: [[ 23920 `Pack the package manager defined in the package.json file`, 23921 `corepack pack` 23922 ], [ 23923 `Pack the latest version of Yarn 1.x inside a file named corepack.tgz`, 23924 `corepack pack yarn@^1` 23925 ]] 23926 }); 23927 json = options_exports.Boolean(`--json`, false, { 23928 description: `If true, the path to the generated tarball will be printed on stdout` 23929 }); 23930 output = options_exports.String(`-o,--output`, { 23931 description: `Where the tarball should be generated; by default "corepack.tgz"` 23932 }); 23933 patterns = options_exports.Rest(); 23934 async execute() { 23935 const descriptors = await this.resolvePatternsToDescriptors({ 23936 patterns: this.patterns 23937 }); 23938 const installLocations = []; 23939 for (const descriptor of descriptors) { 23940 const resolved = await this.context.engine.resolveDescriptor(descriptor, { allowTags: true, useCache: false }); 23941 if (resolved === null) 23942 throw new UsageError(`Failed to successfully resolve '${descriptor.range}' to a valid ${descriptor.name} release`); 23943 this.context.stdout.write(`Adding ${resolved.name}@${resolved.reference} to the cache... 23944`); 23945 const packageManagerInfo = await this.context.engine.ensurePackageManager(resolved); 23946 await this.context.engine.activatePackageManager(packageManagerInfo.locator); 23947 installLocations.push(packageManagerInfo.location); 23948 } 23949 const baseInstallFolder = getInstallFolder(); 23950 const outputPath = import_path8.default.resolve(this.context.cwd, this.output ?? `corepack.tgz`); 23951 if (!this.json) { 23952 this.context.stdout.write(` 23953`); 23954 this.context.stdout.write(`Packing the selected tools in ${import_path8.default.basename(outputPath)}... 23955`); 23956 } 23957 const { default: tar } = await Promise.resolve().then(() => __toESM(require_tar())); 23958 await (0, import_promises2.mkdir)(baseInstallFolder, { recursive: true }); 23959 await tar.c({ gzip: true, cwd: baseInstallFolder, file: import_path8.default.resolve(outputPath) }, installLocations.map((location) => { 23960 return import_path8.default.relative(baseInstallFolder, location); 23961 })); 23962 if (this.json) { 23963 this.context.stdout.write(`${JSON.stringify(outputPath)} 23964`); 23965 } else { 23966 this.context.stdout.write(`All done! 23967`); 23968 } 23969 } 23970}; 23971 23972// sources/commands/Up.ts 23973var import_semver5 = __toESM(require_semver2()); 23974var UpCommand = class extends BaseCommand { 23975 static paths = [ 23976 [`up`] 23977 ]; 23978 static usage = Command.Usage({ 23979 description: `Update the package manager used in the current project`, 23980 details: ` 23981 Retrieve the latest available version for the current major release line 23982 of the package manager used in the local project, and update the project 23983 to use it. 23984 23985 Unlike \`corepack use\` this command doesn't take a package manager name 23986 nor a version range, as it will always select the latest available 23987 version from the same major line. Should you need to upgrade to a new 23988 major, use an explicit \`corepack use '{name}@*'\` call. 23989 `, 23990 examples: [[ 23991 `Configure the project to use the latest Yarn release`, 23992 `corepack up` 23993 ]] 23994 }); 23995 async execute() { 23996 const [descriptor] = await this.resolvePatternsToDescriptors({ 23997 patterns: [] 23998 }); 23999 if (!import_semver5.default.valid(descriptor.range) && !import_semver5.default.validRange(descriptor.range)) 24000 throw new UsageError(`The 'corepack up' command can only be used when your project's packageManager field is set to a semver version or semver range`); 24001 const resolved = await this.context.engine.resolveDescriptor(descriptor, { useCache: false }); 24002 if (!resolved) 24003 throw new UsageError(`Failed to successfully resolve '${descriptor.range}' to a valid ${descriptor.name} release`); 24004 const majorVersion = import_semver5.default.major(resolved.reference); 24005 const majorDescriptor = { name: descriptor.name, range: `^${majorVersion}.0.0` }; 24006 const highestVersion = await this.context.engine.resolveDescriptor(majorDescriptor, { useCache: false }); 24007 if (!highestVersion) 24008 throw new UsageError(`Failed to find the highest release for ${descriptor.name} ${majorVersion}.x`); 24009 this.context.stdout.write(`Installing ${highestVersion.name}@${highestVersion.reference} in the project... 24010`); 24011 const packageManagerInfo = await this.context.engine.ensurePackageManager(highestVersion); 24012 await this.setLocalPackageManager(packageManagerInfo); 24013 } 24014}; 24015 24016// sources/commands/Use.ts 24017var UseCommand = class extends BaseCommand { 24018 static paths = [ 24019 [`use`] 24020 ]; 24021 static usage = Command.Usage({ 24022 description: `Define the package manager to use for the current project`, 24023 details: ` 24024 When run, this command will retrieve the latest release matching the 24025 provided descriptor, assign it to the project's package.json file, and 24026 automatically perform an install. 24027 `, 24028 examples: [[ 24029 `Configure the project to use the latest Yarn release`, 24030 `corepack use yarn` 24031 ]] 24032 }); 24033 pattern = options_exports.String(); 24034 async execute() { 24035 const [descriptor] = await this.resolvePatternsToDescriptors({ 24036 patterns: [this.pattern] 24037 }); 24038 const resolved = await this.context.engine.resolveDescriptor(descriptor, { allowTags: true, useCache: false }); 24039 if (resolved === null) 24040 throw new UsageError(`Failed to successfully resolve '${descriptor.range}' to a valid ${descriptor.name} release`); 24041 this.context.stdout.write(`Installing ${resolved.name}@${resolved.reference} in the project... 24042`); 24043 const packageManagerInfo = await this.context.engine.ensurePackageManager(resolved); 24044 await this.setLocalPackageManager(packageManagerInfo); 24045 } 24046}; 24047 24048// sources/commands/deprecated/Hydrate.ts 24049var import_promises3 = require("fs/promises"); 24050var import_path9 = __toESM(require("path")); 24051var HydrateCommand = class extends Command { 24052 static paths = [ 24053 [`hydrate`] 24054 ]; 24055 activate = options_exports.Boolean(`--activate`, false, { 24056 description: `If true, this release will become the default one for this package manager` 24057 }); 24058 fileName = options_exports.String(); 24059 async execute() { 24060 const installFolder = getInstallFolder(); 24061 const fileName = import_path9.default.resolve(this.context.cwd, this.fileName); 24062 const archiveEntries = /* @__PURE__ */ new Map(); 24063 let hasShortEntries = false; 24064 const { default: tar } = await Promise.resolve().then(() => __toESM(require_tar())); 24065 await tar.t({ file: fileName, onentry: (entry) => { 24066 const segments = entry.path.split(/\//g); 24067 if (segments.length < 3) { 24068 hasShortEntries = true; 24069 } else { 24070 let references = archiveEntries.get(segments[0]); 24071 if (typeof references === `undefined`) 24072 archiveEntries.set(segments[0], references = /* @__PURE__ */ new Set()); 24073 references.add(segments[1]); 24074 } 24075 } }); 24076 if (hasShortEntries || archiveEntries.size < 1) 24077 throw new UsageError(`Invalid archive format; did it get generated by 'corepack prepare'?`); 24078 for (const [name, references] of archiveEntries) { 24079 for (const reference of references) { 24080 if (!isSupportedPackageManager(name)) 24081 throw new UsageError(`Unsupported package manager '${name}'`); 24082 if (this.activate) 24083 this.context.stdout.write(`Hydrating ${name}@${reference} for immediate activation... 24084`); 24085 else 24086 this.context.stdout.write(`Hydrating ${name}@${reference}... 24087`); 24088 await (0, import_promises3.mkdir)(installFolder, { recursive: true }); 24089 await tar.x({ file: fileName, cwd: installFolder }, [`${name}/${reference}`]); 24090 if (this.activate) { 24091 await this.context.engine.activatePackageManager({ name, reference }); 24092 } 24093 } 24094 } 24095 this.context.stdout.write(`All done! 24096`); 24097 } 24098}; 24099 24100// sources/commands/deprecated/Prepare.ts 24101var import_promises4 = require("fs/promises"); 24102var import_path10 = __toESM(require("path")); 24103var PrepareCommand = class extends Command { 24104 static paths = [ 24105 [`prepare`] 24106 ]; 24107 activate = options_exports.Boolean(`--activate`, false, { 24108 description: `If true, this release will become the default one for this package manager` 24109 }); 24110 json = options_exports.Boolean(`--json`, false, { 24111 description: `If true, the output will be the path of the generated tarball` 24112 }); 24113 output = options_exports.String(`-o,--output`, { 24114 description: `If true, the installed package managers will also be stored in a tarball`, 24115 tolerateBoolean: true 24116 }); 24117 specs = options_exports.Rest(); 24118 async execute() { 24119 const specs = this.specs; 24120 const installLocations = []; 24121 if (specs.length === 0) { 24122 const lookup = await loadSpec(this.context.cwd); 24123 switch (lookup.type) { 24124 case `NoProject`: 24125 throw new UsageError(`Couldn't find a project in the local directory - please explicit the package manager to pack, or run this command from a valid project`); 24126 case `NoSpec`: 24127 throw new UsageError(`The local project doesn't feature a 'packageManager' field - please explicit the package manager to pack, or update the manifest to reference it`); 24128 default: { 24129 specs.push(lookup.spec); 24130 } 24131 } 24132 } 24133 for (const request of specs) { 24134 const spec = typeof request === `string` ? parseSpec(request, `CLI arguments`, { enforceExactVersion: false }) : request; 24135 const resolved = await this.context.engine.resolveDescriptor(spec, { allowTags: true }); 24136 if (resolved === null) 24137 throw new UsageError(`Failed to successfully resolve '${spec.range}' to a valid ${spec.name} release`); 24138 if (!this.json) { 24139 if (this.activate) { 24140 this.context.stdout.write(`Preparing ${spec.name}@${spec.range} for immediate activation... 24141`); 24142 } else { 24143 this.context.stdout.write(`Preparing ${spec.name}@${spec.range}... 24144`); 24145 } 24146 } 24147 const installSpec = await this.context.engine.ensurePackageManager(resolved); 24148 installLocations.push(installSpec.location); 24149 if (this.activate) { 24150 await this.context.engine.activatePackageManager(resolved); 24151 } 24152 } 24153 if (this.output) { 24154 const outputName = typeof this.output === `string` ? this.output : `corepack.tgz`; 24155 const baseInstallFolder = getInstallFolder(); 24156 const outputPath = import_path10.default.resolve(this.context.cwd, outputName); 24157 if (!this.json) 24158 this.context.stdout.write(`Packing the selected tools in ${import_path10.default.basename(outputPath)}... 24159`); 24160 const { default: tar } = await Promise.resolve().then(() => __toESM(require_tar())); 24161 await (0, import_promises4.mkdir)(baseInstallFolder, { recursive: true }); 24162 await tar.c({ gzip: true, cwd: baseInstallFolder, file: import_path10.default.resolve(outputPath) }, installLocations.map((location) => { 24163 return import_path10.default.relative(baseInstallFolder, location); 24164 })); 24165 if (this.json) { 24166 this.context.stdout.write(`${JSON.stringify(outputPath)} 24167`); 24168 } else { 24169 this.context.stdout.write(`All done! 24170`); 24171 } 24172 } 24173 } 24174}; 24175 24176// sources/miscUtils.ts 24177var Cancellation = class extends Error { 24178 constructor() { 24179 super(`Cancelled operation`); 24180 } 24181}; 24182 24183// sources/main.ts 24184function getPackageManagerRequestFromCli(parameter, context) { 24185 if (!parameter) 24186 return null; 24187 const match = parameter.match(/^([^@]*)(?:@(.*))?$/); 24188 if (!match) 24189 return null; 24190 const [, binaryName, binaryVersion] = match; 24191 const packageManager = context.engine.getPackageManagerFor(binaryName); 24192 if (packageManager == null && binaryVersion == null) 24193 return null; 24194 return { 24195 packageManager, 24196 binaryName, 24197 binaryVersion: binaryVersion || null 24198 }; 24199} 24200async function executePackageManagerRequest({ packageManager, binaryName, binaryVersion }, args, context) { 24201 let fallbackLocator = { 24202 name: binaryName, 24203 reference: void 0 24204 }; 24205 let isTransparentCommand = false; 24206 if (packageManager != null) { 24207 const defaultVersion = await context.engine.getDefaultVersion(packageManager); 24208 const definition = context.engine.config.definitions[packageManager]; 24209 for (const transparentPath of definition.transparent.commands) { 24210 if (transparentPath[0] === binaryName && transparentPath.slice(1).every((segment, index) => segment === args[index])) { 24211 isTransparentCommand = true; 24212 break; 24213 } 24214 } 24215 const fallbackReference = isTransparentCommand ? definition.transparent.default ?? defaultVersion : defaultVersion; 24216 fallbackLocator = { 24217 name: packageManager, 24218 reference: fallbackReference 24219 }; 24220 } 24221 let descriptor; 24222 try { 24223 descriptor = await findProjectSpec(context.cwd, fallbackLocator, { transparent: isTransparentCommand }); 24224 } catch (err) { 24225 if (err instanceof Cancellation) { 24226 return 1; 24227 } else { 24228 throw err; 24229 } 24230 } 24231 if (binaryVersion) 24232 descriptor.range = binaryVersion; 24233 const resolved = await context.engine.resolveDescriptor(descriptor, { allowTags: true }); 24234 if (resolved === null) 24235 throw new UsageError(`Failed to successfully resolve '${descriptor.range}' to a valid ${descriptor.name} release`); 24236 const installSpec = await context.engine.ensurePackageManager(resolved); 24237 return await runVersion(resolved, installSpec, binaryName, args); 24238} 24239async function runMain(argv) { 24240 const context = { 24241 ...Cli.defaultContext, 24242 cwd: process.cwd(), 24243 engine: new Engine() 24244 }; 24245 const [firstArg, ...restArgs] = argv; 24246 const request = getPackageManagerRequestFromCli(firstArg, context); 24247 let code; 24248 if (!request) { 24249 const cli = new Cli({ 24250 binaryLabel: `Corepack`, 24251 binaryName: `corepack`, 24252 binaryVersion: version 24253 }); 24254 cli.register(builtins_exports.HelpCommand); 24255 cli.register(builtins_exports.VersionCommand); 24256 cli.register(CacheCommand); 24257 cli.register(DisableCommand); 24258 cli.register(EnableCommand); 24259 cli.register(InstallGlobalCommand); 24260 cli.register(InstallLocalCommand); 24261 cli.register(PackCommand); 24262 cli.register(UpCommand); 24263 cli.register(UseCommand); 24264 cli.register(HydrateCommand); 24265 cli.register(PrepareCommand); 24266 code = await cli.run(argv, context); 24267 } else { 24268 const cli = new Cli({ 24269 binaryLabel: `'${request.binaryName}', via Corepack`, 24270 binaryName: request.binaryName, 24271 binaryVersion: `corepack/${version}` 24272 }); 24273 cli.register(class BinaryCommand extends Command { 24274 proxy = options_exports.Proxy(); 24275 async execute() { 24276 return executePackageManagerRequest(request, this.proxy, this.context); 24277 } 24278 }); 24279 code = await cli.run(restArgs, context); 24280 } 24281 if (code !== 0) { 24282 process.exitCode ??= code; 24283 } 24284} 24285// Annotate the CommonJS export names for ESM import in node: 242860 && (module.exports = { 24287 runMain 24288}); 24289/*! Bundled license information: 24290 24291undici/lib/fetch/body.js: 24292 (*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *) 24293 24294is-windows/index.js: 24295 (*! 24296 * is-windows <https://github.com/jonschlinkert/is-windows> 24297 * 24298 * Copyright © 2015-2018, Jon Schlinkert. 24299 * Released under the MIT License. 24300 *) 24301*/ 24302