| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708 | /*! Axios v1.8.3 Copyright (c) 2025 Matt Zabriskie and contributors */'use strict';function bind(fn, thisArg) {  return function wrap() {    return fn.apply(thisArg, arguments);  };}// utils is a library of generic helper functions non-specific to axiosconst {toString} = Object.prototype;const {getPrototypeOf} = Object;const kindOf = (cache => thing => {    const str = toString.call(thing);    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());})(Object.create(null));const kindOfTest = (type) => {  type = type.toLowerCase();  return (thing) => kindOf(thing) === type};const typeOfTest = type => thing => typeof thing === type;/** * Determine if a value is an Array * * @param {Object} val The value to test * * @returns {boolean} True if value is an Array, otherwise false */const {isArray} = Array;/** * Determine if a value is undefined * * @param {*} val The value to test * * @returns {boolean} True if the value is undefined, otherwise false */const isUndefined = typeOfTest('undefined');/** * Determine if a value is a Buffer * * @param {*} val The value to test * * @returns {boolean} True if value is a Buffer, otherwise false */function isBuffer(val) {  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);}/** * Determine if a value is an ArrayBuffer * * @param {*} val The value to test * * @returns {boolean} True if value is an ArrayBuffer, otherwise false */const isArrayBuffer = kindOfTest('ArrayBuffer');/** * Determine if a value is a view on an ArrayBuffer * * @param {*} val The value to test * * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false */function isArrayBufferView(val) {  let result;  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {    result = ArrayBuffer.isView(val);  } else {    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));  }  return result;}/** * Determine if a value is a String * * @param {*} val The value to test * * @returns {boolean} True if value is a String, otherwise false */const isString = typeOfTest('string');/** * Determine if a value is a Function * * @param {*} val The value to test * @returns {boolean} True if value is a Function, otherwise false */const isFunction = typeOfTest('function');/** * Determine if a value is a Number * * @param {*} val The value to test * * @returns {boolean} True if value is a Number, otherwise false */const isNumber = typeOfTest('number');/** * Determine if a value is an Object * * @param {*} thing The value to test * * @returns {boolean} True if value is an Object, otherwise false */const isObject = (thing) => thing !== null && typeof thing === 'object';/** * Determine if a value is a Boolean * * @param {*} thing The value to test * @returns {boolean} True if value is a Boolean, otherwise false */const isBoolean = thing => thing === true || thing === false;/** * Determine if a value is a plain Object * * @param {*} val The value to test * * @returns {boolean} True if value is a plain Object, otherwise false */const isPlainObject = (val) => {  if (kindOf(val) !== 'object') {    return false;  }  const prototype = getPrototypeOf(val);  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);};/** * Determine if a value is a Date * * @param {*} val The value to test * * @returns {boolean} True if value is a Date, otherwise false */const isDate = kindOfTest('Date');/** * Determine if a value is a File * * @param {*} val The value to test * * @returns {boolean} True if value is a File, otherwise false */const isFile = kindOfTest('File');/** * Determine if a value is a Blob * * @param {*} val The value to test * * @returns {boolean} True if value is a Blob, otherwise false */const isBlob = kindOfTest('Blob');/** * Determine if a value is a FileList * * @param {*} val The value to test * * @returns {boolean} True if value is a File, otherwise false */const isFileList = kindOfTest('FileList');/** * Determine if a value is a Stream * * @param {*} val The value to test * * @returns {boolean} True if value is a Stream, otherwise false */const isStream = (val) => isObject(val) && isFunction(val.pipe);/** * Determine if a value is a FormData * * @param {*} thing The value to test * * @returns {boolean} True if value is an FormData, otherwise false */const isFormData = (thing) => {  let kind;  return thing && (    (typeof FormData === 'function' && thing instanceof FormData) || (      isFunction(thing.append) && (        (kind = kindOf(thing)) === 'formdata' ||        // detect form-data instance        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')      )    )  )};/** * Determine if a value is a URLSearchParams object * * @param {*} val The value to test * * @returns {boolean} True if value is a URLSearchParams object, otherwise false */const isURLSearchParams = kindOfTest('URLSearchParams');const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);/** * Trim excess whitespace off the beginning and end of a string * * @param {String} str The String to trim * * @returns {String} The String freed of excess whitespace */const trim = (str) => str.trim ?  str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');/** * Iterate over an Array or an Object invoking a function for each item. * * If `obj` is an Array callback will be called passing * the value, index, and complete array for each item. * * If 'obj' is an Object callback will be called passing * the value, key, and complete object for each property. * * @param {Object|Array} obj The object to iterate * @param {Function} fn The callback to invoke for each item * * @param {Boolean} [allOwnKeys = false] * @returns {any} */function forEach(obj, fn, {allOwnKeys = false} = {}) {  // Don't bother if no value provided  if (obj === null || typeof obj === 'undefined') {    return;  }  let i;  let l;  // Force an array if not already something iterable  if (typeof obj !== 'object') {    /*eslint no-param-reassign:0*/    obj = [obj];  }  if (isArray(obj)) {    // Iterate over array values    for (i = 0, l = obj.length; i < l; i++) {      fn.call(null, obj[i], i, obj);    }  } else {    // Iterate over object keys    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);    const len = keys.length;    let key;    for (i = 0; i < len; i++) {      key = keys[i];      fn.call(null, obj[key], key, obj);    }  }}function findKey(obj, key) {  key = key.toLowerCase();  const keys = Object.keys(obj);  let i = keys.length;  let _key;  while (i-- > 0) {    _key = keys[i];    if (key === _key.toLowerCase()) {      return _key;    }  }  return null;}const _global = (() => {  /*eslint no-undef:0*/  if (typeof globalThis !== "undefined") return globalThis;  return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : global)})();const isContextDefined = (context) => !isUndefined(context) && context !== _global;/** * Accepts varargs expecting each argument to be an object, then * immutably merges the properties of each object and returns result. * * When multiple objects contain the same key the later object in * the arguments list will take precedence. * * Example: * * ```js * var result = merge({foo: 123}, {foo: 456}); * console.log(result.foo); // outputs 456 * ``` * * @param {Object} obj1 Object to merge * * @returns {Object} Result of all merge properties */function merge(/* obj1, obj2, obj3, ... */) {  const {caseless} = isContextDefined(this) && this || {};  const result = {};  const assignValue = (val, key) => {    const targetKey = caseless && findKey(result, key) || key;    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {      result[targetKey] = merge(result[targetKey], val);    } else if (isPlainObject(val)) {      result[targetKey] = merge({}, val);    } else if (isArray(val)) {      result[targetKey] = val.slice();    } else {      result[targetKey] = val;    }  };  for (let i = 0, l = arguments.length; i < l; i++) {    arguments[i] && forEach(arguments[i], assignValue);  }  return result;}/** * Extends object a by mutably adding to it the properties of object b. * * @param {Object} a The object to be extended * @param {Object} b The object to copy properties from * @param {Object} thisArg The object to bind function to * * @param {Boolean} [allOwnKeys] * @returns {Object} The resulting value of object a */const extend = (a, b, thisArg, {allOwnKeys}= {}) => {  forEach(b, (val, key) => {    if (thisArg && isFunction(val)) {      a[key] = bind(val, thisArg);    } else {      a[key] = val;    }  }, {allOwnKeys});  return a;};/** * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) * * @param {string} content with BOM * * @returns {string} content value without BOM */const stripBOM = (content) => {  if (content.charCodeAt(0) === 0xFEFF) {    content = content.slice(1);  }  return content;};/** * Inherit the prototype methods from one constructor into another * @param {function} constructor * @param {function} superConstructor * @param {object} [props] * @param {object} [descriptors] * * @returns {void} */const inherits = (constructor, superConstructor, props, descriptors) => {  constructor.prototype = Object.create(superConstructor.prototype, descriptors);  constructor.prototype.constructor = constructor;  Object.defineProperty(constructor, 'super', {    value: superConstructor.prototype  });  props && Object.assign(constructor.prototype, props);};/** * Resolve object with deep prototype chain to a flat object * @param {Object} sourceObj source object * @param {Object} [destObj] * @param {Function|Boolean} [filter] * @param {Function} [propFilter] * * @returns {Object} */const toFlatObject = (sourceObj, destObj, filter, propFilter) => {  let props;  let i;  let prop;  const merged = {};  destObj = destObj || {};  // eslint-disable-next-line no-eq-null,eqeqeq  if (sourceObj == null) return destObj;  do {    props = Object.getOwnPropertyNames(sourceObj);    i = props.length;    while (i-- > 0) {      prop = props[i];      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {        destObj[prop] = sourceObj[prop];        merged[prop] = true;      }    }    sourceObj = filter !== false && getPrototypeOf(sourceObj);  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);  return destObj;};/** * Determines whether a string ends with the characters of a specified string * * @param {String} str * @param {String} searchString * @param {Number} [position= 0] * * @returns {boolean} */const endsWith = (str, searchString, position) => {  str = String(str);  if (position === undefined || position > str.length) {    position = str.length;  }  position -= searchString.length;  const lastIndex = str.indexOf(searchString, position);  return lastIndex !== -1 && lastIndex === position;};/** * Returns new array from array like object or null if failed * * @param {*} [thing] * * @returns {?Array} */const toArray = (thing) => {  if (!thing) return null;  if (isArray(thing)) return thing;  let i = thing.length;  if (!isNumber(i)) return null;  const arr = new Array(i);  while (i-- > 0) {    arr[i] = thing[i];  }  return arr;};/** * Checking if the Uint8Array exists and if it does, it returns a function that checks if the * thing passed in is an instance of Uint8Array * * @param {TypedArray} * * @returns {Array} */// eslint-disable-next-line func-namesconst isTypedArray = (TypedArray => {  // eslint-disable-next-line func-names  return thing => {    return TypedArray && thing instanceof TypedArray;  };})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));/** * For each entry in the object, call the function with the key and value. * * @param {Object<any, any>} obj - The object to iterate over. * @param {Function} fn - The function to call for each entry. * * @returns {void} */const forEachEntry = (obj, fn) => {  const generator = obj && obj[Symbol.iterator];  const iterator = generator.call(obj);  let result;  while ((result = iterator.next()) && !result.done) {    const pair = result.value;    fn.call(obj, pair[0], pair[1]);  }};/** * It takes a regular expression and a string, and returns an array of all the matches * * @param {string} regExp - The regular expression to match against. * @param {string} str - The string to search. * * @returns {Array<boolean>} */const matchAll = (regExp, str) => {  let matches;  const arr = [];  while ((matches = regExp.exec(str)) !== null) {    arr.push(matches);  }  return arr;};/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */const isHTMLForm = kindOfTest('HTMLFormElement');const toCamelCase = str => {  return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,    function replacer(m, p1, p2) {      return p1.toUpperCase() + p2;    }  );};/* Creating a function that will check if an object has a property. */const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);/** * Determine if a value is a RegExp object * * @param {*} val The value to test * * @returns {boolean} True if value is a RegExp object, otherwise false */const isRegExp = kindOfTest('RegExp');const reduceDescriptors = (obj, reducer) => {  const descriptors = Object.getOwnPropertyDescriptors(obj);  const reducedDescriptors = {};  forEach(descriptors, (descriptor, name) => {    let ret;    if ((ret = reducer(descriptor, name, obj)) !== false) {      reducedDescriptors[name] = ret || descriptor;    }  });  Object.defineProperties(obj, reducedDescriptors);};/** * Makes all methods read-only * @param {Object} obj */const freezeMethods = (obj) => {  reduceDescriptors(obj, (descriptor, name) => {    // skip restricted props in strict mode    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {      return false;    }    const value = obj[name];    if (!isFunction(value)) return;    descriptor.enumerable = false;    if ('writable' in descriptor) {      descriptor.writable = false;      return;    }    if (!descriptor.set) {      descriptor.set = () => {        throw Error('Can not rewrite read-only method \'' + name + '\'');      };    }  });};const toObjectSet = (arrayOrString, delimiter) => {  const obj = {};  const define = (arr) => {    arr.forEach(value => {      obj[value] = true;    });  };  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));  return obj;};const noop = () => {};const toFiniteNumber = (value, defaultValue) => {  return value != null && Number.isFinite(value = +value) ? value : defaultValue;};/** * If the thing is a FormData object, return true, otherwise return false. * * @param {unknown} thing - The thing to check. * * @returns {boolean} */function isSpecCompliantForm(thing) {  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);}const toJSONObject = (obj) => {  const stack = new Array(10);  const visit = (source, i) => {    if (isObject(source)) {      if (stack.indexOf(source) >= 0) {        return;      }      if(!('toJSON' in source)) {        stack[i] = source;        const target = isArray(source) ? [] : {};        forEach(source, (value, key) => {          const reducedValue = visit(value, i + 1);          !isUndefined(reducedValue) && (target[key] = reducedValue);        });        stack[i] = undefined;        return target;      }    }    return source;  };  return visit(obj, 0);};const isAsyncFn = kindOfTest('AsyncFunction');const isThenable = (thing) =>  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);// original code// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34const _setImmediate = ((setImmediateSupported, postMessageSupported) => {  if (setImmediateSupported) {    return setImmediate;  }  return postMessageSupported ? ((token, callbacks) => {    _global.addEventListener("message", ({source, data}) => {      if (source === _global && data === token) {        callbacks.length && callbacks.shift()();      }    }, false);    return (cb) => {      callbacks.push(cb);      _global.postMessage(token, "*");    }  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);})(  typeof setImmediate === 'function',  isFunction(_global.postMessage));const asap = typeof queueMicrotask !== 'undefined' ?  queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);// *********************var utils$1 = {  isArray,  isArrayBuffer,  isBuffer,  isFormData,  isArrayBufferView,  isString,  isNumber,  isBoolean,  isObject,  isPlainObject,  isReadableStream,  isRequest,  isResponse,  isHeaders,  isUndefined,  isDate,  isFile,  isBlob,  isRegExp,  isFunction,  isStream,  isURLSearchParams,  isTypedArray,  isFileList,  forEach,  merge,  extend,  trim,  stripBOM,  inherits,  toFlatObject,  kindOf,  kindOfTest,  endsWith,  toArray,  forEachEntry,  matchAll,  isHTMLForm,  hasOwnProperty,  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection  reduceDescriptors,  freezeMethods,  toObjectSet,  toCamelCase,  noop,  toFiniteNumber,  findKey,  global: _global,  isContextDefined,  isSpecCompliantForm,  toJSONObject,  isAsyncFn,  isThenable,  setImmediate: _setImmediate,  asap};/** * Create an Error with the specified message, config, error code, request and response. * * @param {string} message The error message. * @param {string} [code] The error code (for example, 'ECONNABORTED'). * @param {Object} [config] The config. * @param {Object} [request] The request. * @param {Object} [response] The response. * * @returns {Error} The created error. */function AxiosError(message, code, config, request, response) {  Error.call(this);  if (Error.captureStackTrace) {    Error.captureStackTrace(this, this.constructor);  } else {    this.stack = (new Error()).stack;  }  this.message = message;  this.name = 'AxiosError';  code && (this.code = code);  config && (this.config = config);  request && (this.request = request);  if (response) {    this.response = response;    this.status = response.status ? response.status : null;  }}utils$1.inherits(AxiosError, Error, {  toJSON: function toJSON() {    return {      // Standard      message: this.message,      name: this.name,      // Microsoft      description: this.description,      number: this.number,      // Mozilla      fileName: this.fileName,      lineNumber: this.lineNumber,      columnNumber: this.columnNumber,      stack: this.stack,      // Axios      config: utils$1.toJSONObject(this.config),      code: this.code,      status: this.status    };  }});const prototype$1 = AxiosError.prototype;const descriptors = {};[  'ERR_BAD_OPTION_VALUE',  'ERR_BAD_OPTION',  'ECONNABORTED',  'ETIMEDOUT',  'ERR_NETWORK',  'ERR_FR_TOO_MANY_REDIRECTS',  'ERR_DEPRECATED',  'ERR_BAD_RESPONSE',  'ERR_BAD_REQUEST',  'ERR_CANCELED',  'ERR_NOT_SUPPORT',  'ERR_INVALID_URL'// eslint-disable-next-line func-names].forEach(code => {  descriptors[code] = {value: code};});Object.defineProperties(AxiosError, descriptors);Object.defineProperty(prototype$1, 'isAxiosError', {value: true});// eslint-disable-next-line func-namesAxiosError.from = (error, code, config, request, response, customProps) => {  const axiosError = Object.create(prototype$1);  utils$1.toFlatObject(error, axiosError, function filter(obj) {    return obj !== Error.prototype;  }, prop => {    return prop !== 'isAxiosError';  });  AxiosError.call(axiosError, error.message, code, config, request, response);  axiosError.cause = error;  axiosError.name = error.name;  customProps && Object.assign(axiosError, customProps);  return axiosError;};// eslint-disable-next-line strictvar httpAdapter = null;/** * Determines if the given thing is a array or js object. * * @param {string} thing - The object or array to be visited. * * @returns {boolean} */function isVisitable(thing) {  return utils$1.isPlainObject(thing) || utils$1.isArray(thing);}/** * It removes the brackets from the end of a string * * @param {string} key - The key of the parameter. * * @returns {string} the key without the brackets. */function removeBrackets(key) {  return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;}/** * It takes a path, a key, and a boolean, and returns a string * * @param {string} path - The path to the current key. * @param {string} key - The key of the current object being iterated over. * @param {string} dots - If true, the key will be rendered with dots instead of brackets. * * @returns {string} The path to the current key. */function renderKey(path, key, dots) {  if (!path) return key;  return path.concat(key).map(function each(token, i) {    // eslint-disable-next-line no-param-reassign    token = removeBrackets(token);    return !dots && i ? '[' + token + ']' : token;  }).join(dots ? '.' : '');}/** * If the array is an array and none of its elements are visitable, then it's a flat array. * * @param {Array<any>} arr - The array to check * * @returns {boolean} */function isFlatArray(arr) {  return utils$1.isArray(arr) && !arr.some(isVisitable);}const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {  return /^is[A-Z]/.test(prop);});/** * Convert a data object to FormData * * @param {Object} obj * @param {?Object} [formData] * @param {?Object} [options] * @param {Function} [options.visitor] * @param {Boolean} [options.metaTokens = true] * @param {Boolean} [options.dots = false] * @param {?Boolean} [options.indexes = false] * * @returns {Object} **//** * It converts an object into a FormData object * * @param {Object<any, any>} obj - The object to convert to form data. * @param {string} formData - The FormData object to append to. * @param {Object<string, any>} options * * @returns */function toFormData(obj, formData, options) {  if (!utils$1.isObject(obj)) {    throw new TypeError('target must be an object');  }  // eslint-disable-next-line no-param-reassign  formData = formData || new (FormData)();  // eslint-disable-next-line no-param-reassign  options = utils$1.toFlatObject(options, {    metaTokens: true,    dots: false,    indexes: false  }, false, function defined(option, source) {    // eslint-disable-next-line no-eq-null,eqeqeq    return !utils$1.isUndefined(source[option]);  });  const metaTokens = options.metaTokens;  // eslint-disable-next-line no-use-before-define  const visitor = options.visitor || defaultVisitor;  const dots = options.dots;  const indexes = options.indexes;  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;  const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);  if (!utils$1.isFunction(visitor)) {    throw new TypeError('visitor must be a function');  }  function convertValue(value) {    if (value === null) return '';    if (utils$1.isDate(value)) {      return value.toISOString();    }    if (!useBlob && utils$1.isBlob(value)) {      throw new AxiosError('Blob is not supported. Use a Buffer instead.');    }    if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);    }    return value;  }  /**   * Default visitor.   *   * @param {*} value   * @param {String|Number} key   * @param {Array<String|Number>} path   * @this {FormData}   *   * @returns {boolean} return true to visit the each prop of the value recursively   */  function defaultVisitor(value, key, path) {    let arr = value;    if (value && !path && typeof value === 'object') {      if (utils$1.endsWith(key, '{}')) {        // eslint-disable-next-line no-param-reassign        key = metaTokens ? key : key.slice(0, -2);        // eslint-disable-next-line no-param-reassign        value = JSON.stringify(value);      } else if (        (utils$1.isArray(value) && isFlatArray(value)) ||        ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))        )) {        // eslint-disable-next-line no-param-reassign        key = removeBrackets(key);        arr.forEach(function each(el, index) {          !(utils$1.isUndefined(el) || el === null) && formData.append(            // eslint-disable-next-line no-nested-ternary            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),            convertValue(el)          );        });        return false;      }    }    if (isVisitable(value)) {      return true;    }    formData.append(renderKey(path, key, dots), convertValue(value));    return false;  }  const stack = [];  const exposedHelpers = Object.assign(predicates, {    defaultVisitor,    convertValue,    isVisitable  });  function build(value, path) {    if (utils$1.isUndefined(value)) return;    if (stack.indexOf(value) !== -1) {      throw Error('Circular reference detected in ' + path.join('.'));    }    stack.push(value);    utils$1.forEach(value, function each(el, key) {      const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(        formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers      );      if (result === true) {        build(el, path ? path.concat(key) : [key]);      }    });    stack.pop();  }  if (!utils$1.isObject(obj)) {    throw new TypeError('data must be an object');  }  build(obj);  return formData;}/** * It encodes a string by replacing all characters that are not in the unreserved set with * their percent-encoded equivalents * * @param {string} str - The string to encode. * * @returns {string} The encoded string. */function encode$1(str) {  const charMap = {    '!': '%21',    "'": '%27',    '(': '%28',    ')': '%29',    '~': '%7E',    '%20': '+',    '%00': '\x00'  };  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {    return charMap[match];  });}/** * It takes a params object and converts it to a FormData object * * @param {Object<string, any>} params - The parameters to be converted to a FormData object. * @param {Object<string, any>} options - The options object passed to the Axios constructor. * * @returns {void} */function AxiosURLSearchParams(params, options) {  this._pairs = [];  params && toFormData(params, this, options);}const prototype = AxiosURLSearchParams.prototype;prototype.append = function append(name, value) {  this._pairs.push([name, value]);};prototype.toString = function toString(encoder) {  const _encode = encoder ? function(value) {    return encoder.call(this, value, encode$1);  } : encode$1;  return this._pairs.map(function each(pair) {    return _encode(pair[0]) + '=' + _encode(pair[1]);  }, '').join('&');};/** * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their * URI encoded counterparts * * @param {string} val The value to be encoded. * * @returns {string} The encoded value. */function encode(val) {  return encodeURIComponent(val).    replace(/%3A/gi, ':').    replace(/%24/g, '$').    replace(/%2C/gi, ',').    replace(/%20/g, '+').    replace(/%5B/gi, '[').    replace(/%5D/gi, ']');}/** * Build a URL by appending params to the end * * @param {string} url The base of the url (e.g., http://www.google.com) * @param {object} [params] The params to be appended * @param {?(object|Function)} options * * @returns {string} The formatted url */function buildURL(url, params, options) {  /*eslint no-param-reassign:0*/  if (!params) {    return url;  }    const _encode = options && options.encode || encode;  if (utils$1.isFunction(options)) {    options = {      serialize: options    };  }   const serializeFn = options && options.serialize;  let serializedParams;  if (serializeFn) {    serializedParams = serializeFn(params, options);  } else {    serializedParams = utils$1.isURLSearchParams(params) ?      params.toString() :      new AxiosURLSearchParams(params, options).toString(_encode);  }  if (serializedParams) {    const hashmarkIndex = url.indexOf("#");    if (hashmarkIndex !== -1) {      url = url.slice(0, hashmarkIndex);    }    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;  }  return url;}class InterceptorManager {  constructor() {    this.handlers = [];  }  /**   * Add a new interceptor to the stack   *   * @param {Function} fulfilled The function to handle `then` for a `Promise`   * @param {Function} rejected The function to handle `reject` for a `Promise`   *   * @return {Number} An ID used to remove interceptor later   */  use(fulfilled, rejected, options) {    this.handlers.push({      fulfilled,      rejected,      synchronous: options ? options.synchronous : false,      runWhen: options ? options.runWhen : null    });    return this.handlers.length - 1;  }  /**   * Remove an interceptor from the stack   *   * @param {Number} id The ID that was returned by `use`   *   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise   */  eject(id) {    if (this.handlers[id]) {      this.handlers[id] = null;    }  }  /**   * Clear all interceptors from the stack   *   * @returns {void}   */  clear() {    if (this.handlers) {      this.handlers = [];    }  }  /**   * Iterate over all the registered interceptors   *   * This method is particularly useful for skipping over any   * interceptors that may have become `null` calling `eject`.   *   * @param {Function} fn The function to call for each interceptor   *   * @returns {void}   */  forEach(fn) {    utils$1.forEach(this.handlers, function forEachHandler(h) {      if (h !== null) {        fn(h);      }    });  }}var InterceptorManager$1 = InterceptorManager;var transitionalDefaults = {  silentJSONParsing: true,  forcedJSONParsing: true,  clarifyTimeoutError: false};var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;var FormData$1 = typeof FormData !== 'undefined' ? FormData : null;var Blob$1 = typeof Blob !== 'undefined' ? Blob : null;var platform$1 = {  isBrowser: true,  classes: {    URLSearchParams: URLSearchParams$1,    FormData: FormData$1,    Blob: Blob$1  },  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']};const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';const _navigator = typeof navigator === 'object' && navigator || undefined;/** * Determine if we're running in a standard browser environment * * This allows axios to run in a web worker, and react-native. * Both environments support XMLHttpRequest, but not fully standard globals. * * web workers: *  typeof window -> undefined *  typeof document -> undefined * * react-native: *  navigator.product -> 'ReactNative' * nativescript *  navigator.product -> 'NativeScript' or 'NS' * * @returns {boolean} */const hasStandardBrowserEnv = hasBrowserEnv &&  (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);/** * Determine if we're running in a standard browser webWorker environment * * Although the `isStandardBrowserEnv` method indicates that * `allows axios to run in a web worker`, the WebWorker will still be * filtered out due to its judgment standard * `typeof window !== 'undefined' && typeof document !== 'undefined'`. * This leads to a problem when axios post `FormData` in webWorker */const hasStandardBrowserWebWorkerEnv = (() => {  return (    typeof WorkerGlobalScope !== 'undefined' &&    // eslint-disable-next-line no-undef    self instanceof WorkerGlobalScope &&    typeof self.importScripts === 'function'  );})();const origin = hasBrowserEnv && window.location.href || 'http://localhost';var utils = /*#__PURE__*/Object.freeze({  __proto__: null,  hasBrowserEnv: hasBrowserEnv,  hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,  hasStandardBrowserEnv: hasStandardBrowserEnv,  navigator: _navigator,  origin: origin});var platform = {  ...utils,  ...platform$1};function toURLEncodedForm(data, options) {  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({    visitor: function(value, key, path, helpers) {      if (platform.isNode && utils$1.isBuffer(value)) {        this.append(key, value.toString('base64'));        return false;      }      return helpers.defaultVisitor.apply(this, arguments);    }  }, options));}/** * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] * * @param {string} name - The name of the property to get. * * @returns An array of strings. */function parsePropPath(name) {  // foo[x][y][z]  // foo.x.y.z  // foo-x-y-z  // foo x y z  return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => {    return match[0] === '[]' ? '' : match[1] || match[0];  });}/** * Convert an array to an object. * * @param {Array<any>} arr - The array to convert to an object. * * @returns An object with the same keys and values as the array. */function arrayToObject(arr) {  const obj = {};  const keys = Object.keys(arr);  let i;  const len = keys.length;  let key;  for (i = 0; i < len; i++) {    key = keys[i];    obj[key] = arr[key];  }  return obj;}/** * It takes a FormData object and returns a JavaScript object * * @param {string} formData The FormData object to convert to JSON. * * @returns {Object<string, any> | null} The converted object. */function formDataToJSON(formData) {  function buildPath(path, value, target, index) {    let name = path[index++];    if (name === '__proto__') return true;    const isNumericKey = Number.isFinite(+name);    const isLast = index >= path.length;    name = !name && utils$1.isArray(target) ? target.length : name;    if (isLast) {      if (utils$1.hasOwnProp(target, name)) {        target[name] = [target[name], value];      } else {        target[name] = value;      }      return !isNumericKey;    }    if (!target[name] || !utils$1.isObject(target[name])) {      target[name] = [];    }    const result = buildPath(path, value, target[name], index);    if (result && utils$1.isArray(target[name])) {      target[name] = arrayToObject(target[name]);    }    return !isNumericKey;  }  if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {    const obj = {};    utils$1.forEachEntry(formData, (name, value) => {      buildPath(parsePropPath(name), value, obj, 0);    });    return obj;  }  return null;}/** * It takes a string, tries to parse it, and if it fails, it returns the stringified version * of the input * * @param {any} rawValue - The value to be stringified. * @param {Function} parser - A function that parses a string into a JavaScript object. * @param {Function} encoder - A function that takes a value and returns a string. * * @returns {string} A stringified version of the rawValue. */function stringifySafely(rawValue, parser, encoder) {  if (utils$1.isString(rawValue)) {    try {      (parser || JSON.parse)(rawValue);      return utils$1.trim(rawValue);    } catch (e) {      if (e.name !== 'SyntaxError') {        throw e;      }    }  }  return (encoder || JSON.stringify)(rawValue);}const defaults = {  transitional: transitionalDefaults,  adapter: ['xhr', 'http', 'fetch'],  transformRequest: [function transformRequest(data, headers) {    const contentType = headers.getContentType() || '';    const hasJSONContentType = contentType.indexOf('application/json') > -1;    const isObjectPayload = utils$1.isObject(data);    if (isObjectPayload && utils$1.isHTMLForm(data)) {      data = new FormData(data);    }    const isFormData = utils$1.isFormData(data);    if (isFormData) {      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;    }    if (utils$1.isArrayBuffer(data) ||      utils$1.isBuffer(data) ||      utils$1.isStream(data) ||      utils$1.isFile(data) ||      utils$1.isBlob(data) ||      utils$1.isReadableStream(data)    ) {      return data;    }    if (utils$1.isArrayBufferView(data)) {      return data.buffer;    }    if (utils$1.isURLSearchParams(data)) {      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);      return data.toString();    }    let isFileList;    if (isObjectPayload) {      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {        return toURLEncodedForm(data, this.formSerializer).toString();      }      if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {        const _FormData = this.env && this.env.FormData;        return toFormData(          isFileList ? {'files[]': data} : data,          _FormData && new _FormData(),          this.formSerializer        );      }    }    if (isObjectPayload || hasJSONContentType ) {      headers.setContentType('application/json', false);      return stringifySafely(data);    }    return data;  }],  transformResponse: [function transformResponse(data) {    const transitional = this.transitional || defaults.transitional;    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;    const JSONRequested = this.responseType === 'json';    if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {      return data;    }    if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {      const silentJSONParsing = transitional && transitional.silentJSONParsing;      const strictJSONParsing = !silentJSONParsing && JSONRequested;      try {        return JSON.parse(data);      } catch (e) {        if (strictJSONParsing) {          if (e.name === 'SyntaxError') {            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);          }          throw e;        }      }    }    return data;  }],  /**   * A timeout in milliseconds to abort a request. If set to 0 (default) a   * timeout is not created.   */  timeout: 0,  xsrfCookieName: 'XSRF-TOKEN',  xsrfHeaderName: 'X-XSRF-TOKEN',  maxContentLength: -1,  maxBodyLength: -1,  env: {    FormData: platform.classes.FormData,    Blob: platform.classes.Blob  },  validateStatus: function validateStatus(status) {    return status >= 200 && status < 300;  },  headers: {    common: {      'Accept': 'application/json, text/plain, */*',      'Content-Type': undefined    }  }};utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {  defaults.headers[method] = {};});var defaults$1 = defaults;// RawAxiosHeaders whose duplicates are ignored by node// c.f. https://nodejs.org/api/http.html#http_message_headersconst ignoreDuplicateOf = utils$1.toObjectSet([  'age', 'authorization', 'content-length', 'content-type', 'etag',  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',  'last-modified', 'location', 'max-forwards', 'proxy-authorization',  'referer', 'retry-after', 'user-agent']);/** * Parse headers into an object * * ``` * Date: Wed, 27 Aug 2014 08:58:49 GMT * Content-Type: application/json * Connection: keep-alive * Transfer-Encoding: chunked * ``` * * @param {String} rawHeaders Headers needing to be parsed * * @returns {Object} Headers parsed into an object */var parseHeaders = rawHeaders => {  const parsed = {};  let key;  let val;  let i;  rawHeaders && rawHeaders.split('\n').forEach(function parser(line) {    i = line.indexOf(':');    key = line.substring(0, i).trim().toLowerCase();    val = line.substring(i + 1).trim();    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {      return;    }    if (key === 'set-cookie') {      if (parsed[key]) {        parsed[key].push(val);      } else {        parsed[key] = [val];      }    } else {      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;    }  });  return parsed;};const $internals = Symbol('internals');function normalizeHeader(header) {  return header && String(header).trim().toLowerCase();}function normalizeValue(value) {  if (value === false || value == null) {    return value;  }  return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);}function parseTokens(str) {  const tokens = Object.create(null);  const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;  let match;  while ((match = tokensRE.exec(str))) {    tokens[match[1]] = match[2];  }  return tokens;}const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {  if (utils$1.isFunction(filter)) {    return filter.call(this, value, header);  }  if (isHeaderNameFilter) {    value = header;  }  if (!utils$1.isString(value)) return;  if (utils$1.isString(filter)) {    return value.indexOf(filter) !== -1;  }  if (utils$1.isRegExp(filter)) {    return filter.test(value);  }}function formatHeader(header) {  return header.trim()    .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {      return char.toUpperCase() + str;    });}function buildAccessors(obj, header) {  const accessorName = utils$1.toCamelCase(' ' + header);  ['get', 'set', 'has'].forEach(methodName => {    Object.defineProperty(obj, methodName + accessorName, {      value: function(arg1, arg2, arg3) {        return this[methodName].call(this, header, arg1, arg2, arg3);      },      configurable: true    });  });}class AxiosHeaders {  constructor(headers) {    headers && this.set(headers);  }  set(header, valueOrRewrite, rewrite) {    const self = this;    function setHeader(_value, _header, _rewrite) {      const lHeader = normalizeHeader(_header);      if (!lHeader) {        throw new Error('header name must be a non-empty string');      }      const key = utils$1.findKey(self, lHeader);      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {        self[key || _header] = normalizeValue(_value);      }    }    const setHeaders = (headers, _rewrite) =>      utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));    if (utils$1.isPlainObject(header) || header instanceof this.constructor) {      setHeaders(header, valueOrRewrite);    } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {      setHeaders(parseHeaders(header), valueOrRewrite);    } else if (utils$1.isHeaders(header)) {      for (const [key, value] of header.entries()) {        setHeader(value, key, rewrite);      }    } else {      header != null && setHeader(valueOrRewrite, header, rewrite);    }    return this;  }  get(header, parser) {    header = normalizeHeader(header);    if (header) {      const key = utils$1.findKey(this, header);      if (key) {        const value = this[key];        if (!parser) {          return value;        }        if (parser === true) {          return parseTokens(value);        }        if (utils$1.isFunction(parser)) {          return parser.call(this, value, key);        }        if (utils$1.isRegExp(parser)) {          return parser.exec(value);        }        throw new TypeError('parser must be boolean|regexp|function');      }    }  }  has(header, matcher) {    header = normalizeHeader(header);    if (header) {      const key = utils$1.findKey(this, header);      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));    }    return false;  }  delete(header, matcher) {    const self = this;    let deleted = false;    function deleteHeader(_header) {      _header = normalizeHeader(_header);      if (_header) {        const key = utils$1.findKey(self, _header);        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {          delete self[key];          deleted = true;        }      }    }    if (utils$1.isArray(header)) {      header.forEach(deleteHeader);    } else {      deleteHeader(header);    }    return deleted;  }  clear(matcher) {    const keys = Object.keys(this);    let i = keys.length;    let deleted = false;    while (i--) {      const key = keys[i];      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {        delete this[key];        deleted = true;      }    }    return deleted;  }  normalize(format) {    const self = this;    const headers = {};    utils$1.forEach(this, (value, header) => {      const key = utils$1.findKey(headers, header);      if (key) {        self[key] = normalizeValue(value);        delete self[header];        return;      }      const normalized = format ? formatHeader(header) : String(header).trim();      if (normalized !== header) {        delete self[header];      }      self[normalized] = normalizeValue(value);      headers[normalized] = true;    });    return this;  }  concat(...targets) {    return this.constructor.concat(this, ...targets);  }  toJSON(asStrings) {    const obj = Object.create(null);    utils$1.forEach(this, (value, header) => {      value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);    });    return obj;  }  [Symbol.iterator]() {    return Object.entries(this.toJSON())[Symbol.iterator]();  }  toString() {    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n');  }  get [Symbol.toStringTag]() {    return 'AxiosHeaders';  }  static from(thing) {    return thing instanceof this ? thing : new this(thing);  }  static concat(first, ...targets) {    const computed = new this(first);    targets.forEach((target) => computed.set(target));    return computed;  }  static accessor(header) {    const internals = this[$internals] = (this[$internals] = {      accessors: {}    });    const accessors = internals.accessors;    const prototype = this.prototype;    function defineAccessor(_header) {      const lHeader = normalizeHeader(_header);      if (!accessors[lHeader]) {        buildAccessors(prototype, _header);        accessors[lHeader] = true;      }    }    utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);    return this;  }}AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);// reserved names hotfixutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`  return {    get: () => value,    set(headerValue) {      this[mapped] = headerValue;    }  }});utils$1.freezeMethods(AxiosHeaders);var AxiosHeaders$1 = AxiosHeaders;/** * Transform the data for a request or a response * * @param {Array|Function} fns A single function or Array of functions * @param {?Object} response The response object * * @returns {*} The resulting transformed data */function transformData(fns, response) {  const config = this || defaults$1;  const context = response || config;  const headers = AxiosHeaders$1.from(context.headers);  let data = context.data;  utils$1.forEach(fns, function transform(fn) {    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);  });  headers.normalize();  return data;}function isCancel(value) {  return !!(value && value.__CANCEL__);}/** * A `CanceledError` is an object that is thrown when an operation is canceled. * * @param {string=} message The message. * @param {Object=} config The config. * @param {Object=} request The request. * * @returns {CanceledError} The created error. */function CanceledError(message, config, request) {  // eslint-disable-next-line no-eq-null,eqeqeq  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);  this.name = 'CanceledError';}utils$1.inherits(CanceledError, AxiosError, {  __CANCEL__: true});/** * Resolve or reject a Promise based on response status. * * @param {Function} resolve A function that resolves the promise. * @param {Function} reject A function that rejects the promise. * @param {object} response The response. * * @returns {object} The response. */function settle(resolve, reject, response) {  const validateStatus = response.config.validateStatus;  if (!response.status || !validateStatus || validateStatus(response.status)) {    resolve(response);  } else {    reject(new AxiosError(      'Request failed with status code ' + response.status,      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],      response.config,      response.request,      response    ));  }}function parseProtocol(url) {  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);  return match && match[1] || '';}/** * Calculate data maxRate * @param {Number} [samplesCount= 10] * @param {Number} [min= 1000] * @returns {Function} */function speedometer(samplesCount, min) {  samplesCount = samplesCount || 10;  const bytes = new Array(samplesCount);  const timestamps = new Array(samplesCount);  let head = 0;  let tail = 0;  let firstSampleTS;  min = min !== undefined ? min : 1000;  return function push(chunkLength) {    const now = Date.now();    const startedAt = timestamps[tail];    if (!firstSampleTS) {      firstSampleTS = now;    }    bytes[head] = chunkLength;    timestamps[head] = now;    let i = tail;    let bytesCount = 0;    while (i !== head) {      bytesCount += bytes[i++];      i = i % samplesCount;    }    head = (head + 1) % samplesCount;    if (head === tail) {      tail = (tail + 1) % samplesCount;    }    if (now - firstSampleTS < min) {      return;    }    const passed = startedAt && now - startedAt;    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;  };}/** * Throttle decorator * @param {Function} fn * @param {Number} freq * @return {Function} */function throttle(fn, freq) {  let timestamp = 0;  let threshold = 1000 / freq;  let lastArgs;  let timer;  const invoke = (args, now = Date.now()) => {    timestamp = now;    lastArgs = null;    if (timer) {      clearTimeout(timer);      timer = null;    }    fn.apply(null, args);  };  const throttled = (...args) => {    const now = Date.now();    const passed = now - timestamp;    if ( passed >= threshold) {      invoke(args, now);    } else {      lastArgs = args;      if (!timer) {        timer = setTimeout(() => {          timer = null;          invoke(lastArgs);        }, threshold - passed);      }    }  };  const flush = () => lastArgs && invoke(lastArgs);  return [throttled, flush];}const progressEventReducer = (listener, isDownloadStream, freq = 3) => {  let bytesNotified = 0;  const _speedometer = speedometer(50, 250);  return throttle(e => {    const loaded = e.loaded;    const total = e.lengthComputable ? e.total : undefined;    const progressBytes = loaded - bytesNotified;    const rate = _speedometer(progressBytes);    const inRange = loaded <= total;    bytesNotified = loaded;    const data = {      loaded,      total,      progress: total ? (loaded / total) : undefined,      bytes: progressBytes,      rate: rate ? rate : undefined,      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,      event: e,      lengthComputable: total != null,      [isDownloadStream ? 'download' : 'upload']: true    };    listener(data);  }, freq);};const progressEventDecorator = (total, throttled) => {  const lengthComputable = total != null;  return [(loaded) => throttled[0]({    lengthComputable,    total,    loaded  }), throttled[1]];};const asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));var isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {  url = new URL(url, platform.origin);  return (    origin.protocol === url.protocol &&    origin.host === url.host &&    (isMSIE || origin.port === url.port)  );})(  new URL(platform.origin),  platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)) : () => true;var cookies = platform.hasStandardBrowserEnv ?  // Standard browser envs support document.cookie  {    write(name, value, expires, path, domain, secure) {      const cookie = [name + '=' + encodeURIComponent(value)];      utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());      utils$1.isString(path) && cookie.push('path=' + path);      utils$1.isString(domain) && cookie.push('domain=' + domain);      secure === true && cookie.push('secure');      document.cookie = cookie.join('; ');    },    read(name) {      const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));      return (match ? decodeURIComponent(match[3]) : null);    },    remove(name) {      this.write(name, '', Date.now() - 86400000);    }  }  :  // Non-standard browser env (web workers, react-native) lack needed support.  {    write() {},    read() {      return null;    },    remove() {}  };/** * Determines whether the specified URL is absolute * * @param {string} url The URL to test * * @returns {boolean} True if the specified URL is absolute, otherwise false */function isAbsoluteURL(url) {  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed  // by any combination of letters, digits, plus, period, or hyphen.  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);}/** * Creates a new URL by combining the specified URLs * * @param {string} baseURL The base URL * @param {string} relativeURL The relative URL * * @returns {string} The combined URL */function combineURLs(baseURL, relativeURL) {  return relativeURL    ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')    : baseURL;}/** * Creates a new URL by combining the baseURL with the requestedURL, * only when the requestedURL is not already an absolute URL. * If the requestURL is absolute, this function returns the requestedURL untouched. * * @param {string} baseURL The base URL * @param {string} requestedURL Absolute or relative URL to combine * * @returns {string} The combined full path */function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {  let isRelativeUrl = !isAbsoluteURL(requestedURL);  if (baseURL && isRelativeUrl || allowAbsoluteUrls == false) {    return combineURLs(baseURL, requestedURL);  }  return requestedURL;}const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;/** * Config-specific merge-function which creates a new config-object * by merging two configuration objects together. * * @param {Object} config1 * @param {Object} config2 * * @returns {Object} New object resulting from merging config2 to config1 */function mergeConfig(config1, config2) {  // eslint-disable-next-line no-param-reassign  config2 = config2 || {};  const config = {};  function getMergedValue(target, source, prop, caseless) {    if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {      return utils$1.merge.call({caseless}, target, source);    } else if (utils$1.isPlainObject(source)) {      return utils$1.merge({}, source);    } else if (utils$1.isArray(source)) {      return source.slice();    }    return source;  }  // eslint-disable-next-line consistent-return  function mergeDeepProperties(a, b, prop , caseless) {    if (!utils$1.isUndefined(b)) {      return getMergedValue(a, b, prop , caseless);    } else if (!utils$1.isUndefined(a)) {      return getMergedValue(undefined, a, prop , caseless);    }  }  // eslint-disable-next-line consistent-return  function valueFromConfig2(a, b) {    if (!utils$1.isUndefined(b)) {      return getMergedValue(undefined, b);    }  }  // eslint-disable-next-line consistent-return  function defaultToConfig2(a, b) {    if (!utils$1.isUndefined(b)) {      return getMergedValue(undefined, b);    } else if (!utils$1.isUndefined(a)) {      return getMergedValue(undefined, a);    }  }  // eslint-disable-next-line consistent-return  function mergeDirectKeys(a, b, prop) {    if (prop in config2) {      return getMergedValue(a, b);    } else if (prop in config1) {      return getMergedValue(undefined, a);    }  }  const mergeMap = {    url: valueFromConfig2,    method: valueFromConfig2,    data: valueFromConfig2,    baseURL: defaultToConfig2,    transformRequest: defaultToConfig2,    transformResponse: defaultToConfig2,    paramsSerializer: defaultToConfig2,    timeout: defaultToConfig2,    timeoutMessage: defaultToConfig2,    withCredentials: defaultToConfig2,    withXSRFToken: defaultToConfig2,    adapter: defaultToConfig2,    responseType: defaultToConfig2,    xsrfCookieName: defaultToConfig2,    xsrfHeaderName: defaultToConfig2,    onUploadProgress: defaultToConfig2,    onDownloadProgress: defaultToConfig2,    decompress: defaultToConfig2,    maxContentLength: defaultToConfig2,    maxBodyLength: defaultToConfig2,    beforeRedirect: defaultToConfig2,    transport: defaultToConfig2,    httpAgent: defaultToConfig2,    httpsAgent: defaultToConfig2,    cancelToken: defaultToConfig2,    socketPath: defaultToConfig2,    responseEncoding: defaultToConfig2,    validateStatus: mergeDirectKeys,    headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)  };  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {    const merge = mergeMap[prop] || mergeDeepProperties;    const configValue = merge(config1[prop], config2[prop], prop);    (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);  });  return config;}var resolveConfig = (config) => {  const newConfig = mergeConfig({}, config);  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;  newConfig.headers = headers = AxiosHeaders$1.from(headers);  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);  // HTTP basic authentication  if (auth) {    headers.set('Authorization', 'Basic ' +      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))    );  }  let contentType;  if (utils$1.isFormData(data)) {    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {      headers.setContentType(undefined); // Let the browser set it    } else if ((contentType = headers.getContentType()) !== false) {      // fix semicolon duplication issue for ReactNative FormData implementation      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));    }  }  // Add xsrf header  // This is only done if running in a standard browser environment.  // Specifically not if we're in a web worker, or react-native.  if (platform.hasStandardBrowserEnv) {    withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {      // Add xsrf header      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);      if (xsrfValue) {        headers.set(xsrfHeaderName, xsrfValue);      }    }  }  return newConfig;};const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';var xhrAdapter = isXHRAdapterSupported && function (config) {  return new Promise(function dispatchXhrRequest(resolve, reject) {    const _config = resolveConfig(config);    let requestData = _config.data;    const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();    let {responseType, onUploadProgress, onDownloadProgress} = _config;    let onCanceled;    let uploadThrottled, downloadThrottled;    let flushUpload, flushDownload;    function done() {      flushUpload && flushUpload(); // flush events      flushDownload && flushDownload(); // flush events      _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);      _config.signal && _config.signal.removeEventListener('abort', onCanceled);    }    let request = new XMLHttpRequest();    request.open(_config.method.toUpperCase(), _config.url, true);    // Set the request timeout in MS    request.timeout = _config.timeout;    function onloadend() {      if (!request) {        return;      }      // Prepare the response      const responseHeaders = AxiosHeaders$1.from(        'getAllResponseHeaders' in request && request.getAllResponseHeaders()      );      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?        request.responseText : request.response;      const response = {        data: responseData,        status: request.status,        statusText: request.statusText,        headers: responseHeaders,        config,        request      };      settle(function _resolve(value) {        resolve(value);        done();      }, function _reject(err) {        reject(err);        done();      }, response);      // Clean up request      request = null;    }    if ('onloadend' in request) {      // Use onloadend if available      request.onloadend = onloadend;    } else {      // Listen for ready state to emulate onloadend      request.onreadystatechange = function handleLoad() {        if (!request || request.readyState !== 4) {          return;        }        // The request errored out and we didn't get a response, this will be        // handled by onerror instead        // With one exception: request that using file: protocol, most browsers        // will return status as 0 even though it's a successful request        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {          return;        }        // readystate handler is calling before onerror or ontimeout handlers,        // so we should call onloadend on the next 'tick'        setTimeout(onloadend);      };    }    // Handle browser request cancellation (as opposed to a manual cancellation)    request.onabort = function handleAbort() {      if (!request) {        return;      }      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));      // Clean up request      request = null;    };    // Handle low level network errors    request.onerror = function handleError() {      // Real errors are hidden from us by the browser      // onerror should only fire if it's a network error      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));      // Clean up request      request = null;    };    // Handle timeout    request.ontimeout = function handleTimeout() {      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';      const transitional = _config.transitional || transitionalDefaults;      if (_config.timeoutErrorMessage) {        timeoutErrorMessage = _config.timeoutErrorMessage;      }      reject(new AxiosError(        timeoutErrorMessage,        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,        config,        request));      // Clean up request      request = null;    };    // Remove Content-Type if data is undefined    requestData === undefined && requestHeaders.setContentType(null);    // Add headers to the request    if ('setRequestHeader' in request) {      utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {        request.setRequestHeader(key, val);      });    }    // Add withCredentials to request if needed    if (!utils$1.isUndefined(_config.withCredentials)) {      request.withCredentials = !!_config.withCredentials;    }    // Add responseType to request if needed    if (responseType && responseType !== 'json') {      request.responseType = _config.responseType;    }    // Handle progress if needed    if (onDownloadProgress) {      ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));      request.addEventListener('progress', downloadThrottled);    }    // Not all browsers support upload events    if (onUploadProgress && request.upload) {      ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));      request.upload.addEventListener('progress', uploadThrottled);      request.upload.addEventListener('loadend', flushUpload);    }    if (_config.cancelToken || _config.signal) {      // Handle cancellation      // eslint-disable-next-line func-names      onCanceled = cancel => {        if (!request) {          return;        }        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);        request.abort();        request = null;      };      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);      if (_config.signal) {        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);      }    }    const protocol = parseProtocol(_config.url);    if (protocol && platform.protocols.indexOf(protocol) === -1) {      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));      return;    }    // Send the request    request.send(requestData || null);  });};const composeSignals = (signals, timeout) => {  const {length} = (signals = signals ? signals.filter(Boolean) : []);  if (timeout || length) {    let controller = new AbortController();    let aborted;    const onabort = function (reason) {      if (!aborted) {        aborted = true;        unsubscribe();        const err = reason instanceof Error ? reason : this.reason;        controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));      }    };    let timer = timeout && setTimeout(() => {      timer = null;      onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));    }, timeout);    const unsubscribe = () => {      if (signals) {        timer && clearTimeout(timer);        timer = null;        signals.forEach(signal => {          signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);        });        signals = null;      }    };    signals.forEach((signal) => signal.addEventListener('abort', onabort));    const {signal} = controller;    signal.unsubscribe = () => utils$1.asap(unsubscribe);    return signal;  }};var composeSignals$1 = composeSignals;const streamChunk = function* (chunk, chunkSize) {  let len = chunk.byteLength;  if (!chunkSize || len < chunkSize) {    yield chunk;    return;  }  let pos = 0;  let end;  while (pos < len) {    end = pos + chunkSize;    yield chunk.slice(pos, end);    pos = end;  }};const readBytes = async function* (iterable, chunkSize) {  for await (const chunk of readStream(iterable)) {    yield* streamChunk(chunk, chunkSize);  }};const readStream = async function* (stream) {  if (stream[Symbol.asyncIterator]) {    yield* stream;    return;  }  const reader = stream.getReader();  try {    for (;;) {      const {done, value} = await reader.read();      if (done) {        break;      }      yield value;    }  } finally {    await reader.cancel();  }};const trackStream = (stream, chunkSize, onProgress, onFinish) => {  const iterator = readBytes(stream, chunkSize);  let bytes = 0;  let done;  let _onFinish = (e) => {    if (!done) {      done = true;      onFinish && onFinish(e);    }  };  return new ReadableStream({    async pull(controller) {      try {        const {done, value} = await iterator.next();        if (done) {         _onFinish();          controller.close();          return;        }        let len = value.byteLength;        if (onProgress) {          let loadedBytes = bytes += len;          onProgress(loadedBytes);        }        controller.enqueue(new Uint8Array(value));      } catch (err) {        _onFinish(err);        throw err;      }    },    cancel(reason) {      _onFinish(reason);      return iterator.return();    }  }, {    highWaterMark: 2  })};const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';// used only inside the fetch adapterconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :    async (str) => new Uint8Array(await new Response(str).arrayBuffer()));const test = (fn, ...args) => {  try {    return !!fn(...args);  } catch (e) {    return false  }};const supportsRequestStream = isReadableStreamSupported && test(() => {  let duplexAccessed = false;  const hasContentType = new Request(platform.origin, {    body: new ReadableStream(),    method: 'POST',    get duplex() {      duplexAccessed = true;      return 'half';    },  }).headers.has('Content-Type');  return duplexAccessed && !hasContentType;});const DEFAULT_CHUNK_SIZE = 64 * 1024;const supportsResponseStream = isReadableStreamSupported &&  test(() => utils$1.isReadableStream(new Response('').body));const resolvers = {  stream: supportsResponseStream && ((res) => res.body)};isFetchSupported && (((res) => {  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {    !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :      (_, config) => {        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);      });  });})(new Response));const getBodyLength = async (body) => {  if (body == null) {    return 0;  }  if(utils$1.isBlob(body)) {    return body.size;  }  if(utils$1.isSpecCompliantForm(body)) {    const _request = new Request(platform.origin, {      method: 'POST',      body,    });    return (await _request.arrayBuffer()).byteLength;  }  if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {    return body.byteLength;  }  if(utils$1.isURLSearchParams(body)) {    body = body + '';  }  if(utils$1.isString(body)) {    return (await encodeText(body)).byteLength;  }};const resolveBodyLength = async (headers, body) => {  const length = utils$1.toFiniteNumber(headers.getContentLength());  return length == null ? getBodyLength(body) : length;};var fetchAdapter = isFetchSupported && (async (config) => {  let {    url,    method,    data,    signal,    cancelToken,    timeout,    onDownloadProgress,    onUploadProgress,    responseType,    headers,    withCredentials = 'same-origin',    fetchOptions  } = resolveConfig(config);  responseType = responseType ? (responseType + '').toLowerCase() : 'text';  let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);  let request;  const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {      composedSignal.unsubscribe();  });  let requestContentLength;  try {    if (      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&      (requestContentLength = await resolveBodyLength(headers, data)) !== 0    ) {      let _request = new Request(url, {        method: 'POST',        body: data,        duplex: "half"      });      let contentTypeHeader;      if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {        headers.setContentType(contentTypeHeader);      }      if (_request.body) {        const [onProgress, flush] = progressEventDecorator(          requestContentLength,          progressEventReducer(asyncDecorator(onUploadProgress))        );        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);      }    }    if (!utils$1.isString(withCredentials)) {      withCredentials = withCredentials ? 'include' : 'omit';    }    // Cloudflare Workers throws when credentials are defined    // see https://github.com/cloudflare/workerd/issues/902    const isCredentialsSupported = "credentials" in Request.prototype;    request = new Request(url, {      ...fetchOptions,      signal: composedSignal,      method: method.toUpperCase(),      headers: headers.normalize().toJSON(),      body: data,      duplex: "half",      credentials: isCredentialsSupported ? withCredentials : undefined    });    let response = await fetch(request);    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');    if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {      const options = {};      ['status', 'statusText', 'headers'].forEach(prop => {        options[prop] = response[prop];      });      const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));      const [onProgress, flush] = onDownloadProgress && progressEventDecorator(        responseContentLength,        progressEventReducer(asyncDecorator(onDownloadProgress), true)      ) || [];      response = new Response(        trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {          flush && flush();          unsubscribe && unsubscribe();        }),        options      );    }    responseType = responseType || 'text';    let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);    !isStreamResponse && unsubscribe && unsubscribe();    return await new Promise((resolve, reject) => {      settle(resolve, reject, {        data: responseData,        headers: AxiosHeaders$1.from(response.headers),        status: response.status,        statusText: response.statusText,        config,        request      });    })  } catch (err) {    unsubscribe && unsubscribe();    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {      throw Object.assign(        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),        {          cause: err.cause || err        }      )    }    throw AxiosError.from(err, err && err.code, config, request);  }});const knownAdapters = {  http: httpAdapter,  xhr: xhrAdapter,  fetch: fetchAdapter};utils$1.forEach(knownAdapters, (fn, value) => {  if (fn) {    try {      Object.defineProperty(fn, 'name', {value});    } catch (e) {      // eslint-disable-next-line no-empty    }    Object.defineProperty(fn, 'adapterName', {value});  }});const renderReason = (reason) => `- ${reason}`;const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;var adapters = {  getAdapter: (adapters) => {    adapters = utils$1.isArray(adapters) ? adapters : [adapters];    const {length} = adapters;    let nameOrAdapter;    let adapter;    const rejectedReasons = {};    for (let i = 0; i < length; i++) {      nameOrAdapter = adapters[i];      let id;      adapter = nameOrAdapter;      if (!isResolvedHandle(nameOrAdapter)) {        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];        if (adapter === undefined) {          throw new AxiosError(`Unknown adapter '${id}'`);        }      }      if (adapter) {        break;      }      rejectedReasons[id || '#' + i] = adapter;    }    if (!adapter) {      const reasons = Object.entries(rejectedReasons)        .map(([id, state]) => `adapter ${id} ` +          (state === false ? 'is not supported by the environment' : 'is not available in the build')        );      let s = length ?        (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :        'as no adapter specified';      throw new AxiosError(        `There is no suitable adapter to dispatch the request ` + s,        'ERR_NOT_SUPPORT'      );    }    return adapter;  },  adapters: knownAdapters};/** * Throws a `CanceledError` if cancellation has been requested. * * @param {Object} config The config that is to be used for the request * * @returns {void} */function throwIfCancellationRequested(config) {  if (config.cancelToken) {    config.cancelToken.throwIfRequested();  }  if (config.signal && config.signal.aborted) {    throw new CanceledError(null, config);  }}/** * Dispatch a request to the server using the configured adapter. * * @param {object} config The config that is to be used for the request * * @returns {Promise} The Promise to be fulfilled */function dispatchRequest(config) {  throwIfCancellationRequested(config);  config.headers = AxiosHeaders$1.from(config.headers);  // Transform request data  config.data = transformData.call(    config,    config.transformRequest  );  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {    config.headers.setContentType('application/x-www-form-urlencoded', false);  }  const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);  return adapter(config).then(function onAdapterResolution(response) {    throwIfCancellationRequested(config);    // Transform response data    response.data = transformData.call(      config,      config.transformResponse,      response    );    response.headers = AxiosHeaders$1.from(response.headers);    return response;  }, function onAdapterRejection(reason) {    if (!isCancel(reason)) {      throwIfCancellationRequested(config);      // Transform response data      if (reason && reason.response) {        reason.response.data = transformData.call(          config,          config.transformResponse,          reason.response        );        reason.response.headers = AxiosHeaders$1.from(reason.response.headers);      }    }    return Promise.reject(reason);  });}const VERSION = "1.8.3";const validators$1 = {};// eslint-disable-next-line func-names['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {  validators$1[type] = function validator(thing) {    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;  };});const deprecatedWarnings = {};/** * Transitional option validator * * @param {function|boolean?} validator - set to false if the transitional option has been removed * @param {string?} version - deprecated version / removed since version * @param {string?} message - some message with additional info * * @returns {function} */validators$1.transitional = function transitional(validator, version, message) {  function formatMessage(opt, desc) {    return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');  }  // eslint-disable-next-line func-names  return (value, opt, opts) => {    if (validator === false) {      throw new AxiosError(        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),        AxiosError.ERR_DEPRECATED      );    }    if (version && !deprecatedWarnings[opt]) {      deprecatedWarnings[opt] = true;      // eslint-disable-next-line no-console      console.warn(        formatMessage(          opt,          ' has been deprecated since v' + version + ' and will be removed in the near future'        )      );    }    return validator ? validator(value, opt, opts) : true;  };};validators$1.spelling = function spelling(correctSpelling) {  return (value, opt) => {    // eslint-disable-next-line no-console    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);    return true;  }};/** * Assert object's properties type * * @param {object} options * @param {object} schema * @param {boolean?} allowUnknown * * @returns {object} */function assertOptions(options, schema, allowUnknown) {  if (typeof options !== 'object') {    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);  }  const keys = Object.keys(options);  let i = keys.length;  while (i-- > 0) {    const opt = keys[i];    const validator = schema[opt];    if (validator) {      const value = options[opt];      const result = value === undefined || validator(value, opt, options);      if (result !== true) {        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);      }      continue;    }    if (allowUnknown !== true) {      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);    }  }}var validator = {  assertOptions,  validators: validators$1};const validators = validator.validators;/** * Create a new instance of Axios * * @param {Object} instanceConfig The default config for the instance * * @return {Axios} A new instance of Axios */class Axios {  constructor(instanceConfig) {    this.defaults = instanceConfig;    this.interceptors = {      request: new InterceptorManager$1(),      response: new InterceptorManager$1()    };  }  /**   * Dispatch a request   *   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)   * @param {?Object} config   *   * @returns {Promise} The Promise to be fulfilled   */  async request(configOrUrl, config) {    try {      return await this._request(configOrUrl, config);    } catch (err) {      if (err instanceof Error) {        let dummy = {};        Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());        // slice off the Error: ... line        const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';        try {          if (!err.stack) {            err.stack = stack;            // match without the 2 top stack lines          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {            err.stack += '\n' + stack;          }        } catch (e) {          // ignore the case where "stack" is an un-writable property        }      }      throw err;    }  }  _request(configOrUrl, config) {    /*eslint no-param-reassign:0*/    // Allow for axios('example/url'[, config]) a la fetch API    if (typeof configOrUrl === 'string') {      config = config || {};      config.url = configOrUrl;    } else {      config = configOrUrl || {};    }    config = mergeConfig(this.defaults, config);    const {transitional, paramsSerializer, headers} = config;    if (transitional !== undefined) {      validator.assertOptions(transitional, {        silentJSONParsing: validators.transitional(validators.boolean),        forcedJSONParsing: validators.transitional(validators.boolean),        clarifyTimeoutError: validators.transitional(validators.boolean)      }, false);    }    if (paramsSerializer != null) {      if (utils$1.isFunction(paramsSerializer)) {        config.paramsSerializer = {          serialize: paramsSerializer        };      } else {        validator.assertOptions(paramsSerializer, {          encode: validators.function,          serialize: validators.function        }, true);      }    }    // Set config.allowAbsoluteUrls    if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {      config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;    } else {      config.allowAbsoluteUrls = true;    }    validator.assertOptions(config, {      baseUrl: validators.spelling('baseURL'),      withXsrfToken: validators.spelling('withXSRFToken')    }, true);    // Set config.method    config.method = (config.method || this.defaults.method || 'get').toLowerCase();    // Flatten headers    let contextHeaders = headers && utils$1.merge(      headers.common,      headers[config.method]    );    headers && utils$1.forEach(      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],      (method) => {        delete headers[method];      }    );    config.headers = AxiosHeaders$1.concat(contextHeaders, headers);    // filter out skipped interceptors    const requestInterceptorChain = [];    let synchronousRequestInterceptors = true;    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {        return;      }      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);    });    const responseInterceptorChain = [];    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);    });    let promise;    let i = 0;    let len;    if (!synchronousRequestInterceptors) {      const chain = [dispatchRequest.bind(this), undefined];      chain.unshift.apply(chain, requestInterceptorChain);      chain.push.apply(chain, responseInterceptorChain);      len = chain.length;      promise = Promise.resolve(config);      while (i < len) {        promise = promise.then(chain[i++], chain[i++]);      }      return promise;    }    len = requestInterceptorChain.length;    let newConfig = config;    i = 0;    while (i < len) {      const onFulfilled = requestInterceptorChain[i++];      const onRejected = requestInterceptorChain[i++];      try {        newConfig = onFulfilled(newConfig);      } catch (error) {        onRejected.call(this, error);        break;      }    }    try {      promise = dispatchRequest.call(this, newConfig);    } catch (error) {      return Promise.reject(error);    }    i = 0;    len = responseInterceptorChain.length;    while (i < len) {      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);    }    return promise;  }  getUri(config) {    config = mergeConfig(this.defaults, config);    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);    return buildURL(fullPath, config.params, config.paramsSerializer);  }}// Provide aliases for supported request methodsutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {  /*eslint func-names:0*/  Axios.prototype[method] = function(url, config) {    return this.request(mergeConfig(config || {}, {      method,      url,      data: (config || {}).data    }));  };});utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {  /*eslint func-names:0*/  function generateHTTPMethod(isForm) {    return function httpMethod(url, data, config) {      return this.request(mergeConfig(config || {}, {        method,        headers: isForm ? {          'Content-Type': 'multipart/form-data'        } : {},        url,        data      }));    };  }  Axios.prototype[method] = generateHTTPMethod();  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);});var Axios$1 = Axios;/** * A `CancelToken` is an object that can be used to request cancellation of an operation. * * @param {Function} executor The executor function. * * @returns {CancelToken} */class CancelToken {  constructor(executor) {    if (typeof executor !== 'function') {      throw new TypeError('executor must be a function.');    }    let resolvePromise;    this.promise = new Promise(function promiseExecutor(resolve) {      resolvePromise = resolve;    });    const token = this;    // eslint-disable-next-line func-names    this.promise.then(cancel => {      if (!token._listeners) return;      let i = token._listeners.length;      while (i-- > 0) {        token._listeners[i](cancel);      }      token._listeners = null;    });    // eslint-disable-next-line func-names    this.promise.then = onfulfilled => {      let _resolve;      // eslint-disable-next-line func-names      const promise = new Promise(resolve => {        token.subscribe(resolve);        _resolve = resolve;      }).then(onfulfilled);      promise.cancel = function reject() {        token.unsubscribe(_resolve);      };      return promise;    };    executor(function cancel(message, config, request) {      if (token.reason) {        // Cancellation has already been requested        return;      }      token.reason = new CanceledError(message, config, request);      resolvePromise(token.reason);    });  }  /**   * Throws a `CanceledError` if cancellation has been requested.   */  throwIfRequested() {    if (this.reason) {      throw this.reason;    }  }  /**   * Subscribe to the cancel signal   */  subscribe(listener) {    if (this.reason) {      listener(this.reason);      return;    }    if (this._listeners) {      this._listeners.push(listener);    } else {      this._listeners = [listener];    }  }  /**   * Unsubscribe from the cancel signal   */  unsubscribe(listener) {    if (!this._listeners) {      return;    }    const index = this._listeners.indexOf(listener);    if (index !== -1) {      this._listeners.splice(index, 1);    }  }  toAbortSignal() {    const controller = new AbortController();    const abort = (err) => {      controller.abort(err);    };    this.subscribe(abort);    controller.signal.unsubscribe = () => this.unsubscribe(abort);    return controller.signal;  }  /**   * Returns an object that contains a new `CancelToken` and a function that, when called,   * cancels the `CancelToken`.   */  static source() {    let cancel;    const token = new CancelToken(function executor(c) {      cancel = c;    });    return {      token,      cancel    };  }}var CancelToken$1 = CancelToken;/** * Syntactic sugar for invoking a function and expanding an array for arguments. * * Common use case would be to use `Function.prototype.apply`. * *  ```js *  function f(x, y, z) {} *  var args = [1, 2, 3]; *  f.apply(null, args); *  ``` * * With `spread` this example can be re-written. * *  ```js *  spread(function(x, y, z) {})([1, 2, 3]); *  ``` * * @param {Function} callback * * @returns {Function} */function spread(callback) {  return function wrap(arr) {    return callback.apply(null, arr);  };}/** * Determines whether the payload is an error thrown by Axios * * @param {*} payload The value to test * * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false */function isAxiosError(payload) {  return utils$1.isObject(payload) && (payload.isAxiosError === true);}const HttpStatusCode = {  Continue: 100,  SwitchingProtocols: 101,  Processing: 102,  EarlyHints: 103,  Ok: 200,  Created: 201,  Accepted: 202,  NonAuthoritativeInformation: 203,  NoContent: 204,  ResetContent: 205,  PartialContent: 206,  MultiStatus: 207,  AlreadyReported: 208,  ImUsed: 226,  MultipleChoices: 300,  MovedPermanently: 301,  Found: 302,  SeeOther: 303,  NotModified: 304,  UseProxy: 305,  Unused: 306,  TemporaryRedirect: 307,  PermanentRedirect: 308,  BadRequest: 400,  Unauthorized: 401,  PaymentRequired: 402,  Forbidden: 403,  NotFound: 404,  MethodNotAllowed: 405,  NotAcceptable: 406,  ProxyAuthenticationRequired: 407,  RequestTimeout: 408,  Conflict: 409,  Gone: 410,  LengthRequired: 411,  PreconditionFailed: 412,  PayloadTooLarge: 413,  UriTooLong: 414,  UnsupportedMediaType: 415,  RangeNotSatisfiable: 416,  ExpectationFailed: 417,  ImATeapot: 418,  MisdirectedRequest: 421,  UnprocessableEntity: 422,  Locked: 423,  FailedDependency: 424,  TooEarly: 425,  UpgradeRequired: 426,  PreconditionRequired: 428,  TooManyRequests: 429,  RequestHeaderFieldsTooLarge: 431,  UnavailableForLegalReasons: 451,  InternalServerError: 500,  NotImplemented: 501,  BadGateway: 502,  ServiceUnavailable: 503,  GatewayTimeout: 504,  HttpVersionNotSupported: 505,  VariantAlsoNegotiates: 506,  InsufficientStorage: 507,  LoopDetected: 508,  NotExtended: 510,  NetworkAuthenticationRequired: 511,};Object.entries(HttpStatusCode).forEach(([key, value]) => {  HttpStatusCode[value] = key;});var HttpStatusCode$1 = HttpStatusCode;/** * Create an instance of Axios * * @param {Object} defaultConfig The default config for the instance * * @returns {Axios} A new instance of Axios */function createInstance(defaultConfig) {  const context = new Axios$1(defaultConfig);  const instance = bind(Axios$1.prototype.request, context);  // Copy axios.prototype to instance  utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});  // Copy context to instance  utils$1.extend(instance, context, null, {allOwnKeys: true});  // Factory for creating new instances  instance.create = function create(instanceConfig) {    return createInstance(mergeConfig(defaultConfig, instanceConfig));  };  return instance;}// Create the default instance to be exportedconst axios = createInstance(defaults$1);// Expose Axios class to allow class inheritanceaxios.Axios = Axios$1;// Expose Cancel & CancelTokenaxios.CanceledError = CanceledError;axios.CancelToken = CancelToken$1;axios.isCancel = isCancel;axios.VERSION = VERSION;axios.toFormData = toFormData;// Expose AxiosError classaxios.AxiosError = AxiosError;// alias for CanceledError for backward compatibilityaxios.Cancel = axios.CanceledError;// Expose all/spreadaxios.all = function all(promises) {  return Promise.all(promises);};axios.spread = spread;// Expose isAxiosErroraxios.isAxiosError = isAxiosError;// Expose mergeConfigaxios.mergeConfig = mergeConfig;axios.AxiosHeaders = AxiosHeaders$1;axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);axios.getAdapter = adapters.getAdapter;axios.HttpStatusCode = HttpStatusCode$1;axios.default = axios;module.exports = axios;//# sourceMappingURL=axios.cjs.map
 |