kinetex 1.0.0-rc.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* kinetex v1.0.0
|
|
1
|
+
/* kinetex v1.0.0 | MIT | https://github.com/kinetexjs/kinetex */
|
|
2
2
|
var ts=Object.defineProperty;var rs=r=>{throw TypeError(r)};var qi=(r,e,t)=>e in r?ts(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var j=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(n){throw t=[n],n}};var fe=(r,e)=>{for(var t in e)ts(r,t,{get:e[t],enumerable:!0})};var h=(r,e,t)=>qi(r,typeof e!="symbol"?e+"":e,t),zi=(r,e,t)=>e.has(r)||rs("Cannot "+t);var ns=(r,e,t)=>e.has(r)?rs("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var Y=(r,e,t)=>(zi(r,e,"access private method"),t);function cs(r){return r}function ta(r){if(typeof r=="string"){for(let e of ea)if(e===r)return e}}var ea,_,tt,rt,Cr,Z,ne,vr,Pr,Ir,se,we=j(()=>{"use strict";ea=["ENETWORK","ETIMEOUT","EABORT","EHTTPSTATUS","ESIZELIMIT","EPARSE","EVALIDATION","EAUTH","EPROXY","EREDIRECT","EUNKNOWN"];_=class extends Error{constructor(t,n,s){super(t);h(this,"code");h(this,"request");h(this,"response");h(this,"cause");this.name="KinetexError",this.code=n,s?.request!==void 0&&(this.request=s.request),s?.response!==void 0&&(this.response=s.response),s?.cause!==void 0&&(this.cause=s.cause)}get isNetwork(){return this.code==="ENETWORK"}get isProxy(){return this.code==="EPROXY"}get isTimeout(){return this.code==="ETIMEOUT"}get isAbort(){return this.code==="EABORT"}get isHTTPError(){return this.code==="EHTTPSTATUS"}get status(){return this.response?.status??null}},tt=class extends _{constructor(t,n,s){super(`Response size limit exceeded: ${t} bytes read, limit is ${n} bytes`,"ESIZELIMIT",s!==void 0?{request:s}:{});h(this,"bytesRead");h(this,"limit");this.bytesRead=t,this.limit=n,this.name="SizeLimitError"}},rt=class extends _{constructor(e,t){super(`HTTP ${e.status} ${e.statusText} \u2014 ${e.url}`,"EHTTPSTATUS",{request:t,response:e}),this.name="HTTPStatusError"}get isClientError(){return(this.status??0)>=400&&(this.status??0)<500}get isServerError(){return(this.status??0)>=500}},Cr=class extends _{constructor(e){super("Request was aborted","EABORT",e!==void 0?{request:e}:{}),this.name="AbortError"}},Z=class extends _{constructor(e,t){super(e,"ENETWORK",t!==void 0?{request:t}:{}),this.name="NetworkError"}},ne=class extends _{constructor(e,t){super(e,"EVALIDATION",t!==void 0?{request:t}:{}),this.name="ValidationError"}},vr=class extends _{constructor(e,t){super(e,"EAUTH",t!==void 0?{request:t}:{}),this.name="AuthError"}},Pr=class extends _{constructor(e,t){super(e,"EPROXY",t!==void 0?{request:t}:{}),this.name="ProxyError"}},Ir=class extends _{constructor(e,t){super(e,"EREDIRECT",t!==void 0?{request:t}:{}),this.name="RedirectError"}},se=class extends _{constructor(t,n){super(`Request timed out after ${t}ms`,"ETIMEOUT",n!==void 0?{request:n}:{});h(this,"timeoutMs");this.timeoutMs=t,this.name="TimeoutError"}}});function ra(){if(zt)return zt;let r=globalThis;if(r.process?.hrtime)return zt=r.process,zt}function na(){if(Bt)return Bt;let r=globalThis;if(r.Buffer&&typeof r.Buffer.isBuffer=="function")return Bt=r.Buffer,Bt}function de(r,e={}){let t={...sa,...e};if(r.length>t.maxStringLength)return{success:!1,error:"STRING_TOO_LONG",message:`JSON string length exceeds limit of ${t.maxStringLength}`};let n=0,s=!1,o=!1;for(let i=0;i<r.length;i++){let a=r[i];if(o){o=!1;continue}if(a==="\\"){s&&(o=!0);continue}if(a==='"'){s=!s;continue}if(!s)if(a==="{"||a==="["){if(++n>t.maxDepth)return{success:!1,error:"DEPTH_EXCEEDED",message:`JSON depth exceeds limit of ${t.maxDepth}`}}else(a==="}"||a==="]")&&n--}try{let i=JSON.parse(r);return Lr(i,t,0)?!t.allowNonFinite&&Mr(i)?{success:!1,error:"NON_FINITE_NUMBER",message:"JSON contains NaN or Infinity values"}:{success:!0,value:i}:{success:!1,error:"VALIDATION_FAILED",message:"Parsed value exceeds size limits"}}catch{return{success:!1,error:"PARSE_ERROR",message:"Failed to parse JSON"}}}function Lr(r,e,t){if(t>e.maxDepth)return!1;if(r==null)return!0;if(typeof r=="string")return r.length<=e.maxStringLength;if(typeof r=="number"||typeof r=="boolean")return!0;if(Array.isArray(r))return r.length>e.maxArrayLength?!1:r.every(n=>Lr(n,e,t+1));if(typeof r=="object"){let n=Object.keys(r);if(n.length>e.maxObjectKeys||n.includes("__proto__"))return!1;if(n.includes("constructor")){let s=r.constructor;if(typeof s=="object"&&s!==null){let o=Object.keys(s);if(o.includes("prototype")||o.includes("__proto__"))return!1}}return n.every(s=>Lr(r[s],e,t+1))}return!0}function Mr(r){return typeof r=="number"&&!Number.isFinite(r)?!0:Array.isArray(r)?r.some(Mr):typeof r=="object"&&r!==null?Object.values(r).some(Mr):!1}function oa(r){let e=de(r);return e.success?e.value:r}function ia(r){return de(r,{maxDepth:16,maxStringLength:1*1024*1024,maxArrayLength:1e3,maxObjectKeys:100})}function aa(r){return r instanceof Uint8Array}function ca(r){return r instanceof ArrayBuffer}function la(r){return r!==null&&typeof r=="object"&&"getReader"in r&&typeof r.getReader=="function"}function ua(r){return r!==null&&typeof r=="object"&&"forEach"in r&&typeof r.forEach=="function"}function ha(r){return r!==null&&typeof r=="object"&&"aborted"in r&&typeof r.aborted=="boolean"}function fa(r){return r!==null&&typeof r=="object"&&Object.prototype.toString.call(r)==="[object Object]"}function da(r){return r!==null&&typeof r=="object"&&r.constructor?.name==="FormData"}function pa(r){return r!==null&&typeof r=="object"&&r.constructor?.name==="Blob"}function ma(r){return r!==null&&typeof r=="object"&&"has"in r&&typeof r.has=="function"}function st(r){return typeof r!="string"||r.length===0||r.length>4096?!1:ga.test(r)}function ot(r){if(typeof r!="string"||r.length>8192)return!1;for(let e=0;e<r.length;e++){let t=r.charCodeAt(e);if(t<32&&t!==9||t===127||t===13||t===10)return!1}return!0}function it(r,e=["http","https"]){try{let t=typeof r=="string"?new URL(r):r,n=t.protocol.replace(/:$/,"").toLowerCase();if(!e.some(o=>o.toLowerCase()===n)||ya.has(n))return!1;let s=t.hostname.toLowerCase();if(s.startsWith("[")&&s.endsWith("]")&&(s=s.slice(1,-1)),s==="0:0:0:0:0:0:0:1"&&(s="::1"),s==="localhost"||s==="0.0.0.0"||wa.some(o=>o.test(s))||t.hostname.includes("..")||t.pathname.includes("..")||t.hostname.length>253||t.href.length>8192)return!1;if(t.port){let o=parseInt(t.port,10);if(isNaN(o)||o<1||o>65535)return!1}return!0}catch{return!1}}function nt(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map(t=>nt(t));if(r instanceof Date)return new Date(r.getTime());if(r instanceof Uint8Array)return new Uint8Array(r);if(r instanceof Map){let t=new Map;return r.forEach((n,s)=>t.set(s,nt(n))),t}if(r instanceof Set){let t=new Set;return r.forEach(n=>t.add(nt(n))),t}let e={};for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=nt(r[t]));return e}function ba(r,e){let t=new Error(r);return Object.assign(t,e),t}function xa(r){if(r instanceof Error){let e={};for(let[n,s]of Object.entries(r))n!=="message"&&n!=="name"&&n!=="stack"&&(e[n]=s);let t=Object.keys(e).length>0?` | ${JSON.stringify(e)}`:"";return`${r.name}: ${r.message}${t}`}return String(r)}function _a(r){if(typeof r!="string"||r.length>2048)return null;try{let e=new URL(r);return it(e)?(e.username="",e.password="",e.toString()):null}catch{return null}}function Sa(){let r=ra();if(r?.hrtime){let[t,n]=r.hrtime();return t*1e3+n/1e6}return typeof globalThis.Bun<"u",Date.now()}function Ta(r,e){return e?.aborted?Promise.reject(Or()):new Promise((t,n)=>{let s=()=>{clearTimeout(o),n(Or())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e&&e.addEventListener("abort",s,{once:!0})})}function Dr(r){if(r.length===0)return new Uint8Array(0);let e=r.reduce((s,o)=>s+o.byteLength,0),t=new Uint8Array(e),n=0;for(let s of r)t.set(s,n),n+=s.byteLength;return t}function Ea(r){if(r instanceof Uint8Array)return r.slice();if(r instanceof ArrayBuffer)return new Uint8Array(r);let e=na();return e&&e.isBuffer(r)?new Uint8Array(r):typeof r=="string"?new TextEncoder().encode(r):null}function Ft(r){if(r.byteLength<=24576){let n="";for(let s=0;s<r.byteLength;s++)n+=String.fromCharCode(r[s]);return btoa(n)}let t=[];for(let n=0;n<r.byteLength;n+=24576){let s=r.subarray(n,n+24576),o="";for(let i=0;i<s.byteLength;i++)o+=String.fromCharCode(s[i]);t.push(btoa(o))}return t.map((n,s)=>s<t.length-1?n.replace(/=+$/,""):n).join("")}function Nr(...r){let e=r.filter(s=>s!=null);if(e.length===0)return;if(e.length===1)return e[0];if(e.some(s=>s.aborted)){let s=new AbortController;return s.abort(),s.signal}let t=new AbortController,n=()=>{for(let s of e)s.removeEventListener("abort",n);t.abort(Or())};t.signal.addEventListener("abort",()=>{for(let s of e)s.removeEventListener("abort",n)},{once:!0});for(let s of e)s.addEventListener("abort",n,{once:!0});return t.signal}function Ur(r){if(!(r instanceof Error))return!1;if(r.name==="AbortError")return!0;let e=r;return e.code==="ECONNRESET"||e.code==="ECONNABORTED"||r instanceof DOMException&&r.name==="AbortError"}function Oe(r){let e=new Uint8Array(r);if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(e);else{let t=typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):"";if(t.length>=r*2)return t.slice(0,r*2);for(let n=0;n<e.length;n++)e[n]=Math.floor(Math.random()*256)}return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}function Or(){if(typeof DOMException<"u")return new DOMException("Aborted","AbortError");let r=new Error("Aborted");return r.name="AbortError",r}function $r(){if(ee)return ee;try{if(globalThis.process?.versions?.node)return ee="node",ee}catch{}return typeof globalThis.Deno<"u"?ee="deno":typeof globalThis.Bun<"u"?ee="bun":typeof window<"u"?ee="browser":typeof globalThis<"u"&&typeof globalThis.fetch=="function"?ee="edge":ee="unknown",ee}function Ra(){return $r()==="node"}function ka(){return $r()==="browser"}function Aa(){return typeof globalThis?.fetch=="function"}function at(r){let e={};return r.forEach((t,n)=>{e[n.toLowerCase()]=t}),e}var zt,Bt,sa,ga,ya,wa,ee,oe=j(()=>{"use strict";sa={maxDepth:32,maxStringLength:10*1024*1024,maxArrayLength:1e4,maxObjectKeys:1e3,allowNonFinite:!1};ga=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;ya=new Set(["file","ftp","gopher","data","javascript","dict","ldap","ldaps","rlogin","telnet","tn3270","imap","pop","smtp","nntp","news","ssh","git","svn","webcal","urn"]),wa=[/^127\./,/^10\./,/^192\.168\./,/^172\.(1[6-9]|2\d|3[01])\./,/^169\.254\./,/^0\./,/^::1$/i,/^fc00:/i,/^fd00:/i,/^fe80:/i,/^2001:db8:/i,/^::0?ffff:/i,/^0:0:0:0:0:ffff:/i,/^::ffff:127\./i,/^::ffff:10\./i,/^::ffff:192\.168\./i,/^::ffff:172\.(1[6-9]|2\d|3[01])\./i,/^::ffff:169\.254\./i,/^0:0:0:0:0:ffff:7f/i,/^::$/i];ee=null});var ys={};fe(ys,{CloudflareKVAdapter:()=>ct,HTTPCache:()=>ie,MemoryStorageAdapter:()=>be,TwoTierStorageAdapter:()=>lt,WebStorageAdapter:()=>Ne,createKVCache:()=>ms,createLocalStorageCache:()=>ds,createMemoryCache:()=>fs,createSessionStorageCache:()=>ps,createTwoTierCache:()=>gs,getAuthFingerprint:()=>Ue});function Ca(r){let e={noStore:!1,noCache:!1,mustRevalidate:!1,proxyRevalidate:!1,public:!1,private:!1,maxAge:null,sMaxAge:null,staleWhileRevalidate:null,staleIfError:null,immutable:!1};for(let t of r.split(",")){let n=t.trim(),s=n.indexOf("="),o=(s===-1?n:n.slice(0,s)).trim().toLowerCase(),i=s===-1?null:n.slice(s+1).trim().replace(/^"|"$/g,""),a=i!==null?parseInt(i,10):null;switch(o){case"no-store":e.noStore=!0;break;case"no-cache":e.noCache=!0;break;case"must-revalidate":e.mustRevalidate=!0;break;case"proxy-revalidate":e.proxyRevalidate=!0;break;case"public":e.public=!0;break;case"private":e.private=!0;break;case"immutable":e.immutable=!0;break;case"max-age":e.maxAge=a;break;case"s-maxage":e.sMaxAge=a;break;case"stale-while-revalidate":e.staleWhileRevalidate=a;break;case"stale-if-error":e.staleIfError=a;break;case"no-transform":break;case"only-if-cached":break;case"must-understand":break;default:break}}return e}function ls(r,e){return r?r.trim()==="*"?null:r.split(",").map(s=>s.trim().toLowerCase()).sort().map(s=>{let o=e[s]??e[s.toLowerCase()]??"";return`${s}=${o}`}).join(";"):""}function De(r){let e=["\0-","\x7F-\x9F"].join(""),t=new RegExp(`[${e}]`,"g");return r.replaceAll(t,"").replaceAll(/\s+/g," ").trim()}async function Ue(r){let e=["authorization","cookie","x-api-key","x-auth-token"],t=[];for(let i of e){let a=r[i.toLowerCase()];a&&t.push(`${i}=${a}`)}if(t.length===0)return"";let n=new TextEncoder().encode(t.join("|")),s=await crypto.subtle.digest("SHA-256",n);return`auth:${Array.from(new Uint8Array(s)).map(i=>i.toString(16).padStart(2,"0")).join("").slice(0,32)}`}async function va(r){try{let e=new URL(r.url),t=De(e.hostname),n=De(e.pathname);e.searchParams.sort();let s=De(e.search);e.hash="";let o=`${e.protocol}//${t}${e.port?":"+e.port:""}${n}${s}`,i=De(r.method.toUpperCase()),a=await Ue(r.headers??{}),c=`${i}:${o}`;return a?`${c}:${a}`:c}catch{let e=De(r.method.toUpperCase()),t=De(r.url),n=await Ue(r.headers??{}),s=`${e}:${t}`;return n?`${s}:${n}`:s}}function us(r,e,t){let n=r.headers["cache-control"]??r.headers["Cache-Control"]??"",s=Ca(n);if(t&&s.noStore)return{ttlMs:0,swrMs:0,staleOnError:0,shouldCache:!1};let o=s.sMaxAge??s.maxAge,i;if(o!==null){let l=parseInt(r.headers.age??r.headers.Age??"0",10)||0;i=Math.max(0,(o-l)*1e3)}else{let l=r.headers.expires??r.headers.Expires;if(l){let u=Date.parse(l);i=isNaN(u)?e:Math.max(0,u-Date.now())}else{let u=r.headers["last-modified"]??r.headers["Last-Modified"];if(u){let f=Date.parse(u);isNaN(f)?i=e:i=Math.min((Date.now()-f)*.1,e)}else i=e}}s.immutable&&i>0&&(i=365*24*60*60*1e3);let a=s.staleWhileRevalidate!==null?s.staleWhileRevalidate*1e3:0,c=s.staleIfError!==null?s.staleIfError*1e3:0;return{ttlMs:i,swrMs:a,staleOnError:c,shouldCache:i>0||a>0}}function Wt(r){return{...r,response:hs(r.response),tags:[...r.tags]}}function hs(r){return{...r,headers:{...r.headers},body:r.body instanceof Uint8Array?new Uint8Array(r.body):r.body}}function Pa(r){return r?typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength:0}function fs(r){return new ie({...r,storage:new be})}function ds(r,e){if(typeof localStorage>"u")throw new Error("localStorage is not available");return new ie({...e,storage:new Ne(localStorage,r)})}function ps(r,e){if(typeof sessionStorage>"u")throw new Error("sessionStorage is not available");return new ie({...e,storage:new Ne(sessionStorage,r)})}function ms(r,e){return new ie({...e,storage:new ct(r)})}function gs(r,e){return new ie({...e,storage:new lt(r)})}var be,Ne,ct,lt,Hr,jr,ie,ut=j(()=>{"use strict";oe();be=class{constructor(){h(this,"store",new Map)}get(e){return Promise.resolve(this.store.get(e)??null)}set(e,t){return this.store.set(e,t),Promise.resolve()}delete(e){return this.store.delete(e),Promise.resolve()}keys(){return Promise.resolve(Array.from(this.store.keys()))}clear(){return this.store.clear(),Promise.resolve()}get size(){return this.store.size}},Ne=class{constructor(e,t="hc:"){h(this,"storage");h(this,"prefix");this.storage=e,this.prefix=t}get(e){try{let t=this.storage.getItem(this.prefix+e);if(!t)return Promise.resolve(null);let n=de(t,{maxDepth:32});return Promise.resolve(n.success&&n.value!==void 0?n.value:null)}catch{return Promise.resolve(null)}}set(e,t){try{return this.storage.setItem(this.prefix+e,JSON.stringify(t)),Promise.resolve(!0)}catch(n){return n instanceof Error&&(n.name==="QuotaExceededError"||n.name==="NS_ERROR_DOM_QUOTA_REACHED")&&console.warn("[kinetex] WebStorageAdapter: storage quota exceeded. Entry was NOT cached. Consider reducing maxBodySizeBytes or using a different storage adapter."),Promise.resolve(!1)}}delete(e){return this.storage.removeItem(this.prefix+e),Promise.resolve()}keys(){let e=[];for(let t=0;t<this.storage.length;t++){let n=this.storage.key(t);n?.startsWith(this.prefix)&&e.push(n.slice(this.prefix.length))}return Promise.resolve(e)}clear(){let e=[];for(let t=0;t<this.storage.length;t++){let n=this.storage.key(t);n?.startsWith(this.prefix)&&e.push(n)}for(let t of e)this.storage.removeItem(t);return Promise.resolve()}},ct=class{constructor(e,t="hc:"){h(this,"kv");h(this,"prefix");this.kv=e,this.prefix=t}async get(e){return await this.kv.get(this.prefix+e,"json")}async set(e,t){let n=t.expiresAt===1/0?void 0:Math.max(1,Math.ceil((t.expiresAt-Date.now())/1e3));await this.kv.put(this.prefix+e,JSON.stringify(t),{...n!==void 0?{expirationTtl:n}:{}})}async delete(e){await this.kv.delete(this.prefix+e)}async keys(){return(await this.kv.list({prefix:this.prefix})).keys.map(t=>t.name.slice(this.prefix.length))}async clear(){let e=await this.keys();await Promise.all(e.map(t=>this.kv.delete(this.prefix+t)))}},lt=class{constructor(e){h(this,"l2");h(this,"l1",new be);this.l2=e}async get(e){let t=await this.l1.get(e);if(t)return t;let n=await this.l2.get(e);return n&&await this.l1.set(e,n),n}async set(e,t){await Promise.all([this.l1.set(e,t),this.l2.set(e,t)])}async delete(e){await Promise.all([this.l1.delete(e),this.l2.delete(e)])}async keys(){return await this.l2.keys()}async clear(){await Promise.all([this.l1.clear(),this.l2.clear()])}};Hr=class{constructor(e,t=null,n=null){h(this,"key");h(this,"prev");h(this,"next");this.key=e,this.prev=t,this.next=n}},jr=class{constructor(){h(this,"map",new Map);h(this,"head",null);h(this,"tail",null)}touch(e){let t=this.map.get(e);if(t)this._unlink(t),this._prepend(t);else{let n=new Hr(e);this.map.set(e,n),this._prepend(n)}}evict(){if(!this.tail)return null;let e=this.tail.key;return this._unlink(this.tail),this.map.delete(e),e}remove(e){let t=this.map.get(e);t&&(this._unlink(t),this.map.delete(e))}clear(){this.map.clear(),this.head=null,this.tail=null}get size(){return this.map.size}_prepend(e){e.prev=null,e.next=this.head,this.head&&(this.head.prev=e),this.head=e,this.tail||(this.tail=e)}_unlink(e){e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=null,e.next=null}},ie=class{constructor(e={}){h(this,"cfg");h(this,"storage");h(this,"lru",new jr);h(this,"tagIndex",new Map);h(this,"swrInFlight",new Set);h(this,"stats",{hits:0,misses:0,staleHits:0,errors:0,evictions:0,totalEntries:0,totalSizeBytes:0,hitRate:0});this.cfg={maxEntries:e.maxEntries??500,maxSizeBytes:e.maxSizeBytes??50*1024*1024,maxBodySizeBytes:e.maxBodySizeBytes??5*1024*1024,defaultTtlMs:e.defaultTtlMs??6e4,maxAbsoluteAgeMs:e.maxAbsoluteAgeMs??10080*60*1e3,honorCacheControl:e.honorCacheControl??!0,cacheMethods:e.cacheMethods??["GET","HEAD"],cacheStatuses:e.cacheStatuses??[200,203,204,206,300,301,304,404,405,410,414,501],cacheKey:e.cacheKey??va,storage:e.storage??new be,namespace:e.namespace??""},(this.cfg.defaultTtlMs===1/0||this.cfg.defaultTtlMs>365*24*60*60*1e3)&&(console.warn(`[Kinetex Cache] Capping defaultTtlMs from ${this.cfg.defaultTtlMs}ms to 1 year (${365*24*60*60*1e3}ms)`),this.cfg.defaultTtlMs=365*24*60*60*1e3),this.storage=this.cfg.storage}async get(e){if(!this._isCacheable(e.method))return null;let t=await this._key(e),n=await this.storage.get(t);if(!n)return this.stats.misses++,this._updateHitRate(),null;if(n.varyKey!==null&&n.varyKey!==""){let i=ls(n.response.headers.vary??n.response.headers.Vary??"",e.headers);if(i===null||i!==n.varyKey)return this.stats.misses++,this._updateHitRate(),null}let s=Date.now();return s-n.createdAt>this.cfg.maxAbsoluteAgeMs?(await this._delete(t,n),this.stats.misses++,this._updateHitRate(),null):n.expiresAt===1/0||n.expiresAt>s?(this.stats.hits++,this.lru.touch(t),this._updateHitRate(),{entry:Wt(n),stale:!1}):n.staleUntil>s?(this.stats.staleHits++,this.lru.touch(t),this._updateHitRate(),{entry:Wt(n),stale:!0}):n.staleOnError>s?(this.stats.staleHits++,this._updateHitRate(),{entry:Wt(n),stale:!0}):(await this._delete(t,n),this.stats.misses++,this._updateHitRate(),null)}async set(e,t,n={}){if(!this._isCacheable(e.method)||!this.cfg.cacheStatuses.includes(t.status))return!1;let{ttlMs:s,swrMs:o,staleOnError:i,shouldCache:a}=n.ttlMs!==void 0?{ttlMs:n.ttlMs,swrMs:0,staleOnError:0,shouldCache:!0}:us(t,this.cfg.defaultTtlMs,this.cfg.honorCacheControl);if(!a&&!n.force)return!1;let c=Pa(t.body);if(c>this.cfg.maxBodySizeBytes)return!1;let l=Date.now(),u=this.cfg.maxAbsoluteAgeMs,f=Math.min(s===1/0?u:s,u);if(f<=0&&!n.force)return!1;let d=t.headers.vary??t.headers.Vary??null,p=d?ls(d,e.headers):"";if(p===null)return!1;let g=n.tags??[],m={response:hs(t),createdAt:l,expiresAt:f===1/0?1/0:l+f,staleUntil:l+f+o,staleOnError:l+f+i,etag:t.headers.etag??t.headers.ETag??null,lastModified:t.headers["last-modified"]??t.headers["Last-Modified"]??null,varyKey:p,tags:g,size:c+256},y=await this._key(e);if(await this._ensureCapacity(m.size),await this.storage.set(y,m)===!1)return!1;this.lru.touch(y),this.stats.totalEntries++,this.stats.totalSizeBytes+=m.size;for(let x of g){let S=this.tagIndex.get(x)??new Set;S.add(y),this.tagIndex.set(x,S)}return!0}buildConditionalHeaders(e){let t={};return e.etag&&(t["if-none-match"]=e.etag),e.lastModified&&(t["if-modified-since"]=e.lastModified),t}async revalidate(e,t){let n=await this._key(e),s=await this.storage.get(n);if(!s)return null;let o={...s.response.headers,...t.headers},i={...s.response,headers:o},{ttlMs:a,swrMs:c,staleOnError:l}=us(i,this.cfg.defaultTtlMs,this.cfg.honorCacheControl),u=Date.now(),f=Math.min(a===1/0?this.cfg.maxAbsoluteAgeMs:a,this.cfg.maxAbsoluteAgeMs),d={...s,response:i,createdAt:u,expiresAt:f<=0?u:u+f,staleUntil:u+f+c,staleOnError:u+f+l,etag:o.etag??o.ETag??s.etag,lastModified:o["last-modified"]??o["Last-Modified"]??s.lastModified};return await this.storage.set(n,d),this.lru.touch(n),Wt(d)}async markSWRInFlight(e){let t=await this._key(e);return this.swrInFlight.has(t)?!1:(this.swrInFlight.add(t),!0)}async clearSWRInFlight(e){let t=await this._key(e);this.swrInFlight.delete(t)}async isSWRInFlight(e){let t=await this._key(e);return this.swrInFlight.has(t)}async delete(e){let t=await this._key(e),n=await this.storage.get(t);return n?(await this._delete(t,n),!0):!1}async invalidateByURL(e){let t=await this.storage.keys(),n=0;for(let s of t){let o=this.cfg.namespace?s.startsWith(this.cfg.namespace+":")?s.slice(this.cfg.namespace.length+1):null:s;if(o===null)continue;let i=o.indexOf(":");if(i===-1)continue;let a=o.slice(i+1),c=a.lastIndexOf(":auth:"),l=c!==-1?a.slice(0,c):a,u=e.endsWith("/")?e.slice(0,-1):e;if((l.endsWith("/")?l.slice(0,-1):l).startsWith(u)){let d=await this.storage.get(s);await this._delete(s,d??void 0),n++}}return n}async invalidateByTag(e){let t=this.tagIndex.get(e);if(!t||t.size===0)return 0;let n=0;for(let s of[...t]){let o=await this.storage.get(s);await this._delete(s,o??void 0),n++}return this.tagIndex.delete(e),n}async clear(){await this.storage.clear(),this.lru.clear(),this.tagIndex.clear(),this.swrInFlight.clear(),this.stats.totalEntries=0,this.stats.totalSizeBytes=0}async warm(e){for(let{req:t,res:n,tags:s}of e)await this.set(t,n,{...s!==void 0?{tags:s}:{},force:!0})}getStats(){return{...this.stats}}resetStats(){this.stats={hits:0,misses:0,staleHits:0,errors:0,evictions:0,totalEntries:0,totalSizeBytes:0,hitRate:0}}async serialize(){let e=await this.storage.keys(),t=[],n=Date.now();for(let s of e){let o=await this.storage.get(s);o&&(o.expiresAt!==1/0&&o.expiresAt<n||t.push([s,o]))}return JSON.stringify({version:1,entries:t})}async deserialize(e){let t=de(e,{maxDepth:32});if(!t.success)throw new Error("[kinetex] HTTPCache.deserialize: invalid JSON");let n=t.value;if(typeof n!="object"||n===null||!("version"in n)||!("entries"in n)||n.version!==1||!Array.isArray(n.entries))throw new Error("[kinetex] HTTPCache.deserialize: unexpected format (expected {version:1, entries:[\u2026]})");let{entries:s}=n,o=Date.now();for(let i of s){if(!Array.isArray(i)||i.length!==2)continue;let[a,c]=i;if(typeof a!="string"||a.length===0||a.length>2048)continue;let l=null;try{typeof c=="object"&&c!==null&&typeof c.createdAt=="number"&&typeof c.expiresAt=="number"&&typeof c.staleUntil=="number"&&typeof c.staleOnError=="number"&&typeof c.size=="number"&&Array.isArray(c.tags)&&c.tags.every(d=>typeof d=="string")&&(l=c)}catch{}if(!l)continue;let u=c;if(!(u.expiresAt!==1/0&&u.expiresAt<o)&&!(o-u.createdAt>this.cfg.maxAbsoluteAgeMs)&&!(u.size>this.cfg.maxBodySizeBytes+512)){await this.storage.set(a,u),this.lru.touch(a),this.stats.totalEntries++,this.stats.totalSizeBytes+=u.size;for(let f of u.tags){let d=this.tagIndex.get(f)??new Set;d.add(a),this.tagIndex.set(f,d)}}}}async _key(e){let t=await this.cfg.cacheKey(e);return this.cfg.namespace?`${this.cfg.namespace}:${t}`:t}_isCacheable(e){return this.cfg.cacheMethods.includes(e.toUpperCase())}async _delete(e,t){if(await this.storage.delete(e),this.lru.remove(e),t){this.stats.totalEntries=Math.max(0,this.stats.totalEntries-1),this.stats.totalSizeBytes=Math.max(0,this.stats.totalSizeBytes-t.size);for(let n of t.tags)this.tagIndex.get(n)?.delete(e)}}async _ensureCapacity(e){for(;this.stats.totalEntries>=this.cfg.maxEntries;){let t=this.lru.evict();if(!t)break;let n=await this.storage.get(t);await this._delete(t,n??void 0),this.stats.evictions++}for(;this.stats.totalSizeBytes+e>this.cfg.maxSizeBytes;){let t=this.lru.evict();if(!t)break;let n=await this.storage.get(t);await this._delete(t,n??void 0),this.stats.evictions++}}_updateHitRate(){let e=this.stats.hits+this.stats.misses+this.stats.staleHits;this.stats.hitRate=e>0?(this.stats.hits+this.stats.staleHits)/e:0}}});function lc(r){if(typeof atob<"u")return atob(r);let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="";r=r.replace(/=+$/,"");for(let n=0;n<r.length;n+=4){let s=e.indexOf(r[n]),o=n+1<r.length?e.indexOf(r[n+1]):0,i=n+2<r.length?e.indexOf(r[n+2]):0,a=n+3<r.length?e.indexOf(r[n+3]):0;t+=String.fromCharCode(s<<2|o>>4),n+2<r.length&&(t+=String.fromCharCode((o&15)<<4|i>>2)),n+3<r.length&&(t+=String.fromCharCode((i&3)<<6|a))}return t}function Bs(r){if(typeof btoa<"u")return btoa(r);let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="";for(let n=0;n<r.length;n+=3){let s=r.charCodeAt(n),o=n+1<r.length?r.charCodeAt(n+1):0,i=n+2<r.length?r.charCodeAt(n+2):0;t+=e[s>>2],t+=e[(s&3)<<4|o>>4],t+=n+1<r.length?e[(o&15)<<2|i>>6]:"=",t+=n+2<r.length?e[i&63]:"="}return t}function Q(r){let e=new Map;for(let t of r.split(";")){let n=t.trim();if(!n)continue;let s=n.indexOf("=");if(s===-1)e.set(n.toLowerCase(),"");else{let o=n.slice(0,s).trim().toLowerCase(),i=n.slice(s+1).trim();i.startsWith('"')&&i.endsWith('"')&&(i=i.slice(1,-1)),e.set(o,i)}}return e}function Xt(r){return r.split(",").map(e=>{let t=e.trim().split(";"),n=(t[0]??"").trim(),s=1,o=new Map;for(let i=1;i<t.length;i++){let a=t[i].trim(),c=a.indexOf("=");if(c===-1)continue;let l=a.slice(0,c).trim().toLowerCase(),u=a.slice(c+1).trim();l==="q"?s=parseFloat(u)||0:o.set(l,u)}return{value:n,quality:s,params:o}}).filter(e=>e.value!=="").sort((e,t)=>t.quality-e.quality)}function hc(r){let e=r.match(/^([A-Za-z0-9_-]+)'([A-Za-z0-9_-]*)'(.+)$/);if(!e)return null;try{return decodeURIComponent(e[3])}catch{return null}}function an(r){if(!r)return null;let e=r.indexOf(";"),t=e===-1?r.trim():r.slice(0,e).trim(),n=t.indexOf("/");if(n===-1)return null;let s=t.slice(0,n).toLowerCase(),o=t.slice(n+1).toLowerCase();if(!s||!o)return null;let i=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;if(!i.test(s)||!i.test(o))return null;let a=e===-1?new Map:Q(r.slice(e));return{mediaType:`${s}/${o}`,type:s,subtype:o,charset:a.get("charset")??null,boundary:a.get("boundary")??null,params:a}}function Vs(r){let e=r.mediaType;if(r.charset&&(e+=`; charset=${r.charset}`),r.boundary&&(e+=`; boundary=${r.boundary}`),r.params&&r.params instanceof Map)r.params.forEach((t,n)=>{n==="charset"||n==="boundary"||(e+=`; ${n}=${t.includes(" ")?`"${t}"`:t}`)});else if(r.params&&typeof r.params=="object")for(let[t,n]of Object.entries(r.params))t==="charset"||t==="boundary"||(e+=`; ${t}=${n.includes(" ")?`"${n}"`:n}`);return e}function Js(r){if(!r)return null;let e=r.indexOf(";"),t=(e===-1?r:r.slice(0,e)).trim().toLowerCase(),n=e===-1?new Map:Q(r.slice(e)),s=null,o=n.get("filename*");o&&(s=hc(o)),s===null&&(s=n.get("filename")??null);let i=n.get("name")??null;return{type:t,filename:s,name:i,params:n}}function Qs(r){let e=r.type;if(r.name&&(e+=`; name="${r.name}"`),r.filename){e+=`; filename="${r.filename}"`;let t=encodeURIComponent(r.filename);t!==r.filename&&(e+=`; filename*=UTF-8''${t}`)}return e}function Gs(r){let e={noCache:!1,noStore:!1,noTransform:!1,onlyIfCached:!1,maxAge:null,maxStale:null,minFresh:null,staleIfError:null,public:!1,private:!1,mustRevalidate:!1,proxyRevalidate:!1,sMaxAge:null,immutable:!1,mustUnderstand:!1,staleWhileRevalidate:null,unknown:new Map};for(let t of r.split(",")){let n=t.trim(),s=n.indexOf("="),o=(s===-1?n:n.slice(0,s)).trim().toLowerCase(),i=s===-1?null:n.slice(s+1).trim().replace(/^"|"$/g,""),a=i!==null?parseInt(i,10):null;switch(o){case"no-cache":e.noCache=!0;break;case"no-store":e.noStore=!0;break;case"no-transform":e.noTransform=!0;break;case"only-if-cached":e.onlyIfCached=!0;break;case"public":e.public=!0;break;case"must-revalidate":e.mustRevalidate=!0;break;case"proxy-revalidate":e.proxyRevalidate=!0;break;case"immutable":e.immutable=!0;break;case"must-understand":e.mustUnderstand=!0;break;case"max-age":e.maxAge=a;break;case"max-stale":e.maxStale=a??1/0;break;case"min-fresh":e.minFresh=a;break;case"s-maxage":e.sMaxAge=a;break;case"stale-if-error":e.staleIfError=a;break;case"stale-while-revalidate":e.staleWhileRevalidate=a;break;case"private":e.private=i?i.split(",").map(c=>c.trim()):!0;break;default:e.unknown.set(o,i??!0)}}return e}function Xs(r){let e=[];if(r.noCache&&e.push("no-cache"),r.noStore&&e.push("no-store"),r.noTransform&&e.push("no-transform"),r.onlyIfCached&&e.push("only-if-cached"),r.public&&e.push("public"),r.mustRevalidate&&e.push("must-revalidate"),r.proxyRevalidate&&e.push("proxy-revalidate"),r.immutable&&e.push("immutable"),r.mustUnderstand&&e.push("must-understand"),r.maxAge!=null&&e.push(`max-age=${r.maxAge}`),r.maxStale!=null&&e.push(r.maxStale===1/0?"max-stale":`max-stale=${r.maxStale}`),r.minFresh!=null&&e.push(`min-fresh=${r.minFresh}`),r.sMaxAge!=null&&e.push(`s-maxage=${r.sMaxAge}`),r.staleIfError!=null&&e.push(`stale-if-error=${r.staleIfError}`),r.staleWhileRevalidate!=null&&e.push(`stale-while-revalidate=${r.staleWhileRevalidate}`),r.private&&e.push(Array.isArray(r.private)?`private=${r.private.join(", ")}`:"private"),r.unknown)for(let[t,n]of r.unknown)e.push(n===!0?t:`${t}=${n}`);return e.join(", ")}function tn(r){if(!r)return null;let e=r.indexOf(" ");if(e===-1)return{scheme:r.toLowerCase(),token:null,params:new Map,basic:null};let t=r.slice(0,e).toLowerCase(),n=r.slice(e+1).trim(),s=new Map,o=null,i=null;if(t==="basic"){o=n;try{let a=lc(n),c=a.indexOf(":");c!==-1&&(i={username:a.slice(0,c),password:a.slice(c+1)})}catch{}}else if(t==="bearer"||t==="token")o=n;else if(n.includes("="))for(let a of n.split(",")){let c=a.trim(),l=c.indexOf("=");if(l===-1)continue;let u=c.slice(0,l).trim().toLowerCase(),f=c.slice(l+1).trim();f.startsWith('"')&&f.endsWith('"')&&(f=f.slice(1,-1)),s.set(u,f)}else o=n;return{scheme:t,token:o,params:s,basic:i}}function rn(r){let e=[],t=[],n="",s=!1;for(let o=0;o<r.length;o++){let i=r[o];i==='"'&&(o===0||r[o-1]!=="\\")&&(s=!s),i===","&&!s?(t.push(n.trim()),n=""):n+=i}n.trim()&&t.push(n.trim());for(let o of t){if(!o)continue;let i=o.indexOf(" "),a=(i===-1?o:o.slice(0,i)).toLowerCase(),c=i===-1?"":o.slice(i+1),l=Q(c);e.push({scheme:a,realm:l.get("realm")??null,params:l})}return e}function fc(r){return`Bearer ${r}`}function dc(r,e){return`Basic ${Bs(`${r}:${e}`)}`}function cn(r){return Xt(r)}function Ys(r){return Xt(r)}function Zs(r){return Xt(r)}function pc(r){return r.trim()?Xt(r):[]}function mc(r,e){let t=cn(r);for(let{value:n}of t){if(n==="*/*")return e[0]??null;let[s]=n.split("/");if(n.endsWith("/*")){let o=e.find(i=>i.startsWith(s+"/"));if(o)return o}if(e.includes(n))return n}return null}function eo(r){let e=r.indexOf("=");if(e===-1)return null;let t=r.slice(0,e).trim().toLowerCase(),n=r.slice(e+1).split(",").map(s=>{let o=s.trim(),i=o.indexOf("-");if(i===-1)return null;let a=o.slice(0,i).trim(),c=o.slice(i+1).trim();return{start:a===""?null:parseInt(a,10),end:c===""?null:parseInt(c,10)}}).filter(s=>s!==null);return{unit:t,ranges:n}}function to(r){let e=r.match(/^(\S+)\s+(\*|\d+-\d+)\/(\*|\d+)$/);if(!e)return null;let t=e[1].toLowerCase(),n=e[2],s=e[3]==="*"?null:parseInt(e[3],10);if(n==="*")return{unit:t,start:null,end:null,total:s};let o=n.indexOf("-");return{unit:t,start:parseInt(n.slice(0,o),10),end:parseInt(n.slice(o+1),10),total:s}}function nn(r){let e=[],t=r.split(/,\s*(?=<)/);for(let n of t){let s=n.trim(),o=s.indexOf(">");if(!s.startsWith("<")||o===-1)continue;let i=s.slice(1,o),a=s.slice(o+1),c=Q(a);e.push({uri:i,rel:c.get("rel")??null,type:c.get("type")??null,hreflang:c.get("hreflang")??null,title:c.get("title")??null,media:c.get("media")??null,params:c})}return e}function gc(r){return r.map(e=>{let t=`<${e.uri}>`;e.rel&&(t+=`; rel="${e.rel}"`),e.type&&(t+=`; type="${e.type}"`),e.hreflang&&(t+=`; hreflang="${e.hreflang}"`),e.title&&(t+=`; title="${e.title}"`),e.media&&(t+=`; media="${e.media}"`);let n=e.params instanceof Map?[...e.params.entries()]:Object.entries(e.params??{});for(let[s,o]of n)["rel","type","hreflang","title","media"].includes(s)||(t+=`; ${s}="${o}"`);return t}).join(", ")}function ro(r){let e={by:null,for:[],host:null,proto:null};for(let t of r.split(",")){let n=Q(t.trim());n.has("by")&&(e.by=n.get("by")),n.has("for")&&e.for.push(n.get("for")),n.has("host")&&(e.host=n.get("host")),n.has("proto")&&(e.proto=n.get("proto"))}return e}function ln(r){let e=r.get(w.Forwarded);if(e)return ro(e);let t=r.get(w.XForwardedFor),n=r.get(w.XForwardedHost),s=r.get(w.XForwardedProto);return{by:null,for:t?t.split(",").map(o=>o.trim()):[],host:n??null,proto:s??null}}function no(r){let e=ln(r);return e.for.length>0?e.for[0]:r.get(w.XRealIP)}function so(r){let e=r.trim();if(/^\d+$/.test(e))return{date:null,delay:parseInt(e,10)};let t=Date.parse(e);return isNaN(t)?{date:null,delay:null}:{date:new Date(t),delay:null}}function yc(r){let e=[],t="",n=!1;for(let s=0;s<r.length;s++){let o=r[s];o==='"'&&(s===0||r[s-1]!=="\\")&&(n=!n),o===","&&!n?(t.trim()&&e.push(t.trim()),t=""):t+=o}return t.trim()&&e.push(t.trim()),e.map(s=>{let o=s.match(/^(\d{3})\s+(\S+)\s+["']?([^"']+)["']?\s*(.*)$/);if(!o)return null;let i=o[1],a=o[2],c=o[3],l=o[4]??"",u=parseInt(i,10),f=(()=>{let d=l.trim().replace(/^"|"$/g,"");if(d){let p=Date.parse(d);if(!isNaN(p))return new Date(p)}})();return{code:u,agent:a,text:c,...f!==void 0?{date:f}:{}}}).filter(s=>s!==null)}function oo(r){let e=Q(";"+r),t=e.get("max-age");if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:{maxAge:n,includeSubDomains:e.has("includesubdomains"),preload:e.has("preload")}}function un(r){let e=`max-age=${r.maxAge}`;return r.includeSubDomains&&(e+="; includeSubDomains"),r.preload&&(e+="; preload"),e}function io(r){let e=new Map;for(let t of r.split(";")){let n=t.trim().split(/\s+/);if(n.length===0||!n[0])continue;let s=n[0].toLowerCase(),o=n.slice(1);e.set(s,o)}return e}function hn(r){let e=[];for(let[t,n]of r)e.push(n.length>0?`${t} ${n.join(" ")}`:t);return e.join("; ")}function ao(r){return r.split(",").map(e=>{let t=e.trim().split(";"),n=(t[0]??"").trim(),s=Q(t.slice(1).join(";")),o=s.get("dur");return{name:n,duration:o!==void 0?parseFloat(o):null,description:s.get("desc")??null}}).filter(e=>e.name!=="")}function wc(r){return r.map(e=>{let t=e.name;return e.duration!==null&&(t+=`;dur=${e.duration}`),e.description!==null&&(t+=`;desc="${e.description}"`),t}).join(", ")}function co(r){if(r.trim()==="clear")return[];let e=[];for(let t of r.split(",")){let n=t.trim(),s=n.indexOf("=");if(s===-1)continue;let o=n.slice(0,s).trim().replace(/^"|"$/g,""),i=n.slice(s+1).trim(),a=i.indexOf(";"),c=a!==-1?Q(";"+i.slice(a+1)):new Map,l=(a!==-1?i.slice(0,a):i).replace(/^"|"$/g,""),u,f;if(l.startsWith("[")){let d=l.indexOf("]");if(d===-1)u=l,f=443;else{u=l.slice(0,d+1);let p=l.slice(d+2);f=p?parseInt(p,10):443}}else{let d=l.lastIndexOf(":");u=d===-1?l:l.slice(0,d),f=d===-1?443:parseInt(l.slice(d+1),10)}e.push({protocol:o,host:u,port:f,maxAge:c.has("ma")?parseInt(c.get("ma"),10):null,persist:c.has("persist")&&c.get("persist")==="1"})}return e}function bc(r){let e=new le;for(let[t,n]of Object.entries(r))if(n!==void 0)if(Array.isArray(n))for(let s of n)e.append(t,s);else e.append(t,n);return e}function xc(r){let e={};return r.forEach((t,n)=>{let o=r.getAll(n);e[n]=o.length===1?o[0]:[...o]}),e}function _c(r){return new le(r)}function Sc(r={}){let e=new le;if(r.hsts!==!1){let t=r.hsts===!0||r.hsts===void 0?{maxAge:31536e3,includeSubDomains:!0,preload:!1}:r.hsts;e.set(w.StrictTransportSecurity,un(t))}if(r.csp){let t=typeof r.csp=="string"?r.csp:hn(r.csp);e.set(w.ContentSecurityPolicy,t)}return e.set(w.XFrameOptions,r.frameOptions??"DENY"),r.noSniff!==!1&&e.set(w.XContentTypeOptions,"nosniff"),e.set(w.ReferrerPolicy,r.referrer??"strict-origin-when-cross-origin"),r.permissions&&e.set(w.PermissionsPolicy,r.permissions),r.coep&&e.set(w.CrossOriginEmbedderPolicy,r.coep),r.coop&&e.set(w.CrossOriginOpenerPolicy,r.coop),r.corp&&e.set(w.CrossOriginResourcePolicy,r.corp),e}function Tc(r){let e=new le,t=Array.isArray(r.origin)?r.origin.join(", "):r.origin;return e.set(w.AccessControlAllowOrigin,t),r.methods?.length&&e.set(w.AccessControlAllowMethods,r.methods.join(", ")),r.allowHeaders?.length&&e.set(w.AccessControlAllowHeaders,r.allowHeaders.join(", ")),r.exposeHeaders?.length&&e.set(w.AccessControlExposeHeaders,r.exposeHeaders.join(", ")),r.credentials&&e.set(w.AccessControlAllowCredentials,"true"),r.maxAge!=null&&e.set(w.AccessControlMaxAge,String(r.maxAge)),e}function Ec(r){return new _e(r)}function Rc(r){return new _e(r,"request")}function kc(r){return new _e(r,"response")}function Ac(r){return new _e(r,"immutable")}var xe,w,sn,on,He,zs,uc,U,Fs,Yr,Zr,en,Ws,Ks,le,_e,mt=j(()=>{"use strict";oe();w={ContentType:"content-type",ContentLength:"content-length",ContentEncoding:"content-encoding",ContentLanguage:"content-language",ContentLocation:"content-location",ContentDisposition:"content-disposition",ContentRange:"content-range",ContentMD5:"content-md5",TransferEncoding:"transfer-encoding",TrailingHeader:"trailer",CacheControl:"cache-control",Pragma:"pragma",Expires:"expires",Age:"age",ETag:"etag",LastModified:"last-modified",Vary:"vary",IfMatch:"if-match",IfNoneMatch:"if-none-match",IfModifiedSince:"if-modified-since",IfUnmodifiedSince:"if-unmodified-since",IfRange:"if-range",Host:"host",Origin:"origin",Referer:"referer",UserAgent:"user-agent",From:"from",TE:"te",Expect:"expect",MaxForwards:"max-forwards",Accept:"accept",AcceptEncoding:"accept-encoding",AcceptLanguage:"accept-language",AcceptCharset:"accept-charset",AcceptRanges:"accept-ranges",AcceptPatch:"accept-patch",Authorization:"authorization",ProxyAuthorization:"proxy-authorization",WWWAuthenticate:"www-authenticate",ProxyAuthenticate:"proxy-authenticate",AuthenticationInfo:"authentication-info",Range:"range",Cookie:"cookie",SetCookie:"set-cookie",Location:"location",Via:"via",Forwarded:"forwarded",XForwardedFor:"x-forwarded-for",XForwardedHost:"x-forwarded-host",XForwardedProto:"x-forwarded-proto",XForwardedPort:"x-forwarded-port",XRealIP:"x-real-ip",Connection:"connection",KeepAlive:"keep-alive",Upgrade:"upgrade",AccessControlAllowOrigin:"access-control-allow-origin",AccessControlAllowMethods:"access-control-allow-methods",AccessControlAllowHeaders:"access-control-allow-headers",AccessControlExposeHeaders:"access-control-expose-headers",AccessControlMaxAge:"access-control-max-age",AccessControlAllowCredentials:"access-control-allow-credentials",AccessControlRequestMethod:"access-control-request-method",AccessControlRequestHeaders:"access-control-request-headers",Date:"date",RetryAfter:"retry-after",Allow:"allow",Server:"server",ServerTiming:"server-timing",TimingAllowOrigin:"timing-allow-origin",SecWebSocketKey:"sec-websocket-key",SecWebSocketAccept:"sec-websocket-accept",SecWebSocketProtocol:"sec-websocket-protocol",SecWebSocketVersion:"sec-websocket-version",SecWebSocketExtensions:"sec-websocket-extensions",SecFetchSite:"sec-fetch-site",SecFetchMode:"sec-fetch-mode",SecFetchUser:"sec-fetch-user",SecFetchDest:"sec-fetch-dest",StrictTransportSecurity:"strict-transport-security",ContentSecurityPolicy:"content-security-policy",ContentSecurityPolicyRO:"content-security-policy-report-only",XContentTypeOptions:"x-content-type-options",XFrameOptions:"x-frame-options",XXSSProtection:"x-xss-protection",ReferrerPolicy:"referrer-policy",PermissionsPolicy:"permissions-policy",CrossOriginOpenerPolicy:"cross-origin-opener-policy",CrossOriginEmbedderPolicy:"cross-origin-embedder-policy",CrossOriginResourcePolicy:"cross-origin-resource-policy",NEL:"nel",ReportTo:"report-to",ReportingEndpoints:"reporting-endpoints",Link:"link",AltSvc:"alt-svc",AltUsed:"alt-used",Priority:"priority",EarlyData:"early-data",PushPolicy:"push-policy",AcceptPushPolicy:"accept-push-policy",XRequestID:"x-request-id",XCorrelationID:"x-correlation-id",XRateLimitLimit:"x-ratelimit-limit",XRateLimitRemaining:"x-ratelimit-remaining",XRateLimitReset:"x-ratelimit-reset",XPoweredBy:"x-powered-by",XRequestedWith:"x-requested-with"};sn=st,on=ot,He=new Set(["set-cookie","www-authenticate","proxy-authenticate"]),zs=new Set(["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]),uc=new Set(["set-cookie","set-cookie2"]),le=class{constructor(e,t="none"){ns(this,U);h(this,"map",new Map);h(this,"guard");this.guard=t,e!=null&&Y(this,U,Fs).call(this,e)}append(e,t){Y(this,U,en).call(this,e);let n=Y(this,U,Yr).call(this,e),s=Y(this,U,Zr).call(this,t),o=this.map.get(n);o?o.values.push(s):this.map.set(n,{name:e,values:[s]})}delete(e){Y(this,U,Ks).call(this,e),this.map.delete(e.toLowerCase())}get(e){let t=this.map.get(e.toLowerCase());return t?He.has(e.toLowerCase())?t.values[0]??null:t.values.join(", "):null}getAll(e){return[...this.map.get(e.toLowerCase())?.values??[]]}has(e){return this.map.has(e.toLowerCase())}set(e,t){Y(this,U,Ws).call(this,e);let n=Y(this,U,Yr).call(this,e),s=Y(this,U,Zr).call(this,t);this.map.set(n,{name:e,values:[s]})}forEach(e,t){for(let[n,s]of this.map){let o=He.has(n)?s.values:[s.values.join(", ")];for(let i of o)e.call(t,i,n,this)}}keys(){return this.map.keys()}*values(){for(let[e,t]of this.map)if(He.has(e))for(let n of t.values)yield n;else yield t.values.join(", ")}*entries(){for(let[e,t]of this.map)if(He.has(e))for(let n of t.values)yield[e,n];else yield[e,t.values.join(", ")]}[Symbol.iterator](){return this.entries()}get[Symbol.toStringTag](){return"HttpHeaders"}toObject(){let e={};for(let[t,n]of this.map){let s=n.values;e[t]=s.length===1?s[0]:[...s]}return e}toFlatObject(){let e={};for(let[t,n]of this.map)e[t]=He.has(t)?n.values[0]??"":n.values.join(", ");return e}toWebHeaders(){if(typeof Headers>"u")throw new Error("WHATWG Headers is not available in this runtime");let e=new Headers;for(let[t,n]of this.map)for(let s of n.values)e.append(t,s);return e}toHTTP1String(){let e=[];for(let[,t]of this.map)for(let n of t.values)e.push(`${t.name}: ${n}`);return e.join(`\r
|
|
3
3
|
`)}clone(e){return new xe(this,e??this.guard)}freeze(){return this.clone("immutable")}merge(e,t={}){let n=e instanceof xe?e:new xe(e);for(let[s,o]of n.map)if(t.append)for(let i of o.values)this.append(s,i);else this.map.set(s,{name:o.name,values:[...o.values]});return this}pick(...e){let t=new xe;for(let n of e){let s=n.toLowerCase(),o=this.map.get(s);o&&t.map.set(s,{name:o.name,values:[...o.values]})}return t}omit(...e){let t=this.clone();for(let n of e)t.map.delete(n.toLowerCase());return t}redact(...e){let t=this.clone();for(let n of e){let s=n.toLowerCase(),o=t.map.get(s);o&&t.map.set(s,{name:o.name,values:o.values.map(()=>"**REDACTED**")})}return t}diff(e){let t=new xe;for(let[n,s]of e.map){let o=this.get(n),i=He.has(n)?s.values[0]??"":s.values.join(", ");o!==i&&t.map.set(n,{name:s.name,values:[...s.values]})}return t}get size(){return this.map.size}};U=new WeakSet,Fs=function(e){if(e instanceof xe){for(let[t,n]of e.map)this.map.set(t,{name:n.name,values:[...n.values]});return}if(typeof Headers<"u"&&e instanceof Headers){e.forEach((t,n)=>this.append(n,t));return}if(Array.isArray(e)){for(let t of e){if(!Array.isArray(t)||t.length<2)throw new TypeError("Headers init sequence must contain [name, value] pairs");this.append(String(t[0]),String(t[1]))}return}if(typeof e=="object")for(let[t,n]of Object.entries(e))if(Array.isArray(n))for(let s of n)this.append(t,s);else this.append(t,String(n))},Yr=function(e){if(!sn(e))throw new TypeError(`Invalid header name: "${e}"`);return e.toLowerCase()},Zr=function(e){let t=e.trim();if(!on(t))throw new TypeError(`Invalid header value for: "${t}"`);return t},en=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&zs.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`);if(this.guard==="response"&&uc.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for response guard`)},Ws=function(e){Y(this,U,en).call(this,e)},Ks=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&zs.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`)};xe=le;_e=class extends le{get contentType(){let e=this.get(w.ContentType);return e?an(e):null}set contentType(e){if(e===null){this.delete(w.ContentType);return}if(typeof e=="string"){this.set(w.ContentType,e);return}this.set(w.ContentType,Vs(e))}get contentLength(){let e=this.get(w.ContentLength);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}set contentLength(e){if(e===null){this.delete(w.ContentLength);return}this.set(w.ContentLength,String(e))}get contentDisposition(){let e=this.get(w.ContentDisposition);return e?Js(e):null}set contentDisposition(e){if(e===null){this.delete(w.ContentDisposition);return}if(typeof e=="string"){this.set(w.ContentDisposition,e);return}this.set(w.ContentDisposition,Qs(e))}get cacheControl(){let e=this.get(w.CacheControl);return e?Gs(e):null}set cacheControl(e){if(e===null){this.delete(w.CacheControl);return}if(typeof e=="string"){this.set(w.CacheControl,e);return}this.set(w.CacheControl,Xs(e))}get authorization(){let e=this.get(w.Authorization);return e?tn(e):null}set authorization(e){if(e===null){this.delete(w.Authorization);return}this.set(w.Authorization,e)}get accept(){return cn(this.get(w.Accept)??"")}get acceptEncoding(){return Ys(this.get(w.AcceptEncoding)??"")}get acceptLanguage(){return Zs(this.get(w.AcceptLanguage)??"")}get range(){let e=this.get(w.Range);return e?eo(e):null}get contentRange(){let e=this.get(w.ContentRange);return e?to(e):null}get etag(){return this.get(w.ETag)}set etag(e){if(e===null){this.delete(w.ETag);return}let t=e.startsWith('"')||e.startsWith('W/"')?e:`"${e}"`;this.set(w.ETag,t)}get links(){let e=this.get(w.Link);return e?nn(e):[]}get retryAfter(){let e=this.get(w.RetryAfter);return e?so(e):null}get hsts(){let e=this.get(w.StrictTransportSecurity);return e?oo(e):null}set hsts(e){if(e===null){this.delete(w.StrictTransportSecurity);return}this.set(w.StrictTransportSecurity,un(e))}get csp(){let e=this.get(w.ContentSecurityPolicy);return e?io(e):null}set csp(e){if(e===null){this.delete(w.ContentSecurityPolicy);return}if(typeof e=="string"){this.set(w.ContentSecurityPolicy,e);return}this.set(w.ContentSecurityPolicy,hn(e))}get serverTiming(){let e=this.get(w.ServerTiming);return e?ao(e):[]}get clientIP(){return no(this)}get forwarded(){return ln(this)}get host(){return this.get(w.Host)}get origin(){return this.get(w.Origin)}get userAgent(){return this.get(w.UserAgent)}get location(){return this.get(w.Location)}get date(){let e=this.get(w.Date);if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get age(){let e=this.get(w.Age);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get vary(){let e=this.get(w.Vary);return e?e.split(",").map(t=>t.trim().toLowerCase()):[]}get xRequestID(){return this.get(w.XRequestID)}get xCorrelationID(){return this.get(w.XCorrelationID)}get xPoweredBy(){return this.get(w.XPoweredBy)}get xRequestedWith(){return this.get(w.XRequestedWith)}get xRateLimitLimit(){let e=this.get(w.XRateLimitLimit);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitRemaining(){let e=this.get(w.XRateLimitRemaining);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitReset(){let e=this.get(w.XRateLimitReset);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get secFetchSite(){return this.get(w.SecFetchSite)}get secFetchMode(){return this.get(w.SecFetchMode)}get secFetchUser(){return this.get(w.SecFetchUser)}get secFetchDest(){return this.get(w.SecFetchDest)}get earlyData(){let e=this.get(w.EarlyData);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get priority(){return this.get(w.Priority)}get allow(){return this.get(w.Allow)}get server(){return this.get(w.Server)}get acceptRanges(){return this.get("accept-ranges")}get lastModified(){let e=this.get("last-modified");if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get expires(){let e=this.get("expires");if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get contentEncoding(){return this.get("content-encoding")}get contentLanguage(){return this.get("content-language")}get contentLocation(){return this.get("content-location")}get link(){let e=this.get(w.Link);return e?nn(e)[0]??null:null}get altSvc(){let e=this.get(w.AltSvc);return e?co(e):[]}get wwwAuthenticate(){let e=this.get("www-authenticate");return e?rn(e):null}set wwwAuthenticate(e){if(e===null){this.delete("www-authenticate");return}let t=e.map(n=>{let o=[...n.params].filter(([a])=>a!=="realm").map(([a,c])=>`${a}=${c}`).join(", "),i=n.scheme;return n.realm&&(i+=` realm="${n.realm}"`),o&&(i+=`; ${o}`),i}).join(", ");this.set("www-authenticate",t)}get proxyAuthenticate(){let e=this.get(w.ProxyAuthenticate);return e?rn(e):null}set proxyAuthenticate(e){if(e===null){this.delete(w.ProxyAuthenticate);return}let t=e.map(n=>{let o=[...n.params].filter(([a])=>a!=="realm").map(([a,c])=>`${a}=${c}`).join(", "),i=n.scheme;return n.realm&&(i+=` realm="${n.realm}"`),o&&(i+=`; ${o}`),i}).join(", ");this.set(w.ProxyAuthenticate,t)}get proxyAuthorization(){let e=this.get(w.ProxyAuthorization);return e?tn(e):null}set proxyAuthorization(e){if(e===null){this.delete(w.ProxyAuthorization);return}if(typeof e=="string"){this.set(w.ProxyAuthorization,e);return}e.basic?this.set(w.ProxyAuthorization,`Basic ${Bs(`${e.basic.username}:${e.basic.password}`)}`):e.token?this.set(w.ProxyAuthorization,`${e.scheme} ${e.token}`):this.set(w.ProxyAuthorization,e.scheme)}get setCookies(){return this.getAll(w.SetCookie)}get accessControlAllowOrigin(){return this.get(w.AccessControlAllowOrigin)}get accessControlAllowMethods(){return this.get(w.AccessControlAllowMethods)}get accessControlAllowHeaders(){return this.get(w.AccessControlAllowHeaders)}get accessControlMaxAge(){let e=this.get(w.AccessControlMaxAge);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get accessControlCredentials(){let e=this.get(w.AccessControlAllowCredentials);return e==="true"?!0:e==="false"?!1:null}}});var _o={};fe(_o,{ContentTypeError:()=>Te,HTTPResponseError:()=>je,ResponseCache:()=>fn,ResponseDecodeError:()=>qe,ResponseSizeLimitError:()=>Se,applyDecompression:()=>er,assertOk:()=>fo,assertOkJSON:()=>po,createLimitedReader:()=>xo,decodeBody:()=>Zt,decompressStream:()=>mn,diffResponses:()=>mo,extractServerTiming:()=>yo,isBinary:()=>uo,isJSON:()=>Yt,isText:()=>dn,normalizeHeaders:()=>te,normalizeResponse:()=>lo,parseContentType:()=>Ee,parseMultipartResponse:()=>xn,readBlob:()=>wn,readBodyWithLimit:()=>pn,readBytes:()=>tr,readFormData:()=>go,readJSON:()=>gn,readJSONStream:()=>ho,readNDJSON:()=>bn,readStream:()=>gt,readText:()=>yn});function te(r){return at(r)}function lo(r){return{status:r.status,statusText:r.statusText,headers:te(r.headers),url:r.url,redirected:r.redirected,ok:r.ok,bodyUsed:r.bodyUsed}}function Ee(r){if(!r||r.length>vc)return null;let e=an(r);return e?{mediaType:e.mediaType,type:e.type,subtype:e.subtype,charset:e.charset,boundary:e.boundary}:null}function Yt(r){if(!r)return!1;let e=Ee(r);return e?e.mediaType==="application/json"||e.subtype.endsWith("+json"):!1}function dn(r){return r?Ee(r)?.type==="text":!1}function uo(r){return!dn(r)&&!Yt(r)}async function pn(r,e,t,n){let s=t.onExceed??"throw",o=r.getReader(),i=[],a=0;try{for(;;){if(n?.aborted)throw await o.cancel("aborted"),new DOMException("Response reading aborted","AbortError");let{done:c,value:l}=await o.read();if(c)break;let u=a+l.byteLength;if(u>t.maxBytes){if(t.onExceedCallback?.(u,t.maxBytes),s==="throw")throw await o.cancel("size limit exceeded"),new Se(u,t.maxBytes,e);if(s==="abort"){await o.cancel("size limit exceeded");break}if(s==="truncate"){let f=t.maxBytes-a;f>0&&(i.push(l.slice(0,f)),a+=f);break}}i.push(l),a+=l.byteLength}}finally{o.releaseLock()}return bo(i)}function Ic(r){return r?Pc[r.toLowerCase()]??"utf-8":"utf-8"}function Lc(r){return r[0]===239&&r[1]===187&&r[2]===191?"utf-8":r[0]===255&&r[1]===254?"utf-16le":r[0]===254&&r[1]===255?"utf-16be":null}function Zt(r,e,t){let n=Lc(r),s=n??Ic(e),o=n?r.slice(n==="utf-8"?3:2):r;try{return new TextDecoder(s,{fatal:!0}).decode(o)}catch{try{return new TextDecoder(s,{fatal:!1}).decode(o)}catch(i){throw new qe(String(i),s,t)}}}function Mc(r,e,t=1e8){let n=mn(r,e),s=0,o=new TransformStream({transform(i,a){if(s+=i.byteLength,s>t){a.error(new Se(s,t,"decompression"));return}a.enqueue(i)}});return n.pipeThrough(o)}function mn(r,e){let t=e.trim().toLowerCase();if(t==="br")return Oc(r);if(typeof DecompressionStream>"u")return r;try{let n=t,s=new DecompressionStream(n);return r.pipeThrough(s)}catch{return r}}function Oc(r){let e=!1;try{e=typeof globalThis.process?.versions?.node=="string"}catch{}return e?new ReadableStream({async start(t){let s=(await import("node:zlib")).createBrotliDecompress(),o=r.getReader();s.on("data",i=>{t.enqueue(new Uint8Array(i.buffer,i.byteOffset,i.byteLength))}),s.on("end",()=>t.close()),s.on("error",i=>t.error(i));try{for(;;){let{done:i,value:a}=await o.read();if(i){s.end();break}s.write(a)}}catch(i){s.destroy(i instanceof Error?i:new Error(String(i))),t.error(i)}finally{o.releaseLock()}},cancel(){r.cancel()}}):r}function er(r,e){let t=e["content-encoding"]??e["Content-Encoding"];if(!t||t==="identity")return r;let n=t.split(",").map(o=>o.trim()).filter(Boolean).reverse(),s=r;for(let o of n)s=Mc(s,o);return s}async function gn(r,e={}){let n=te(r.headers)["content-type"]??null,s=r.url;e.expectedContentType?wo(n,e.expectedContentType,s):Yt(n);let o=await _n(r,s,e),i=e.charset??Ee(n??"")?.charset??null,a=Zt(o,i,s);try{return JSON.parse(a)}catch(c){throw new qe(`JSON parse failed: ${c}`,"json",s)}}async function yn(r,e={}){let n=te(r.headers)["content-type"]??null,s=r.url;e.expectedContentType&&wo(n,e.expectedContentType,s);let o=await _n(r,s,e),i=e.charset??Ee(n??"")?.charset??null;return Zt(o,i,s)}async function tr(r,e={}){let t=r.url;return await _n(r,t,e)}async function wn(r,e={}){let t=await tr(r,e),n=r.headers.get("content-type")??"application/octet-stream",s=new ArrayBuffer(t.byteLength);return new Uint8Array(s).set(t),new Blob([s],{type:n})}function gt(r,e={}){if(!r.body)return new ReadableStream({start:s=>s.close()});let t=te(r.headers),n=r.body;return e.decompress!==!1&&(n=er(n,t)),e.sizeLimit&&(n=Nc(n,r.url,e.sizeLimit,e.signal)),n}async function*bn(r,e={}){let n=gt(r,e).getReader(),s=new TextDecoder("utf-8"),o="";try{for(;!e.signal?.aborted;){let{done:i,value:a}=await n.read();if(i){let l=o.trim();if(l)try{yield JSON.parse(l)}catch(u){e.onParseError?.(u,l)}break}o+=s.decode(a,{stream:!0});let c=o.split(`
|
|
4
4
|
`);o=c.pop()??"";for(let l of c){let u=l.trim();if(!(!u||u.startsWith("#")))try{yield JSON.parse(u)}catch(f){e.onParseError?.(f,u)}}}}finally{n.releaseLock()}}async function*ho(r,e={}){let n=gt(r,e).getReader(),s=new TextDecoder("utf-8"),o=0,i="",a=-1,c=()=>{if(a===-1)return null;let l=i.slice(a);return a=-1,l};try{for(;!e.signal?.aborted;){let{done:l,value:u}=await n.read();if(l){let f=c();if(f)try{let d=JSON.parse(f);e.onObject?.(d),yield d}catch(d){e.onParseError?.(d,f)}break}i+=s.decode(u,{stream:!0});for(let f=0;f<i.length;f++){let d=i[f];if(d==="{"||d==="[")o===0&&(a=f),o++;else if((d==="}"||d==="]")&&(o--,o===0&&a!==-1)){let p=i.slice(a,f+1);try{let g=JSON.parse(p);e.onObject?.(g),yield g}catch(g){e.onParseError?.(g,p)}i=i.slice(f+1),f=-1}}if(i.length>1e7)throw new Error("JSON stream buffer exceeded 10MB limit")}}finally{n.releaseLock()}}async function fo(r,e={}){if(!(e.isError??(o=>o>=400))(r.status))return r;let n=te(r.headers),s=null;if(e.readBody!==!1&&r.body&&!r.bodyUsed)try{s=await r.clone().text()}catch{}throw new je(r.status,r.statusText,r.url,n,s)}async function po(r){if(r.ok)return{response:r};let e=te(r.headers),t=null;if(r.body&&!r.bodyUsed)try{t=await r.clone().text()}catch{}throw new je(r.status,r.statusText,r.url,e,t)}async function mo(r,e){let t=te(r.headers),n=te(e.headers),s={},o={},i={};for(let[c,l]of Object.entries(t))c in n?n[c]!==l&&(s[c]=[l,n[c]]):i[c]=l;for(let[c,l]of Object.entries(n))c in t||(o[c]=l);let a=!1;try{let[c,l]=await Promise.all([r.clone().text(),e.clone().text()]);a=c!==l}catch{}return{statusChanged:r.status!==e.status,headersChanged:s,headersAdded:o,headersRemoved:i,bodyChanged:a}}async function xn(r){let e=r.headers.get("content-type")??"",t=Ee(e);if(!t?.boundary)throw new Te("multipart/*",e,r.url);let n=await r.arrayBuffer(),s=new Uint8Array(n),o=new TextEncoder().encode("--"+t.boundary),i=[],a=l=>{for(let u=l;u<s.length-o.length;u++)if(s.subarray(u,u+o.length).every((f,d)=>f===o[d]))return u;return-1},c=a(0);if(c===-1)return[];if(c+=o.length,s[c]===13&&s[c+1]===10?c+=2:s[c]===10&&(c+=1),s[c]===45&&s[c+1]===45)return[];for(;c<s.length;){let l=a(c);if(l===-1)break;let u=l+o.length;u<s.length&&(s[u]===13&&s[u+1]===10||s[u]===10||s[u]===45&&s[u+1]);let f=s.subarray(c,l-2),d=Dc(f);if(d===-1){c=l+o.length;continue}let p=f.subarray(0,d),g=f.subarray(d+4),m=new TextDecoder().decode(p),y={};for(let b of m.split(/\r\n/)){let x=b.indexOf(":");x!==-1&&(y[b.slice(0,x).trim().toLowerCase()]=b.slice(x+1).trim())}if(i.push({headers:y,body:g}),c=l+o.length,c<s.length-1&&s[c]===45&&s[c+1]===45)break}return i}function Dc(r){for(let e=0;e<r.length-3;e++)if(r[e]===13&&r[e+1]===10&&r[e+2]===13&&r[e+3]===10)return e;return-1}async function go(r){let e=await xn(r),t=new FormData;for(let n of e){let s=n.headers["content-disposition"]??"",o=s.match(/name="([^"]+)"/),i=s.match(/filename="([^"]+)"/);if(!o)continue;let a=o[1],c=i?.[1];if(c){let l=n.headers["content-type"]??"application/octet-stream",u=new ArrayBuffer(n.body.byteLength);new Uint8Array(u).set(n.body);let f=new File([u],c,{type:l});t.append(a,f)}else{let l=new TextDecoder().decode(n.body);t.append(a,l)}}return t}function yo(r){let e=r["server-timing"]??r["Server-Timing"];return e?e.split(",").map(t=>{let n=t.trim().split(";"),s=(n[0]??"").trim(),o=Cc(n.slice(1).join(";")),i=o.get("dur");return{name:s,duration:i!==void 0?parseFloat(i):null,description:o.get("desc")??null}}).filter(t=>t.name):[]}async function _n(r,e,t){if(!r.body)return new Uint8Array(0);let n=te(r.headers),s=r.body;if(t.decompress!==!1&&(s=er(s,n)),t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");if(t.sizeLimit)return pn(s,e,t.sizeLimit,t.signal);let o=s.getReader(),i=[];try{for(;;){if(t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");let{done:a,value:c}=await o.read();if(a)break;i.push(c)}}finally{o.releaseLock()}return bo(i)}function Nc(r,e,t,n){let s=t.onExceed??"throw",o=0;return new ReadableStream({async start(i){let a=r.getReader();try{for(;;){if(n?.aborted){await a.cancel("aborted"),i.error(new DOMException("Response reading aborted","AbortError"));return}let{done:c,value:l}=await a.read();if(c){i.close();break}let u=o+l.byteLength;if(u>t.maxBytes){if(t.onExceedCallback?.(u,t.maxBytes),s==="throw"){await a.cancel("size limit"),i.error(new Se(u,t.maxBytes,e));return}if(s==="abort"){await a.cancel("size limit"),i.close();return}if(s==="truncate"){let f=t.maxBytes-o;f>0&&i.enqueue(l.slice(0,f)),i.close(),await a.cancel("size limit");return}}o+=l.byteLength,i.enqueue(l)}}catch(c){i.error(c)}}})}function wo(r,e,t){if(!r)throw new Te(e,"(none)",t);let n=r.split(";")[0]?.trim().toLowerCase()??"",s=e.split(";")[0]?.trim().toLowerCase()??"";if(!n.startsWith(s))throw new Te(e,r,t)}function bo(r){let e=r.reduce((s,o)=>s+o.byteLength,0),t=new Uint8Array(e),n=0;for(let s of r)t.set(s,n),n+=s.byteLength;return t}function xo(r,e="throw"){let t={maxBytes:r,onExceed:e};return{json:(n,s)=>gn(n,{sizeLimit:t,...s}),text:(n,s)=>yn(n,{sizeLimit:t,...s}),bytes:(n,s)=>tr(n,{sizeLimit:t,...s}),blob:(n,s)=>wn(n,{sizeLimit:t,...s}),stream:(n,s)=>gt(n,{sizeLimit:t,...s}),ndjson:(n,s)=>bn(n,{sizeLimit:t,...s})}}var Cc,je,Se,Te,qe,vc,Pc,fn,rr=j(()=>{"use strict";mt();oe();Cc=Q,je=class extends Error{constructor(t,n,s,o,i){super(`HTTP ${t} ${n} \u2014 ${s}`);h(this,"code","EHTTPRESPONSE");h(this,"status");h(this,"statusText");h(this,"url");h(this,"headers");h(this,"body");this.name="HTTPResponseError",this.status=t,this.statusText=n,this.url=s,this.headers=o,this.body=i}get isClientError(){return this.status>=400&&this.status<500}get isServerError(){return this.status>=500}get isNotFound(){return this.status===404}get isUnauthorized(){return this.status===401}get isForbidden(){return this.status===403}get isTooManyRequests(){return this.status===429}get isGone(){return this.status===410}get isConflict(){return this.status===409}},Se=class extends Error{constructor(t,n,s){super(`Response size limit exceeded: read ${t} bytes, limit is ${n} bytes (${s})`);h(this,"code","ESIZELIMIT");h(this,"bytesRead");h(this,"limit");h(this,"url");this.name="ResponseSizeLimitError",this.bytesRead=t,this.limit=n,this.url=s}},Te=class extends Error{constructor(t,n,s){super(`Expected content-type "${t}", got "${n}" (${s})`);h(this,"code","ECONTENTTYPE");h(this,"expected");h(this,"received");h(this,"url");this.name="ContentTypeError",this.expected=t,this.received=n,this.url=s}},qe=class extends Error{constructor(t,n,s){super(`Failed to decode response as ${n} (${s}): ${t}`);h(this,"code","EDECODE");h(this,"charset");h(this,"url");this.name="ResponseDecodeError",this.charset=n,this.url=s}};vc=8192;Pc={"utf-8":"utf-8",utf8:"utf-8","latin-1":"latin1",latin1:"latin1","iso-8859-1":"latin1",ascii:"ascii","us-ascii":"ascii","utf-16le":"utf-16le","utf-16":"utf-16le","utf-16be":"utf-16be","windows-1252":"windows-1252",cp1252:"windows-1252"};fn=class{constructor(e={ttlMs:6e4}){h(this,"cache",new Map);h(this,"ttlMs");this.ttlMs=e.ttlMs}hashRequest(e){let t=typeof e=="string"?e:e.url;return`${typeof e=="string"?"GET":e.method}:${t}`}async get(e){let t=this.hashRequest(e),n=this.cache.get(t);return n?Date.now()>n.expiresAt?(this.cache.delete(t),null):await Promise.resolve(n.response.clone()):null}async set(e,t){let n=this.hashRequest(e);await Promise.resolve(this.cache.set(n,{response:t.clone(),expiresAt:Date.now()+this.ttlMs}))}delete(e){this.cache.delete(this.hashRequest(e))}clear(){this.cache.clear()}get size(){return this.cache.size}}});var Po={};fe(Po,{FetchTransport:()=>ze,HAS_NATIVE_FETCH:()=>Ro,HTTP_STATUS_TEXTS:()=>vo,IS_NODE:()=>Be,NodeHTTP2Transport:()=>yt,RUNTIME:()=>pe,createTransport:()=>sr,decompressBodyStream:()=>ir,detectRuntime:()=>Sn,getEffectiveRuntime:()=>Eo,normalizeHeaders:()=>ko,parseBody:()=>wt,readRawBody:()=>or,sendWithTimeout:()=>Fe,setRuntime:()=>To});function Sn(){let r=globalThis.Deno;return typeof r<"u"&&typeof r.version<"u"?"deno":typeof globalThis.Bun<"u"?"bun":typeof globalThis<"u"&&typeof globalThis.caches<"u"?"cloudflare-workers":typeof window<"u"&&typeof globalThis.document<"u"?"browser":nr.process?.versions?.node!==void 0?"node":typeof globalThis.fetch=="function"?"edge":"unknown"}function To(r){So=r}function Eo(){return So??pe}function Uc(){try{return globalThis.process?.env?.NODE_ENV==="production"}catch{return!1}}function sr(r,e=!0,t,n){return Be&&e?new yt({...t?.sessionTTLMs!==void 0?{sessionTTLMs:t.sessionTTLMs}:{},...t?.pingIntervalMs!==void 0?{pingIntervalMs:t.pingIntervalMs}:{},...t?.connectTimeoutMs!==void 0?{connectTimeoutMs:t.connectTimeoutMs}:{},...t?.requestTimeoutMs!==void 0?{requestTimeoutMs:t.requestTimeoutMs}:{},...n?.strict!==void 0?{strict:n.strict}:{},...n?.onDroppedHeader!==void 0?{onDroppedHeader:n.onDroppedHeader}:{}}):new ze({fetchFn:r??globalThis.fetch,...n?.strict!==void 0?{strict:n.strict}:{},...n?.onDroppedHeader!==void 0?{onDroppedHeader:n.onDroppedHeader}:{}})}async function Fe(r,e,t){if(t<=0)return r.send(e);let n=new AbortController,s=setTimeout(()=>{n.abort(new se(t,e))},t),o=Nr(e.signal,n.signal)??null,i={...e,signal:o};try{let a=await r.send(i);if(clearTimeout(s),n.signal.aborted)throw new se(t,e);return a}catch(a){throw clearTimeout(s),n.signal.aborted?new se(t,e):a}}async function or(r,e,t,n){if(!r)return new Uint8Array(0);let s=r.getReader(),o=[],i=0,a,c=new Promise((u,f)=>{a=f}),l=()=>{s.cancel("aborted").catch(()=>{}),a(new _("Response reading aborted","EABORT"))};if(n?.aborted)throw s.cancel("aborted").catch(()=>{}),new _("Response reading aborted","EABORT");n?.addEventListener("abort",l,{once:!0});try{for(;;){let u=await Promise.race([s.read().catch(p=>{throw s.cancel("read error").catch(()=>{}),p}),c]),{done:f,value:d}=u;if(f)break;if(e>0){let p=i+d.byteLength;if(p>e)throw await s.cancel("size limit exceeded"),new tt(p,e)}o.push(d),i+=d.byteLength}}catch(u){throw s.cancel("error during read").catch(()=>{}),u}finally{n?.removeEventListener("abort",l),s.releaseLock()}return Dr(o)}function wt(r,e,t,n,s,o){if(t)return t(r,s??{},o??"");if(!r.byteLength)return null;let i=e?.split(";")[0]?.trim().toLowerCase()??"";if(i==="application/json"||i.endsWith("+json")){let a=new TextDecoder("utf-8").decode(r),c,l;try{let u=de(a,{maxStringLength:1e7,maxDepth:100,maxArrayLength:1e5});u.success&&u.value!==void 0&&(c=u.value)}catch(u){l=u instanceof Error?u:new Error(String(u))}if(c!==void 0)return c;if(n)try{n(r,l??new Error("JSON parse failed \u2014 falling back to raw text"))}catch{}return a}return i.startsWith("text/")?new TextDecoder("utf-8").decode(r):r}function ko(r){return at(r)}function $c(r,e){let t=r;if(t.httpVersion==="2.0"||t.httpVersion==="2")return"HTTP/2";let n=r;if(n.httpVersion)return n.httpVersion;let s=r.headers.get("alt-svc"),o=r;if(o.httpVersion==="3"||o.httpVersion==="3.0"||o.protocol==="h3")return"HTTP/3";if(s){let i=s.includes('h3="')||s.includes("h3-29=")||s.includes("h3-32=");if(s.includes('h2="')||i)return"HTTP/2"}return"HTTP/1.1"}function Hc(r){if(!(r instanceof Error))return!1;let e=r.message.toLowerCase();return e.includes("alpn")||e.includes("h2")||e.includes("http2")||r.code==="ERR_HTTP2_ERROR"}function Ao(r){return new ReadableStream({start(e){let t=!1,n=!1;r.on("data",s=>{if(s instanceof Uint8Array)e.enqueue(s);else if(nr.Buffer?.isBuffer(s)){let o=s;e.enqueue(new Uint8Array(o.buffer,o.byteOffset,o.byteLength))}else e.enqueue(new Uint8Array(s))}),r.once("end",()=>{if(!(t||n)){t=!0;try{e.close()}catch{}}}),r.once("error",s=>{if(!(t||n)){t=!0,n=!0;try{e.error(s)}catch{}}}),r.once("close",()=>{if(t||n)return;t=!0;let s=Object.assign(new Error("Stream closed before end"),{code:"ECONNRESET"});try{e.error(s)}catch{}})},cancel(){r.destroy()}})}async function Co(r,e){r.write(e)||await new Promise(n=>r.once("drain",n))}async function qc(r,e){if(e instanceof ReadableStream){let t=e.getReader();for(;;){let{done:n,value:s}=await t.read();if(n){r.end();break}await Co(r,s)}}else e instanceof Uint8Array||e instanceof ArrayBuffer?r.end(nr.Buffer?new Uint8Array(e):e):typeof e=="string"?r.end(e):r.end()}async function zc(r,e){if(e instanceof ReadableStream){let t=e.getReader();for(;;){let{done:n,value:s}=await t.read();if(n){r.end();break}await Co(r,s)}}else e instanceof Uint8Array||e instanceof ArrayBuffer?r.end(nr.Buffer?new Uint8Array(e):e):typeof e=="string"?r.end(e):r.end()}async function ir(r,e){if(!r)return null;let t=e["content-encoding"]??e["Content-Encoding"];if(!t)return r;let n=t.trim().toLowerCase(),s=n.split(",").map(a=>a.trim()).filter(Boolean),o=["gzip","deflate","br","identity"];for(let a of s)if(!o.includes(a))return console.warn(`[Kinetex] Unsupported Content-Encoding: ${a}. Supported: ${o.join(", ")}. Response body is passed through compressed.`),r;if(n==="identity")return delete e["content-encoding"],delete e["Content-Encoding"],r;let{applyDecompression:i}=await Promise.resolve().then(()=>(rr(),_o));return i(r,e)}var nr,pe,So,Be,Ro,ze,yt,jc,vo,bt=j(()=>{"use strict";we();oe();mt();oe();nr=globalThis;pe=Sn(),So=null;Be=pe==="node",Ro=pe!=="node"||typeof globalThis.fetch=="function";ze=class{constructor(e=globalThis.fetch){h(this,"fetchFn");h(this,"strict");h(this,"onDroppedHeader");typeof e=="function"?(this.fetchFn=e,this.strict=!1,this.onDroppedHeader=void 0):(this.fetchFn=e.fetchFn??globalThis.fetch,this.strict=e.strict??!1,this.onDroppedHeader=e.onDroppedHeader)}async send(e){let t={};for(let[l,u]of Object.entries(e.headers??{}))if(!(typeof l!="string"||typeof u!="string")){if(!sn(l)||!on(u)){if(this.strict)throw new _(`Invalid header dropped in strict mode: "${l}"`,"EVALIDATION",{request:e});this.onDroppedHeader?this.onDroppedHeader(l,u):Uc()||console.warn(`[kinetex] Invalid header dropped: "${l}" \u2014 value may contain illegal characters. Pass strictHeaders: true to throw instead.`);continue}t[l]=u}let n=t["accept-encoding"];n&&n.toLowerCase().includes("gzip")&&n.toLowerCase().includes("deflate")&&n.toLowerCase().includes("br")&&delete t["accept-encoding"];let s={method:e.method,headers:t,redirect:e.redirect??"follow",...e.signal!==null?{signal:e.signal}:{}};e.body!==null&&e.method!=="GET"&&e.method!=="HEAD"&&(s.body=e.body,Be&&typeof s.body=="object"&&s.body!==null&&"getReader"in s.body&&(s.duplex="half"));let o;try{o=await this.fetchFn(e.url,s)}catch(l){throw Ur(l)?new _("Request was aborted","EABORT",{request:e,cause:l}):new _(l instanceof Error?l.message:"Network request failed","ENETWORK",{request:e,cause:l})}let i=ko(o.headers),a=$c(o,i),c=!0;return pe==="deno"&&(o.headers.get("content-encoding")||"").toLowerCase().includes("deflate")&&(c=!1),{status:o.status,statusText:o.statusText,headers:i,body:o.body,url:o.url||e.url,redirected:o.redirected,httpVersion:a,alreadyDecompressed:c}}},yt=class{constructor(e={}){h(this,"sessions",new Map);h(this,"sessionTTLMs");h(this,"pingIntervalMs");h(this,"maxSessions");h(this,"pingTimers",new Map);h(this,"_sessionCreating",new Map);h(this,"sessionUsage",new Map);h(this,"_strict");h(this,"_onDroppedHeader");h(this,"_connectTimeoutMs");h(this,"_requestTimeoutMs");h(this,"_http1Fallback",null);this.sessionTTLMs=e.sessionTTLMs??5*6e4,this.pingIntervalMs=e.pingIntervalMs??3e4,this.maxSessions=e.maxSessions??100,this._strict=e.strict??!1,this._onDroppedHeader=e.onDroppedHeader,this._connectTimeoutMs=e.connectTimeoutMs??3e4,this._requestTimeoutMs=e.requestTimeoutMs??3e4}_getOrCreateSession(e,t,n){let s=this._sessionCreating.get(e);if(s)return s;let o=this._createSession(e,t,n);return this._sessionCreating.set(e,o),o.finally(()=>{this._sessionCreating.get(e)===o&&this._sessionCreating.delete(e)}).catch(()=>{}),o}async _createSession(e,t,n){let s=this.sessions.get(e);if(s&&!s.session.destroyed&&!s.session.closed&&!(Date.now()-s.createdAt>this.sessionTTLMs))return this.sessionUsage.set(e,Date.now()),s.session;if(s&&this._evictSession(e,s.session),this.sessions.size>=this.maxSessions){let i="",a=1/0;for(let[c,l]of this.sessionUsage.entries())l<a&&(a=l,i=c);if(i){let c=this.sessions.get(i);c&&this._evictSession(i,c.session)}}let o=await new Promise((i,a)=>{let c=n.connect(e,{rejectUnauthorized:!0}),l=setTimeout(()=>{c.destroy(),a(new _(`HTTP/2 connection to ${e} timed out`,"ETIMEOUT",{request:t}))},this._connectTimeoutMs);typeof l.unref=="function"&&l.unref();let u=()=>{clearTimeout(l),c.destroy(),a(new _("Connection aborted","EABORT",{request:t}))},f=()=>t.signal?.removeEventListener("abort",u);t.signal?.addEventListener("abort",u,{once:!0}),c.once("connect",()=>{f(),clearTimeout(l),i(c)}),c.once("error",d=>{f(),clearTimeout(l),a(d)})});if(o.on("goaway",()=>{this._evictSession(e,o)}),o.on("error",()=>{this._evictSession(e,o)}),this.sessions.set(e,{session:o,createdAt:Date.now()}),this.sessionUsage.set(e,Date.now()),this.pingIntervalMs>0){let i=this.pingTimers.get(e);i&&clearInterval(i);let a=setInterval(()=>{let c=this.sessions.get(e);if(!c||c.session.destroyed||c.session.closed){this._evictSession(e,c?.session);return}c.session.ping(l=>{l&&this._evictSession(e,c.session)})},this.pingIntervalMs);typeof a=="object"&&a!==null&&"unref"in a&&a.unref(),this.pingTimers.set(e,a)}return o}async send(e){let t=new URL(e.url);if(t.protocol!=="https:"||e.httpVersion==="HTTP/1.1")return this._sendHTTP1(e);try{return await this._sendHTTP2(e,t)}catch(n){if(Hc(n))return this._sendHTTP1(e);throw n}}async _sendHTTP2(e,t){let n=await import("node:http2"),s=e,o=t,i=!1,a=10;for(let c=0;c<=a;c++){if(c===a)throw new _("Too many HTTP/2 redirects","ENETWORK",{request:e});let l=o.origin,u=this.sessions.get(l),f=u&&Date.now()-u.createdAt>this.sessionTTLMs,d;!u||u.session.destroyed||u.session.closed||f?d=await this._getOrCreateSession(l,s,n):(d=u.session,this.sessionUsage.set(l,Date.now()));let p={":method":s.method,":path":o.pathname+o.search,":scheme":"https",":authority":o.host,...s.headers};if(this._strict)for(let[A,M]of Object.entries(p)){if(A.startsWith(":"))continue;let D=Array.isArray(M)?M.join(", "):String(M),z=!1;for(let $=0;$<D.length;$++){let X=D.charCodeAt($);if(X>=0&&X<=8||X>=10&&X<=31||X===127){z=!0;break}}if(z)if(this._onDroppedHeader)this._onDroppedHeader(A,D),delete p[A];else throw new _(`Strict mode: header "${A}" contains forbidden control characters`,"EVALIDATION",{request:s})}let g=!s.body||s.method==="GET"||s.method==="HEAD",m=d.request(p,{endStream:g});s.body&&!g&&qc(m,s.body).catch(A=>{m.destroy(A instanceof Error?A:new Error(String(A)))});let y=s.signal,b=await new Promise((A,M)=>{let D=this._requestTimeoutMs,z=setTimeout(()=>{X(),M(new _(`HTTP/2 request to ${o} timed out after ${D}ms`,"ETIMEOUT",{request:s})),m.destroy()},D),$=()=>{clearTimeout(z),M(new _("Request was aborted","EABORT",{request:s})),m.destroy()},X=()=>y?.removeEventListener("abort",$);y?.addEventListener("abort",$,{once:!0}),m.once("response",k=>{let P=Number(k[":status"]??200),v=vo[P]??"",L={};for(let[B,O]of Object.entries(k))B.startsWith(":")||(L[B]=Array.isArray(O)?O.join(", "):O??"");if(clearTimeout(z),X(),y?.aborted){M(new _("Request was aborted","EABORT",{request:s})),m.destroy();return}if(s.redirect==="error"&&P>=300&&P<400&&L.location){M(new _(`Redirect not allowed (redirect:"error") \u2014 received ${P} to ${L.location}`,"ENETWORK",{request:s})),m.destroy();return}A({status:P,statusText:v,headers:L,body:Ao(m),url:s.url,redirected:i,httpVersion:"HTTP/2",alreadyDecompressed:!1})}),m.once("error",k=>{clearTimeout(z),X(),y?.aborted?M(new _("Request was aborted","EABORT",{request:s,cause:k})):M(new _(k.message,"ENETWORK",{request:s,cause:k})),m.destroy()})});if(!(b.status>=300&&b.status<400&&!!b.headers.location&&s.redirect!=="manual"))return b;try{if(b.body){let A=b.body.getReader();for(;;){let{done:M}=await A.read();if(M)break}A.releaseLock()}}catch{}let S=b.headers.location,R;try{R=new URL(S,s.url).href}catch{throw new _(`Invalid redirect Location: ${S}`,"ENETWORK",{request:e})}let C=b.status===301||b.status===302||b.status===303?"GET":s.method,T=C==="GET"||C==="HEAD"?null:s.body;s={...s,url:R,method:C,body:T},o=new URL(R),i=!0}throw new _("HTTP/2 redirect loop terminated unexpectedly","ENETWORK",{request:e})}_sendHTTP1(e){if(typeof globalThis.fetch=="function"){if(!this._http1Fallback){let t={fetchFn:globalThis.fetch,strict:this._strict};this._onDroppedHeader!==void 0&&(t.onDroppedHeader=this._onDroppedHeader),this._http1Fallback=new ze(t)}return this._http1Fallback.send(e)}return this._sendHTTP1Legacy(e)}async _sendHTTP1Legacy(e){let t=await import("node:https"),n=new URL(e.url),s={hostname:n.hostname,port:n.port||"443",path:n.pathname+n.search,method:e.method,headers:e.headers};return new Promise((o,i)=>{let a=t.request(s,u=>{let f={};for(let[p,g]of Object.entries(u.headers))g!==void 0&&(f[p]=Array.isArray(g)?g.join(", "):g);let d=jc(u);o({status:u.statusCode??200,statusText:u.statusMessage??"",headers:f,body:d,url:e.url,redirected:!1,httpVersion:"HTTP/1.1",alreadyDecompressed:!1})});a.once("error",u=>{i(new _(u.message,"ENETWORK",{request:e,cause:u}))});let c=()=>{a.destroy(),i(new _("Request was aborted","EABORT",{request:e}))};e.signal?.addEventListener("abort",c,{once:!0});let l=()=>e.signal?.removeEventListener("abort",c);a.once("close",l),a.once("error",l),e.body&&e.method!=="GET"&&e.method!=="HEAD"?zc(a,e.body).catch(i):a.end()})}_evictSession(e,t){let n=this.pingTimers.get(e);n&&(clearInterval(n),this.pingTimers.delete(e)),this.sessions.delete(e),this.sessionUsage.delete(e),this._sessionCreating.delete(e),t&&!t.destroyed&&!t.closed&&t.destroy()}destroy(){for(let e of this.pingTimers.values())clearInterval(e);this.pingTimers.clear(),this._sessionCreating.clear();for(let[e,{session:t}]of this.sessions.entries())this._evictSession(e,t);this.sessions.clear()}};jc=Ao;vo={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Content Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",421:"Misdirected Request",422:"Unprocessable Content",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"}});function Wc(r){return r.split(Fc).filter(Boolean)}function Kc(r){let e=r.match(/^(\d{1,2}):(\d{2}):(\d{2})(?:[+-]\d{2}:?\d{2}|Z|GMT|UTC)?$/i);if(!e)return null;let t=+e[1],n=+e[2],s=+e[3];return t>23||n>59||s>59?null:[t,n,s]}function Vc(r){let e=r.slice(0,9).toLowerCase();return Bc[e]??null}function Jc(r){if(!/^\d{2,4}$/.test(r))return null;let e=+r;return e>=70&&e<=99&&(e+=1900),e>=0&&e<=69&&(e+=2e3),e}function cr(r){if(!r)return null;let e=Wc(r),t={time:null,dayOfMonth:null,month:null,year:null};for(let a of e)if(a){if(t.time===null&&a.includes(":")){let c=Kc(a);if(c!==null){t.time=c;continue}}if(t.month===null&&/[a-zA-Z]/.test(a)){let c=Vc(a);if(c!==null){t.month=c;continue}}if(/^\d{1,4}(?:st|nd|rd|th)?$/i.test(a)){let c=a.replace(/[a-z]+$/i,""),l=+c;if(t.dayOfMonth===null&&c.length<=2&&l>=1&&l<=31){t.dayOfMonth=l;continue}if(t.year===null&&c.length>=2){let u=Jc(c);if(u!==null){t.year=u;continue}}if(t.dayOfMonth===null&&l>=1&&l<=31){t.dayOfMonth=l;continue}}}if(t.time===null||t.dayOfMonth===null||t.month===null||t.year===null||t.year<1601||t.year>9999||t.dayOfMonth<1||t.dayOfMonth>31)return null;let[n,s,o]=t.time,i=Date.UTC(t.year,t.month,t.dayOfMonth,n,s,o);return isNaN(i)?null:i}function xt(r){let e=r.replace(/\.$/,"").toLowerCase(),t=e.split(".");if(t.length===0||t.length===1&&t[0]==="")return null;if(kn.has(e))return e;let n=null,s=0;for(let o=0;o<t.length;o++){let i=t.slice(o).join(".");if(En.has(i)){let a=t.length-o;a>s&&(s=a,n=i)}}for(let o=0;o<t.length-1;o++){let i=t.slice(o+1).join(".");if(Rn.has(i)){let a=t.slice(o).join("."),c=t.length-o;c>s&&(s=c,n=a)}}return n||(t[t.length-1]??null)}function An(r){let e=r.toLowerCase();if(me(e))return e;let t=xt(e);if(!t)return null;let n=t.split(".").length,s=e.split(".");return s.length<=n?null:s.slice(-(n+1)).join(".")}function _t(r){let e=r.toLowerCase();if(kn.has(e)||En.has(e))return!0;let t=e.split(".");if(t.length>=2){let n=t.slice(1).join(".");if(Rn.has(n))return!0}return!1}function Gc(r){try{let c=r.lastIndexOf("-"),l=[],u=c>=0?r.slice(0,c):"";for(let S=0;S<u.length;S++){let R=u.charCodeAt(S);if(R>122||R>90&&R<97||R>57&&R<65||R<48)return r;l.push(R)}let f=c>=0?r.slice(c+1):r,d=128,p=0,g=72,m=S=>S>=65&&S<=90?S-65:S>=97&&S<=122?S-97:S>=48&&S<=57?S-48+26:-1,y=(S,R,C)=>{S=Math.floor(S/(C?700:2)),S+=Math.floor(S/R);let T=0;for(;S>910/2;)S=Math.floor(S/35),T+=36;return T+Math.floor(36*S/(S+38))},b=0;for(;b<f.length;){let S=p,R=1;for(let C=36;;C+=36){if(b>=f.length)return r;let T=m(f.charCodeAt(b++));if(T<0)return r;p+=T*R;let A=C<=g?1:C>=g+26?26:C-g;if(T<A)break;R*=36-A}g=y(p-S,l.length+1,S===0),d+=Math.floor(p/(l.length+1)),p%=l.length+1,l.splice(p,0,d),p++}return String.fromCodePoint(...l)||r}catch{return r}}function lr(r){if(!r.toLowerCase().startsWith("xn--"))return r;let e=Intl;if(typeof Intl<"u"&&e.IDN&&typeof e.IDN.toUnicode=="function")try{return e.IDN.toUnicode(r,{standard:"tr46"})}catch{return r}if(Tn){let t=r+".invalid",n=Tn(t);if(n&&n.length>8&&n.endsWith(".invalid")){let s=n.slice(0,-8);if(s!==r)return s}}if(r.startsWith("xn--"))try{let t=Gc(r.slice(4));if(t&&t!==r.slice(4))return t}catch{}return r}function ue(r){return r.replace(/^\./,"").replace(/\.$/,"").toLowerCase().split(".").map(lr).join(".")}function me(r){let e=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;return Xc.test(e)?e.split(".").map(Number).every(n=>n>=0&&n<=255):Yc.test(e)&&e.includes(":")}function St(r,e){let t=r.toLowerCase(),n=e.toLowerCase();return t===n?!0:!(me(t)||!t.endsWith("."+n)||me(n)||xt(t)===t)}function Tt(r){if(!r||r===""||r[0]!=="/")return"/";let e=r.lastIndexOf("/");return e===0?"/":r.slice(0,e)}function ar(r){if(!r.startsWith("/"))return"/"+r;let e=[],t=r.split("/");for(let n of t)n===""||n==="."||(n===".."?e.length>0&&e.pop():e.push(n));return"/"+e.join("/")}function Et(r,e){let t=ar(r),n=ar(e);return!!(t===n||t.startsWith(n)&&(n.endsWith("/")||t[n.length]==="/"))}function el(r){return r===""?!0:Zc.test(r)}function tl(r){for(let e=0;e<r.length;e++){let t=r.charCodeAt(e);if(t>=0&&t<=8||t>=10&&t<=31||t===127)return!1}return!0}function Rt(r){if(!r||r.trim()==="")return null;let e=r.indexOf(";"),t=e===-1?r:r.slice(0,e),n=e===-1?"":r.slice(e+1),s=t.indexOf("="),o,i;if(s===-1?(o="",i=t.trim()):(o=t.slice(0,s).trim(),i=t.slice(s+1).trim()),!el(o)||(i.length>=2&&i[0]==='"'&&i[i.length-1]==='"'&&(i=i.slice(1,-1)),!tl(i)))return null;let a=new Map,c=n.split(";");for(let A of c){let M=A.trim();if(!M)continue;let D=M.indexOf("=");if(D===-1)a.set(M.toLowerCase(),"");else{let z=M.slice(0,D).trim().toLowerCase(),$=M.slice(D+1).trim();a.has(z)||a.set(z,$)}}let l=a.has("domain")?a.get("domain"):null,u=a.has("path")?a.get("path"):null,f=a.has("expires")?a.get("expires"):null,d=a.has("max-age")?a.get("max-age"):null,p=a.has("secure"),g=a.has("httponly"),m="Unset";if(a.has("samesite")){let A=a.get("samesite").toLowerCase();A==="strict"?m="Strict":A==="lax"?m="Lax":A==="none"&&(m="None")}let y=a.has("sameparty"),b=null;if(a.has("priority")){let A=a.get("priority").toLowerCase();A==="low"?b="Low":A==="medium"?b="Medium":A==="high"&&(b="High")}let x=a.has("partitioned"),S=null;d!==null&&d.match(/^-?\d+$/)&&(S=parseInt(d,10));let R=null;S===null&&f!==null&&(R=cr(f));let C=null;l!==null&&l!==""&&(C=ue(l));let T=null;return u!==null&&u.startsWith("/")&&(T=u),{name:o,value:i,domain:C,path:T,expires:R,maxAge:S,secure:p,httpOnly:g,sameSite:m,sameParty:y,priority:b,partitioned:x}}function Io(r){let e=[];if(r.value.includes(";")||r.value.includes(",")||r.value.includes(" ")||r.value.includes('"')?e.push(`${r.name}="${r.value.replace(/"/g,'\\"')}"`):e.push(`${r.name}=${r.value}`),r.path&&e.push(`Path=${r.path}`),r.domain&&e.push(`Domain=${r.domain}`),r.expires!==null){let t=new Date(r.expires);e.push(`Expires=${t.toUTCString()}`)}return r.maxAge!==null&&e.push(`Max-Age=${r.maxAge}`),r.secure&&e.push("Secure"),r.httpOnly&&e.push("HttpOnly"),r.sameSite&&r.sameSite!=="Unset"&&e.push(`SameSite=${r.sameSite}`),r.sameParty&&e.push("SameParty"),r.priority&&e.push(`Priority=${r.priority}`),r.partitioned&&e.push("Partitioned"),e.join("; ")}function We(r){let e=[],t="",n=0,s=!1,o=!1,i=!1,a=!1,c=!1,l=()=>{i&&a&&t.trim()&&e.push(t.trim()),t="",i=!1,a=!1,c=!1};for(;n<r.length;){let u=r[n],f=r[n+1]??"";if(o){t+=u,o=!1,n++;continue}if(u==="\\"&&(s||f==='"'||f==="\\")){t+=u,o=!0,n++;continue}if(u==='"'){!s&&i?s=!0:s&&(s=!1,a=!0),t+=u,n++;continue}if(s){t+=u,n++;continue}if(u===","&&!s&&(c||a||i)){for(l();n+1<r.length&&/\s/.test(r[n+1]);)n++;n++;continue}if(u===";"){i||(i=!0),a&&(c=!0),t+=u,n++;continue}if(u==="="&&!i){i=!0,a=!0,t+=u,n++;continue}if(i&&!a&&u!==";"&&u!==","&&(a=!0),u===" "||u===" "){t.length>0&&t.trim()!==""&&(t+=u),n++;continue}t+=u,n++}return i&&a&&t.trim()&&e.push(t.trim()),e}function kt(r){if(typeof Headers<"u"&&r instanceof Headers){if(typeof r.getSetCookie=="function")return r.getSetCookie();let n=r.get("set-cookie");return n?We(n):[]}let e=r,t=e["set-cookie"]??e["Set-Cookie"];return t?Array.isArray(t)?t.flatMap(n=>We(n)):We(t):[]}var Bc,Fc,Qc,En,Rn,kn,Tn,Xc,Yc,Zc,ur=j(()=>{"use strict";Bc={jan:0,january:0,feb:1,february:1,mar:2,march:2,apr:3,april:3,may:4,jun:5,june:5,jul:6,july:6,aug:7,august:7,sep:8,september:8,oct:9,october:9,nov:10,november:10,dec:11,december:11},Fc=/[\t\x20-\x2f\x3b-\x40\x5b-\x60\x7b-\x7e]+/;Qc=["!www.ck","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","*.ck","*.er","*.bd","*.fj","*.fk","*.gu","*.jm","*.kh","*.mm","*.np","*.pg","*.ss","*.tp","*.vi","*.ye","*.zm","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.osaka.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","com","net","org","edu","gov","mil","int","arpa","info","biz","name","mobi","tel","travel","museum","coop","aero","pro","jobs","cat","post","xxx","app","dev","io","ai","co","me","tv","fm","blog","shop","store","online","site","web","tech","cloud","digital","media","news","press","agency","solutions","services","systems","network","group","team","studio","design","art","photography","email","marketing","consulting","management","finance","money","bank","insurance","healthcare","medical","hospital","clinic","pharmacy","dental","legal","law","attorney","lawyer","accountant","pm","sh","ac","cc","cx","nu","ms","pw","sc","sx","tc","tk","ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","su","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","com.br","net.br","org.br","edu.br","gov.br","mil.br","art.br","ind.br","adm.br","adv.br","agr.br","am.br","arq.br","ato.br","b.br","bio.br","blog.br","bmd.br","cim.br","cng.br","cnt.br","coop.br","ecn.br","eco.br","emp.br","eng.br","esp.br","etc.br","eti.br","far.br","flog.br","fm.br","fnd.br","fot.br","fst.br","g12.br","ggf.br","imb.br","inf.br","jor.br","jus.br","leg.br","lel.br","mat.br","med.br","mp.br","mus.br","not.br","ntr.br","odo.br","ppg.br","pro.br","psc.br","psi.br","qsl.br","radio.br","rec.br","slg.br","srv.br","taxi.br","teo.br","tmp.br","trd.br","tur.br","tv.br","vet.br","vlog.br","wiki.br","zlg.br","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","com.cn","net.cn","org.cn","edu.cn","gov.cn","mil.cn","ac.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","co.uk","me.uk","org.uk","ltd.uk","plc.uk","net.uk","sch.uk","gov.uk","nhs.uk","police.uk","mod.uk","ac.uk","judiciary.uk","parliament.uk","co.jp","ne.jp","or.jp","ac.jp","ad.jp","ed.jp","go.jp","gr.jp","lg.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","co.nz","net.nz","org.nz","edu.nz","govt.nz","school.nz","geek.nz","maori.nz","iwi.nz","mil.nz","parliament.nz","ac.nz","co.za","net.za","org.za","edu.za","gov.za","mil.za","ac.za","alt.za","agric.za","cybernet.za","db.za","grondar.za","nis.za","nom.za","ngo.za","pty.za","school.za","tm.za","web.za","co.in","net.in","org.in","edu.in","gov.in","mil.in","ac.in","res.in","firm.in","gen.in","ind.in","int.in","nic.in","com.ar","net.ar","org.ar","edu.ar","gov.ar","mil.ar","int.ar","tur.ar","com.mx","net.mx","org.mx","edu.mx","gob.mx","com.sg","net.sg","org.sg","edu.sg","gov.sg","per.sg","com.hk","net.hk","org.hk","edu.hk","gov.hk","idv.hk","com.tw","net.tw","org.tw","edu.tw","gov.tw","mil.tw","idv.tw","game.tw","ebiz.tw","club.tw","com.my","net.my","org.my","edu.my","gov.my","mil.my","name.my","sch.my","com.ph","net.ph","org.ph","edu.ph","gov.ph","mil.ph","ngo.ph","i.ph","com.pk","net.pk","org.pk","edu.pk","gov.pk","mil.pk","ac.pk","res.pk","biz.pk","fam.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","com.eg","net.eg","org.eg","edu.eg","gov.eg","mil.eg","sci.eg","eun.eg","info.eg","name.eg","com.sa","net.sa","org.sa","edu.sa","gov.sa","med.sa","pub.sa","sch.sa","com.ae","net.ae","org.ae","edu.ae","gov.ae","mil.ae","sch.ae","ac.ae","pro.ae","name.ae","com.tr","net.tr","org.tr","edu.tr","gov.tr","mil.tr","bel.tr","k12.tr","av.tr","bbs.tr","dr.tr","gen.tr","info.tr","name.tr","pol.tr","tel.tr","web.tr","com.ua","net.ua","org.ua","edu.ua","gov.ua","mil.ua","in.ua","co.ua","cherkassy.ua","chernigov.ua","chernovtsy.ua","dn.ua","dnepropetrovsk.ua","donetsk.ua","dp.ua","if.ua","kh.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","lg.ua","lugansk.ua","lutsk.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sebastopol.ua","sumy.ua","te.ua","ternopil.ua","uzhgorod.ua","vinnica.ua","vn.ua","volyn.ua","yalta.ua","zp.ua","zaporizhzhe.ua","zt.ua","zhitomir.ua","com.ru","net.ru","org.ru","edu.ru","gov.ru","mil.ru","pp.ru","int.ru","ac.ru","msk.ru","spb.ru","com.pl","net.pl","org.pl","edu.pl","gov.pl","mil.pl","co.pl","info.pl","biz.pl","nom.pl","waw.pl","poznan.pl","lodz.pl","krakow.pl","wroclaw.pl","com.de","co.de","com.fr","co.fr","asso.fr","nom.fr","prd.fr","presse.fr","tm.fr","aeroport.fr","assedic.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","gouv.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","com.it","co.it","com.es","co.es","nom.es","org.es","edu.es","gob.es","com.nl","co.nl","com.be","co.be","ac.be","org.be","net.be","com.ch","co.ch","com.at","co.at","ac.at","gv.at","or.at","priv.at","com.se","co.se","ac.se","bd.se","brand.se","fh.se","fhsk.se","fhv.se","tm.se","pp.se","press.se","parti.se","komforb.se","kommunalforbund.se","komvux.se","lanarb.se","lanbib.se","naturbruksgymn.se","sshn.se","com.no","co.no","stat.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","vgs.no","videregaaende.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","com.dk","co.dk","ac.dk","com.fi","co.fi","ac.fi","iki.fi","aland.fi","www.fi","com.pt","co.pt","edu.pt","gov.pt","int.pt","net.pt","nome.pt","org.pt","publ.pt","dyndns.pt","com.gr","co.gr","edu.gr","gov.gr","net.gr","org.gr","store.gr","com.ie","co.ie","gov.ie","net.ie","org.ie","teagasc.ie","com.cz","co.cz","edu.cz","net.cz","org.cz","info.cz","com.sk","co.sk","edu.sk","net.sk","org.sk","com.hu","co.hu","edu.hu","film.hu","gov.hu","info.hu","net.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","com.ro","co.ro","edu.ro","gov.ro","info.ro","net.ro","nom.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","arts.ro","firm.ro","nt.ro","shop.ro","com.bg","co.bg","edu.bg","gov.bg","net.bg","org.bg","tel.bg","biz.bg","com.hr","co.hr","from.hr","iz.hr","name.hr","net.hr","com.rs","co.rs","edu.rs","gov.rs","in.rs","net.rs","org.rs","com.ba","co.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","rs.ba","unbi.ba","unmo.ba","unsa.ba","untz.ba","unze.ba","com.co","net.co","org.co","edu.co","gov.co","mil.co","nom.co","com.ve","net.ve","org.ve","edu.ve","gov.ve","mil.ve","int.ve","co.ve","arts.ve","bib.ve","firm.ve","info.ve","nom.ve","rec.ve","store.ve","tec.ve","web.ve","com.pe","net.pe","org.pe","edu.pe","gov.pe","mil.pe","nom.pe","sld.pe","com.cl","co.cl","gob.cl","gov.cl","net.cl","org.cl","mil.cl","edu.cl","co.kr","ne.kr","or.kr","re.kr","pe.kr","go.kr","mil.kr","ac.kr","hs.kr","ms.kr","es.kr","sc.kr","kg.kr","seoul.kr","busan.kr","daegu.kr","incheon.kr","gwangju.kr","daejeon.kr","ulsan.kr","gyeonggi.kr","gangwon.kr","chungbuk.kr","chungnam.kr","jeonbuk.kr","jeonnam.kr","gyeongbuk.kr","gyeongnam.kr","jeju.kr","co.id","net.id","or.id","ac.id","web.id","sch.id","go.id","mil.id","my.id","co.th","net.th","org.th","ac.th","go.th","in.th","mi.th","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","com.ng","net.ng","org.ng","edu.ng","gov.ng","mil.ng","mobi.ng","name.ng","sch.ng","co.ke","or.ke","ne.ke","go.ke","ac.ke","sc.ke","me.ke","mobi.ke","co.il","net.il","org.il","edu.il","gov.il","muni.il","ac.il","idf.il","com.ir","net.ir","org.ir","edu.ir","gov.ir","ac.ir","id.ir"],En=new Set,Rn=new Set,kn=new Set;for(let r of Qc)r.startsWith("!")?kn.add(r.slice(1).toLowerCase()):r.startsWith("*.")?Rn.add(r.slice(2).toLowerCase()):En.add(r.toLowerCase());(async()=>{try{let r=await import("node:url");typeof r.domainToUnicode=="function"&&(Tn=r.domainToUnicode)}catch{}})();Xc=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,Yc=/^[\da-f:]+$/i;Zc=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});function ol(r,e){let t=r.name;return!(t.startsWith("__Secure-")&&(!r.secure||e.protocol!=="https:")||t.startsWith("__Host-")&&(!r.secure||e.protocol!=="https:"||r.path!=="/"||!r.hostOnly))}function il(r,e){switch(r){case"Strict":return e==="strict";case"Lax":return e==="strict"||e==="lax";case"Unset":return e!=="cross-site";case"None":return!0}}function Cn(r){try{return new URL(r)}catch{return null}}function vn(){return new Re}function Pn(r){return Re.fromJSON(r)}var rl,nl,sl,Lo,Re,Mo=j(()=>{"use strict";ur();rl=4096,nl=50,sl=3e3,Lo=400*24*60*60*1e3;Re=class r{constructor(e={}){h(this,"dm",new Map);h(this,"total",0);h(this,"cleanupTimer",null);h(this,"maxTotal");h(this,"maxPerDomain");h(this,"domainMatcherFn");this.maxTotal=e.maxTotal??sl,this.maxPerDomain=e.maxPerDomain??nl,this.domainMatcherFn=e.domainMatcher??null,this.cleanupTimer=setInterval(()=>{this.clearExpired()},300*1e3),typeof this.cleanupTimer=="object"&&this.cleanupTimer!==null&&"unref"in this.cleanupTimer&&this.cleanupTimer.unref()}destroy(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=null)}setCookie(e,t){let n=Cn(t.url);if(!n)return!1;let s=Rt(e);if(!s)return!1;let o=Date.now(),i=n.hostname.toLowerCase(),a=i.replace(/^\[|\]$/g,""),c=n.protocol==="https:"||a==="localhost"||a==="127.0.0.1"||a==="::1";if(s.name.length+1+s.value.length>rl)return!1;let u,f;if(s.domain!==null&&s.domain!==""){let b=s.domain;if(!(this.domainMatcherFn??St)(i,b)||_t(b))return!1;u=b,f=!1}else u=i,f=!0;let d=s.path??Tt(n.pathname),p=s.secure;if(p&&!c)return!1;let g=s.sameSite;if(g==="None"&&!p)return!1;let m;if(s.maxAge!==null){if(s.maxAge<=0)return this.removeCookie(u,d,s.name),!0;let b=Math.min(s.maxAge*1e3,Lo);m=o+b}else if(s.expires!==null){if(m=s.expires,m<=o)return this.removeCookie(u,d,s.name),!0;m=Math.min(m,o+Lo)}else m=1/0;let y={name:s.name,value:s.value,domain:u,path:d,expires:m,maxAge:s.maxAge,secure:p,httpOnly:s.httpOnly,sameSite:g,createdAt:o,lastAccessed:o,hostOnly:f};return ol(y,n)?(this.putCookie(y),!0):!1}getCookies(e){Math.random()<.01&&this.clearExpired();let t=Cn(e.url);if(!t)return[];let n=t.hostname.toLowerCase(),s=n.replace(/^\[|\]$/g,""),o=t.pathname||"/",i=t.protocol==="https:"||s==="localhost"||s==="127.0.0.1"||s==="::1",a=e.http!==!1,c=e.sameSiteContext??"none",l=Date.now(),u=[];for(let[d,p]of this.dm)if(this.matchDomain(n,d))for(let[,g]of p)for(let[,m]of g)m.hostOnly&&n!==m.domain||m.expires!==1/0&&m.expires<l||Et(o,m.path)&&(m.secure&&!i||m.httpOnly&&!a||il(m.sameSite,c)&&u.push(m));u.sort((d,p)=>{let g=p.path.length-d.path.length;return g!==0?g:d.createdAt-p.createdAt});let f=Date.now();for(let d of u)d.lastAccessed=f;return u}getCookieHeader(e){return this.getCookies(e).map(t=>t.name?`${t.name}=${t.value}`:t.value).join("; ")}getCookiesForDomain(e){let t=ue(e),n=[];for(let[s,o]of this.dm)if(s===t||s.endsWith("."+t))for(let[,i]of o)for(let[,a]of i)a.expires!==1/0&&a.expires<Date.now()||n.push(a);return n}processResponseHeaders(e,t){for(let n of kt(e))this.setCookie(n,t)}removeCookie(e,t,n){let s=ue(e),o=this.dm.get(s);if(!o)return!1;let i=o.get(t);if(!i)return!1;let a=i.delete(n);return a&&(this.total--,i.size===0&&o.delete(t),o.size===0&&this.dm.delete(s)),a}clear(){this.dm.clear(),this.total=0}clearExpired(){let e=Date.now(),t=0;for(let[n,s]of this.dm){for(let[o,i]of s){for(let[a,c]of i)c.expires!==1/0&&c.expires<e&&(i.delete(a),this.total--,t++);i.size===0&&s.delete(o)}s.size===0&&this.dm.delete(n)}return t}clearSession(){let e=0;for(let[t,n]of this.dm){for(let[s,o]of n){for(let[i,a]of o)a.expires===1/0&&(o.delete(i),this.total--,e++);o.size===0&&n.delete(s)}n.size===0&&this.dm.delete(t)}return e}clearForDomain(e){let t=ue(e),n=0;for(let[s,o]of this.dm)if(s===t||s.endsWith("."+t)){let i=0;for(let a of o.values())i+=a.size;this.dm.delete(s),this.total-=i,n+=i}return n}clearForUrl(e){let t=Cn(e);return t?this.clearForDomain(t.hostname):0}toJSON(){let e=Date.now(),t=[];for(let[,n]of this.dm)for(let[,s]of n)for(let[,o]of s)o.expires!==1/0&&o.expires<e||t.push({name:o.name,value:o.value,domain:o.domain,path:o.path,expires:o.expires===1/0?null:o.expires,maxAge:o.maxAge,secure:o.secure,httpOnly:o.httpOnly,sameSite:o.sameSite,createdAt:o.createdAt,lastAccessed:o.lastAccessed,hostOnly:o.hostOnly});return t}toString(){return JSON.stringify(this.toJSON(),null,2)}static fromJSON(e){let t=new r,n=typeof e=="string"?JSON.parse(e):e,s=Date.now();for(let o of n){let i=o.expires===null?1/0:o.expires;if(i!==1/0&&i<s)continue;let a={name:o.name,value:o.value,domain:o.domain,path:o.path,expires:i,maxAge:o.maxAge,secure:o.secure,httpOnly:o.httpOnly,sameSite:o.sameSite,createdAt:o.createdAt,lastAccessed:o.lastAccessed,hostOnly:o.hostOnly};t.putCookie(a)}return t}get count(){return this.total}getAll(){let e=[];for(let[,t]of this.dm)for(let[,n]of t)for(let[,s]of n)e.push({...s});return e}getForDomain(e){let t=ue(e),n=[];for(let[s,o]of this.dm)if(s===t||s.endsWith("."+t))for(let[,i]of o)for(let[,a]of i)n.push({...a});return n}putCookie(e){let{domain:t,path:n,name:s}=e;this.dm.has(t)||this.dm.set(t,new Map);let o=this.dm.get(t);o.has(n)||o.set(n,new Map);let i=o.get(n);if(i.has(s)){let a=i.get(s);i.set(s,{...e,createdAt:a.createdAt})}else this.evictForDomain(t,o),this.evictGlobal(),i.set(s,e),this.total++}evictForDomain(e,t){let n=0;for(let i of t.values())n+=i.size;if(n<this.maxPerDomain)return;let s=[];for(let[i,a]of t)for(let[c,l]of a)s.push([i,c,l]);s.sort((i,a)=>i[2].lastAccessed-a[2].lastAccessed);let o=0;for(;n>=this.maxPerDomain&&o<s.length;){let[i,a]=s[o++];t.get(i)?.delete(a)&&(this.total--,n--)}for(let[i,a]of t)a.size===0&&t.delete(i)}evictGlobal(){if(this.total<this.maxTotal)return;let e=[];for(let[n,s]of this.dm)for(let[o,i]of s)for(let[a,c]of i)e.push([n,o,a,c]);e.sort((n,s)=>n[3].lastAccessed-s[3].lastAccessed);let t=0;for(;this.total>=this.maxTotal&&t<e.length;){let[n,s,o]=e[t++],i=this.dm.get(n),a=i?.get(s);a?.delete(o)&&(this.total--,a.size===0&&i.delete(s),i.size===0&&this.dm.delete(n))}}matchDomain(e,t){return this.domainMatcherFn?this.domainMatcherFn(e,t):e===t?!0:me(e)?!1:e.endsWith("."+t)}}});var Oo={};fe(Oo,{CookieJar:()=>Re,canonicalizeDomainFull:()=>ue,createCookieJar:()=>vn,decodeIDNLabel:()=>lr,defaultPath:()=>Tt,domainMatch:()=>St,extractSetCookieHeaders:()=>kt,formatSetCookieHeader:()=>Io,getPublicSuffix:()=>xt,getRegistrableDomain:()=>An,isIPAddress:()=>me,isPublicSuffix:()=>_t,loadCookieJar:()=>Pn,normalizePath:()=>ar,parseCookieDate:()=>cr,parseSetCookieHeader:()=>Rt,pathMatch:()=>Et,splitSetCookieHeaders:()=>We});var In=j(()=>{"use strict";Mo();ur()});var qo={};fe(qo,{BatchingTransport:()=>vt,ConsoleTransport:()=>Ke,HTTPLogger:()=>ke,JSONTransport:()=>Ct,LogLevel:()=>At,MultiTransport:()=>It,Redactor:()=>Lt,RemoteTransport:()=>Pt,createDevelopmentLogger:()=>jo,createLogger:()=>$o,createProductionLogger:()=>Ho,toOTelSpan:()=>Uo});function dl(){let r=Date.now().toString(36),e=(++fl).toString(36).padStart(4,"0"),t=Math.random().toString(36).slice(2,6);return`${r}-${e}-${t}`}function No(r,e){if(!r||typeof r!="object"||e.length===0)return;let[t,...n]=e;if(t===void 0)return;let s=r;if(n.length===0){t in s&&(s[t]="***");return}typeof s[t]=="object"&&No(s[t],n)}function Do(r){return typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength}function Uo(r){let e={"http.request.id":r.requestId,"http.request.method":r.method,"url.full":r.url};return r.type==="response"&&(e["http.response.status_code"]=r.status,e["http.response.body.size"]=r.bodySize,e["http.time_to_first_byte"]=r.durationMs),r.type==="error"&&(e.error=!0,e["error.type"]=r.error.name,e["error.message"]=r.error.message,e["http.status_code"]=r.status),e}function pl(r){if(r instanceof Error){let e=r.code,t=r.stack;return{name:r.name,message:r.message,...e!==void 0?{code:e}:{},...t!==void 0?{stack:t}:{}}}return{name:"Error",message:String(r)}}function hr(){return typeof performance<"u"?performance.now():Date.now()}function $o(r){return new ke(r)}function Ho(r){let e=[new Ct];return r.endpoint&&e.push(new vt(new Pt(r.endpoint))),new ke({level:r.level??"INFO",transports:[new It(e)],...r.context!==void 0?{context:r.context}:{}})}function jo(r={}){return new ke({level:r.level??"DEBUG",transports:[new Ke({pretty:!0,useColors:!0,onWrite:e=>console.log(e)})],redaction:{logRequestBody:r.logBodies??!0,logResponseBody:r.logBodies??!0,maxBodyLength:2048}})}var al,At,cl,ll,ul,Ke,hl,Ct,vt,Pt,It,fl,Lt,ge,ke,fr=j(()=>{"use strict";al=()=>{try{return globalThis.process?.env?.NODE_ENV}catch{return}},At={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},cl=["authorization","proxy-authorization","cookie","set-cookie","x-api-key","x-auth-token","x-access-token","x-refresh-token","x-csrf-token","x-session-id","x-session-token","x-secret","x-secret-key","x-private-key","api-key","apikey","bearer","token","authentication","credentials","password","passwd","secret"],ll=["token","api_key","apikey","access_token","refresh_token","secret","password","pass","pwd","key","auth"],ul=["application/json","application/x-www-form-urlencoded","text/"],Ke=class{constructor(e={pretty:!1,onWrite:t=>console.log(t)}){h(this,"pretty");h(this,"onWrite");this.pretty=e.pretty??al()!=="production",this.onWrite=e.onWrite,e.useColors}write(e){let t=this.pretty?this._prettyFormat(e):JSON.stringify(e);this.onWrite(t)}_prettyFormat(e){let t=new Date(e.timestampMs).toISOString().slice(11,23),n=e.level.padEnd(5),s=e.requestId.slice(-8);if(e.type==="request")return`[${t}] ${n} \u2190 ${e.method} ${e.url} [${s}]`;if(e.type==="response"){let o=`${e.durationMs.toFixed(0)}ms`,i=e.cached?" (cached)":"";return`[${t}] ${n} \u2192 ${e.status} ${e.method} ${e.url} ${o}${i} [${s}]`}return`[${t}] ${n} \u2717 ${e.method} ${e.url} ${e.error.message} [${s}]`}},hl=()=>{try{return typeof globalThis.process?.stdout?.write=="function"}catch{return!1}},Ct=class{constructor(e=t=>{hl()?globalThis.process.stdout.write(t+`
|
package/dist/browser/kinetex.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* kinetex v1.0.0
|
|
1
|
+
/* kinetex v1.0.0 | MIT | https://github.com/kinetexjs/kinetex */
|
|
2
2
|
"use strict";var kinetex=(()=>{var zc=Object.create;var Mt=Object.defineProperty;var Bc=Object.getOwnPropertyDescriptor;var Fc=Object.getOwnPropertyNames;var Wc=Object.getPrototypeOf,Kc=Object.prototype.hasOwnProperty;var Bo=r=>{throw TypeError(r)};var Vc=(r,e,t)=>e in r?Mt(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var Ke=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var q=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(n){throw t=[n],n}};var ue=(r,e)=>{for(var t in e)Mt(r,t,{get:e[t],enumerable:!0})},Fo=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Fc(e))!Kc.call(r,s)&&s!==t&&Mt(r,s,{get:()=>e[s],enumerable:!(n=Bc(e,s))||n.enumerable});return r};var Ve=(r,e,t)=>(t=r!=null?zc(Wc(r)):{},Fo(e||!r||!r.__esModule?Mt(t,"default",{value:r,enumerable:!0}):t,r)),Jc=r=>Fo(Mt({},"__esModule",{value:!0}),r);var h=(r,e,t)=>Vc(r,typeof e!="symbol"?e+"":e,t),Qc=(r,e,t)=>e.has(r)||Bo("Cannot "+t);var Wo=(r,e,t)=>e.has(r)?Bo("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var ee=(r,e,t)=>(Qc(r,e,"access private method"),t);function wn(r){return r}function oi(r){if(typeof r=="string"){for(let e of Gc)if(e===r)return e}}var Gc,_,Xe,Ye,dr,Q,te,pr,mr,gr,re,Le=q(()=>{"use strict";Gc=["ENETWORK","ETIMEOUT","EABORT","EHTTPSTATUS","ESIZELIMIT","EPARSE","EVALIDATION","EAUTH","EPROXY","EREDIRECT","EUNKNOWN"];_=class extends Error{constructor(t,n,s){super(t);h(this,"code");h(this,"request");h(this,"response");h(this,"cause");this.name="KinetexError",this.code=n,s?.request!==void 0&&(this.request=s.request),s?.response!==void 0&&(this.response=s.response),s?.cause!==void 0&&(this.cause=s.cause)}get isNetwork(){return this.code==="ENETWORK"}get isProxy(){return this.code==="EPROXY"}get isTimeout(){return this.code==="ETIMEOUT"}get isAbort(){return this.code==="EABORT"}get isHTTPError(){return this.code==="EHTTPSTATUS"}get status(){return this.response?.status??null}},Xe=class extends _{constructor(t,n,s){super(`Response size limit exceeded: ${t} bytes read, limit is ${n} bytes`,"ESIZELIMIT",s!==void 0?{request:s}:{});h(this,"bytesRead");h(this,"limit");this.bytesRead=t,this.limit=n,this.name="SizeLimitError"}},Ye=class extends _{constructor(e,t){super(`HTTP ${e.status} ${e.statusText} \u2014 ${e.url}`,"EHTTPSTATUS",{request:t,response:e}),this.name="HTTPStatusError"}get isClientError(){return(this.status??0)>=400&&(this.status??0)<500}get isServerError(){return(this.status??0)>=500}},dr=class extends _{constructor(e){super("Request was aborted","EABORT",e!==void 0?{request:e}:{}),this.name="AbortError"}},Q=class extends _{constructor(e,t){super(e,"ENETWORK",t!==void 0?{request:t}:{}),this.name="NetworkError"}},te=class extends _{constructor(e,t){super(e,"EVALIDATION",t!==void 0?{request:t}:{}),this.name="ValidationError"}},pr=class extends _{constructor(e,t){super(e,"EAUTH",t!==void 0?{request:t}:{}),this.name="AuthError"}},mr=class extends _{constructor(e,t){super(e,"EPROXY",t!==void 0?{request:t}:{}),this.name="ProxyError"}},gr=class extends _{constructor(e,t){super(e,"EREDIRECT",t!==void 0?{request:t}:{}),this.name="RedirectError"}},re=class extends _{constructor(t,n){super(`Request timed out after ${t}ms`,"ETIMEOUT",n!==void 0?{request:n}:{});h(this,"timeoutMs");this.timeoutMs=t,this.name="TimeoutError"}}});function Xc(){if(yr)return yr;let r=globalThis;if(r.process?.hrtime)return yr=r.process,yr}function Yc(){if(wr)return wr;let r=globalThis;if(r.Buffer&&typeof r.Buffer.isBuffer=="function")return wr=r.Buffer,wr}function he(r,e={}){let t={...Zc,...e};if(r.length>t.maxStringLength)return{success:!1,error:"STRING_TOO_LONG",message:`JSON string length exceeds limit of ${t.maxStringLength}`};let n=0,s=!1,o=!1;for(let i=0;i<r.length;i++){let a=r[i];if(o){o=!1;continue}if(a==="\\"){s&&(o=!0);continue}if(a==='"'){s=!s;continue}if(!s)if(a==="{"||a==="["){if(++n>t.maxDepth)return{success:!1,error:"DEPTH_EXCEEDED",message:`JSON depth exceeds limit of ${t.maxDepth}`}}else(a==="}"||a==="]")&&n--}try{let i=JSON.parse(r);return bn(i,t,0)?!t.allowNonFinite&&xn(i)?{success:!1,error:"NON_FINITE_NUMBER",message:"JSON contains NaN or Infinity values"}:{success:!0,value:i}:{success:!1,error:"VALIDATION_FAILED",message:"Parsed value exceeds size limits"}}catch{return{success:!1,error:"PARSE_ERROR",message:"Failed to parse JSON"}}}function bn(r,e,t){if(t>e.maxDepth)return!1;if(r==null)return!0;if(typeof r=="string")return r.length<=e.maxStringLength;if(typeof r=="number"||typeof r=="boolean")return!0;if(Array.isArray(r))return r.length>e.maxArrayLength?!1:r.every(n=>bn(n,e,t+1));if(typeof r=="object"){let n=Object.keys(r);if(n.length>e.maxObjectKeys||n.includes("__proto__"))return!1;if(n.includes("constructor")){let s=r.constructor;if(typeof s=="object"&&s!==null){let o=Object.keys(s);if(o.includes("prototype")||o.includes("__proto__"))return!1}}return n.every(s=>bn(r[s],e,t+1))}return!0}function xn(r){return typeof r=="number"&&!Number.isFinite(r)?!0:Array.isArray(r)?r.some(xn):typeof r=="object"&&r!==null?Object.values(r).some(xn):!1}function ii(r){let e=he(r);return e.success?e.value:r}function ai(r){return he(r,{maxDepth:16,maxStringLength:1*1024*1024,maxArrayLength:1e3,maxObjectKeys:100})}function ci(r){return r instanceof Uint8Array}function li(r){return r instanceof ArrayBuffer}function ui(r){return r!==null&&typeof r=="object"&&"getReader"in r&&typeof r.getReader=="function"}function hi(r){return r!==null&&typeof r=="object"&&"forEach"in r&&typeof r.forEach=="function"}function fi(r){return r!==null&&typeof r=="object"&&"aborted"in r&&typeof r.aborted=="boolean"}function di(r){return r!==null&&typeof r=="object"&&Object.prototype.toString.call(r)==="[object Object]"}function pi(r){return r!==null&&typeof r=="object"&&r.constructor?.name==="FormData"}function mi(r){return r!==null&&typeof r=="object"&&r.constructor?.name==="Blob"}function gi(r){return r!==null&&typeof r=="object"&&"has"in r&&typeof r.has=="function"}function et(r){return typeof r!="string"||r.length===0||r.length>4096?!1:el.test(r)}function tt(r){if(typeof r!="string"||r.length>8192)return!1;for(let e=0;e<r.length;e++){let t=r.charCodeAt(e);if(t<32&&t!==9||t===127||t===13||t===10)return!1}return!0}function rt(r,e=["http","https"]){try{let t=typeof r=="string"?new URL(r):r,n=t.protocol.replace(/:$/,"").toLowerCase();if(!e.some(o=>o.toLowerCase()===n)||tl.has(n))return!1;let s=t.hostname.toLowerCase();if(s.startsWith("[")&&s.endsWith("]")&&(s=s.slice(1,-1)),s==="0:0:0:0:0:0:0:1"&&(s="::1"),s==="localhost"||s==="0.0.0.0"||rl.some(o=>o.test(s))||t.hostname.includes("..")||t.pathname.includes("..")||t.hostname.length>253||t.href.length>8192)return!1;if(t.port){let o=parseInt(t.port,10);if(isNaN(o)||o<1||o>65535)return!1}return!0}catch{return!1}}function Ze(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map(t=>Ze(t));if(r instanceof Date)return new Date(r.getTime());if(r instanceof Uint8Array)return new Uint8Array(r);if(r instanceof Map){let t=new Map;return r.forEach((n,s)=>t.set(s,Ze(n))),t}if(r instanceof Set){let t=new Set;return r.forEach(n=>t.add(Ze(n))),t}let e={};for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=Ze(r[t]));return e}function yi(r,e){let t=new Error(r);return Object.assign(t,e),t}function wi(r){if(r instanceof Error){let e={};for(let[n,s]of Object.entries(r))n!=="message"&&n!=="name"&&n!=="stack"&&(e[n]=s);let t=Object.keys(e).length>0?` | ${JSON.stringify(e)}`:"";return`${r.name}: ${r.message}${t}`}return String(r)}function bi(r){if(typeof r!="string"||r.length>2048)return null;try{let e=new URL(r);return rt(e)?(e.username="",e.password="",e.toString()):null}catch{return null}}function xi(){let r=Xc();if(r?.hrtime){let[t,n]=r.hrtime();return t*1e3+n/1e6}return typeof globalThis.Bun<"u",Date.now()}function _i(r,e){return e?.aborted?Promise.reject(_n()):new Promise((t,n)=>{let s=()=>{clearTimeout(o),n(_n())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e&&e.addEventListener("abort",s,{once:!0})})}function br(r){if(r.length===0)return new Uint8Array(0);let e=r.reduce((s,o)=>s+o.byteLength,0),t=new Uint8Array(e),n=0;for(let s of r)t.set(s,n),n+=s.byteLength;return t}function Si(r){if(r instanceof Uint8Array)return r.slice();if(r instanceof ArrayBuffer)return new Uint8Array(r);let e=Yc();return e&&e.isBuffer(r)?new Uint8Array(r):typeof r=="string"?new TextEncoder().encode(r):null}function Ut(r){if(r.byteLength<=24576){let n="";for(let s=0;s<r.byteLength;s++)n+=String.fromCharCode(r[s]);return btoa(n)}let t=[];for(let n=0;n<r.byteLength;n+=24576){let s=r.subarray(n,n+24576),o="";for(let i=0;i<s.byteLength;i++)o+=String.fromCharCode(s[i]);t.push(btoa(o))}return t.map((n,s)=>s<t.length-1?n.replace(/=+$/,""):n).join("")}function xr(...r){let e=r.filter(s=>s!=null);if(e.length===0)return;if(e.length===1)return e[0];if(e.some(s=>s.aborted)){let s=new AbortController;return s.abort(),s.signal}let t=new AbortController,n=()=>{for(let s of e)s.removeEventListener("abort",n);t.abort(_n())};t.signal.addEventListener("abort",()=>{for(let s of e)s.removeEventListener("abort",n)},{once:!0});for(let s of e)s.addEventListener("abort",n,{once:!0});return t.signal}function _r(r){if(!(r instanceof Error))return!1;if(r.name==="AbortError")return!0;let e=r;return e.code==="ECONNRESET"||e.code==="ECONNABORTED"||r instanceof DOMException&&r.name==="AbortError"}function nt(r){let e=new Uint8Array(r);if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(e);else{let t=typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):"";if(t.length>=r*2)return t.slice(0,r*2);for(let n=0;n<e.length;n++)e[n]=Math.floor(Math.random()*256)}return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}function _n(){if(typeof DOMException<"u")return new DOMException("Aborted","AbortError");let r=new Error("Aborted");return r.name="AbortError",r}function Sr(){if(ne)return ne;try{if(globalThis.process?.versions?.node)return ne="node",ne}catch{}return typeof globalThis.Deno<"u"?ne="deno":typeof globalThis.Bun<"u"?ne="bun":typeof window<"u"?ne="browser":typeof globalThis<"u"&&typeof globalThis.fetch=="function"?ne="edge":ne="unknown",ne}function Ti(){return Sr()==="node"}function Ei(){return Sr()==="browser"}function Ri(){return typeof globalThis?.fetch=="function"}function st(r){let e={};return r.forEach((t,n)=>{e[n.toLowerCase()]=t}),e}var yr,wr,Zc,el,tl,rl,ne,fe=q(()=>{"use strict";Zc={maxDepth:32,maxStringLength:10*1024*1024,maxArrayLength:1e4,maxObjectKeys:1e3,allowNonFinite:!1};el=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;tl=new Set(["file","ftp","gopher","data","javascript","dict","ldap","ldaps","rlogin","telnet","tn3270","imap","pop","smtp","nntp","news","ssh","git","svn","webcal","urn"]),rl=[/^127\./,/^10\./,/^192\.168\./,/^172\.(1[6-9]|2\d|3[01])\./,/^169\.254\./,/^0\./,/^::1$/i,/^fc00:/i,/^fd00:/i,/^fe80:/i,/^2001:db8:/i,/^::0?ffff:/i,/^0:0:0:0:0:ffff:/i,/^::ffff:127\./i,/^::ffff:10\./i,/^::ffff:192\.168\./i,/^::ffff:172\.(1[6-9]|2\d|3[01])\./i,/^::ffff:169\.254\./i,/^0:0:0:0:0:ffff:7f/i,/^::$/i];ne=null});var vi={};ue(vi,{CloudflareKVAdapter:()=>it,HTTPCache:()=>se,MemoryStorageAdapter:()=>ye,TwoTierStorageAdapter:()=>at,WebStorageAdapter:()=>Me,createKVCache:()=>An,createLocalStorageCache:()=>Rn,createMemoryCache:()=>En,createSessionStorageCache:()=>kn,createTwoTierCache:()=>Cn,getAuthFingerprint:()=>Oe});function nl(r){let e={noStore:!1,noCache:!1,mustRevalidate:!1,proxyRevalidate:!1,public:!1,private:!1,maxAge:null,sMaxAge:null,staleWhileRevalidate:null,staleIfError:null,immutable:!1};for(let t of r.split(",")){let n=t.trim(),s=n.indexOf("="),o=(s===-1?n:n.slice(0,s)).trim().toLowerCase(),i=s===-1?null:n.slice(s+1).trim().replace(/^"|"$/g,""),a=i!==null?parseInt(i,10):null;switch(o){case"no-store":e.noStore=!0;break;case"no-cache":e.noCache=!0;break;case"must-revalidate":e.mustRevalidate=!0;break;case"proxy-revalidate":e.proxyRevalidate=!0;break;case"public":e.public=!0;break;case"private":e.private=!0;break;case"immutable":e.immutable=!0;break;case"max-age":e.maxAge=a;break;case"s-maxage":e.sMaxAge=a;break;case"stale-while-revalidate":e.staleWhileRevalidate=a;break;case"stale-if-error":e.staleIfError=a;break;case"no-transform":break;case"only-if-cached":break;case"must-understand":break;default:break}}return e}function ki(r,e){return r?r.trim()==="*"?null:r.split(",").map(s=>s.trim().toLowerCase()).sort().map(s=>{let o=e[s]??e[s.toLowerCase()]??"";return`${s}=${o}`}).join(";"):""}function ot(r){let e=["\0-","\x7F-\x9F"].join(""),t=new RegExp(`[${e}]`,"g");return r.replaceAll(t,"").replaceAll(/\s+/g," ").trim()}async function Oe(r){let e=["authorization","cookie","x-api-key","x-auth-token"],t=[];for(let i of e){let a=r[i.toLowerCase()];a&&t.push(`${i}=${a}`)}if(t.length===0)return"";let n=new TextEncoder().encode(t.join("|")),s=await crypto.subtle.digest("SHA-256",n);return`auth:${Array.from(new Uint8Array(s)).map(i=>i.toString(16).padStart(2,"0")).join("").slice(0,32)}`}async function sl(r){try{let e=new URL(r.url),t=ot(e.hostname),n=ot(e.pathname);e.searchParams.sort();let s=ot(e.search);e.hash="";let o=`${e.protocol}//${t}${e.port?":"+e.port:""}${n}${s}`,i=ot(r.method.toUpperCase()),a=await Oe(r.headers??{}),c=`${i}:${o}`;return a?`${c}:${a}`:c}catch{let e=ot(r.method.toUpperCase()),t=ot(r.url),n=await Oe(r.headers??{}),s=`${e}:${t}`;return n?`${s}:${n}`:s}}function Ai(r,e,t){let n=r.headers["cache-control"]??r.headers["Cache-Control"]??"",s=nl(n);if(t&&s.noStore)return{ttlMs:0,swrMs:0,staleOnError:0,shouldCache:!1};let o=s.sMaxAge??s.maxAge,i;if(o!==null){let l=parseInt(r.headers.age??r.headers.Age??"0",10)||0;i=Math.max(0,(o-l)*1e3)}else{let l=r.headers.expires??r.headers.Expires;if(l){let u=Date.parse(l);i=isNaN(u)?e:Math.max(0,u-Date.now())}else{let u=r.headers["last-modified"]??r.headers["Last-Modified"];if(u){let f=Date.parse(u);isNaN(f)?i=e:i=Math.min((Date.now()-f)*.1,e)}else i=e}}s.immutable&&i>0&&(i=365*24*60*60*1e3);let a=s.staleWhileRevalidate!==null?s.staleWhileRevalidate*1e3:0,c=s.staleIfError!==null?s.staleIfError*1e3:0;return{ttlMs:i,swrMs:a,staleOnError:c,shouldCache:i>0||a>0}}function Tr(r){return{...r,response:Ci(r.response),tags:[...r.tags]}}function Ci(r){return{...r,headers:{...r.headers},body:r.body instanceof Uint8Array?new Uint8Array(r.body):r.body}}function ol(r){return r?typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength:0}function En(r){return new se({...r,storage:new ye})}function Rn(r,e){if(typeof localStorage>"u")throw new Error("localStorage is not available");return new se({...e,storage:new Me(localStorage,r)})}function kn(r,e){if(typeof sessionStorage>"u")throw new Error("sessionStorage is not available");return new se({...e,storage:new Me(sessionStorage,r)})}function An(r,e){return new se({...e,storage:new it(r)})}function Cn(r,e){return new se({...e,storage:new at(r)})}var ye,Me,it,at,Sn,Tn,se,$t=q(()=>{"use strict";fe();ye=class{constructor(){h(this,"store",new Map)}get(e){return Promise.resolve(this.store.get(e)??null)}set(e,t){return this.store.set(e,t),Promise.resolve()}delete(e){return this.store.delete(e),Promise.resolve()}keys(){return Promise.resolve(Array.from(this.store.keys()))}clear(){return this.store.clear(),Promise.resolve()}get size(){return this.store.size}},Me=class{constructor(e,t="hc:"){h(this,"storage");h(this,"prefix");this.storage=e,this.prefix=t}get(e){try{let t=this.storage.getItem(this.prefix+e);if(!t)return Promise.resolve(null);let n=he(t,{maxDepth:32});return Promise.resolve(n.success&&n.value!==void 0?n.value:null)}catch{return Promise.resolve(null)}}set(e,t){try{return this.storage.setItem(this.prefix+e,JSON.stringify(t)),Promise.resolve(!0)}catch(n){return n instanceof Error&&(n.name==="QuotaExceededError"||n.name==="NS_ERROR_DOM_QUOTA_REACHED")&&console.warn("[kinetex] WebStorageAdapter: storage quota exceeded. Entry was NOT cached. Consider reducing maxBodySizeBytes or using a different storage adapter."),Promise.resolve(!1)}}delete(e){return this.storage.removeItem(this.prefix+e),Promise.resolve()}keys(){let e=[];for(let t=0;t<this.storage.length;t++){let n=this.storage.key(t);n?.startsWith(this.prefix)&&e.push(n.slice(this.prefix.length))}return Promise.resolve(e)}clear(){let e=[];for(let t=0;t<this.storage.length;t++){let n=this.storage.key(t);n?.startsWith(this.prefix)&&e.push(n)}for(let t of e)this.storage.removeItem(t);return Promise.resolve()}},it=class{constructor(e,t="hc:"){h(this,"kv");h(this,"prefix");this.kv=e,this.prefix=t}async get(e){return await this.kv.get(this.prefix+e,"json")}async set(e,t){let n=t.expiresAt===1/0?void 0:Math.max(1,Math.ceil((t.expiresAt-Date.now())/1e3));await this.kv.put(this.prefix+e,JSON.stringify(t),{...n!==void 0?{expirationTtl:n}:{}})}async delete(e){await this.kv.delete(this.prefix+e)}async keys(){return(await this.kv.list({prefix:this.prefix})).keys.map(t=>t.name.slice(this.prefix.length))}async clear(){let e=await this.keys();await Promise.all(e.map(t=>this.kv.delete(this.prefix+t)))}},at=class{constructor(e){h(this,"l2");h(this,"l1",new ye);this.l2=e}async get(e){let t=await this.l1.get(e);if(t)return t;let n=await this.l2.get(e);return n&&await this.l1.set(e,n),n}async set(e,t){await Promise.all([this.l1.set(e,t),this.l2.set(e,t)])}async delete(e){await Promise.all([this.l1.delete(e),this.l2.delete(e)])}async keys(){return await this.l2.keys()}async clear(){await Promise.all([this.l1.clear(),this.l2.clear()])}};Sn=class{constructor(e,t=null,n=null){h(this,"key");h(this,"prev");h(this,"next");this.key=e,this.prev=t,this.next=n}},Tn=class{constructor(){h(this,"map",new Map);h(this,"head",null);h(this,"tail",null)}touch(e){let t=this.map.get(e);if(t)this._unlink(t),this._prepend(t);else{let n=new Sn(e);this.map.set(e,n),this._prepend(n)}}evict(){if(!this.tail)return null;let e=this.tail.key;return this._unlink(this.tail),this.map.delete(e),e}remove(e){let t=this.map.get(e);t&&(this._unlink(t),this.map.delete(e))}clear(){this.map.clear(),this.head=null,this.tail=null}get size(){return this.map.size}_prepend(e){e.prev=null,e.next=this.head,this.head&&(this.head.prev=e),this.head=e,this.tail||(this.tail=e)}_unlink(e){e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=null,e.next=null}},se=class{constructor(e={}){h(this,"cfg");h(this,"storage");h(this,"lru",new Tn);h(this,"tagIndex",new Map);h(this,"swrInFlight",new Set);h(this,"stats",{hits:0,misses:0,staleHits:0,errors:0,evictions:0,totalEntries:0,totalSizeBytes:0,hitRate:0});this.cfg={maxEntries:e.maxEntries??500,maxSizeBytes:e.maxSizeBytes??50*1024*1024,maxBodySizeBytes:e.maxBodySizeBytes??5*1024*1024,defaultTtlMs:e.defaultTtlMs??6e4,maxAbsoluteAgeMs:e.maxAbsoluteAgeMs??10080*60*1e3,honorCacheControl:e.honorCacheControl??!0,cacheMethods:e.cacheMethods??["GET","HEAD"],cacheStatuses:e.cacheStatuses??[200,203,204,206,300,301,304,404,405,410,414,501],cacheKey:e.cacheKey??sl,storage:e.storage??new ye,namespace:e.namespace??""},(this.cfg.defaultTtlMs===1/0||this.cfg.defaultTtlMs>365*24*60*60*1e3)&&(console.warn(`[Kinetex Cache] Capping defaultTtlMs from ${this.cfg.defaultTtlMs}ms to 1 year (${365*24*60*60*1e3}ms)`),this.cfg.defaultTtlMs=365*24*60*60*1e3),this.storage=this.cfg.storage}async get(e){if(!this._isCacheable(e.method))return null;let t=await this._key(e),n=await this.storage.get(t);if(!n)return this.stats.misses++,this._updateHitRate(),null;if(n.varyKey!==null&&n.varyKey!==""){let i=ki(n.response.headers.vary??n.response.headers.Vary??"",e.headers);if(i===null||i!==n.varyKey)return this.stats.misses++,this._updateHitRate(),null}let s=Date.now();return s-n.createdAt>this.cfg.maxAbsoluteAgeMs?(await this._delete(t,n),this.stats.misses++,this._updateHitRate(),null):n.expiresAt===1/0||n.expiresAt>s?(this.stats.hits++,this.lru.touch(t),this._updateHitRate(),{entry:Tr(n),stale:!1}):n.staleUntil>s?(this.stats.staleHits++,this.lru.touch(t),this._updateHitRate(),{entry:Tr(n),stale:!0}):n.staleOnError>s?(this.stats.staleHits++,this._updateHitRate(),{entry:Tr(n),stale:!0}):(await this._delete(t,n),this.stats.misses++,this._updateHitRate(),null)}async set(e,t,n={}){if(!this._isCacheable(e.method)||!this.cfg.cacheStatuses.includes(t.status))return!1;let{ttlMs:s,swrMs:o,staleOnError:i,shouldCache:a}=n.ttlMs!==void 0?{ttlMs:n.ttlMs,swrMs:0,staleOnError:0,shouldCache:!0}:Ai(t,this.cfg.defaultTtlMs,this.cfg.honorCacheControl);if(!a&&!n.force)return!1;let c=ol(t.body);if(c>this.cfg.maxBodySizeBytes)return!1;let l=Date.now(),u=this.cfg.maxAbsoluteAgeMs,f=Math.min(s===1/0?u:s,u);if(f<=0&&!n.force)return!1;let d=t.headers.vary??t.headers.Vary??null,p=d?ki(d,e.headers):"";if(p===null)return!1;let g=n.tags??[],m={response:Ci(t),createdAt:l,expiresAt:f===1/0?1/0:l+f,staleUntil:l+f+o,staleOnError:l+f+i,etag:t.headers.etag??t.headers.ETag??null,lastModified:t.headers["last-modified"]??t.headers["Last-Modified"]??null,varyKey:p,tags:g,size:c+256},y=await this._key(e);if(await this._ensureCapacity(m.size),await this.storage.set(y,m)===!1)return!1;this.lru.touch(y),this.stats.totalEntries++,this.stats.totalSizeBytes+=m.size;for(let x of g){let S=this.tagIndex.get(x)??new Set;S.add(y),this.tagIndex.set(x,S)}return!0}buildConditionalHeaders(e){let t={};return e.etag&&(t["if-none-match"]=e.etag),e.lastModified&&(t["if-modified-since"]=e.lastModified),t}async revalidate(e,t){let n=await this._key(e),s=await this.storage.get(n);if(!s)return null;let o={...s.response.headers,...t.headers},i={...s.response,headers:o},{ttlMs:a,swrMs:c,staleOnError:l}=Ai(i,this.cfg.defaultTtlMs,this.cfg.honorCacheControl),u=Date.now(),f=Math.min(a===1/0?this.cfg.maxAbsoluteAgeMs:a,this.cfg.maxAbsoluteAgeMs),d={...s,response:i,createdAt:u,expiresAt:f<=0?u:u+f,staleUntil:u+f+c,staleOnError:u+f+l,etag:o.etag??o.ETag??s.etag,lastModified:o["last-modified"]??o["Last-Modified"]??s.lastModified};return await this.storage.set(n,d),this.lru.touch(n),Tr(d)}async markSWRInFlight(e){let t=await this._key(e);return this.swrInFlight.has(t)?!1:(this.swrInFlight.add(t),!0)}async clearSWRInFlight(e){let t=await this._key(e);this.swrInFlight.delete(t)}async isSWRInFlight(e){let t=await this._key(e);return this.swrInFlight.has(t)}async delete(e){let t=await this._key(e),n=await this.storage.get(t);return n?(await this._delete(t,n),!0):!1}async invalidateByURL(e){let t=await this.storage.keys(),n=0;for(let s of t){let o=this.cfg.namespace?s.startsWith(this.cfg.namespace+":")?s.slice(this.cfg.namespace.length+1):null:s;if(o===null)continue;let i=o.indexOf(":");if(i===-1)continue;let a=o.slice(i+1),c=a.lastIndexOf(":auth:"),l=c!==-1?a.slice(0,c):a,u=e.endsWith("/")?e.slice(0,-1):e;if((l.endsWith("/")?l.slice(0,-1):l).startsWith(u)){let d=await this.storage.get(s);await this._delete(s,d??void 0),n++}}return n}async invalidateByTag(e){let t=this.tagIndex.get(e);if(!t||t.size===0)return 0;let n=0;for(let s of[...t]){let o=await this.storage.get(s);await this._delete(s,o??void 0),n++}return this.tagIndex.delete(e),n}async clear(){await this.storage.clear(),this.lru.clear(),this.tagIndex.clear(),this.swrInFlight.clear(),this.stats.totalEntries=0,this.stats.totalSizeBytes=0}async warm(e){for(let{req:t,res:n,tags:s}of e)await this.set(t,n,{...s!==void 0?{tags:s}:{},force:!0})}getStats(){return{...this.stats}}resetStats(){this.stats={hits:0,misses:0,staleHits:0,errors:0,evictions:0,totalEntries:0,totalSizeBytes:0,hitRate:0}}async serialize(){let e=await this.storage.keys(),t=[],n=Date.now();for(let s of e){let o=await this.storage.get(s);o&&(o.expiresAt!==1/0&&o.expiresAt<n||t.push([s,o]))}return JSON.stringify({version:1,entries:t})}async deserialize(e){let t=he(e,{maxDepth:32});if(!t.success)throw new Error("[kinetex] HTTPCache.deserialize: invalid JSON");let n=t.value;if(typeof n!="object"||n===null||!("version"in n)||!("entries"in n)||n.version!==1||!Array.isArray(n.entries))throw new Error("[kinetex] HTTPCache.deserialize: unexpected format (expected {version:1, entries:[\u2026]})");let{entries:s}=n,o=Date.now();for(let i of s){if(!Array.isArray(i)||i.length!==2)continue;let[a,c]=i;if(typeof a!="string"||a.length===0||a.length>2048)continue;let l=null;try{typeof c=="object"&&c!==null&&typeof c.createdAt=="number"&&typeof c.expiresAt=="number"&&typeof c.staleUntil=="number"&&typeof c.staleOnError=="number"&&typeof c.size=="number"&&Array.isArray(c.tags)&&c.tags.every(d=>typeof d=="string")&&(l=c)}catch{}if(!l)continue;let u=c;if(!(u.expiresAt!==1/0&&u.expiresAt<o)&&!(o-u.createdAt>this.cfg.maxAbsoluteAgeMs)&&!(u.size>this.cfg.maxBodySizeBytes+512)){await this.storage.set(a,u),this.lru.touch(a),this.stats.totalEntries++,this.stats.totalSizeBytes+=u.size;for(let f of u.tags){let d=this.tagIndex.get(f)??new Set;d.add(a),this.tagIndex.set(f,d)}}}}async _key(e){let t=await this.cfg.cacheKey(e);return this.cfg.namespace?`${this.cfg.namespace}:${t}`:t}_isCacheable(e){return this.cfg.cacheMethods.includes(e.toUpperCase())}async _delete(e,t){if(await this.storage.delete(e),this.lru.remove(e),t){this.stats.totalEntries=Math.max(0,this.stats.totalEntries-1),this.stats.totalSizeBytes=Math.max(0,this.stats.totalSizeBytes-t.size);for(let n of t.tags)this.tagIndex.get(n)?.delete(e)}}async _ensureCapacity(e){for(;this.stats.totalEntries>=this.cfg.maxEntries;){let t=this.lru.evict();if(!t)break;let n=await this.storage.get(t);await this._delete(t,n??void 0),this.stats.evictions++}for(;this.stats.totalSizeBytes+e>this.cfg.maxSizeBytes;){let t=this.lru.evict();if(!t)break;let n=await this.storage.get(t);await this._delete(t,n??void 0),this.stats.evictions++}}_updateHitRate(){let e=this.stats.hits+this.stats.misses+this.stats.staleHits;this.stats.hitRate=e>0?(this.stats.hits+this.stats.staleHits)/e:0}}});function Al(r){if(typeof atob<"u")return atob(r);let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="";r=r.replace(/=+$/,"");for(let n=0;n<r.length;n+=4){let s=e.indexOf(r[n]),o=n+1<r.length?e.indexOf(r[n+1]):0,i=n+2<r.length?e.indexOf(r[n+2]):0,a=n+3<r.length?e.indexOf(r[n+3]):0;t+=String.fromCharCode(s<<2|o>>4),n+2<r.length&&(t+=String.fromCharCode((o&15)<<4|i>>2)),n+3<r.length&&(t+=String.fromCharCode((i&3)<<6|a))}return t}function Vi(r){if(typeof btoa<"u")return btoa(r);let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="";for(let n=0;n<r.length;n+=3){let s=r.charCodeAt(n),o=n+1<r.length?r.charCodeAt(n+1):0,i=n+2<r.length?r.charCodeAt(n+2):0;t+=e[s>>2],t+=e[(s&3)<<4|o>>4],t+=n+1<r.length?e[(o&15)<<2|i>>6]:"=",t+=n+2<r.length?e[i&63]:"="}return t}function K(r){let e=new Map;for(let t of r.split(";")){let n=t.trim();if(!n)continue;let s=n.indexOf("=");if(s===-1)e.set(n.toLowerCase(),"");else{let o=n.slice(0,s).trim().toLowerCase(),i=n.slice(s+1).trim();i.startsWith('"')&&i.endsWith('"')&&(i=i.slice(1,-1)),e.set(o,i)}}return e}function Ir(r){return r.split(",").map(e=>{let t=e.trim().split(";"),n=(t[0]??"").trim(),s=1,o=new Map;for(let i=1;i<t.length;i++){let a=t[i].trim(),c=a.indexOf("=");if(c===-1)continue;let l=a.slice(0,c).trim().toLowerCase(),u=a.slice(c+1).trim();l==="q"?s=parseFloat(u)||0:o.set(l,u)}return{value:n,quality:s,params:o}}).filter(e=>e.value!=="").sort((e,t)=>t.quality-e.quality)}function vl(r){let e=r.match(/^([A-Za-z0-9_-]+)'([A-Za-z0-9_-]*)'(.+)$/);if(!e)return null;try{return decodeURIComponent(e[3])}catch{return null}}function cs(r){if(!r)return null;let e=r.indexOf(";"),t=e===-1?r.trim():r.slice(0,e).trim(),n=t.indexOf("/");if(n===-1)return null;let s=t.slice(0,n).toLowerCase(),o=t.slice(n+1).toLowerCase();if(!s||!o)return null;let i=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;if(!i.test(s)||!i.test(o))return null;let a=e===-1?new Map:K(r.slice(e));return{mediaType:`${s}/${o}`,type:s,subtype:o,charset:a.get("charset")??null,boundary:a.get("boundary")??null,params:a}}function ls(r){let e=r.mediaType;if(r.charset&&(e+=`; charset=${r.charset}`),r.boundary&&(e+=`; boundary=${r.boundary}`),r.params&&r.params instanceof Map)r.params.forEach((t,n)=>{n==="charset"||n==="boundary"||(e+=`; ${n}=${t.includes(" ")?`"${t}"`:t}`)});else if(r.params&&typeof r.params=="object")for(let[t,n]of Object.entries(r.params))t==="charset"||t==="boundary"||(e+=`; ${t}=${n.includes(" ")?`"${n}"`:n}`);return e}function us(r){if(!r)return null;let e=r.indexOf(";"),t=(e===-1?r:r.slice(0,e)).trim().toLowerCase(),n=e===-1?new Map:K(r.slice(e)),s=null,o=n.get("filename*");o&&(s=vl(o)),s===null&&(s=n.get("filename")??null);let i=n.get("name")??null;return{type:t,filename:s,name:i,params:n}}function hs(r){let e=r.type;if(r.name&&(e+=`; name="${r.name}"`),r.filename){e+=`; filename="${r.filename}"`;let t=encodeURIComponent(r.filename);t!==r.filename&&(e+=`; filename*=UTF-8''${t}`)}return e}function fs(r){let e={noCache:!1,noStore:!1,noTransform:!1,onlyIfCached:!1,maxAge:null,maxStale:null,minFresh:null,staleIfError:null,public:!1,private:!1,mustRevalidate:!1,proxyRevalidate:!1,sMaxAge:null,immutable:!1,mustUnderstand:!1,staleWhileRevalidate:null,unknown:new Map};for(let t of r.split(",")){let n=t.trim(),s=n.indexOf("="),o=(s===-1?n:n.slice(0,s)).trim().toLowerCase(),i=s===-1?null:n.slice(s+1).trim().replace(/^"|"$/g,""),a=i!==null?parseInt(i,10):null;switch(o){case"no-cache":e.noCache=!0;break;case"no-store":e.noStore=!0;break;case"no-transform":e.noTransform=!0;break;case"only-if-cached":e.onlyIfCached=!0;break;case"public":e.public=!0;break;case"must-revalidate":e.mustRevalidate=!0;break;case"proxy-revalidate":e.proxyRevalidate=!0;break;case"immutable":e.immutable=!0;break;case"must-understand":e.mustUnderstand=!0;break;case"max-age":e.maxAge=a;break;case"max-stale":e.maxStale=a??1/0;break;case"min-fresh":e.minFresh=a;break;case"s-maxage":e.sMaxAge=a;break;case"stale-if-error":e.staleIfError=a;break;case"stale-while-revalidate":e.staleWhileRevalidate=a;break;case"private":e.private=i?i.split(",").map(c=>c.trim()):!0;break;default:e.unknown.set(o,i??!0)}}return e}function ds(r){let e=[];if(r.noCache&&e.push("no-cache"),r.noStore&&e.push("no-store"),r.noTransform&&e.push("no-transform"),r.onlyIfCached&&e.push("only-if-cached"),r.public&&e.push("public"),r.mustRevalidate&&e.push("must-revalidate"),r.proxyRevalidate&&e.push("proxy-revalidate"),r.immutable&&e.push("immutable"),r.mustUnderstand&&e.push("must-understand"),r.maxAge!=null&&e.push(`max-age=${r.maxAge}`),r.maxStale!=null&&e.push(r.maxStale===1/0?"max-stale":`max-stale=${r.maxStale}`),r.minFresh!=null&&e.push(`min-fresh=${r.minFresh}`),r.sMaxAge!=null&&e.push(`s-maxage=${r.sMaxAge}`),r.staleIfError!=null&&e.push(`stale-if-error=${r.staleIfError}`),r.staleWhileRevalidate!=null&&e.push(`stale-while-revalidate=${r.staleWhileRevalidate}`),r.private&&e.push(Array.isArray(r.private)?`private=${r.private.join(", ")}`:"private"),r.unknown)for(let[t,n]of r.unknown)e.push(n===!0?t:`${t}=${n}`);return e.join(", ")}function Cr(r){if(!r)return null;let e=r.indexOf(" ");if(e===-1)return{scheme:r.toLowerCase(),token:null,params:new Map,basic:null};let t=r.slice(0,e).toLowerCase(),n=r.slice(e+1).trim(),s=new Map,o=null,i=null;if(t==="basic"){o=n;try{let a=Al(n),c=a.indexOf(":");c!==-1&&(i={username:a.slice(0,c),password:a.slice(c+1)})}catch{}}else if(t==="bearer"||t==="token")o=n;else if(n.includes("="))for(let a of n.split(",")){let c=a.trim(),l=c.indexOf("=");if(l===-1)continue;let u=c.slice(0,l).trim().toLowerCase(),f=c.slice(l+1).trim();f.startsWith('"')&&f.endsWith('"')&&(f=f.slice(1,-1)),s.set(u,f)}else o=n;return{scheme:t,token:o,params:s,basic:i}}function vr(r){let e=[],t=[],n="",s=!1;for(let o=0;o<r.length;o++){let i=r[o];i==='"'&&(o===0||r[o-1]!=="\\")&&(s=!s),i===","&&!s?(t.push(n.trim()),n=""):n+=i}n.trim()&&t.push(n.trim());for(let o of t){if(!o)continue;let i=o.indexOf(" "),a=(i===-1?o:o.slice(0,i)).toLowerCase(),c=i===-1?"":o.slice(i+1),l=K(c);e.push({scheme:a,realm:l.get("realm")??null,params:l})}return e}function Xi(r){return`Bearer ${r}`}function Yi(r,e){return`Basic ${Vi(`${r}:${e}`)}`}function Lr(r){return Ir(r)}function ps(r){return Ir(r)}function ms(r){return Ir(r)}function Zi(r){return r.trim()?Ir(r):[]}function ea(r,e){let t=Lr(r);for(let{value:n}of t){if(n==="*/*")return e[0]??null;let[s]=n.split("/");if(n.endsWith("/*")){let o=e.find(i=>i.startsWith(s+"/"));if(o)return o}if(e.includes(n))return n}return null}function gs(r){let e=r.indexOf("=");if(e===-1)return null;let t=r.slice(0,e).trim().toLowerCase(),n=r.slice(e+1).split(",").map(s=>{let o=s.trim(),i=o.indexOf("-");if(i===-1)return null;let a=o.slice(0,i).trim(),c=o.slice(i+1).trim();return{start:a===""?null:parseInt(a,10),end:c===""?null:parseInt(c,10)}}).filter(s=>s!==null);return{unit:t,ranges:n}}function ys(r){let e=r.match(/^(\S+)\s+(\*|\d+-\d+)\/(\*|\d+)$/);if(!e)return null;let t=e[1].toLowerCase(),n=e[2],s=e[3]==="*"?null:parseInt(e[3],10);if(n==="*")return{unit:t,start:null,end:null,total:s};let o=n.indexOf("-");return{unit:t,start:parseInt(n.slice(0,o),10),end:parseInt(n.slice(o+1),10),total:s}}function Pr(r){let e=[],t=r.split(/,\s*(?=<)/);for(let n of t){let s=n.trim(),o=s.indexOf(">");if(!s.startsWith("<")||o===-1)continue;let i=s.slice(1,o),a=s.slice(o+1),c=K(a);e.push({uri:i,rel:c.get("rel")??null,type:c.get("type")??null,hreflang:c.get("hreflang")??null,title:c.get("title")??null,media:c.get("media")??null,params:c})}return e}function ta(r){return r.map(e=>{let t=`<${e.uri}>`;e.rel&&(t+=`; rel="${e.rel}"`),e.type&&(t+=`; type="${e.type}"`),e.hreflang&&(t+=`; hreflang="${e.hreflang}"`),e.title&&(t+=`; title="${e.title}"`),e.media&&(t+=`; media="${e.media}"`);let n=e.params instanceof Map?[...e.params.entries()]:Object.entries(e.params??{});for(let[s,o]of n)["rel","type","hreflang","title","media"].includes(s)||(t+=`; ${s}="${o}"`);return t}).join(", ")}function ws(r){let e={by:null,for:[],host:null,proto:null};for(let t of r.split(",")){let n=K(t.trim());n.has("by")&&(e.by=n.get("by")),n.has("for")&&e.for.push(n.get("for")),n.has("host")&&(e.host=n.get("host")),n.has("proto")&&(e.proto=n.get("proto"))}return e}function Mr(r){let e=r.get(w.Forwarded);if(e)return ws(e);let t=r.get(w.XForwardedFor),n=r.get(w.XForwardedHost),s=r.get(w.XForwardedProto);return{by:null,for:t?t.split(",").map(o=>o.trim()):[],host:n??null,proto:s??null}}function bs(r){let e=Mr(r);return e.for.length>0?e.for[0]:r.get(w.XRealIP)}function xs(r){let e=r.trim();if(/^\d+$/.test(e))return{date:null,delay:parseInt(e,10)};let t=Date.parse(e);return isNaN(t)?{date:null,delay:null}:{date:new Date(t),delay:null}}function ra(r){let e=[],t="",n=!1;for(let s=0;s<r.length;s++){let o=r[s];o==='"'&&(s===0||r[s-1]!=="\\")&&(n=!n),o===","&&!n?(t.trim()&&e.push(t.trim()),t=""):t+=o}return t.trim()&&e.push(t.trim()),e.map(s=>{let o=s.match(/^(\d{3})\s+(\S+)\s+["']?([^"']+)["']?\s*(.*)$/);if(!o)return null;let i=o[1],a=o[2],c=o[3],l=o[4]??"",u=parseInt(i,10),f=(()=>{let d=l.trim().replace(/^"|"$/g,"");if(d){let p=Date.parse(d);if(!isNaN(p))return new Date(p)}})();return{code:u,agent:a,text:c,...f!==void 0?{date:f}:{}}}).filter(s=>s!==null)}function _s(r){let e=K(";"+r),t=e.get("max-age");if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:{maxAge:n,includeSubDomains:e.has("includesubdomains"),preload:e.has("preload")}}function Or(r){let e=`max-age=${r.maxAge}`;return r.includeSubDomains&&(e+="; includeSubDomains"),r.preload&&(e+="; preload"),e}function Ss(r){let e=new Map;for(let t of r.split(";")){let n=t.trim().split(/\s+/);if(n.length===0||!n[0])continue;let s=n[0].toLowerCase(),o=n.slice(1);e.set(s,o)}return e}function Dr(r){let e=[];for(let[t,n]of r)e.push(n.length>0?`${t} ${n.join(" ")}`:t);return e.join("; ")}function Ts(r){return r.split(",").map(e=>{let t=e.trim().split(";"),n=(t[0]??"").trim(),s=K(t.slice(1).join(";")),o=s.get("dur");return{name:n,duration:o!==void 0?parseFloat(o):null,description:s.get("desc")??null}}).filter(e=>e.name!=="")}function na(r){return r.map(e=>{let t=e.name;return e.duration!==null&&(t+=`;dur=${e.duration}`),e.description!==null&&(t+=`;desc="${e.description}"`),t}).join(", ")}function Es(r){if(r.trim()==="clear")return[];let e=[];for(let t of r.split(",")){let n=t.trim(),s=n.indexOf("=");if(s===-1)continue;let o=n.slice(0,s).trim().replace(/^"|"$/g,""),i=n.slice(s+1).trim(),a=i.indexOf(";"),c=a!==-1?K(";"+i.slice(a+1)):new Map,l=(a!==-1?i.slice(0,a):i).replace(/^"|"$/g,""),u,f;if(l.startsWith("[")){let d=l.indexOf("]");if(d===-1)u=l,f=443;else{u=l.slice(0,d+1);let p=l.slice(d+2);f=p?parseInt(p,10):443}}else{let d=l.lastIndexOf(":");u=d===-1?l:l.slice(0,d),f=d===-1?443:parseInt(l.slice(d+1),10)}e.push({protocol:o,host:u,port:f,maxAge:c.has("ma")?parseInt(c.get("ma"),10):null,persist:c.has("persist")&&c.get("persist")==="1"})}return e}function sa(r){let e=new ie;for(let[t,n]of Object.entries(r))if(n!==void 0)if(Array.isArray(n))for(let s of n)e.append(t,s);else e.append(t,n);return e}function oa(r){let e={};return r.forEach((t,n)=>{let o=r.getAll(n);e[n]=o.length===1?o[0]:[...o]}),e}function ia(r){return new ie(r)}function aa(r={}){let e=new ie;if(r.hsts!==!1){let t=r.hsts===!0||r.hsts===void 0?{maxAge:31536e3,includeSubDomains:!0,preload:!1}:r.hsts;e.set(w.StrictTransportSecurity,Or(t))}if(r.csp){let t=typeof r.csp=="string"?r.csp:Dr(r.csp);e.set(w.ContentSecurityPolicy,t)}return e.set(w.XFrameOptions,r.frameOptions??"DENY"),r.noSniff!==!1&&e.set(w.XContentTypeOptions,"nosniff"),e.set(w.ReferrerPolicy,r.referrer??"strict-origin-when-cross-origin"),r.permissions&&e.set(w.PermissionsPolicy,r.permissions),r.coep&&e.set(w.CrossOriginEmbedderPolicy,r.coep),r.coop&&e.set(w.CrossOriginOpenerPolicy,r.coop),r.corp&&e.set(w.CrossOriginResourcePolicy,r.corp),e}function ca(r){let e=new ie,t=Array.isArray(r.origin)?r.origin.join(", "):r.origin;return e.set(w.AccessControlAllowOrigin,t),r.methods?.length&&e.set(w.AccessControlAllowMethods,r.methods.join(", ")),r.allowHeaders?.length&&e.set(w.AccessControlAllowHeaders,r.allowHeaders.join(", ")),r.exposeHeaders?.length&&e.set(w.AccessControlExposeHeaders,r.exposeHeaders.join(", ")),r.credentials&&e.set(w.AccessControlAllowCredentials,"true"),r.maxAge!=null&&e.set(w.AccessControlMaxAge,String(r.maxAge)),e}function la(r){return new we(r)}function ua(r){return new we(r,"request")}function ha(r){return new we(r,"response")}function fa(r){return new we(r,"immutable")}var De,w,is,as,ft,Ki,Cl,U,Ji,ns,ss,os,Qi,Gi,ie,we,Bt=q(()=>{"use strict";fe();w={ContentType:"content-type",ContentLength:"content-length",ContentEncoding:"content-encoding",ContentLanguage:"content-language",ContentLocation:"content-location",ContentDisposition:"content-disposition",ContentRange:"content-range",ContentMD5:"content-md5",TransferEncoding:"transfer-encoding",TrailingHeader:"trailer",CacheControl:"cache-control",Pragma:"pragma",Expires:"expires",Age:"age",ETag:"etag",LastModified:"last-modified",Vary:"vary",IfMatch:"if-match",IfNoneMatch:"if-none-match",IfModifiedSince:"if-modified-since",IfUnmodifiedSince:"if-unmodified-since",IfRange:"if-range",Host:"host",Origin:"origin",Referer:"referer",UserAgent:"user-agent",From:"from",TE:"te",Expect:"expect",MaxForwards:"max-forwards",Accept:"accept",AcceptEncoding:"accept-encoding",AcceptLanguage:"accept-language",AcceptCharset:"accept-charset",AcceptRanges:"accept-ranges",AcceptPatch:"accept-patch",Authorization:"authorization",ProxyAuthorization:"proxy-authorization",WWWAuthenticate:"www-authenticate",ProxyAuthenticate:"proxy-authenticate",AuthenticationInfo:"authentication-info",Range:"range",Cookie:"cookie",SetCookie:"set-cookie",Location:"location",Via:"via",Forwarded:"forwarded",XForwardedFor:"x-forwarded-for",XForwardedHost:"x-forwarded-host",XForwardedProto:"x-forwarded-proto",XForwardedPort:"x-forwarded-port",XRealIP:"x-real-ip",Connection:"connection",KeepAlive:"keep-alive",Upgrade:"upgrade",AccessControlAllowOrigin:"access-control-allow-origin",AccessControlAllowMethods:"access-control-allow-methods",AccessControlAllowHeaders:"access-control-allow-headers",AccessControlExposeHeaders:"access-control-expose-headers",AccessControlMaxAge:"access-control-max-age",AccessControlAllowCredentials:"access-control-allow-credentials",AccessControlRequestMethod:"access-control-request-method",AccessControlRequestHeaders:"access-control-request-headers",Date:"date",RetryAfter:"retry-after",Allow:"allow",Server:"server",ServerTiming:"server-timing",TimingAllowOrigin:"timing-allow-origin",SecWebSocketKey:"sec-websocket-key",SecWebSocketAccept:"sec-websocket-accept",SecWebSocketProtocol:"sec-websocket-protocol",SecWebSocketVersion:"sec-websocket-version",SecWebSocketExtensions:"sec-websocket-extensions",SecFetchSite:"sec-fetch-site",SecFetchMode:"sec-fetch-mode",SecFetchUser:"sec-fetch-user",SecFetchDest:"sec-fetch-dest",StrictTransportSecurity:"strict-transport-security",ContentSecurityPolicy:"content-security-policy",ContentSecurityPolicyRO:"content-security-policy-report-only",XContentTypeOptions:"x-content-type-options",XFrameOptions:"x-frame-options",XXSSProtection:"x-xss-protection",ReferrerPolicy:"referrer-policy",PermissionsPolicy:"permissions-policy",CrossOriginOpenerPolicy:"cross-origin-opener-policy",CrossOriginEmbedderPolicy:"cross-origin-embedder-policy",CrossOriginResourcePolicy:"cross-origin-resource-policy",NEL:"nel",ReportTo:"report-to",ReportingEndpoints:"reporting-endpoints",Link:"link",AltSvc:"alt-svc",AltUsed:"alt-used",Priority:"priority",EarlyData:"early-data",PushPolicy:"push-policy",AcceptPushPolicy:"accept-push-policy",XRequestID:"x-request-id",XCorrelationID:"x-correlation-id",XRateLimitLimit:"x-ratelimit-limit",XRateLimitRemaining:"x-ratelimit-remaining",XRateLimitReset:"x-ratelimit-reset",XPoweredBy:"x-powered-by",XRequestedWith:"x-requested-with"};is=et,as=tt,ft=new Set(["set-cookie","www-authenticate","proxy-authenticate"]),Ki=new Set(["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]),Cl=new Set(["set-cookie","set-cookie2"]),ie=class{constructor(e,t="none"){Wo(this,U);h(this,"map",new Map);h(this,"guard");this.guard=t,e!=null&&ee(this,U,Ji).call(this,e)}append(e,t){ee(this,U,os).call(this,e);let n=ee(this,U,ns).call(this,e),s=ee(this,U,ss).call(this,t),o=this.map.get(n);o?o.values.push(s):this.map.set(n,{name:e,values:[s]})}delete(e){ee(this,U,Gi).call(this,e),this.map.delete(e.toLowerCase())}get(e){let t=this.map.get(e.toLowerCase());return t?ft.has(e.toLowerCase())?t.values[0]??null:t.values.join(", "):null}getAll(e){return[...this.map.get(e.toLowerCase())?.values??[]]}has(e){return this.map.has(e.toLowerCase())}set(e,t){ee(this,U,Qi).call(this,e);let n=ee(this,U,ns).call(this,e),s=ee(this,U,ss).call(this,t);this.map.set(n,{name:e,values:[s]})}forEach(e,t){for(let[n,s]of this.map){let o=ft.has(n)?s.values:[s.values.join(", ")];for(let i of o)e.call(t,i,n,this)}}keys(){return this.map.keys()}*values(){for(let[e,t]of this.map)if(ft.has(e))for(let n of t.values)yield n;else yield t.values.join(", ")}*entries(){for(let[e,t]of this.map)if(ft.has(e))for(let n of t.values)yield[e,n];else yield[e,t.values.join(", ")]}[Symbol.iterator](){return this.entries()}get[Symbol.toStringTag](){return"HttpHeaders"}toObject(){let e={};for(let[t,n]of this.map){let s=n.values;e[t]=s.length===1?s[0]:[...s]}return e}toFlatObject(){let e={};for(let[t,n]of this.map)e[t]=ft.has(t)?n.values[0]??"":n.values.join(", ");return e}toWebHeaders(){if(typeof Headers>"u")throw new Error("WHATWG Headers is not available in this runtime");let e=new Headers;for(let[t,n]of this.map)for(let s of n.values)e.append(t,s);return e}toHTTP1String(){let e=[];for(let[,t]of this.map)for(let n of t.values)e.push(`${t.name}: ${n}`);return e.join(`\r
|
|
3
3
|
`)}clone(e){return new De(this,e??this.guard)}freeze(){return this.clone("immutable")}merge(e,t={}){let n=e instanceof De?e:new De(e);for(let[s,o]of n.map)if(t.append)for(let i of o.values)this.append(s,i);else this.map.set(s,{name:o.name,values:[...o.values]});return this}pick(...e){let t=new De;for(let n of e){let s=n.toLowerCase(),o=this.map.get(s);o&&t.map.set(s,{name:o.name,values:[...o.values]})}return t}omit(...e){let t=this.clone();for(let n of e)t.map.delete(n.toLowerCase());return t}redact(...e){let t=this.clone();for(let n of e){let s=n.toLowerCase(),o=t.map.get(s);o&&t.map.set(s,{name:o.name,values:o.values.map(()=>"**REDACTED**")})}return t}diff(e){let t=new De;for(let[n,s]of e.map){let o=this.get(n),i=ft.has(n)?s.values[0]??"":s.values.join(", ");o!==i&&t.map.set(n,{name:s.name,values:[...s.values]})}return t}get size(){return this.map.size}};U=new WeakSet,Ji=function(e){if(e instanceof De){for(let[t,n]of e.map)this.map.set(t,{name:n.name,values:[...n.values]});return}if(typeof Headers<"u"&&e instanceof Headers){e.forEach((t,n)=>this.append(n,t));return}if(Array.isArray(e)){for(let t of e){if(!Array.isArray(t)||t.length<2)throw new TypeError("Headers init sequence must contain [name, value] pairs");this.append(String(t[0]),String(t[1]))}return}if(typeof e=="object")for(let[t,n]of Object.entries(e))if(Array.isArray(n))for(let s of n)this.append(t,s);else this.append(t,String(n))},ns=function(e){if(!is(e))throw new TypeError(`Invalid header name: "${e}"`);return e.toLowerCase()},ss=function(e){let t=e.trim();if(!as(t))throw new TypeError(`Invalid header value for: "${t}"`);return t},os=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&Ki.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`);if(this.guard==="response"&&Cl.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for response guard`)},Qi=function(e){ee(this,U,os).call(this,e)},Gi=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&Ki.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`)};De=ie;we=class extends ie{get contentType(){let e=this.get(w.ContentType);return e?cs(e):null}set contentType(e){if(e===null){this.delete(w.ContentType);return}if(typeof e=="string"){this.set(w.ContentType,e);return}this.set(w.ContentType,ls(e))}get contentLength(){let e=this.get(w.ContentLength);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}set contentLength(e){if(e===null){this.delete(w.ContentLength);return}this.set(w.ContentLength,String(e))}get contentDisposition(){let e=this.get(w.ContentDisposition);return e?us(e):null}set contentDisposition(e){if(e===null){this.delete(w.ContentDisposition);return}if(typeof e=="string"){this.set(w.ContentDisposition,e);return}this.set(w.ContentDisposition,hs(e))}get cacheControl(){let e=this.get(w.CacheControl);return e?fs(e):null}set cacheControl(e){if(e===null){this.delete(w.CacheControl);return}if(typeof e=="string"){this.set(w.CacheControl,e);return}this.set(w.CacheControl,ds(e))}get authorization(){let e=this.get(w.Authorization);return e?Cr(e):null}set authorization(e){if(e===null){this.delete(w.Authorization);return}this.set(w.Authorization,e)}get accept(){return Lr(this.get(w.Accept)??"")}get acceptEncoding(){return ps(this.get(w.AcceptEncoding)??"")}get acceptLanguage(){return ms(this.get(w.AcceptLanguage)??"")}get range(){let e=this.get(w.Range);return e?gs(e):null}get contentRange(){let e=this.get(w.ContentRange);return e?ys(e):null}get etag(){return this.get(w.ETag)}set etag(e){if(e===null){this.delete(w.ETag);return}let t=e.startsWith('"')||e.startsWith('W/"')?e:`"${e}"`;this.set(w.ETag,t)}get links(){let e=this.get(w.Link);return e?Pr(e):[]}get retryAfter(){let e=this.get(w.RetryAfter);return e?xs(e):null}get hsts(){let e=this.get(w.StrictTransportSecurity);return e?_s(e):null}set hsts(e){if(e===null){this.delete(w.StrictTransportSecurity);return}this.set(w.StrictTransportSecurity,Or(e))}get csp(){let e=this.get(w.ContentSecurityPolicy);return e?Ss(e):null}set csp(e){if(e===null){this.delete(w.ContentSecurityPolicy);return}if(typeof e=="string"){this.set(w.ContentSecurityPolicy,e);return}this.set(w.ContentSecurityPolicy,Dr(e))}get serverTiming(){let e=this.get(w.ServerTiming);return e?Ts(e):[]}get clientIP(){return bs(this)}get forwarded(){return Mr(this)}get host(){return this.get(w.Host)}get origin(){return this.get(w.Origin)}get userAgent(){return this.get(w.UserAgent)}get location(){return this.get(w.Location)}get date(){let e=this.get(w.Date);if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get age(){let e=this.get(w.Age);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get vary(){let e=this.get(w.Vary);return e?e.split(",").map(t=>t.trim().toLowerCase()):[]}get xRequestID(){return this.get(w.XRequestID)}get xCorrelationID(){return this.get(w.XCorrelationID)}get xPoweredBy(){return this.get(w.XPoweredBy)}get xRequestedWith(){return this.get(w.XRequestedWith)}get xRateLimitLimit(){let e=this.get(w.XRateLimitLimit);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitRemaining(){let e=this.get(w.XRateLimitRemaining);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitReset(){let e=this.get(w.XRateLimitReset);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get secFetchSite(){return this.get(w.SecFetchSite)}get secFetchMode(){return this.get(w.SecFetchMode)}get secFetchUser(){return this.get(w.SecFetchUser)}get secFetchDest(){return this.get(w.SecFetchDest)}get earlyData(){let e=this.get(w.EarlyData);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get priority(){return this.get(w.Priority)}get allow(){return this.get(w.Allow)}get server(){return this.get(w.Server)}get acceptRanges(){return this.get("accept-ranges")}get lastModified(){let e=this.get("last-modified");if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get expires(){let e=this.get("expires");if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get contentEncoding(){return this.get("content-encoding")}get contentLanguage(){return this.get("content-language")}get contentLocation(){return this.get("content-location")}get link(){let e=this.get(w.Link);return e?Pr(e)[0]??null:null}get altSvc(){let e=this.get(w.AltSvc);return e?Es(e):[]}get wwwAuthenticate(){let e=this.get("www-authenticate");return e?vr(e):null}set wwwAuthenticate(e){if(e===null){this.delete("www-authenticate");return}let t=e.map(n=>{let o=[...n.params].filter(([a])=>a!=="realm").map(([a,c])=>`${a}=${c}`).join(", "),i=n.scheme;return n.realm&&(i+=` realm="${n.realm}"`),o&&(i+=`; ${o}`),i}).join(", ");this.set("www-authenticate",t)}get proxyAuthenticate(){let e=this.get(w.ProxyAuthenticate);return e?vr(e):null}set proxyAuthenticate(e){if(e===null){this.delete(w.ProxyAuthenticate);return}let t=e.map(n=>{let o=[...n.params].filter(([a])=>a!=="realm").map(([a,c])=>`${a}=${c}`).join(", "),i=n.scheme;return n.realm&&(i+=` realm="${n.realm}"`),o&&(i+=`; ${o}`),i}).join(", ");this.set(w.ProxyAuthenticate,t)}get proxyAuthorization(){let e=this.get(w.ProxyAuthorization);return e?Cr(e):null}set proxyAuthorization(e){if(e===null){this.delete(w.ProxyAuthorization);return}if(typeof e=="string"){this.set(w.ProxyAuthorization,e);return}e.basic?this.set(w.ProxyAuthorization,`Basic ${Vi(`${e.basic.username}:${e.basic.password}`)}`):e.token?this.set(w.ProxyAuthorization,`${e.scheme} ${e.token}`):this.set(w.ProxyAuthorization,e.scheme)}get setCookies(){return this.getAll(w.SetCookie)}get accessControlAllowOrigin(){return this.get(w.AccessControlAllowOrigin)}get accessControlAllowMethods(){return this.get(w.AccessControlAllowMethods)}get accessControlAllowHeaders(){return this.get(w.AccessControlAllowHeaders)}get accessControlMaxAge(){let e=this.get(w.AccessControlMaxAge);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get accessControlCredentials(){let e=this.get(w.AccessControlAllowCredentials);return e==="true"?!0:e==="false"?!1:null}}});var ma={};ue(ma,{ContentTypeError:()=>xe,HTTPResponseError:()=>Ne,ResponseCache:()=>Rs,ResponseDecodeError:()=>Ue,ResponseSizeLimitError:()=>be,applyDecompression:()=>Kt,assertOk:()=>vs,assertOkJSON:()=>Ps,createLimitedReader:()=>Ds,decodeBody:()=>Wt,decompressStream:()=>$r,diffResponses:()=>Is,extractServerTiming:()=>Ms,isBinary:()=>As,isJSON:()=>Ft,isText:()=>Nr,normalizeHeaders:()=>ae,normalizeResponse:()=>ks,parseContentType:()=>_e,parseMultipartResponse:()=>Br,readBlob:()=>qr,readBodyWithLimit:()=>Ur,readBytes:()=>Vt,readFormData:()=>Ls,readJSON:()=>Hr,readJSONStream:()=>Cs,readNDJSON:()=>zr,readStream:()=>dt,readText:()=>jr});function ae(r){return st(r)}function ks(r){return{status:r.status,statusText:r.statusText,headers:ae(r.headers),url:r.url,redirected:r.redirected,ok:r.ok,bodyUsed:r.bodyUsed}}function _e(r){if(!r||r.length>Il)return null;let e=cs(r);return e?{mediaType:e.mediaType,type:e.type,subtype:e.subtype,charset:e.charset,boundary:e.boundary}:null}function Ft(r){if(!r)return!1;let e=_e(r);return e?e.mediaType==="application/json"||e.subtype.endsWith("+json"):!1}function Nr(r){return r?_e(r)?.type==="text":!1}function As(r){return!Nr(r)&&!Ft(r)}async function Ur(r,e,t,n){let s=t.onExceed??"throw",o=r.getReader(),i=[],a=0;try{for(;;){if(n?.aborted)throw await o.cancel("aborted"),new DOMException("Response reading aborted","AbortError");let{done:c,value:l}=await o.read();if(c)break;let u=a+l.byteLength;if(u>t.maxBytes){if(t.onExceedCallback?.(u,t.maxBytes),s==="throw")throw await o.cancel("size limit exceeded"),new be(u,t.maxBytes,e);if(s==="abort"){await o.cancel("size limit exceeded");break}if(s==="truncate"){let f=t.maxBytes-a;f>0&&(i.push(l.slice(0,f)),a+=f);break}}i.push(l),a+=l.byteLength}}finally{o.releaseLock()}return pa(i)}function Ml(r){return r?Ll[r.toLowerCase()]??"utf-8":"utf-8"}function Ol(r){return r[0]===239&&r[1]===187&&r[2]===191?"utf-8":r[0]===255&&r[1]===254?"utf-16le":r[0]===254&&r[1]===255?"utf-16be":null}function Wt(r,e,t){let n=Ol(r),s=n??Ml(e),o=n?r.slice(n==="utf-8"?3:2):r;try{return new TextDecoder(s,{fatal:!0}).decode(o)}catch{try{return new TextDecoder(s,{fatal:!1}).decode(o)}catch(i){throw new Ue(String(i),s,t)}}}function Dl(r,e,t=1e8){let n=$r(r,e),s=0,o=new TransformStream({transform(i,a){if(s+=i.byteLength,s>t){a.error(new be(s,t,"decompression"));return}a.enqueue(i)}});return n.pipeThrough(o)}function $r(r,e){let t=e.trim().toLowerCase();if(t==="br")return Nl(r);if(typeof DecompressionStream>"u")return r;try{let n=t,s=new DecompressionStream(n);return r.pipeThrough(s)}catch{return r}}function Nl(r){let e=!1;try{e=typeof globalThis.process?.versions?.node=="string"}catch{}return e?new ReadableStream({async start(t){let s=(await import("node:zlib")).createBrotliDecompress(),o=r.getReader();s.on("data",i=>{t.enqueue(new Uint8Array(i.buffer,i.byteOffset,i.byteLength))}),s.on("end",()=>t.close()),s.on("error",i=>t.error(i));try{for(;;){let{done:i,value:a}=await o.read();if(i){s.end();break}s.write(a)}}catch(i){s.destroy(i instanceof Error?i:new Error(String(i))),t.error(i)}finally{o.releaseLock()}},cancel(){r.cancel()}}):r}function Kt(r,e){let t=e["content-encoding"]??e["Content-Encoding"];if(!t||t==="identity")return r;let n=t.split(",").map(o=>o.trim()).filter(Boolean).reverse(),s=r;for(let o of n)s=Dl(s,o);return s}async function Hr(r,e={}){let n=ae(r.headers)["content-type"]??null,s=r.url;e.expectedContentType?da(n,e.expectedContentType,s):Ft(n);let o=await Os(r,s,e),i=e.charset??_e(n??"")?.charset??null,a=Wt(o,i,s);try{return JSON.parse(a)}catch(c){throw new Ue(`JSON parse failed: ${c}`,"json",s)}}async function jr(r,e={}){let n=ae(r.headers)["content-type"]??null,s=r.url;e.expectedContentType&&da(n,e.expectedContentType,s);let o=await Os(r,s,e),i=e.charset??_e(n??"")?.charset??null;return Wt(o,i,s)}async function Vt(r,e={}){let t=r.url;return await Os(r,t,e)}async function qr(r,e={}){let t=await Vt(r,e),n=r.headers.get("content-type")??"application/octet-stream",s=new ArrayBuffer(t.byteLength);return new Uint8Array(s).set(t),new Blob([s],{type:n})}function dt(r,e={}){if(!r.body)return new ReadableStream({start:s=>s.close()});let t=ae(r.headers),n=r.body;return e.decompress!==!1&&(n=Kt(n,t)),e.sizeLimit&&(n=$l(n,r.url,e.sizeLimit,e.signal)),n}async function*zr(r,e={}){let n=dt(r,e).getReader(),s=new TextDecoder("utf-8"),o="";try{for(;!e.signal?.aborted;){let{done:i,value:a}=await n.read();if(i){let l=o.trim();if(l)try{yield JSON.parse(l)}catch(u){e.onParseError?.(u,l)}break}o+=s.decode(a,{stream:!0});let c=o.split(`
|
|
4
4
|
`);o=c.pop()??"";for(let l of c){let u=l.trim();if(!(!u||u.startsWith("#")))try{yield JSON.parse(u)}catch(f){e.onParseError?.(f,u)}}}}finally{n.releaseLock()}}async function*Cs(r,e={}){let n=dt(r,e).getReader(),s=new TextDecoder("utf-8"),o=0,i="",a=-1,c=()=>{if(a===-1)return null;let l=i.slice(a);return a=-1,l};try{for(;!e.signal?.aborted;){let{done:l,value:u}=await n.read();if(l){let f=c();if(f)try{let d=JSON.parse(f);e.onObject?.(d),yield d}catch(d){e.onParseError?.(d,f)}break}i+=s.decode(u,{stream:!0});for(let f=0;f<i.length;f++){let d=i[f];if(d==="{"||d==="[")o===0&&(a=f),o++;else if((d==="}"||d==="]")&&(o--,o===0&&a!==-1)){let p=i.slice(a,f+1);try{let g=JSON.parse(p);e.onObject?.(g),yield g}catch(g){e.onParseError?.(g,p)}i=i.slice(f+1),f=-1}}if(i.length>1e7)throw new Error("JSON stream buffer exceeded 10MB limit")}}finally{n.releaseLock()}}async function vs(r,e={}){if(!(e.isError??(o=>o>=400))(r.status))return r;let n=ae(r.headers),s=null;if(e.readBody!==!1&&r.body&&!r.bodyUsed)try{s=await r.clone().text()}catch{}throw new Ne(r.status,r.statusText,r.url,n,s)}async function Ps(r){if(r.ok)return{response:r};let e=ae(r.headers),t=null;if(r.body&&!r.bodyUsed)try{t=await r.clone().text()}catch{}throw new Ne(r.status,r.statusText,r.url,e,t)}async function Is(r,e){let t=ae(r.headers),n=ae(e.headers),s={},o={},i={};for(let[c,l]of Object.entries(t))c in n?n[c]!==l&&(s[c]=[l,n[c]]):i[c]=l;for(let[c,l]of Object.entries(n))c in t||(o[c]=l);let a=!1;try{let[c,l]=await Promise.all([r.clone().text(),e.clone().text()]);a=c!==l}catch{}return{statusChanged:r.status!==e.status,headersChanged:s,headersAdded:o,headersRemoved:i,bodyChanged:a}}async function Br(r){let e=r.headers.get("content-type")??"",t=_e(e);if(!t?.boundary)throw new xe("multipart/*",e,r.url);let n=await r.arrayBuffer(),s=new Uint8Array(n),o=new TextEncoder().encode("--"+t.boundary),i=[],a=l=>{for(let u=l;u<s.length-o.length;u++)if(s.subarray(u,u+o.length).every((f,d)=>f===o[d]))return u;return-1},c=a(0);if(c===-1)return[];if(c+=o.length,s[c]===13&&s[c+1]===10?c+=2:s[c]===10&&(c+=1),s[c]===45&&s[c+1]===45)return[];for(;c<s.length;){let l=a(c);if(l===-1)break;let u=l+o.length;u<s.length&&(s[u]===13&&s[u+1]===10||s[u]===10||s[u]===45&&s[u+1]);let f=s.subarray(c,l-2),d=Ul(f);if(d===-1){c=l+o.length;continue}let p=f.subarray(0,d),g=f.subarray(d+4),m=new TextDecoder().decode(p),y={};for(let b of m.split(/\r\n/)){let x=b.indexOf(":");x!==-1&&(y[b.slice(0,x).trim().toLowerCase()]=b.slice(x+1).trim())}if(i.push({headers:y,body:g}),c=l+o.length,c<s.length-1&&s[c]===45&&s[c+1]===45)break}return i}function Ul(r){for(let e=0;e<r.length-3;e++)if(r[e]===13&&r[e+1]===10&&r[e+2]===13&&r[e+3]===10)return e;return-1}async function Ls(r){let e=await Br(r),t=new FormData;for(let n of e){let s=n.headers["content-disposition"]??"",o=s.match(/name="([^"]+)"/),i=s.match(/filename="([^"]+)"/);if(!o)continue;let a=o[1],c=i?.[1];if(c){let l=n.headers["content-type"]??"application/octet-stream",u=new ArrayBuffer(n.body.byteLength);new Uint8Array(u).set(n.body);let f=new File([u],c,{type:l});t.append(a,f)}else{let l=new TextDecoder().decode(n.body);t.append(a,l)}}return t}function Ms(r){let e=r["server-timing"]??r["Server-Timing"];return e?e.split(",").map(t=>{let n=t.trim().split(";"),s=(n[0]??"").trim(),o=Pl(n.slice(1).join(";")),i=o.get("dur");return{name:s,duration:i!==void 0?parseFloat(i):null,description:o.get("desc")??null}}).filter(t=>t.name):[]}async function Os(r,e,t){if(!r.body)return new Uint8Array(0);let n=ae(r.headers),s=r.body;if(t.decompress!==!1&&(s=Kt(s,n)),t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");if(t.sizeLimit)return Ur(s,e,t.sizeLimit,t.signal);let o=s.getReader(),i=[];try{for(;;){if(t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");let{done:a,value:c}=await o.read();if(a)break;i.push(c)}}finally{o.releaseLock()}return pa(i)}function $l(r,e,t,n){let s=t.onExceed??"throw",o=0;return new ReadableStream({async start(i){let a=r.getReader();try{for(;;){if(n?.aborted){await a.cancel("aborted"),i.error(new DOMException("Response reading aborted","AbortError"));return}let{done:c,value:l}=await a.read();if(c){i.close();break}let u=o+l.byteLength;if(u>t.maxBytes){if(t.onExceedCallback?.(u,t.maxBytes),s==="throw"){await a.cancel("size limit"),i.error(new be(u,t.maxBytes,e));return}if(s==="abort"){await a.cancel("size limit"),i.close();return}if(s==="truncate"){let f=t.maxBytes-o;f>0&&i.enqueue(l.slice(0,f)),i.close(),await a.cancel("size limit");return}}o+=l.byteLength,i.enqueue(l)}}catch(c){i.error(c)}}})}function da(r,e,t){if(!r)throw new xe(e,"(none)",t);let n=r.split(";")[0]?.trim().toLowerCase()??"",s=e.split(";")[0]?.trim().toLowerCase()??"";if(!n.startsWith(s))throw new xe(e,r,t)}function pa(r){let e=r.reduce((s,o)=>s+o.byteLength,0),t=new Uint8Array(e),n=0;for(let s of r)t.set(s,n),n+=s.byteLength;return t}function Ds(r,e="throw"){let t={maxBytes:r,onExceed:e};return{json:(n,s)=>Hr(n,{sizeLimit:t,...s}),text:(n,s)=>jr(n,{sizeLimit:t,...s}),bytes:(n,s)=>Vt(n,{sizeLimit:t,...s}),blob:(n,s)=>qr(n,{sizeLimit:t,...s}),stream:(n,s)=>dt(n,{sizeLimit:t,...s}),ndjson:(n,s)=>zr(n,{sizeLimit:t,...s})}}var Pl,Ne,be,xe,Ue,Il,Ll,Rs,Fr=q(()=>{"use strict";Bt();fe();Pl=K,Ne=class extends Error{constructor(t,n,s,o,i){super(`HTTP ${t} ${n} \u2014 ${s}`);h(this,"code","EHTTPRESPONSE");h(this,"status");h(this,"statusText");h(this,"url");h(this,"headers");h(this,"body");this.name="HTTPResponseError",this.status=t,this.statusText=n,this.url=s,this.headers=o,this.body=i}get isClientError(){return this.status>=400&&this.status<500}get isServerError(){return this.status>=500}get isNotFound(){return this.status===404}get isUnauthorized(){return this.status===401}get isForbidden(){return this.status===403}get isTooManyRequests(){return this.status===429}get isGone(){return this.status===410}get isConflict(){return this.status===409}},be=class extends Error{constructor(t,n,s){super(`Response size limit exceeded: read ${t} bytes, limit is ${n} bytes (${s})`);h(this,"code","ESIZELIMIT");h(this,"bytesRead");h(this,"limit");h(this,"url");this.name="ResponseSizeLimitError",this.bytesRead=t,this.limit=n,this.url=s}},xe=class extends Error{constructor(t,n,s){super(`Expected content-type "${t}", got "${n}" (${s})`);h(this,"code","ECONTENTTYPE");h(this,"expected");h(this,"received");h(this,"url");this.name="ContentTypeError",this.expected=t,this.received=n,this.url=s}},Ue=class extends Error{constructor(t,n,s){super(`Failed to decode response as ${n} (${s}): ${t}`);h(this,"code","EDECODE");h(this,"charset");h(this,"url");this.name="ResponseDecodeError",this.charset=n,this.url=s}};Il=8192;Ll={"utf-8":"utf-8",utf8:"utf-8","latin-1":"latin1",latin1:"latin1","iso-8859-1":"latin1",ascii:"ascii","us-ascii":"ascii","utf-16le":"utf-16le","utf-16":"utf-16le","utf-16be":"utf-16be","windows-1252":"windows-1252",cp1252:"windows-1252"};Rs=class{constructor(e={ttlMs:6e4}){h(this,"cache",new Map);h(this,"ttlMs");this.ttlMs=e.ttlMs}hashRequest(e){let t=typeof e=="string"?e:e.url;return`${typeof e=="string"?"GET":e.method}:${t}`}async get(e){let t=this.hashRequest(e),n=this.cache.get(t);return n?Date.now()>n.expiresAt?(this.cache.delete(t),null):await Promise.resolve(n.response.clone()):null}async set(e,t){let n=this.hashRequest(e);await Promise.resolve(this.cache.set(n,{response:t.clone(),expiresAt:Date.now()+this.ttlMs}))}delete(e){this.cache.delete(this.hashRequest(e))}clear(){this.cache.clear()}get size(){return this.cache.size}}});var _a={};ue(_a,{FetchTransport:()=>$e,HAS_NATIVE_FETCH:()=>$s,HTTP_STATUS_TEXTS:()=>xa,IS_NODE:()=>He,NodeHTTP2Transport:()=>pt,RUNTIME:()=>pe,createTransport:()=>Jt,decompressBodyStream:()=>Gt,detectRuntime:()=>Kr,getEffectiveRuntime:()=>Us,normalizeHeaders:()=>ya,parseBody:()=>mt,readRawBody:()=>Qt,sendWithTimeout:()=>je,setRuntime:()=>Ns});function Kr(){let r=globalThis.Deno;return typeof r<"u"&&typeof r.version<"u"?"deno":typeof globalThis.Bun<"u"?"bun":typeof globalThis<"u"&&typeof globalThis.caches<"u"?"cloudflare-workers":typeof window<"u"&&typeof globalThis.document<"u"?"browser":Wr.process?.versions?.node!==void 0?"node":typeof globalThis.fetch=="function"?"edge":"unknown"}function Ns(r){ga=r}function Us(){return ga??pe}function Hl(){try{return globalThis.process?.env?.NODE_ENV==="production"}catch{return!1}}function Jt(r,e=!0,t,n){return He&&e?new pt({...t?.sessionTTLMs!==void 0?{sessionTTLMs:t.sessionTTLMs}:{},...t?.pingIntervalMs!==void 0?{pingIntervalMs:t.pingIntervalMs}:{},...t?.connectTimeoutMs!==void 0?{connectTimeoutMs:t.connectTimeoutMs}:{},...t?.requestTimeoutMs!==void 0?{requestTimeoutMs:t.requestTimeoutMs}:{},...n?.strict!==void 0?{strict:n.strict}:{},...n?.onDroppedHeader!==void 0?{onDroppedHeader:n.onDroppedHeader}:{}}):new $e({fetchFn:r??globalThis.fetch,...n?.strict!==void 0?{strict:n.strict}:{},...n?.onDroppedHeader!==void 0?{onDroppedHeader:n.onDroppedHeader}:{}})}async function je(r,e,t){if(t<=0)return r.send(e);let n=new AbortController,s=setTimeout(()=>{n.abort(new re(t,e))},t),o=xr(e.signal,n.signal)??null,i={...e,signal:o};try{let a=await r.send(i);if(clearTimeout(s),n.signal.aborted)throw new re(t,e);return a}catch(a){throw clearTimeout(s),n.signal.aborted?new re(t,e):a}}async function Qt(r,e,t,n){if(!r)return new Uint8Array(0);let s=r.getReader(),o=[],i=0,a,c=new Promise((u,f)=>{a=f}),l=()=>{s.cancel("aborted").catch(()=>{}),a(new _("Response reading aborted","EABORT"))};if(n?.aborted)throw s.cancel("aborted").catch(()=>{}),new _("Response reading aborted","EABORT");n?.addEventListener("abort",l,{once:!0});try{for(;;){let u=await Promise.race([s.read().catch(p=>{throw s.cancel("read error").catch(()=>{}),p}),c]),{done:f,value:d}=u;if(f)break;if(e>0){let p=i+d.byteLength;if(p>e)throw await s.cancel("size limit exceeded"),new Xe(p,e)}o.push(d),i+=d.byteLength}}catch(u){throw s.cancel("error during read").catch(()=>{}),u}finally{n?.removeEventListener("abort",l),s.releaseLock()}return br(o)}function mt(r,e,t,n,s,o){if(t)return t(r,s??{},o??"");if(!r.byteLength)return null;let i=e?.split(";")[0]?.trim().toLowerCase()??"";if(i==="application/json"||i.endsWith("+json")){let a=new TextDecoder("utf-8").decode(r),c,l;try{let u=he(a,{maxStringLength:1e7,maxDepth:100,maxArrayLength:1e5});u.success&&u.value!==void 0&&(c=u.value)}catch(u){l=u instanceof Error?u:new Error(String(u))}if(c!==void 0)return c;if(n)try{n(r,l??new Error("JSON parse failed \u2014 falling back to raw text"))}catch{}return a}return i.startsWith("text/")?new TextDecoder("utf-8").decode(r):r}function ya(r){return st(r)}function jl(r,e){let t=r;if(t.httpVersion==="2.0"||t.httpVersion==="2")return"HTTP/2";let n=r;if(n.httpVersion)return n.httpVersion;let s=r.headers.get("alt-svc"),o=r;if(o.httpVersion==="3"||o.httpVersion==="3.0"||o.protocol==="h3")return"HTTP/3";if(s){let i=s.includes('h3="')||s.includes("h3-29=")||s.includes("h3-32=");if(s.includes('h2="')||i)return"HTTP/2"}return"HTTP/1.1"}function ql(r){if(!(r instanceof Error))return!1;let e=r.message.toLowerCase();return e.includes("alpn")||e.includes("h2")||e.includes("http2")||r.code==="ERR_HTTP2_ERROR"}function wa(r){return new ReadableStream({start(e){let t=!1,n=!1;r.on("data",s=>{if(s instanceof Uint8Array)e.enqueue(s);else if(Wr.Buffer?.isBuffer(s)){let o=s;e.enqueue(new Uint8Array(o.buffer,o.byteOffset,o.byteLength))}else e.enqueue(new Uint8Array(s))}),r.once("end",()=>{if(!(t||n)){t=!0;try{e.close()}catch{}}}),r.once("error",s=>{if(!(t||n)){t=!0,n=!0;try{e.error(s)}catch{}}}),r.once("close",()=>{if(t||n)return;t=!0;let s=Object.assign(new Error("Stream closed before end"),{code:"ECONNRESET"});try{e.error(s)}catch{}})},cancel(){r.destroy()}})}async function ba(r,e){r.write(e)||await new Promise(n=>r.once("drain",n))}async function Bl(r,e){if(e instanceof ReadableStream){let t=e.getReader();for(;;){let{done:n,value:s}=await t.read();if(n){r.end();break}await ba(r,s)}}else e instanceof Uint8Array||e instanceof ArrayBuffer?r.end(Wr.Buffer?new Uint8Array(e):e):typeof e=="string"?r.end(e):r.end()}async function Fl(r,e){if(e instanceof ReadableStream){let t=e.getReader();for(;;){let{done:n,value:s}=await t.read();if(n){r.end();break}await ba(r,s)}}else e instanceof Uint8Array||e instanceof ArrayBuffer?r.end(Wr.Buffer?new Uint8Array(e):e):typeof e=="string"?r.end(e):r.end()}async function Gt(r,e){if(!r)return null;let t=e["content-encoding"]??e["Content-Encoding"];if(!t)return r;let n=t.trim().toLowerCase(),s=n.split(",").map(a=>a.trim()).filter(Boolean),o=["gzip","deflate","br","identity"];for(let a of s)if(!o.includes(a))return console.warn(`[Kinetex] Unsupported Content-Encoding: ${a}. Supported: ${o.join(", ")}. Response body is passed through compressed.`),r;if(n==="identity")return delete e["content-encoding"],delete e["Content-Encoding"],r;let{applyDecompression:i}=await Promise.resolve().then(()=>(Fr(),ma));return i(r,e)}var Wr,pe,ga,He,$s,$e,pt,zl,xa,Xt=q(()=>{"use strict";Le();fe();Bt();fe();Wr=globalThis;pe=Kr(),ga=null;He=pe==="node",$s=pe!=="node"||typeof globalThis.fetch=="function";$e=class{constructor(e=globalThis.fetch){h(this,"fetchFn");h(this,"strict");h(this,"onDroppedHeader");typeof e=="function"?(this.fetchFn=e,this.strict=!1,this.onDroppedHeader=void 0):(this.fetchFn=e.fetchFn??globalThis.fetch,this.strict=e.strict??!1,this.onDroppedHeader=e.onDroppedHeader)}async send(e){let t={};for(let[l,u]of Object.entries(e.headers??{}))if(!(typeof l!="string"||typeof u!="string")){if(!is(l)||!as(u)){if(this.strict)throw new _(`Invalid header dropped in strict mode: "${l}"`,"EVALIDATION",{request:e});this.onDroppedHeader?this.onDroppedHeader(l,u):Hl()||console.warn(`[kinetex] Invalid header dropped: "${l}" \u2014 value may contain illegal characters. Pass strictHeaders: true to throw instead.`);continue}t[l]=u}let n=t["accept-encoding"];n&&n.toLowerCase().includes("gzip")&&n.toLowerCase().includes("deflate")&&n.toLowerCase().includes("br")&&delete t["accept-encoding"];let s={method:e.method,headers:t,redirect:e.redirect??"follow",...e.signal!==null?{signal:e.signal}:{}};e.body!==null&&e.method!=="GET"&&e.method!=="HEAD"&&(s.body=e.body,He&&typeof s.body=="object"&&s.body!==null&&"getReader"in s.body&&(s.duplex="half"));let o;try{o=await this.fetchFn(e.url,s)}catch(l){throw _r(l)?new _("Request was aborted","EABORT",{request:e,cause:l}):new _(l instanceof Error?l.message:"Network request failed","ENETWORK",{request:e,cause:l})}let i=ya(o.headers),a=jl(o,i),c=!0;return pe==="deno"&&(o.headers.get("content-encoding")||"").toLowerCase().includes("deflate")&&(c=!1),{status:o.status,statusText:o.statusText,headers:i,body:o.body,url:o.url||e.url,redirected:o.redirected,httpVersion:a,alreadyDecompressed:c}}},pt=class{constructor(e={}){h(this,"sessions",new Map);h(this,"sessionTTLMs");h(this,"pingIntervalMs");h(this,"maxSessions");h(this,"pingTimers",new Map);h(this,"_sessionCreating",new Map);h(this,"sessionUsage",new Map);h(this,"_strict");h(this,"_onDroppedHeader");h(this,"_connectTimeoutMs");h(this,"_requestTimeoutMs");h(this,"_http1Fallback",null);this.sessionTTLMs=e.sessionTTLMs??5*6e4,this.pingIntervalMs=e.pingIntervalMs??3e4,this.maxSessions=e.maxSessions??100,this._strict=e.strict??!1,this._onDroppedHeader=e.onDroppedHeader,this._connectTimeoutMs=e.connectTimeoutMs??3e4,this._requestTimeoutMs=e.requestTimeoutMs??3e4}_getOrCreateSession(e,t,n){let s=this._sessionCreating.get(e);if(s)return s;let o=this._createSession(e,t,n);return this._sessionCreating.set(e,o),o.finally(()=>{this._sessionCreating.get(e)===o&&this._sessionCreating.delete(e)}).catch(()=>{}),o}async _createSession(e,t,n){let s=this.sessions.get(e);if(s&&!s.session.destroyed&&!s.session.closed&&!(Date.now()-s.createdAt>this.sessionTTLMs))return this.sessionUsage.set(e,Date.now()),s.session;if(s&&this._evictSession(e,s.session),this.sessions.size>=this.maxSessions){let i="",a=1/0;for(let[c,l]of this.sessionUsage.entries())l<a&&(a=l,i=c);if(i){let c=this.sessions.get(i);c&&this._evictSession(i,c.session)}}let o=await new Promise((i,a)=>{let c=n.connect(e,{rejectUnauthorized:!0}),l=setTimeout(()=>{c.destroy(),a(new _(`HTTP/2 connection to ${e} timed out`,"ETIMEOUT",{request:t}))},this._connectTimeoutMs);typeof l.unref=="function"&&l.unref();let u=()=>{clearTimeout(l),c.destroy(),a(new _("Connection aborted","EABORT",{request:t}))},f=()=>t.signal?.removeEventListener("abort",u);t.signal?.addEventListener("abort",u,{once:!0}),c.once("connect",()=>{f(),clearTimeout(l),i(c)}),c.once("error",d=>{f(),clearTimeout(l),a(d)})});if(o.on("goaway",()=>{this._evictSession(e,o)}),o.on("error",()=>{this._evictSession(e,o)}),this.sessions.set(e,{session:o,createdAt:Date.now()}),this.sessionUsage.set(e,Date.now()),this.pingIntervalMs>0){let i=this.pingTimers.get(e);i&&clearInterval(i);let a=setInterval(()=>{let c=this.sessions.get(e);if(!c||c.session.destroyed||c.session.closed){this._evictSession(e,c?.session);return}c.session.ping(l=>{l&&this._evictSession(e,c.session)})},this.pingIntervalMs);typeof a=="object"&&a!==null&&"unref"in a&&a.unref(),this.pingTimers.set(e,a)}return o}async send(e){let t=new URL(e.url);if(t.protocol!=="https:"||e.httpVersion==="HTTP/1.1")return this._sendHTTP1(e);try{return await this._sendHTTP2(e,t)}catch(n){if(ql(n))return this._sendHTTP1(e);throw n}}async _sendHTTP2(e,t){let n=await import("node:http2"),s=e,o=t,i=!1,a=10;for(let c=0;c<=a;c++){if(c===a)throw new _("Too many HTTP/2 redirects","ENETWORK",{request:e});let l=o.origin,u=this.sessions.get(l),f=u&&Date.now()-u.createdAt>this.sessionTTLMs,d;!u||u.session.destroyed||u.session.closed||f?d=await this._getOrCreateSession(l,s,n):(d=u.session,this.sessionUsage.set(l,Date.now()));let p={":method":s.method,":path":o.pathname+o.search,":scheme":"https",":authority":o.host,...s.headers};if(this._strict)for(let[A,M]of Object.entries(p)){if(A.startsWith(":"))continue;let N=Array.isArray(M)?M.join(", "):String(M),F=!1;for(let $=0;$<N.length;$++){let Z=N.charCodeAt($);if(Z>=0&&Z<=8||Z>=10&&Z<=31||Z===127){F=!0;break}}if(F)if(this._onDroppedHeader)this._onDroppedHeader(A,N),delete p[A];else throw new _(`Strict mode: header "${A}" contains forbidden control characters`,"EVALIDATION",{request:s})}let g=!s.body||s.method==="GET"||s.method==="HEAD",m=d.request(p,{endStream:g});s.body&&!g&&Bl(m,s.body).catch(A=>{m.destroy(A instanceof Error?A:new Error(String(A)))});let y=s.signal,b=await new Promise((A,M)=>{let N=this._requestTimeoutMs,F=setTimeout(()=>{Z(),M(new _(`HTTP/2 request to ${o} timed out after ${N}ms`,"ETIMEOUT",{request:s})),m.destroy()},N),$=()=>{clearTimeout(F),M(new _("Request was aborted","EABORT",{request:s})),m.destroy()},Z=()=>y?.removeEventListener("abort",$);y?.addEventListener("abort",$,{once:!0}),m.once("response",k=>{let P=Number(k[":status"]??200),v=xa[P]??"",L={};for(let[W,O]of Object.entries(k))W.startsWith(":")||(L[W]=Array.isArray(O)?O.join(", "):O??"");if(clearTimeout(F),Z(),y?.aborted){M(new _("Request was aborted","EABORT",{request:s})),m.destroy();return}if(s.redirect==="error"&&P>=300&&P<400&&L.location){M(new _(`Redirect not allowed (redirect:"error") \u2014 received ${P} to ${L.location}`,"ENETWORK",{request:s})),m.destroy();return}A({status:P,statusText:v,headers:L,body:wa(m),url:s.url,redirected:i,httpVersion:"HTTP/2",alreadyDecompressed:!1})}),m.once("error",k=>{clearTimeout(F),Z(),y?.aborted?M(new _("Request was aborted","EABORT",{request:s,cause:k})):M(new _(k.message,"ENETWORK",{request:s,cause:k})),m.destroy()})});if(!(b.status>=300&&b.status<400&&!!b.headers.location&&s.redirect!=="manual"))return b;try{if(b.body){let A=b.body.getReader();for(;;){let{done:M}=await A.read();if(M)break}A.releaseLock()}}catch{}let S=b.headers.location,R;try{R=new URL(S,s.url).href}catch{throw new _(`Invalid redirect Location: ${S}`,"ENETWORK",{request:e})}let C=b.status===301||b.status===302||b.status===303?"GET":s.method,T=C==="GET"||C==="HEAD"?null:s.body;s={...s,url:R,method:C,body:T},o=new URL(R),i=!0}throw new _("HTTP/2 redirect loop terminated unexpectedly","ENETWORK",{request:e})}_sendHTTP1(e){if(typeof globalThis.fetch=="function"){if(!this._http1Fallback){let t={fetchFn:globalThis.fetch,strict:this._strict};this._onDroppedHeader!==void 0&&(t.onDroppedHeader=this._onDroppedHeader),this._http1Fallback=new $e(t)}return this._http1Fallback.send(e)}return this._sendHTTP1Legacy(e)}async _sendHTTP1Legacy(e){let t=await import("node:https"),n=new URL(e.url),s={hostname:n.hostname,port:n.port||"443",path:n.pathname+n.search,method:e.method,headers:e.headers};return new Promise((o,i)=>{let a=t.request(s,u=>{let f={};for(let[p,g]of Object.entries(u.headers))g!==void 0&&(f[p]=Array.isArray(g)?g.join(", "):g);let d=zl(u);o({status:u.statusCode??200,statusText:u.statusMessage??"",headers:f,body:d,url:e.url,redirected:!1,httpVersion:"HTTP/1.1",alreadyDecompressed:!1})});a.once("error",u=>{i(new _(u.message,"ENETWORK",{request:e,cause:u}))});let c=()=>{a.destroy(),i(new _("Request was aborted","EABORT",{request:e}))};e.signal?.addEventListener("abort",c,{once:!0});let l=()=>e.signal?.removeEventListener("abort",c);a.once("close",l),a.once("error",l),e.body&&e.method!=="GET"&&e.method!=="HEAD"?Fl(a,e.body).catch(i):a.end()})}_evictSession(e,t){let n=this.pingTimers.get(e);n&&(clearInterval(n),this.pingTimers.delete(e)),this.sessions.delete(e),this.sessionUsage.delete(e),this._sessionCreating.delete(e),t&&!t.destroyed&&!t.closed&&t.destroy()}destroy(){for(let e of this.pingTimers.values())clearInterval(e);this.pingTimers.clear(),this._sessionCreating.clear();for(let[e,{session:t}]of this.sessions.entries())this._evictSession(e,t);this.sessions.clear()}};zl=wa;xa={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Content Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",421:"Misdirected Request",422:"Unprocessable Content",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"}});function Vl(r){return r.split(Kl).filter(Boolean)}function Jl(r){let e=r.match(/^(\d{1,2}):(\d{2}):(\d{2})(?:[+-]\d{2}:?\d{2}|Z|GMT|UTC)?$/i);if(!e)return null;let t=+e[1],n=+e[2],s=+e[3];return t>23||n>59||s>59?null:[t,n,s]}function Ql(r){let e=r.slice(0,9).toLowerCase();return Wl[e]??null}function Gl(r){if(!/^\d{2,4}$/.test(r))return null;let e=+r;return e>=70&&e<=99&&(e+=1900),e>=0&&e<=69&&(e+=2e3),e}function Yt(r){if(!r)return null;let e=Vl(r),t={time:null,dayOfMonth:null,month:null,year:null};for(let a of e)if(a){if(t.time===null&&a.includes(":")){let c=Jl(a);if(c!==null){t.time=c;continue}}if(t.month===null&&/[a-zA-Z]/.test(a)){let c=Ql(a);if(c!==null){t.month=c;continue}}if(/^\d{1,4}(?:st|nd|rd|th)?$/i.test(a)){let c=a.replace(/[a-z]+$/i,""),l=+c;if(t.dayOfMonth===null&&c.length<=2&&l>=1&&l<=31){t.dayOfMonth=l;continue}if(t.year===null&&c.length>=2){let u=Gl(c);if(u!==null){t.year=u;continue}}if(t.dayOfMonth===null&&l>=1&&l<=31){t.dayOfMonth=l;continue}}}if(t.time===null||t.dayOfMonth===null||t.month===null||t.year===null||t.year<1601||t.year>9999||t.dayOfMonth<1||t.dayOfMonth>31)return null;let[n,s,o]=t.time,i=Date.UTC(t.year,t.month,t.dayOfMonth,n,s,o);return isNaN(i)?null:i}function gt(r){let e=r.replace(/\.$/,"").toLowerCase(),t=e.split(".");if(t.length===0||t.length===1&&t[0]==="")return null;if(zs.has(e))return e;let n=null,s=0;for(let o=0;o<t.length;o++){let i=t.slice(o).join(".");if(js.has(i)){let a=t.length-o;a>s&&(s=a,n=i)}}for(let o=0;o<t.length-1;o++){let i=t.slice(o+1).join(".");if(qs.has(i)){let a=t.slice(o).join("."),c=t.length-o;c>s&&(s=c,n=a)}}return n||(t[t.length-1]??null)}function Jr(r){let e=r.toLowerCase();if(me(e))return e;let t=gt(e);if(!t)return null;let n=t.split(".").length,s=e.split(".");return s.length<=n?null:s.slice(-(n+1)).join(".")}function yt(r){let e=r.toLowerCase();if(zs.has(e)||js.has(e))return!0;let t=e.split(".");if(t.length>=2){let n=t.slice(1).join(".");if(qs.has(n))return!0}return!1}function Yl(r){try{let c=r.lastIndexOf("-"),l=[],u=c>=0?r.slice(0,c):"";for(let S=0;S<u.length;S++){let R=u.charCodeAt(S);if(R>122||R>90&&R<97||R>57&&R<65||R<48)return r;l.push(R)}let f=c>=0?r.slice(c+1):r,d=128,p=0,g=72,m=S=>S>=65&&S<=90?S-65:S>=97&&S<=122?S-97:S>=48&&S<=57?S-48+26:-1,y=(S,R,C)=>{S=Math.floor(S/(C?700:2)),S+=Math.floor(S/R);let T=0;for(;S>910/2;)S=Math.floor(S/35),T+=36;return T+Math.floor(36*S/(S+38))},b=0;for(;b<f.length;){let S=p,R=1;for(let C=36;;C+=36){if(b>=f.length)return r;let T=m(f.charCodeAt(b++));if(T<0)return r;p+=T*R;let A=C<=g?1:C>=g+26?26:C-g;if(T<A)break;R*=36-A}g=y(p-S,l.length+1,S===0),d+=Math.floor(p/(l.length+1)),p%=l.length+1,l.splice(p,0,d),p++}return String.fromCodePoint(...l)||r}catch{return r}}function Zt(r){if(!r.toLowerCase().startsWith("xn--"))return r;let e=Intl;if(typeof Intl<"u"&&e.IDN&&typeof e.IDN.toUnicode=="function")try{return e.IDN.toUnicode(r,{standard:"tr46"})}catch{return r}if(Hs){let t=r+".invalid",n=Hs(t);if(n&&n.length>8&&n.endsWith(".invalid")){let s=n.slice(0,-8);if(s!==r)return s}}if(r.startsWith("xn--"))try{let t=Yl(r.slice(4));if(t&&t!==r.slice(4))return t}catch{}return r}function ce(r){return r.replace(/^\./,"").replace(/\.$/,"").toLowerCase().split(".").map(Zt).join(".")}function me(r){let e=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;return Zl.test(e)?e.split(".").map(Number).every(n=>n>=0&&n<=255):eu.test(e)&&e.includes(":")}function wt(r,e){let t=r.toLowerCase(),n=e.toLowerCase();return t===n?!0:!(me(t)||!t.endsWith("."+n)||me(n)||gt(t)===t)}function bt(r){if(!r||r===""||r[0]!=="/")return"/";let e=r.lastIndexOf("/");return e===0?"/":r.slice(0,e)}function Vr(r){if(!r.startsWith("/"))return"/"+r;let e=[],t=r.split("/");for(let n of t)n===""||n==="."||(n===".."?e.length>0&&e.pop():e.push(n));return"/"+e.join("/")}function xt(r,e){let t=Vr(r),n=Vr(e);return!!(t===n||t.startsWith(n)&&(n.endsWith("/")||t[n.length]==="/"))}function ru(r){return r===""?!0:tu.test(r)}function nu(r){for(let e=0;e<r.length;e++){let t=r.charCodeAt(e);if(t>=0&&t<=8||t>=10&&t<=31||t===127)return!1}return!0}function _t(r){if(!r||r.trim()==="")return null;let e=r.indexOf(";"),t=e===-1?r:r.slice(0,e),n=e===-1?"":r.slice(e+1),s=t.indexOf("="),o,i;if(s===-1?(o="",i=t.trim()):(o=t.slice(0,s).trim(),i=t.slice(s+1).trim()),!ru(o)||(i.length>=2&&i[0]==='"'&&i[i.length-1]==='"'&&(i=i.slice(1,-1)),!nu(i)))return null;let a=new Map,c=n.split(";");for(let A of c){let M=A.trim();if(!M)continue;let N=M.indexOf("=");if(N===-1)a.set(M.toLowerCase(),"");else{let F=M.slice(0,N).trim().toLowerCase(),$=M.slice(N+1).trim();a.has(F)||a.set(F,$)}}let l=a.has("domain")?a.get("domain"):null,u=a.has("path")?a.get("path"):null,f=a.has("expires")?a.get("expires"):null,d=a.has("max-age")?a.get("max-age"):null,p=a.has("secure"),g=a.has("httponly"),m="Unset";if(a.has("samesite")){let A=a.get("samesite").toLowerCase();A==="strict"?m="Strict":A==="lax"?m="Lax":A==="none"&&(m="None")}let y=a.has("sameparty"),b=null;if(a.has("priority")){let A=a.get("priority").toLowerCase();A==="low"?b="Low":A==="medium"?b="Medium":A==="high"&&(b="High")}let x=a.has("partitioned"),S=null;d!==null&&d.match(/^-?\d+$/)&&(S=parseInt(d,10));let R=null;S===null&&f!==null&&(R=Yt(f));let C=null;l!==null&&l!==""&&(C=ce(l));let T=null;return u!==null&&u.startsWith("/")&&(T=u),{name:o,value:i,domain:C,path:T,expires:R,maxAge:S,secure:p,httpOnly:g,sameSite:m,sameParty:y,priority:b,partitioned:x}}function Sa(r){let e=[];if(r.value.includes(";")||r.value.includes(",")||r.value.includes(" ")||r.value.includes('"')?e.push(`${r.name}="${r.value.replace(/"/g,'\\"')}"`):e.push(`${r.name}=${r.value}`),r.path&&e.push(`Path=${r.path}`),r.domain&&e.push(`Domain=${r.domain}`),r.expires!==null){let t=new Date(r.expires);e.push(`Expires=${t.toUTCString()}`)}return r.maxAge!==null&&e.push(`Max-Age=${r.maxAge}`),r.secure&&e.push("Secure"),r.httpOnly&&e.push("HttpOnly"),r.sameSite&&r.sameSite!=="Unset"&&e.push(`SameSite=${r.sameSite}`),r.sameParty&&e.push("SameParty"),r.priority&&e.push(`Priority=${r.priority}`),r.partitioned&&e.push("Partitioned"),e.join("; ")}function qe(r){let e=[],t="",n=0,s=!1,o=!1,i=!1,a=!1,c=!1,l=()=>{i&&a&&t.trim()&&e.push(t.trim()),t="",i=!1,a=!1,c=!1};for(;n<r.length;){let u=r[n],f=r[n+1]??"";if(o){t+=u,o=!1,n++;continue}if(u==="\\"&&(s||f==='"'||f==="\\")){t+=u,o=!0,n++;continue}if(u==='"'){!s&&i?s=!0:s&&(s=!1,a=!0),t+=u,n++;continue}if(s){t+=u,n++;continue}if(u===","&&!s&&(c||a||i)){for(l();n+1<r.length&&/\s/.test(r[n+1]);)n++;n++;continue}if(u===";"){i||(i=!0),a&&(c=!0),t+=u,n++;continue}if(u==="="&&!i){i=!0,a=!0,t+=u,n++;continue}if(i&&!a&&u!==";"&&u!==","&&(a=!0),u===" "||u===" "){t.length>0&&t.trim()!==""&&(t+=u),n++;continue}t+=u,n++}return i&&a&&t.trim()&&e.push(t.trim()),e}function St(r){if(typeof Headers<"u"&&r instanceof Headers){if(typeof r.getSetCookie=="function")return r.getSetCookie();let n=r.get("set-cookie");return n?qe(n):[]}let e=r,t=e["set-cookie"]??e["Set-Cookie"];return t?Array.isArray(t)?t.flatMap(n=>qe(n)):qe(t):[]}var Wl,Kl,Xl,js,qs,zs,Hs,Zl,eu,tu,Qr=q(()=>{"use strict";Wl={jan:0,january:0,feb:1,february:1,mar:2,march:2,apr:3,april:3,may:4,jun:5,june:5,jul:6,july:6,aug:7,august:7,sep:8,september:8,oct:9,october:9,nov:10,november:10,dec:11,december:11},Kl=/[\t\x20-\x2f\x3b-\x40\x5b-\x60\x7b-\x7e]+/;Xl=["!www.ck","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","*.ck","*.er","*.bd","*.fj","*.fk","*.gu","*.jm","*.kh","*.mm","*.np","*.pg","*.ss","*.tp","*.vi","*.ye","*.zm","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.osaka.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","com","net","org","edu","gov","mil","int","arpa","info","biz","name","mobi","tel","travel","museum","coop","aero","pro","jobs","cat","post","xxx","app","dev","io","ai","co","me","tv","fm","blog","shop","store","online","site","web","tech","cloud","digital","media","news","press","agency","solutions","services","systems","network","group","team","studio","design","art","photography","email","marketing","consulting","management","finance","money","bank","insurance","healthcare","medical","hospital","clinic","pharmacy","dental","legal","law","attorney","lawyer","accountant","pm","sh","ac","cc","cx","nu","ms","pw","sc","sx","tc","tk","ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","su","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","com.br","net.br","org.br","edu.br","gov.br","mil.br","art.br","ind.br","adm.br","adv.br","agr.br","am.br","arq.br","ato.br","b.br","bio.br","blog.br","bmd.br","cim.br","cng.br","cnt.br","coop.br","ecn.br","eco.br","emp.br","eng.br","esp.br","etc.br","eti.br","far.br","flog.br","fm.br","fnd.br","fot.br","fst.br","g12.br","ggf.br","imb.br","inf.br","jor.br","jus.br","leg.br","lel.br","mat.br","med.br","mp.br","mus.br","not.br","ntr.br","odo.br","ppg.br","pro.br","psc.br","psi.br","qsl.br","radio.br","rec.br","slg.br","srv.br","taxi.br","teo.br","tmp.br","trd.br","tur.br","tv.br","vet.br","vlog.br","wiki.br","zlg.br","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","com.cn","net.cn","org.cn","edu.cn","gov.cn","mil.cn","ac.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","co.uk","me.uk","org.uk","ltd.uk","plc.uk","net.uk","sch.uk","gov.uk","nhs.uk","police.uk","mod.uk","ac.uk","judiciary.uk","parliament.uk","co.jp","ne.jp","or.jp","ac.jp","ad.jp","ed.jp","go.jp","gr.jp","lg.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","co.nz","net.nz","org.nz","edu.nz","govt.nz","school.nz","geek.nz","maori.nz","iwi.nz","mil.nz","parliament.nz","ac.nz","co.za","net.za","org.za","edu.za","gov.za","mil.za","ac.za","alt.za","agric.za","cybernet.za","db.za","grondar.za","nis.za","nom.za","ngo.za","pty.za","school.za","tm.za","web.za","co.in","net.in","org.in","edu.in","gov.in","mil.in","ac.in","res.in","firm.in","gen.in","ind.in","int.in","nic.in","com.ar","net.ar","org.ar","edu.ar","gov.ar","mil.ar","int.ar","tur.ar","com.mx","net.mx","org.mx","edu.mx","gob.mx","com.sg","net.sg","org.sg","edu.sg","gov.sg","per.sg","com.hk","net.hk","org.hk","edu.hk","gov.hk","idv.hk","com.tw","net.tw","org.tw","edu.tw","gov.tw","mil.tw","idv.tw","game.tw","ebiz.tw","club.tw","com.my","net.my","org.my","edu.my","gov.my","mil.my","name.my","sch.my","com.ph","net.ph","org.ph","edu.ph","gov.ph","mil.ph","ngo.ph","i.ph","com.pk","net.pk","org.pk","edu.pk","gov.pk","mil.pk","ac.pk","res.pk","biz.pk","fam.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","com.eg","net.eg","org.eg","edu.eg","gov.eg","mil.eg","sci.eg","eun.eg","info.eg","name.eg","com.sa","net.sa","org.sa","edu.sa","gov.sa","med.sa","pub.sa","sch.sa","com.ae","net.ae","org.ae","edu.ae","gov.ae","mil.ae","sch.ae","ac.ae","pro.ae","name.ae","com.tr","net.tr","org.tr","edu.tr","gov.tr","mil.tr","bel.tr","k12.tr","av.tr","bbs.tr","dr.tr","gen.tr","info.tr","name.tr","pol.tr","tel.tr","web.tr","com.ua","net.ua","org.ua","edu.ua","gov.ua","mil.ua","in.ua","co.ua","cherkassy.ua","chernigov.ua","chernovtsy.ua","dn.ua","dnepropetrovsk.ua","donetsk.ua","dp.ua","if.ua","kh.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","lg.ua","lugansk.ua","lutsk.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sebastopol.ua","sumy.ua","te.ua","ternopil.ua","uzhgorod.ua","vinnica.ua","vn.ua","volyn.ua","yalta.ua","zp.ua","zaporizhzhe.ua","zt.ua","zhitomir.ua","com.ru","net.ru","org.ru","edu.ru","gov.ru","mil.ru","pp.ru","int.ru","ac.ru","msk.ru","spb.ru","com.pl","net.pl","org.pl","edu.pl","gov.pl","mil.pl","co.pl","info.pl","biz.pl","nom.pl","waw.pl","poznan.pl","lodz.pl","krakow.pl","wroclaw.pl","com.de","co.de","com.fr","co.fr","asso.fr","nom.fr","prd.fr","presse.fr","tm.fr","aeroport.fr","assedic.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","gouv.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","com.it","co.it","com.es","co.es","nom.es","org.es","edu.es","gob.es","com.nl","co.nl","com.be","co.be","ac.be","org.be","net.be","com.ch","co.ch","com.at","co.at","ac.at","gv.at","or.at","priv.at","com.se","co.se","ac.se","bd.se","brand.se","fh.se","fhsk.se","fhv.se","tm.se","pp.se","press.se","parti.se","komforb.se","kommunalforbund.se","komvux.se","lanarb.se","lanbib.se","naturbruksgymn.se","sshn.se","com.no","co.no","stat.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","vgs.no","videregaaende.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","com.dk","co.dk","ac.dk","com.fi","co.fi","ac.fi","iki.fi","aland.fi","www.fi","com.pt","co.pt","edu.pt","gov.pt","int.pt","net.pt","nome.pt","org.pt","publ.pt","dyndns.pt","com.gr","co.gr","edu.gr","gov.gr","net.gr","org.gr","store.gr","com.ie","co.ie","gov.ie","net.ie","org.ie","teagasc.ie","com.cz","co.cz","edu.cz","net.cz","org.cz","info.cz","com.sk","co.sk","edu.sk","net.sk","org.sk","com.hu","co.hu","edu.hu","film.hu","gov.hu","info.hu","net.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","com.ro","co.ro","edu.ro","gov.ro","info.ro","net.ro","nom.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","arts.ro","firm.ro","nt.ro","shop.ro","com.bg","co.bg","edu.bg","gov.bg","net.bg","org.bg","tel.bg","biz.bg","com.hr","co.hr","from.hr","iz.hr","name.hr","net.hr","com.rs","co.rs","edu.rs","gov.rs","in.rs","net.rs","org.rs","com.ba","co.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","rs.ba","unbi.ba","unmo.ba","unsa.ba","untz.ba","unze.ba","com.co","net.co","org.co","edu.co","gov.co","mil.co","nom.co","com.ve","net.ve","org.ve","edu.ve","gov.ve","mil.ve","int.ve","co.ve","arts.ve","bib.ve","firm.ve","info.ve","nom.ve","rec.ve","store.ve","tec.ve","web.ve","com.pe","net.pe","org.pe","edu.pe","gov.pe","mil.pe","nom.pe","sld.pe","com.cl","co.cl","gob.cl","gov.cl","net.cl","org.cl","mil.cl","edu.cl","co.kr","ne.kr","or.kr","re.kr","pe.kr","go.kr","mil.kr","ac.kr","hs.kr","ms.kr","es.kr","sc.kr","kg.kr","seoul.kr","busan.kr","daegu.kr","incheon.kr","gwangju.kr","daejeon.kr","ulsan.kr","gyeonggi.kr","gangwon.kr","chungbuk.kr","chungnam.kr","jeonbuk.kr","jeonnam.kr","gyeongbuk.kr","gyeongnam.kr","jeju.kr","co.id","net.id","or.id","ac.id","web.id","sch.id","go.id","mil.id","my.id","co.th","net.th","org.th","ac.th","go.th","in.th","mi.th","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","com.ng","net.ng","org.ng","edu.ng","gov.ng","mil.ng","mobi.ng","name.ng","sch.ng","co.ke","or.ke","ne.ke","go.ke","ac.ke","sc.ke","me.ke","mobi.ke","co.il","net.il","org.il","edu.il","gov.il","muni.il","ac.il","idf.il","com.ir","net.ir","org.ir","edu.ir","gov.ir","ac.ir","id.ir"],js=new Set,qs=new Set,zs=new Set;for(let r of Xl)r.startsWith("!")?zs.add(r.slice(1).toLowerCase()):r.startsWith("*.")?qs.add(r.slice(2).toLowerCase()):js.add(r.toLowerCase());(async()=>{try{let r=await import("node:url");typeof r.domainToUnicode=="function"&&(Hs=r.domainToUnicode)}catch{}})();Zl=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,eu=/^[\da-f:]+$/i;tu=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});function au(r,e){let t=r.name;return!(t.startsWith("__Secure-")&&(!r.secure||e.protocol!=="https:")||t.startsWith("__Host-")&&(!r.secure||e.protocol!=="https:"||r.path!=="/"||!r.hostOnly))}function cu(r,e){switch(r){case"Strict":return e==="strict";case"Lax":return e==="strict"||e==="lax";case"Unset":return e!=="cross-site";case"None":return!0}}function Bs(r){try{return new URL(r)}catch{return null}}function Gr(){return new Se}function Xr(r){return Se.fromJSON(r)}var su,ou,iu,Ta,Se,Ea=q(()=>{"use strict";Qr();su=4096,ou=50,iu=3e3,Ta=400*24*60*60*1e3;Se=class r{constructor(e={}){h(this,"dm",new Map);h(this,"total",0);h(this,"cleanupTimer",null);h(this,"maxTotal");h(this,"maxPerDomain");h(this,"domainMatcherFn");this.maxTotal=e.maxTotal??iu,this.maxPerDomain=e.maxPerDomain??ou,this.domainMatcherFn=e.domainMatcher??null,this.cleanupTimer=setInterval(()=>{this.clearExpired()},300*1e3),typeof this.cleanupTimer=="object"&&this.cleanupTimer!==null&&"unref"in this.cleanupTimer&&this.cleanupTimer.unref()}destroy(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=null)}setCookie(e,t){let n=Bs(t.url);if(!n)return!1;let s=_t(e);if(!s)return!1;let o=Date.now(),i=n.hostname.toLowerCase(),a=i.replace(/^\[|\]$/g,""),c=n.protocol==="https:"||a==="localhost"||a==="127.0.0.1"||a==="::1";if(s.name.length+1+s.value.length>su)return!1;let u,f;if(s.domain!==null&&s.domain!==""){let b=s.domain;if(!(this.domainMatcherFn??wt)(i,b)||yt(b))return!1;u=b,f=!1}else u=i,f=!0;let d=s.path??bt(n.pathname),p=s.secure;if(p&&!c)return!1;let g=s.sameSite;if(g==="None"&&!p)return!1;let m;if(s.maxAge!==null){if(s.maxAge<=0)return this.removeCookie(u,d,s.name),!0;let b=Math.min(s.maxAge*1e3,Ta);m=o+b}else if(s.expires!==null){if(m=s.expires,m<=o)return this.removeCookie(u,d,s.name),!0;m=Math.min(m,o+Ta)}else m=1/0;let y={name:s.name,value:s.value,domain:u,path:d,expires:m,maxAge:s.maxAge,secure:p,httpOnly:s.httpOnly,sameSite:g,createdAt:o,lastAccessed:o,hostOnly:f};return au(y,n)?(this.putCookie(y),!0):!1}getCookies(e){Math.random()<.01&&this.clearExpired();let t=Bs(e.url);if(!t)return[];let n=t.hostname.toLowerCase(),s=n.replace(/^\[|\]$/g,""),o=t.pathname||"/",i=t.protocol==="https:"||s==="localhost"||s==="127.0.0.1"||s==="::1",a=e.http!==!1,c=e.sameSiteContext??"none",l=Date.now(),u=[];for(let[d,p]of this.dm)if(this.matchDomain(n,d))for(let[,g]of p)for(let[,m]of g)m.hostOnly&&n!==m.domain||m.expires!==1/0&&m.expires<l||xt(o,m.path)&&(m.secure&&!i||m.httpOnly&&!a||cu(m.sameSite,c)&&u.push(m));u.sort((d,p)=>{let g=p.path.length-d.path.length;return g!==0?g:d.createdAt-p.createdAt});let f=Date.now();for(let d of u)d.lastAccessed=f;return u}getCookieHeader(e){return this.getCookies(e).map(t=>t.name?`${t.name}=${t.value}`:t.value).join("; ")}getCookiesForDomain(e){let t=ce(e),n=[];for(let[s,o]of this.dm)if(s===t||s.endsWith("."+t))for(let[,i]of o)for(let[,a]of i)a.expires!==1/0&&a.expires<Date.now()||n.push(a);return n}processResponseHeaders(e,t){for(let n of St(e))this.setCookie(n,t)}removeCookie(e,t,n){let s=ce(e),o=this.dm.get(s);if(!o)return!1;let i=o.get(t);if(!i)return!1;let a=i.delete(n);return a&&(this.total--,i.size===0&&o.delete(t),o.size===0&&this.dm.delete(s)),a}clear(){this.dm.clear(),this.total=0}clearExpired(){let e=Date.now(),t=0;for(let[n,s]of this.dm){for(let[o,i]of s){for(let[a,c]of i)c.expires!==1/0&&c.expires<e&&(i.delete(a),this.total--,t++);i.size===0&&s.delete(o)}s.size===0&&this.dm.delete(n)}return t}clearSession(){let e=0;for(let[t,n]of this.dm){for(let[s,o]of n){for(let[i,a]of o)a.expires===1/0&&(o.delete(i),this.total--,e++);o.size===0&&n.delete(s)}n.size===0&&this.dm.delete(t)}return e}clearForDomain(e){let t=ce(e),n=0;for(let[s,o]of this.dm)if(s===t||s.endsWith("."+t)){let i=0;for(let a of o.values())i+=a.size;this.dm.delete(s),this.total-=i,n+=i}return n}clearForUrl(e){let t=Bs(e);return t?this.clearForDomain(t.hostname):0}toJSON(){let e=Date.now(),t=[];for(let[,n]of this.dm)for(let[,s]of n)for(let[,o]of s)o.expires!==1/0&&o.expires<e||t.push({name:o.name,value:o.value,domain:o.domain,path:o.path,expires:o.expires===1/0?null:o.expires,maxAge:o.maxAge,secure:o.secure,httpOnly:o.httpOnly,sameSite:o.sameSite,createdAt:o.createdAt,lastAccessed:o.lastAccessed,hostOnly:o.hostOnly});return t}toString(){return JSON.stringify(this.toJSON(),null,2)}static fromJSON(e){let t=new r,n=typeof e=="string"?JSON.parse(e):e,s=Date.now();for(let o of n){let i=o.expires===null?1/0:o.expires;if(i!==1/0&&i<s)continue;let a={name:o.name,value:o.value,domain:o.domain,path:o.path,expires:i,maxAge:o.maxAge,secure:o.secure,httpOnly:o.httpOnly,sameSite:o.sameSite,createdAt:o.createdAt,lastAccessed:o.lastAccessed,hostOnly:o.hostOnly};t.putCookie(a)}return t}get count(){return this.total}getAll(){let e=[];for(let[,t]of this.dm)for(let[,n]of t)for(let[,s]of n)e.push({...s});return e}getForDomain(e){let t=ce(e),n=[];for(let[s,o]of this.dm)if(s===t||s.endsWith("."+t))for(let[,i]of o)for(let[,a]of i)n.push({...a});return n}putCookie(e){let{domain:t,path:n,name:s}=e;this.dm.has(t)||this.dm.set(t,new Map);let o=this.dm.get(t);o.has(n)||o.set(n,new Map);let i=o.get(n);if(i.has(s)){let a=i.get(s);i.set(s,{...e,createdAt:a.createdAt})}else this.evictForDomain(t,o),this.evictGlobal(),i.set(s,e),this.total++}evictForDomain(e,t){let n=0;for(let i of t.values())n+=i.size;if(n<this.maxPerDomain)return;let s=[];for(let[i,a]of t)for(let[c,l]of a)s.push([i,c,l]);s.sort((i,a)=>i[2].lastAccessed-a[2].lastAccessed);let o=0;for(;n>=this.maxPerDomain&&o<s.length;){let[i,a]=s[o++];t.get(i)?.delete(a)&&(this.total--,n--)}for(let[i,a]of t)a.size===0&&t.delete(i)}evictGlobal(){if(this.total<this.maxTotal)return;let e=[];for(let[n,s]of this.dm)for(let[o,i]of s)for(let[a,c]of i)e.push([n,o,a,c]);e.sort((n,s)=>n[3].lastAccessed-s[3].lastAccessed);let t=0;for(;this.total>=this.maxTotal&&t<e.length;){let[n,s,o]=e[t++],i=this.dm.get(n),a=i?.get(s);a?.delete(o)&&(this.total--,a.size===0&&i.delete(s),i.size===0&&this.dm.delete(n))}}matchDomain(e,t){return this.domainMatcherFn?this.domainMatcherFn(e,t):e===t?!0:me(e)?!1:e.endsWith("."+t)}}});var Ra={};ue(Ra,{CookieJar:()=>Se,canonicalizeDomainFull:()=>ce,createCookieJar:()=>Gr,decodeIDNLabel:()=>Zt,defaultPath:()=>bt,domainMatch:()=>wt,extractSetCookieHeaders:()=>St,formatSetCookieHeader:()=>Sa,getPublicSuffix:()=>gt,getRegistrableDomain:()=>Jr,isIPAddress:()=>me,isPublicSuffix:()=>yt,loadCookieJar:()=>Xr,normalizePath:()=>Vr,parseCookieDate:()=>Yt,parseSetCookieHeader:()=>_t,pathMatch:()=>xt,splitSetCookieHeaders:()=>qe});var Fs=q(()=>{"use strict";Ea();Qr()});var Ca={};ue(Ca,{BatchingTransport:()=>Rt,ConsoleTransport:()=>ze,HTTPLogger:()=>Ee,JSONTransport:()=>Et,LogLevel:()=>Tt,MultiTransport:()=>At,Redactor:()=>Ct,RemoteTransport:()=>kt,createDevelopmentLogger:()=>Js,createLogger:()=>Ks,createProductionLogger:()=>Vs,toOTelSpan:()=>Ws});function mu(){let r=Date.now().toString(36),e=(++pu).toString(36).padStart(4,"0"),t=Math.random().toString(36).slice(2,6);return`${r}-${e}-${t}`}function Aa(r,e){if(!r||typeof r!="object"||e.length===0)return;let[t,...n]=e;if(t===void 0)return;let s=r;if(n.length===0){t in s&&(s[t]="***");return}typeof s[t]=="object"&&Aa(s[t],n)}function ka(r){return typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength}function Ws(r){let e={"http.request.id":r.requestId,"http.request.method":r.method,"url.full":r.url};return r.type==="response"&&(e["http.response.status_code"]=r.status,e["http.response.body.size"]=r.bodySize,e["http.time_to_first_byte"]=r.durationMs),r.type==="error"&&(e.error=!0,e["error.type"]=r.error.name,e["error.message"]=r.error.message,e["http.status_code"]=r.status),e}function gu(r){if(r instanceof Error){let e=r.code,t=r.stack;return{name:r.name,message:r.message,...e!==void 0?{code:e}:{},...t!==void 0?{stack:t}:{}}}return{name:"Error",message:String(r)}}function Yr(){return typeof performance<"u"?performance.now():Date.now()}function Ks(r){return new Ee(r)}function Vs(r){let e=[new Et];return r.endpoint&&e.push(new Rt(new kt(r.endpoint))),new Ee({level:r.level??"INFO",transports:[new At(e)],...r.context!==void 0?{context:r.context}:{}})}function Js(r={}){return new Ee({level:r.level??"DEBUG",transports:[new ze({pretty:!0,useColors:!0,onWrite:e=>console.log(e)})],redaction:{logRequestBody:r.logBodies??!0,logResponseBody:r.logBodies??!0,maxBodyLength:2048}})}var lu,Tt,uu,hu,fu,ze,du,Et,Rt,kt,At,pu,Ct,Te,Ee,Zr=q(()=>{"use strict";lu=()=>{try{return globalThis.process?.env?.NODE_ENV}catch{return}},Tt={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},uu=["authorization","proxy-authorization","cookie","set-cookie","x-api-key","x-auth-token","x-access-token","x-refresh-token","x-csrf-token","x-session-id","x-session-token","x-secret","x-secret-key","x-private-key","api-key","apikey","bearer","token","authentication","credentials","password","passwd","secret"],hu=["token","api_key","apikey","access_token","refresh_token","secret","password","pass","pwd","key","auth"],fu=["application/json","application/x-www-form-urlencoded","text/"],ze=class{constructor(e={pretty:!1,onWrite:t=>console.log(t)}){h(this,"pretty");h(this,"onWrite");this.pretty=e.pretty??lu()!=="production",this.onWrite=e.onWrite,e.useColors}write(e){let t=this.pretty?this._prettyFormat(e):JSON.stringify(e);this.onWrite(t)}_prettyFormat(e){let t=new Date(e.timestampMs).toISOString().slice(11,23),n=e.level.padEnd(5),s=e.requestId.slice(-8);if(e.type==="request")return`[${t}] ${n} \u2190 ${e.method} ${e.url} [${s}]`;if(e.type==="response"){let o=`${e.durationMs.toFixed(0)}ms`,i=e.cached?" (cached)":"";return`[${t}] ${n} \u2192 ${e.status} ${e.method} ${e.url} ${o}${i} [${s}]`}return`[${t}] ${n} \u2717 ${e.method} ${e.url} ${e.error.message} [${s}]`}},du=()=>{try{return typeof globalThis.process?.stdout?.write=="function"}catch{return!1}},Et=class{constructor(e=t=>{du()?globalThis.process.stdout.write(t+`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kinetex",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Feature-rich, universal TypeScript HTTP client.",
|
|
5
5
|
"author": "kinetexjs",
|
|
6
6
|
"license": "MIT",
|
|
@@ -183,7 +183,8 @@
|
|
|
183
183
|
"typecheck": "tsc -p tsconfig.check.json",
|
|
184
184
|
"clean": "node -e \"import('node:fs').then(f=>f.default.rmSync('dist',{recursive:true,force:true}))\"",
|
|
185
185
|
"test": "tsx --test --test-concurrency=1 tests/mod.test.mts tests/client.test.mts tests/core.test.mts tests/utils.test.mts tests/headers.test.mts tests/url.test.mts tests/response.test.mts",
|
|
186
|
-
"test:all": "tsx --test tests
|
|
186
|
+
"test:all": "tsx --test --test-concurrency=1 tests/mod.test.mts tests/client.test.mts tests/core.test.mts tests/utils.test.mts tests/headers.test.mts tests/url.test.mts tests/response.test.mts tests/digest.test.mts tests/fuzz.test.mts tests/negative.test.mts tests/security.test.mts tests/types.test.mts tests/perf-now.test.mts tests/cache-control.test.mts",
|
|
187
|
+
"perf": "tsx tests/perf.test.mts",
|
|
187
188
|
"node:battle": "tsx tests/Node.test.mts",
|
|
188
189
|
"deno:battle": "deno run --allow-net --allow-env --allow-read --allow-sys tests/runtime/deno/Deno.test.mts",
|
|
189
190
|
"bun:battle": "bun tests/runtime/bun/Bun.test.mts",
|