/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/extended-fetch@3.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
 */
"use strict";(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.ExtendedFetch=e.ExtendedFetch||{}))})(this,function(e){let t=function(e){return e.GET=`get`,e.POST=`post`,e.PUT=`put`,e.PATCH=`patch`,e.DELETE=`delete`,e}({});function n(...e){return e.reduce((e,t)=>Array.isArray(t)?e.concat(t):e,[])}function r(e,t={}){return Object.keys(e).reduce((t,r)=>{let i=t[r],a=e[r],o=Array.isArray(i)?n(i,a):a;return{...t,[r]:o}},t)}let i=e=>t=>Object.prototype.toString.call(t)===`[object ${e}]`,a=[`Array`,`AbortSignal`,`AbortController`,`String`,`Function`,`AsyncFunction`,`Number`,`Boolean`,`Symbol`,`Null`,`Promise`],o={Date:e=>e instanceof Date,Object:c,Headers:l},s=a.reduce((e,t)=>({...e,[t]:i(t)}),o);function c(e){return Object.prototype.toString.call(e)===`[object Object]`}function l(e){return Object.prototype.toString.call(e)===`[object Headers]`}function u(e){return function(t,n){if(s.Object(n)&&typeof n?.toJSON==`function`&&(n=n.toJSON()),!(typeof n==`object`&&n))return n;if(e.has(n))return`[Circular]`;e.add(n);let r=Array.isArray(n)?[]:{};for(let[t,i]of Object.entries(n))r[t]=u(e)(t,i);return e.delete(n),r}}function d(e,t){return JSON.stringify(e,u(new WeakSet),t)}let{warn:f}=console;function p(e){if(typeof e==`string`)return e;let t=`{}`;try{t=d(e)}catch(e){f(`ExtendedFetch: Failed to parse query ${String(e)}`)}return t}function m(e,t){return Object.keys(t).forEach(n=>{!Object.prototype.hasOwnProperty.call(e,n)||!s.Object(t[n])?e[n]=[e[n],t[n]].every(Array.isArray)?e[n].concat(t[n]):t[n]:m(e[n],t[n])}),e}function h(e,t){s.Headers(t)&&Object.entries(e).forEach(([e,n])=>{t.append(e,n)})}function g(e,t,n){return Array.isArray(n)&&n.length>0?_(e,t,n):Promise.resolve(e)}function _(e,t,n){let r=[`Function`,`AsyncFunction`,`Promise`],i=e=>r.some(t=>s[t](e));return n.reduce((e,n)=>i(n)?e.then(e=>n(e,t)).catch(()=>({})):Promise.resolve(e),Promise.resolve(e))}async function v({query:e,timeout:t,url:n,baseUrl:r,middleware:i={},params:a={},method:o=`GET`,format:c=`json`}){let l=e&&o!==`GET`,u={"Content-Type":`application/json`},{signal:d,headers:f={},...m}=a,h=await g(Object.assign({headers:{...u,...f}},l&&{body:p(e)},m),{headers:new Headers},i.request),_=s.Object(h)&&`baseUrl`in h&&typeof h?.baseUrl==`string`?h.baseUrl:null,v=typeof r==`string`||typeof _==`string`,y=`${v?_??r:``}${v&&!n?``:n??`/`}`,b=new AbortController,x=s.AbortSignal(d)?d:b.signal,S=s.Object(h),C=Object.assign({method:o,signal:x},S&&h);return s.Number(t)&&setTimeout(()=>b.abort(),t),fetch(y,C).then(async e=>{let t={ok:e.ok,headers:e.headers,status:e.status,request:{url:n,...C}},r=await e.clone()[c]().catch(()=>e.text()),a=Array.isArray(i.response)?await g(r,t,i.response):null,o=s.Object(a)&&`ok`in a,l=o?a.ok:e.ok,u=o&&a?.modifiedResponse?a.modifiedResponse:r;if(!l)throw e.formattedResponse=u,e;return u})}function y(e,t){return n=>{if(!s.Object(n))throw Error(`httpClient method options should be object`);let{middleware:i={},...a}=n;return v({...a,baseUrl:t?.baseUrl,middleware:r(i,t?.middleware),method:e.toUpperCase()})}}function b(e){return Object.values(t).reduce((t,n)=>({...t,[n]:y(n,e)}),{})}let x=`ExtendedFetch`;function S(e=!0){globalThis[x]?globalThis[x].isWaitingAuth=e:globalThis[x]={isWaitingAuth:e}}function C(e){let{url:t,method:n=`get`,errorCodes:r=[401],getTokens:i,setTokens:a,getHeaders:o,handleAuthError:c}=e;return async(...e)=>{let[l,u]=e,d=i(),f=typeof t==`function`?await t():t,m=s.Object(l)?l:{},g=r.some(e=>e===u.status),_=g?d.refreshToken:d.accessToken,v=typeof o==`function`?o(u):new Headers({Authorization:`Bearer ${_}`});if(!g)return{...m,headers:v};let y=n===`get`?null:p({refreshToken:d.refreshToken}),b=typeof c==`function`?c:()=>console.warn(`Failed to refresh authorization token`);return globalThis[x]&&globalThis[x]?.isWaitingAuth?Promise.resolve(m):(S(),fetch(f,{method:n,body:y,headers:v}).then(async e=>{let t=await e.json().catch(()=>({}));return e.ok||b(e),S(!1),t.accessToken&&h({Authorization:`Bearer ${t.accessToken}`},m?.headers),a(t),{...m,ok:e.ok}}).catch(b))}}e.applyHeaders=h,e.createHttpClient=b,e.createMethod=v,e.deepMerge=m,e.getBody=p,e.initAuthMiddleware=C,e.is=s,e.safeJsonStringify=d}),globalThis.ExtendedFetch?globalThis.ExtendedFetch.version=`3.0.0`:globalThis.ExtendedFetch={version:`3.0.0`};
//# sourceMappingURL=extended-fetch.umd.js.map