/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/extended-fetch@2.0.0/build/umd/extended-fetch.umd.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
(function(s,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define(["exports"],f):(s=typeof globalThis<"u"?globalThis:s||self,f(s.ExtendedFetch=s.ExtendedFetch||{}))})(this,function(s){"use strict";var f=(e=>(e.GET="get",e.POST="post",e.PUT="put",e.PATCH="patch",e.DELETE="delete",e))(f||{});function x(...e){return e.reduce((r,t)=>Array.isArray(t)?r.concat(t):r,[])}function G(e,r={}){return Object.keys(e).reduce((t,o)=>{const n=t[o],i=e[o],c=Array.isArray(n)?x(n,i):i;return{...t,[o]:c}},r)}const R=e=>r=>Object.prototype.toString.call(r)===`[object ${e}]`,W=["Array","AbortSignal","AbortController","String","Function","AsyncFunction","Number","Boolean","Symbol","Null","Promise"],z={Date:e=>e instanceof Date,Object:D,Headers:L},a=W.reduce((e,r)=>({...e,[r]:R(r)}),z);function D(e){return Object.prototype.toString.call(e)==="[object Object]"}function L(e){return Object.prototype.toString.call(e)==="[object Headers]"}function F(e){return function(r,t){if(a.Object(t)&&typeof t?.toJSON=="function"&&(t=t.toJSON()),!(t!==null&&typeof t=="object"))return t;if(e.has(t))return"[Circular]";e.add(t);const o=Array.isArray(t)?[]:{};for(const[n,i]of Object.entries(t))o[n]=F(e)(n,i);return e.delete(t),o}}function C(e,r){return JSON.stringify(e,F(new WeakSet),r)}const{warn:I}=console,K="ExtendedFetch";function k(e){if(typeof e=="string")return e;let r="{}";try{r=C(e)}catch(t){I(`${K}: Failed to parse query ${String(t)}`)}return r}function H(e,r){return Object.keys(r).forEach(t=>{if(!Object.prototype.hasOwnProperty.call(e,t)||!a.Object(r[t])){const o=[e[t],r[t]].every(Array.isArray);e[t]=o?e[t].concat(r[t]):r[t]}else H(e[t],r[t])}),e}function M(e,r){a.Headers(r)&&Object.entries(e).forEach(([t,o])=>{r.append(t,o)})}function P(e,r,t){return Array.isArray(t)&&t.length>0?Q(e,r,t):Promise.resolve(e)}function Q(e,r,t){const o=["Function","AsyncFunction","Promise"],n=i=>o.some(c=>a[c](i));return t.reduce((i,c)=>n(c)?i.then(h=>c(h,r)).catch(()=>({})):Promise.resolve(i),Promise.resolve(e))}async function v({query:e,timeout:r,url:t,baseUrl:o,middleware:n={},params:i={},method:c="GET",format:h="json"}){const E=e&&c!=="GET",T={"Content-Type":"application/json"},{signal:p,headers:g={},...S}=i,y=Object.assign({headers:{...T,...g}},E&&{body:k(e)},S),u=await P(y,{headers:new Headers},n.request),w=a.Object(u)&&"baseUrl"in u&&typeof u?.baseUrl=="string"?u.baseUrl:null,m=typeof o=="string"||typeof w=="string",$=`${m?w??o:""}${m&&!t?"":t??"/"}`,j=new AbortController,d=a.AbortSignal(p)?p:j.signal,A=a.Object(u),B=Object.assign({method:c,signal:d},A&&u);return a.Number(r)&&setTimeout(()=>j.abort(),r),fetch($,B).then(async l=>{const Z={ok:l.ok,headers:l.headers,status:l.status,request:{url:t,...B}},N=await l.clone()[h]().catch(()=>l.text()),O=Array.isArray(n.response)?await P(N,Z,n.response):null,J=a.Object(O)&&"ok"in O,_=J?O.ok:l.ok,q=J&&O?.modifiedResponse?O.modifiedResponse:N;if(!_)throw l.formattedResponse=q,l;return q})}function V(e,r){return t=>{if(!a.Object(t))throw new Error("httpClient method options should be object");const{middleware:o={},...n}=t;return v({...n,baseUrl:r?.baseUrl,middleware:G(o,r?.middleware),method:e.toUpperCase()})}}function X(e){return Object.values(f).reduce((r,t)=>({...r,[t]:V(t,e)}),{})}const b="ExtendedFetch";function U(e=!0){globalThis[b]?globalThis[b].isWaitingAuth=e:globalThis[b]={isWaitingAuth:e}}function Y(e){const{url:r,method:t="get",errorCodes:o=[401],getTokens:n,setTokens:i,getHeaders:c,handleAuthError:h}=e;return async(...E)=>{const[T,p]=E,g=n(),S=typeof r=="function"?await r():r,y=a.Object(T)?T:{},u=o.some(d=>d===p.status),w=u?g.refreshToken:g.accessToken,m=typeof c=="function"?c(p):new Headers({Authorization:`Bearer ${w}`});if(!u)return{...y,headers:m};const $=t!==f.GET?k({refreshToken:g.refreshToken}):null,j=typeof h=="function"?h:()=>console.warn("Failed to refresh authorization token");return globalThis[b]&&globalThis[b]?.isWaitingAuth?Promise.resolve(y):(U(),fetch(S,{method:t,body:$,headers:m}).then(async d=>{const A=await d.json().catch(()=>({}));return d.ok||j(d),U(!1),A.accessToken&&M({Authorization:`Bearer ${A.accessToken}`},y?.headers),i(A),{...y,ok:d.ok}}).catch(j))}}s.applyHeaders=M,s.createHttpClient=X,s.createMethod=v,s.deepMerge=H,s.getBody=k,s.initAuthMiddleware=Y,s.is=a,s.safeJsonStringify=C}),globalThis.ExtendedFetch?globalThis.ExtendedFetch.version="2.0.0":globalThis.ExtendedFetch={version:"2.0.0"};
//# sourceMappingURL=extended-fetch.umd.js.map
