kinetex 1.3.0 → 1.5.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.
- package/README.md +413 -52
- package/dist/browser/kinetex.esm.js +38 -22
- package/dist/browser/kinetex.js +3134 -787
- package/dist/browser/kinetex.min.js +38 -22
- package/dist/cjs/aws-sigv4.js +140 -33
- package/dist/cjs/cache.js +58 -7
- package/dist/cjs/circuit-breaker.js +53 -4
- package/dist/cjs/client.js +726 -188
- package/dist/cjs/cookie-parser.js +131 -6
- package/dist/cjs/cookie-store.js +125 -28
- package/dist/cjs/core.js +691 -70
- package/dist/cjs/dedup.js +142 -21
- package/dist/cjs/digest.js +195 -38
- package/dist/cjs/graphql.js +166 -35
- package/dist/cjs/headers.js +327 -46
- package/dist/cjs/interceptors.js +227 -24
- package/dist/cjs/lifecycle.js +92 -59
- package/dist/cjs/logging.js +160 -24
- package/dist/cjs/mod.js +3 -2
- package/dist/cjs/pagination.js +247 -22
- package/dist/cjs/progress.js +178 -30
- package/dist/cjs/proxy.js +429 -0
- package/dist/cjs/response.js +506 -110
- package/dist/cjs/socks5.js +136 -15
- package/dist/cjs/sse.js +173 -43
- package/dist/cjs/url.js +191 -45
- package/dist/cjs/utils.js +335 -73
- package/dist/cjs/ws.js +62 -12
- package/dist/esm/aws-sigv4.js +140 -33
- package/dist/esm/aws-sigv4.js.map +1 -1
- package/dist/esm/cache.js +58 -7
- package/dist/esm/cache.js.map +1 -1
- package/dist/esm/circuit-breaker.js +53 -4
- package/dist/esm/circuit-breaker.js.map +1 -1
- package/dist/esm/client.js +726 -188
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/cookie-parser.js +131 -6
- package/dist/esm/cookie-parser.js.map +1 -1
- package/dist/esm/cookie-store.js +125 -28
- package/dist/esm/cookie-store.js.map +1 -1
- package/dist/esm/core.js +691 -70
- package/dist/esm/core.js.map +1 -1
- package/dist/esm/dedup.js +142 -21
- package/dist/esm/dedup.js.map +1 -1
- package/dist/esm/digest.js +195 -38
- package/dist/esm/digest.js.map +1 -1
- package/dist/esm/graphql.js +166 -35
- package/dist/esm/graphql.js.map +1 -1
- package/dist/esm/headers.js +327 -46
- package/dist/esm/headers.js.map +1 -1
- package/dist/esm/interceptors.js +227 -24
- package/dist/esm/interceptors.js.map +1 -1
- package/dist/esm/lifecycle.js +92 -59
- package/dist/esm/lifecycle.js.map +1 -1
- package/dist/esm/logging.js +160 -24
- package/dist/esm/logging.js.map +1 -1
- package/dist/esm/mod.js +3 -2
- package/dist/esm/mod.js.map +1 -1
- package/dist/esm/pagination.js +247 -22
- package/dist/esm/pagination.js.map +1 -1
- package/dist/esm/progress.js +178 -30
- package/dist/esm/progress.js.map +1 -1
- package/dist/esm/proxy.js +430 -0
- package/dist/esm/proxy.js.map +1 -0
- package/dist/esm/response.js +506 -110
- package/dist/esm/response.js.map +1 -1
- package/dist/esm/socks5.js +136 -15
- package/dist/esm/socks5.js.map +1 -1
- package/dist/esm/sse.js +173 -43
- package/dist/esm/sse.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/url.js +191 -45
- package/dist/esm/url.js.map +1 -1
- package/dist/esm/utils.js +335 -73
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/ws.js +62 -12
- package/dist/esm/ws.js.map +1 -1
- package/dist/types/aws-sigv4.d.ts.map +1 -1
- package/dist/types/cache.d.ts +19 -1
- package/dist/types/cache.d.ts.map +1 -1
- package/dist/types/circuit-breaker.d.ts +15 -2
- package/dist/types/circuit-breaker.d.ts.map +1 -1
- package/dist/types/client.d.ts +69 -11
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/cookie-parser.d.ts +0 -17
- package/dist/types/cookie-parser.d.ts.map +1 -1
- package/dist/types/cookie-store.d.ts.map +1 -1
- package/dist/types/core.d.ts +216 -25
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/dedup.d.ts +38 -3
- package/dist/types/dedup.d.ts.map +1 -1
- package/dist/types/digest.d.ts +17 -37
- package/dist/types/digest.d.ts.map +1 -1
- package/dist/types/graphql.d.ts.map +1 -1
- package/dist/types/headers.d.ts +68 -31
- package/dist/types/headers.d.ts.map +1 -1
- package/dist/types/interceptors.d.ts +126 -38
- package/dist/types/interceptors.d.ts.map +1 -1
- package/dist/types/lifecycle.d.ts +19 -2
- package/dist/types/lifecycle.d.ts.map +1 -1
- package/dist/types/logging.d.ts +22 -3
- package/dist/types/logging.d.ts.map +1 -1
- package/dist/types/mod.d.ts +5 -3
- package/dist/types/mod.d.ts.map +1 -1
- package/dist/types/pagination.d.ts +0 -25
- package/dist/types/pagination.d.ts.map +1 -1
- package/dist/types/progress.d.ts +1 -1
- package/dist/types/progress.d.ts.map +1 -1
- package/dist/types/proxy.d.ts +50 -0
- package/dist/types/proxy.d.ts.map +1 -0
- package/dist/types/response.d.ts +49 -2
- package/dist/types/response.d.ts.map +1 -1
- package/dist/types/socks5.d.ts.map +1 -1
- package/dist/types/sse.d.ts.map +1 -1
- package/dist/types/types.d.ts +219 -26
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/url.d.ts +0 -25
- package/dist/types/url.d.ts.map +1 -1
- package/dist/types/utils.d.ts +69 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/ws.d.ts +0 -1
- package/dist/types/ws.d.ts.map +1 -1
- package/package.json +10 -4
|
@@ -1,20 +1,36 @@
|
|
|
1
|
-
/* kinetex v1.
|
|
2
|
-
var ps=Object.defineProperty;var ms=r=>{throw TypeError(r)};var ia=(r,e,t)=>e in r?ps(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;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 pe=(r,e)=>{for(var t in e)ps(r,t,{get:e[t],enumerable:!0})};var f=(r,e,t)=>ia(r,typeof e!="symbol"?e+"":e,t),aa=(r,e,t)=>e.has(r)||ms("Cannot "+t);var gs=(r,e,t)=>e.has(r)?ms("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var ne=(r,e,t)=>(aa(r,e,"access private method"),t);function wa(){if(Wt)return Wt;let r=globalThis;if(r.process?.hrtime)return Wt=r.process,Wt}function ba(){if(Kt)return Kt;let r=globalThis;if(r.Buffer&&typeof r.Buffer.isBuffer=="function")return Kt=r.Buffer,Kt}function me(r,e={}){let t={...xa,...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 Dr(i,t,0)?!t.allowNonFinite&&Nr(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 Dr(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=>Dr(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=>Dr(r[s],e,t+1))}return!0}function Nr(r){return typeof r=="number"&&!Number.isFinite(r)?!0:Array.isArray(r)?r.some(Nr):typeof r=="object"&&r!==null?Object.values(r).some(Nr):!1}function _a(r){let e=me(r);return e.success?e.value:r}function M(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r)){for(let t=0;t<r.length;t++)r[t]=M(r[t]);return r}let e=r;for(let t of Object.keys(e)){if(t==="__proto__"||t==="constructor"||t==="prototype"){delete e[t];continue}M(e[t])}return r}function Sa(r){return me(r,{maxDepth:16,maxStringLength:1*1024*1024,maxArrayLength:1e3,maxObjectKeys:100})}function Ea(r){return r instanceof Uint8Array}function Ta(r){return r instanceof ArrayBuffer}function Ra(r){return r!==null&&typeof r=="object"&&"getReader"in r&&typeof r.getReader=="function"}function ka(r){return r!==null&&typeof r=="object"&&"forEach"in r&&typeof r.forEach=="function"}function Aa(r){return r!==null&&typeof r=="object"&&"aborted"in r&&typeof r.aborted=="boolean"}function Ca(r){return r!==null&&typeof r=="object"&&Object.prototype.toString.call(r)==="[object Object]"}function va(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 Ia(r){return r!==null&&typeof r=="object"&&"has"in r&&typeof r.has=="function"}function ze(r){return typeof r!="string"||r.length===0||r.length>4096?!1:La.test(r)}function _e(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 ut(r){return Oa.some(([e,t])=>r>=e&&r<=t)}function Or(r){return r===""?null:/^0[xX][0-9a-fA-F]+$/.test(r)?parseInt(r,16):/^0[0-7]+$/.test(r)?parseInt(r,8):/^\d+$/.test(r)?parseInt(r,10):null}function _s(r){if(r.includes(":")||!/^[0-9a-fA-FxX.]+$/.test(r))return null;let e=r.endsWith(".")?r.slice(0,-1):r;if(e==="")return null;let t=e.split(".");if(t.length>4||t.length<1)return null;if(t.length===1){let i=Or(t[0]);return i===null||i>4294967295?null:i>>>0}let n=[];for(let i=0;i<t.length-1;i++){let a=Or(t[i]);if(a===null||a>255)return null;n.push(a)}let s=Or(t[t.length-1]),o=2**(8*(5-t.length));if(s===null||s>=o)return null;for(let i=8*(4-t.length);i>=0;i-=8)n.push(s>>>i&255);return(n[0]<<24|n[1]<<16|n[2]<<8|n[3])>>>0}function Da(r){if(!r.includes(":"))return null;let e=r.split("%")[0],t=e.split("::");if(t.length>2)return null;let n=o=>{if(o==="")return[];let i=o.split(":"),a=[];for(let l=0;l<i.length;l++){let c=i[l];if(c==="")return null;if(c.includes(".")){if(l!==i.length-1)return null;let u=_s(c);if(u===null)return null;a.push(u>>>24&255,u>>>16&255,u>>>8&255,u&255)}else{if(!/^[0-9a-fA-F]{1,4}$/.test(c))return null;let u=parseInt(c,16);a.push(u>>>8&255,u&255)}}return a},s;if(t.length===2){let o=n(t[0]),i=n(t[1]);if(!o||!i)return null;let a=16-o.length-i.length;if(a<0)return null;s=[...o,...new Array(a).fill(0),...i]}else{let o=n(e);if(!o||o.length!==16)return null;s=o}return s.length===16?new Uint8Array(s):null}function Na(r){let e=n=>(r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3])>>>0;if(r.every(n=>n===0)||r.slice(0,15).every(n=>n===0)&&r[15]===1)return!0;let t=r[0];return(t&254)===252||t===254&&(r[1]&192)===128||t===255||r[0]===32&&r[1]===1&&r[2]===13&&r[3]===184?!0:r.slice(0,10).every(n=>n===0)&&r[10]===255&&r[11]===255||r.slice(0,12).every(n=>n===0)||r[0]===0&&r[1]===100&&r[2]===255&&r[3]===155&&r.slice(4,12).every(n=>n===0)?ut(e(12)):r[0]===32&&r[1]===2?ut(e(2)):!1}function Se(r,e=["http","https"]){try{let t=typeof r=="string"?new URL(r):r,n=t.protocol.replace(/:$/,"").toLowerCase();if(!e.some(i=>i.toLowerCase()===n)||Ma.has(n))return!1;let s=t.hostname.toLowerCase(),o=s.startsWith("[")&&s.endsWith("]");if(o&&(s=s.slice(1,-1)),s==="localhost"||s.endsWith(".localhost")||s==="0.0.0.0")return!1;if(o||s.includes(":")){let i=Da(s);if(i===null||Na(i))return!1}else{let i=_s(s);if(i!==null&&ut(i))return!1}if(t.hostname.includes("..")||t.pathname.includes("..")||t.hostname.length>253||t.href.length>8192)return!1;if(t.port){let i=parseInt(t.port,10);if(isNaN(i)||i<1||i>65535)return!1}return!0}catch{return!1}}function ht(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map(t=>ht(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,ht(n))),t}if(r instanceof Set){let t=new Set;return r.forEach(n=>t.add(ht(n))),t}let e={};for(let t in r)t==="__proto__"||t==="constructor"||t==="prototype"||Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=ht(r[t]));return e}function Ua(r,e){let t=new Error(r);return Object.assign(t,e),t}function $a(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 Ha(r){if(typeof r!="string"||r.length>2048)return null;try{let e=new URL(r);return Se(e)?(e.username="",e.password="",e.toString()):null}catch{return null}}function ja(){let r=wa();if(r?.hrtime){let[t,n]=r.hrtime();return t*1e3+n/1e6}return typeof globalThis.Bun<"u",Date.now()}function Ba(r,e){return e?.aborted?Promise.reject(Ur()):new Promise((t,n)=>{let s=()=>{clearTimeout(o),n(Ur())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e&&e.addEventListener("abort",s,{once:!0})})}function $r(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 za(r){if(r instanceof Uint8Array)return r.slice();if(r instanceof ArrayBuffer)return new Uint8Array(r);let e=ba();return e&&e.isBuffer(r)?new Uint8Array(r):typeof r=="string"?new TextEncoder().encode(r):null}function Vt(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 Hr(...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(Ur())};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 jr(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 Ee(r){if(!Number.isInteger(r)||r<0||r>65536)throw new Error(`randomBytes: invalid byteCount ${r}`);let e=new Uint8Array(r);if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(e);else throw new Error("randomBytes: no CSPRNG available in this runtime \u2014 crypto.getRandomValues is required");return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}function Ur(){if(typeof DOMException<"u")return new DOMException("Aborted","AbortError");let r=new Error("Aborted");return r.name="AbortError",r}function Br(){if(se)return se;try{if(globalThis.process?.versions?.node)return se="node",se}catch{}return typeof globalThis.Deno<"u"?se="deno":typeof globalThis.Bun<"u"?se="bun":typeof window<"u"?se="browser":typeof globalThis<"u"&&typeof globalThis.fetch=="function"?se="edge":se="unknown",se}function qa(){return Br()==="node"}function Fa(){return Br()==="browser"}function Wa(){return typeof globalThis?.fetch=="function"}function ft(r){let e={};return r.forEach((t,n)=>{e[n.toLowerCase()]=t}),e}var Wt,Kt,xa,La,Ma,Oa,se,B=q(()=>{"use strict";xa={maxDepth:32,maxStringLength:10*1024*1024,maxArrayLength:1e4,maxObjectKeys:1e3,allowNonFinite:!1};La=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;Ma=new Set(["file","ftp","gopher","data","javascript","dict","ldap","ldaps","rlogin","telnet","tn3270","imap","pop","smtp","nntp","news","ssh","git","svn","webcal","urn"]),Oa=[[0,16777215],[167772160,184549375],[1681915904,1686110207],[2130706432,2147483647],[2851995648,2852061183],[2886729728,2887778303],[3221225472,3221225727],[3221225984,3221226239],[3232235520,3232301055],[3323068416,3323199487],[3325256704,3325256959],[3405803776,3405804031],[3758096384,4026531839],[4026531840,4294967295]];se=null});function Ss(r){return r}function Ja(r){if(typeof r=="string"){for(let e of Va)if(e===r)return e}}var Va,_,pt,mt,gt,oe,Y,qr,Fr,Wr,Z,Te=q(()=>{"use strict";Va=["ENETWORK","ETIMEOUT","EABORT","EHTTPSTATUS","ESIZELIMIT","EPARSE","EVALIDATION","EAUTH","EPROXY","EREDIRECT","EUNKNOWN"];_=class extends Error{constructor(t,n,s){super(t);f(this,"code");f(this,"request");f(this,"response");f(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}},pt=class extends _{constructor(t,n,s){super(`Response size limit exceeded: ${t} bytes read, limit is ${n} bytes`,"ESIZELIMIT",s!==void 0?{request:s}:{});f(this,"bytesRead");f(this,"limit");this.bytesRead=t,this.limit=n,this.name="SizeLimitError"}},mt=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}},gt=class extends _{constructor(e){super("Request was aborted","EABORT",e!==void 0?{request:e}:{}),this.name="AbortError"}},oe=class extends _{constructor(e,t){super(e,"ENETWORK",t!==void 0?{request:t}:{}),this.name="NetworkError"}},Y=class extends _{constructor(e,t){super(e,"EVALIDATION",t!==void 0?{request:t}:{}),this.name="ValidationError"}},qr=class extends _{constructor(e,t){super(e,"EAUTH",t!==void 0?{request:t}:{}),this.name="AuthError"}},Fr=class extends _{constructor(e,t){super(e,"EPROXY",t!==void 0?{request:t}:{}),this.name="ProxyError"}},Wr=class extends _{constructor(e,t){super(e,"EREDIRECT",t!==void 0?{request:t}:{}),this.name="RedirectError"}},Z=class extends _{constructor(t,n){super(`Request timed out after ${t}ms`,"ETIMEOUT",n!==void 0?{request:n}:{});f(this,"timeoutMs");this.timeoutMs=t,this.name="TimeoutError"}}});var Is={};pe(Is,{CREDENTIAL_HEADERS:()=>Gt,CloudflareKVAdapter:()=>yt,HTTPCache:()=>ce,MemoryStorageAdapter:()=>Re,TwoTierStorageAdapter:()=>wt,WebStorageAdapter:()=>We,createKVCache:()=>vs,createLocalStorageCache:()=>As,createMemoryCache:()=>ks,createSessionStorageCache:()=>Cs,createTwoTierCache:()=>Ps,getAuthFingerprint:()=>ge});function Qa(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 Es(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 Fe(r){return r.replaceAll(Ga,"").replaceAll(/\s+/g," ").trim()}async function ge(r){let e=new Map;for(let[i,a]of Object.entries(r))e.set(i.toLowerCase(),a);let t=[];for(let i of Gt){let a=e.get(i);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 Xa(r){try{let e=new URL(r.url),t=Fe(e.hostname),n=Fe(e.pathname);e.searchParams.sort();let s=Fe(e.search);e.hash="";let o=`${e.protocol}//${t}${e.port?":"+e.port:""}${n}${s}`,i=Fe(r.method.toUpperCase()),a=await ge(r.headers??{}),l=`${i}:${o}`;return a?`${l}:${a}`:l}catch{let e=Fe(r.method.toUpperCase()),t=Fe(r.url),n=await ge(r.headers??{}),s=`${e}:${t}`;return n?`${s}:${n}`:s}}function Ts(r,e,t){let n=r.headers["cache-control"]??r.headers["Cache-Control"]??"",s=Qa(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 c=parseInt(r.headers.age??r.headers.Age??"0",10)||0;i=Math.max(0,(o-c)*1e3)}else{let c=r.headers.expires??r.headers.Expires;if(c){let u=Date.parse(c);i=isNaN(u)?e:Math.max(0,u-Date.now())}else{let u=r.headers["last-modified"]??r.headers["Last-Modified"];if(u){let h=Date.parse(u);isNaN(h)?i=e:i=Math.min((Date.now()-h)*.1,e)}else i=e}}s.immutable&&i>0&&(i=365*24*60*60*1e3);let a=s.staleWhileRevalidate!==null?s.staleWhileRevalidate*1e3:0,l=s.staleIfError!==null?s.staleIfError*1e3:0;return{ttlMs:i,swrMs:a,staleOnError:l,shouldCache:i>0||a>0}}function Qt(r){return{...r,response:Rs(r.response),tags:[...r.tags]}}function Rs(r){return{...r,headers:{...r.headers},body:r.body instanceof Uint8Array?new Uint8Array(r.body):r.body}}function Ya(r){return r?typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength:0}function ks(r){return new ce({...r,storage:new Re})}function As(r,e){if(typeof localStorage>"u")throw new Error("localStorage is not available");return new ce({...e,storage:new We(localStorage,r)})}function Cs(r,e){if(typeof sessionStorage>"u")throw new Error("sessionStorage is not available");return new ce({...e,storage:new We(sessionStorage,r)})}function vs(r,e){return new ce({...e,storage:new yt(r)})}function Ps(r,e){return new ce({...e,storage:new wt(r)})}var Re,We,yt,wt,Ga,Gt,Kr,Vr,ce,Ke=q(()=>{"use strict";B();Re=class{constructor(){f(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}},We=class{constructor(e,t="hc:"){f(this,"storage");f(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=me(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()}},yt=class{constructor(e,t="hc:"){f(this,"kv");f(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)))}},wt=class{constructor(e){f(this,"l2");f(this,"l1",new Re);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()])}};Ga=/[\u0000-\u001f\u007f-\u009f]/g;Gt=["authorization","proxy-authorization","cookie","x-api-key","apikey","api-key","x-auth-token","x-access-token","x-refresh-token","x-session-id","x-session-token","x-secret","x-secret-key","x-private-key","x-csrf-token"];Kr=class{constructor(e,t=null,n=null){f(this,"key");f(this,"prev");f(this,"next");this.key=e,this.prev=t,this.next=n}},Vr=class{constructor(){f(this,"map",new Map);f(this,"head",null);f(this,"tail",null)}touch(e){let t=this.map.get(e);if(t)this._unlink(t),this._prepend(t);else{let n=new Kr(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}},ce=class{constructor(e={}){f(this,"cfg");f(this,"storage");f(this,"lru",new Vr);f(this,"tagIndex",new Map);f(this,"swrInFlight",new Set);f(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,404,405,410,414,501],cacheKey:e.cacheKey??Xa,storage:e.storage??new Re,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=Es(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:Qt(n),stale:!1}):n.staleUntil>s?(this.stats.staleHits++,this.lru.touch(t),this._updateHitRate(),{entry:Qt(n),stale:!0}):n.staleOnError>s?(this.stats.staleHits++,this._updateHitRate(),{entry:Qt(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}:Ts(t,this.cfg.defaultTtlMs,this.cfg.honorCacheControl);if(!a&&!n.force)return!1;let l=Ya(t.body);if(l>this.cfg.maxBodySizeBytes)return!1;let c=Date.now(),u=this.cfg.maxAbsoluteAgeMs,h=Math.min(s===1/0?u:s,u);if(h<=0&&!n.force)return!1;let p=t.headers.vary??t.headers.Vary??null,d=p?Es(p,e.headers):"";if(d===null)return!1;let y=n.tags??[],g={response:Rs(t),createdAt:c,expiresAt:h===1/0?1/0:c+h,staleUntil:c+h+o,staleOnError:c+h+i,etag:t.headers.etag??t.headers.ETag??null,lastModified:t.headers["last-modified"]??t.headers["Last-Modified"]??null,varyKey:d,tags:y,size:l+256},m=await this._key(e);if(await this._ensureCapacity(g.size),await this.storage.set(m,g)===!1)return!1;this.lru.touch(m),this.stats.totalEntries++,this.stats.totalSizeBytes+=g.size;for(let S of y){let x=this.tagIndex.get(S)??new Set;x.add(m),this.tagIndex.set(S,x)}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:l,staleOnError:c}=Ts(i,this.cfg.defaultTtlMs,this.cfg.honorCacheControl),u=Date.now(),h=Math.min(a===1/0?this.cfg.maxAbsoluteAgeMs:a,this.cfg.maxAbsoluteAgeMs),p={...s,response:i,createdAt:u,expiresAt:h<=0?u:u+h,staleUntil:u+h+l,staleOnError:u+h+c,etag:o.etag??o.ETag??s.etag,lastModified:o["last-modified"]??o["Last-Modified"]??s.lastModified};return await this.storage.set(n,p),this.lru.touch(n),Qt(p)}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),l=a.lastIndexOf(":auth:"),c=l!==-1?a.slice(0,l):a,u=e.endsWith("/")?e.slice(0,-1):e;if((c.endsWith("/")?c.slice(0,-1):c).startsWith(u)){let p=await this.storage.get(s);await this._delete(s,p??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=me(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,l]=i;if(typeof a!="string"||a.length===0||a.length>2048)continue;let c=null;try{typeof l=="object"&&l!==null&&typeof l.createdAt=="number"&&typeof l.expiresAt=="number"&&typeof l.staleUntil=="number"&&typeof l.staleOnError=="number"&&typeof l.size=="number"&&Array.isArray(l.tags)&&l.tags.every(p=>typeof p=="string")&&(c=l)}catch{}if(!c)continue;let u=l;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 h of u.tags){let p=this.tagIndex.get(h)??new Set;p.add(a),this.tagIndex.set(h,p)}}}}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)}else for(let n of this.tagIndex.values())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 Ic(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 ro(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 te(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 rr(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(),l=a.indexOf("=");if(l===-1)continue;let c=a.slice(0,l).trim().toLowerCase(),u=a.slice(l+1).trim();c==="q"?s=parseFloat(u)||0:o.set(c,u)}return{value:n,quality:s,params:o}}).filter(e=>e.value!=="").sort((e,t)=>t.quality-e.quality)}function Mc(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 bn(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:te(r.slice(e));return{mediaType:`${s}/${o}`,type:s,subtype:o,charset:a.get("charset")??null,boundary:a.get("boundary")??null,params:a}}function io(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 ao(r){if(!r)return null;let e=r.indexOf(";"),t=(e===-1?r:r.slice(0,e)).trim().toLowerCase(),n=e===-1?new Map:te(r.slice(e)),s=null,o=n.get("filename*");o&&(s=Mc(o)),s===null&&(s=n.get("filename")??null);let i=n.get("name")??null;return{type:t,filename:s,name:i,params:n}}function co(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 Oc(r){let e=[],t="",n=!1;for(let s of r){if(s==='"'&&(n=!n),s===","&&!n){e.push(t),t="";continue}t+=s}return e.push(t),e}function lo(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 Oc(r)){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(l=>l.trim()):!0;break;default:e.unknown.set(o,i??!0)}}return e}function uo(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 pn(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=Ic(n),l=a.indexOf(":");l!==-1&&(i={username:a.slice(0,l),password:a.slice(l+1)})}catch{}}else if(t==="bearer"||t==="token")o=n;else if(n.includes("="))for(let a of n.split(",")){let l=a.trim(),c=l.indexOf("=");if(c===-1)continue;let u=l.slice(0,c).trim().toLowerCase(),h=l.slice(c+1).trim();h.startsWith('"')&&h.endsWith('"')&&(h=h.slice(1,-1)),s.set(u,h)}else o=n;return{scheme:t,token:o,params:s,basic:i}}function mn(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(),l=i===-1?"":o.slice(i+1),c=te(l);e.push({scheme:a,realm:c.get("realm")??null,params:c})}return e}function Dc(r){return`Bearer ${r}`}function Nc(r,e){return`Basic ${ro(`${r}:${e}`)}`}function xn(r){return rr(r)}function ho(r){return rr(r)}function fo(r){return rr(r)}function Uc(r){return r.trim()?rr(r):[]}function $c(r,e){let t=xn(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 po(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(),l=o.slice(i+1).trim();return{start:a===""?null:parseInt(a,10),end:l===""?null:parseInt(l,10)}}).filter(s=>s!==null);return{unit:t,ranges:n}}function mo(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 gn(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),l=te(a);e.push({uri:i,rel:l.get("rel")??null,type:l.get("type")??null,hreflang:l.get("hreflang")??null,title:l.get("title")??null,media:l.get("media")??null,params:l})}return e}function Hc(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 go(r){let e={by:null,for:[],host:null,proto:null};for(let t of r.split(",")){let n=te(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 _n(r){let e=r.get(b.Forwarded);if(e)return go(e);let t=r.get(b.XForwardedFor),n=r.get(b.XForwardedHost),s=r.get(b.XForwardedProto);return{by:null,for:t?t.split(",").map(o=>o.trim()):[],host:n??null,proto:s??null}}function yo(r,e={}){let t=Math.max(0,Math.trunc(e.trustedHops??0)),n=_n(r);if(n.for.length>0){let s=n.for,o=t===0?0:s.length-t,i=s[o]??s[0];return to(i)}return to(r.get(b.XRealIP)??"")||null}function to(r){let e=r.trim();if(e.startsWith('"')&&e.endsWith('"')&&e.length>=2&&(e=e.slice(1,-1)),e.startsWith("[")){let n=e.indexOf("]");if(n!==-1)return e.slice(1,n)}let t=/^(.*):\d+$/.exec(e);return t&&(t[1]??"").includes(".")?t[1]:e}function wo(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 jc(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],l=o[3],c=o[4]??"",u=parseInt(i,10),h=(()=>{let p=c.trim().replace(/^"|"$/g,"");if(p){let d=Date.parse(p);if(!isNaN(d))return new Date(d)}})();return{code:u,agent:a,text:l,...h!==void 0?{date:h}:{}}}).filter(s=>s!==null)}function bo(r){let e=te(";"+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 Sn(r){let e=`max-age=${r.maxAge}`;return r.includeSubDomains&&(e+="; includeSubDomains"),r.preload&&(e+="; preload"),e}function xo(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 En(r){let e=[];for(let[t,n]of r)e.push(n.length>0?`${t} ${n.join(" ")}`:t);return e.join("; ")}function _o(r){return r.split(",").map(e=>{let t=e.trim().split(";"),n=(t[0]??"").trim(),s=te(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 Bc(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 So(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(";"),l=a!==-1?te(";"+i.slice(a+1)):new Map,c=(a!==-1?i.slice(0,a):i).replace(/^"|"$/g,""),u,h;if(c.startsWith("[")){let p=c.indexOf("]");if(p===-1)u=c,h=443;else{u=c.slice(0,p+1);let d=c.slice(p+2);h=d?parseInt(d,10):443}}else{let p=c.lastIndexOf(":");u=p===-1?c:c.slice(0,p),h=p===-1?443:parseInt(c.slice(p+1),10)}e.push({protocol:o,host:u,port:h,maxAge:l.has("ma")?parseInt(l.get("ma"),10):null,persist:l.has("persist")&&l.get("persist")==="1"})}return e}function zc(r){let e=new he;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 qc(r){let e={};return r.forEach((t,n)=>{let o=r.getAll(n);e[n]=o.length===1?o[0]:[...o]}),e}function Fc(r){return new he(r)}function Wc(r={}){let e=new he;if(r.hsts!==!1){let t=r.hsts===!0||r.hsts===void 0?{maxAge:31536e3,includeSubDomains:!0,preload:!1}:r.hsts;e.set(b.StrictTransportSecurity,Sn(t))}if(r.csp){let t=typeof r.csp=="string"?r.csp:En(r.csp);e.set(b.ContentSecurityPolicy,t)}return e.set(b.XFrameOptions,r.frameOptions??"DENY"),r.noSniff!==!1&&e.set(b.XContentTypeOptions,"nosniff"),e.set(b.ReferrerPolicy,r.referrer??"strict-origin-when-cross-origin"),r.permissions&&e.set(b.PermissionsPolicy,r.permissions),r.coep&&e.set(b.CrossOriginEmbedderPolicy,r.coep),r.coop&&e.set(b.CrossOriginOpenerPolicy,r.coop),r.corp&&e.set(b.CrossOriginResourcePolicy,r.corp),e}function Kc(r){let e=new he,t=Array.isArray(r.origin)?r.origin.join(", "):r.origin;return e.set(b.AccessControlAllowOrigin,t),r.methods?.length&&e.set(b.AccessControlAllowMethods,r.methods.join(", ")),r.allowHeaders?.length&&e.set(b.AccessControlAllowHeaders,r.allowHeaders.join(", ")),r.exposeHeaders?.length&&e.set(b.AccessControlExposeHeaders,r.exposeHeaders.join(", ")),r.credentials&&e.set(b.AccessControlAllowCredentials,"true"),r.maxAge!=null&&e.set(b.AccessControlMaxAge,String(r.maxAge)),e}function Vc(r){return new Ae(r)}function Jc(r){return new Ae(r,"request")}function Qc(r){return new Ae(r,"response")}function Gc(r){return new Ae(r,"immutable")}var ke,b,yn,wn,Je,eo,Lc,U,no,hn,fn,dn,so,oo,he,Ae,St=q(()=>{"use strict";B();b={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"};yn=ze,wn=_e,Je=new Set(["set-cookie","www-authenticate","proxy-authenticate"]),eo=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"]),Lc=new Set(["set-cookie","set-cookie2"]),he=class{constructor(e,t="none"){gs(this,U);f(this,"map",new Map);f(this,"guard");this.guard=t,e!=null&&ne(this,U,no).call(this,e)}append(e,t){ne(this,U,dn).call(this,e);let n=ne(this,U,hn).call(this,e),s=ne(this,U,fn).call(this,t),o=this.map.get(n);o?o.values.push(s):this.map.set(n,{name:e,values:[s]})}delete(e){ne(this,U,oo).call(this,e),this.map.delete(e.toLowerCase())}get(e){let t=this.map.get(e.toLowerCase());return t?Je.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){ne(this,U,so).call(this,e);let n=ne(this,U,hn).call(this,e),s=ne(this,U,fn).call(this,t);this.map.set(n,{name:e,values:[s]})}forEach(e,t){for(let[n,s]of this.map){let o=Je.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(Je.has(e))for(let n of t.values)yield n;else yield t.values.join(", ")}*entries(){for(let[e,t]of this.map)if(Je.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]=Je.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
|
-
`)}clone(e){return new ke(this,e??this.guard)}freeze(){return this.clone("immutable")}merge(e,t={}){let n=e instanceof ke?e:new ke(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 ke;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 ke;for(let[n,s]of e.map){let o=this.get(n),i=Je.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,no=function(e){if(e instanceof ke){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))},hn=function(e){if(!yn(e))throw new TypeError(`Invalid header name: "${e}"`);return e.toLowerCase()},fn=function(e){let t=e.trim();if(!wn(t))throw new TypeError(`Invalid header value for: "${t}"`);return t},dn=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&eo.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`);if(this.guard==="response"&&Lc.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for response guard`)},so=function(e){ne(this,U,dn).call(this,e)},oo=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&eo.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`)};ke=he;Ae=class extends he{get contentType(){let e=this.get(b.ContentType);return e?bn(e):null}set contentType(e){if(e===null){this.delete(b.ContentType);return}if(typeof e=="string"){this.set(b.ContentType,e);return}this.set(b.ContentType,io(e))}get contentLength(){let e=this.get(b.ContentLength);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}set contentLength(e){if(e===null){this.delete(b.ContentLength);return}this.set(b.ContentLength,String(e))}get contentDisposition(){let e=this.get(b.ContentDisposition);return e?ao(e):null}set contentDisposition(e){if(e===null){this.delete(b.ContentDisposition);return}if(typeof e=="string"){this.set(b.ContentDisposition,e);return}this.set(b.ContentDisposition,co(e))}get cacheControl(){let e=this.get(b.CacheControl);return e?lo(e):null}set cacheControl(e){if(e===null){this.delete(b.CacheControl);return}if(typeof e=="string"){this.set(b.CacheControl,e);return}this.set(b.CacheControl,uo(e))}get authorization(){let e=this.get(b.Authorization);return e?pn(e):null}set authorization(e){if(e===null){this.delete(b.Authorization);return}this.set(b.Authorization,e)}get accept(){return xn(this.get(b.Accept)??"")}get acceptEncoding(){return ho(this.get(b.AcceptEncoding)??"")}get acceptLanguage(){return fo(this.get(b.AcceptLanguage)??"")}get range(){let e=this.get(b.Range);return e?po(e):null}get contentRange(){let e=this.get(b.ContentRange);return e?mo(e):null}get etag(){return this.get(b.ETag)}set etag(e){if(e===null){this.delete(b.ETag);return}let t=e.startsWith('"')||e.startsWith('W/"')?e:`"${e}"`;this.set(b.ETag,t)}get links(){let e=this.get(b.Link);return e?gn(e):[]}get retryAfter(){let e=this.get(b.RetryAfter);return e?wo(e):null}get hsts(){let e=this.get(b.StrictTransportSecurity);return e?bo(e):null}set hsts(e){if(e===null){this.delete(b.StrictTransportSecurity);return}this.set(b.StrictTransportSecurity,Sn(e))}get csp(){let e=this.get(b.ContentSecurityPolicy);return e?xo(e):null}set csp(e){if(e===null){this.delete(b.ContentSecurityPolicy);return}if(typeof e=="string"){this.set(b.ContentSecurityPolicy,e);return}this.set(b.ContentSecurityPolicy,En(e))}get serverTiming(){let e=this.get(b.ServerTiming);return e?_o(e):[]}get clientIP(){return yo(this)}get forwarded(){return _n(this)}get host(){return this.get(b.Host)}get origin(){return this.get(b.Origin)}get userAgent(){return this.get(b.UserAgent)}get location(){return this.get(b.Location)}get date(){let e=this.get(b.Date);if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get age(){let e=this.get(b.Age);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get vary(){let e=this.get(b.Vary);return e?e.split(",").map(t=>t.trim().toLowerCase()):[]}get xRequestID(){return this.get(b.XRequestID)}get xCorrelationID(){return this.get(b.XCorrelationID)}get xPoweredBy(){return this.get(b.XPoweredBy)}get xRequestedWith(){return this.get(b.XRequestedWith)}get xRateLimitLimit(){let e=this.get(b.XRateLimitLimit);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitRemaining(){let e=this.get(b.XRateLimitRemaining);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitReset(){let e=this.get(b.XRateLimitReset);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get secFetchSite(){return this.get(b.SecFetchSite)}get secFetchMode(){return this.get(b.SecFetchMode)}get secFetchUser(){return this.get(b.SecFetchUser)}get secFetchDest(){return this.get(b.SecFetchDest)}get earlyData(){let e=this.get(b.EarlyData);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get priority(){return this.get(b.Priority)}get allow(){return this.get(b.Allow)}get server(){return this.get(b.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(b.Link);return e?gn(e)[0]??null:null}get altSvc(){let e=this.get(b.AltSvc);return e?So(e):[]}get wwwAuthenticate(){let e=this.get("www-authenticate");return e?mn(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,l])=>`${a}=${l}`).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(b.ProxyAuthenticate);return e?mn(e):null}set proxyAuthenticate(e){if(e===null){this.delete(b.ProxyAuthenticate);return}let t=e.map(n=>{let o=[...n.params].filter(([a])=>a!=="realm").map(([a,l])=>`${a}=${l}`).join(", "),i=n.scheme;return n.realm&&(i+=` realm="${n.realm}"`),o&&(i+=`; ${o}`),i}).join(", ");this.set(b.ProxyAuthenticate,t)}get proxyAuthorization(){let e=this.get(b.ProxyAuthorization);return e?pn(e):null}set proxyAuthorization(e){if(e===null){this.delete(b.ProxyAuthorization);return}if(typeof e=="string"){this.set(b.ProxyAuthorization,e);return}e.basic?this.set(b.ProxyAuthorization,`Basic ${ro(`${e.basic.username}:${e.basic.password}`)}`):e.token?this.set(b.ProxyAuthorization,`${e.scheme} ${e.token}`):this.set(b.ProxyAuthorization,e.scheme)}get setCookies(){return this.getAll(b.SetCookie)}get accessControlAllowOrigin(){return this.get(b.AccessControlAllowOrigin)}get accessControlAllowMethods(){return this.get(b.AccessControlAllowMethods)}get accessControlAllowHeaders(){return this.get(b.AccessControlAllowHeaders)}get accessControlMaxAge(){let e=this.get(b.AccessControlMaxAge);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get accessControlCredentials(){let e=this.get(b.AccessControlAllowCredentials);return e==="true"?!0:e==="false"?!1:null}}});var Oo={};pe(Oo,{ContentTypeError:()=>ve,HTTPResponseError:()=>Qe,ResponseCache:()=>Tn,ResponseDecodeError:()=>Ge,ResponseSizeLimitError:()=>Ce,applyDecompression:()=>or,assertOk:()=>ko,assertOkJSON:()=>Ao,createLimitedReader:()=>Mo,decodeBody:()=>sr,decompressStream:()=>An,diffResponses:()=>Co,extractServerTiming:()=>Po,isBinary:()=>To,isJSON:()=>nr,isText:()=>Rn,normalizeHeaders:()=>ie,normalizeResponse:()=>Eo,parseContentType:()=>Pe,parseMultipartResponse:()=>Ln,readBlob:()=>Pn,readBodyWithLimit:()=>kn,readBytes:()=>ir,readFormData:()=>vo,readJSON:()=>Cn,readJSONStream:()=>Ro,readNDJSON:()=>In,readStream:()=>Et,readText:()=>vn});function ie(r){return ft(r)}function Eo(r){return{status:r.status,statusText:r.statusText,headers:ie(r.headers),url:r.url,redirected:r.redirected,ok:r.ok,bodyUsed:r.bodyUsed}}function Pe(r){if(!r||r.length>Yc)return null;let e=bn(r);return e?{mediaType:e.mediaType,type:e.type,subtype:e.subtype,charset:e.charset,boundary:e.boundary}:null}function nr(r){if(!r)return!1;let e=Pe(r);return e?e.mediaType==="application/json"||e.subtype.endsWith("+json"):!1}function Rn(r){return r?Pe(r)?.type==="text":!1}function To(r){return!Rn(r)&&!nr(r)}async function kn(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:l,value:c}=await o.read();if(l)break;let u=a+c.byteLength;if(u>t.maxBytes){if(t.onExceedCallback?.(u,t.maxBytes),s==="throw")throw await o.cancel("size limit exceeded"),new Ce(u,t.maxBytes,e);if(s==="abort"){await o.cancel("size limit exceeded");break}if(s==="truncate"){let h=t.maxBytes-a;h>0&&(i.push(c.slice(0,h)),a+=h);break}}i.push(c),a+=c.byteLength}}finally{o.releaseLock()}return Lo(i)}function el(r){return r?Zc[r.toLowerCase()]??"utf-8":"utf-8"}function tl(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 sr(r,e,t){let n=tl(r),s=n??el(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 Ge(String(i),s,t)}}}function rl(r,e,t=1e8){let n=An(r,e),s=0,o=new TransformStream({transform(i,a){if(s+=i.byteLength,s>t){a.error(new Ce(s,t,"decompression"));return}a.enqueue(i)}});return n.pipeThrough(o)}function An(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 or(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=rl(s,o);return s}async function Cn(r,e={}){let n=ie(r.headers)["content-type"]??null,s=r.url;e.expectedContentType?Io(n,e.expectedContentType,s):nr(n);let o=await Mn(r,s,e),i=e.charset??Pe(n??"")?.charset??null,a=sr(o,i,s);try{return M(JSON.parse(a))}catch(l){throw new Ge(`JSON parse failed: ${l}`,"json",s)}}async function vn(r,e={}){let n=ie(r.headers)["content-type"]??null,s=r.url;e.expectedContentType&&Io(n,e.expectedContentType,s);let o=await Mn(r,s,e),i=e.charset??Pe(n??"")?.charset??null;return sr(o,i,s)}async function ir(r,e={}){let t=r.url;return await Mn(r,t,e)}async function Pn(r,e={}){let t=await ir(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 Et(r,e={}){if(!r.body)return new ReadableStream({start:s=>s.close()});let t=ie(r.headers),n=r.body;return e.decompress!==!1&&(n=or(n,t)),e.sizeLimit&&(n=ol(n,r.url,e.sizeLimit,e.signal)),n}async function*In(r,e={}){let n=Et(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 c=o.trim();if(c)try{yield M(JSON.parse(c))}catch(u){e.onParseError?.(u,c)}break}o+=s.decode(a,{stream:!0});let l=o.split(`
|
|
4
|
-
`);o=l.pop()??"";for(let c of l){let u=c.trim();if(!(!u||u.startsWith("#")))try{yield M(JSON.parse(u))}catch(h){e.onParseError?.(h,u)}}}}finally{n.releaseLock()}}async function*Ro(r,e={}){let n=Et(r,e).getReader(),s=new TextDecoder("utf-8"),o=0,i="",a=-1,l=()=>{if(a===-1)return null;let c=i.slice(a);return a=-1,c};try{for(;!e.signal?.aborted;){let{done:c,value:u}=await n.read();if(c){let h=l();if(h)try{let p=M(JSON.parse(h));e.onObject?.(p),yield p}catch(p){e.onParseError?.(p,h)}break}i+=s.decode(u,{stream:!0});for(let h=0;h<i.length;h++){let p=i[h];if(p==="{"||p==="[")o===0&&(a=h),o++;else if((p==="}"||p==="]")&&(o--,o===0&&a!==-1)){let d=i.slice(a,h+1);try{let y=M(JSON.parse(d));e.onObject?.(y),yield y}catch(y){e.onParseError?.(y,d)}i=i.slice(h+1),h=-1}}if(i.length>1e7)throw new Error("JSON stream buffer exceeded 10MB limit")}}finally{n.releaseLock()}}async function ko(r,e={}){if(!(e.isError??(o=>o>=400))(r.status))return r;let n=ie(r.headers),s=null;if(e.readBody!==!1&&r.body&&!r.bodyUsed)try{s=await r.clone().text()}catch{}throw new Qe(r.status,r.statusText,r.url,n,s)}async function Ao(r){if(r.ok)return{response:r};let e=ie(r.headers),t=null;if(r.body&&!r.bodyUsed)try{t=await r.clone().text()}catch{}throw new Qe(r.status,r.statusText,r.url,e,t)}async function Co(r,e){let t=ie(r.headers),n=ie(e.headers),s={},o={},i={};for(let[l,c]of Object.entries(t))l in n?n[l]!==c&&(s[l]=[c,n[l]]):i[l]=c;for(let[l,c]of Object.entries(n))l in t||(o[l]=c);let a=!1;try{let[l,c]=await Promise.all([r.clone().text(),e.clone().text()]);a=l!==c}catch{}return{statusChanged:r.status!==e.status,headersChanged:s,headersAdded:o,headersRemoved:i,bodyChanged:a}}async function Ln(r){let e=r.headers.get("content-type")??"",t=Pe(e);if(!t?.boundary)throw new ve("multipart/*",e,r.url);let n=await r.arrayBuffer(),s=new Uint8Array(n),o=new TextEncoder().encode("--"+t.boundary),i=[],a=c=>{for(let u=c;u<s.length-o.length;u++)if(s.subarray(u,u+o.length).every((h,p)=>h===o[p]))return u;return-1},l=a(0);if(l===-1)return[];if(l+=o.length,s[l]===13&&s[l+1]===10?l+=2:s[l]===10&&(l+=1),s[l]===45&&s[l+1]===45)return[];for(;l<s.length;){let c=a(l);if(c===-1)break;let u=c+o.length;u<s.length&&(s[u]===13&&s[u+1]===10||s[u]===10||s[u]===45&&s[u+1]);let h=s.subarray(l,c-2),p=sl(h);if(p===-1){l=c+o.length;continue}let d=h.subarray(0,p),y=h.subarray(p+4),g=new TextDecoder().decode(d),m={};for(let w of g.split(/\r\n/)){let S=w.indexOf(":");S!==-1&&(m[w.slice(0,S).trim().toLowerCase()]=w.slice(S+1).trim())}if(i.push({headers:m,body:y}),l=c+o.length,l<s.length-1&&s[l]===45&&s[l+1]===45)break}return i}function sl(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 vo(r){let e=await Ln(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],l=i?.[1];if(l){let c=n.headers["content-type"]??"application/octet-stream",u=new ArrayBuffer(n.body.byteLength);new Uint8Array(u).set(n.body);let h=new File([u],l,{type:c});t.append(a,h)}else{let c=new TextDecoder().decode(n.body);t.append(a,c)}}return t}function Po(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=Xc(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 Mn(r,e,t){if(!r.body)return new Uint8Array(0);let n=ie(r.headers),s=r.body;if(t.decompress!==!1&&(s=or(s,n)),t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");if(t.sizeLimit)return kn(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:l}=await o.read();if(a)break;i.push(l)}}finally{o.releaseLock()}return Lo(i)}function ol(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:l,value:c}=await a.read();if(l){i.close();break}let u=o+c.byteLength;if(u>t.maxBytes){if(t.onExceedCallback?.(u,t.maxBytes),s==="throw"){await a.cancel("size limit"),i.error(new Ce(u,t.maxBytes,e));return}if(s==="abort"){await a.cancel("size limit"),i.close();return}if(s==="truncate"){let h=t.maxBytes-o;h>0&&i.enqueue(c.slice(0,h)),i.close(),await a.cancel("size limit");return}}o+=c.byteLength,i.enqueue(c)}}catch(l){i.error(l)}}})}function Io(r,e,t){if(!r)throw new ve(e,"(none)",t);let n=r.split(";")[0]?.trim().toLowerCase()??"",s=e.split(";")[0]?.trim().toLowerCase()??"";if(!n.startsWith(s))throw new ve(e,r,t)}function Lo(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 Mo(r,e="throw"){let t={maxBytes:r,onExceed:e};return{json:(n,s)=>Cn(n,{sizeLimit:t,...s}),text:(n,s)=>vn(n,{sizeLimit:t,...s}),bytes:(n,s)=>ir(n,{sizeLimit:t,...s}),blob:(n,s)=>Pn(n,{sizeLimit:t,...s}),stream:(n,s)=>Et(n,{sizeLimit:t,...s}),ndjson:(n,s)=>In(n,{sizeLimit:t,...s})}}var Xc,Qe,Ce,ve,Ge,Yc,Zc,Tn,ar=q(()=>{"use strict";St();B();Xc=te,Qe=class extends Error{constructor(t,n,s,o,i){super(`HTTP ${t} ${n} \u2014 ${s}`);f(this,"code","EHTTPRESPONSE");f(this,"status");f(this,"statusText");f(this,"url");f(this,"headers");f(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}},Ce=class extends Error{constructor(t,n,s){super(`Response size limit exceeded: read ${t} bytes, limit is ${n} bytes (${s})`);f(this,"code","ESIZELIMIT");f(this,"bytesRead");f(this,"limit");f(this,"url");this.name="ResponseSizeLimitError",this.bytesRead=t,this.limit=n,this.url=s}},ve=class extends Error{constructor(t,n,s){super(`Expected content-type "${t}", got "${n}" (${s})`);f(this,"code","ECONTENTTYPE");f(this,"expected");f(this,"received");f(this,"url");this.name="ContentTypeError",this.expected=t,this.received=n,this.url=s}},Ge=class extends Error{constructor(t,n,s){super(`Failed to decode response as ${n} (${s}): ${t}`);f(this,"code","EDECODE");f(this,"charset");f(this,"url");this.name="ResponseDecodeError",this.charset=n,this.url=s}};Yc=8192;Zc={"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"};Tn=class{constructor(e={ttlMs:6e4}){f(this,"cache",new Map);f(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 Wo={};pe(Wo,{DEFAULT_ACCEPT_ENCODING:()=>lr,FetchTransport:()=>Xe,HAS_NATIVE_FETCH:()=>$o,HTTP_STATUS_TEXTS:()=>Fo,IS_NODE:()=>Ie,NodeHTTP2Transport:()=>Tt,RUNTIME:()=>ye,createTransport:()=>ur,decompressBodyStream:()=>fr,detectRuntime:()=>On,getEffectiveRuntime:()=>Uo,normalizeHeaders:()=>jo,parseBody:()=>Rt,readRawBody:()=>hr,sendWithTimeout:()=>Ye,setRuntime:()=>No});function On(){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":cr.process?.versions?.node!==void 0?"node":typeof globalThis.fetch=="function"?"edge":"unknown"}function No(r){Do=r}function Uo(){return Do??ye}function Ho(){try{return globalThis.process?.env?.NODE_ENV==="production"}catch{return!1}}function ur(r,e=!0,t,n){return Ie&&e&&r&&(Ho()||console.warn('[kinetex] httpVersion: "HTTP/2" is ignored when a custom `fetch` is configured \u2014 NodeHTTP2Transport cannot use a custom fetch, so the request goes through FetchTransport (HTTP/1.1 semantics). Drop the `fetch` option to use HTTP/2.')),Ie&&e&&!r?new Tt({...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 Xe({fetchFn:r??globalThis.fetch,...n?.strict!==void 0?{strict:n.strict}:{},...n?.onDroppedHeader!==void 0?{onDroppedHeader:n.onDroppedHeader}:{}})}async function Ye(r,e,t){if(t<=0)return r.send(e);let n=new AbortController,s=setTimeout(()=>{n.abort(new Z(t,e))},t),o=Hr(e.signal,n.signal)??null,i={...e,signal:o},a=new Promise((l,c)=>{n.signal.addEventListener("abort",()=>c(new Z(t,e)),{once:!0})});try{let l=await Promise.race([r.send(i),a]);if(clearTimeout(s),n.signal.aborted)throw new Z(t,e);return l}catch(l){throw clearTimeout(s),n.signal.aborted&&!(l instanceof Z)?new Z(t,e):l}}async function hr(r,e,t,n){if(!r)return new Uint8Array(0);let s=r.getReader(),o=[],i=0,a,l=new Promise((u,h)=>{a=h}),c=()=>{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",c,{once:!0});try{for(;;){let u=await Promise.race([s.read().catch(d=>{throw s.cancel("read error").catch(()=>{}),d}),l]),{done:h,value:p}=u;if(h)break;if(e>0){let d=i+p.byteLength;if(d>e)throw await s.cancel("size limit exceeded"),new pt(d,e)}o.push(p),i+=p.byteLength}}catch(u){throw s.cancel("error during read").catch(()=>{}),u}finally{n?.removeEventListener("abort",c),s.releaseLock()}return $r(o)}function Rt(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),l,c;try{let u=me(a,{maxStringLength:1e7,maxDepth:100,maxArrayLength:1e5});u.success&&u.value!==void 0&&(l=u.value)}catch(u){c=u instanceof Error?u:new Error(String(u))}if(l!==void 0)return l;if(n)try{n(r,c??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 jo(r){return ft(r)}function il(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 al(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 Bo(r){return new ReadableStream({start(e){let t=!1,n=!1;r.on("data",s=>{if(s instanceof Uint8Array)e.enqueue(s);else if(cr.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 zo(r,e){r.write(e)||await new Promise(n=>r.once("drain",n))}async function ll(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 zo(r,s)}}else if(e instanceof Uint8Array||e instanceof ArrayBuffer)r.end(cr.Buffer?new Uint8Array(e):e);else if(typeof e=="string")r.end(e);else{let t=await qo(e);r.end(t)}}async function ul(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 zo(r,s)}}else if(e instanceof Uint8Array||e instanceof ArrayBuffer)r.end(cr.Buffer?new Uint8Array(e):e);else if(typeof e=="string")r.end(e);else{let t=await qo(e);r.end(t)}}async function qo(r){return typeof URLSearchParams<"u"&&r instanceof URLSearchParams?new TextEncoder().encode(r.toString()):typeof Blob<"u"&&r instanceof Blob?new Uint8Array(await r.arrayBuffer()):new Uint8Array(0)}async function fr(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(()=>(ar(),Oo));return i(r,e)}var cr,ye,Do,Ie,$o,lr,Xe,Tt,cl,Fo,Ze=q(()=>{"use strict";Te();B();St();B();cr=globalThis;ye=On(),Do=null;Ie=ye==="node",$o=ye!=="node"||typeof globalThis.fetch=="function";lr="gzip, deflate, br",Xe=class{constructor(e=globalThis.fetch){f(this,"fetchFn");f(this,"strict");f(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[c,u]of Object.entries(e.headers??{}))if(!(typeof c!="string"||typeof u!="string")){if(!yn(c)||!wn(u)){if(this.strict)throw new _(`Invalid header dropped in strict mode: "${c}"`,"EVALIDATION",{request:e});this.onDroppedHeader?this.onDroppedHeader(c,u):Ho()||console.warn(`[kinetex] Invalid header dropped: "${c}" \u2014 value may contain illegal characters. Pass strictHeaders: true to throw instead.`);continue}t[c]=u}let n=t["accept-encoding"];n&&n.toLowerCase().replace(/\s+/g," ")===lr&&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,Ie&&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(c){throw jr(c)?new _("Request was aborted","EABORT",{request:e,cause:c}):new _(c instanceof Error?c.message:"Network request failed","ENETWORK",{request:e,cause:c})}let i=jo(o.headers),a=il(o,i),l=!0;return ye==="deno"&&(o.headers.get("content-encoding")||"").toLowerCase().includes("deflate")&&(l=!1),{status:o.status,statusText:o.statusText,headers:i,body:o.body,url:o.url||e.url,redirected:o.redirected,httpVersion:a,alreadyDecompressed:l}}},Tt=class{constructor(e={}){f(this,"sessions",new Map);f(this,"sessionTTLMs");f(this,"pingIntervalMs");f(this,"maxSessions");f(this,"pingTimers",new Map);f(this,"_sessionCreating",new Map);f(this,"sessionUsage",new Map);f(this,"_strict");f(this,"_onDroppedHeader");f(this,"_ca");f(this,"_connectTimeoutMs");f(this,"_requestTimeoutMs");f(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._ca=e.ca,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[l,c]of this.sessionUsage.entries())c<a&&(a=c,i=l);if(i){let l=this.sessions.get(i);l&&this._evictSession(i,l.session)}}let o=await new Promise((i,a)=>{let l=n.connect(e,{rejectUnauthorized:!0,...this._ca!==void 0?{ca:this._ca}:{}}),c=setTimeout(()=>{l.destroy(),a(new _(`HTTP/2 connection to ${e} timed out`,"ETIMEOUT",{request:t}))},this._connectTimeoutMs);typeof c.unref=="function"&&c.unref();let u=()=>{clearTimeout(c),l.destroy(),a(new _("Connection aborted","EABORT",{request:t}))},h=()=>t.signal?.removeEventListener("abort",u);t.signal?.addEventListener("abort",u,{once:!0}),l.once("connect",()=>{h(),clearTimeout(c),i(l)}),l.once("error",p=>{h(),clearTimeout(c),a(p)})});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 l=this.sessions.get(e);if(!l||l.session.destroyed||l.session.closed){this._evictSession(e,l?.session);return}l.session.ping(c=>{c&&this._evictSession(e,l.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(al(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 l=0;l<=a;l++){if(l===a)throw new _("Too many HTTP/2 redirects","ENETWORK",{request:e});let c=o.origin,u=this.sessions.get(c),h=u&&Date.now()-u.createdAt>this.sessionTTLMs,p;!u||u.session.destroyed||u.session.closed||h?p=await this._getOrCreateSession(c,s,n):(p=u.session,this.sessionUsage.set(c,Date.now()));let d={":method":s.method,":path":o.pathname+o.search,":scheme":"https",":authority":o.host,...s.headers};for(let[k,I]of Object.entries(d)){if(k.startsWith(":"))continue;let $=Array.isArray(I)?I.join(", "):String(I),X=!1;for(let D=0;D<$.length;D++){let W=$.charCodeAt(D);if(W>=0&&W<=8||W>=10&&W<=31||W===127){X=!0;break}}if(X){if(this._strict)throw new _(`Strict mode: header "${k}" contains forbidden control characters`,"EVALIDATION",{request:s});this._onDroppedHeader?this._onDroppedHeader(k,$):typeof console<"u"&&console.warn(`[kinetex] Invalid header dropped (HTTP/2): "${k}" \u2014 value contains illegal control characters. Pass strictHeaders: true to throw instead.`),delete d[k]}}let y=!s.body||s.method==="GET"||s.method==="HEAD",g=p.request(d,{endStream:y});s.body&&!y&&ll(g,s.body).catch(k=>{g.destroy(k instanceof Error?k:new Error(String(k)))});let m=s.signal,w=await new Promise((k,I)=>{let $=this._requestTimeoutMs,X=setTimeout(()=>{W(),I(new _(`HTTP/2 request to ${o} timed out after ${$}ms`,"ETIMEOUT",{request:s})),g.destroy()},$),D=()=>{clearTimeout(X),I(new _("Request was aborted","EABORT",{request:s})),g.destroy()},W=()=>m?.removeEventListener("abort",D);m?.addEventListener("abort",D,{once:!0}),g.once("response",z=>{let $e=Number(z[":status"]??200),A=Fo[$e]??"",P={};for(let[C,O]of Object.entries(z))C.startsWith(":")||(P[C]=Array.isArray(O)?O.join(", "):O??"");if(clearTimeout(X),W(),m?.aborted){I(new _("Request was aborted","EABORT",{request:s})),g.destroy();return}if(s.redirect==="error"&&$e>=300&&$e<400&&P.location){I(new _(`Redirect not allowed (redirect:"error") \u2014 received ${$e} to ${P.location}`,"ENETWORK",{request:s})),g.destroy();return}k({status:$e,statusText:A,headers:P,body:Bo(g),url:s.url,redirected:i,httpVersion:"HTTP/2",alreadyDecompressed:!1})}),g.once("error",z=>{clearTimeout(X),W(),m?.aborted?I(new _("Request was aborted","EABORT",{request:s,cause:z})):I(new _(z.message,"ENETWORK",{request:s,cause:z})),g.destroy()})});if(!(w.status>=300&&w.status<400&&!!w.headers.location&&s.redirect!=="manual"))return w;try{if(w.body){let k=w.body.getReader();for(;;){let{done:I}=await k.read();if(I)break}k.releaseLock()}}catch{}let x=w.headers.location,T;try{T=new URL(x,s.url).href}catch{throw new _(`Invalid redirect Location: ${x}`,"ENETWORK",{request:e})}let v=w.status===301||w.status===302||w.status===303?"GET":s.method,E=v==="GET"||v==="HEAD"?null:s.body;s={...s,url:T,method:v,body:E},o=new URL(T),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 Xe(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 h={};for(let[d,y]of Object.entries(u.headers))y!==void 0&&(h[d]=Array.isArray(y)?y.join(", "):y);let p=cl(u);o({status:u.statusCode??200,statusText:u.statusMessage??"",headers:h,body:p,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 l=()=>{a.destroy(),i(new _("Request was aborted","EABORT",{request:e}))};e.signal?.addEventListener("abort",l,{once:!0});let c=()=>e.signal?.removeEventListener("abort",l);a.once("close",c),a.once("error",c),e.body&&e.method!=="GET"&&e.method!=="HEAD"?ul(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()}};cl=Bo;Fo={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 dl(r){return r.split(fl).filter(Boolean)}function pl(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 ml(r){let e=r.slice(0,9).toLowerCase();return hl[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 pr(r){if(!r)return null;let e=dl(r),t={time:null,dayOfMonth:null,month:null,year:null};for(let a of e)if(a){if(t.time===null&&a.includes(":")){let l=pl(a);if(l!==null){t.time=l;continue}}if(t.month===null&&/[a-zA-Z]/.test(a)){let l=ml(a);if(l!==null){t.month=l;continue}}if(/^\d{1,4}(?:st|nd|rd|th)?$/i.test(a)){let l=a.replace(/[a-z]+$/i,""),c=+l;if(t.dayOfMonth===null&&l.length<=2&&c>=1&&c<=31){t.dayOfMonth=c;continue}if(t.year===null&&l.length>=2){let u=gl(l);if(u!==null){t.year=u;continue}}if(t.dayOfMonth===null&&c>=1&&c<=31){t.dayOfMonth=c;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 mr(r){let e=r.replace(/\.$/,"").toLowerCase(),t=e.split(".");if(t.length===0||t.length===1&&t[0]==="")return null;if($n.has(e))return e;let n=null,s=0;for(let o=0;o<t.length;o++){let i=t.slice(o).join(".");if(Nn.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(Un.has(i)){let a=t.slice(o).join("."),l=t.length-o;l>s&&(s=l,n=a)}}return n||(t[t.length-1]??null)}function Hn(r){let e=r.toLowerCase();if(we(e))return e;let t=mr(e);if(!t)return null;let n=t.split(".").length,s=e.split(".");return s.length<=n?null:s.slice(-(n+1)).join(".")}function tt(r){let e=r.toLowerCase();if($n.has(e)||Nn.has(e))return!0;let t=e.split(".");if(t.length>=2){let n=t.slice(1).join(".");if(Un.has(n))return!0}return!1}function wl(r){try{let l=r.lastIndexOf("-"),c=[],u=l>=0?r.slice(0,l):"";for(let x=0;x<u.length;x++){let T=u.charCodeAt(x);if(T>122||T>90&&T<97||T>57&&T<65||T<48)return r;c.push(T)}let h=l>=0?r.slice(l+1):r,p=128,d=0,y=72,g=x=>x>=65&&x<=90?x-65:x>=97&&x<=122?x-97:x>=48&&x<=57?x-48+26:-1,m=(x,T,v)=>{x=Math.floor(x/(v?700:2)),x+=Math.floor(x/T);let E=0;for(;x>910/2;)x=Math.floor(x/35),E+=36;return E+Math.floor(36*x/(x+38))},w=0;for(;w<h.length;){let x=d,T=1;for(let v=36;;v+=36){if(w>=h.length)return r;let E=g(h.charCodeAt(w++));if(E<0)return r;d+=E*T;let k=v<=y?1:v>=y+26?26:v-y;if(E<k)break;T*=36-k}y=m(d-x,c.length+1,x===0),p+=Math.floor(d/(c.length+1)),d%=c.length+1,c.splice(d,0,p),d++}return String.fromCodePoint(...c)||r}catch{return r}}function gr(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(Dn){let t=r+".invalid",n=Dn(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=wl(r.slice(4));if(t&&t!==r.slice(4))return t}catch{}return r}function fe(r){return r.replace(/^\./,"").replace(/\.$/,"").toLowerCase().split(".").map(gr).join(".")}function we(r){let e=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;return bl.test(e)?e.split(".").map(Number).every(n=>n>=0&&n<=255):xl.test(e)&&e.includes(":")}function kt(r,e){let t=r.toLowerCase(),n=e.toLowerCase();return t===n?!0:!(we(t)||!t.endsWith("."+n)||we(n)||tt(n))}function At(r){if(!r||r===""||r[0]!=="/")return"/";let e=r.lastIndexOf("/");return e===0?"/":r.slice(0,e)}function dr(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 Ct(r,e){let t=dr(r),n=dr(e);return!!(t===n||t.startsWith(n)&&(n.endsWith("/")||t[n.length]==="/"))}function Sl(r){return r===""?!0:_l.test(r)}function El(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 vt(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()),!Sl(o)||(i.length>=2&&i[0]==='"'&&i[i.length-1]==='"'&&(i=i.slice(1,-1)),!El(i)))return null;let a=new Map,l=n.split(";");for(let k of l){let I=k.trim();if(!I)continue;let $=I.indexOf("=");if($===-1)a.set(I.toLowerCase(),"");else{let X=I.slice(0,$).trim().toLowerCase(),D=I.slice($+1).trim();a.has(X)||a.set(X,D)}}let c=a.has("domain")?a.get("domain"):null,u=a.has("path")?a.get("path"):null,h=a.has("expires")?a.get("expires"):null,p=a.has("max-age")?a.get("max-age"):null,d=a.has("secure"),y=a.has("httponly"),g="Unset";if(a.has("samesite")){let k=a.get("samesite").toLowerCase();k==="strict"?g="Strict":k==="lax"?g="Lax":k==="none"&&(g="None")}let m=a.has("sameparty"),w=null;if(a.has("priority")){let k=a.get("priority").toLowerCase();k==="low"?w="Low":k==="medium"?w="Medium":k==="high"&&(w="High")}let S=a.has("partitioned"),x=null;p!==null&&p.match(/^-?\d+$/)&&(x=parseInt(p,10));let T=null;x===null&&h!==null&&(T=pr(h));let v=null;c!==null&&c!==""&&(v=fe(c));let E=null;return u!==null&&u.startsWith("/")&&(E=u),{name:o,value:i,domain:v,path:E,expires:T,maxAge:x,secure:d,httpOnly:y,sameSite:g,sameParty:m,priority:w,partitioned:S}}function Ko(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 et(r){let e=[],t="",n=0,s=!1,o=!1,i=!1,a=!1,l=!1,c=()=>{i&&a&&t.trim()&&e.push(t.trim()),t="",i=!1,a=!1,l=!1};for(;n<r.length;){let u=r[n],h=r[n+1]??"";if(o){t+=u,o=!1,n++;continue}if(u==="\\"&&(s||h==='"'||h==="\\")){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&&(l||a||i)){for(c();n+1<r.length&&/\s/.test(r[n+1]);)n++;n++;continue}if(u===";"){i||(i=!0),a&&(l=!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 Pt(r){if(typeof Headers<"u"&&r instanceof Headers){if(typeof r.getSetCookie=="function")return r.getSetCookie();let n=r.get("set-cookie");return n?et(n):[]}let e=r,t=e["set-cookie"]??e["Set-Cookie"];return t?Array.isArray(t)?t.flatMap(n=>et(n)):et(t):[]}var hl,fl,yl,Nn,Un,$n,Dn,bl,xl,_l,yr=q(()=>{"use strict";hl={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},fl=/[\t\x20-\x2f\x3b-\x40\x5b-\x60\x7b-\x7e]+/;yl=["!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"],Nn=new Set,Un=new Set,$n=new Set;for(let r of yl)r.startsWith("!")?$n.add(r.slice(1).toLowerCase()):r.startsWith("*.")?Un.add(r.slice(2).toLowerCase()):Nn.add(r.toLowerCase());(async()=>{try{let r=await import("node:url");typeof r.domainToUnicode=="function"&&(Dn=r.domainToUnicode)}catch{}})();bl=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,xl=/^[\da-f:]+$/i;_l=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});function Al(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 Cl(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 jn(r){try{return new URL(r)}catch{return null}}function Bn(){return new Le}function zn(r){return Le.fromJSON(r)}var Tl,Rl,kl,Vo,Le,Jo=q(()=>{"use strict";yr();Tl=4096,Rl=50,kl=3e3,Vo=400*24*60*60*1e3;Le=class r{constructor(e={}){f(this,"dm",new Map);f(this,"total",0);f(this,"cleanupTimer",null);f(this,"maxTotal");f(this,"maxPerDomain");f(this,"domainMatcherFn");this.maxTotal=e.maxTotal??kl,this.maxPerDomain=e.maxPerDomain??Rl,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=jn(t.url);if(!n)return!1;let s=vt(e);if(!s)return!1;let o=Date.now(),i=n.hostname.toLowerCase(),a=i.replace(/^\[|\]$/g,""),l=n.protocol==="https:"||a==="localhost"||a==="127.0.0.1"||a==="::1";if(s.name.length+1+s.value.length>Tl)return!1;let u,h;if(s.domain!==null&&s.domain!==""){let w=s.domain.toLowerCase();if(!(this.domainMatcherFn??kt)(i,w)||tt(w))return!1;u=w,h=!1}else u=i,h=!0;let p=s.path??At(n.pathname),d=s.secure;if(d&&!l)return!1;let y=s.sameSite;if(y==="None"&&!d)return!1;let g;if(s.maxAge!==null){if(s.maxAge<=0)return this.removeCookie(u,p,s.name),!0;let w=Math.min(s.maxAge*1e3,Vo);g=o+w}else if(s.expires!==null){if(g=s.expires,g<=o)return this.removeCookie(u,p,s.name),!0;g=Math.min(g,o+Vo)}else g=1/0;let m={name:s.name,value:s.value,domain:u,path:p,expires:g,maxAge:s.maxAge,secure:d,httpOnly:s.httpOnly,sameSite:y,createdAt:o,lastAccessed:o,hostOnly:h};return Al(m,n)?(this.putCookie(m),!0):!1}getCookies(e){let t=jn(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,l=e.sameSiteContext??"none",c=Date.now(),u=[];for(let[p,d]of this.dm)if(this.matchDomain(n,p))for(let[,y]of d)for(let[,g]of y)g.hostOnly&&n!==g.domain||g.expires!==1/0&&g.expires<c||Ct(o,g.path)&&(g.secure&&!i||g.httpOnly&&!a||Cl(g.sameSite,l)&&(g.name.startsWith("__Secure-")&&!(g.secure&&i)||g.name.startsWith("__Host-")&&!(g.secure&&i&&g.path==="/"&&g.hostOnly)||u.push(g)));u.sort((p,d)=>{let y=d.path.length-p.path.length;return y!==0?y:p.createdAt-d.createdAt});let h=Date.now();for(let p of u)p.lastAccessed=h;return u}getCookieHeader(e){return this.getCookies(e).map(t=>t.name?`${t.name}=${t.value}`:t.value).join("; ")}getCookiesForDomain(e){let t=fe(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 Pt(e))this.setCookie(n,t)}removeCookie(e,t,n){let s=fe(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,l]of i)l.expires!==1/0&&l.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=fe(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=jn(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=fe(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[l,c]of a)s.push([i,l,c]);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,l]of i)e.push([n,o,a,l]);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){if(this.domainMatcherFn)return this.domainMatcherFn(e,t);let n=e.toLowerCase(),s=t.toLowerCase();return n===s?!0:we(n)?!1:n.endsWith("."+s)}}});var Qo={};pe(Qo,{CookieJar:()=>Le,canonicalizeDomainFull:()=>fe,createCookieJar:()=>Bn,decodeIDNLabel:()=>gr,defaultPath:()=>At,domainMatch:()=>kt,extractSetCookieHeaders:()=>Pt,formatSetCookieHeader:()=>Ko,getPublicSuffix:()=>mr,getRegistrableDomain:()=>Hn,isIPAddress:()=>we,isPublicSuffix:()=>tt,loadCookieJar:()=>zn,normalizePath:()=>dr,parseCookieDate:()=>pr,parseSetCookieHeader:()=>vt,pathMatch:()=>Ct,splitSetCookieHeaders:()=>et});var qn=q(()=>{"use strict";Jo();yr()});var ri={};pe(ri,{BatchingTransport:()=>Mt,ConsoleTransport:()=>rt,HTTPLogger:()=>Me,JSONTransport:()=>Lt,LogLevel:()=>It,MultiTransport:()=>Dt,Redactor:()=>Nt,RemoteTransport:()=>Ot,createDevelopmentLogger:()=>ti,createLogger:()=>Zo,createProductionLogger:()=>ei,toOTelSpan:()=>Yo});function Dl(){let r=Date.now().toString(36),e=(++Ol).toString(36).padStart(4,"0"),t=Math.random().toString(36).slice(2,6);return`${r}-${e}-${t}`}function Xo(r,e){if(!r||typeof r!="object"||e.length===0)return;let[t,...n]=e;if(t===void 0||t==="__proto__"||t==="constructor"||t==="prototype")return;let s=r;if(n.length===0){Object.prototype.hasOwnProperty.call(s,t)&&(s[t]="***");return}typeof s[t]=="object"&&Xo(s[t],n)}function Go(r){return typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength}function Yo(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 Nl(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 wr(){return typeof performance<"u"?performance.now():Date.now()}function Zo(r){return new Me(r)}function ei(r){let e=[new Lt];return r.endpoint&&e.push(new Mt(new Ot(r.endpoint))),new Me({level:r.level??"INFO",transports:[new Dt(e)],...r.context!==void 0?{context:r.context}:{}})}function ti(r={}){return new Me({level:r.level??"DEBUG",transports:[new rt({pretty:!0,useColors:!0,onWrite:e=>console.log(e)})],redaction:{logRequestBody:r.logBodies??!0,logResponseBody:r.logBodies??!0,maxBodyLength:2048}})}var vl,It,Pl,Il,Ll,rt,Ml,Lt,Mt,Ot,Dt,Ol,Nt,be,Me,br=q(()=>{"use strict";B();vl=()=>{try{return globalThis.process?.env?.NODE_ENV}catch{return}},It={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},Pl=["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"],Il=["token","api_key","apikey","access_token","refresh_token","secret","password","pass","pwd","key","auth"],Ll=["application/json","application/x-www-form-urlencoded","text/"],rt=class{constructor(e={pretty:!1,onWrite:t=>console.log(t)}){f(this,"pretty");f(this,"onWrite");this.pretty=e.pretty??vl()!=="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}]`}},Ml=()=>{try{return typeof globalThis.process?.stdout?.write=="function"}catch{return!1}},Lt=class{constructor(e=t=>{Ml()?globalThis.process.stdout.write(t+`
|
|
5
|
-
|
|
6
|
-
`)
|
|
1
|
+
/* kinetex v1.5.0 | MIT | https://github.com/kinetexjs/kinetex */
|
|
2
|
+
var Fs=Object.defineProperty;var Ws=r=>{throw TypeError(r)};var sc=(r,e,t)=>e in r?Fs(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var V=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(n){throw t=[n],n}};var pe=(r,e)=>{for(var t in e)Fs(r,t,{get:e[t],enumerable:!0})};var f=(r,e,t)=>sc(r,typeof e!="symbol"?e+"":e,t),oc=(r,e,t)=>e.has(r)||Ws("Cannot "+t);var Ks=(r,e,t)=>e.has(r)?Ws("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var oe=(r,e,t)=>(oc(r,e,"access private method"),t);function ic(){if(ir)return ir;let r=globalThis;if(r.process?.hrtime)return ir=r.process,ir}function ac(){if(ar)return ar;let r=globalThis;if(r.Buffer&&typeof r.Buffer.isBuffer=="function")return ar=r.Buffer,ar}function Re(r,e={}){let t={...cc};for(let[i,a]of Object.entries(e))a!==void 0&&(t[i]=a);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 tn(i,t,0)?!t.allowNonFinite&&rn(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 tn(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=>tn(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=>tn(r[s],e,t+1))}return!0}function rn(r){return typeof r=="number"&&!Number.isFinite(r)?!0:Array.isArray(r)?r.some(rn):typeof r=="object"&&r!==null?Object.values(r).some(rn):!1}function uc(r){let e=Re(r);return e.success?e.value:r}function $(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r)){for(let t=0;t<r.length;t++)r[t]=$(r[t]);return r}let e=r;for(let t of Object.keys(e)){if(t==="__proto__"||t==="constructor"||t==="prototype"){delete e[t];continue}$(e[t])}return r}function lc(r){return Re(r,{maxDepth:16,maxStringLength:1*1024*1024,maxArrayLength:1e3,maxObjectKeys:100})}function Ge(r,e,t,n){if(r===null||typeof r!="object")return!1;if(typeof e=="function")try{if(r instanceof e)return!0}catch{}if(Object.prototype.toString.call(r)!==`[object ${t}]`)return!1;let s=r;return n.every(o=>typeof s[o]=="function")}function hc(r){return r instanceof Uint8Array}function fc(r){return r instanceof ArrayBuffer}function dc(r){return Ge(r,globalThis.ReadableStream,"ReadableStream",["getReader","cancel"])}function pc(r){return Ge(r,globalThis.Headers,"Headers",["get","set","append","forEach"])}function mc(r){return Ge(r,globalThis.AbortSignal,"AbortSignal",["addEventListener","removeEventListener"])}function gc(r){if(r===null||typeof r!="object")return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function yc(r){return Ge(r,globalThis.FormData,"FormData",["append","get","getAll","set"])}function wc(r){return Ge(r,globalThis.Blob,"Blob",["arrayBuffer","slice","text","stream"])}function bc(r){return Ge(r,globalThis.URLSearchParams,"URLSearchParams",["append","get","getAll","sort"])}function ke(r){return typeof r!="string"||r.length===0||r.length>4096?!1:xc.test(r)}function me(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>255)return!1}return!0}function Qe(r){return Sc.some(([e,t])=>r>=e&&r<=t)}function en(r){return r===""?null:/^0[xX][0-9a-fA-F]+$/.test(r)?parseInt(r,16):/^0[0-7]+$/.test(r)?parseInt(r,8):/^\d+$/.test(r)?parseInt(r,10):null}function nn(r){if(r.includes(":")||!/^[0-9a-fA-FxX.]+$/.test(r))return null;let e=r.endsWith(".")?r.slice(0,-1):r;if(e==="")return null;let t=e.split(".");if(t.length>4||t.length<1)return null;if(t.length===1){let i=en(t[0]);return i===null||i>4294967295?null:i>>>0}let n=[];for(let i=0;i<t.length-1;i++){let a=en(t[i]);if(a===null||a>255)return null;n.push(a)}let s=en(t[t.length-1]),o=2**(8*(5-t.length));if(s===null||s>=o)return null;for(let i=8*(4-t.length);i>=0;i-=8)n.push(s>>>i&255);return(n[0]<<24|n[1]<<16|n[2]<<8|n[3])>>>0}function Vs(r){if(!r.includes(":"))return null;let e=r.split("%")[0],t=e.split("::");if(t.length>2)return null;let n=o=>{if(o==="")return[];let i=o.split(":"),a=[];for(let c=0;c<i.length;c++){let u=i[c];if(u==="")return null;if(u.includes(".")){if(c!==i.length-1)return null;let l=nn(u);if(l===null)return null;a.push(l>>>24&255,l>>>16&255,l>>>8&255,l&255)}else{if(!/^[0-9a-fA-F]{1,4}$/.test(u))return null;let l=parseInt(u,16);a.push(l>>>8&255,l&255)}}return a},s;if(t.length===2){let o=n(t[0]),i=n(t[1]);if(!o||!i)return null;let a=16-o.length-i.length;if(a<0)return null;s=[...o,...new Array(a).fill(0),...i]}else{let o=n(e);if(!o||o.length!==16)return null;s=o}return s.length===16?new Uint8Array(s):null}function Js(r){let e=n=>(r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3])>>>0;if(r.every(n=>n===0)||r.slice(0,15).every(n=>n===0)&&r[15]===1)return!0;let t=r[0];return(t&254)===252||t===254&&(r[1]&192)===128||t===255||r[0]===32&&r[1]===1&&r[2]===13&&r[3]===184?!0:r.slice(0,10).every(n=>n===0)&&r[10]===255&&r[11]===255||r.slice(0,12).every(n=>n===0)||r[0]===0&&r[1]===100&&r[2]===255&&r[3]===155&&r.slice(4,12).every(n=>n===0)?Qe(e(12)):r[0]===32&&r[1]===2?Qe(e(2)):!1}function ae(r,e=["http","https"],t={}){try{let n=typeof r=="string"?new URL(r):r,s=n.protocol.replace(/:$/,"").toLowerCase();if(!e.some(o=>o.toLowerCase()===s)||_c.has(s))return!1;if(!t.allowPrivateNetwork){let o=n.hostname.toLowerCase(),i=o.startsWith("[")&&o.endsWith("]");if(i&&(o=o.slice(1,-1)),o==="localhost"||o.endsWith(".localhost")||o==="0.0.0.0")return!1;if(i||o.includes(":")){let a=Vs(o);if(a===null||Js(a))return!1}else{let a=nn(o);if(a!==null&&Qe(a))return!1}}if(n.hostname.includes("..")||n.pathname.includes("..")||n.hostname.length>253||n.href.length>8192)return!1;if(n.port){let o=parseInt(n.port,10);if(isNaN(o)||o<1||o>65535)return!1}return!0}catch{return!1}}function Qs(r){let e=r.trim().toLowerCase();if(e.startsWith("[")&&e.endsWith("]")||e===""||e==="localhost"||e.endsWith(".localhost"))return!0;if(e.includes(":")){let n=Vs(e);return n===null||Js(n)}let t=nn(e);return t===null||Qe(t)}function wt(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map(s=>wt(s));if(r instanceof Date)return new Date(r.getTime());if(r instanceof Uint8Array)return new Uint8Array(r);if(r instanceof Map){let s=new Map;return r.forEach((o,i)=>s.set(i,wt(o))),s}if(r instanceof Set){let s=new Set;return r.forEach(o=>s.add(wt(o))),s}let e=Object.getPrototypeOf(r),t=Object.prototype.toString.call(r)==="[object Object]",n=e===Object.prototype||e===null||!t?{}:Object.create(e);for(let s in r)s==="__proto__"||s==="constructor"||s==="prototype"||Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=wt(r[s]));return n}function Tc(r,e){let t=new Error(r);for(let n of Object.keys(e)){let s=e[n];if(n==="__proto__"){Object.defineProperty(t,n,{value:s,writable:!0,enumerable:!0,configurable:!0});continue}t[n]=s}return t}function Ec(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?` | ${sn(e)}`:"";return`${r.name}: ${r.message}${t}`}return String(r)}function sn(r,e="[Circular]"){let t=new Set;try{return JSON.stringify(r,(n,s)=>{if(typeof s=="bigint")return s.toString();if(typeof s=="object"&&s!==null){if(t.has(s))return e;t.add(s)}return s})??String(r)}catch{return String(r)}}function Rc(r){if(typeof r!="string"||r.length>2048)return null;try{let e=new URL(r);return ae(e)?(e.username="",e.password="",e.toString()):null}catch{return null}}function N(){let r=ic();if(r?.hrtime){let[t,n]=r.hrtime();return t*1e3+n/1e6}return typeof globalThis.Bun<"u",Date.now()}function Me(r,e){return e?.aborted?Promise.reject(bt()):new Promise((t,n)=>{let s=()=>{clearTimeout(o),n(bt())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e&&e.addEventListener("abort",s,{once:!0})})}function cr(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 kc(r){if(r instanceof Uint8Array)return r.slice();if(r instanceof ArrayBuffer)return new Uint8Array(r.slice(0));let e=ac();return e&&e.isBuffer(r)?new Uint8Array(r):typeof r=="string"?new TextEncoder().encode(r):null}function ur(r,e){return e.has(r.toLowerCase())}function Xe(r,e,t){let n={};for(let[s,o]of Object.entries(r))n[s]=ur(s,e)?t:o;return n}async function ce(r){let e=typeof r=="string"?new TextEncoder().encode(r):r,t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("")}function ue(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 on(...r){let e=r.filter(i=>i!=null);if(e.length===0)return;if(e.length===1)return e[0];let t=e.find(i=>i.aborted);if(t){let i=new AbortController;return i.abort(t.reason),i.signal}let n=AbortSignal.any;if(typeof n=="function")return n.call(AbortSignal,e);let s=new AbortController,o=()=>{for(let i of e)i.removeEventListener("abort",o);s.abort(bt())};for(let i of e)i.addEventListener("abort",o,{once:!0});return s.signal}function an(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 ge(r){if(!Number.isInteger(r)||r<0||r>65536)throw new Error(`randomBytes: invalid byteCount ${r}`);let e=new Uint8Array(r);if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(e);else throw new Error("randomBytes: no CSPRNG available in this runtime \u2014 crypto.getRandomValues is required");return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}function bt(r="Aborted"){if(typeof DOMException<"u")return new DOMException(r,"AbortError");let e=new Error(r);return e.name="AbortError",e}function cn(){if(ie)return ie;try{if(globalThis.process?.versions?.node)return ie="node",ie}catch{}return typeof globalThis.Deno<"u"?ie="deno":typeof globalThis.Bun<"u"?ie="bun":typeof window<"u"?ie="browser":typeof globalThis<"u"&&typeof globalThis.fetch=="function"?ie="edge":ie="unknown",ie}function Ac(){return cn()==="node"}function Cc(){return cn()==="browser"}function vc(){return typeof globalThis?.fetch=="function"}function xt(r){let e={};return r.forEach((t,n)=>{let s=n.toLowerCase();if(s==="__proto__"){Object.defineProperty(e,s,{value:t,writable:!0,enumerable:!0,configurable:!0});return}if(s==="set-cookie"&&Object.hasOwn(e,s)){e[s]=`${e[s]}, ${t}`;return}e[s]=t}),e}var ir,ar,cc,xc,_c,Sc,ie,U=V(()=>{"use strict";cc={maxDepth:32,maxStringLength:10*1024*1024,maxArrayLength:1e4,maxObjectKeys:1e3,allowNonFinite:!1};xc=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;_c=new Set(["file","ftp","gopher","data","javascript","dict","ldap","ldaps","rlogin","telnet","tn3270","imap","pop","smtp","nntp","news","ssh","git","svn","webcal","urn"]),Sc=[[0,16777215],[167772160,184549375],[1681915904,1686110207],[2130706432,2147483647],[2851995648,2852061183],[2886729728,2887778303],[3221225472,3221225727],[3221225984,3221226239],[3232235520,3232301055],[3323068416,3323199487],[3325256704,3325256959],[3405803776,3405804031],[3758096384,4026531839],[4026531840,4294967295]];ie=null});function no(r){return r}function Fc(r){if(typeof r=="string"){for(let e of qc)if(e===r)return e}}var qc,x,Et,Rt,kt,J,ee,hn,fn,Ne,te,ye=V(()=>{"use strict";qc=["ENETWORK","ETIMEOUT","EABORT","EHTTPSTATUS","ESIZELIMIT","EPARSE","EVALIDATION","EAUTH","EPROXY","EREDIRECT","EUNKNOWN"];x=class extends Error{constructor(t,n,s){super(t);f(this,"code");f(this,"request");f(this,"response");f(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}},Et=class extends x{constructor(t,n,s){super(`Response size limit exceeded: ${t} bytes read, limit is ${n} bytes`,"ESIZELIMIT",s!==void 0?{request:s}:{});f(this,"bytesRead");f(this,"limit");this.bytesRead=t,this.limit=n,this.name="SizeLimitError"}},Rt=class extends x{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}},kt=class extends x{constructor(e){super("Request was aborted","EABORT",e!==void 0?{request:e}:{}),this.name="AbortError"}},J=class extends x{constructor(e,t){super(e,"ENETWORK",t!==void 0?{request:t}:{}),this.name="NetworkError"}},ee=class extends x{constructor(e,t){super(e,"EVALIDATION",t!==void 0?{request:t}:{}),this.name="ValidationError"}},hn=class extends x{constructor(e,t){super(e,"EAUTH",t!==void 0?{request:t}:{}),this.name="AuthError"}},fn=class extends x{constructor(e,t){super(e,"EPROXY",t!==void 0?{request:t}:{}),this.name="ProxyError"}},Ne=class extends x{constructor(e,t){super(e,"EREDIRECT",t!==void 0?{request:t}:{}),this.name="RedirectError"}},te=class extends x{constructor(t,n){super(`Request timed out after ${t}ms`,"ETIMEOUT",n!==void 0?{request:n}:{});f(this,"timeoutMs");this.timeoutMs=t,this.name="TimeoutError"}}});var po={};pe(po,{CREDENTIAL_HEADERS:()=>pr,CloudflareKVAdapter:()=>At,HTTPCache:()=>we,MemoryStorageAdapter:()=>De,TwoTierStorageAdapter:()=>Ct,WebStorageAdapter:()=>rt,createKVCache:()=>ho,createLocalStorageCache:()=>uo,createMemoryCache:()=>co,createSessionStorageCache:()=>lo,createTwoTierCache:()=>fo,getAuthFingerprint:()=>nt});function io(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 so(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 tt(r){return r.replaceAll(Wc,"").replaceAll(/\s+/g," ").trim()}async function nt(r){let e=new Map;for(let[i,a]of Object.entries(r))e.set(i.toLowerCase(),a);let t=[];for(let i of pr){let a=e.get(i);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 Kc(r){try{let e=new URL(r.url),t=tt(e.hostname),n=tt(e.pathname);e.searchParams.sort();let s=tt(e.search);e.hash="";let o=`${e.protocol}//${t}${e.port?":"+e.port:""}${n}${s}`,i=tt(r.method.toUpperCase()),a=await nt(r.headers??{}),c=`${i}:${o}`;return a?`${c}:${a}`:c}catch{let e=tt(r.method.toUpperCase()),t=tt(r.url),n=await nt(r.headers??{}),s=`${e}:${t}`;return n?`${s}:${n}`:s}}function Vc(r){let e=r.headers["cache-control"]??r.headers["Cache-Control"]??"",t=io(e);return t.noCache||t.mustRevalidate}function oo(r,e,t){let n=r.headers["cache-control"]??r.headers["Cache-Control"]??"",s=io(n);if(t&&s.noStore)return{ttlMs:0,swrMs:0,staleOnError:0,shouldCache:!1};if(t&&s.private)return{ttlMs:0,swrMs:0,staleOnError:0,shouldCache:!1};let o=s.sMaxAge??s.maxAge,i;if(o!==null){let u=parseInt(r.headers.age??r.headers.Age??"0",10)||0;i=Math.max(0,(o-u)*1e3)}else{let u=r.headers.expires??r.headers.Expires;if(u){let l=Date.parse(u);i=isNaN(l)?e:Math.max(0,l-Date.now())}else{let l=r.headers["last-modified"]??r.headers["Last-Modified"];if(l){let h=Date.parse(l);isNaN(h)?i=e:i=Math.min(Math.max((Date.now()-h)*.1,0),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||c>0}}function dr(r){return{...r,response:ao(r.response),tags:[...r.tags]}}function ao(r){return{...r,headers:{...r.headers},body:r.body instanceof Uint8Array?new Uint8Array(r.body):r.body}}function Jc(r){return r?typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength:0}function co(r){return new we({...r,storage:new De})}function uo(r,e){if(typeof localStorage>"u")throw new Error("localStorage is not available");return new we({...e,storage:new rt(localStorage,r)})}function lo(r,e){if(typeof sessionStorage>"u")throw new Error("sessionStorage is not available");return new we({...e,storage:new rt(sessionStorage,r)})}function ho(r,e){return new we({...e,storage:new At(r)})}function fo(r,e){return new we({...e,storage:new Ct(r)})}var De,rt,At,Ct,Wc,pr,dn,pn,we,st=V(()=>{"use strict";U();De=class{constructor(){f(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}},rt=class{constructor(e,t="hc:"){f(this,"storage");f(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=Re(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()}},At=class{constructor(e,t="hc:"){f(this,"kv");f(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)))}},Ct=class{constructor(e){f(this,"l2");f(this,"l1",new De);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()])}};Wc=/[\u0000-\u001f\u007f-\u009f]/g;pr=["authorization","proxy-authorization","cookie","x-api-key","apikey","api-key","x-auth-token","x-access-token","x-refresh-token","x-session-id","x-session-token","x-secret","x-secret-key","x-private-key","x-csrf-token"];dn=class{constructor(e,t=null,n=null){f(this,"key");f(this,"prev");f(this,"next");this.key=e,this.prev=t,this.next=n}},pn=class{constructor(){f(this,"map",new Map);f(this,"head",null);f(this,"tail",null)}touch(e){let t=this.map.get(e);if(t)this._unlink(t),this._prepend(t);else{let n=new dn(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}},we=class{constructor(e={}){f(this,"cfg");f(this,"storage");f(this,"lru",new pn);f(this,"tagIndex",new Map);f(this,"swrInFlight",new Set);f(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,404,405,410,414,501],cacheKey:e.cacheKey??Kc,storage:e.storage??new De,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=so(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:dr(n),stale:n.mustRevalidate===!0}):n.staleUntil>s?(this.stats.staleHits++,this.lru.touch(t),this._updateHitRate(),{entry:dr(n),stale:!0}):n.staleOnError>s?(this.stats.staleHits++,this._updateHitRate(),{entry:dr(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}:oo(t,this.cfg.defaultTtlMs,this.cfg.honorCacheControl);if(!a&&!n.force)return!1;let c=Jc(t.body);if(c>this.cfg.maxBodySizeBytes)return!1;let u=Date.now(),l=this.cfg.maxAbsoluteAgeMs,h=Math.min(s===1/0?l:s,l);if(h<=0&&o<=0&&i<=0&&!n.force)return!1;let d=t.headers.vary??t.headers.Vary??null,p=d?so(d,e.headers):"";if(p===null)return!1;let m=n.tags??[],g={response:ao(t),createdAt:u,expiresAt:h===1/0?1/0:u+h,staleUntil:u+h+o,staleOnError:u+h+i,etag:t.headers.etag??t.headers.ETag??null,lastModified:t.headers["last-modified"]??t.headers["Last-Modified"]??null,varyKey:p,mustRevalidate:Vc(t),tags:m,size:c+256},w=await this._key(e);if(await this._ensureCapacity(g.size),await this.storage.set(w,g)===!1)return!1;this.lru.touch(w),this.stats.totalEntries++,this.stats.totalSizeBytes+=g.size;for(let _ of m){let b=this.tagIndex.get(_)??new Set;b.add(w),this.tagIndex.set(_,b)}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:u}=oo(i,this.cfg.defaultTtlMs,this.cfg.honorCacheControl),l=Date.now(),h=Math.min(a===1/0?this.cfg.maxAbsoluteAgeMs:a,this.cfg.maxAbsoluteAgeMs),d={...s,response:i,createdAt:l,expiresAt:h<=0?l:l+h,staleUntil:l+h+c,staleOnError:l+h+u,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),dr(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:"),u=c!==-1?a.slice(0,c):a,l=e.endsWith("/")?e.slice(0,-1):e;if((u.endsWith("/")?u.slice(0,-1):u).startsWith(l)){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={...this.stats,hits:0,misses:0,staleHits:0,errors:0,evictions: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=Re(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 u=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")&&(u=c)}catch{}if(!u)continue;let l=c;if(!(l.expiresAt!==1/0&&l.expiresAt<o)&&!(o-l.createdAt>this.cfg.maxAbsoluteAgeMs)&&!(l.size>this.cfg.maxBodySizeBytes+512)){await this.storage.set(a,l),this.lru.touch(a),this.stats.totalEntries++,this.stats.totalSizeBytes+=l.size;for(let h of l.tags){let d=this.tagIndex.get(h)??new Set;d.add(a),this.tagIndex.set(h,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)}else for(let n of this.tagIndex.values())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 Qc(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 go(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 Xc(r){let e=[],t="",n=!1;for(let s=0;s<r.length;s++){let o=r[s];if(n){if(o==="\\"&&s+1<r.length){t+=o+r[++s];continue}o==='"'&&(n=!1),t+=o;continue}if(o==='"'){n=!0,t+=o;continue}if(o===";"){e.push(t),t="";continue}t+=o}return e.push(t),e}function Yc(r){return r.length>=2&&r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\(.)/g,"$1"):r}function be(r){return`"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function re(r){let e=new Map;for(let t of Xc(r)){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();e.set(o,Yc(n.slice(s+1).trim()))}}return e}function yr(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 u=a.slice(0,c).trim().toLowerCase(),l=a.slice(c+1).trim();if(u==="q"){let h=parseFloat(l);Number.isFinite(h)&&(s=Math.min(1,Math.max(0,h)))}else o.set(u,l)}return{value:n,quality:s,params:o}}).filter(e=>e.value!=="").sort((e,t)=>t.quality-e.quality)}function Zc(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 Sn(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:re(r.slice(e));return{mediaType:`${s}/${o}`,type:s,subtype:o,charset:a.get("charset")??null,boundary:a.get("boundary")??null,params:a}}function xo(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 _o(r){if(!r)return null;let e=r.indexOf(";"),t=(e===-1?r:r.slice(0,e)).trim().toLowerCase(),n=e===-1?new Map:re(r.slice(e)),s=null,o=n.get("filename*");o&&(s=Zc(o)),s===null&&(s=n.get("filename")??null);let i=n.get("name")??null;return{type:t,filename:s,name:i,params:n}}function So(r){let e=r.type;if(r.name&&(e+=`; name=${be(r.name)}`),r.filename){e+=`; filename=${be(r.filename)}`;let t=encodeURIComponent(r.filename);t!==r.filename&&(e+=`; filename*=UTF-8''${t}`)}return e}function eu(r){let e=[],t="",n=!1;for(let s of r){if(s==='"'&&(n=!n),s===","&&!n){e.push(t),t="";continue}t+=s}return e.push(t),e}function To(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 eu(r)){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 Eo(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 bn(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=Qc(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(),u=c.indexOf("=");if(u===-1)continue;let l=c.slice(0,u).trim().toLowerCase(),h=c.slice(u+1).trim();h.length>=2&&h.startsWith('"')&&h.endsWith('"')&&(h=h.slice(1,-1)),s.set(l,h)}else o=n;return{scheme:t,token:o,params:s,basic:i}}function xn(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),u=re(c);e.push({scheme:a,realm:u.get("realm")??null,params:u})}return e}function tu(r){return`Bearer ${r}`}function ru(r,e){return`Basic ${go(`${r}:${e}`)}`}function Tn(r){return yr(r)}function Ro(r){return yr(r)}function ko(r){return yr(r)}function nu(r){return r.trim()?yr(r):[]}function su(r,e){if(e.length===0)return null;if(!r.trim())return e[0];let t=i=>i.split(";")[0].trim().toLowerCase(),n=Tn(r).map(i=>({essence:t(i.value),quality:i.quality})).filter(i=>i.essence!==""),s=(i,a)=>i===a?2:i.endsWith("/*")&&a.startsWith(i.slice(0,i.length-1))?1:i==="*/*"?0:-1,o=null;for(let i=0;i<e.length;i++){let a=t(e[i]),c=null,u=-1;for(let l of n){let h=s(l.essence,a);h<0||h>u&&(u=h,c=l.quality)}c===null||c<=0||(o===null||c>o.quality||c===o.quality&&u>o.spec)&&(o={index:i,quality:c,spec:u})}return o===null?null:e[o.index]}function Ao(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(),u=a===""?null:parseInt(a,10),l=c===""?null:parseInt(c,10);return u!==null&&!Number.isFinite(u)||l!==null&&!Number.isFinite(l)||u===null&&l===null||u!==null&&u<0||l!==null&&l<0||u!==null&&l!==null&&u>l?null:{start:u,end:l}}).filter(s=>s!==null);return n.length===0?null:{unit:t,ranges:n}}function Co(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 _n(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=re(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 ou(r){return r.map(e=>{let t=`<${e.uri}>`;e.rel&&(t+=`; rel=${be(e.rel)}`),e.type&&(t+=`; type=${be(e.type)}`),e.hreflang&&(t+=`; hreflang=${be(e.hreflang)}`),e.title&&(t+=`; title=${be(e.title)}`),e.media&&(t+=`; media=${be(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}=${be(String(o))}`);return t}).join(", ")}function vo(r){let e={by:null,for:[],host:null,proto:null};for(let t of r.split(",")){let n=re(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 En(r){let e=r.get(S.Forwarded);if(e)return vo(e);let t=r.get(S.XForwardedFor),n=r.get(S.XForwardedHost),s=r.get(S.XForwardedProto);return{by:null,for:t?t.split(",").map(o=>o.trim()):[],host:n??null,proto:s??null}}function iu(r){return/^\d{1,3}(\.\d{1,3}){3}$/.test(r)?r.split(".").every(e=>Number(e)<=255&&(e==="0"||!e.startsWith("0"))):!r.includes(":")||!/^[0-9a-f:.]+$/i.test(r)?!1:(r.match(/::/g)??[]).length<=1}function mn(r){if(!r)return null;let e=au(r);return e&&(/^_/.test(e)||iu(e))?e:null}function Po(r,e={}){let t=Math.max(0,Math.trunc(e.trustedHops??0)),n=En(r);if(n.for.length>0){let s=t===0?0:n.for.length-t;for(let o=s;o>=0;o--){let i=mn(n.for[o]);if(i)return i}for(let o of n.for){let i=mn(o);if(i)return i}return null}return mn(r.get(S.XRealIP))}function au(r){let e=r.trim();if(e.startsWith('"')&&e.endsWith('"')&&e.length>=2&&(e=e.slice(1,-1)),e.startsWith("[")){let n=e.indexOf("]");if(n!==-1)return e.slice(1,n)}let t=/^(.*):\d+$/.exec(e);return t&&(t[1]??"").includes(".")?t[1]:e}function Rn(r){let e=r.trim();if(!cu.test(e)&&!uu.test(e)&&!lu.test(e))return null;let t=Date.parse(e);return isNaN(t)?null:t}function wr(r){let e=r.trim();if(/^\d+$/.test(e))return{date:null,delay:parseInt(e,10)};let t=Rn(e);return t!==null?{date:new Date(t),delay:null}:{date:null,delay:null}}function hu(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],u=o[4]??"",l=parseInt(i,10),h=(()=>{let d=u.trim().replace(/^"|"$/g,"");if(d){let p=Date.parse(d);if(!isNaN(p))return new Date(p)}})();return{code:l,agent:a,text:c,...h!==void 0?{date:h}:{}}}).filter(s=>s!==null)}function Lo(r){let e=re(";"+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 kn(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 An(r){let e=[];for(let[t,n]of r)e.push(n.length>0?`${t} ${n.join(" ")}`:t);return e.join("; ")}function Oo(r){return r.split(",").map(e=>{let t=e.trim().split(";"),n=(t[0]??"").trim(),s=re(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 fu(r){return r.map(e=>{let t=e.name;return e.duration!==null&&(t+=`;dur=${e.duration}`),e.description!==null&&(t+=`;desc=${be(e.description)}`),t}).join(", ")}function Mo(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?re(";"+i.slice(a+1)):new Map,u=(a!==-1?i.slice(0,a):i).replace(/^"|"$/g,""),l,h;if(u.startsWith("[")){let d=u.indexOf("]");if(d===-1)l=u,h=443;else{l=u.slice(0,d+1);let p=u.slice(d+2);h=p?parseInt(p,10):443}}else{let d=u.lastIndexOf(":");l=d===-1?u:u.slice(0,d),h=d===-1?443:parseInt(u.slice(d+1),10)}e.push({protocol:o,host:l,port:h,maxAge:c.has("ma")?parseInt(c.get("ma"),10):null,persist:c.has("persist")&&c.get("persist")==="1"})}return e}function du(r){let e=new xe;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 pu(r){let e={};return r.forEach((t,n)=>{let o=r.getAll(n);e[n]=o.length===1?o[0]:[...o]}),e}function mu(r){return new xe(r)}function gu(r={}){let e=new xe;if(r.hsts!==!1){let t=r.hsts===!0||r.hsts===void 0?{maxAge:31536e3,includeSubDomains:!0,preload:!1}:r.hsts;e.set(S.StrictTransportSecurity,kn(t))}if(r.csp){let t=typeof r.csp=="string"?r.csp:An(r.csp);e.set(S.ContentSecurityPolicy,t)}return e.set(S.XFrameOptions,r.frameOptions??"DENY"),r.noSniff!==!1&&e.set(S.XContentTypeOptions,"nosniff"),e.set(S.ReferrerPolicy,r.referrer??"strict-origin-when-cross-origin"),r.permissions&&e.set(S.PermissionsPolicy,r.permissions),r.coep&&e.set(S.CrossOriginEmbedderPolicy,r.coep),r.coop&&e.set(S.CrossOriginOpenerPolicy,r.coop),r.corp&&e.set(S.CrossOriginResourcePolicy,r.corp),e}function yu(r){let e=new xe,t=Array.isArray(r.origin)?r.origin.join(", "):r.origin;return e.set(S.AccessControlAllowOrigin,t),r.methods?.length&&e.set(S.AccessControlAllowMethods,r.methods.join(", ")),r.allowHeaders?.length&&e.set(S.AccessControlAllowHeaders,r.allowHeaders.join(", ")),r.exposeHeaders?.length&&e.set(S.AccessControlExposeHeaders,r.exposeHeaders.join(", ")),r.credentials&&e.set(S.AccessControlAllowCredentials,"true"),r.maxAge!=null&&e.set(S.AccessControlMaxAge,String(r.maxAge)),e}function wu(r){return new Ue(r)}function bu(r){return new Ue(r,"request")}function Cn(){if(typeof crypto>"u"||typeof crypto.getRandomValues!="function")throw new Error("generateIdempotencyKey: no CSPRNG available in this runtime \u2014 crypto.getRandomValues is required");let r=new Uint8Array(16);crypto.getRandomValues(r),r[6]=(r[6]??0)&15|64,r[8]=(r[8]??0)&63|128;let e=[];for(let t of r)e.push(t.toString(16).padStart(2,"0"));return[e.slice(0,4).join(""),e.slice(4,6).join(""),e.slice(6,8).join(""),e.slice(8,10).join(""),e.slice(10,16).join("")].join("-")}function vn(r,e=255){return typeof r!="string"||r.length===0||r.length>e?!1:/^[\x21-\x7e]+$/.test(r)}function xu(r){return new Ue(r,"response")}function _u(r){return new Ue(r,"immutable")}var $e,S,mr,gr,ot,mo,Gc,z,yo,gn,yn,wn,wo,bo,xe,cu,uu,lu,Ue,Ae=V(()=>{"use strict";U();S={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",IdempotencyKey:"idempotency-key",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"};mr=ke,gr=me,ot=new Set(["set-cookie","www-authenticate","proxy-authenticate"]),mo=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"]),Gc=new Set(["set-cookie","set-cookie2"]),xe=class{constructor(e,t="none"){Ks(this,z);f(this,"map",new Map);f(this,"guard");this.guard=t,e!=null&&oe(this,z,yo).call(this,e)}append(e,t){oe(this,z,wn).call(this,e);let n=oe(this,z,gn).call(this,e),s=oe(this,z,yn).call(this,t),o=this.map.get(n);o?o.values.push(s):this.map.set(n,{name:e,values:[s]})}delete(e){oe(this,z,bo).call(this,e),this.map.delete(e.toLowerCase())}get(e){let t=this.map.get(e.toLowerCase());return t?ot.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){oe(this,z,wo).call(this,e);let n=oe(this,z,gn).call(this,e),s=oe(this,z,yn).call(this,t);this.map.set(n,{name:e,values:[s]})}forEach(e,t){for(let[n,s]of this.map){let o=ot.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(ot.has(e))for(let n of t.values)yield n;else yield t.values.join(", ")}*entries(){for(let[e,t]of this.map)if(ot.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]=ot.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
|
+
`)}clone(e){return new $e(this,e??this.guard)}freeze(){return this.clone("immutable")}merge(e,t={}){let n=e instanceof $e?e:new $e(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 $e;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 $e;for(let[n,s]of e.map){let o=this.get(n),i=ot.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}};z=new WeakSet,yo=function(e){if(e instanceof $e){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))},gn=function(e){if(!mr(e))throw new TypeError(`Invalid header name: "${e}"`);return e.toLowerCase()},yn=function(e){let t=e.trim();if(!gr(t))throw new TypeError(`Invalid header value for: "${t}"`);return t},wn=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&mo.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`);if(this.guard==="response"&&Gc.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for response guard`)},wo=function(e){oe(this,z,wn).call(this,e)},bo=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&mo.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`)};$e=xe;cu=/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} GMT$/,uu=/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), \d{2}-(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{2,4} \d{2}:\d{2}:\d{2} GMT$/,lu=/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [ \d]\d \d{2}:\d{2}:\d{2} \d{4}$/;Ue=class extends xe{get contentType(){let e=this.get(S.ContentType);return e?Sn(e):null}set contentType(e){if(e===null){this.delete(S.ContentType);return}if(typeof e=="string"){this.set(S.ContentType,e);return}this.set(S.ContentType,xo(e))}get contentLength(){let e=this.get(S.ContentLength);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}set contentLength(e){if(e===null){this.delete(S.ContentLength);return}this.set(S.ContentLength,String(e))}get contentDisposition(){let e=this.get(S.ContentDisposition);return e?_o(e):null}set contentDisposition(e){if(e===null){this.delete(S.ContentDisposition);return}if(typeof e=="string"){this.set(S.ContentDisposition,e);return}this.set(S.ContentDisposition,So(e))}get cacheControl(){let e=this.get(S.CacheControl);return e?To(e):null}set cacheControl(e){if(e===null){this.delete(S.CacheControl);return}if(typeof e=="string"){this.set(S.CacheControl,e);return}this.set(S.CacheControl,Eo(e))}get authorization(){let e=this.get(S.Authorization);return e?bn(e):null}set authorization(e){if(e===null){this.delete(S.Authorization);return}this.set(S.Authorization,e)}get accept(){return Tn(this.get(S.Accept)??"")}get acceptEncoding(){return Ro(this.get(S.AcceptEncoding)??"")}get acceptLanguage(){return ko(this.get(S.AcceptLanguage)??"")}get range(){let e=this.get(S.Range);return e?Ao(e):null}get contentRange(){let e=this.get(S.ContentRange);return e?Co(e):null}get etag(){return this.get(S.ETag)}set etag(e){if(e===null){this.delete(S.ETag);return}let t=e.startsWith('"')||e.startsWith('W/"')?e:`"${e}"`;this.set(S.ETag,t)}get links(){let e=this.get(S.Link);return e?_n(e):[]}get retryAfter(){let e=this.get(S.RetryAfter);return e?wr(e):null}get hsts(){let e=this.get(S.StrictTransportSecurity);return e?Lo(e):null}set hsts(e){if(e===null){this.delete(S.StrictTransportSecurity);return}this.set(S.StrictTransportSecurity,kn(e))}get csp(){let e=this.get(S.ContentSecurityPolicy);return e?Io(e):null}set csp(e){if(e===null){this.delete(S.ContentSecurityPolicy);return}if(typeof e=="string"){this.set(S.ContentSecurityPolicy,e);return}this.set(S.ContentSecurityPolicy,An(e))}get serverTiming(){let e=this.get(S.ServerTiming);return e?Oo(e):[]}get clientIP(){return Po(this)}get forwarded(){return En(this)}get host(){return this.get(S.Host)}get origin(){return this.get(S.Origin)}get userAgent(){return this.get(S.UserAgent)}get location(){return this.get(S.Location)}get date(){let e=this.get(S.Date);if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get age(){let e=this.get(S.Age);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get vary(){let e=this.get(S.Vary);return e?e.split(",").map(t=>t.trim().toLowerCase()):[]}get xRequestID(){return this.get(S.XRequestID)}get xCorrelationID(){return this.get(S.XCorrelationID)}get xPoweredBy(){return this.get(S.XPoweredBy)}get xRequestedWith(){return this.get(S.XRequestedWith)}get xRateLimitLimit(){let e=this.get(S.XRateLimitLimit);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitRemaining(){let e=this.get(S.XRateLimitRemaining);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitReset(){let e=this.get(S.XRateLimitReset);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get secFetchSite(){return this.get(S.SecFetchSite)}get secFetchMode(){return this.get(S.SecFetchMode)}get secFetchUser(){return this.get(S.SecFetchUser)}get secFetchDest(){return this.get(S.SecFetchDest)}get earlyData(){let e=this.get(S.EarlyData);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get priority(){return this.get(S.Priority)}get allow(){return this.get(S.Allow)}get server(){return this.get(S.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(S.Link);return e?_n(e)[0]??null:null}get altSvc(){let e=this.get(S.AltSvc);return e?Mo(e):[]}get wwwAuthenticate(){let e=this.get("www-authenticate");return e?xn(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(S.ProxyAuthenticate);return e?xn(e):null}set proxyAuthenticate(e){if(e===null){this.delete(S.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(S.ProxyAuthenticate,t)}get proxyAuthorization(){let e=this.get(S.ProxyAuthorization);return e?bn(e):null}set proxyAuthorization(e){if(e===null){this.delete(S.ProxyAuthorization);return}if(typeof e=="string"){this.set(S.ProxyAuthorization,e);return}e.basic?this.set(S.ProxyAuthorization,`Basic ${go(`${e.basic.username}:${e.basic.password}`)}`):e.token?this.set(S.ProxyAuthorization,`${e.scheme} ${e.token}`):this.set(S.ProxyAuthorization,e.scheme)}get setCookies(){return this.getAll(S.SetCookie)}get accessControlAllowOrigin(){return this.get(S.AccessControlAllowOrigin)}get accessControlAllowMethods(){return this.get(S.AccessControlAllowMethods)}get accessControlAllowHeaders(){return this.get(S.AccessControlAllowHeaders)}get accessControlMaxAge(){let e=this.get(S.AccessControlMaxAge);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get accessControlCredentials(){let e=this.get(S.AccessControlAllowCredentials);return e==="true"?!0:e==="false"?!1:null}}});var _i={};pe(_i,{ContentTypeError:()=>je,HTTPResponseError:()=>at,ResponseCache:()=>Vn,ResponseDecodeError:()=>ct,ResponseSizeLimitError:()=>He,applyDecompression:()=>Cr,assertOk:()=>pi,assertOkJSON:()=>mi,createLimitedReader:()=>xi,decodeBody:()=>Ar,decompressStream:()=>Qn,diffResponses:()=>gi,extractServerTiming:()=>wi,isBinary:()=>ui,isJSON:()=>Rr,isText:()=>Jn,limitAction:()=>Mt,normalizeHeaders:()=>le,normalizeResponse:()=>ci,parseContentType:()=>Be,parseMultipartResponse:()=>es,readBlob:()=>Yn,readBodyWithLimit:()=>Er,readBytes:()=>vr,readFormData:()=>yi,readJSON:()=>Gn,readJSONStream:()=>di,readNDJSON:()=>Zn,readStream:()=>Nt,readText:()=>Xn});function le(r){return xt(r)}function ci(r){return{status:r.status,statusText:r.statusText,headers:le(r.headers),url:r.url,redirected:r.redirected,ok:r.ok,bodyUsed:r.bodyUsed}}function Be(r){if(!r||r.length>Zu)return null;let e=Sn(r);return e?{mediaType:e.mediaType,type:e.type,subtype:e.subtype,charset:e.charset,boundary:e.boundary}:null}function Rr(r){if(!r)return!1;let e=Be(r);return e?e.mediaType==="application/json"||e.subtype.endsWith("+json"):!1}function Jn(r){return r?Be(r)?.type==="text":!1}function ui(r){return!Jn(r)&&!Rr(r)}function kr(r,e){return e?e.aborted?Promise.resolve({done:!0,value:void 0}):new Promise((t,n)=>{let s=()=>{r.cancel("aborted").catch(()=>{}),t({done:!0,value:void 0})};e.addEventListener("abort",s,{once:!0}),r.read().then(t,n).finally(()=>{e.removeEventListener("abort",s)})}):r.read()}function li(r){return r==="truncate"||r==="abort"?r:"throw"}function Mt(r,e,t,n,s){let o=e+r.byteLength;if(o<=t.maxBytes)return{kind:"keep"};if(t.onExceedCallback?.(o,t.maxBytes),n==="throw")throw s(o,t.maxBytes);if(n==="truncate"){let i=t.maxBytes-e;return{kind:"truncate",chunk:r.slice(0,i)}}return{kind:"stop"}}async function Er(r,e,t,n){let s=li(t.onExceed),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:u}=await kr(o,n);if(c){if(n?.aborted)throw new DOMException("Response reading aborted","AbortError");break}let l;try{l=Mt(u,a,t,s,(h,d)=>new He(h,d,e))}catch(h){throw await o.cancel("size limit exceeded"),h}if(l.kind==="stop"){await o.cancel("size limit exceeded");break}if(l.kind==="truncate"){i.push(l.chunk),a+=l.chunk.byteLength;break}i.push(u),a+=u.byteLength}}finally{n?.aborted&&await o.cancel("aborted").catch(()=>{}),o.releaseLock()}return cl(i)}function el(r){if(!r)return"utf-8";let e=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(ai,e)?ai[e]:"utf-8"}function tl(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 Ar(r,e,t){let n=tl(r),s=n??el(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 ct(String(i),s,t??"<unknown url>")}}}function rl(r,e,t=1e8){let n=Qn(r,e),s=0,o=new TransformStream({transform(i,a){if(s+=i.byteLength,s>t){a.error(new He(s,t,"decompression"));return}a.enqueue(i)}});return n.pipeThrough(o)}function Qn(r,e){let t=e.trim().toLowerCase();if(t==="br")return sl(r);if(t==="zstd")return ol(r);if(typeof DecompressionStream>"u")return r;try{let n=t,s=new DecompressionStream(n);return nl(r,s)}catch{return r}}function nl(r,e){let t=r.getReader();return new ReadableStream({async start(n){let s=null;for(;;){let c=await t.read().catch(()=>({done:!0,value:void 0}));if(c.done||c.value.byteLength>0){s=c;break}}if(s.done){n.close();return}let a=new ReadableStream({start(c){c.enqueue(s.value)},async pull(c){let u=await t.read();u.done?c.close():c.enqueue(u.value)},cancel(c){t.cancel(c).catch(()=>{})}}).pipeThrough(e).getReader();(async()=>{try{for(;;){let c=await a.read();if(c.done){n.close();return}n.enqueue(c.value)}}catch(c){n.error(c)}})()},cancel(n){t.cancel(n).catch(()=>{})}})}function sl(r){return hi()?fi(r,e=>e.createBrotliDecompress()):r}function hi(){try{return typeof globalThis.process?.versions?.node=="string"}catch{return!1}}function fi(r,e){let t=!1,n=null,s=!1,o=!1;return new ReadableStream({async start(i){let a=await import("node:zlib"),c=e(a);if(n=r.getReader(),s){n.cancel().catch(()=>{}),n.releaseLock(),n=null;return}let u=l=>{t||(t=!0,i.error(l))};c.on("data",l=>{t||i.enqueue(new Uint8Array(l.buffer,l.byteOffset,l.byteLength))}),c.on("end",()=>{t||(t=!0,i.close())}),c.on("error",u);try{for(;;){let{done:l,value:h}=await n.read();if(l){if(!o){t||(t=!0,i.close()),c.destroy();break}c.end();break}h.byteLength>0&&(o=!0),c.write(h)}}catch(l){c.destroy(l instanceof Error?l:new Error(String(l))),u(l)}finally{n.releaseLock(),n=null}},cancel(){t=!0,s=!0,n?.cancel().catch(()=>{})}})}function ol(r){if(typeof DecompressionStream<"u")try{let e=DecompressionStream;return r.pipeThrough(new e("zstd"))}catch{}return hi()?fi(r,e=>{let t=e.createZstdDecompress;if(typeof t!="function")throw new Error("zstd decompression is not available in this Node.js version");return t()}):r}function Cr(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=rl(s,o);return s}async function Gn(r,e={}){let n=le(r.headers)["content-type"]??null,s=r.url;e.expectedContentType?bi(n,e.expectedContentType,s):Rr(n);let o=await ts(r,s,e),i=e.charset??Be(n??"")?.charset??null,a=Ar(o,i,s);try{return $(JSON.parse(a))}catch(c){throw new ct(`JSON parse failed: ${c}`,"json",s)}}async function Xn(r,e={}){let n=le(r.headers)["content-type"]??null,s=r.url;e.expectedContentType&&bi(n,e.expectedContentType,s);let o=await ts(r,s,e),i=e.charset??Be(n??"")?.charset??null;return Ar(o,i,s)}async function vr(r,e={}){let t=r.url;return await ts(r,t,e)}async function Yn(r,e={}){let t=await vr(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 Nt(r,e={}){if(!r.body)return new ReadableStream({start:s=>s.close()});let t=le(r.headers),n=r.body;return e.decompress!==!1&&(n=Cr(n,t)),e.sizeLimit&&(n=al(n,r.url,e.sizeLimit,e.signal)),n}async function*Zn(r,e={}){let n=Nt(r,e).getReader(),s=new TextDecoder("utf-8"),o="";try{for(;!e.signal?.aborted;){let{done:i,value:a}=await kr(n,e.signal);if(i){let u=o.trim();if(u)try{yield $(JSON.parse(u))}catch(l){e.onParseError?.(l,u)}break}o+=s.decode(a,{stream:!0});let c=o.split(`
|
|
4
|
+
`);o=c.pop()??"";for(let u of c){let l=u.trim();if(!(!l||l.startsWith("#")))try{yield $(JSON.parse(l))}catch(h){e.onParseError?.(h,l)}}}}finally{n.releaseLock()}}async function*di(r,e={}){let n=Nt(r,e).getReader(),s=new TextDecoder("utf-8"),o=0,i="",a=-1,c=!1,u=!1,l=()=>{if(a===-1)return null;let h=i.slice(a);return a=-1,h};try{for(;!e.signal?.aborted;){let{done:h,value:d}=await kr(n,e.signal);if(h){let p=l();if(p)try{let m=$(JSON.parse(p));e.onObject?.(m),yield m}catch(m){e.onParseError?.(m,p)}break}i+=s.decode(d,{stream:!0});for(let p=0;p<i.length;p++){let m=i[p];if(c){u?u=!1:m==="\\"?u=!0:m==='"'&&(c=!1);continue}if(m==='"'){c=!0;continue}if(m==="{"||m==="[")o===0&&(a=p),o++;else if((m==="}"||m==="]")&&(o--,o===0&&a!==-1)){let g=i.slice(a,p+1);try{let w=$(JSON.parse(g));e.onObject?.(w),yield w}catch(w){e.onParseError?.(w,g)}i=i.slice(p+1),a=-1,c=!1,u=!1,p=-1}}if(i.length>1e7)throw new Error("JSON stream buffer exceeded 10MB limit")}}finally{n.releaseLock()}}async function pi(r,e={}){if(!(e.isError??(o=>o>=400))(r.status))return r;let n=le(r.headers),s=null;if(e.readBody!==!1&&r.body&&!r.bodyUsed)try{s=await r.clone().text()}catch{}throw new at(r.status,r.statusText,r.url,n,s)}async function mi(r){if(r.ok)return{response:r};let e=le(r.headers),t=null;if(r.body&&!r.bodyUsed)try{t=await r.clone().text()}catch{}throw new at(r.status,r.statusText,r.url,e,t)}async function gi(r,e){let t=le(r.headers),n=le(e.headers),s={},o={},i={};for(let[c,u]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,c)?n[c]!==u&&(s[c]=[u,n[c]]):i[c]=u;for(let[c,u]of Object.entries(n))Object.prototype.hasOwnProperty.call(t,c)||(o[c]=u);let a=!1;try{let[c,u]=await Promise.all([r.clone().text(),e.clone().text()]);a=c!==u}catch{}return{statusChanged:r.status!==e.status,headersChanged:s,headersAdded:o,headersRemoved:i,bodyChanged:a}}async function es(r){let e=r.headers.get("content-type")??"",t=Be(e);if(!t?.boundary)throw new je("multipart/*",e,r.url);let n=await r.arrayBuffer(),s=new Uint8Array(n),o=new TextEncoder().encode("--"+t.boundary),i=[],a=u=>{for(let l=u;l<=s.length-o.length;l++)if(s.subarray(l,l+o.length).every((h,d)=>h===o[d]))return l;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 u=a(c);if(u===-1)break;let l=u+o.length;l<s.length&&(s[l]===13&&s[l+1]===10||s[l]===10||s[l]===45&&s[l+1]);let h=u;h>=2&&s[h-2]===13&&s[h-1]===10?h-=2:h>=1&&s[h-1]===10&&(h-=1);let d=il(s,c,h);if(!d){c=u+o.length;continue}let p=s.subarray(c,d.headerEnd),m=s.subarray(d.bodyStart,h),g=new TextDecoder().decode(p),w={};for(let y of g.split(/\r\n|\n/)){let _=y.indexOf(":");_!==-1&&(w[y.slice(0,_).trim().toLowerCase()]=y.slice(_+1).trim())}if(i.push({headers:w,body:m}),c=u+o.length,c<s.length-1&&s[c]===45&&s[c+1]===45)break}return i}function il(r,e,t){for(let n=e;n<t;n++){if(r[n]===10&&r[n+1]===10)return{headerEnd:n,bodyStart:n+2};if(r[n]===13&&r[n+1]===10&&r[n+2]===13&&r[n+3]===10)return{headerEnd:n,bodyStart:n+4}}return null}async function yi(r){let e=await es(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 u=n.headers["content-type"]??"application/octet-stream",l=new ArrayBuffer(n.body.byteLength);new Uint8Array(l).set(n.body);let h=new File([l],c,{type:u});t.append(a,h)}else{let u=new TextDecoder().decode(n.body);t.append(a,u)}}return t}function wi(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=Yu(n.slice(1).join(";")),i=o.get("dur"),a=i!==void 0?parseFloat(i):NaN;return{name:s,duration:Number.isFinite(a)?a:null,description:o.get("desc")??null}}).filter(t=>t.name):[]}function ts(r,e,t){if(!r.body)return Promise.resolve(new Uint8Array(0));let n=le(r.headers),s=r.body;if(t.decompress!==!1&&(s=Cr(s,n)),t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");return t.sizeLimit?Er(s,e,t.sizeLimit,t.signal):Er(s,e,{maxBytes:1/0},t.signal)}function al(r,e,t,n){let s=li(t.onExceed),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:u}=await kr(a,n);if(c){if(n?.aborted){await a.cancel("aborted").catch(()=>{}),i.error(new DOMException("Response reading aborted","AbortError"));return}i.close();break}let l;try{l=Mt(u,o,t,s,(h,d)=>new He(h,d,e))}catch(h){await a.cancel("size limit exceeded"),i.error(h);return}if(l.kind!=="keep"){l.kind==="truncate"&&i.enqueue(l.chunk),i.close(),await a.cancel("size limit exceeded");return}o+=u.byteLength,i.enqueue(u)}}catch(c){i.error(c)}}})}function bi(r,e,t){if(!r)throw new je(e,"(none)",t);let n=r.split(";")[0]?.trim().toLowerCase()??"",s=e.split(";")[0]?.trim().toLowerCase()??"",o=n.split("/")[0]??"";if(!(n===s||s.indexOf("/")===-1&&o===s))throw new je(e,r,t)}function cl(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 xi(r,e="throw"){let t={maxBytes:r,onExceed:e};return{json:(n,s)=>Gn(n,{sizeLimit:t,...s}),text:(n,s)=>Xn(n,{sizeLimit:t,...s}),bytes:(n,s)=>vr(n,{sizeLimit:t,...s}),blob:(n,s)=>Yn(n,{sizeLimit:t,...s}),stream:(n,s)=>Nt(n,{sizeLimit:t,...s}),ndjson:(n,s)=>Zn(n,{sizeLimit:t,...s})}}var Yu,at,He,je,ct,Zu,ai,Vn,Dt=V(()=>{"use strict";Ae();U();Yu=re,at=class extends Error{constructor(t,n,s,o,i){super(`HTTP ${t} ${n} \u2014 ${s}`);f(this,"code","EHTTPRESPONSE");f(this,"status");f(this,"statusText");f(this,"url");f(this,"headers");f(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&&this.status<600}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}},He=class extends Error{constructor(t,n,s){super(`Response size limit exceeded: read ${t} bytes, limit is ${n} bytes (${s})`);f(this,"code","ESIZELIMIT");f(this,"bytesRead");f(this,"limit");f(this,"url");this.name="ResponseSizeLimitError",this.bytesRead=t,this.limit=n,this.url=s}},je=class extends Error{constructor(t,n,s){super(`Expected content-type "${t}", got "${n}" (${s})`);f(this,"code","ECONTENTTYPE");f(this,"expected");f(this,"received");f(this,"url");this.name="ContentTypeError",this.expected=t,this.received=n,this.url=s}},ct=class extends Error{constructor(t,n,s){super(`Failed to decode response as ${n} (${s}): ${t}`);f(this,"code","EDECODE");f(this,"charset");f(this,"url");this.name="ResponseDecodeError",this.charset=n,this.url=s}};Zu=8192;ai={"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"};Vn=class{constructor(e={ttlMs:6e4}){f(this,"cache",new Map);f(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 Ti={};pe(Ti,{connectThroughProxy:()=>pl});function Si(r){let e=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;return e.includes(":")||/^\d+(\.\d+)*$/.test(e)}function hl(r){return/^socks5h?:/i.test(r)}function fl(r){if(r.username===void 0)return;let e=`${r.username}:${r.password??""}`,t=new TextEncoder().encode(e),n="";for(let o of t)n+=String.fromCharCode(o);return`Basic ${typeof globalThis.btoa=="function"?globalThis.btoa(n):Buffer.from(t).toString("base64")}`}function dl(r){let e=r.split(`\r
|
|
5
|
+
`,1)[0]??"",t=/^HTTP\/1\.[01] (\d{3})(?: (.*))?$/.exec(e);return t?{status:Number(t[1]),reason:t[2]??""}:null}async function pl(r,e,t={}){let n=t.request!==void 0?{request:t.request}:{};if(hl(r.url))throw new x(`proxy url "${r.url}" is a SOCKS proxy, which needs a different mechanism. Use createSocks5Tunnel() from kinetex/socks5 and supply your own fetch over the tunnel.`,"EVALIDATION",n);let s;try{s=new URL(r.url)}catch(w){throw new x(`proxy url "${r.url}" is not a valid URL`,"EVALIDATION",{...n,cause:w})}if(s.protocol!=="http:"&&s.protocol!=="https:")throw new x(`proxy url scheme "${s.protocol}" is not supported; use http:, https:, socks5: or socks5h:`,"EVALIDATION",n);let o=await import("node:net"),i=await import("node:tls"),a=s.port?Number(s.port):s.protocol==="https:"?443:80,c=e.port?Number(e.port):e.protocol==="https:"?443:80,u=`${e.hostname}:${c}`,l=t.connectTimeoutMs??ul,h=s.protocol==="https:"?await gl(i,{host:s.hostname,port:a,servername:s.hostname,...t.ca!==void 0?{ca:t.ca}:{}},l,t.signal,n,`proxy ${s.host}`):await ml(o,{host:s.hostname,port:a},l,t.signal,n,`proxy ${s.host}`),d=fl(r),p=[`CONNECT ${u} HTTP/1.1`,`Host: ${u}`,"Proxy-Connection: Keep-Alive",...d!==void 0?[`Proxy-Authorization: ${d}`]:[],"",""];h.write(p.join(`\r
|
|
6
|
+
`));let m="",g=await new Promise(w=>{let y=()=>{for(;;){let j=h.read();if(j===null)return;m+=j.toString("latin1")}},_=()=>{y();let j=m.indexOf(`\r
|
|
7
|
+
\r
|
|
8
|
+
`);if(j===-1){m.length>ll&&(P(),w({ok:!1,err:new x("Proxy sent an oversized CONNECT response","EPROXY",n)}));return}P();let v=dl(m.slice(0,j));if(!v){w({ok:!1,err:new x(`Proxy returned a malformed CONNECT response: ${JSON.stringify(m.slice(0,j).split(`\r
|
|
9
|
+
`,1)[0]??"")}`,"EPROXY",n)});return}if(v.status>=200&&v.status<300){let M=m.slice(j+4);M.length>0&&h.unshift(Buffer.from(M,"latin1")),w({ok:!0});return}if(v.status===407){w({ok:!1,err:new x("Proxy requires authentication (407). Set `username`/`password` on the proxy config, or embed them in the proxy URL.","EPROXY",n)});return}w({ok:!1,err:new x(`Proxy refused CONNECT to ${u}: ${v.status} ${v.reason}`.trim(),"EPROXY",n)})},b=j=>{P(),w({ok:!1,err:new x(`Proxy connection failed: ${j.message}`,"ENETWORK",{...n,cause:j})})},E=()=>{P(),w({ok:!1,err:new x(`Proxy closed the connection before answering CONNECT for ${u}`,"EPROXY",n)})},A=()=>{P(),h.destroy(),w({ok:!1,err:new x(`Proxy did not respond to CONNECT for ${u} within ${l}ms`,"ETIMEOUT",n)})},C=()=>{P(),h.destroy(),w({ok:!1,err:new x("Proxy connection aborted","EABORT",n)})},T=setTimeout(A,l);typeof T.unref=="function"&&T.unref();function P(){clearTimeout(T),h.off("readable",_),h.off("error",b),h.off("end",E),h.off("close",E),h.off("timeout",A),t.signal?.removeEventListener("abort",C)}h.on("readable",_),h.once("error",b),h.once("end",E),h.once("close",E),h.setTimeout(l,A),t.signal?.addEventListener("abort",C,{once:!0}),y()});if(!g.ok)throw h.destroy(),g.err;return e.protocol!=="https:"?(h.setTimeout(0),h):await new Promise((w,y)=>{let _=()=>{A(),h.destroy(),y(new x(`TLS handshake through proxy to ${e.hostname} did not complete within ${l}ms`,"ETIMEOUT",n))},b=()=>{A(),h.destroy(),y(new x("Proxy connection aborted","EABORT",n))},E=setTimeout(_,l);typeof E.unref=="function"&&E.unref(),t.signal?.addEventListener("abort",b,{once:!0});function A(){clearTimeout(E),t.signal?.removeEventListener("abort",b)}let C=t.servername??e.hostname,T=i.connect({socket:h,...C!==void 0&&!Si(C)?{servername:C}:{},...t.ca!==void 0?{ca:t.ca}:{}},()=>{A(),h.setTimeout(0),w(T)});T.once("error",P=>{A(),h.destroy(),y(new x(`TLS handshake through proxy failed for ${e.hostname}: ${P.message}`,"ENETWORK",{...n,cause:P}))})})}async function ml(r,e,t,n,s,o){return await new Promise((i,a)=>{let c=r.connect({host:e.host,port:e.port}),u=p=>{d(),a(new x(`Cannot reach ${o}: ${p.message}`,"ENETWORK",{...s,cause:p}))},l=setTimeout(()=>{d(),c.destroy(),a(new x(`Connecting to ${o} timed out`,"ETIMEOUT",s))},t);typeof l.unref=="function"&&l.unref();let h=()=>{d(),c.destroy(),a(new x("Proxy connection aborted","EABORT",s))};function d(){clearTimeout(l),c.off("error",u),n?.removeEventListener("abort",h)}c.once("error",u),c.once("connect",()=>{d(),i(c)}),n?.aborted?h():n?.addEventListener("abort",h,{once:!0})})}async function gl(r,e,t,n,s,o){return await new Promise((i,a)=>{let c=r.connect({host:e.host,port:e.port,...Si(e.servername)?{}:{servername:e.servername},...e.ca!==void 0?{ca:e.ca}:{}},()=>{d(),i(c)}),u=p=>{d(),a(new x(`Cannot reach ${o}: ${p.message}`,"ENETWORK",{...s,cause:p}))},l=setTimeout(()=>{d(),c.destroy(),a(new x(`Connecting to ${o} timed out`,"ETIMEOUT",s))},t);typeof l.unref=="function"&&l.unref();let h=()=>{d(),c.destroy(),a(new x("Proxy connection aborted","EABORT",s))};function d(){clearTimeout(l),c.off("error",u),n?.removeEventListener("abort",h)}c.once("error",u),n?.aborted?h():n?.addEventListener("abort",h,{once:!0})})}var ul,ll,Ei=V(()=>{"use strict";ye();ul=3e4,ll=64*1024});var Hi={};pe(Hi,{DEFAULT_ACCEPT_ENCODING:()=>Ir,FetchTransport:()=>ut,HAS_NATIVE_FETCH:()=>Pi,HTTP_STATUS_TEXTS:()=>Ui,IS_NODE:()=>ze,NodeHTTP2Transport:()=>$t,RUNTIME:()=>ve,blockedHostError:()=>Oi,createPinnedLookup:()=>Mi,createTransport:()=>Or,decompressBodyStream:()=>Nr,detectRuntime:()=>ns,encodeMultipart:()=>jt,filterSafeAddresses:()=>ss,getEffectiveRuntime:()=>vi,normalizeHeaders:()=>Ni,parseBody:()=>Ht,readRawBody:()=>Mr,sendWithTimeout:()=>Ut,setRuntime:()=>Ci});import{lookup as Ii}from"node:dns";import{isIP as yl}from"node:net";function ns(){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":Lr.process?.versions?.node!==void 0?"node":typeof globalThis.fetch=="function"?"edge":"unknown"}function Ci(r){if(r!==null&&!Ri.includes(r))throw new TypeError(`setRuntime: unknown runtime ${JSON.stringify(r)}. Expected one of: ${Ri.join(", ")}`);Ai=r}function vi(){return Ai??ve}function Li(){try{return globalThis.process?.env?.NODE_ENV==="production"}catch{return!1}}function Or(r,e=!0,t,n){let s=r!==void 0||n?.dispatcher!==void 0;return ze&&e&&s&&(Li()||console.warn(r!==void 0?'[kinetex] httpVersion: "HTTP/2" is ignored when a custom `fetch` is configured \u2014 NodeHTTP2Transport cannot use a custom fetch, so the request goes through FetchTransport (HTTP/1.1 semantics). Drop the `fetch` option to use HTTP/2.':'[kinetex] httpVersion: "HTTP/2" is ignored when a `dispatcher` is configured \u2014 NodeHTTP2Transport talks to node:http2 directly and cannot use a fetch dispatcher, so the request goes through FetchTransport (HTTP/1.1 semantics). Drop the `dispatcher` option to use HTTP/2.')),ze&&e&&!s?new $t({...t?.sessionTTLMs!==void 0?{sessionTTLMs:t.sessionTTLMs}:{},...t?.pingIntervalMs!==void 0?{pingIntervalMs:t.pingIntervalMs}:{},...t?.maxSessions!==void 0?{maxSessions:t.maxSessions}:{},...t?.http1KeepAlive!==void 0?{http1KeepAlive:t.http1KeepAlive}:{},...t?.http1MaxSockets!==void 0?{http1MaxSockets:t.http1MaxSockets}:{},...t?.connectTimeoutMs!==void 0?{connectTimeoutMs:t.connectTimeoutMs}:{},...t?.requestTimeoutMs!==void 0?{requestTimeoutMs:t.requestTimeoutMs}:{},...n?.strict!==void 0?{strict:n.strict}:{},...n?.allowPrivateNetwork!==void 0?{allowPrivateNetwork:n.allowPrivateNetwork}:{},...n?.onDroppedHeader!==void 0?{onDroppedHeader:n.onDroppedHeader}:{},...n?.ca!==void 0?{ca:n.ca}:{},...n?.proxy!==void 0?{proxy:n.proxy}:{}}):new ut({fetchFn:r??globalThis.fetch,...n?.strict!==void 0?{strict:n.strict}:{},...n?.onDroppedHeader!==void 0?{onDroppedHeader:n.onDroppedHeader}:{},...n?.dispatcher!==void 0?{dispatcher:n.dispatcher}:{},...n?.allowPrivateNetwork!==void 0?{allowPrivateNetwork:n.allowPrivateNetwork}:{}})}async function Ut(r,e,t){if(t<=0)return r.send(e);let n=new AbortController,s=setTimeout(()=>{n.abort(new te(t,e))},t),o=on(e.signal,n.signal)??null,i={...e,signal:o},a=new Promise((c,u)=>{n.signal.addEventListener("abort",()=>u(new te(t,e)),{once:!0})});try{let c=await Promise.race([r.send(i),a]);if(clearTimeout(s),n.signal.aborted)throw new te(t,e);return c}catch(c){throw clearTimeout(s),n.signal.aborted&&!(c instanceof te)?new te(t,e):c}}async function Mr(r,e,t,n){if(!r)return new Uint8Array(0);let s=r.getReader(),o=[],i=0,a,c=new Promise((l,h)=>{a=h}),u=()=>{s.cancel("aborted").catch(()=>{}),a(new x("Response reading aborted","EABORT"))};if(n?.aborted)throw s.cancel("aborted").catch(()=>{}),new x("Response reading aborted","EABORT");n?.addEventListener("abort",u,{once:!0});try{for(;;){let l=await Promise.race([s.read().catch(p=>{throw s.cancel("read error").catch(()=>{}),p}),c]),{done:h,value:d}=l;if(h)break;if(e>0)try{Mt(d,i,{maxBytes:e},"throw",(p,m)=>new Et(p,m))}catch(p){throw await s.cancel("size limit exceeded"),p}o.push(d),i+=d.byteLength}}catch(l){throw s.cancel("error during read").catch(()=>{}),l}finally{n?.removeEventListener("abort",u),s.releaseLock()}return cr(o)}function Ht(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,u;try{let l=Re(a,{maxStringLength:1e7,maxDepth:100,maxArrayLength:1e5});if(l.success&&l.value!==void 0)c=l.value;else if(!l.success){let h=new Error(`JSON body rejected: ${l.message??"parse failed"} \u2014 falling back to raw text`);Object.assign(h,{code:l.error??"EPARSE"}),u=h}}catch(l){u=l instanceof Error?l:new Error(String(l))}if(c!==void 0)return c;if(n)try{n(r,u??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 ss(r){return r.filter(e=>e.family!==0&&!Qs(e.address))}function Oi(r,e){return new x(`URL "${r}" resolved only to blocked addresses (${e.map(t=>t.address).join(", ")||"none"})`,"EBLOCKEDHOST")}function Mi(){return(r,e,t)=>{let n=i=>{t(i)},s=e.all===!0,o={...e,all:!0};Ii(r,o,(i,a)=>{if(i){n(i);return}let c=ss(a??[]);if(c.length===0){let l=(a??[]).map(d=>d.address).join(", ")||"no addresses",h=new Error(`Refusing to connect to ${r}: it resolves only to a blocked address (${l})`);h.code="EBLOCKEDHOST",n(h);return}if(s){t(null,c);return}let u=c[0];t(null,u.address,u.family)})}}function Ni(r){return xt(r)}function wl(r){let e=r.trim().toLowerCase();return e==="2"||e==="2.0"||e==="h2"||e==="http/2"||e==="http/2.0"?"HTTP/2":e==="1"||e==="1.0"||e==="http/1"||e==="http/1.0"?"HTTP/1.0":e==="1.1"||e==="http/1.1"?"HTTP/1.1":null}function bl(r,e){let n=r.httpVersion;if(typeof n=="string"){let o=wl(n);if(o)return o}let s=r.headers.get("alt-svc");if(s){let o=s.includes('h3="')||s.includes("h3-29=")||s.includes("h3-32=");if(s.includes('h2="')||o)return"HTTP/2"}return"HTTP/1.1"}function xl(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 Di(r){return new ReadableStream({start(e){let t=!1,n=!1;r.on("data",s=>{if(s instanceof Uint8Array)e.enqueue(s);else if(Lr.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 $i(r,e){r.write(e)||await new Promise(n=>r.once("drain",n))}async function Sl(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 $i(r,s)}}else if(e instanceof Uint8Array||e instanceof ArrayBuffer)r.end(Lr.Buffer?new Uint8Array(e):e);else if(typeof e=="string")r.end(e);else{let{bytes:t}=await Pr(e);r.end(t)}}async function Tl(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 $i(r,s)}}else if(e instanceof Uint8Array||e instanceof ArrayBuffer)r.end(Lr.Buffer?new Uint8Array(e):e);else if(typeof e=="string")r.end(e);else{let{bytes:t}=await Pr(e);r.end(t)}}async function Pr(r){if(typeof URLSearchParams<"u"&&r instanceof URLSearchParams)return{bytes:new TextEncoder().encode(r.toString())};if(typeof Blob<"u"&&r instanceof Blob)return{bytes:new Uint8Array(await r.arrayBuffer())};if(typeof FormData<"u"&&r instanceof FormData){let{bytes:e,boundary:t}=await jt(r);return{bytes:e,contentType:`multipart/form-data; boundary=${t}`}}return{bytes:new Uint8Array(0)}}function rs(r){return r.replace(/[\r\n"\\]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}async function jt(r,e){let t=e??`----kinetexFormBoundary${ge(24)}`,n=new TextEncoder,s=[],o=i=>{s.push(n.encode(i))};for(let[i,a]of r.entries()){if(/[\r\n"]/.test(i))throw new x(`Cannot send a multipart field whose name contains CR, LF or a quote: ${JSON.stringify(i)}`,"EVALIDATION");if(o(`--${t}\r
|
|
10
|
+
`),typeof a=="string"){o(`Content-Disposition: form-data; name="${rs(i)}"\r
|
|
11
|
+
\r
|
|
12
|
+
`),o(a),o(`\r
|
|
13
|
+
`);continue}o(`Content-Disposition: form-data; name="${rs(i)}"; filename="${rs(a.name||"blob")}"\r
|
|
14
|
+
Content-Type: ${a.type||"application/octet-stream"}\r
|
|
15
|
+
\r
|
|
16
|
+
`),s.push(new Uint8Array(await a.arrayBuffer())),o(`\r
|
|
17
|
+
`)}return o(`--${t}--\r
|
|
18
|
+
`),{bytes:cr(s),boundary:t}}async function Nr(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","zstd","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(()=>(Dt(),_i));return i(r,e)}var Lr,ve,Ai,Ri,ze,Pi,Ir,ut,$t,ki,_l,Ui,lt=V(()=>{"use strict";ye();U();Ae();U();Dt();Lr=globalThis;ve=ns(),Ai=null,Ri=["node","deno","bun","browser","cloudflare-workers","edge","unknown"];ze=ve==="node",Pi=ve!=="node"||typeof globalThis.fetch=="function";Ir="gzip, deflate, br",ut=class{constructor(e=globalThis.fetch){f(this,"fetchFn");f(this,"strict");f(this,"onDroppedHeader");f(this,"dispatcher");f(this,"requestTimeoutMs");f(this,"_allowPrivateNetwork");typeof e=="function"?(this.fetchFn=e,this.strict=!1,this.onDroppedHeader=void 0,this.dispatcher=void 0,this.requestTimeoutMs=void 0,this._allowPrivateNetwork=!1):(this.fetchFn=e.fetchFn??globalThis.fetch,this.strict=e.strict??!1,this.onDroppedHeader=e.onDroppedHeader,this.dispatcher=e.dispatcher,this.requestTimeoutMs=e.requestTimeoutMs,this._allowPrivateNetwork=e.allowPrivateNetwork??!1)}async assertReachableHost(e){if(this._allowPrivateNetwork||this.fetchFn!==globalThis.fetch)return;let t;try{t=new URL(e)}catch{return}if(!t.hostname||yl(t.hostname))return;let n;try{n=await new Promise((o,i)=>{Ii(t.hostname,{all:!0},(a,c)=>a?i(a):o(c))})}catch{return}if(!(ss(n).length>0))throw Oi(e,n)}async send(e){await this.assertReachableHost(e.url);let t={};for(let[g,w]of Object.entries(e.headers??{}))if(!(typeof g!="string"||typeof w!="string")){if(!mr(g)||!gr(w)){if(this.strict)throw new x(`Invalid header dropped in strict mode: "${g}"`,"EVALIDATION",{request:e});this.onDroppedHeader?this.onDroppedHeader(g,w):Li()||console.warn(`[kinetex] Invalid header dropped: "${g}" \u2014 value may contain illegal characters. Pass strictHeaders: true to throw instead.`);continue}if(g==="__proto__"){Object.defineProperty(t,g,{value:w,writable:!0,enumerable:!0,configurable:!0});continue}t[g]=w}let n=t["accept-encoding"];n&&n.toLowerCase().replace(/\s+/g," ")===Ir&&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,ze&&typeof s.body=="object"&&s.body!==null&&"getReader"in s.body&&(s.duplex="half")),this.dispatcher!==void 0&&(s.dispatcher=this.dispatcher);let o=this.requestTimeoutMs,i=o===void 0?void 0:new AbortController,a=!1,c=()=>i?.abort();i&&e.signal&&(e.signal.aborted?i.abort():e.signal.addEventListener("abort",c,{once:!0}));let u=i&&o!==void 0?setTimeout(()=>{a=!0,i.abort()},o):void 0,l=i&&!s.signal?{...s,signal:i.signal}:s,h;try{h=await this.fetchFn(e.url,l)}catch(g){throw u!==void 0&&clearTimeout(u),i&&e.signal&&e.signal.removeEventListener("abort",c),a?new x(`HTTP/1.1 request to ${e.url} timed out after ${o}ms`,"ETIMEOUT",{request:e,cause:g}):an(g)?new x("Request was aborted","EABORT",{request:e,cause:g}):new x(g instanceof Error?g.message:"Network request failed","ENETWORK",{request:e,cause:g})}u!==void 0&&clearTimeout(u),i&&e.signal&&e.signal.removeEventListener("abort",c);let d=Ni(h.headers),p=bl(h,d),m=!0;return ve==="deno"&&(h.headers.get("content-encoding")||"").toLowerCase().includes("deflate")&&(m=!1),{status:h.status,statusText:h.statusText,headers:d,body:h.body,url:h.url||e.url,redirected:h.redirected,httpVersion:p,alreadyDecompressed:m}}},$t=class{constructor(e={}){f(this,"sessions",new Map);f(this,"sessionTTLMs");f(this,"pingIntervalMs");f(this,"maxSessions");f(this,"pingTimers",new Map);f(this,"_sessionCreating",new Map);f(this,"sessionUsage",new Map);f(this,"_strict");f(this,"_onDroppedHeader");f(this,"_ca");f(this,"_connectTimeoutMs");f(this,"_requestTimeoutMs");f(this,"_http1Fallback",null);f(this,"_allowPrivateNetwork");f(this,"_http1KeepAlive");f(this,"_http1MaxSockets");f(this,"_http1Agent",null);f(this,"_proxy");this.sessionTTLMs=e.sessionTTLMs??5*6e4,this.pingIntervalMs=e.pingIntervalMs??3e4,this.maxSessions=e.maxSessions??100,this._allowPrivateNetwork=e.allowPrivateNetwork??!1,this._http1KeepAlive=e.http1KeepAlive??!0,this._http1MaxSockets=e.http1MaxSockets??16,this._proxy=e.proxy,this._strict=e.strict??!1,this._onDroppedHeader=e.onDroppedHeader,this._ca=e.ca,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 a="",c=1/0;for(let[u,l]of this.sessionUsage.entries())l<c&&(c=l,a=u);if(a){let u=this.sessions.get(a);u&&this._evictSession(a,u.session)}}let o=null;this._proxy!==void 0&&(o=await this._createProxiedSocket(e,void 0,t));let i=await new Promise((a,c)=>{let u=n.connect(e,{rejectUnauthorized:!0,...this._allowPrivateNetwork?{}:{lookup:ki},...this._ca!==void 0?{ca:this._ca}:{},...o!==null?{createConnection:(()=>o)}:{}}),l=setTimeout(()=>{u.destroy(),c(new x(`HTTP/2 connection to ${e} timed out`,"ETIMEOUT",{request:t}))},this._connectTimeoutMs);typeof l.unref=="function"&&l.unref();let h=()=>{clearTimeout(l),u.destroy(),c(new x("Connection aborted","EABORT",{request:t}))},d=()=>t.signal?.removeEventListener("abort",h);t.signal?.addEventListener("abort",h,{once:!0}),u.once("connect",()=>{d(),clearTimeout(l),a(u)}),u.once("error",p=>{d(),clearTimeout(l),c(p)})});if(i.on("goaway",()=>{this._evictSession(e,i)}),i.on("error",()=>{this._evictSession(e,i)}),this.sessions.set(e,{session:i,createdAt:Date.now()}),this.sessionUsage.set(e,Date.now()),this.pingIntervalMs>0){let a=this.pingTimers.get(e);a&&clearInterval(a);let c=setInterval(()=>{let u=this.sessions.get(e);if(!u||u.session.destroyed||u.session.closed){this._evictSession(e,u?.session);return}u.session.ping(l=>{l&&this._evictSession(e,u.session)})},this.pingIntervalMs);typeof c=="object"&&c!==null&&"unref"in c&&c.unref(),this.pingTimers.set(e,c)}return i}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(xl(n))return this._sendHTTP1(e);throw n}}_rejectHeader(e,t,n,s){if(this._strict)throw new x(`Strict mode: header "${e}" ${n}`,"EVALIDATION",{request:s});this._onDroppedHeader?this._onDroppedHeader(e,t):typeof console<"u"&&console.warn(`[kinetex] Invalid header dropped (HTTP/2): "${e}" \u2014 ${n}. Pass strictHeaders: true to throw instead.`)}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 x("Too many HTTP/2 redirects","ENETWORK",{request:e});let u=o.origin,l=this.sessions.get(u),h=l&&Date.now()-l.createdAt>this.sessionTTLMs,d;!l||l.session.destroyed||l.session.closed||h?d=await this._getOrCreateSession(u,s,n):(d=l.session,this.sessionUsage.set(u,Date.now()));let p=s.body,m;s.body instanceof FormData&&(m=await Pr(s.body),p=m.bytes,m.contentType!==void 0&&!s.headers["content-type"]&&(s={...s,headers:{...s.headers,"content-type":m.contentType}}));let g={":method":s.method,":path":o.pathname+o.search,":scheme":"https",":authority":o.host};for(let[v,M]of Object.entries(s.headers)){if(v.startsWith(":")){this._rejectHeader(v,Array.isArray(M)?M.join(", "):String(M),"is not a valid header name",s);continue}if(v==="__proto__"){Object.defineProperty(g,v,{value:M,writable:!0,enumerable:!0,configurable:!0});continue}g[v]=M}for(let[v,M]of Object.entries(g)){if(v.startsWith(":"))continue;let q=Array.isArray(M)?M.join(", "):String(M),de=mr(v),Z=gr(q);(!de||!Z)&&(this._rejectHeader(v,q,de?"contains forbidden control characters":"is not a valid header name",s),delete g[v])}let w=!p||s.method==="GET"||s.method==="HEAD",y=d.request(g,{endStream:w});p&&!w&&Sl(y,p).catch(v=>{y.destroy(v instanceof Error?v:new Error(String(v)))});let _=s.signal,b=await new Promise((v,M)=>{let q=this._requestTimeoutMs,de=setTimeout(()=>{or(),M(new x(`HTTP/2 request to ${o} timed out after ${q}ms`,"ETIMEOUT",{request:s})),y.destroy()},q),Z=()=>{clearTimeout(de),M(new x("Request was aborted","EABORT",{request:s})),y.destroy()},or=()=>_?.removeEventListener("abort",Z);_?.addEventListener("abort",Z,{once:!0}),y.once("response",k=>{let I=Number(k[":status"]??200),L=Ui[I]??"",D={};for(let[W,B]of Object.entries(k))W.startsWith(":")||(D[W]=Array.isArray(B)?B.join(", "):B??"");if(clearTimeout(de),or(),_?.aborted){M(new x("Request was aborted","EABORT",{request:s})),y.destroy();return}if(s.redirect==="error"&&I>=300&&I<400&&D.location){M(new x(`Redirect not allowed (redirect:"error") \u2014 received ${I} to ${D.location}`,"ENETWORK",{request:s})),y.destroy();return}v({status:I,statusText:L,headers:D,body:Di(y),url:s.url,redirected:i,httpVersion:"HTTP/2",alreadyDecompressed:!1})}),y.once("error",k=>{clearTimeout(de),or(),_?.aborted?M(new x("Request was aborted","EABORT",{request:s,cause:k})):M(new x(k.message,"ENETWORK",{request:s,cause:k})),y.destroy()})});if(!(b.status>=300&&b.status<400&&!!b.headers.location&&s.redirect!=="manual"))return b;try{if(b.body){let v=b.body.getReader();for(;;){let{done:M}=await v.read();if(M)break}v.releaseLock()}}catch{}let A=b.headers.location,C,T;try{let v=new URL(A,s.url);C=v.href,T=v.protocol.toLowerCase()}catch{throw new x(`Invalid redirect Location: ${A}`,"ENETWORK",{request:e})}if(T!=="https:")throw new x(`HTTP/2 redirect to a non-HTTPS target blocked: ${T}//\u2026`,"EVALIDATION",{request:e});if(!ae(C))throw new x(`Unsafe redirect target blocked: ${C.replace(/:\/\/[^/@]*@/,"://\u2026@")}`,"EVALIDATION",{request:e});let P=b.status===301||b.status===302||b.status===303?"GET":s.method,j=P==="GET"||P==="HEAD"?null:s.body;s={...s,url:C,method:P,body:j},o=new URL(C),i=!0}throw new x("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,requestTimeoutMs:this._requestTimeoutMs};this._onDroppedHeader!==void 0&&(t.onDroppedHeader=this._onDroppedHeader),this._http1Fallback=new ut(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=e;if(e.body instanceof FormData){let i=await Pr(e.body);s={...e,body:i.bytes},i.contentType!==void 0&&!s.headers["content-type"]&&(s={...s,headers:{...s.headers,"content-type":i.contentType}})}let o={hostname:n.hostname,port:n.port||"443",path:n.pathname+n.search,method:s.method,headers:s.headers,...this._http1KeepAlive?{agent:this._getHttp1Agent(t)}:{},...this._ca!==void 0?{ca:this._ca}:{},...this._allowPrivateNetwork?{}:{lookup:ki}};return new Promise((i,a)=>{let c=t.request(o,h=>{let d={};for(let[m,g]of Object.entries(h.headers))g!==void 0&&(d[m]=Array.isArray(g)?g.join(", "):g);let p=_l(h);i({status:h.statusCode??200,statusText:h.statusMessage??"",headers:d,body:p,url:e.url,redirected:!1,httpVersion:"HTTP/1.1",alreadyDecompressed:!1})});c.once("error",h=>{a(h instanceof x?h:new x(h.message,"ENETWORK",{request:e,cause:h}))});let u=()=>{c.destroy(),a(new x("Request was aborted","EABORT",{request:e}))};e.signal?.addEventListener("abort",u,{once:!0});let l=()=>e.signal?.removeEventListener("abort",u);c.once("close",l),c.once("error",l),e.body&&e.method!=="GET"&&e.method!=="HEAD"?Tl(c,s.body).catch(a):c.end()})}_getHttp1Agent(e){return this._http1Agent||(this._http1Agent=new e.Agent({keepAlive:!0,maxSockets:this._http1MaxSockets,maxFreeSockets:this._http1MaxSockets,...this._ca!==void 0?{ca:this._ca}:{}}),this._proxy!==void 0&&(this._http1Agent.createConnection=((t,n)=>{this._createProxiedSocket(`https://${String(t.host??t.servername??"localhost")}:${String(t.port??443)}`,void 0,void 0).then(s=>n(null,s),s=>n(s))}))),this._http1Agent}async _createProxiedSocket(e,t,n){let{connectThroughProxy:s}=await Promise.resolve().then(()=>(Ei(),Ti)),o=new URL(e);return await s(this._proxy,o,{...this._ca!==void 0?{ca:this._ca}:{},connectTimeoutMs:this._connectTimeoutMs,...n?.signal!=null?{signal:n.signal}:{},...n!==void 0?{request:n}:{}})}_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(),this._http1Agent?.destroy(),this._http1Agent=null}};ki=Mi();_l=Di;Ui={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 kl(r){return r.split(Rl).filter(Boolean)}function Al(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 Cl(r){let e=r.slice(0,9).toLowerCase();return El[e]??null}function vl(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 $r(r){if(!r)return null;let e=kl(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=Al(a);if(c!==null){t.time=c;continue}}if(t.month===null&&/[a-zA-Z]/.test(a)){let c=Cl(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,""),u=+c;if(t.dayOfMonth===null&&c.length<=2&&u>=1&&u<=31){t.dayOfMonth=u;continue}if(t.year===null&&c.length>=2){let l=vl(c);if(l!==null){t.year=l;continue}}if(t.dayOfMonth===null&&u>=1&&u<=31){t.dayOfMonth=u;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 Ur(r){let e=r.replace(/\.$/,"").toLowerCase(),t=e.split(".");if(t.length===0||t.length===1&&t[0]==="")return null;if(cs.has(e))return e;let n=null,s=0;for(let o=0;o<t.length;o++){let i=t.slice(o).join(".");if(is.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(as.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 us(r){let e=r.toLowerCase().replace(/\.$/,"");if(Pe(e))return e;let t=Ur(e);if(!t)return null;let n=t.split(".").length,s=e.split(".");return s.length<=n?null:s.slice(-(n+1)).join(".")}function Le(r){let e=r.toLowerCase();if(cs.has(e)||is.has(e))return!0;let t=e.split(".");if(t.length>=2){let n=t.slice(1).join(".");if(as.has(n))return!0}return!1}function Ll(r){try{let c=r.lastIndexOf("-"),u=[],l=c>=0?r.slice(0,c):"";for(let b=0;b<l.length;b++){let E=l.charCodeAt(b);if(E>=128||E<32||E===127)return r;u.push(E)}let h=c>=0?r.slice(c+1):r,d=128,p=0,m=72,g=b=>b>=65&&b<=90?b-65:b>=97&&b<=122?b-97:b>=48&&b<=57?b-48+26:-1,w=(b,E,A)=>{b=Math.floor(b/(A?700:2)),b+=Math.floor(b/E);let C=0;for(;b>910/2;)b=Math.floor(b/35),C+=36;return C+Math.floor(36*b/(b+38))},y=0;for(;y<h.length;){let b=p,E=1;for(let A=36;;A+=36){if(y>=h.length)return r;let C=g(h.charCodeAt(y++));if(C<0)return r;p+=C*E;let T=A<=m?1:A>=m+26?26:A-m;if(C<T)break;E*=36-T}m=w(p-b,u.length+1,b===0),d+=Math.floor(p/(u.length+1)),p%=u.length+1,u.splice(p,0,d),p++}return String.fromCodePoint(...u)||r}catch{return r}}function Bt(r){if(r.includes("."))return r.split(".").map(t=>Bt(t)).join(".");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(os){let t=r+".invalid",n=os(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=Ll(r.slice(4));if(t&&t!==r.slice(4))return t}catch{}return r}function Te(r){return r.replace(/^\./,"").replace(/\.$/,"").toLowerCase().split(".").map(Bt).join(".")}function Ol(r){let e=r,t=e.lastIndexOf(":");if(t>=0&&e.slice(t+1).includes(".")){let s=e.slice(t+1);if(!Bi.test(s))return!1;let o=s.split(".").map(Number);if(!o.every(i=>i>=0&&i<=255))return!1;e=e.slice(0,t+1)+((o[0]<<8|o[1]).toString(16)+":"+(o[2]<<8|o[3]).toString(16))}if(!Il.test(e)||e.split("::").length>2)return!1;let n=s=>(s??"").split(":").filter(Boolean).length;if(e.includes("::")){let[s,o]=e.split("::");return n(s)+n(o)<=7}return n(e)===8}function Pe(r){let e=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;return Bi.test(e)?e.split(".").map(Number).every(n=>n>=0&&n<=255):Ol(e)}function zt(r,e){let t=r.toLowerCase(),n=e.toLowerCase().replace(/^\./,"");return t===n?!0:!(Pe(t)||!t.endsWith("."+n)||Pe(n)||Le(n))}function qt(r){if(!r||r===""||r[0]!=="/")return"/";let e=r.lastIndexOf("/");return e===0?"/":r.slice(0,e)}function Dr(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 Ft(r,e){let t=Dr(r),n=Dr(e);return!!(t===n||t.startsWith(n)&&(n.endsWith("/")||t[n.length]==="/"))}function Nl(r){return r===""?!0:Ml.test(r)}function ji(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 Wt(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):(o=t.slice(0,s).trim(),i=t.slice(s+1)),!Nl(o)||!ji(i)||(i=i.trim(),i.length>=2&&i[0]==='"'&&i[i.length-1]==='"'&&(i=i.slice(1,-1)),!ji(i)))return null;let a=new Map,c=n.split(";");for(let T of c){let P=T.trim();if(!P)continue;let j=P.indexOf("=");if(j===-1)a.set(P.toLowerCase(),"");else{let v=P.slice(0,j).trim().toLowerCase(),M=P.slice(j+1).trim();a.has(v)||a.set(v,M)}}let u=a.has("domain")?a.get("domain"):null,l=a.has("path")?a.get("path"):null,h=a.has("expires")?a.get("expires"):null,d=a.has("max-age")?a.get("max-age"):null,p=a.has("secure"),m=a.has("httponly"),g="Unset";if(a.has("samesite")){let T=a.get("samesite").toLowerCase();T==="strict"?g="Strict":T==="lax"?g="Lax":T==="none"&&(g="None")}let w=a.has("sameparty"),y=null;if(a.has("priority")){let T=a.get("priority").toLowerCase();T==="low"?y="Low":T==="medium"?y="Medium":T==="high"&&(y="High")}let _=a.has("partitioned"),b=null;d!==null&&d.match(/^-?\d+$/)&&(b=parseInt(d,10));let E=null;b===null&&h!==null&&(E=$r(h));let A=null;u!==null&&u!==""&&(A=Te(u));let C=null;return l!==null&&l.startsWith("/")&&(C=l),{name:o,value:i,domain:A,path:C,expires:E,maxAge:b,secure:p,httpOnly:m,sameSite:g,sameParty:w,priority:y,partitioned:_}}function zi(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 Dl(r,e){let t=e;for(;t<r.length&&(r[t]===" "||r[t]===" ");)t++;if(t>=r.length)return!0;for(;t<r.length;t++){let n=r[t];if(n===";"||n===",")return!1;if(n==="=")return!0}return!1}function ht(r){let e=[],t="",n=0,s=!1,o=!1,i=!1,a=!1,c=!1,u=()=>{i&&a&&t.trim()&&e.push(t.trim()),t="",i=!1,a=!1,c=!1};for(;n<r.length;){let l=r[n],h=r[n+1]??"";if(o){t+=l,o=!1,n++;continue}if(l==="\\"&&(s||h==='"'||h==="\\")){t+=l,o=!0,n++;continue}if(l==='"'){!s&&i?s=!0:s&&(s=!1,a=!0),t+=l,n++;continue}if(s){t+=l,n++;continue}if(l===","&&!s&&(c||a||i)){if(!Dl(r,n+1)){t+=l,n++;continue}for(u();n+1<r.length&&/\s/.test(r[n+1]);)n++;n++;continue}if(l===";"){i||(i=!0),a&&(c=!0),t+=l,n++;continue}if(l==="="&&!i){i=!0,a=!0,t+=l,n++;continue}if(i&&!a&&l!==";"&&l!==","&&(a=!0),l===" "||l===" "){t.length>0&&t.trim()!==""&&(t+=l),n++;continue}t+=l,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?ht(n):[]}let e=r,t=e["set-cookie"]??e["Set-Cookie"];return t?Array.isArray(t)?t.flatMap(n=>ht(n)):ht(t):[]}var El,Rl,Pl,is,as,cs,os,Bi,Il,Ml,Hr=V(()=>{"use strict";El={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},Rl=/[\t\x20-\x2f\x3b-\x40\x5b-\x60\x7b-\x7e]+/;Pl=["!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"],is=new Set,as=new Set,cs=new Set;for(let r of Pl)r.startsWith("!")?cs.add(r.slice(1).toLowerCase()):r.startsWith("*.")?as.add(r.slice(2).toLowerCase()):is.add(r.toLowerCase());(async()=>{try{let r=await import("node:url");typeof r.domainToUnicode=="function"&&(os=r.domainToUnicode)}catch{}})();Bi=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,Il=/^[\da-f:]+$/i;Ml=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});function jl(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 Bl(r){if(typeof r!="string")return"Unset";switch(r.trim().toLowerCase()){case"strict":return"Strict";case"lax":return"Lax";case"none":return"None";default:return"Unset"}}function zl(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 ls(r){try{return new URL(r)}catch{return null}}function hs(){return new qe}function fs(r){return qe.fromJSON(r)}var $l,Ul,Hl,qi,qe,Fi=V(()=>{"use strict";Hr();$l=4096,Ul=50,Hl=3e3,qi=400*24*60*60*1e3;qe=class r{constructor(e={}){f(this,"dm",new Map);f(this,"total",0);f(this,"cleanupTimer",null);f(this,"maxTotal");f(this,"maxPerDomain");f(this,"domainMatcherFn");this.maxTotal=e.maxTotal??Hl,this.maxPerDomain=e.maxPerDomain??Ul,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=ls(t.url);if(!n)return!1;let s=Wt(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>$l)return!1;let l,h;if(s.domain!==null&&s.domain!==""){let y=s.domain.toLowerCase();if(!(this.domainMatcherFn??zt)(i,y)||Le(y))return!1;l=y,h=!1}else l=i,h=!0;let d=s.path??qt(n.pathname),p=s.secure;if(p&&!c)return!1;let m=s.sameSite;if(m==="None"&&!p)return!1;let g;if(s.maxAge!==null){if(s.maxAge<=0)return this.removeCookie(l,d,s.name),!0;let y=Math.min(s.maxAge*1e3,qi);g=o+y}else if(s.expires!==null){if(g=s.expires,g<=o)return this.removeCookie(l,d,s.name),!0;g=Math.min(g,o+qi)}else g=1/0;let w={name:s.name,value:s.value,domain:l,path:d,expires:g,maxAge:s.maxAge,secure:p,httpOnly:s.httpOnly,sameSite:m,createdAt:o,lastAccessed:o,hostOnly:h};return jl(w,n)?(this.putCookie(w),!0):!1}getCookies(e){let t=ls(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",u=Date.now(),l=[];for(let[d,p]of this.dm)if(this.matchDomain(n,d))for(let[,m]of p)for(let[,g]of m)g.hostOnly&&n!==g.domain||g.expires!==1/0&&g.expires<u||Ft(o,g.path)&&(g.secure&&!i||g.httpOnly&&!a||zl(g.sameSite,c)&&(g.name.startsWith("__Secure-")&&!(g.secure&&i)||g.name.startsWith("__Host-")&&!(g.secure&&i&&g.path==="/"&&g.hostOnly)||Le(g.domain)||l.push(g)));l.sort((d,p)=>{let m=p.path.length-d.path.length;return m!==0?m:d.createdAt-p.createdAt});let h=Date.now();return l.map(d=>{let p={...d};return d.lastAccessed=h,p})}getCookieHeader(e){return this.getCookies(e).map(t=>t.name?`${t.name}=${t.value}`:t.value).join("; ")}getCookiesForDomain(e){let t=Te(e),n=[],s=Date.now();for(let[o,i]of this.dm)if(o===t||o.endsWith("."+t)||t.endsWith("."+o))for(let[,a]of i)for(let[,c]of a)c.expires!==1/0&&c.expires<s||c.hostOnly&&c.domain!==t||Le(c.domain)||n.push({...c});return n}processResponseHeaders(e,t){for(let n of Kt(e))this.setCookie(n,t)}removeCookie(e,t,n){let s=Te(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=Te(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=ls(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:Bl(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=Te(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,o=this.dm.get(t)?.get(n)?.get(s);if(o){this.dm.get(t).get(n).set(s,{...e,createdAt:o.createdAt});return}this.evictForDomain(t),this.evictGlobal();let i=this.dm.get(t);i||(i=new Map,this.dm.set(t,i));let a=i.get(n);a||(a=new Map,i.set(n,a)),a.set(s,e),this.total++}evictForDomain(e){let t=this.dm.get(e);if(!t)return;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,u]of a)s.push([i,c,u]);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){if(this.domainMatcherFn)return this.domainMatcherFn(e,t);let n=e.toLowerCase(),s=t.toLowerCase();return n===s?!0:Pe(n)?!1:n.endsWith("."+s)}}});var Wi={};pe(Wi,{CookieJar:()=>qe,canonicalizeDomainFull:()=>Te,createCookieJar:()=>hs,decodeIDNLabel:()=>Bt,defaultPath:()=>qt,domainMatch:()=>zt,extractSetCookieHeaders:()=>Kt,formatSetCookieHeader:()=>zi,getPublicSuffix:()=>Ur,getRegistrableDomain:()=>us,isIPAddress:()=>Pe,isPublicSuffix:()=>Le,loadCookieJar:()=>fs,normalizePath:()=>Dr,parseCookieDate:()=>$r,parseSetCookieHeader:()=>Wt,pathMatch:()=>Ft,splitSetCookieHeaders:()=>ht});var ds=V(()=>{"use strict";Fi();Hr()});var Gi={};pe(Gi,{BatchingTransport:()=>Qt,ConsoleTransport:()=>ft,HTTPLogger:()=>Fe,JSONTransport:()=>Jt,LogLevel:()=>Vt,MultiTransport:()=>Xt,Redactor:()=>Yt,RemoteTransport:()=>Gt,createDevelopmentLogger:()=>Qi,createLogger:()=>Vi,createProductionLogger:()=>Ji,toOTelSpan:()=>Ki});function Kl(r){let e=r.split(";",1)[0].trim().toLowerCase();return e==="application/json"||e==="text/json"||e.endsWith("+json")}function Gl(){let r=Date.now().toString(36),e=(++Ql).toString(36).padStart(4,"0"),t=Math.random().toString(36).slice(2,6);return`${r}-${e}-${t}`}function ps(r,e){if(!r||typeof r!="object"||e.length===0)return;if(Array.isArray(r)){for(let o of r)ps(o,e);return}let[t,...n]=e;if(t===void 0||t==="__proto__"||t==="constructor"||t==="prototype")return;let s=r;if(n.length===0){Object.prototype.hasOwnProperty.call(s,t)&&(s[t]="***");return}typeof s[t]=="object"&&ps(s[t],n)}function jr(r){return typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength}function Ki(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 Xl(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}:{}}}if(r!==null&&typeof r=="object"){let e=r,t={name:typeof e.name=="string"&&e.name!==""?e.name:"Error",message:typeof e.message=="string"?e.message:Zl(r)};return(typeof e.code=="string"||typeof e.code=="number")&&(t.code=String(e.code)),typeof e.stack=="string"&&(t.stack=e.stack),t}return{name:"Error",message:String(r)}}function eh(r,e){let t=new TextEncoder,n=t.encode(r).byteLength;if(n<=e)return{text:r,removed:0};let s=0,o=0;for(let i of r){let a=t.encode(i).byteLength;if(s+a>e)break;s+=a,o+=i.length}return{text:r.slice(0,o),removed:n-s}}function Vi(r){return new Fe(r)}function Ji(r){let e=[new Jt];return r.endpoint&&e.push(new Qt(new Gt(r.endpoint))),new Fe({level:r.level??"INFO",transports:[new Xt(e)],...r.context!==void 0?{context:r.context}:{}})}function Qi(r={}){return new Fe({level:r.level??"DEBUG",transports:[new ft({pretty:!0,useColors:!0,onWrite:e=>console.log(e)})],redaction:{logRequestBody:r.logBodies??!0,logResponseBody:r.logBodies??!0,maxBodyLength:2048}})}var ql,Vt,Fl,Wl,Vl,ft,Jl,Jt,Qt,Gt,Xt,Ql,Yt,Ie,Fe,Yl,Zl,Br=V(()=>{"use strict";U();ql=()=>{try{return globalThis.process?.env?.NODE_ENV}catch{return}},Vt={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},Fl=["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"],Wl=["token","api_key","apikey","access_token","refresh_token","secret","password","pass","pwd","key","auth"];Vl=["application/json","application/x-www-form-urlencoded","text/"],ft=class{constructor(e={}){f(this,"pretty");f(this,"onWrite");this.pretty=e.pretty??ql()!=="production",this.onWrite=e.onWrite??(t=>console.log(t)),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}]`}},Jl=()=>{try{return typeof globalThis.process?.stdout?.write=="function"}catch{return!1}},Jt=class{constructor(e=t=>{Jl()?globalThis.process.stdout.write(t+`
|
|
19
|
+
`):console.log(t)}){f(this,"writeLine");this.writeLine=e}write(e){this.writeLine(JSON.stringify(e))}},Qt=class{constructor(e,t={}){f(this,"inner");f(this,"options");f(this,"buffer",[]);f(this,"timer",null);this.inner=e,this.options=t}write(e){if(this.buffer.push(e),this.buffer.length>=(this.options.maxBatch??100)){this._flush();return}this.timer||(this.timer=setTimeout(()=>this._flush(),this.options.flushMs??5e3))}async flush(){this.timer&&(clearTimeout(this.timer),this.timer=null),this._flush(),this.inner.flush&&await this.inner.flush()}_flush(){if(this.timer!==null&&(clearTimeout(this.timer),this.timer=null),this.buffer.length===0)return;let e=this.buffer.splice(0);for(let t of e)this.inner.write(t)}},Gt=class{constructor(e,t={}){f(this,"endpoint");f(this,"options");f(this,"buffer",[]);f(this,"timer",null);this.endpoint=e,this.options=t}write(e){if(this.buffer.push(e),this.buffer.length>=(this.options.batchSize??50)){this._flush();return}this.timer||(this.timer=setTimeout(()=>this._flush(),this.options.flushMs??3e3))}async flush(){this.timer&&(clearTimeout(this.timer),this.timer=null),await this._flushAsync()}_flush(){this.timer!==null&&(clearTimeout(this.timer),this.timer=null),this._flushAsync().catch(this.options.onError??(e=>console.error("[logging] Flush error:",e)))}async _flushAsync(){if(this.buffer.length===0)return;let e=this.buffer.splice(0),t=this.options.fetch??globalThis.fetch;if(e.length<=10)await t(this.endpoint,{method:"POST",headers:{"content-type":"application/json",...this.options.headers},body:JSON.stringify(e)});else try{let{Readable:n}=await import("node:stream"),s=n.from([JSON.stringify(e)]);await t(this.endpoint,{method:"POST",headers:{"content-type":"application/json",...this.options.headers},body:s,duplex:"half"})}catch{await t(this.endpoint,{method:"POST",headers:{"content-type":"application/json",...this.options.headers},body:JSON.stringify(e)})}}},Xt=class{constructor(e){f(this,"transports");this.transports=e}write(e){for(let t of this.transports)try{t.write(e)}catch{}}async flush(){await Promise.allSettled(this.transports.map(e=>e.flush?.()))}},Ql=0;Yt=class{constructor(e={}){f(this,"headerSet");f(this,"paramSet");f(this,"bodyFields");f(this,"patterns");f(this,"maxBody");f(this,"logReqBody");f(this,"logResBody");f(this,"allowedTypes");let t=e.headers??Fl,n=e.queryParams??Wl;this.headerSet=new Set(t.map(s=>s.toLowerCase())),this.paramSet=new Set(n.map(s=>s.toLowerCase())),this.bodyFields=e.bodyFields??[],this.patterns=e.bodyPatterns??[],this.maxBody=e.maxBodyLength??4096,this.logReqBody=e.logRequestBody??!1,this.logResBody=e.logResponseBody??!1,this.allowedTypes=e.allowedBodyTypes??Vl}redactHeaders(e){return Xe(e,this.headerSet,"***")}redactURL(e){try{let t=new URL(e);for(let n of[...t.searchParams.keys()])this.paramSet.has(n.toLowerCase())&&t.searchParams.set(n,"***");return t.toString()}catch{return this._redactRelativeQuery(e)}}_redactRelativeQuery(e){let t=e.indexOf("?");if(t===-1)return e;let n=e.slice(0,t),s=e.slice(t+1),o=s.indexOf("#"),i=o===-1?"":s.slice(o),c=(o===-1?s:s.slice(0,o)).split("&").map(u=>{if(u==="")return u;let l=u.indexOf("="),h=l===-1?u:u.slice(0,l),d=h;try{d=decodeURIComponent(h)}catch{}return this.paramSet.has(d.toLowerCase())?`${h}=***`:u});return`${n}?${c.join("&")}${i}`}redactBody(e,t,n){if(!(n?this.logResBody:this.logReqBody)||!e)return{body:null,size:e?jr(e):null};let o=t??"";if(!this.allowedTypes.some(l=>o.startsWith(l)))return{body:`[${o||"binary"}]`,size:e?jr(e):null};let a=jr(e),c;if(e instanceof Uint8Array)try{c=new TextDecoder().decode(e)}catch{return{body:"[binary]",size:e.byteLength}}else c=e;if(Kl(o)&&this.bodyFields.length>0)try{let l=$(JSON.parse(c));for(let h of this.bodyFields)ps(l,h.split("."));c=JSON.stringify(l)}catch{}for(let l of this.patterns)c=c.replace(l,"***");if(jr(c)>this.maxBody){let l=eh(c,this.maxBody);c=`${l.text}... [truncated ${l.removed} bytes]`}return{body:c,size:a}}};Ie=class Ie{constructor(e={}){f(this,"cfg");f(this,"redactor");f(this,"level");f(this,"activeIds",new Map);this.cfg={level:e.level??"INFO",transports:e.transports??[new ft],redaction:e.redaction??{},sampleRate:e.sampleRate??1,methods:e.methods??[],statuses:e.statuses??[],excludeURLs:e.excludeURLs??[],context:e.context??{},generateId:e.generateId??Gl},this.redactor=new Yt(this.cfg.redaction),this.level=Vt[this.cfg.level]}_cleanupActiveIds(){let e=N();if(this.activeIds.size>Ie.MAX_ACTIVE_IDS){let t=Array.from(this.activeIds.entries()),n=t.slice(0,t.length-Math.floor(Ie.MAX_ACTIVE_IDS*.8));for(let[s]of n)this.activeIds.delete(s)}for(let[t,n]of this.activeIds)e-n.startMs>Ie.IDLE_TIMEOUT_MS&&this.activeIds.delete(t)}logRequest(e,t,n,s,o,i,a={}){if(!this._shouldLog("INFO",t,n))return;this.activeIds.size>500&&this._cleanupActiveIds(),this.activeIds.set(e,{startMs:N(),method:t,url:n});let c=s["content-type"]??s["Content-Type"]??null,u=this.redactor.redactBody(o,c,!1),l={type:"request",requestId:e,timestamp:new Date().toISOString(),timestampMs:Date.now(),level:"INFO",method:t.toUpperCase(),url:this.redactor.redactURL(n),headers:this.redactor.redactHeaders(s),bodySize:u.size,body:u.body,attempt:i,meta:{...this.cfg.context,...a}};this._write(l)}logResponse(e,t,n,s,o,i,a,c={}){let u=this.activeIds.get(e),l=u?N()-u.startMs:0,h=u?.method??"GET",d=u?.url??"";if(this.activeIds.delete(e),!this._shouldLog("INFO",h,d,t))return;let p=s["content-type"]??s["Content-Type"]??null,m=this.redactor.redactBody(o,p,!0),g=t>=500?"ERROR":t>=400?"WARN":"INFO",w={type:"response",requestId:e,timestamp:new Date().toISOString(),timestampMs:Date.now(),level:g,method:h.toUpperCase(),url:this.redactor.redactURL(d),status:t,statusText:n,headers:this.redactor.redactHeaders(s),bodySize:m.size,body:m.body,durationMs:Math.round(l),attempt:i,cached:a,meta:{...this.cfg.context,...c}};this._write(w)}logError(e,t,n,s,o={}){let i=this.activeIds.get(e),a=i?N()-i.startMs:0,c=i?.method??"GET",u=i?.url??"";if(this.activeIds.delete(e),!this._shouldLog("ERROR",c,u))return;let l={type:"error",requestId:e,timestamp:new Date().toISOString(),timestampMs:Date.now(),level:"ERROR",method:c.toUpperCase(),url:this.redactor.redactURL(u),error:Xl(t),status:n,durationMs:Math.round(a),attempt:s,meta:{...this.cfg.context,...o}};this._write(l)}generateRequestId(){return this.cfg.generateId()}child(e){return new Ie({...this.cfg,context:{...this.cfg.context,...e}})}async flush(){await Promise.allSettled(this.cfg.transports.map(e=>e.flush?.()))}_write(e){if(!(Vt[e.level]<this.level))for(let n of this.cfg.transports)try{let s=n.write(e);s&&typeof s.then=="function"&&s.catch(()=>{})}catch{}}_shouldLog(e,t,n,s){if(Vt[e]<this.level||this.cfg.sampleRate<1&&Math.random()>this.cfg.sampleRate||this.cfg.methods.length>0&&!this.cfg.methods.includes(t.toUpperCase())||s!==void 0&&this.cfg.statuses.length>0&&!this.cfg.statuses.includes(s))return!1;for(let o of this.cfg.excludeURLs)if(o.test(n))return!1;return!0}};f(Ie,"MAX_ACTIVE_IDS",1e4),f(Ie,"IDLE_TIMEOUT_MS",6e4);Fe=Ie;Yl="[circular]",Zl=r=>sn(r,Yl)});var ys={};pe(ys,{SSEClient:()=>dt,SSEError:()=>Ee,SSEMaxReconnectsError:()=>pt,SSEParser:()=>We,SSERouter:()=>qr,SSEServerResponse:()=>Zt,SSETransformStream:()=>zr,createJSONSSEStream:()=>Zi,createSSEResponse:()=>ea,createSSEStream:()=>Yi,jsonSSE:()=>gs,parseSSEText:()=>ta});async function*gs(r,e={}){for await(let t of r)if(!(!t.data&&t.data!==""))try{let n=$(JSON.parse(t.data,e.reviver));yield{event:t.event,data:n,id:t.id}}catch(n){e.onError?.(n,t)}}function ms(r){return r.replace(/[\r\n\u0000]/g,"")}function Yi(r){return new dt(r)}function Zi(r,e={}){return gs(new dt(r),e)}function ea(r,e={}){let t=new Zt;return(async()=>{try{await r(t)}catch(n){console.error("[sse] Generator error:",n)}t.close()})(),t.toResponse(e)}function ta(r){let e=new We,t=e.feed(r),n=e.flush();return n&&t.push(n),t}function th(r,...e){let t=e.filter(n=>!!n);return t.some(n=>n.aborted)?(r.then(void 0,()=>{}),Promise.resolve(null)):new Promise((n,s)=>{let o=()=>{i(),r.then(void 0,()=>{}),n(null)},i=()=>{for(let a of t)a.removeEventListener("abort",o)};for(let a of t)a.addEventListener("abort",o,{once:!0});r.then(a=>{i(),n(a)},a=>{i(),s(a)})})}function Xi(r,...e){let t=e.filter(n=>!!n);return t.some(n=>n.aborted)?Promise.resolve():new Promise(n=>{let s=[],i=setTimeout(()=>{clearTimeout(i);for(let a of s)a();n()},r);for(let a of t){let c=()=>{clearTimeout(i),a.removeEventListener("abort",c),n()};s.push(()=>a.removeEventListener("abort",c)),a.addEventListener("abort",c,{once:!0})}})}var We,zr,dt,qr,Zt,Ee,pt,er=V(()=>{"use strict";U();We=class{constructor(){f(this,"lines",[]);f(this,"id",null);f(this,"event","message");f(this,"data",[]);f(this,"retry",null);f(this,"buffer","")}feed(e){let t=[];this.buffer+=e;let n=this.buffer.split(/\r\n|\r|\n/);this.buffer=n.pop()??"";for(let s of n){let o=this._processLine(s);o&&t.push(o)}return t}flush(){return this.buffer&&(this._processLine(this.buffer),this.buffer=""),this.data.length>0?this._dispatch():null}_processLine(e){if(this.lines.push(e),e==="")return this.data.length===0?(this.lines=[],null):this._dispatch();if(e.startsWith(":"))return null;let t=e.indexOf(":"),n,s;switch(t===-1?(n=e,s=""):(n=e.slice(0,t),s=e.slice(t+1).replace(/^ /,"")),n){case"id":if(s.includes("\0"))break;this.id=s||null;break;case"event":this.event=s;break;case"data":this.data.push(s);break;case"retry":{/^[0-9]+$/.test(s)&&(this.retry=Number(s));break}}return null}_dispatch(){let e={id:this.id,event:this.event,data:this.data.join(`
|
|
20
|
+
`),retry:this.retry,raw:[...this.lines]};return this.lines=[],this.event="message",this.data=[],this.retry=null,e}reset(){this.lines=[],this.id=null,this.event="message",this.data=[],this.retry=null,this.buffer=""}get lastId(){return this.id}},zr=class extends TransformStream{constructor(t={}){super({transform:(n,s)=>{try{let o=typeof n=="string"?n:this.decoder.decode(n,{stream:!0}),i=this.parser.feed(o);for(let a of i)s.enqueue(a)}catch(o){t.onParseError?.(o,String(n))}},flush:n=>{let s=this.parser.flush();s&&n.enqueue(s)}});f(this,"parser",new We);f(this,"decoder",new TextDecoder("utf-8"))}},dt=class{constructor(e){f(this,"config");f(this,"health");f(this,"_closed",!1);f(this,"_streamController",null);this.config={fetch:globalThis.fetch,headers:{},signal:e.signal??void 0,lastEventId:"",reconnect:!0,reconnectDelayMs:3e3,maxReconnectDelayMs:3e4,reconnectJitter:.3,maxReconnects:0,onReconnect:()=>{},onParseError:t=>{},heartbeatTimeoutMs:0,method:"GET",body:null,validateResponse:()=>!0,...e},this.health={connected:!1,totalEvents:0,totalReconnects:0,lastEventAt:null,lastEventId:this.config.lastEventId||null,reconnectAttempt:0}}get url(){return this.config.url}get closed(){return this._closed}async*[Symbol.asyncIterator](){yield*this._stream()}async*stream(){yield*this._stream()}async*on(e){for await(let t of this._stream())t.event===e&&(yield t)}async collect(e={}){let t=[],n=0,s=e.signal;if(s?.aborted)return[];let o=()=>{this._streamController?.abort()};s?.addEventListener("abort",o);try{for await(let i of this._stream())if(t.push(i),n++,e.limit&&n>=e.limit||e.signal?.aborted)break}finally{s?.removeEventListener("abort",o)}return t}close(){this._closed=!0,this._streamController&&(this._streamController.abort(),this._streamController=null),this.health.connected=!1}destroy(){this.close(),this.health={connected:!1,totalEvents:this.health.totalEvents,totalReconnects:this.health.totalReconnects,lastEventAt:this.health.lastEventAt,lastEventId:this.health.lastEventId,reconnectAttempt:0}}get streamHealth(){return{...this.health}}async*_stream(){let e=this.config,t=e.reconnectDelayMs,n=0;this._streamController=new AbortController;let s=this._streamController.signal;for(;!this._closed&&!s.aborted;){let o=this._closed;if(o||e.signal?.aborted||this._streamController?.signal.aborted)break;let i=new We,a=null;try{let u={accept:"text/event-stream","cache-control":"no-cache",...e.headers};this.health.lastEventId&&(u["last-event-id"]=this.health.lastEventId);let l={method:e.method,headers:u,body:e.body??null,signal:e.signal??null};e.body!==null&&e.body!==void 0&&(l.duplex="half");let h=await e.fetch(e.url,l),d=e.validateResponse(h);if(d!==!0){let _=typeof d=="string"?d:`SSE server returned ${h.status}`;throw new Ee(_,h.status,h)}if(!h.ok)throw new Ee(`SSE server error: ${h.status}`,h.status,h);if(!h.body)throw new Ee("SSE response has no body",h.status,h);let p=h.headers.get("content-type")??"";if(!p.startsWith("text/event-stream"))throw new Ee(`Expected text/event-stream, got: ${p}`,h.status,h);this.health.connected=!0,n=0,t=e.reconnectDelayMs;let m=h.body.getReader(),g=new TextDecoder("utf-8"),w=()=>{a&&clearTimeout(a),e.heartbeatTimeoutMs>0&&(a=setTimeout(()=>{m.cancel("heartbeat timeout")},e.heartbeatTimeoutMs))};w();try{for(;!o&&!e.signal?.aborted;){let _=await th(m.read(),e.signal,s);if(_===null)break;let{done:b,value:E}=_;if(b)break;let A=g.decode(E,{stream:!0}),C=i.feed(A);for(let T of C)w(),T.retry!==null&&(t=Math.min(T.retry,e.maxReconnectDelayMs)),T.id!==null&&(this.health.lastEventId=T.id),this.health.totalEvents++,this.health.lastEventAt=Date.now(),yield T}}finally{a&&clearTimeout(a);try{m.cancel().catch(()=>{})}catch{}}let y=s.aborted||e.signal?.aborted?null:i.flush();y&&(this.health.totalEvents++,this.health.lastEventAt=Date.now(),yield y)}catch(u){if(this.health.connected=!1,o||u instanceof Error&&u.name==="AbortError"||e.signal?.aborted)break;if(u instanceof Ee&&u.status&&[401,403,404].includes(u.status)||!e.reconnect)throw u;if(e.maxReconnects>0&&this.health.totalReconnects>=e.maxReconnects)throw new pt(this.health.totalReconnects,e.url);n++,this.health.totalReconnects++,this.health.reconnectAttempt=n;let l=t*e.reconnectJitter*Math.random(),h=Math.min(t+l,e.maxReconnectDelayMs);if(t=Math.min(t*2,e.maxReconnectDelayMs),e.onReconnect(n,h),a&&(clearTimeout(a),a=null),await Xi(h,e.signal,s),e.signal?.aborted||s.aborted)break;i.reset();continue}if(this.health.connected=!1,!e.reconnect)break;if(e.maxReconnects>0&&this.health.totalReconnects>=e.maxReconnects)throw new pt(this.health.totalReconnects,e.url);n++,this.health.totalReconnects++,this.health.reconnectAttempt=n;let c=Math.min(t+t*e.reconnectJitter*Math.random(),e.maxReconnectDelayMs);if(t=Math.min(t*2,e.maxReconnectDelayMs),e.onReconnect(n,c),a&&(clearTimeout(a),a=null),await Xi(c,e.signal,s),e.signal?.aborted||s.aborted)break}this.health.connected=!1}};qr=class{constructor(){f(this,"handlers",new Map);f(this,"fallback",null)}on(e,t){let n=this.handlers.get(e)??[];return n.push(t),this.handlers.set(e,n),this}onJSON(e,t){return this.on(e,async(n,s)=>{let o;try{o=$(JSON.parse(n))}catch{return}await t(o,s)})}onMessage(e){return this.on("message",e)}onAny(e){return this.fallback=e,this}async dispatch(e){let t=this.handlers.get(e.event);if(t&&t.length>0)for(let n of t)await n(e.data,e);else this.fallback&&await this.fallback(e.data,e)}async consume(e){for await(let t of e)await this.dispatch(t)}};Zt=class{constructor(){f(this,"controller");f(this,"stream");f(this,"_closed",!1);let e;this.stream=new ReadableStream({start:t=>{e=t},cancel:()=>{this._closed=!0}}),this.controller=e}comment(e=""){return this._closed||this.controller.enqueue(`: ${ms(e)}
|
|
7
21
|
|
|
8
|
-
`),this}send(e,t={}){return this.sendEvent("message",e,t)}sendEvent(e,t,n={}){if(this._closed)return this;let s="";n.id!==void 0&&(s+=`id: ${n.id}
|
|
9
|
-
`),e!=="message"&&(s+=`event: ${e}
|
|
22
|
+
`),this}send(e,t={}){return this.sendEvent("message",e,t)}sendEvent(e,t,n={}){if(this._closed)return this;let s="";n.id!==void 0&&(s+=`id: ${ms(n.id)}
|
|
23
|
+
`),e!=="message"&&(s+=`event: ${ms(e)}
|
|
10
24
|
`),n.retry!==void 0&&(s+=`retry: ${n.retry}
|
|
11
|
-
`);for(let o of t.split(
|
|
12
|
-
`))s+=`data: ${o}
|
|
25
|
+
`);for(let o of t.split(/\r\n|\r|\n/))s+=`data: ${o}
|
|
13
26
|
`;return s+=`
|
|
14
27
|
`,this.controller.enqueue(s),this}sendJSON(e,t,n={}){return this.sendEvent(e,JSON.stringify(t),n)}heartbeat(){return this.comment("heartbeat")}setReconnectDelay(e){return this._closed||this.controller.enqueue(`retry: ${e}
|
|
15
28
|
|
|
16
|
-
`),this}close(){if(!this._closed){this._closed=!0;try{this.controller.close()}catch{}}}get closed(){return this._closed}toResponse(e={}){let t=new TextEncoder,n=this.stream.pipeThrough(new TransformStream({transform:(s,o)=>o.enqueue(t.encode(s))}));return new Response(n,{headers:{"content-type":"text/event-stream; charset=utf-8","cache-control":"no-cache, no-transform",connection:"keep-alive","x-accel-buffering":"no",...e}})}},
|
|
17
|
-
|
|
29
|
+
`),this}close(){if(!this._closed){this._closed=!0;try{this.controller.close()}catch{}}}get closed(){return this._closed}toResponse(e={}){let t=new TextEncoder,n=this.stream.pipeThrough(new TransformStream({transform:(s,o)=>o.enqueue(t.encode(s))}));return new Response(n,{headers:{"content-type":"text/event-stream; charset=utf-8","cache-control":"no-cache, no-transform",connection:"keep-alive","x-accel-buffering":"no",...e}})}},Ee=class extends Error{constructor(t,n,s){super(t);f(this,"status");f(this,"response");f(this,"code","ESSE");this.status=n,this.response=s,this.name="SSEError"}},pt=class extends Error{constructor(t,n){super(`SSE max reconnects (${t}) reached for ${n}`);f(this,"attempts");f(this,"url");f(this,"code","ESSEMAXRECONNECTS");this.attempts=t,this.url=n,this.name="SSEMaxReconnectsError"}}});var pa={};pe(pa,{GraphQLClient:()=>he,GraphQLClientError:()=>H,authLink:()=>ia,clearAPQCache:()=>fa,createGraphQLClient:()=>la,detectOperationType:()=>_s,errorLink:()=>aa,extractOperationName:()=>Oe,getAPQMetrics:()=>da,gql:()=>ha,loggingLink:()=>ca,retryLink:()=>ua});function Fr(r,e,t){let n=r.map(s=>s.message).join("; ");return new H(n,"EGRAPHQL",r,e,t)}function rh(r,e){return r.reduceRight((t,n)=>s=>n(s,t),e)}function _s(r){let e=r.replace(/^\s*#.*$/gm,"").trim();return/^\s*mutation\s/i.test(e)?"mutation":/^\s*subscription\s/i.test(e)?"subscription":"query"}function Oe(r){let t=r.replace(/^\s*#.*$/gm,"").trim().match(/^\s*(?:query|mutation|subscription)\s+([A-Za-z_][A-Za-z0-9_]*)/im);return t?t[1]:null}async function Wr(r,e={}){let t={"content-type":"application/json",accept:"application/json"},n=typeof r.headers=="function"?await r.headers():r.headers??{};return{...t,...n,...e}}function ih(r){let e=r.split(""),t=0,n=r.length;for(;t<n;){let s=r[t];if(s==="#"){for(;t<n&&r[t]!==`
|
|
30
|
+
`;)e[t++]=" ";continue}if((s==='"'||s==="'")&&r[t+1]===s&&r[t+2]===s){let o=s.repeat(3),i=r.indexOf(o,t+3),a=i===-1?n:i+3;for(;t<a;)e[t++]=" ";continue}if(s==='"'||s==="'"){let o=s;for(e[t]=" ",t++;t<n&&r[t]!==o&&r[t]!==`
|
|
31
|
+
`;)e[t]=" ",t++;t<n&&r[t]===o&&(e[t]=" ",t++);continue}t++}return e.join("")}function Ss(r){if(r.length>ra)throw new ee(`GraphQL query exceeds maximum length of ${ra} bytes`);let e=ih(r);for(let s of oh)if(s.test(e))throw new ee(`GraphQL query contains potentially malicious pattern: ${s}`);let t=0,n=0;for(let s=0;s<e.length;s++){let o=e[s];o==="{"?(t++,n=Math.max(n,t)):o==="}"&&t--}if(n>na)throw new ee(`GraphQL query exceeds maximum depth of ${na}`);if(t!==0)throw new ee("GraphQL query has unbalanced braces")}function xs(r,e=1e4){let t=JSON.stringify(r);if(t.length>e)throw new ee(`String value exceeds maximum length of ${e} characters`);return t}function sa(r,e){e.query&&Ss(e.query);let t=new URL(r),n=tr(e);return t.searchParams.set("query",e.query),e.operationName&&t.searchParams.set("operationName",e.operationName),e.variables&&Object.keys(e.variables).length>0&&t.searchParams.set("variables",xs(e.variables)),e.extensions&&Object.keys(e.extensions).length>0&&t.searchParams.set("extensions",xs(e.extensions)),t.toString()}function tr(r){Ss(r.query);let e={query:r.query};return r.operationName&&(e.operationName=r.operationName),r.variables&&(e.variables=r.variables),r.extensions&&(e.extensions=r.extensions),xs(e,1e5)}function ah(r,e){let t=new FormData,n=JSON.parse(tr(r)),s={};for(let o=0;o<e.length;o++){let i=e[o],a=i.path==="variables"||i.path.startsWith("variables.")?i.path:`variables.${i.path}`;s[String(o)]=[a],ch(n,a,null)}t.append("operations",JSON.stringify(n)),t.append("map",JSON.stringify(s));for(let o=0;o<e.length;o++){let i=e[o],a=i.file instanceof File?i.file.name:`file_${o}`;t.append(String(o),i.file,a)}return t}function ch(r,e,t){let n=e.split("."),s=r;for(let i=0;i<n.length-1;i++){let a=n[i];if(a==="__proto__"||a==="constructor"||a==="prototype")throw new ee(`Invalid upload path: "${e}" \u2014 reserved key "${a}"`);let u=/^(0|[1-9][0-9]*)$/.test(n[i+1])?[]:{};(!s[a]||typeof s[a]!="object")&&(s[a]=u),s=s[a]}let o=n[n.length-1];if(o==="__proto__"||o==="constructor"||o==="prototype")throw new ee(`Invalid upload path: "${e}" \u2014 reserved key "${o}"`);s[o]=t}async function oa(r,e){let t=r.headers.get("content-type")??"";if(!r.ok&&!t.includes("application/json")){let s=await r.text().catch(()=>"(unreadable)");throw new H(`HTTP ${r.status}: ${r.statusText}
|
|
32
|
+
${s}`,"ENETWORK",void 0,e,void 0,new Error(`HTTP ${r.status}`))}let n;try{n=$(await r.json())}catch(s){throw new H("Failed to parse GraphQL response as JSON","EPARSE",void 0,e,void 0,s)}return n}async function bs(r,e,t,n="none",s){let o=await Wr(e,r.headers??{}),i=_s(r.query),a=e.useGETForQueries&&i==="query",c=e.url,u=null,l={...o};if(n==="omitQuery"||n==="full"){let g=s?await s(r.query):await ce(r.query),w={...r.extensions,persistedQuery:{version:1,sha256Hash:g}},y=n==="omitQuery"?{...r,query:"",extensions:w}:{...r,extensions:w};a?c=sa(e.url,y):u=tr(y)}else a?c=sa(e.url,r):u=tr(r);a||(l["content-type"]="application/json");let h=new AbortController,d=e.timeoutMs>0?setTimeout(()=>h.abort(),e.timeoutMs):null,p=()=>h.abort();t?.addEventListener("abort",p,{once:!0});let m;try{m=await e.fetch(c,{method:a?"GET":"POST",headers:l,body:u,signal:h.signal})}catch(g){throw d&&clearTimeout(d),h.signal.aborted?new H("Request timed out","ETIMEOUT",void 0,r,void 0,g):new H(g instanceof Error?g.message:"Network error","ENETWORK",void 0,r,void 0,g)}finally{d&&clearTimeout(d),t?.removeEventListener("abort",p)}return oa(m,r)}function ia(r,e="Bearer"){return async(t,n)=>{let s=await r();if(s){let o=t.request.headers??{};t.request={...t.request,headers:{...o,authorization:`${e} ${s}`}};let i=typeof t.config.headers=="object"&&!Array.isArray(t.config.headers)?t.config.headers:{};t={...t,config:{...t.config,headers:{...i,authorization:`${e} ${s}`}}}}return n(t)}}function aa(r){return async(e,t)=>{try{return await t(e)}catch(n){if(!(n instanceof H))throw n;let s=await r(n,e,()=>t(e));if(s)return s;throw n}}}function ca(r=(e,t)=>console.log(e,t)){return async(e,t)=>{let n=Date.now();r("\u2192 GraphQL",{operation:e.request.operationName??"anonymous",url:e.config.url});try{let s=await t(e);return r("\u2190 GraphQL",{operation:e.request.operationName,durationMs:Date.now()-n,errors:s.errors}),s}catch(s){throw r("\u2717 GraphQL",{operation:e.request.operationName,durationMs:Date.now()-n,error:String(s)}),s}}}function ua(r={}){let e=r.maxRetries??3,t=r.delayMs??300;if(!Number.isInteger(e)||e<0)throw new RangeError(`retryLink: maxRetries must be a non-negative integer, got ${e}`);if(!Number.isFinite(t)||t<0)throw new RangeError(`retryLink: delayMs must be a non-negative number, got ${t}`);let n=r.shouldRetry??(s=>!(s instanceof H&&s.isGraphQLError));return async(s,o)=>{let i;for(let a=0;a<=e;a++){a>0&&await Me(t*Math.pow(2,a-1));try{return await o(s)}catch(c){if(i=c,!n(c,a))throw c}}throw i}}function la(r){return new he(r)}async function ha(r,e,t,n){return await new he({url:r,...n!==void 0?{headers:n}:{}}).query(e,t)}var H,nh,ws,sh,ra,na,oh,R,he,uh,fa,da,Kr=V(()=>{"use strict";ye();U();U();U();H=class extends Error{constructor(t,n,s,o,i,a){super(t);f(this,"graphQLErrors");f(this,"request");f(this,"response");f(this,"networkError");f(this,"code");this.graphQLErrors=s,this.request=o,this.response=i,this.networkError=a,this.name="GraphQLClientError",this.code=n}get isGraphQLError(){return!!this.graphQLErrors&&this.graphQLErrors.length>0}get isNetworkError(){return!!this.networkError}get firstErrorMessage(){return this.graphQLErrors?.[0]?.message??null}};nh=1e3,ws=1800*1e3,sh=300*1e3;ra=100*1024,na=100,oh=[/\{\s*\{/,/<\s*</,/<!--/,/<script/,/javascript:/i,/onerror\s*=/i,/eval\s*\(/i];R=class R{constructor(e){f(this,"config");f(this,"executeLink");this.config={fetch:globalThis.fetch,headers:{},useGETForQueries:!1,enableAPQ:!1,timeoutMs:3e4,retries:0,retryDelayMs:300,links:[],signal:e.signal??new AbortController().signal,onRequest:()=>{},onResponse:()=>{},onError:()=>{},...e};let t=n=>this._executeWithAPQ(n.request,n.signal??null,n.config??this.config);this.executeLink=rh(this.config.links,t)}static _ensureAPQCleanup(){R._apqCleanupTimer||(R._apqCleanupTimer=setInterval(()=>{let e=Date.now();for(let[t,n]of R.apqCache)e-n.createdAt>ws&&(R.apqCache.delete(t),R.apqHashToQuery.delete(n.hash));for(let[t,n]of R.apqHashToQuery)if(e-n.createdAt>ws){R.apqHashToQuery.delete(t);for(let[s,o]of R.apqCache)if(o.hash===t){R.apqCache.delete(s);break}}},sh),typeof R._apqCleanupTimer=="object"&&R._apqCleanupTimer!==null&&"unref"in R._apqCleanupTimer&&R._apqCleanupTimer.unref())}async _getAPQHash(e){R._ensureAPQCleanup();let t=R.apqCache.get(e);if(t){if(Date.now()-t.createdAt<=ws)return R._apqHits++,t.hash;R.apqCache.delete(e),R.apqHashToQuery.delete(t.hash)}R._apqMisses++;let n=await ce(e),s=Date.now(),o=R.apqHashToQuery.get(n);if(o&&o.query!==e&&(console.warn("[GraphQL] APQ hash collision detected"),R.apqCache.delete(o.query),R.apqHashToQuery.delete(n)),R.apqCache.size>=nh){let i="",a=1/0;for(let[c,u]of R.apqCache)u.createdAt<a&&(a=u.createdAt,i=c);if(i){let c=R.apqCache.get(i);c&&(R.apqCache.delete(i),R.apqHashToQuery.delete(c.hash))}}return R.apqCache.set(e,{hash:n,createdAt:s}),R.apqHashToQuery.set(n,{query:e,createdAt:s}),n}clearAPQCache(){R.apqCache.clear(),R.apqHashToQuery.clear(),R._apqHits=0,R._apqMisses=0,R._apqCleanupTimer&&(clearInterval(R._apqCleanupTimer),R._apqCleanupTimer=null)}getAPQMetrics(){return{size:R.apqCache.size,hits:R._apqHits,misses:R._apqMisses}}async query(e,t,n={}){let s={query:e,...t!==void 0?{variables:t}:{},...n.operationName!==void 0?{operationName:n.operationName}:Oe(e)!==null?{operationName:Oe(e)}:{},...n.extensions!==void 0?{extensions:n.extensions}:{}};return await this._execute(s,n.signal??null)}async mutate(e,t,n={}){return await this.query(e,t,n)}async upload(e,t,n,s={}){let o={query:e,variables:t,...s.operationName!==void 0?{operationName:s.operationName}:Oe(e)!==null?{operationName:Oe(e)}:{}},i=await Wr(this.config,{});delete i["content-type"];let a=ah(o,n),c=new AbortController,u=()=>c.abort();s.signal?.addEventListener("abort",u,{once:!0}),this.config.onRequest(o);let l;try{l=await this.config.fetch(this.config.url,{method:"POST",headers:i,body:a,signal:c.signal})}catch(d){let p=new H(d instanceof Error?d.message:"Upload network error","ENETWORK",void 0,o,void 0,d);throw this.config.onError(p,o),p}finally{s.signal?.removeEventListener("abort",u)}let h=await oa(l,o);if(this.config.onResponse(h,o),h.errors?.length){let d=Fr(h.errors,o,h);throw this.config.onError(d,o),d}if(h.data===void 0)throw new H("No data in upload response","ENODATA",void 0,o,h);return h.data}async batch(e,t={}){for(let l of e)Ss(l.query);let n=await Wr(this.config),s=new AbortController,o=()=>s.abort();t.signal?.addEventListener("abort",o,{once:!0});let i;try{i=await this.config.fetch(this.config.url,{method:"POST",headers:n,body:JSON.stringify(e),signal:s.signal})}catch(l){throw new H(l instanceof Error?l.message:"Batch network error","ENETWORK",void 0,e[0],void 0,l)}finally{t.signal?.removeEventListener("abort",o)}let a=i.headers.get("content-type")??"";if(!i.ok&&!a.includes("application/json")){let l=await i.text().catch(()=>"(unreadable)");throw new H(`HTTP ${i.status}: ${i.statusText}
|
|
33
|
+
${l}`,"ENETWORK",void 0,e[0],void 0,new Error(`HTTP ${i.status}`))}let c;try{c=$(await i.json())}catch(l){throw new H("Failed to parse batch response as JSON","EPARSE",void 0,e[0],void 0,l)}if(!Array.isArray(c))throw new H("Batch response must be an array of GraphQL responses","EINVALIDRESPONSE",void 0,e[0],c);let u=c;if(u.length!==e.length)throw new H(`Batch response has ${u.length} result(s) but ${e.length} request(s) were sent`,"EINVALIDRESPONSE",void 0,e[0],c);return u.map((l,h)=>{if(l.errors?.length)throw Fr(l.errors,e[h],l);if(l.data===void 0)throw new H("No data in batch response","ENODATA",void 0,e[h],l);return l.data})}async*subscribe(e,t,n={}){let s={query:e,...t!==void 0?{variables:t}:{},...n.operationName!==void 0?{operationName:n.operationName}:Oe(e)!==null?{operationName:Oe(e)}:{}},o=n.url??this.config.url,i=await Wr(this.config,{accept:"text/event-stream"}),a=tr(s),{SSEClient:c}=await Promise.resolve().then(()=>(er(),ys)),u=new c({url:o,method:"POST",headers:i,body:a,signal:n.signal??this.config.signal,reconnect:!1,fetch:this.config.fetch});for await(let l of u){if(l.event==="complete")return;if(!l.data)continue;let h;try{h=$(JSON.parse(l.data))}catch{continue}if(h.errors?.length)throw Fr(h.errors,s,h);h.data!==void 0&&(yield h.data)}}async introspect(){return await this.query(uh)}async raw(e,t){return await this._executeRaw(e,t??null)}async _execute(e,t){this.config.onRequest(e);let n=await this._executeWithRetry(e,t);if(this.config.onResponse(n,e),n.errors?.length){let s=Fr(n.errors,e,n);throw this.config.onError(s,e),s}if(n.data===void 0)throw new H("Response contained no data","ENODATA",void 0,e,n);return n.data}async _executeRaw(e,t){return await this.executeLink({request:e,config:this.config,...t!=null?{signal:t}:{}})}async _executeWithRetry(e,t){if(!Number.isInteger(this.config.retries)||this.config.retries<0)throw new RangeError(`retries must be a non-negative integer, got ${this.config.retries}`);let n;for(let s=0;s<=this.config.retries;s++){s>0&&await Me(this.config.retryDelayMs*Math.pow(2,s-1));try{return await this._executeRaw(e,t)}catch(o){if(n=o,o instanceof H&&o.isGraphQLError||t?.aborted)throw o}}throw n}async _executeWithAPQ(e,t,n=this.config){if(!n.enableAPQ)return bs(e,n,t,"none",void 0);let s=await bs(e,n,t,"omitQuery",i=>this._getAPQHash(i));return s.errors?.some(i=>i.extensions?.code==="PERSISTED_QUERY_NOT_FOUND")?bs(e,n,t,"full",i=>this._getAPQHash(i)):s}};f(R,"apqCache",new Map),f(R,"apqHashToQuery",new Map),f(R,"_apqHits",0),f(R,"_apqMisses",0),f(R,"_apqCleanupTimer",null);he=R;uh=`
|
|
18
34
|
query IntrospectionQuery {
|
|
19
35
|
__schema {
|
|
20
36
|
queryType { name }
|
|
@@ -71,16 +87,16 @@ ${s}`,"ENETWORK",void 0,e,void 0,new Error(`HTTP ${r.status}`))}let n;try{n=M(aw
|
|
|
71
87
|
}
|
|
72
88
|
}
|
|
73
89
|
}
|
|
74
|
-
`;_i=ae.prototype.clearAPQCache.bind(ae.prototype),Si=ae.prototype.getAPQMetrics.bind(ae.prototype)});var $i={};pe($i,{collectAll:()=>Ti,collectPages:()=>Ri,createCursorPaginator:()=>vi,createKeysetPaginator:()=>Mi,createLinkHeaderPaginator:()=>Ii,createOffsetPaginator:()=>Ai,createPagePaginator:()=>Ci,createRelayPaginator:()=>Pi,createTokenPaginator:()=>Li,deserializePaginationState:()=>Di,mergePaginators:()=>Ui,paginate:()=>F,paginateItems:()=>Gn,parseLinkHeaderNext:()=>Xn,prefetchPaginate:()=>Kl,serializePaginationState:()=>Oi,takeItems:()=>ki,toPaginationIterator:()=>Ni});function Fl(r,e){return{strategy:e,page:r.startPage??1,offset:r.startOffset??0,cursor:r.startCursor??null,prevCursor:null,token:r.startToken??null,done:!1,totalFetched:0}}function Wl(r,e,t,n,s,o){let i=n.getTotal?.(e)??null,a=n.perPage??null,l=i!==null&&a!==null?Math.ceil(i/a):null,c=t.page>1||t.offset>0||t.prevCursor!==null;return{items:r,total:i,page:t.page,perPage:a,totalPages:l,hasNext:o??n.hasNext(e,t),hasPrev:c,nextCursor:s?.cursor??null,prevCursor:t.prevCursor??null,raw:e}}async function*F(r,e="page"){let t=Fl(r,e),n=0;for(;!t.done&&!(r.signal?.aborted||r.maxPages&&n>=r.maxPages);){n>0&&r.delayMs&&r.delayMs>0&&await Vl(r.delayMs,r.signal);let s;try{s=await r.fetch(t)}catch(u){if(r.signal?.aborted)break;throw u}let o=r.getItems(s,t);r.transform&&(o=o.map(r.transform)),r.filter&&(o=o.filter(r.filter));let i=r.getNext?r.getNext(s,t):null,a=r.hasNext(s,t),l=Wl(o,s,t,r,i,a),c=t.cursor;if(t={...t,page:i?.page??t.page+1,offset:i?.offset??t.offset+o.length,cursor:i?.cursor??t.cursor,token:i?.token??t.token,done:!a,totalFetched:t.totalFetched+o.length,prevCursor:c},n++,r.onPage?.(l,t),yield l,!a)break}}async function*Gn(r,e="page"){for await(let t of F(r,e))for(let n of t.items)yield n}async function Ti(r,e="page"){let t=[];for await(let n of F(r,e))t.push(...n.items);return t}async function Ri(r,e="page"){let t=[];for await(let n of F(r,e))t.push(n);return t}async function ki(r,e,t="page"){let n=[];for await(let s of Gn(e,t))if(n.push(s),n.length>=r)break;return n}function Ai(r){let e=r.paramNames??{},t=e.offset??"offset",n=e.limit??"limit",s=r.fetch??globalThis.fetch;return F({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},perPage:r.limit,fetch:async o=>{let i=new URL(r.url);return i.searchParams.set(t,String(o.offset)),i.searchParams.set(n,String(r.limit)),(await s(i.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:(o,i)=>r.getItems(o),getTotal:r.getTotal??(()=>null),hasNext:(o,i)=>{let a=r.getTotal?.(o)??null;return r.hasMore?r.hasMore(o,i.totalFetched+r.limit,a):a!==null?i.offset+r.limit<a:r.getItems(o).length===r.limit},getNext:(o,i)=>({offset:i.offset+r.limit})},"offset")}function Ci(r){let e=r.paramNames??{},t=e.page??"page",n=e.perPage??"per_page",s=r.fetch??globalThis.fetch;return F({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},...r.perPage!==void 0?{perPage:r.perPage}:{},startPage:r.startPage??1,fetch:async o=>{let i=new URL(r.url);return i.searchParams.set(t,String(o.page)),i.searchParams.set(n,String(r.perPage)),(await s(i.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:o=>r.getItems(o),getTotal:r.getTotal??(()=>null),hasNext:(o,i)=>{let a=r.getTotalPages?.(o)??null;if(a!==null)return i.page<a;let l=r.getTotal?.(o)??null;return l!==null?i.page*r.perPage<l:r.getItems(o).length===r.perPage},getNext:(o,i)=>({page:i.page+1})},"page")}function vi(r){let e=r.paramName??"cursor",t=r.fetch??globalThis.fetch;return F({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},startCursor:r.startCursor??null,fetch:async n=>{let s=new URL(r.url);return n.cursor&&s.searchParams.set(e,n.cursor),(await t(s.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:n=>r.getItems(n),hasNext:n=>r.getNextCursor(n)!==null,getNext:n=>{let s=r.getNextCursor(n);return s?{cursor:s}:null}},"cursor")}function Pi(r){let e=r.first??20;return F({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},...r.transform!==void 0?{transform:r.transform}:{},...r.filter!==void 0?{filter:r.filter}:{},...r.onPage!==void 0?{onPage:r.onPage}:{},startCursor:r.startCursor??null,perPage:e,fetch:t=>r.fetch({first:e,after:t.cursor}),getItems:t=>t.edges.map(n=>n.node),getTotal:t=>t.totalCount??null,hasNext:t=>t.pageInfo.hasNextPage,getNext:t=>{let n=t.pageInfo.endCursor??null;return n?{cursor:n}:null}},"relay")}function Ii(r){let e=r.fetch??globalThis.fetch;return F({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},fetch:async t=>{let n=t.cursor??r.url,s=await e(n,{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}}),o=Xn(s.headers.get("link")??"");return{data:await s.json(),headers:s.headers,nextUrl:o}},getItems:t=>r.getItems(t.data),getTotal:t=>r.getTotal?.(t.data,t.headers)??null,hasNext:t=>t.nextUrl!==null,getNext:t=>t.nextUrl?{cursor:t.nextUrl}:null},"link-header")}function Xn(r){if(!r)return null;for(let e of r.split(",")){let t=e.match(/<([^>]+)>.*?rel=["']([^"']+)["']/);if(t&&t[2]&&t[2].split(/\s+/).includes("next"))return t[1]}return null}function Li(r){let e=r.tokenParam??"pageToken",t=r.pageSizeParam??"pageSize",n=r.fetch??globalThis.fetch;return F({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},...r.pageSize!==void 0?{perPage:r.pageSize}:{},fetch:async s=>{let o=new URL(r.url);return s.token&&o.searchParams.set(e,s.token),r.pageSize&&o.searchParams.set(t,String(r.pageSize)),(await n(o.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:s=>r.getItems(s),getTotal:r.getTotal??(()=>null),hasNext:s=>r.getNextToken(s)!==null,getNext:s=>{let o=r.getNextToken(s);return o?{token:o}:null}},"token")}function Mi(r){let e=r.pageSizeParam??"limit",t=r.fetch??globalThis.fetch;return F({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},...r.pageSize!==void 0?{perPage:r.pageSize}:{},startCursor:r.startKey??null,fetch:async n=>{let s=new URL(r.url);return n.cursor&&s.searchParams.set(r.keyParam,n.cursor),r.pageSize&&s.searchParams.set(e,String(r.pageSize)),(await t(s.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:n=>r.getItems(n),hasNext:(n,s)=>{let o=r.getItems(n);return r.hasMore?r.hasMore(o,n):r.pageSize?o.length>=r.pageSize:o.length>0},getNext:(n,s)=>{let o=r.getItems(n),i=r.getLastKey(o);return i?{cursor:i}:null}},"keyset")}async function*Kl(r,e="page",t=2){let n=[],s=F(r,e),o=!1;async function i(){if(o)return;let{value:a,done:l}=await s.next();o=l??!1,n.push(Promise.resolve(a??null))}for(let a=0;a<t+1;a++)await i();for(;n.length>0;){let a=await n.shift();if(a==null)break;await i(),yield a}}function Oi(r){return btoa(JSON.stringify(r))}function Di(r){try{return M(JSON.parse(atob(r)))}catch{throw new Error("Invalid pagination state string")}}function Vl(r,e){return new Promise(t=>{if(e?.aborted){t();return}let n=()=>{clearTimeout(s),e?.removeEventListener("abort",n),t()},s=setTimeout(()=>{e?.removeEventListener("abort",n),t()},r);e?.addEventListener("abort",n,{once:!0})})}function Ni(r){let e=r[Symbol.asyncIterator]();return{next:()=>e.next(),return:t=>e.return?.(t)??Promise.resolve({value:t,done:!0}),throw:t=>e.throw?.(t)??Promise.reject(t),[Symbol.asyncIterator](){return this}}}async function*Ui(...r){let e=r.map(n=>n[Symbol.asyncIterator]()),t=new Set(e.map((n,s)=>s));for(;t.size>0;)for(let n of[...t]){let{value:s,done:o}=await e[n].next();if(o){t.delete(n);continue}yield s}}var Rr=q(()=>{"use strict";B()});var V=class{constructor(e,t={}){f(this,"loaded",0);f(this,"total");f(this,"startMs");f(this,"lastMs");f(this,"lastLoaded",0);f(this,"smoothedRate",0);f(this,"smoothing");f(this,"_done",!1);f(this,"lastEmitMs",0);f(this,"minIntervalMs");f(this,"onProgress");this.total=e,this.startMs=zt(),this.lastMs=this.startMs,this.smoothing=t.smoothingFactor??.3,this.onProgress=t.onProgress??null;let n=t.throttleHz??10;this.minIntervalMs=n>0?1e3/n:0}update(e){this.loaded+=e;let t=this._snapshot();if(this.onProgress){let n=zt();(this.minIntervalMs===0||n-this.lastEmitMs>=this.minIntervalMs)&&(this.lastEmitMs=n,this.onProgress(t))}return t}complete(){this._done=!0;let e=this._snapshot();return this.onProgress?.(e),e}snapshot(){return this._snapshot()}get bytesLoaded(){return this.loaded}get isDone(){return this._done}_snapshot(){let e=zt(),t=e-this.startMs,n=e-this.lastMs;if(n>0){let i=(this.loaded-this.lastLoaded)/n*1e3;this.smoothedRate=this.smoothedRate===0?i:this.smoothedRate*(1-this.smoothing)+i*this.smoothing,this.lastMs=e,this.lastLoaded=this.loaded}let s=this.total!==null&&this.total>0?Math.min(100,this.loaded/this.total*100):null,o=this.total!==null&&this.smoothedRate>0?Math.max(0,(this.total-this.loaded)/this.smoothedRate*1e3):null;return{loaded:this.loaded,total:this.total,percent:this._done?this.total!==null?100:null:s,rate:this.smoothedRate,eta:this._done?0:o,elapsed:t,done:this._done}}};function Ft(r,e,t={}){let n=new V(e,t);if(!r)return n.complete(),{stream:new ReadableStream({start:c=>c.close()}),tracker:n};let s;if(r instanceof ReadableStream)s=r;else if(typeof r=="string"){let c=new TextEncoder().encode(r);s=new ReadableStream({start(u){u.enqueue(c),u.close()}})}else s=new ReadableStream({start(c){c.enqueue(r),c.close()}});let o=null,i=null,a=()=>{i&&(t.signal?.removeEventListener("abort",i),i=null)};return{stream:new ReadableStream({start(c){if(t.signal?.aborted){c.error(new DOMException("Upload aborted","AbortError"));return}o=s.getReader(),i=()=>{let u=o;o=null,u?.cancel("aborted").catch(()=>{}),n.complete(),c.error(new DOMException("Upload aborted","AbortError"))},t.signal?.addEventListener("abort",i,{once:!0})},async pull(c){if(o)try{let{done:u,value:h}=await o.read();if(u){a(),o.releaseLock(),o=null,n.complete(),c.close();return}n.update(h.byteLength),c.enqueue(h)}catch(u){a(),n.complete(),c.error(u)}},cancel(c){a();let u=o;o=null,u?.cancel(c).catch(()=>{})}}),tracker:n}}function ca(r,e={}){return Ft(r.stream(),r.size,e)}function la(r,e={}){let t=r.headers.get("content-length"),n=t?parseInt(t,10):null,s=new V(isNaN(n)?null:n,e);if(!r.body)return s.complete(),{response:r,tracker:s};let o=r.body,i=null,a=!1,l=null,c=()=>{l&&(e.signal?.removeEventListener("abort",l),l=null)},u=new ReadableStream({start(p){if(e.signal?.aborted){a=!0,p.error(new DOMException("Download aborted","AbortError"));return}i=o.getReader(),l=()=>{if(a)return;a=!0;let d=i;i=null,d?.cancel("aborted").catch(()=>{}),p.error(new DOMException("Download aborted","AbortError"))},e.signal?.addEventListener("abort",l,{once:!0})},async pull(p){if(i)try{let{done:d,value:y}=await i.read();if(d){c(),i.releaseLock(),i=null,s.complete(),p.close();return}s.update(y.byteLength),p.enqueue(y)}catch(d){c(),a||s.complete(),p.error(d)}},cancel(p){c();let d=i;i=null,d?.cancel(p).catch(()=>{})}}),h=new Response(u,{status:r.status,statusText:r.statusText,headers:r.headers});for(let p of["url","redirected","type"])try{Object.defineProperty(h,p,{value:r[p],enumerable:!0,configurable:!0})}catch{}return{response:h,tracker:s}}async function*ua(r,e,t={}){let n=new V(e,t),s=r.getReader();try{for(;;){if(t.signal?.aborted)throw new DOMException("Stream aborted","AbortError");let{done:o,value:i}=await s.read();if(o){let l=n.complete();yield{chunk:new Uint8Array(0),progress:l};break}let a=n.update(i.byteLength);yield{chunk:i,progress:a}}}finally{s.releaseLock()}}async function ha(r,e,t={}){let n=new V(e,t),s=[],o=r.getReader();if(t.signal?.aborted)throw o.cancel("aborted").catch(()=>{}),new DOMException("Stream aborted","AbortError");let i=()=>{o.cancel("aborted").catch(()=>{})};t.signal&&t.signal.addEventListener("abort",i,{once:!0});try{for(;;){let{done:u,value:h}=await o.read();if(u)break;s.push(h),n.update(h.byteLength)}}finally{o.releaseLock(),t.signal?.removeEventListener("abort",i)}n.complete();let a=s.reduce((u,h)=>u+h.byteLength,0),l=new Uint8Array(a),c=0;for(let u of s)l.set(u,c),c+=u.byteLength;return{data:l,tracker:n}}var Mr=class{constructor(e,t){f(this,"partCount");f(this,"trackers",new Map);f(this,"totals",new Map);f(this,"onOverall");this.partCount=e,this.onOverall=t??null}createPartTracker(e,t,n={}){this.totals.set(e,t);let s=new V(t,{...n,onProgress:o=>{n.onProgress?.(o),this._emit()}});return this.trackers.set(e,s),s}getOverall(){let e=[],t=0,n=0,s=0,o=!0,i=0;for(let h=0;h<this.partCount;h++){let d=this.trackers.get(h)?.snapshot()??{loaded:0,total:this.totals.get(h)??null,percent:0,rate:0,eta:null,elapsed:0,done:!1};e.push(d),t+=d.loaded,d.total!==null&&(n+=d.total),s+=d.rate,d.done||(o=!1),d.elapsed>i&&(i=d.elapsed)}let a=n>0,l=a?Math.min(100,t/n*100):null,c=a&&s>0?Math.max(0,(n-t)/s*1e3):null;return{parts:e,overall:{loaded:t,total:a?n:null,percent:l,rate:s,eta:o?0:c,elapsed:i,done:o}}}_emit(){this.onOverall&&this.onOverall(this.getOverall())}},ys=globalThis.XMLHttpRequest;function fa(r,e){return new Promise((t,n)=>{if(!ys){n(new Error("XMLHttpRequest is not available in this runtime. Use fetch() instead."));return}let s=new ys,o=new V(null,{...e.onUploadProgress!==void 0?{onProgress:e.onUploadProgress}:{},...e.throttleHz!==void 0?{throttleHz:e.throttleHz}:{},...e.smoothingFactor!==void 0?{smoothingFactor:e.smoothingFactor}:{}}),i=new V(null,{...e.onDownloadProgress!==void 0?{onProgress:e.onDownloadProgress}:{},...e.throttleHz!==void 0?{throttleHz:e.throttleHz}:{},...e.smoothingFactor!==void 0?{smoothingFactor:e.smoothingFactor}:{}});s.open(e.method??"GET",r,!0);for(let[c,u]of Object.entries(e.headers??{}))s.setRequestHeader(c,u);e.responseType&&(s.responseType=e.responseType),s.upload&&e.onUploadProgress&&(s.upload.addEventListener("loadstart",c=>{}),s.upload.addEventListener("progress",c=>{o.update(c.loaded-o.bytesLoaded)}),s.upload.addEventListener("load",()=>o.complete())),e.onDownloadProgress&&s.addEventListener("progress",c=>{i.update(c.loaded-i.bytesLoaded)});let a=()=>{s.abort(),n(new DOMException("Request aborted","AbortError"))},l=()=>e.signal?.removeEventListener("abort",a);if(e.signal?.addEventListener("abort",a,{once:!0}),e.signal?.aborted){l(),a();return}s.addEventListener("load",()=>{l(),i.complete();let c=s.getAllResponseHeaders(),u={};for(let h of c.trim().split(/[\r\n]+/)){let p=h.indexOf(": ");p!==-1&&(u[h.slice(0,p).toLowerCase()]=h.slice(p+2))}t({status:s.status,statusText:s.statusText,headers:u,body:typeof s.response=="string"?s.response:String(s.response??"")})}),s.addEventListener("error",()=>{l(),n(new TypeError("Network request failed"))}),s.addEventListener("timeout",()=>{l(),n(new TypeError("Request timed out"))}),s.addEventListener("abort",()=>{l(),n(new DOMException("Request aborted","AbortError"))}),s.send(e.body??null)})}var ws=["B","KB","MB","GB","TB"];function qt(r,e=2){if(r===0)return"0 B";let t=1024,n=Math.max(0,e),s=Math.floor(Math.log(r)/Math.log(t)),o=ws[Math.min(s,ws.length-1)];return`${parseFloat((r/Math.pow(t,s)).toFixed(n))} ${o}`}function bs(r){return`${qt(r)}/s`}function xs(r){if(!isFinite(r)||r<0)return"\u221E";let e=Math.round(r/1e3),t=Math.floor(e/3600),n=Math.floor(e%3600/60),s=e%60;return t>0?`${t}h ${n}m ${s}s`:n>0?`${n}m ${s}s`:`${s}s`}function da(r){let e=qt(r.loaded),t=r.total!==null?` / ${qt(r.total)}`:"",n=r.percent!==null?` (${r.percent.toFixed(1)}%)`:"",s=r.rate>0?` @ ${bs(r.rate)}`:"",o=r.eta!==null&&!r.done?` ETA ${xs(r.eta)}`:"";return`${e}${t}${n}${s}${o}`}function pa(r,e=10){let t=e>0?1e3/e:0,n=0;return s=>{let o=zt();(s.done||o-n>=t)&&(n=o,r(s))}}function zt(){return typeof performance<"u"?performance.now():Date.now()}var je=class{constructor(e={}){f(this,"inflight",new Map);f(this,"timeouts",new Map);f(this,"windowMs");f(this,"methods");f(this,"keyFn");f(this,"_globalSignal");f(this,"_hits",0);f(this,"_misses",0);this.windowMs=e.windowMs??0,this.methods=new Set((e.methods??["GET","HEAD"]).map(t=>t.toUpperCase())),this.keyFn=e.keyFn??((t,n)=>`${t}::${n}`),this._globalSignal=e.signal??null}execute(e,t,n,s,o,i){let a=o??this.windowMs,l=i??this._globalSignal;if(l?.aborted||!this.methods.has(e.toUpperCase()))return n();let c=this.keyFn(e,t,s),u=this.inflight.get(c);if(u){if(u.resolvedAt!==null&&a>0&&Date.now()-u.resolvedAt<=a)return this._hits++,u.promise;if(u.resolvedAt===null)return this._hits++,u.promise;this.inflight.delete(c)}this._misses++;let h={resolvedAt:null,promise:void 0};return this.inflight.set(c,h),h.promise=(async()=>{let p=l?()=>{this.inflight.delete(c);let d=this.timeouts.get(c);d!==void 0&&(clearTimeout(d),this.timeouts.delete(c))}:null;l&&p&&l.addEventListener("abort",p,{once:!0});try{return await n()}finally{l&&p&&l.removeEventListener("abort",p)}})().then(p=>{if(h.resolvedAt=Date.now(),h.result=p,a<=0)this.inflight.delete(c);else{let d=this.timeouts.get(c);d!==void 0&&(clearTimeout(d),this.timeouts.delete(c));let y=setTimeout(()=>{this.inflight.delete(c),this.timeouts.delete(c)},a);this.timeouts.set(c,y)}return p},p=>{h.resolvedAt=Date.now(),h.error=p,this.inflight.delete(c);let d=this.timeouts.get(c);throw d!==void 0&&(clearTimeout(d),this.timeouts.delete(c)),p}),h.promise}get hits(){return this._hits}get misses(){return this._misses}get inFlightCount(){let e=0;for(let t of this.inflight.values())t.resolvedAt===null&&e++;return e}get keys(){return[...this.inflight.keys()]}getStats(){let e=this._hits+this._misses;return{hits:this._hits,misses:this._misses,totalRequests:e,hitRate:e===0?0:this._hits/e,inFlightCount:this.inFlightCount,trackedKeys:this.inflight.size}}resetMetrics(){this._hits=0,this._misses=0}clear(){this.inflight.clear();for(let e of this.timeouts.values())clearTimeout(e);this.timeouts.clear()}invalidate(e){let t=this.timeouts.get(e);return t&&(clearTimeout(t),this.timeouts.delete(e)),this.inflight.delete(e)}destroy(){this.clear()}};function ma(r){return new je(r)}var ct=class extends Error{constructor(t,n){super(`Circuit breaker OPEN for "${t}" \u2014 request rejected`);f(this,"code","ECIRCUITOPEN");f(this,"state");this.name="CircuitOpenError",this.state=n}},lt=class{constructor(e,t={}){f(this,"key");f(this,"failureThreshold");f(this,"windowSize");f(this,"resetTimeoutMs");f(this,"successThreshold");f(this,"halfOpenConcurrency");f(this,"failureFilter");f(this,"cfg");f(this,"_state","CLOSED");f(this,"_window",[]);f(this,"_consecutiveFails",0);f(this,"_consecutiveSucc",0);f(this,"_openedAt",null);f(this,"_halfOpenAt",null);f(this,"_lastFailureAt",null);f(this,"_lastSuccessAt",null);f(this,"_inFlightProbes",0);f(this,"_totalRequests",0);f(this,"_totalFailures",0);f(this,"_totalSuccesses",0);f(this,"_totalRejected",0);this.key=e,this.failureThreshold=t.failureThreshold??5,this.windowSize=t.windowSize??10,this.resetTimeoutMs=t.resetTimeoutMs??3e4,this.successThreshold=t.successThreshold??2,this.halfOpenConcurrency=t.halfOpenConcurrency??1,this.failureFilter={networkErrors:t.failures?.networkErrors??!0,timeouts:t.failures?.timeouts??!0,serverErrors:t.failures?.serverErrors??!1,statusCodes:t.failures?.statusCodes??[]},this.cfg=t}get state(){return this._state}get snapshot(){let e=this._consecutiveFails;if(this.windowSize>0){e=0;for(let t of this._window)t||e++}return{state:this._state,failureCount:e,successCount:this._consecutiveSucc,lastFailureAt:this._lastFailureAt,lastSuccessAt:this._lastSuccessAt,openedAt:this._openedAt,halfOpenAt:this._halfOpenAt,totalRequests:this._totalRequests,totalFailures:this._totalFailures,totalSuccesses:this._totalSuccesses,totalRejected:this._totalRejected,inFlightProbes:this._inFlightProbes}}execute(e){if(this._checkTransition(),this._state==="OPEN"){this._totalRejected++;let n=this.snapshot;return this.cfg.onRejected?.(n),Promise.reject(new ct(this.key,n))}let t=!1;if(this._state==="HALF_OPEN"){if(this._inFlightProbes>=this.halfOpenConcurrency){this._totalRejected++;let n=this.snapshot;return this.cfg.onRejected?.(n),Promise.reject(new ct(this.key,n))}this._inFlightProbes++,t=!0}return this._totalRequests++,Promise.resolve().then(e).then(n=>(t&&(this._inFlightProbes=Math.max(0,this._inFlightProbes-1)),this._recordSuccess(),n),n=>{throw t&&(this._inFlightProbes=Math.max(0,this._inFlightProbes-1)),this._isCountableFailure(n)&&this._recordFailure(),n})}trip(){this._state!=="OPEN"&&(this._openedAt=Date.now(),this._state="OPEN",this.cfg.onOpen?.(this.snapshot))}reset(){this._state="CLOSED",this._window=[],this._consecutiveFails=0,this._consecutiveSucc=0,this._openedAt=null,this._halfOpenAt=null,this._inFlightProbes=0,this.cfg.onClose?.(this.snapshot)}_checkTransition(){this._state==="OPEN"&&this._openedAt!==null&&Date.now()-this._openedAt>=this.resetTimeoutMs&&(this._state="HALF_OPEN",this._halfOpenAt=Date.now(),this._consecutiveSucc=0,this._inFlightProbes=0,this.cfg.onHalfOpen?.(this.snapshot))}_recordSuccess(){if(this._lastSuccessAt=Date.now(),this._totalSuccesses++,this._consecutiveFails=0,this._state==="HALF_OPEN"){this._consecutiveSucc++,this._consecutiveSucc>=this.successThreshold&&this.reset();return}this.windowSize>0&&(this._window.push(!0),this._window.length>this.windowSize&&this._window.shift())}_recordFailure(){if(this._lastFailureAt=Date.now(),this._totalFailures++,this._consecutiveSucc=0,this._consecutiveFails++,this._state==="HALF_OPEN"){this._openedAt=Date.now(),this._state="OPEN",this.cfg.onOpen?.(this.snapshot);return}this.windowSize>0?(this._window.push(!1),this._window.length>this.windowSize&&this._window.shift(),this._window.filter(t=>!t).length>=this.failureThreshold&&(this._openedAt=Date.now(),this._state="OPEN",this.cfg.onOpen?.(this.snapshot))):this._consecutiveFails>=this.failureThreshold&&(this._openedAt=Date.now(),this._state="OPEN",this.cfg.onOpen?.(this.snapshot))}_isCountableFailure(e){if(!(e instanceof Error))return!1;let t=e.code;if(this.failureFilter.networkErrors&&t==="ENETWORK"||this.failureFilter.timeouts&&t==="ETIMEOUT")return!0;if(this.failureFilter.serverErrors){let n=e.status;if(n&&n>=500)return!0}if(this.failureFilter.statusCodes&&this.failureFilter.statusCodes.length>0){let n=e.status;if(n&&this.failureFilter.statusCodes.includes(n))return!0}return!1}},Be=class{constructor(e={}){f(this,"breakers",new Map);f(this,"defaultConfig");this.defaultConfig=e}get(e,t){return this.breakers.has(e)||this.breakers.set(e,new lt(e,{...this.defaultConfig,...t})),this.breakers.get(e)}execute(e,t,n){return this.get(e,n).execute(t)}trip(e){this.get(e).trip()}reset(e){this.get(e).reset()}snapshots(){let e={};for(let[t,n]of this.breakers)e[t]=n.snapshot;return e}delete(e){this.breakers.delete(e)}clear(){this.breakers.clear()}get size(){return this.breakers.size}};function ga(r,e){return new lt(r,e)}function ya(r){return new Be(r)}B();var J=class extends Error{constructor(t,n){super(t,n!=null?{cause:n}:void 0);f(this,"code","EWSCONNECT");f(this,"originalCause");this.name="WSError",this.originalCause=n}},Jt=class extends Error{constructor(t){super(`WebSocket gave up after ${t} reconnect attempts`);f(this,"attempts");f(this,"code","EWSMAXRECONNECTS");this.attempts=t,this.name="WSMaxReconnectsError"}},dt=class extends Error{constructor(t,n){super(`WebSocket connect to ${t} timed out after ${n}ms`);f(this,"code","EWSCONNECTTIMEOUT");this.name="WSConnectTimeoutError"}},zr=class extends Error{constructor(t){super(`WebSocket send rate limited; retry in ${t}ms`);f(this,"delayMs");f(this,"code","EWSRATELIMIT");this.delayMs=t,this.name="WSRateLimitError"}},qe=class{constructor(e){f(this,"_url");f(this,"_protocols");f(this,"_headers");f(this,"_maxReconnects");f(this,"_reconnectBaseMs");f(this,"_reconnectMaxMs");f(this,"_reconnectJitter");f(this,"_pingIntervalMs");f(this,"_pingPayload");f(this,"_pongMatcher");f(this,"_pongTimeoutMs");f(this,"_connectTimeoutMs");f(this,"_bufferMessages");f(this,"_maxBufferSize");f(this,"_cbOpen");f(this,"_cbMessage");f(this,"_cbClose");f(this,"_cbError");f(this,"_cbReconnect");f(this,"_cbGiveUp");f(this,"_ws",null);f(this,"_state","CLOSED");f(this,"_reconnAttempt",0);f(this,"_buffer",[]);f(this,"_pingTimer",null);f(this,"_pongTimer",null);f(this,"_reconnTimer",null);f(this,"_msgListeners",[]);f(this,"_closeListeners",[]);f(this,"_openWaiters",[]);f(this,"_correlations",new Map);f(this,"_aborted",!1);f(this,"_externalSignal",null);f(this,"_onExternalAbort",()=>this.close(1e3,"AbortSignal aborted"));f(this,"_iterQueue",[]);f(this,"_iterWaiter",null);f(this,"_iterDone",!1);f(this,"_rooms",[]);f(this,"_keepRooms");f(this,"_highWaterMark");f(this,"_lowWaterMark");f(this,"_bufferedBytes",0);f(this,"_drainWaiters",[]);f(this,"_cbBackpressure");f(this,"_wasBackpressured",!1);f(this,"_maxSendRate");f(this,"_tokens",0);f(this,"_lastToken",0);f(this,"_serverEndpoint",null);f(this,"_mx",{messagesSent:0,messagesReceived:0,bytesSent:0,bytesReceived:0,reconnectCount:0,totalConnectAttempts:0,connectedAt:null,closedAt:null,uptimeMs:0});f(this,"_openedAt",null);if(this._url=e.url,this._protocols=e.protocols,this._headers=e.headers,this._maxReconnects=e.maxReconnects??10,this._reconnectBaseMs=e.reconnectBaseMs??1e3,this._reconnectMaxMs=e.reconnectMaxMs??3e4,this._reconnectJitter=e.reconnectJitter??.3,this._pingIntervalMs=e.pingIntervalMs??3e4,this._pingPayload=e.pingPayload??"ping",this._pongMatcher=e.pongMatcher,this._pongTimeoutMs=e.pongTimeoutMs??1e4,this._connectTimeoutMs=e.connectTimeoutMs??3e4,this._bufferMessages=e.bufferMessages??!0,this._maxBufferSize=e.maxBufferSize??100,this._cbOpen=e.onOpen,this._cbMessage=e.onMessage,this._cbClose=e.onClose,this._cbError=e.onError,this._cbReconnect=e.onReconnect,this._cbGiveUp=e.onGiveUp,this._cbBackpressure=e.onBackpressure,this._highWaterMark=e.highWaterMark??65536,this._lowWaterMark=e.lowWaterMark??16384,this._maxSendRate=e.maxSendRate??0,this._keepRooms=e.keepRooms??!0,e.rooms&&e.rooms.length>0)for(let t of e.rooms)this._rooms.push({room:t,joinedAt:0});this._externalSignal=e.signal??null,this._externalSignal?.addEventListener("abort",this._onExternalAbort,{once:!0})}get state(){return this._state}get connected(){return this._state==="OPEN"}get bufferedCount(){return this._buffer.length}get metrics(){return{...this._mx,uptimeMs:this._mx.uptimeMs+(this._openedAt!=null?Date.now()-this._openedAt:0)}}connect(){return this._state==="OPEN"?Promise.resolve():this._state==="CONNECTING"||this._state==="RECONNECTING"?new Promise((e,t)=>this._openWaiters.push({resolve:e,reject:t})):this._doConnect(!1)}waitForOpen(e=6e4){return this._state==="OPEN"?Promise.resolve():new Promise((t,n)=>{let s=e>0?setTimeout(()=>{let o=this._openWaiters.findIndex(i=>i.resolve===t);o!==-1&&this._openWaiters.splice(o,1),n(new dt(this._url,e))},e):null;this._openWaiters.push({resolve:()=>{s&&clearTimeout(s),t()},reject:o=>{s&&clearTimeout(s),n(o)}})})}close(e=1e3,t="Client closed"){this._aborted=!0,this._externalSignal?.removeEventListener("abort",this._onExternalAbort),this._externalSignal=null,this._stopAll();for(let s of this._drainWaiters.splice(0))s();this._state="CLOSING";let n=this._ws;if(n){if(n.onopen=n.onmessage=n.onerror=n.onclose=null,n.readyState<2)try{n.close(e,t)}catch{}this._ws=null}this._buffer=[],this._bufferedBytes=0,this._iterQueue=[],this._iterDone=!0,this._iterWaiter&&(this._iterWaiter({done:!0,value:void 0}),this._iterWaiter=null);for(let s of this._openWaiters.splice(0))s.reject(new Error("Client closed"));this._rooms=[];for(let s of this._correlations.values())s.timer&&clearTimeout(s.timer),s.reject(new Error("Client closed"));this._correlations.clear(),this._openedAt!=null&&(this._mx.uptimeMs+=Date.now()-this._openedAt,this._openedAt=null),this._mx.closedAt=Date.now(),this._state="CLOSED";for(let s of this._closeListeners)try{s({code:e,reason:t})}catch{}this._closeListeners=[],this._msgListeners=[],this._cbClose?.(e,t,!1)}destroy(){this._aborted=!0,this._stopAll();for(let t of this._drainWaiters.splice(0))t();this._state="CLOSING";let e=this._ws;if(e){if(e.onopen=e.onmessage=e.onerror=e.onclose=null,e.readyState<2)try{e.close(1e3,"Destroyed")}catch{}this._ws=null}this._buffer=[],this._bufferedBytes=0,this._iterQueue=[],this._iterDone=!0,this._iterWaiter&&(this._iterWaiter({done:!0,value:void 0}),this._iterWaiter=null),this._msgListeners=[];for(let t of this._openWaiters.splice(0))t.reject(new Error("Client destroyed"));this._rooms=[];for(let t of this._correlations.values())t.timer&&clearTimeout(t.timer),t.reject(new Error("Client destroyed"));this._correlations.clear(),this._openedAt!=null&&(this._mx.uptimeMs+=Date.now()-this._openedAt,this._openedAt=null),this._mx.closedAt=Date.now(),this._state="CLOSED";for(let t of this._closeListeners)try{t({code:1e3,reason:"Destroyed"})}catch{}this._closeListeners=[],this._cbClose?.(1e3,"Destroyed",!1)}send(e){this._tx(e)&&this._mx.messagesSent++}sendBinary(e){let t=e instanceof Uint8Array?e.slice().buffer:e;this._tx(t)&&this._mx.messagesSent++}sendJSON(e){this.send(JSON.stringify(e))}request(e,t,n=o=>o.json??o.data,s=1e4){return new Promise((o,i)=>{let a=`${Date.now()}-${Math.random()}`,l=s>0?setTimeout(()=>{let c=this._correlations.get(a);c?.timer&&clearTimeout(c.timer),this._correlations.delete(a),i(new J(`request() timed out after ${s}ms waiting for reply`))},s):null;this._correlations.set(a,{matcher:t,extract:n,resolve:o,reject:i,timer:l}),typeof e=="string"?this.send(e):this.sendJSON(e)})}onMessage(e){return this._msgListeners.push(e),()=>{let t=this._msgListeners.indexOf(e);t!==-1&&this._msgListeners.splice(t,1)}}onClose(e){return this._closeListeners.push(e),()=>{let t=this._closeListeners.indexOf(e);t!==-1&&this._closeListeners.splice(t,1)}}drainBuffer(){let e=this._buffer.splice(0);return this._bufferedBytes=0,this._updateBackpressure(),e}join(e,t){this._rooms.some(n=>n.room===e&&n.namespace===t)||(this._rooms.push({room:e,namespace:t,joinedAt:Date.now()}),this.sendJSON({type:"room:join",room:e,namespace:t??null}))}leave(e,t){let n=this._rooms.findIndex(s=>s.room===e&&s.namespace===t);n!==-1&&(this._rooms.splice(n,1),this.sendJSON({type:"room:leave",room:e,namespace:t??null}))}get rooms(){return this._rooms}get backpressure(){return{bufferedBytes:this._bufferedBytes,highWaterMark:this._highWaterMark,lowWaterMark:this._lowWaterMark,isBackpressured:this._bufferedBytes>=this._highWaterMark}}drain(e=3e4){return this._state==="CLOSED"?Promise.reject(new J("Cannot drain \u2014 socket is CLOSED")):this._bufferedBytes<this._lowWaterMark?Promise.resolve():new Promise((t,n)=>{let s=e>0?setTimeout(()=>n(new J(`drain() timed out after ${e}ms`)),e):null;this._drainWaiters.push(()=>{s&&clearTimeout(s),t()})})}async drainAndClose(e=3e4){if(this._state!=="CLOSED"){try{await this.drain(e)}catch{}this.close(1e3,"Graceful shutdown")}}get serverEndpoint(){return this._serverEndpoint}[Symbol.asyncIterator](){return{next:()=>this._iterQueue.length>0?Promise.resolve({done:!1,value:this._iterQueue.shift()}):this._iterDone?Promise.resolve({done:!0,value:void 0}):new Promise(e=>{this._iterWaiter=e}),return:()=>(this.close(1e3,"Iterator returned"),Promise.resolve({done:!0,value:void 0}))}}_doConnect(e){return this._mx.totalConnectAttempts++,this._state="CONNECTING",new Promise((t,n)=>{let s=!1,o=null;this._connectTimeoutMs>0&&(o=setTimeout(()=>{if(s)return;s=!0;let u=new dt(this._url,this._connectTimeoutMs);n(u),this._cbError?.(u);let h=this._ws;if(h&&(h.onopen=h.onmessage=h.onerror=h.onclose=null,h.close(),this._ws=null),!this._aborted&&this._canRecon())this._scheduleRecon();else{this._state="CLOSED";for(let p of this._openWaiters.splice(0))p.reject(u);this._rejectCorrelations("Connection timeout")}},this._connectTimeoutMs));let i=()=>{o&&(clearTimeout(o),o=null)},a=this._url,l=(()=>{try{let u=globalThis;if(typeof globalThis.Deno<"u"||typeof globalThis.Bun<"u"||u.process?.versions?.node||typeof window>"u")return!1;let h=window;return typeof h.navigator<"u"&&typeof h.document<"u"}catch{return!1}})();if(this._headers&&l){let u=new URL(a);for(let[h,p]of Object.entries(this._headers))u.searchParams.set(h,p);a=u.href}let c;try{c=this._protocols?new WebSocket(a,this._protocols):new WebSocket(a)}catch(u){i(),this._state="CLOSED",n(new J("Failed to construct WebSocket",u instanceof Error?u:void 0));return}if(this._headers&&!l){let u=c;if(typeof u.setHeader=="function")for(let[h,p]of Object.entries(this._headers))u.setHeader(h,p)}this._ws=c,c.binaryType="arraybuffer",c.onopen=()=>{if(i(),!s){if(s=!0,this._state="OPEN",this._openedAt=Date.now(),this._mx.connectedAt=this._openedAt,e&&this._mx.reconnectCount++,this._serverEndpoint=c.url??this._url,this._reconnAttempt=0,this._rooms.length>0&&this._keepRooms)for(let u of this._rooms)try{c.send(JSON.stringify({type:"room:join",room:u.room,namespace:u.namespace??null}))}catch{}this._startPing(),this._flushBuf(),this._cbOpen?.(this._mx.reconnectCount),t();for(let u of this._openWaiters.splice(0))u.resolve()}},c.onmessage=async u=>{if(this._aborted)return;let h,p,d;if(typeof u.data=="string"){h=u.data,d=new TextEncoder().encode(h).byteLength;try{p=M(JSON.parse(h))}catch{}}else if(u.data instanceof ArrayBuffer)h=new Uint8Array(u.data),d=h.byteLength;else if(typeof Blob<"u"&&u.data instanceof Blob){let g=await u.data.arrayBuffer();h=new Uint8Array(g),d=h.byteLength}else h=new Uint8Array(u.data),d=h.byteLength;this._mx.messagesReceived++,this._mx.bytesReceived+=d;let y={data:h,json:p,timestamp:Date.now()};if(this._pongMatcher&&typeof h=="string"&&(typeof this._pongMatcher=="string"?h===this._pongMatcher:this._pongMatcher.test(h))){this._pongTimer&&(clearTimeout(this._pongTimer),this._pongTimer=null);return}for(let[g,m]of this._correlations)if(m.matcher(y)){this._correlations.delete(g),m.timer&&clearTimeout(m.timer);try{m.resolve(m.extract(y))}catch(w){m.reject(w)}return}for(let g of this._msgListeners)try{g(y)}catch{}if(this._cbMessage?.(y),this._iterWaiter){let g=this._iterWaiter;this._iterWaiter=null,g({done:!1,value:y})}else this._iterQueue.length>=this._maxBufferSize&&this._iterQueue.shift(),this._iterQueue.push(y)},c.onerror=u=>{this._cbError?.(new J(u.message??"WebSocket error",u.error))},c.onclose=u=>{i(),this._stopPing(),this._openedAt!=null&&(this._mx.uptimeMs+=Date.now()-this._openedAt,this._openedAt=null),this._mx.closedAt=Date.now();for(let p of this._closeListeners)try{p({code:u.code,reason:u.reason})}catch{}if(s||(s=!0,n(new J(`Socket closed before open (code ${u.code}: ${u.reason})`))),this._aborted||u.code===1e3||u.code===1001){this._state="CLOSED",this._cbClose?.(u.code,u.reason,!1),this._terminateIter();for(let p of this._openWaiters.splice(0))p.reject(new J(`Socket closed (code ${u.code})`));this._rejectCorrelations(`Socket closed (code ${u.code})`);return}let h=this._canRecon();if(this._cbClose?.(u.code,u.reason,h),h)this._scheduleRecon();else{this._cbGiveUp?.(this._reconnAttempt),this._state="CLOSED",this._terminateIter();let p=new Jt(this._reconnAttempt);for(let d of this._openWaiters.splice(0))d.reject(p);this._rejectCorrelations("Max reconnects exceeded")}}})}_canRecon(){return this._maxReconnects===0||this._reconnAttempt<this._maxReconnects}_scheduleRecon(){this._reconnTimer&&(clearTimeout(this._reconnTimer),this._reconnTimer=null),this._state="RECONNECTING",this._reconnAttempt++;let e=this._reconnectBaseMs*Math.pow(2,this._reconnAttempt-1),t=Math.min(e,this._reconnectMaxMs),n=Math.floor(t*(1+this._reconnectJitter*Math.random()));this._cbReconnect?.(this._reconnAttempt,n),this._reconnTimer=setTimeout(()=>{this._reconnTimer=null,this._aborted||this._doConnect(!0).catch(()=>{})},n)}_tx(e){let t=this._ws,n=typeof e=="string"?new TextEncoder().encode(e).byteLength:e.byteLength;if(this._maxSendRate>0){let s=Date.now();this._lastToken===0&&(this._lastToken=s,this._tokens=this._maxSendRate);let o=s-this._lastToken;if(this._tokens=Math.min(this._maxSendRate,this._tokens+o*this._maxSendRate/1e3),this._lastToken=s,this._tokens<1)return this._bufferMessage(e,n),!1;this._tokens--}if(this._bufferedBytes>=this._highWaterMark)return this._bufferMessage(e,n),!1;if(t&&t.readyState===1)try{return t.send(e),this._mx.bytesSent+=n,!0}catch(s){if(this._cbError?.(new J(`WebSocket send failed: ${s instanceof Error?s.message:String(s)}`,s)),t.readyState===1)try{t.close(4001,"Send error")}catch{}return this._ws=null,!this._aborted&&this._canRecon()&&this._scheduleRecon(),!1}return this._bufferMessage(e,n),!1}_bufferMessage(e,t){if(this._bufferMessages&&!this._aborted){let n=this._buffer.length>=this._maxBufferSize?this._buffer.shift():void 0;n!==void 0&&(this._bufferedBytes-=typeof n=="string"?new TextEncoder().encode(n).byteLength:n.byteLength),this._buffer.push(e),this._bufferedBytes+=t,this._updateBackpressure()}}_flushBuf(){let e=this._buffer.splice(0);for(let t of e)try{this._ws?.send(t),this._mx.messagesSent++,this._mx.bytesSent+=typeof t=="string"?new TextEncoder().encode(t).byteLength:t.byteLength}catch{}this._bufferedBytes=0,this._updateBackpressure()}_updateBackpressure(){let e=this._bufferedBytes>=this._highWaterMark;if(e!==this._wasBackpressured&&(this._wasBackpressured=e,this._cbBackpressure?.(e,this.backpressure)),!e&&this._bufferedBytes<this._lowWaterMark&&this._drainWaiters.length>0)for(let t of this._drainWaiters.splice(0))t()}_startPing(){this._pingIntervalMs<=0||(this._pingTimer=setInterval(()=>{let e=this._ws;if(!(!e||e.readyState!==1)){try{e.send(this._pingPayload),this._mx.messagesSent++,this._mx.bytesSent+=new TextEncoder().encode(this._pingPayload).byteLength}catch{}this._pongMatcher&&this._pongTimeoutMs>0&&(this._pongTimer&&clearTimeout(this._pongTimer),this._pongTimer=setTimeout(()=>{this._pongTimer=null;let t=this._ws;t&&(t.onopen=t.onmessage=t.onerror=t.onclose=null,t.close(4e3,"Pong timeout"),this._ws=null),!this._aborted&&this._canRecon()?(this._cbClose?.(4e3,"Pong timeout",!0),this._scheduleRecon()):this._state="CLOSED"},this._pongTimeoutMs),typeof this._pongTimer=="object"&&this._pongTimer!==null&&"unref"in this._pongTimer&&this._pongTimer.unref())}},this._pingIntervalMs),typeof this._pingTimer=="object"&&this._pingTimer!==null&&"unref"in this._pingTimer&&this._pingTimer.unref())}_stopPing(){this._pingTimer&&(clearInterval(this._pingTimer),this._pingTimer=null),this._pongTimer&&(clearTimeout(this._pongTimer),this._pongTimer=null)}_stopAll(){this._stopPing(),this._reconnTimer&&(clearTimeout(this._reconnTimer),this._reconnTimer=null)}_terminateIter(){this._iterDone=!0,this._iterWaiter&&(this._iterWaiter({done:!0,value:void 0}),this._iterWaiter=null)}_rejectCorrelations(e){for(let t of this._correlations.values())t.timer&&clearTimeout(t.timer),t.reject(new J(e));this._correlations.clear()}};async function Ka(r){let e=new qe(r);return await e.connect(),e}Te();B();Ke();Ke();var Za=0;function Jr(){return`interceptor_${++Za}`}function Qr(r,e){let t=r.findIndex(n=>n.priority>e.priority);t===-1?r.push(e):r.splice(t,0,e)}var Xt=class{constructor(){f(this,"requestInterceptors",[]);f(this,"responseInterceptors",[]);f(this,"errorInterceptors",[])}useRequest(e,t={}){let n=t.id??Jr();return Qr(this.requestInterceptors,{id:n,priority:t.priority??0,once:t.once??!1,condition:t.condition??null,fn:e}),n}useResponse(e,t={}){let n=t.id??Jr();return Qr(this.responseInterceptors,{id:n,priority:t.priority??0,once:t.once??!1,condition:t.condition??null,fn:e}),n}useError(e,t={}){let n=t.id??Jr();return Qr(this.errorInterceptors,{id:n,priority:t.priority??0,once:t.once??!1,condition:t.condition??null,fn:e}),n}use(e,t,n={}){let s=e?this.useRequest(e,n):null,o=t?this.useResponse(t,n):null;return{requestId:s,responseId:o}}eject(e){let t=this.requestInterceptors.length+this.responseInterceptors.length+this.errorInterceptors.length;return this.requestInterceptors=this.requestInterceptors.filter(s=>s.id!==e),this.responseInterceptors=this.responseInterceptors.filter(s=>s.id!==e),this.errorInterceptors=this.errorInterceptors.filter(s=>s.id!==e),this.requestInterceptors.length+this.responseInterceptors.length+this.errorInterceptors.length<t}ejectAll(){this.requestInterceptors=[],this.responseInterceptors=[],this.errorInterceptors=[]}has(e){return this.requestInterceptors.some(t=>t.id===e)||this.responseInterceptors.some(t=>t.id===e)||this.errorInterceptors.some(t=>t.id===e)}get requestCount(){return this.requestInterceptors.length}get responseCount(){return this.responseInterceptors.length}get errorCount(){return this.errorInterceptors.length}async execute(e,t){let n={request:e,response:null,error:null,startedAt:ee(),attempt:0,aborted:!1,store:new Map};return await this._run(n,t)}async _run(e,t){e.attempt++;let n=new Set;for(let s of this.requestInterceptors){if(e.aborted)break;if(s.condition&&!s.condition(e))continue;let o;try{o=await s.fn(e)}catch(i){e.error=i;for(let a of n)this.eject(a);return this._runErrorPhase(e,t)}if(s.once&&n.add(s.id),o!=null){if(Gr(o)){e.response=o;for(let i of n)this.eject(i);return this._runResponsePhase(e,t)}Ls(o)&&(e.request=o)}}for(let s of n)this.eject(s);try{e.response=await t(e.request)}catch(s){return e.error=s,this._runErrorPhase(e,t)}return this._runResponsePhase(e,t)}async _runResponsePhase(e,t){let n=new Set;for(let s of this.responseInterceptors){if(e.aborted)break;if(s.condition&&!s.condition(e))continue;let o;try{o=await s.fn(e)}catch(i){e.error=i;for(let a of n)this.eject(a);return this._runErrorPhase(e,t)}if(s.once&&n.add(s.id),o!=null){if(Ls(o)){e.request=o,e.response=null,e.error=null;for(let i of n)this.eject(i);return this._run(e,t)}Gr(o)&&(e.response=o)}}for(let s of n)this.eject(s);if(!e.response)throw new Error("Pipeline produced no response");return e.response}async _runErrorPhase(e,t){let n=new Set;for(let s of this.errorInterceptors){if(s.condition&&!s.condition(e))continue;let o;try{o=await s.fn(e)}catch(i){if(i.__retrySignal){for(let a of n)this.eject(a);return e.error=null,e.response=null,this._run(e,t)}e.error=i;continue}if(s.once&&n.add(s.id),o!=null&&Gr(o)){e.response=o,e.error=null;for(let i of n)this.eject(i);return this._runResponsePhase(e,t)}}for(let s of n)this.eject(s);throw e.error}};function Gr(r){return r!==null&&typeof r=="object"&&typeof r.status=="number"&&"headers"in r&&"request"in r}function Ls(r){return r!==null&&typeof r=="object"&&typeof r.url=="string"&&typeof r.method=="string"&&!("status"in r)}var ec={maxRetries:3,baseDelayMs:300,maxDelayMs:3e4,jitter:.3,retryStatuses:[408,429,500,502,503,504],retryOnError:!0,retryMethods:["GET","HEAD","PUT","DELETE","OPTIONS","TRACE","POST"],shouldRetry:null,onRetry:null};function Ns(r={}){let e={...ec,...r};function t(a,l){if(l!==null)return Math.min(l,e.maxDelayMs);let c=e.baseDelayMs*Math.pow(2,a-1),u=Math.min(c,e.maxDelayMs),h=u*e.jitter*Math.random();return Math.floor(u+h)}function n(a){return a.attempt>e.maxRetries||!e.retryMethods.includes(a.request.method.toUpperCase())?!1:e.shouldRetry?e.shouldRetry(a):a.error?e.retryOnError:a.response?e.retryStatuses.includes(a.response.status):!1}function s(a){let l=a.response?.headers["retry-after"]??a.response?.headers["Retry-After"];if(!l)return null;if(/^\d+$/.test(l.trim()))return parseInt(l,10)*1e3;let c=Date.parse(l);return isNaN(c)?null:Math.max(0,c-Date.now())}return{responseInterceptor:async a=>{if(!n(a))return;let l=t(a.attempt,s(a));return e.onRetry?.(a,l),await Ds(l),{...a.request}},errorInterceptor:async a=>{if(!n(a))return;let l=t(a.attempt,null);throw e.onRetry?.(a,l),await Ds(l),a.error=null,new en(a.request)}}}var en=class{constructor(e){f(this,"request");f(this,"__retrySignal",!0);this.request=e}},tc={getToken:()=>null,refreshToken:null,headerName:"authorization",scheme:"Bearer ",refreshOnStatuses:[401],maxQueue:50,refreshRetryDelay:3e4};function Us(r){let e={...tc,...r},t=null,n=[],s=null,o=e.refreshRetryDelay??3e4;async function i(){if(s!==null){let c=Date.now()-s;if(c<o)throw new Error(`Auth refresh circuit breaker: last failure ${Math.round(c/1e3)}s ago, retry after ${Math.round((o-c)/1e3)}s`)}if(t){if(n.length>=e.maxQueue)throw new Error("Auth refresh queue full");return await new Promise((c,u)=>n.push({resolve:c,reject:u}))}return e.refreshToken?(t=e.refreshToken().then(c=>{for(let u of n)u.resolve(c);return n.length=0,t=null,s=null,c},c=>{for(let u of n)u.reject(c);throw n.length=0,t=null,s=Date.now(),c}),t):null}return{requestInterceptor:async c=>{let u=await e.getToken();u&&(c.request.headers[e.headerName]=`${e.scheme}${u}`)},responseInterceptor:async c=>{if(!c.response||!e.refreshOnStatuses.includes(c.response.status)||!e.refreshToken||c.request.meta.__authRetried)return;let u=await i();return u?{...c.request,headers:{...c.request.headers,[e.headerName]:`${e.scheme}${u}`},meta:{...c.request.meta,__authRetried:!0}}:void 0}}}var rc={timeoutMs:3e4,methodTimeouts:{},message:"Request timed out"};function $s(r={}){let e={...rc,...r},t=i=>{let a=e.methodTimeouts[i.request.method.toUpperCase()]??e.timeoutMs;if(a<=0)return;let l=new AbortController,c=setTimeout(()=>{i.aborted=!0,l.abort(new tn(e.message,a))},a),u=i.request.signal;if(u){let h=()=>{clearTimeout(c),l.abort(u.reason)};u.addEventListener("abort",h,{once:!0}),i.store.set(Yr,{existing:u,onExistingAbort:h})}i.request={...i.request,signal:l.signal},i.store.set(Xr,c)},n=i=>{let a=i.store.get(Xr);a&&(clearTimeout(a),i.store.delete(Xr));let l=i.store.get(Yr);l&&(l.existing.removeEventListener("abort",l.onExistingAbort),i.store.delete(Yr))};return{id:"timeout",requestInterceptor:t,responseInterceptor:i=>{n(i)},errorInterceptor:i=>{n(i)}}}var Xr=Symbol("timeoutTimer"),Yr=Symbol("timeoutSignal"),tn=class extends Error{constructor(t,n){super(t);f(this,"timeoutMs");f(this,"code","ETIMEDOUT");this.timeoutMs=n,this.name="TimeoutError"}},nc={logger:r=>console.log(JSON.stringify(r)),redactHeaders:["authorization","cookie","set-cookie","proxy-authorization"],logRequests:!0,logResponses:!0,logErrors:!0},Ms=Symbol("requestId"),sc=0;function Hs(r={}){let e={...nc,...r},t=new Set(e.redactHeaders.map(l=>l.toLowerCase()));function n(l){let c={};for(let[u,h]of Object.entries(l))c[u]=t.has(u.toLowerCase())?"**REDACTED**":h;return c}function s(l,c){let u=c.store.get(Ms)??"unknown";return{type:l,timestamp:Date.now(),requestId:u,method:c.request.method,url:c.request.url,status:c.response?.status??null,durationMs:l!=="request"?ee()-c.startedAt:null,attempt:c.attempt,error:c.error instanceof Error?c.error.message:null}}return{requestInterceptor:l=>{let c=`req_${++sc}`;l.store.set(Ms,c),e.logRequests&&e.logger(s("request",l))},responseInterceptor:l=>{e.logResponses&&e.logger(s("response",l))},errorInterceptor:l=>{e.logErrors&&e.logger(s("error",l))}}}var oc={maxEntries:500,defaultTtlMs:6e4,cacheMethods:["GET","HEAD"],cacheKey:null,honorCacheControl:!0};function js(r={}){let e={...oc,...r},t=new Map,n=[];function s(c){return e.cacheKey?e.cacheKey(c):`${c.method}:${c.url}`}function o(c){let u=n.indexOf(c);for(u!==-1&&n.splice(u,1),n.unshift(c);n.length>e.maxEntries;){let h=n.pop();t.delete(h)}}function i(c){let u=c.headers["cache-control"]??c.headers["Cache-Control"]??"",h=u.match(/max-age=(\d+)/)?.[1],p=u.match(/stale-while-revalidate=(\d+)/)?.[1],d=/no-store/i.test(u),y=/no-cache/i.test(u);if(e.honorCacheControl&&(d||y))return{ttlMs:0,swrMs:0};let g=h?parseInt(h,10)*1e3:e.defaultTtlMs,m=p?parseInt(p,10)*1e3:0;return{ttlMs:g,swrMs:m}}return{requestInterceptor:c=>{if(!e.cacheMethods.includes(c.request.method.toUpperCase()))return;let u=s(c.request),h=t.get(u);if(!h)return;let p=ee();if(h.expiresAt>p)return o(u),c.store.set(ic,!0),{...h.response,request:c.request};h.staleUntil>p&&(o(u),c.store.set(Os,h),h.etag?c.request={...c.request,headers:{...c.request.headers,"if-none-match":h.etag}}:h.lastModified&&(c.request={...c.request,headers:{...c.request.headers,"if-modified-since":h.lastModified}}))},responseInterceptor:c=>{if(!c.response||!e.cacheMethods.includes(c.request.method.toUpperCase()))return;let u=s(c.request);if(c.response.status===304){let g=c.store.get(Os);if(g){let{ttlMs:m,swrMs:w}=i(g.response),S=ee(),x={...g,createdAt:S,expiresAt:S+m,staleUntil:S+m+w};t.set(u,x),o(u),c.response={...g.response,request:c.request};return}}let{ttlMs:h,swrMs:p}=i(c.response);if(h<=0)return;let d=ee(),y={response:c.response,createdAt:d,expiresAt:d+h,staleUntil:d+h+p,etag:c.response.headers.etag??c.response.headers.ETag??null,lastModified:c.response.headers["last-modified"]??null};t.set(u,y),o(u)},store:t}}var ic=Symbol("cacheHit"),Os=Symbol("cacheStale");function Bs(){let r=new Map;async function e(o){let i=await ge(o.headers??{});return`${o.method.toUpperCase()}:${o.url}${i?":"+i:""}`}return{requestInterceptor:async o=>{if(o.request.method.toUpperCase()!=="GET"&&o.request.method.toUpperCase()!=="HEAD")return;let i=await e(o.request);o.store.set(Zr,i);let a=r.get(i);if(!a){r.set(i,{promise:void 0,waiters:[]});return}return new Promise((l,c)=>{let u=o.request.signal,h={resolve:d=>l(d),reject:d=>c(d),cleanup:()=>u?.removeEventListener("abort",p)},p=()=>{let d=a.waiters.indexOf(h);d!==-1&&a.waiters.splice(d,1),c(new Error("Request aborted while queued for deduplication"))};if(u?.aborted){p();return}u?.addEventListener("abort",p,{once:!0}),a.waiters.push(h)})},responseInterceptor:o=>{if(!o.response)return;let i=o.store.get(Zr);if(!i)return;let a=r.get(i);if(a){r.delete(i);for(let l of a.waiters.splice(0))l.cleanup(),l.resolve(o.response)}},errorInterceptor:o=>{let i=o.store.get(Zr);if(!i)return;let a=r.get(i);if(a){r.delete(i);for(let l of a.waiters.splice(0))l.cleanup(),l.reject(o.error)}}}}var Zr=Symbol("dedupeKey"),ac={limit:60,windowMs:6e4,queue:!0,maxQueue:100};function Yt(r={}){let e={...ac,...r},t=e.limit,n=ee(),s=[],o=null;function i(){let c=ee(),u=(c-n)/e.windowMs;t=Math.min(e.limit,t+u*e.limit),n=c}function a(){o===null&&(o=setInterval(()=>{for(i();t>=1&&s.length>0;)t--,s.shift()();s.length===0&&o!==null&&(clearInterval(o),o=null)},Math.ceil(e.windowMs/e.limit)),typeof o=="object"&&o!==null&&"unref"in o&&o.unref())}async function l(){if(i(),t>=1){t--;return}if(!e.queue)throw new bt("Rate limit exceeded");if(s.length>=e.maxQueue)throw new bt("Rate limit queue full");await new Promise(c=>{s.push(()=>c()),a()})}return async()=>{await l()}}var bt=class extends Error{constructor(t){super(t);f(this,"code","ERATELIMIT");this.name="RateLimitError"}};function zs(){let r=[],e=Symbol("harStart");function t(i){return Object.entries(i).map(([a,l])=>({name:a,value:l}))}function n(i){try{let a=new URL(i);return Array.from(a.searchParams.entries()).map(([l,c])=>({name:l,value:c}))}catch{return[]}}return{requestInterceptor:i=>{i.store.set(e,ee())},responseInterceptor:i=>{if(!i.response)return;let a=i.store.get(e)??i.startedAt,l=ee()-a,c=i.response.headers["content-type"]??i.response.headers["Content-Type"]??"application/octet-stream",u=i.response.body,h=u instanceof Uint8Array?u.byteLength:typeof u=="string"?u.length:0;r.push({startedDateTime:new Date(Date.now()-l).toISOString(),time:l,request:{method:i.request.method.toUpperCase(),url:i.request.url,httpVersion:"HTTP/1.1",headers:t(i.request.headers),queryString:n(i.request.url),bodySize:Fs(i.request.body)},response:{status:i.response.status,statusText:i.response.statusText,httpVersion:"HTTP/1.1",headers:t(i.response.headers),content:{size:h,mimeType:c,...typeof u=="string"?{text:u}:{}},bodySize:h,redirectURL:i.response.headers.location??""},timings:{send:0,wait:Math.floor(l*.9),receive:Math.floor(l*.1)}})},getHAR:()=>({version:"1.2",creator:{name:"kinetex",version:"0.0.3"},entries:[...r]}),clearHAR:()=>{r.length=0}}}function qs(){let r=Symbol("metricsStart"),e=0,t=0,n=0,s={"2xx":0,"3xx":0,"4xx":0,"5xx":0},o=1e4,i=[],a=d=>{d.store.set(r,ee()),e++,d.attempt>1&&n++},l=d=>{if(!d.response)return;let y=d.store.get(r);if(y!==void 0){let m=ee()-y;i.length>=o&&i.shift(),i.push(m)}let g=`${Math.floor(d.response.status/100)}xx`;if(g in s){let m=s;m[g]=(m[g]??0)+1}},c=()=>{t++};function u(d,y){if(d.length===0)return 0;let g=Math.ceil(y/100*d.length)-1,m=Math.min(Math.max(0,g),d.length-1);return d[m]}return{requestInterceptor:a,responseInterceptor:l,errorInterceptor:c,snapshot:()=>{let d=[...i].sort((g,m)=>g-m),y=d.length?d.reduce((g,m)=>g+m,0)/d.length:0;return{totalRequests:e,totalErrors:t,totalRetries:n,statusBuckets:{...s},avgDurationMs:Math.round(y),p50DurationMs:u(d,50),p95DurationMs:u(d,95),p99DurationMs:u(d,99)}},reset:()=>{e=0,t=0,n=0;for(let d of Object.keys(s))s[d]=0;i.length=0}}}function ee(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}function Ds(r){return new Promise(e=>setTimeout(e,r))}function Fs(r){return r?typeof r=="string"?r.length:r instanceof Uint8Array||r instanceof ArrayBuffer?r.byteLength:-1:0}function cc(r={}){let e=new Xt,t=$s(r.timeout);e.useRequest(t.requestInterceptor,{priority:-100,id:"timeout-req"}),e.useResponse(t.responseInterceptor,{priority:-100,id:"timeout-res"}),e.useError(t.errorInterceptor,{priority:-100,id:"timeout-err"}),r.rateLimit&&e.useRequest(Yt(r.rateLimit),{priority:-90,id:"ratelimit"});let n=Bs();e.useRequest(n.requestInterceptor,{priority:-80,id:"dedupe-req"}),e.useResponse(n.responseInterceptor,{priority:-80,id:"dedupe-res"}),e.useError(n.errorInterceptor,{priority:-80,id:"dedupe-err"});let s=js(r.cache);e.useRequest(s.requestInterceptor,{priority:-70,id:"cache-req"}),e.useResponse(s.responseInterceptor,{priority:-70,id:"cache-res"});let o=null;r.auth&&(o=Us(r.auth),e.useRequest(o.requestInterceptor,{priority:-50,id:"auth-req"}),e.useResponse(o.responseInterceptor,{priority:-50,id:"auth-res"}));let i=Ns(r.retry);e.useResponse(i.responseInterceptor,{priority:50,id:"retry-res"}),e.useError(i.errorInterceptor,{priority:50,id:"retry-err"});let a=Hs(r.logging);e.useRequest(a.requestInterceptor,{priority:90,id:"log-req"}),e.useResponse(a.responseInterceptor,{priority:90,id:"log-res"}),e.useError(a.errorInterceptor,{priority:90,id:"log-err"});let l=zs();e.useRequest(l.requestInterceptor,{priority:95,id:"har-req"}),e.useResponse(l.responseInterceptor,{priority:95,id:"har-res"});let c=qs();return e.useRequest(c.requestInterceptor,{priority:100,id:"metrics-req"}),e.useResponse(c.responseInterceptor,{priority:100,id:"metrics-res"}),e.useError(c.errorInterceptor,{priority:100,id:"metrics-err"}),{manager:e,retry:i,auth:o,timeout:{id:t.id},logging:a,cache:s,dedupe:n,har:l,metrics:c}}Te();function lc(r){return()=>Promise.resolve(r)}function uc(){return()=>{let r=rn("AWS_ACCESS_KEY_ID"),e=rn("AWS_SECRET_ACCESS_KEY"),t=rn("AWS_SESSION_TOKEN");return!r||!e?Promise.reject(new oe("AWS credentials not found in environment. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.")):Promise.resolve({accessKeyId:r,secretAccessKey:e,...t!==void 0?{sessionToken:t}:{}})}}function hc(...r){return async()=>{let e=[];for(let t of r)try{return await t()}catch(n){e.push(n instanceof Error?n:new Error(String(n)))}throw new oe(`All credential providers failed:
|
|
90
|
+
`;fa=he.prototype.clearAPQCache.bind(he.prototype),da=he.prototype.getAPQMetrics.bind(he.prototype)});var va={};pe(va,{collectAll:()=>ma,collectPages:()=>ga,createCursorPaginator:()=>xa,createKeysetPaginator:()=>Ea,createLinkHeaderPaginator:()=>Sa,createOffsetPaginator:()=>wa,createPagePaginator:()=>ba,createRelayPaginator:()=>_a,createTokenPaginator:()=>Ta,deserializePaginationState:()=>ka,mergePaginators:()=>Ca,paginate:()=>Q,paginateItems:()=>Rs,parseLinkHeaderNext:()=>ks,prefetchPaginate:()=>ph,serializePaginationState:()=>Ra,takeItems:()=>ya,toPaginationIterator:()=>Aa});function lh(r,e){return{strategy:e,page:r.startPage??1,offset:r.startOffset??0,cursor:r.startCursor??null,prevCursor:null,token:r.startToken??null,done:!1,totalFetched:0}}function hh(r,e,t,n,s,o){let i=n.getTotal?.(e)??null,a=n.perPage??null,c=i!==null&&a!==null?Math.ceil(i/a):null,u=t.page>1||t.offset>0||t.prevCursor!==null;return{items:r,total:i,page:t.page,perPage:a,totalPages:c,hasNext:o??n.hasNext(e,t),hasPrev:u,nextCursor:s?.cursor??null,prevCursor:t.prevCursor??null,raw:e}}async function*Q(r,e="page"){let t=lh(r,e),n=0,s=new Set;for(t.cursor!==null&&s.add(t.cursor),t.token!==null&&s.add(t.token);!t.done&&!(r.signal?.aborted||r.maxPages&&n>=r.maxPages);){n>0&&r.delayMs&&r.delayMs>0&&await gh(r.delayMs,r.signal);let o;try{o=await r.fetch(t)}catch(p){if(r.signal?.aborted)break;throw p}let i=r.getItems(o,t),a=i.length,c=i;r.transform&&(c=c.map(r.transform)),r.filter&&(c=c.filter(r.filter));let u=r.getNext?r.getNext(o,t):null,l=r.hasNext(o,t);if(l){let p=u?.cursor??t.cursor,m=u?.token??t.token,g=u?.page??t.page+1,w=u?.offset??t.offset+a,_=fh.has(t.strategy)&&r.getNext!==void 0&&u==null,b=p!==null&&s.has(p)||m!==null&&s.has(m),E=g===t.page&&w===t.offset&&p===t.cursor&&m===t.token;_||b||E?l=!1:(p!==null&&s.add(p),m!==null&&s.add(m))}let h=hh(c,o,t,r,u,l),d=t.cursor;if(t={...t,page:u?.page??t.page+1,offset:u?.offset??t.offset+a,cursor:u?.cursor??t.cursor,token:u?.token??t.token,done:!l,totalFetched:t.totalFetched+a,prevCursor:d},n++,r.onPage?.(h,t),yield h,!l)break}}async function*Rs(r,e="page"){for await(let t of Q(r,e))for(let n of t.items)yield n}async function ma(r,e="page"){let t=[];for await(let n of Q(r,e))t.push(...n.items);return t}async function ga(r,e="page"){let t=[];for await(let n of Q(r,e))t.push(n);return t}async function ya(r,e,t="page"){if(typeof r!="number"||Number.isNaN(r)||r<=0)return[];let n=Math.floor(r),s=[];for await(let o of Rs(e,t))if(s.push(o),s.length>=n)break;return s}function wa(r){let e=r.paramNames??{},t=e.offset??"offset",n=e.limit??"limit",s=r.fetch??globalThis.fetch;return Q({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},perPage:r.limit,fetch:async o=>{let i=new URL(r.url);return i.searchParams.set(t,String(o.offset)),i.searchParams.set(n,String(r.limit)),(await s(i.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:(o,i)=>r.getItems(o),getTotal:r.getTotal??(()=>null),hasNext:(o,i)=>{let a=r.getTotal?.(o)??null;return r.hasMore?r.hasMore(o,i.totalFetched+r.limit,a):a!==null?i.offset+r.limit<a:r.getItems(o).length===r.limit},getNext:(o,i)=>({offset:i.offset+r.limit})},"offset")}function ba(r){let e=r.paramNames??{},t=e.page??"page",n=e.perPage??"per_page",s=r.fetch??globalThis.fetch;return Q({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},...r.perPage!==void 0?{perPage:r.perPage}:{},startPage:r.startPage??1,fetch:async o=>{let i=new URL(r.url);return i.searchParams.set(t,String(o.page)),i.searchParams.set(n,String(r.perPage)),(await s(i.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:o=>r.getItems(o),getTotal:r.getTotal??(()=>null),hasNext:(o,i)=>{let a=r.getTotalPages?.(o)??null;if(a!==null)return i.page<a;let c=r.getTotal?.(o)??null;return c!==null?i.page*r.perPage<c:r.getItems(o).length===r.perPage},getNext:(o,i)=>({page:i.page+1})},"page")}function xa(r){let e=r.paramName??"cursor",t=r.fetch??globalThis.fetch;return Q({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},startCursor:r.startCursor??null,fetch:async n=>{let s=new URL(r.url);return n.cursor&&s.searchParams.set(e,n.cursor),(await t(s.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:n=>r.getItems(n),hasNext:n=>r.getNextCursor(n)!==null,getNext:n=>{let s=r.getNextCursor(n);return s?{cursor:s}:null}},"cursor")}function _a(r){let e=r.first??20;return Q({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},...r.transform!==void 0?{transform:r.transform}:{},...r.filter!==void 0?{filter:r.filter}:{},...r.onPage!==void 0?{onPage:r.onPage}:{},startCursor:r.startCursor??null,perPage:e,fetch:t=>r.fetch({first:e,after:t.cursor}),getItems:t=>t.edges.map(n=>n.node),getTotal:t=>t.totalCount??null,hasNext:t=>t.pageInfo.hasNextPage,getNext:t=>{let n=t.pageInfo.endCursor??null;return n?{cursor:n}:null}},"relay")}function Sa(r){let e=r.fetch??globalThis.fetch;return Q({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},fetch:async t=>{let n=t.cursor??r.url,s=await e(n,{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}}),o=ks(s.headers.get("link")??"");return{data:await s.json(),headers:s.headers,nextUrl:o}},getItems:t=>r.getItems(t.data),getTotal:t=>r.getTotal?.(t.data,t.headers)??null,hasNext:t=>t.nextUrl!==null,getNext:t=>t.nextUrl?{cursor:t.nextUrl}:null},"link-header")}function ks(r){if(!r)return null;let e=r.split(/(?=<)/).filter(t=>t.trimStart().startsWith("<"));for(let t of e){let n=t.match(dh);if(n&&n[2]&&n[2].toLowerCase().split(/\s+/).includes("next"))return n[1]}return null}function Ta(r){let e=r.tokenParam??"pageToken",t=r.pageSizeParam??"pageSize",n=r.fetch??globalThis.fetch;return Q({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},...r.pageSize!==void 0?{perPage:r.pageSize}:{},fetch:async s=>{let o=new URL(r.url);return s.token&&o.searchParams.set(e,s.token),r.pageSize&&o.searchParams.set(t,String(r.pageSize)),(await n(o.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:s=>r.getItems(s),getTotal:r.getTotal??(()=>null),hasNext:s=>r.getNextToken(s)!==null,getNext:s=>{let o=r.getNextToken(s);return o?{token:o}:null}},"token")}function Ea(r){let e=r.pageSizeParam??"limit",t=r.fetch??globalThis.fetch;return Q({...r.signal!==void 0?{signal:r.signal}:{},...r.maxPages!==void 0?{maxPages:r.maxPages}:{},...r.delayMs!==void 0?{delayMs:r.delayMs}:{},...r.pageSize!==void 0?{perPage:r.pageSize}:{},startCursor:r.startKey??null,fetch:async n=>{let s=new URL(r.url);return n.cursor&&s.searchParams.set(r.keyParam,n.cursor),r.pageSize&&s.searchParams.set(e,String(r.pageSize)),(await t(s.toString(),{...r.headers!==void 0?{headers:r.headers}:{},...r.signal!==void 0?{signal:r.signal}:{}})).json()},getItems:n=>r.getItems(n),hasNext:(n,s)=>{let o=r.getItems(n);return r.hasMore?r.hasMore(o,n):r.pageSize?o.length>=r.pageSize:o.length>0},getNext:(n,s)=>{let o=r.getItems(n),i=r.getLastKey(o);return i?{cursor:i}:null}},"keyset")}async function*ph(r,e="page",t=2){let n=Math.max(0,Math.floor(Number.isFinite(t)?t:0)),s=[],o=Q(r,e),i=!1;function a(){if(i)return;let c=o.next().then(u=>u.done?(i=!0,null):u.value??null);c.catch(()=>{}),s.push(c)}for(let c=0;c<n+1;c++)a();for(;s.length>0;){let c=await s.shift();if(c==null)break;a(),yield c}}function Ra(r){let e=JSON.stringify(r);if(typeof TextEncoder<"u"&&typeof btoa=="function"){let t=new TextEncoder().encode(e),n="",s=32768;for(let o=0;o<t.length;o+=s)n+=String.fromCharCode(...t.subarray(o,o+s));return btoa(n)}return btoa(e)}function Ts(r){return typeof r=="number"&&Number.isFinite(r)}function Es(r){return r==null||typeof r=="string"}function ka(r){let e;try{let s=atob(r),o=new Uint8Array(s.length);for(let a=0;a<s.length;a++)o[a]=s.charCodeAt(a);let i=typeof TextDecoder<"u"?new TextDecoder("utf-8",{fatal:!0}).decode(o):s;e=JSON.parse(i)}catch{throw new Error("Invalid pagination state string")}let t=$(e);if(typeof t!="object"||t===null||Array.isArray(t))throw new Error("Invalid pagination state string");let n=t;if(!Ts(n.page)||!Ts(n.offset)||!Ts(n.totalFetched)||typeof n.strategy!="string"||!mh.has(n.strategy)||typeof n.done!="boolean"||!Es(n.cursor)||!Es(n.prevCursor)||!Es(n.token))throw new Error("Invalid pagination state string");return t}function gh(r,e){return new Promise(t=>{if(e?.aborted){t();return}let n=()=>{clearTimeout(s),e?.removeEventListener("abort",n),t()},s=setTimeout(()=>{e?.removeEventListener("abort",n),t()},r);e?.addEventListener("abort",n,{once:!0})})}function Aa(r){let e=r[Symbol.asyncIterator]();return{next:()=>e.next(),return:t=>e.return?.(t)??Promise.resolve({value:t,done:!0}),throw:t=>e.throw?.(t)??Promise.reject(t),[Symbol.asyncIterator](){return this}}}async function*Ca(...r){let e=r.map(n=>n[Symbol.asyncIterator]()),t=new Set(e.map((n,s)=>s));for(;t.size>0;)for(let n of[...t]){let s;try{s=await e[n].next()}catch{t.delete(n);continue}if(s.done){t.delete(n);continue}yield s.value}}var fh,dh,mh,Vr=V(()=>{"use strict";U();fh=new Set(["cursor","relay","link-header","token","keyset"]);dh=/<([^>]+)>.*?rel=["']([^"']+)["']/i;mh=new Set(["offset","page","cursor","relay","link-header","token","keyset"])});U();var G=class{constructor(e,t={}){f(this,"loaded",0);f(this,"total");f(this,"startMs");f(this,"lastMs");f(this,"lastLoaded",0);f(this,"smoothedRate",0);f(this,"smoothing");f(this,"_done",!1);f(this,"lastEmitMs",-1/0);f(this,"minIntervalMs");f(this,"onProgress");this.total=e,this.startMs=N(),this.lastMs=this.startMs,this.smoothing=t.smoothingFactor??.3,this.onProgress=t.onProgress??null;let n=t.throttleHz??10;this.minIntervalMs=n>0?1e3/n:0}update(e){this.loaded+=e;let t=this._snapshot();if(this.onProgress){let n=N();(this.minIntervalMs===0||n-this.lastEmitMs>=this.minIntervalMs)&&(this.lastEmitMs=n,this.onProgress(t))}return t}complete(){this._done=!0;let e=this._snapshot();return this.onProgress?.(e),e}snapshot(){return this._snapshot()}get bytesLoaded(){return this.loaded}get isDone(){return this._done}_snapshot(){let e=N(),t=e-this.startMs,n=e-this.lastMs;if(n>0){let i=(this.loaded-this.lastLoaded)/n*1e3;this.smoothedRate=this.smoothedRate===0?i:this.smoothedRate*(1-this.smoothing)+i*this.smoothing,this.lastMs=e,this.lastLoaded=this.loaded}let s=this.total!==null&&this.total>0?Math.min(100,Math.max(0,this.loaded/this.total*100)):null,o=this.total!==null&&this.smoothedRate>0?Math.max(0,(this.total-this.loaded)/this.smoothedRate*1e3):null;return{loaded:this.loaded,total:this.total,percent:this._done?this.total!==null?100:null:s,rate:this.smoothedRate,eta:this._done?0:o,elapsed:t,done:this._done}}};function hr(r,e,t={}){let n=new G(e,t);if(!r)return n.complete(),{stream:new ReadableStream({start:l=>l.close()}),tracker:n};let s;if(r instanceof ReadableStream)s=r;else if(typeof r=="string"){let l=new TextEncoder().encode(r);s=new ReadableStream({start(h){h.enqueue(l),h.close()}})}else s=new ReadableStream({start(l){l.enqueue(r),l.close()}});let o=null,i=null,a=!1,c=()=>{i&&(t.signal?.removeEventListener("abort",i),i=null)};return{stream:new ReadableStream({start(l){if(t.signal?.aborted){l.error(new DOMException("Upload aborted","AbortError"));return}o=s.getReader(),i=()=>{if(a)return;a=!0;let h=o;o=null,h?.cancel("aborted").catch(()=>{}),l.error(new DOMException("Upload aborted","AbortError"))},t.signal?.addEventListener("abort",i,{once:!0})},async pull(l){let h=o;if(h)try{let{done:d,value:p}=await h.read();if(d){c(),o===h&&(o=null),h.releaseLock(),a||(n.complete(),l.close());return}n.update(p.byteLength),l.enqueue(p)}catch(d){c(),o===h&&(o=null),a||n.complete(),l.error(d)}},cancel(l){c();let h=o;o=null,h?.cancel(l).catch(()=>{})}}),tracker:n}}function Pc(r,e={}){return hr(r.stream(),r.size,e)}function Lc(r,e={}){let t=r.headers.get("content-length"),n=t?parseInt(t,10):null,s=new G(isNaN(n)?null:n,e);if(!r.body)return s.complete(),{response:r,tracker:s};let o=r.body,i=null,a=!1,c=null,u=()=>{c&&(e.signal?.removeEventListener("abort",c),c=null)},l=new ReadableStream({start(d){if(e.signal?.aborted){a=!0,d.error(new DOMException("Download aborted","AbortError"));return}i=o.getReader(),c=()=>{if(a)return;a=!0;let p=i;i=null,p?.cancel("aborted").catch(()=>{}),d.error(new DOMException("Download aborted","AbortError"))},e.signal?.addEventListener("abort",c,{once:!0})},async pull(d){let p=i;if(p)try{let{done:m,value:g}=await p.read();if(m){u(),i===p&&(i=null),p.releaseLock(),a||s.complete(),d.close();return}s.update(g.byteLength),d.enqueue(g)}catch(m){u(),i===p&&(i=null),a||s.complete(),d.error(m)}},cancel(d){u();let p=i;i=null,p?.cancel(d).catch(()=>{})}}),h=new Response(l,{status:r.status,statusText:r.statusText,headers:r.headers});for(let d of["url","redirected","type"])try{Object.defineProperty(h,d,{value:r[d],enumerable:!0,configurable:!0})}catch{}return{response:h,tracker:s}}async function*Ic(r,e,t={}){let n=new G(e,t),s=r.getReader();try{for(;;){if(t.signal?.aborted)throw new DOMException("Stream aborted","AbortError");let{done:o,value:i}=await s.read();if(o){let c=n.complete();yield{chunk:new Uint8Array(0),progress:c};break}let a=n.update(i.byteLength);yield{chunk:i,progress:a}}}finally{s.releaseLock()}}async function Oc(r,e,t={}){let n=new G(e,t),s=[],o=r.getReader();if(t.signal?.aborted)throw o.cancel("aborted").catch(()=>{}),o.releaseLock(),new DOMException("Stream aborted","AbortError");let i=!1,a=()=>{i=!0,o.cancel("aborted").catch(()=>{})};t.signal&&t.signal.addEventListener("abort",a,{once:!0});try{for(;;){let{done:h,value:d}=await o.read();if(h)break;s.push(d),n.update(d.byteLength)}if(i)throw new DOMException("Stream aborted","AbortError")}finally{o.releaseLock(),t.signal?.removeEventListener("abort",a)}n.complete();let c=s.reduce((h,d)=>h+d.byteLength,0),u=new Uint8Array(c),l=0;for(let h of s)u.set(h,l),l+=h.byteLength;return{data:u,tracker:n}}var un=class{constructor(e,t){f(this,"partCount");f(this,"trackers",new Map);f(this,"totals",new Map);f(this,"onOverall");this.partCount=e,this.onOverall=t??null}createPartTracker(e,t,n={}){let s=this.trackers.get(e);if(s)return s;this.totals.set(e,t);let o=new G(t,{...n,onProgress:i=>{n.onProgress?.(i),this._emit()}});return this.trackers.set(e,o),o}getOverall(){let e=[],t=0,n=0,s=0,o=!0,i=0;for(let h=0;h<this.partCount;h++){let p=this.trackers.get(h)?.snapshot()??{loaded:0,total:this.totals.get(h)??null,percent:0,rate:0,eta:null,elapsed:0,done:!1};e.push(p),t+=p.loaded,p.total!==null&&(n+=p.total),s+=p.rate,p.done||(o=!1),p.elapsed>i&&(i=p.elapsed)}let a=n>0,c=a?Math.max(0,Math.min(100,t/n*100)):null,u=a&&s>0?Math.max(0,(n-t)/s*1e3):null;return{parts:e,overall:{loaded:t,total:a?n:null,percent:c,rate:s,eta:o?0:u,elapsed:i,done:o}}}_emit(){this.onOverall&&this.onOverall(this.getOverall())}},Gs=globalThis.XMLHttpRequest;function Mc(r,e){return new Promise((t,n)=>{if(!Gs){n(new Error("XMLHttpRequest is not available in this runtime. Use fetch() instead."));return}if(e.responseType&&e.responseType!=="text"){n(new TypeError(`xhrFetch: responseType "${e.responseType}" cannot produce a text body. XHRResult.body is a string \u2014 use "text", or omit responseType.`));return}let s=new Gs,o=new G(null,{...e.onUploadProgress!==void 0?{onProgress:e.onUploadProgress}:{},...e.throttleHz!==void 0?{throttleHz:e.throttleHz}:{},...e.smoothingFactor!==void 0?{smoothingFactor:e.smoothingFactor}:{}}),i=new G(null,{...e.onDownloadProgress!==void 0?{onProgress:e.onDownloadProgress}:{},...e.throttleHz!==void 0?{throttleHz:e.throttleHz}:{},...e.smoothingFactor!==void 0?{smoothingFactor:e.smoothingFactor}:{}});s.open(e.method??"GET",r,!0);for(let[u,l]of Object.entries(e.headers??{}))s.setRequestHeader(u,l);e.responseType&&(s.responseType=e.responseType),s.upload&&e.onUploadProgress&&(s.upload.addEventListener("loadstart",u=>{}),s.upload.addEventListener("progress",u=>{o.update(u.loaded-o.bytesLoaded)}),s.upload.addEventListener("load",()=>o.complete())),e.onDownloadProgress&&s.addEventListener("progress",u=>{i.update(u.loaded-i.bytesLoaded)});let a=()=>{s.abort(),n(new DOMException("Request aborted","AbortError"))},c=()=>e.signal?.removeEventListener("abort",a);if(e.signal?.addEventListener("abort",a,{once:!0}),e.signal?.aborted){c(),a();return}s.addEventListener("load",()=>{c(),i.complete();let u=s.getAllResponseHeaders(),l={};for(let h of u.split(/[\r\n]+/)){let d=h.indexOf(":");if(d<=0)continue;let p=h.slice(0,d).trim().toLowerCase();if(p==="")continue;let m=h.slice(d+1).trim();if(p==="__proto__"){Object.defineProperty(l,p,{value:m,writable:!0,enumerable:!0,configurable:!0});continue}l[p]=m}t({status:s.status,statusText:s.statusText,headers:l,body:typeof s.response=="string"?s.response:String(s.response??"")})}),s.addEventListener("error",()=>{c(),n(new TypeError("Network request failed"))}),s.addEventListener("timeout",()=>{c(),n(new TypeError("Request timed out"))}),s.addEventListener("abort",()=>{c(),n(new DOMException("Request aborted","AbortError"))});try{s.send(e.body??null)}catch(u){throw c(),u}})}var Xs=["B","KB","MB","GB","TB"];function lr(r,e=2){if(Number.isNaN(r))return"NaN B";if(r===1/0)return"\u221E";if(r===-1/0)return"-\u221E";if(r===0)return"0 B";let t=1024,n=Math.max(0,e),s=r<0?"-":"",o=Math.abs(r),i=Math.min(Math.max(0,Math.floor(Math.log(o)/Math.log(t))),Xs.length-1),a=Xs[i];return`${s}${parseFloat((o/Math.pow(t,i)).toFixed(n))} ${a}`}function Ys(r){return`${lr(r)}/s`}function Zs(r){if(!isFinite(r)||r<0)return"\u221E";let e=Math.round(r/1e3),t=Math.floor(e/3600),n=Math.floor(e%3600/60),s=e%60;return t>0?`${t}h ${n}m ${s}s`:n>0?`${n}m ${s}s`:`${s}s`}function Nc(r){let e=lr(r.loaded),t=r.total!==null?` / ${lr(r.total)}`:"",n=r.percent!==null?` (${r.percent.toFixed(1)}%)`:"",s=r.rate>0?` @ ${Ys(r.rate)}`:"",o=r.eta!==null&&!r.done?` ETA ${Zs(r.eta)}`:"";return`${e}${t}${n}${s}${o}`}function Dc(r,e=10){let t=e>0?1e3/e:0,n=-1/0;return s=>{let o=N();(s.done||o-n>=t)&&(n=o,r(s))}}var eo=["traceparent","tracestate","baggage","x-request-id","x-correlation-id","x-trace-id"];async function to(r){if(r===void 0)return"";let e=new Map;for(let[s,o]of Object.entries(r))e.set(s.toLowerCase(),o);let t=[];for(let s of eo)e.delete(s);for(let s of[...e.keys()].sort())t.push(`${s}=${e.get(s)}`);if(t.length===0)return"";let n=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(t.join("|")));return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("")}function ro(r,e,t){return t?`${r}:${e}:${t}`:`${r}:${e}`}function $c(r,e,t){if(t===void 0)return`${r}::${e}`;let n=Object.entries(t).filter(([s])=>!eo.includes(s.toLowerCase())).map(([s,o])=>`${s.toLowerCase()}=${o}`).sort();return n.length===0?`${r}::${e}`:`${r}::${e}::${n.join("&")}`}var Ye=class{constructor(e={}){f(this,"inflight",new Map);f(this,"timeouts",new Map);f(this,"_setTimeout");f(this,"_clearTimeout");f(this,"windowMs");f(this,"methods");f(this,"keyFn");f(this,"_globalSignal");f(this,"_hits",0);f(this,"_misses",0);this.windowMs=e.windowMs??0,this.methods=new Set((e.methods??["GET","HEAD"]).map(t=>t.toUpperCase())),this.keyFn=e.keyFn??$c,this._globalSignal=e.signal??null,this._setTimeout=e.timers?.setTimeout??((t,n)=>setTimeout(t,n)),this._clearTimeout=e.timers?.clearTimeout??(t=>clearTimeout(t))}execute(e,t,n,s,o,i){let a=o??this.windowMs,c=i??this._globalSignal;if(c?.aborted)return this._misses++,n();if(!this.methods.has(e.toUpperCase()))return this._misses++,n();let u=e.toUpperCase(),l=this.keyFn(u,t,s),h=this.inflight.get(l);if(h){if(h.resolvedAt===null)return this._hits++,h.promise;if(a>0&&Date.now()-h.resolvedAt<=a)return this._hits++,h.promise;if(a>0)this.inflight.delete(l);else return this._misses++,n()}this._misses++;let d={resolvedAt:null,promise:void 0};return this.inflight.set(l,d),d.promise=(async()=>{let p=c?()=>{this.inflight.delete(l);let m=this.timeouts.get(l);m!==void 0&&(this._clearTimeout(m),this.timeouts.delete(l))}:null;c&&p&&c.addEventListener("abort",p,{once:!0});try{return await n()}finally{c&&p&&c.removeEventListener("abort",p)}})().then(p=>{if(d.resolvedAt=Date.now(),d.result=p,this.inflight.get(l)!==d)return p;if(a<=0)this.inflight.delete(l);else{let m=this.timeouts.get(l);m!==void 0&&(this._clearTimeout(m),this.timeouts.delete(l));let g=this._setTimeout(()=>{this.inflight.delete(l),this.timeouts.delete(l)},a);this.timeouts.set(l,g)}return p},p=>{d.resolvedAt=Date.now(),d.error=p,this.inflight.get(l)===d&&this.inflight.delete(l);let m=this.timeouts.get(l);throw m!==void 0&&(this._clearTimeout(m),this.timeouts.delete(l)),p}),d.promise}get hits(){return this._hits}get misses(){return this._misses}get inFlightCount(){let e=0;for(let t of this.inflight.values())t.resolvedAt===null&&e++;return e}get keys(){return[...this.inflight.keys()]}getStats(){let e=this._hits+this._misses;return{hits:this._hits,misses:this._misses,totalRequests:e,hitRate:e===0?0:this._hits/e,inFlightCount:this.inFlightCount,trackedKeys:this.inflight.size}}resetMetrics(){this._hits=0,this._misses=0}clear(){this.inflight.clear();for(let e of this.timeouts.values())this._clearTimeout(e);this.timeouts.clear()}invalidate(e){let t=this.timeouts.get(e);return t&&(this._clearTimeout(t),this.timeouts.delete(e)),this.inflight.delete(e)}destroy(){this.clear()}};function Uc(r){return new Ye(r)}var _t=class extends Error{constructor(t,n){super(`Circuit breaker ${n.state} for "${t}" \u2014 request rejected`);f(this,"code","ECIRCUITOPEN");f(this,"state");this.name="CircuitOpenError",this.state=n}},St=class{constructor(e,t={}){f(this,"key");f(this,"failureThreshold");f(this,"windowSize");f(this,"resetTimeoutMs");f(this,"successThreshold");f(this,"halfOpenConcurrency");f(this,"failureFilter");f(this,"cfg");f(this,"_state","CLOSED");f(this,"_window",[]);f(this,"_consecutiveFails",0);f(this,"_consecutiveSucc",0);f(this,"_openedAt",null);f(this,"_halfOpenAt",null);f(this,"_lastFailureAt",null);f(this,"_lastSuccessAt",null);f(this,"_inFlightProbes",0);f(this,"_totalRequests",0);f(this,"_totalFailures",0);f(this,"_totalSuccesses",0);f(this,"_totalRejected",0);this.key=e,this.failureThreshold=t.failureThreshold??5,this.windowSize=t.windowSize??10,this.windowSize>0&&this.windowSize<this.failureThreshold&&(console.warn(`[CircuitBreaker] "${e}": windowSize (${this.windowSize}) is smaller than failureThreshold (${this.failureThreshold}), so the threshold could never be reached and the circuit would never open. Raising windowSize to ${this.failureThreshold}.`),this.windowSize=this.failureThreshold),this.resetTimeoutMs=t.resetTimeoutMs??3e4,this.successThreshold=t.successThreshold??2,this.halfOpenConcurrency=t.halfOpenConcurrency??1,this.failureFilter={networkErrors:t.failures?.networkErrors??!0,timeouts:t.failures?.timeouts??!0,serverErrors:t.failures?.serverErrors??!1,statusCodes:t.failures?.statusCodes??[]},this.cfg=t}get state(){return this._effectiveState()}_effectiveState(){return this._state==="OPEN"&&this._openedAt!==null&&Date.now()-this._openedAt>=this.resetTimeoutMs?"HALF_OPEN":this._state}get snapshot(){let e=this._consecutiveFails;if(this.windowSize>0){e=0;for(let t of this._window)t||e++}return{state:this._effectiveState(),failureCount:e,successCount:this._consecutiveSucc,lastFailureAt:this._lastFailureAt,lastSuccessAt:this._lastSuccessAt,openedAt:this._openedAt,halfOpenAt:this._halfOpenAt,totalRequests:this._totalRequests,totalFailures:this._totalFailures,totalSuccesses:this._totalSuccesses,totalRejected:this._totalRejected,inFlightProbes:this._inFlightProbes}}execute(e){if(this._checkTransition(),this._state==="OPEN"){this._totalRejected++;let n=this.snapshot;return this.cfg.onRejected?.(n),Promise.reject(new _t(this.key,n))}let t=!1;if(this._state==="HALF_OPEN"){if(this._inFlightProbes>=this.halfOpenConcurrency){this._totalRejected++;let n=this.snapshot;return this.cfg.onRejected?.(n),Promise.reject(new _t(this.key,n))}this._inFlightProbes++,t=!0}return this._totalRequests++,Promise.resolve().then(e).then(n=>(t&&(this._inFlightProbes=Math.max(0,this._inFlightProbes-1)),this._recordSuccess(),n),n=>{throw t&&(this._inFlightProbes=Math.max(0,this._inFlightProbes-1)),this._isCountableFailure(n)&&this._recordFailure(),n})}trip(){this._state!=="OPEN"&&(this._openedAt=Date.now(),this._state="OPEN",this.cfg.onOpen?.(this.snapshot))}reset(){this._state="CLOSED",this._window=[],this._consecutiveFails=0,this._consecutiveSucc=0,this._openedAt=null,this._halfOpenAt=null,this._inFlightProbes=0,this.cfg.onClose?.(this.snapshot)}_checkTransition(){this._state==="OPEN"&&this._openedAt!==null&&Date.now()-this._openedAt>=this.resetTimeoutMs&&(this._state="HALF_OPEN",this._halfOpenAt=Date.now(),this._consecutiveSucc=0,this._inFlightProbes=0,this.cfg.onHalfOpen?.(this.snapshot))}_recordSuccess(){if(this._lastSuccessAt=Date.now(),this._totalSuccesses++,this._consecutiveFails=0,this._state==="HALF_OPEN"){this._consecutiveSucc++,this._consecutiveSucc>=this.successThreshold&&this.reset();return}this.windowSize>0&&(this._window.push(!0),this._window.length>this.windowSize&&this._window.shift())}_recordFailure(){if(this._lastFailureAt=Date.now(),this._totalFailures++,this._consecutiveSucc=0,this._consecutiveFails++,this._state==="HALF_OPEN"){this._openedAt=Date.now(),this._state="OPEN",this.cfg.onOpen?.(this.snapshot);return}this.windowSize>0?(this._window.push(!1),this._window.length>this.windowSize&&this._window.shift(),this._window.filter(t=>!t).length>=this.failureThreshold&&(this._openedAt=Date.now(),this._state="OPEN",this.cfg.onOpen?.(this.snapshot))):this._consecutiveFails>=this.failureThreshold&&(this._openedAt=Date.now(),this._state="OPEN",this.cfg.onOpen?.(this.snapshot))}_isCountableFailure(e){if(!(e instanceof Error))return!1;let t=e.code;if(this.failureFilter.networkErrors&&t==="ENETWORK"||this.failureFilter.timeouts&&(t==="ETIMEOUT"||t==="ETIMEDOUT"))return!0;if(this.failureFilter.serverErrors){let n=e.status;if(n&&n>=500)return!0}if(this.failureFilter.statusCodes&&this.failureFilter.statusCodes.length>0){let n=e.status;if(n&&this.failureFilter.statusCodes.includes(n))return!0}return!1}},Ze=class{constructor(e={}){f(this,"breakers",new Map);f(this,"defaultConfig");this.defaultConfig=e}get(e,t){return this.breakers.has(e)||this.breakers.set(e,new St(e,{...this.defaultConfig,...t})),this.breakers.get(e)}execute(e,t,n){return this.get(e,n).execute(t)}trip(e){this.get(e).trip()}reset(e){this.get(e).reset()}snapshots(){let e={};for(let[t,n]of this.breakers)e[t]=n.snapshot;return e}delete(e){this.breakers.delete(e)}clear(){this.breakers.clear()}get size(){return this.breakers.size}};function Hc(r,e){return new St(r,e)}function jc(r){return new Ze(r)}U();function Bc(r){if(r)for(let[e,t]of Object.entries(r)){if(!ke(e))throw new K(`Invalid WebSocket handshake header name: ${JSON.stringify(e)}`);if(!me(t))throw new K(`Invalid value for WebSocket handshake header ${JSON.stringify(e)}: must be a string of printable characters with no control characters`)}}var K=class extends Error{constructor(t,n){super(t,n!=null?{cause:n}:void 0);f(this,"code","EWSCONNECT");f(this,"originalCause");this.name="WSError",this.originalCause=n}},fr=class extends Error{constructor(t){super(`WebSocket gave up after ${t} reconnect attempts`);f(this,"attempts");f(this,"code","EWSMAXRECONNECTS");this.attempts=t,this.name="WSMaxReconnectsError"}},Tt=class extends Error{constructor(t,n){super(`WebSocket connect to ${t} timed out after ${n}ms`);f(this,"code","EWSCONNECTTIMEOUT");this.name="WSConnectTimeoutError"}},ln=class extends Error{constructor(t){super(`WebSocket send rate limited; retry in ${t}ms`);f(this,"delayMs");f(this,"code","EWSRATELIMIT");this.delayMs=t,this.name="WSRateLimitError"}},et=class{constructor(e){f(this,"_url");f(this,"_protocols");f(this,"_headers");f(this,"_maxReconnects");f(this,"_reconnectBaseMs");f(this,"_reconnectMaxMs");f(this,"_reconnectJitter");f(this,"_pingIntervalMs");f(this,"_pingPayload");f(this,"_pongMatcher");f(this,"_pongTimeoutMs");f(this,"_connectTimeoutMs");f(this,"_bufferMessages");f(this,"_maxBufferSize");f(this,"_cbOpen");f(this,"_cbMessage");f(this,"_cbClose");f(this,"_cbError");f(this,"_cbReconnect");f(this,"_cbGiveUp");f(this,"_ws",null);f(this,"_state","CLOSED");f(this,"_reconnAttempt",0);f(this,"_buffer",[]);f(this,"_pingTimer",null);f(this,"_pongTimer",null);f(this,"_reconnTimer",null);f(this,"_msgListeners",[]);f(this,"_closeListeners",[]);f(this,"_openWaiters",[]);f(this,"_correlations",new Map);f(this,"_aborted",!1);f(this,"_externalSignal",null);f(this,"_onExternalAbort",()=>this.close(1e3,"AbortSignal aborted"));f(this,"_iterQueue",[]);f(this,"_iterWaiter",null);f(this,"_iterDone",!1);f(this,"_rooms",[]);f(this,"_keepRooms");f(this,"_highWaterMark");f(this,"_lowWaterMark");f(this,"_bufferedBytes",0);f(this,"_drainWaiters",[]);f(this,"_cbBackpressure");f(this,"_wasBackpressured",!1);f(this,"_maxSendRate");f(this,"_tokens",0);f(this,"_lastToken",0);f(this,"_serverEndpoint",null);f(this,"_mx",{messagesSent:0,messagesReceived:0,bytesSent:0,bytesReceived:0,reconnectCount:0,totalConnectAttempts:0,connectedAt:null,closedAt:null,uptimeMs:0});f(this,"_openedAt",null);if(this._url=e.url,this._protocols=e.protocols,this._headers=e.headers,Bc(e.headers),this._maxReconnects=e.maxReconnects??10,this._reconnectBaseMs=e.reconnectBaseMs??1e3,this._reconnectMaxMs=e.reconnectMaxMs??3e4,this._reconnectJitter=e.reconnectJitter??.3,this._pingIntervalMs=e.pingIntervalMs??3e4,this._pingPayload=e.pingPayload??"ping",this._pongMatcher=e.pongMatcher,this._pongTimeoutMs=e.pongTimeoutMs??1e4,this._connectTimeoutMs=e.connectTimeoutMs??3e4,this._bufferMessages=e.bufferMessages??!0,this._maxBufferSize=e.maxBufferSize??100,this._cbOpen=e.onOpen,this._cbMessage=e.onMessage,this._cbClose=e.onClose,this._cbError=e.onError,this._cbReconnect=e.onReconnect,this._cbGiveUp=e.onGiveUp,this._cbBackpressure=e.onBackpressure,this._highWaterMark=e.highWaterMark??65536,this._lowWaterMark=e.lowWaterMark??16384,this._maxSendRate=e.maxSendRate??0,this._keepRooms=e.keepRooms??!0,e.rooms&&e.rooms.length>0)for(let t of e.rooms)this._rooms.push({room:t,joinedAt:0});this._externalSignal=e.signal??null,this._externalSignal?.addEventListener("abort",this._onExternalAbort,{once:!0})}get state(){return this._state}get connected(){return this._state==="OPEN"}get bufferedCount(){return this._buffer.length}get metrics(){return{...this._mx,uptimeMs:this._mx.uptimeMs+(this._openedAt!=null?Date.now()-this._openedAt:0)}}connect(){return this._state==="OPEN"?Promise.resolve():this._state==="CONNECTING"||this._state==="RECONNECTING"?new Promise((e,t)=>this._openWaiters.push({resolve:e,reject:t})):this._doConnect(!1)}waitForOpen(e=6e4){return this._state==="OPEN"?Promise.resolve():new Promise((t,n)=>{let s={resolve:()=>{o&&clearTimeout(o),t()},reject:i=>{o&&clearTimeout(o),n(i)}},o=e>0?setTimeout(()=>{let i=this._openWaiters.indexOf(s);i!==-1&&this._openWaiters.splice(i,1),n(new Tt(this._url,e))},e):null;this._openWaiters.push(s)})}close(e=1e3,t="Client closed"){this._aborted=!0,this._externalSignal?.removeEventListener("abort",this._onExternalAbort),this._externalSignal=null,this._stopAll();for(let s of this._drainWaiters.splice(0))s();this._state="CLOSING";let n=this._ws;if(n){if(n.onopen=n.onmessage=n.onerror=n.onclose=null,n.readyState<2)try{n.close(e,t)}catch{}this._ws=null}this._buffer=[],this._bufferedBytes=0,this._iterQueue=[],this._iterDone=!0,this._iterWaiter&&(this._iterWaiter({done:!0,value:void 0}),this._iterWaiter=null);for(let s of this._openWaiters.splice(0))s.reject(new Error("Client closed"));this._rooms=[];for(let s of this._correlations.values())s.timer&&clearTimeout(s.timer),s.reject(new Error("Client closed"));this._correlations.clear(),this._openedAt!=null&&(this._mx.uptimeMs+=Date.now()-this._openedAt,this._openedAt=null),this._mx.closedAt=Date.now(),this._state="CLOSED";for(let s of this._closeListeners)try{s({code:e,reason:t})}catch{}this._closeListeners=[],this._msgListeners=[],this._cbClose?.(e,t,!1)}destroy(){this._aborted=!0,this._stopAll();for(let t of this._drainWaiters.splice(0))t();this._state="CLOSING";let e=this._ws;if(e){if(e.onopen=e.onmessage=e.onerror=e.onclose=null,e.readyState<2)try{e.close(1e3,"Destroyed")}catch{}this._ws=null}this._buffer=[],this._bufferedBytes=0,this._iterQueue=[],this._iterDone=!0,this._iterWaiter&&(this._iterWaiter({done:!0,value:void 0}),this._iterWaiter=null),this._msgListeners=[];for(let t of this._openWaiters.splice(0))t.reject(new Error("Client destroyed"));this._rooms=[];for(let t of this._correlations.values())t.timer&&clearTimeout(t.timer),t.reject(new Error("Client destroyed"));this._correlations.clear(),this._openedAt!=null&&(this._mx.uptimeMs+=Date.now()-this._openedAt,this._openedAt=null),this._mx.closedAt=Date.now(),this._state="CLOSED";for(let t of this._closeListeners)try{t({code:1e3,reason:"Destroyed"})}catch{}this._closeListeners=[],this._cbClose?.(1e3,"Destroyed",!1)}send(e){this._tx(e)&&this._mx.messagesSent++}sendBinary(e){let t=e instanceof Uint8Array?e.slice().buffer:e;this._tx(t)&&this._mx.messagesSent++}sendJSON(e){this.send(JSON.stringify(e))}request(e,t,n=o=>o.json??o.data,s=1e4){return new Promise((o,i)=>{let a=`${Date.now()}-${Math.random()}`,c=s>0?setTimeout(()=>{let u=this._correlations.get(a);u?.timer&&clearTimeout(u.timer),this._correlations.delete(a),i(new K(`request() timed out after ${s}ms waiting for reply`))},s):null;this._correlations.set(a,{matcher:t,extract:n,resolve:o,reject:i,timer:c}),typeof e=="string"?this.send(e):this.sendJSON(e)})}onMessage(e){return this._msgListeners.push(e),()=>{let t=this._msgListeners.indexOf(e);t!==-1&&this._msgListeners.splice(t,1)}}onClose(e){return this._closeListeners.push(e),()=>{let t=this._closeListeners.indexOf(e);t!==-1&&this._closeListeners.splice(t,1)}}drainBuffer(){let e=this._buffer.splice(0);return this._bufferedBytes=0,this._updateBackpressure(),e}join(e,t){this._rooms.some(n=>n.room===e&&n.namespace===t)||(this._rooms.push({room:e,namespace:t,joinedAt:Date.now()}),this.sendJSON({type:"room:join",room:e,namespace:t??null}))}leave(e,t){let n=this._rooms.findIndex(s=>s.room===e&&s.namespace===t);n!==-1&&(this._rooms.splice(n,1),this.sendJSON({type:"room:leave",room:e,namespace:t??null}))}get rooms(){return this._rooms}get backpressure(){return{bufferedBytes:this._bufferedBytes,highWaterMark:this._highWaterMark,lowWaterMark:this._lowWaterMark,isBackpressured:this._bufferedBytes>=this._highWaterMark}}drain(e=3e4){return this._state==="CLOSED"?Promise.reject(new K("Cannot drain \u2014 socket is CLOSED")):this._bufferedBytes<this._lowWaterMark?Promise.resolve():new Promise((t,n)=>{let s=e>0?setTimeout(()=>n(new K(`drain() timed out after ${e}ms`)),e):null;this._drainWaiters.push(()=>{s&&clearTimeout(s),t()})})}async drainAndClose(e=3e4){if(this._state!=="CLOSED"){try{await this.drain(e)}catch{}this.close(1e3,"Graceful shutdown")}}get serverEndpoint(){return this._serverEndpoint}[Symbol.asyncIterator](){return{next:()=>this._iterQueue.length>0?Promise.resolve({done:!1,value:this._iterQueue.shift()}):this._iterDone?Promise.resolve({done:!0,value:void 0}):new Promise(e=>{this._iterWaiter=e}),return:()=>(this.close(1e3,"Iterator returned"),Promise.resolve({done:!0,value:void 0}))}}_doConnect(e){return this._mx.totalConnectAttempts++,this._state="CONNECTING",new Promise((t,n)=>{let s=!1,o=null;this._connectTimeoutMs>0&&(o=setTimeout(()=>{if(s)return;s=!0;let l=new Tt(this._url,this._connectTimeoutMs);n(l),this._cbError?.(l);let h=this._ws;if(h&&(h.onopen=h.onmessage=h.onerror=h.onclose=null,h.close(),this._ws=null),!this._aborted&&this._canRecon())this._scheduleRecon();else{this._state="CLOSED";for(let d of this._openWaiters.splice(0))d.reject(l);this._rejectCorrelations("Connection timeout")}},this._connectTimeoutMs));let i=()=>{o&&(clearTimeout(o),o=null)},a=this._url,c=(()=>{try{let l=globalThis;if(typeof globalThis.Deno<"u"||typeof globalThis.Bun<"u"||l.process?.versions?.node||typeof window>"u")return!1;let h=window;return typeof h.navigator<"u"&&typeof h.document<"u"}catch{return!1}})();if(this._headers&&c){let l=new URL(a);for(let[h,d]of Object.entries(this._headers))l.searchParams.set(h,d);a=l.href}let u;try{u=this._protocols?new WebSocket(a,this._protocols):new WebSocket(a)}catch(l){i(),this._state="CLOSED",n(new K("Failed to construct WebSocket",l instanceof Error?l:void 0));return}if(this._headers&&!c){let l=u;if(typeof l.setHeader=="function")for(let[h,d]of Object.entries(this._headers))l.setHeader(h,d)}this._ws=u,u.binaryType="arraybuffer",u.onopen=()=>{if(i(),!s){if(s=!0,this._state="OPEN",this._openedAt=Date.now(),this._mx.connectedAt=this._openedAt,e&&this._mx.reconnectCount++,this._serverEndpoint=u.url??this._url,this._reconnAttempt=0,this._rooms.length>0&&this._keepRooms)for(let l of this._rooms)try{u.send(JSON.stringify({type:"room:join",room:l.room,namespace:l.namespace??null}))}catch{}this._startPing(),this._flushBuf(),this._cbOpen?.(this._mx.reconnectCount),t();for(let l of this._openWaiters.splice(0))l.resolve()}},u.onmessage=async l=>{if(this._aborted)return;let h,d,p;if(typeof l.data=="string"){h=l.data,p=new TextEncoder().encode(h).byteLength;try{d=$(JSON.parse(h))}catch{}}else if(l.data instanceof ArrayBuffer)h=new Uint8Array(l.data),p=h.byteLength;else if(typeof Blob<"u"&&l.data instanceof Blob){let g=await l.data.arrayBuffer();h=new Uint8Array(g),p=h.byteLength}else h=new Uint8Array(l.data),p=h.byteLength;this._mx.messagesReceived++,this._mx.bytesReceived+=p;let m={data:h,json:d,timestamp:Date.now()};if(this._pongMatcher&&typeof h=="string"&&(typeof this._pongMatcher=="string"?h===this._pongMatcher:this._pongMatcher.test(h))){this._pongTimer&&(clearTimeout(this._pongTimer),this._pongTimer=null);return}for(let[g,w]of this._correlations)if(w.matcher(m)){this._correlations.delete(g),w.timer&&clearTimeout(w.timer);try{w.resolve(w.extract(m))}catch(y){w.reject(y)}return}for(let g of this._msgListeners)try{g(m)}catch{}if(this._cbMessage?.(m),this._iterWaiter){let g=this._iterWaiter;this._iterWaiter=null,g({done:!1,value:m})}else this._iterQueue.length>=this._maxBufferSize&&this._iterQueue.shift(),this._iterQueue.push(m)},u.onerror=l=>{this._cbError?.(new K(l.message??"WebSocket error",l.error))},u.onclose=l=>{i(),this._stopPing(),this._openedAt!=null&&(this._mx.uptimeMs+=Date.now()-this._openedAt,this._openedAt=null),this._mx.closedAt=Date.now();for(let d of this._closeListeners)try{d({code:l.code,reason:l.reason})}catch{}if(s||(s=!0,n(new K(`Socket closed before open (code ${l.code}: ${l.reason})`))),this._aborted||l.code===1e3||l.code===1001){this._state="CLOSED",this._cbClose?.(l.code,l.reason,!1),this._terminateIter();for(let d of this._openWaiters.splice(0))d.reject(new K(`Socket closed (code ${l.code})`));this._rejectCorrelations(`Socket closed (code ${l.code})`);return}let h=this._canRecon();if(this._cbClose?.(l.code,l.reason,h),h)this._scheduleRecon();else{this._cbGiveUp?.(this._reconnAttempt),this._state="CLOSED",this._terminateIter();let d=new fr(this._reconnAttempt);for(let p of this._openWaiters.splice(0))p.reject(d);this._rejectCorrelations("Max reconnects exceeded")}}})}_canRecon(){return this._maxReconnects===0||this._reconnAttempt<this._maxReconnects}_scheduleRecon(){this._reconnTimer&&(clearTimeout(this._reconnTimer),this._reconnTimer=null),this._state="RECONNECTING",this._reconnAttempt++;let e=this._reconnectBaseMs*Math.pow(2,this._reconnAttempt-1),t=Math.min(e,this._reconnectMaxMs),n=Math.floor(t*(1+this._reconnectJitter*Math.random()));this._cbReconnect?.(this._reconnAttempt,n),this._reconnTimer=setTimeout(()=>{this._reconnTimer=null,this._aborted||this._doConnect(!0).catch(()=>{})},n)}_tx(e){let t=this._ws,n=typeof e=="string"?new TextEncoder().encode(e).byteLength:e.byteLength;if(this._maxSendRate>0){let s=Date.now();this._lastToken===0&&(this._lastToken=s,this._tokens=this._maxSendRate);let o=s-this._lastToken;if(this._tokens=Math.min(this._maxSendRate,this._tokens+o*this._maxSendRate/1e3),this._lastToken=s,this._tokens<1)return this._bufferMessage(e,n),!1;this._tokens--}if(this._bufferedBytes>=this._highWaterMark)return this._bufferMessage(e,n),!1;if(t&&t.readyState===1)try{return t.send(e),this._mx.bytesSent+=n,!0}catch(s){if(this._cbError?.(new K(`WebSocket send failed: ${s instanceof Error?s.message:String(s)}`,s)),t.readyState===1)try{t.close(4001,"Send error")}catch{}return this._ws=null,!this._aborted&&this._canRecon()&&this._scheduleRecon(),!1}return this._bufferMessage(e,n),!1}_bufferMessage(e,t){if(!this._bufferMessages){this._aborted||this._cbError?.(new K(`WebSocket message dropped: the socket is not open and bufferMessages is disabled (${t} bytes). Reconnect, or enable bufferMessages to queue sends made while reconnecting.`));return}if(!this._aborted){let n=this._buffer.length>=this._maxBufferSize?this._buffer.shift():void 0;n!==void 0&&(this._bufferedBytes-=typeof n=="string"?new TextEncoder().encode(n).byteLength:n.byteLength),this._buffer.push(e),this._bufferedBytes+=t,this._updateBackpressure()}}_flushBuf(){let e=this._buffer.splice(0);for(let t of e)try{this._ws?.send(t),this._mx.messagesSent++,this._mx.bytesSent+=typeof t=="string"?new TextEncoder().encode(t).byteLength:t.byteLength}catch{}this._bufferedBytes=0,this._updateBackpressure()}_updateBackpressure(){let e=this._bufferedBytes>=this._highWaterMark;if(e!==this._wasBackpressured&&(this._wasBackpressured=e,this._cbBackpressure?.(e,this.backpressure)),!e&&this._bufferedBytes<this._lowWaterMark&&this._drainWaiters.length>0)for(let t of this._drainWaiters.splice(0))t()}_startPing(){this._pingIntervalMs<=0||(this._pingTimer=setInterval(()=>{let e=this._ws;if(!(!e||e.readyState!==1)){try{e.send(this._pingPayload),this._mx.messagesSent++,this._mx.bytesSent+=new TextEncoder().encode(this._pingPayload).byteLength}catch{}this._pongMatcher&&this._pongTimeoutMs>0&&(this._pongTimer&&clearTimeout(this._pongTimer),this._pongTimer=setTimeout(()=>{this._pongTimer=null;let t=this._ws;t&&(t.onopen=t.onmessage=t.onerror=t.onclose=null,t.close(4e3,"Pong timeout"),this._ws=null),!this._aborted&&this._canRecon()?(this._cbClose?.(4e3,"Pong timeout",!0),this._scheduleRecon()):this._state="CLOSED"},this._pongTimeoutMs),typeof this._pongTimer=="object"&&this._pongTimer!==null&&"unref"in this._pongTimer&&this._pongTimer.unref())}},this._pingIntervalMs),typeof this._pingTimer=="object"&&this._pingTimer!==null&&"unref"in this._pingTimer&&this._pingTimer.unref())}_stopPing(){this._pingTimer&&(clearInterval(this._pingTimer),this._pingTimer=null),this._pongTimer&&(clearTimeout(this._pongTimer),this._pongTimer=null)}_stopAll(){this._stopPing(),this._reconnTimer&&(clearTimeout(this._reconnTimer),this._reconnTimer=null)}_terminateIter(){this._iterDone=!0,this._iterWaiter&&(this._iterWaiter({done:!0,value:void 0}),this._iterWaiter=null)}_rejectCorrelations(e){for(let t of this._correlations.values())t.timer&&clearTimeout(t.timer),t.reject(new K(e));this._correlations.clear()}};async function zc(r){let e=new et(r);return await e.connect(),e}ye();U();st();st();U();ye();Ae();var Su=0;function Pn(){return`interceptor_${++Su}`}function Ln(r,e){let t=r.findIndex(n=>n.priority>e.priority);t===-1?r.push(e):r.splice(t,0,e)}var br=class{constructor(){f(this,"requestInterceptors",[]);f(this,"responseInterceptors",[]);f(this,"errorInterceptors",[])}useRequest(e,t={}){let n=t.id??Pn();return Ln(this.requestInterceptors,{id:n,priority:t.priority??0,once:t.once??!1,condition:t.condition??null,fn:e}),n}useResponse(e,t={}){let n=t.id??Pn();return Ln(this.responseInterceptors,{id:n,priority:t.priority??0,once:t.once??!1,condition:t.condition??null,fn:e}),n}useError(e,t={}){let n=t.id??Pn();return Ln(this.errorInterceptors,{id:n,priority:t.priority??0,once:t.once??!1,condition:t.condition??null,fn:e}),n}use(e,t,n={}){let s=e?this.useRequest(e,n):null,o=t?this.useResponse(t,n):null;return{requestId:s,responseId:o}}eject(e){let t=this.requestInterceptors.length+this.responseInterceptors.length+this.errorInterceptors.length;return this.requestInterceptors=this.requestInterceptors.filter(s=>s.id!==e),this.responseInterceptors=this.responseInterceptors.filter(s=>s.id!==e),this.errorInterceptors=this.errorInterceptors.filter(s=>s.id!==e),this.requestInterceptors.length+this.responseInterceptors.length+this.errorInterceptors.length<t}ejectAll(){this.requestInterceptors=[],this.responseInterceptors=[],this.errorInterceptors=[]}has(e){return this.requestInterceptors.some(t=>t.id===e)||this.responseInterceptors.some(t=>t.id===e)||this.errorInterceptors.some(t=>t.id===e)}get requestCount(){return this.requestInterceptors.length}get responseCount(){return this.responseInterceptors.length}get errorCount(){return this.errorInterceptors.length}async execute(e,t){let n={request:e,response:null,error:null,startedAt:ne(),attempt:0,aborted:!1,store:new Map};return await this._run(n,t)}async _run(e,t){e.attempt++;let n=new Set;for(let s of this.requestInterceptors){if(e.aborted)break;if(s.condition&&!s.condition(e))continue;let o;try{o=await s.fn(e)}catch(i){e.error=i;for(let a of n)this.eject(a);return this._runErrorPhase(e,t)}if(s.once&&n.add(s.id),o!=null){if(In(o)){e.response=o;for(let i of n)this.eject(i);return this._runResponsePhase(e,t)}No(o)&&(e.request=o)}}for(let s of n)this.eject(s);try{e.response=await t(e.request)}catch(s){return e.error=s,this._runErrorPhase(e,t)}return this._runResponsePhase(e,t)}async _runResponsePhase(e,t){let n=new Set;for(let s of this.responseInterceptors){if(e.aborted)break;if(s.condition&&!s.condition(e))continue;let o;try{o=await s.fn(e)}catch(i){e.error=i;for(let a of n)this.eject(a);return this._runErrorPhase(e,t)}if(s.once&&n.add(s.id),o!=null){if(No(o)){e.request=o,e.response=null,e.error=null;for(let i of n)this.eject(i);return this._run(e,t)}In(o)&&(e.response=o)}}for(let s of n)this.eject(s);if(!e.response)throw new Error("Pipeline produced no response");return e.response}async _runErrorPhase(e,t){let n=new Set;for(let s of this.errorInterceptors){if(s.condition&&!s.condition(e))continue;let o;try{o=await s.fn(e)}catch(i){if(i.__retrySignal){for(let a of n)this.eject(a);return e.error=null,e.response=null,this._run(e,t)}e.error=i;continue}if(s.once&&n.add(s.id),o!=null&&In(o)){e.response=o,e.error=null;for(let i of n)this.eject(i);return this._runResponsePhase(e,t)}}for(let s of n)this.eject(s);throw e.error}};function In(r){return r!==null&&typeof r=="object"&&typeof r.status=="number"&&"headers"in r&&"request"in r}function No(r){return r!==null&&typeof r=="object"&&typeof r.url=="string"&&typeof r.method=="string"&&!("status"in r)}var Tu={maxRetries:3,baseDelayMs:300,maxDelayMs:3e4,jitter:.3,retryStatuses:[408,429,500,502,503,504],retryOnError:!0,retryMethods:["GET","HEAD","PUT","DELETE","OPTIONS","TRACE","POST"],shouldRetry:null,onRetry:null};function Ho(r={}){let e={...Tu,...r};function t(a,c){if(c!==null)return Math.min(c,e.maxDelayMs);let u=e.baseDelayMs*Math.pow(2,a-1),l=Math.min(u,e.maxDelayMs),h=l*e.jitter*Math.random();return Math.min(Math.floor(l+h),e.maxDelayMs)}function n(a){return a.attempt>e.maxRetries||!e.retryMethods.includes(a.request.method.toUpperCase())?!1:e.shouldRetry?e.shouldRetry(a):a.error?e.retryOnError:a.response?e.retryStatuses.includes(a.response.status):!1}function s(a){let c=a.response?.headers["retry-after"]??a.response?.headers["Retry-After"];if(!c)return null;if(/^\d+$/.test(c.trim()))return parseInt(c,10)*1e3;let u=Rn(c);return u!==null?Math.max(0,u-Date.now()):null}return{responseInterceptor:async a=>{if(!n(a))return;let c=t(a.attempt,s(a));return e.onRetry?.(a,c),await Me(c),{...a.request}},errorInterceptor:async a=>{if(!n(a))return;let c=t(a.attempt,null);throw e.onRetry?.(a,c),await Me(c),a.error=null,new Dn(a.request)}}}var Dn=class{constructor(e){f(this,"request");f(this,"__retrySignal",!0);this.request=e}},Eu={getToken:()=>null,refreshToken:null,headerName:"authorization",scheme:"Bearer ",refreshOnStatuses:[401],maxQueue:50,refreshRetryDelay:3e4};function jo(r){let e={...Eu,...r},t=null,n=[],s=null,o=e.refreshRetryDelay??3e4;async function i(){if(s!==null){let u=Date.now()-s;if(u<o)throw new Error(`Auth refresh circuit breaker: last failure ${Math.round(u/1e3)}s ago, retry after ${Math.round((o-u)/1e3)}s`)}if(t){if(n.length>=e.maxQueue)throw new Error("Auth refresh queue full");return await new Promise((u,l)=>n.push({resolve:u,reject:l}))}return e.refreshToken?(t=e.refreshToken().then(u=>{for(let l of n)l.resolve(u);return n.length=0,t=null,s=null,u},u=>{for(let l of n)l.reject(u);throw n.length=0,t=null,s=Date.now(),u}),t):null}return{requestInterceptor:async u=>{let l=await e.getToken();l&&(u.request.headers[e.headerName]=`${e.scheme}${l}`)},responseInterceptor:async u=>{if(!u.response||!e.refreshOnStatuses.includes(u.response.status)||!e.refreshToken||u.request.meta.__authRetried)return;let l=await i();return l?{...u.request,headers:{...u.request.headers,[e.headerName]:`${e.scheme}${l}`},meta:{...u.request.meta,__authRetried:!0}}:void 0}}}var Ru={timeoutMs:3e4,methodTimeouts:{},message:"Request timed out"};function Bo(r={}){let e={...Ru,...r},t=i=>{let a=e.methodTimeouts[i.request.method.toUpperCase()]??e.timeoutMs;if(a<=0)return;let c=new AbortController,u=setTimeout(()=>{i.aborted=!0,c.abort(new $n(e.message,a))},a),l=i.request.signal;if(l){let h=()=>{clearTimeout(u),c.abort(l.reason)};l.addEventListener("abort",h,{once:!0}),i.store.set(Mn,{existing:l,onExistingAbort:h})}i.request={...i.request,signal:c.signal},i.store.set(On,u)},n=i=>{let a=i.store.get(On);a&&(clearTimeout(a),i.store.delete(On));let c=i.store.get(Mn);c&&(c.existing.removeEventListener("abort",c.onExistingAbort),i.store.delete(Mn))};return{id:"timeout",requestInterceptor:t,responseInterceptor:i=>{n(i)},errorInterceptor:i=>{n(i)}}}var On=Symbol("timeoutTimer"),Mn=Symbol("timeoutSignal"),$n=class extends Error{constructor(t,n){super(t);f(this,"timeoutMs");f(this,"code","ETIMEDOUT");this.timeoutMs=n,this.name="TimeoutError"}},ku={logger:r=>console.log(JSON.stringify(r)),redactHeaders:["authorization","cookie","set-cookie","proxy-authorization"],logRequests:!0,logResponses:!0,logErrors:!0},Do=Symbol("requestId"),Au=0;function zo(r={}){let e={...ku,...r},t=new Set(e.redactHeaders.map(c=>c.toLowerCase())),n=c=>Xe(c,t,"**REDACTED**");function s(c,u){let l=u.store.get(Do)??"unknown";return{type:c,timestamp:Date.now(),requestId:l,method:u.request.method,url:u.request.url,status:u.response?.status??null,durationMs:c!=="request"?ne()-u.startedAt:null,attempt:u.attempt,error:u.error instanceof Error?u.error.message:null,headers:n(u.request.headers??{})}}return{requestInterceptor:c=>{let u=`req_${++Au}`;c.store.set(Do,u),e.logRequests&&e.logger(s("request",c))},responseInterceptor:c=>{e.logResponses&&e.logger(s("response",c))},errorInterceptor:c=>{e.logErrors&&e.logger(s("error",c))}}}var Cu={maxEntries:500,defaultTtlMs:6e4,cacheMethods:["GET","HEAD"],cacheKey:null,honorCacheControl:!0};function qo(r={}){let e={...Cu,...r},t=new Map,n=[];function s(u){return e.cacheKey?e.cacheKey(u):`${u.method}:${u.url}`}function o(u){let l=n.indexOf(u);for(l!==-1&&n.splice(l,1),n.unshift(u);n.length>e.maxEntries;){let h=n.pop();t.delete(h)}}function i(u){let l=u.headers["cache-control"]??u.headers["Cache-Control"]??"",h=l.match(/max-age=(\d+)/)?.[1],d=l.match(/stale-while-revalidate=(\d+)/)?.[1],p=/no-store/i.test(l),m=/no-cache/i.test(l);if(e.honorCacheControl&&(p||m))return{ttlMs:0,swrMs:0};let g=h?parseInt(h,10)*1e3:e.defaultTtlMs,w=d?parseInt(d,10)*1e3:0;return{ttlMs:g,swrMs:w}}return{requestInterceptor:u=>{if(!e.cacheMethods.includes(u.request.method.toUpperCase()))return;let l=s(u.request),h=t.get(l);if(!h)return;let d=ne();if(h.expiresAt>d)return o(l),u.store.set(vu,!0),{...h.response,request:u.request};h.staleUntil>d&&(o(l),u.store.set($o,h),h.etag?u.request={...u.request,headers:{...u.request.headers,"if-none-match":h.etag}}:h.lastModified&&(u.request={...u.request,headers:{...u.request.headers,"if-modified-since":h.lastModified}}))},responseInterceptor:u=>{if(!u.response||!e.cacheMethods.includes(u.request.method.toUpperCase()))return;let l=s(u.request);if(u.response.status===304){let g=u.store.get($o);if(g){let{ttlMs:w,swrMs:y}=i(g.response),_=ne(),b={...g,createdAt:_,expiresAt:_+w,staleUntil:_+w+y};t.set(l,b),o(l),u.response={...g.response,request:u.request};return}}let{ttlMs:h,swrMs:d}=i(u.response);if(h<=0)return;let p=ne(),m={response:u.response,createdAt:p,expiresAt:p+h,staleUntil:p+h+d,etag:u.response.headers.etag??u.response.headers.ETag??null,lastModified:u.response.headers["last-modified"]??null};t.set(l,m),o(l)},store:t}}var vu=Symbol("cacheHit"),$o=Symbol("cacheStale");function Fo(){let r=new Map;async function e(o){let i=await nt(o.headers??{});return`${o.method.toUpperCase()}:${o.url}${i?":"+i:""}`}return{requestInterceptor:async o=>{if(o.request.method.toUpperCase()!=="GET"&&o.request.method.toUpperCase()!=="HEAD")return;let i=await e(o.request);o.store.set(Nn,i);let a=r.get(i);if(!a){r.set(i,{promise:void 0,waiters:[]});return}return new Promise((c,u)=>{let l=o.request.signal,h={resolve:p=>c(p),reject:p=>u(p),cleanup:()=>l?.removeEventListener("abort",d)},d=()=>{let p=a.waiters.indexOf(h);p!==-1&&a.waiters.splice(p,1),u(new Error("Request aborted while queued for deduplication"))};if(l?.aborted){d();return}l?.addEventListener("abort",d,{once:!0}),a.waiters.push(h)})},responseInterceptor:o=>{if(!o.response)return;let i=o.store.get(Nn);if(!i)return;let a=r.get(i);if(a){r.delete(i);for(let c of a.waiters.splice(0))c.cleanup(),c.resolve(o.response)}},errorInterceptor:o=>{let i=o.store.get(Nn);if(!i)return;let a=r.get(i);if(a){r.delete(i);for(let c of a.waiters.splice(0))c.cleanup(),c.reject(o.error)}}}}var Nn=Symbol("dedupeKey"),Pu={limit:60,windowMs:6e4,queue:!0,maxQueue:100};function xr(r={}){let e={...Pu,...r};if(!Number.isFinite(e.limit)||e.limit<1)throw new RangeError(`rateLimit.limit must be a finite number >= 1, got ${e.limit}`);if(!Number.isFinite(e.windowMs)||e.windowMs<1)throw new RangeError(`rateLimit.windowMs must be a finite number >= 1, got ${e.windowMs}`);if(!Number.isFinite(e.maxQueue)||e.maxQueue<0)throw new RangeError(`rateLimit.maxQueue must be a finite number >= 0, got ${e.maxQueue}`);let t=e.limit,n=ne(),s=[],o=null;function i(){let u=ne(),l=(u-n)/e.windowMs;t=Math.min(e.limit,t+l*e.limit),n=u}function a(){o===null&&(o=setInterval(()=>{for(i();t>=1&&s.length>0;)t--,s.shift()();s.length===0&&o!==null&&(clearInterval(o),o=null)},Math.ceil(e.windowMs/e.limit)),typeof o=="object"&&o!==null&&"unref"in o&&o.unref())}async function c(){if(i(),t>=1){t--;return}if(!e.queue)throw new vt("Rate limit exceeded");if(s.length>=e.maxQueue)throw new vt("Rate limit queue full");await new Promise(u=>{s.push(()=>u()),a()})}return async()=>{await c()}}var vt=class extends Error{constructor(t){super(t);f(this,"code","ERATELIMIT");this.name="RateLimitError"}},Wo={maxConcurrent:10,queue:!0,maxQueue:100},it=class extends Error{constructor(t){super(t);f(this,"code","ECONCURRENCY");this.name="ConcurrencyLimitError"}};function Uo(r){r.onAbort&&r.signal&&r.signal.removeEventListener("abort",r.onAbort),r.onAbort=null,r.signal=null}var Pt=class{constructor(e={}){f(this,"cfg");f(this,"active",0);f(this,"peak",0);f(this,"waiters",[]);if(this.cfg={...Wo,...e},!Number.isFinite(this.cfg.maxConcurrent)||this.cfg.maxConcurrent<1)throw new RangeError(`concurrencyLimit.maxConcurrent must be a finite number >= 1, received ${String(this.cfg.maxConcurrent)}`);if(this.cfg.maxQueue!==Number.POSITIVE_INFINITY&&(!Number.isInteger(this.cfg.maxQueue)||this.cfg.maxQueue<0))throw new RangeError(`concurrencyLimit.maxQueue must be a non-negative integer or Infinity, received ${String(this.cfg.maxQueue)}`)}get inFlight(){return this.active}get waiting(){return this.waiters.length}get highWaterMark(){return this.peak}acquire(e){return e?.aborted?Promise.reject(new x("Concurrency acquire aborted","EABORT")):this.active<this.cfg.maxConcurrent?(this.active++,this.active>this.peak&&(this.peak=this.active),Promise.resolve()):this.cfg.queue?this.waiters.length>=this.cfg.maxQueue?Promise.reject(new it(`Concurrency queue is full (${this.cfg.maxQueue} waiting)`)):new Promise((t,n)=>{let s={resolve:t,reject:n,onAbort:null,signal:null};if(e){if(e.aborted){n(new x("Concurrency acquire aborted","EABORT"));return}s.onAbort=()=>{let o=this.waiters.indexOf(s);o!==-1&&this.waiters.splice(o,1),n(new x("Concurrency acquire aborted","EABORT"))},s.signal=e,e.addEventListener("abort",s.onAbort,{once:!0})}this.waiters.push(s)}):Promise.reject(new it(`Concurrency limit reached (${this.cfg.maxConcurrent} in flight) and queueing is disabled`))}release(){if(this.active===0)return;let e=this.waiters.shift();if(!e){this.active--;return}Uo(e),e.resolve()}drain(e=new it("Client destroyed")){let t=this.waiters.splice(0,this.waiters.length);for(let n of t)Uo(n),n.reject(e)}};function Ko(){let r=[],e=Symbol("harStart");function t(i){return Object.entries(i).map(([a,c])=>({name:a,value:c}))}function n(i){try{let a=new URL(i);return Array.from(a.searchParams.entries()).map(([c,u])=>({name:c,value:u}))}catch{return[]}}return{requestInterceptor:i=>{i.store.set(e,ne())},responseInterceptor:i=>{if(!i.response)return;let a=i.store.get(e)??i.startedAt,c=ne()-a,u=i.response.headers["content-type"]??i.response.headers["Content-Type"]??"application/octet-stream",l=i.response.body,h=Math.max(0,Un(l));r.push({startedDateTime:new Date(Date.now()-c).toISOString(),time:c,request:{method:i.request.method.toUpperCase(),url:i.request.url,httpVersion:"HTTP/1.1",headers:t(i.request.headers),queryString:n(i.request.url),bodySize:Un(i.request.body)},response:{status:i.response.status,statusText:i.response.statusText,httpVersion:"HTTP/1.1",headers:t(i.response.headers),content:{size:h,mimeType:u,...typeof l=="string"?{text:l}:{}},bodySize:h,redirectURL:i.response.headers.location??""},timings:{send:0,wait:Math.floor(c*.9),receive:Math.floor(c*.1)}})},getHAR:()=>({version:"1.2",creator:{name:"kinetex",version:"0.0.3"},entries:[...r]}),clearHAR:()=>{r.length=0}}}function Vo(){let r=Symbol("metricsStart"),e=0,t=0,n=0,s={"2xx":0,"3xx":0,"4xx":0,"5xx":0},o=1e4,i=[],a=p=>{p.store.set(r,ne()),e++,p.attempt>1&&n++},c=p=>{if(!p.response)return;let m=p.store.get(r);if(m!==void 0){let w=ne()-m;i.length>=o&&i.shift(),i.push(w)}let g=`${Math.floor(p.response.status/100)}xx`;if(g in s){let w=s;w[g]=(w[g]??0)+1}},u=()=>{t++};function l(p,m){if(p.length===0)return 0;let g=Math.ceil(m/100*p.length)-1,w=Math.min(Math.max(0,g),p.length-1);return p[w]}return{requestInterceptor:a,responseInterceptor:c,errorInterceptor:u,snapshot:()=>{let p=[...i].sort((g,w)=>g-w),m=p.length?p.reduce((g,w)=>g+w,0)/p.length:0;return{totalRequests:e,totalErrors:t,totalRetries:n,statusBuckets:{...s},avgDurationMs:Math.round(m),p50DurationMs:l(p,50),p95DurationMs:l(p,95),p99DurationMs:l(p,99)}},reset:()=>{e=0,t=0,n=0;for(let p of Object.keys(s))s[p]=0;i.length=0}}}var ne=N;function Un(r){return r?typeof r=="string"?new TextEncoder().encode(r).length:r instanceof Uint8Array||r instanceof ArrayBuffer?r.byteLength:-1:0}function Lu(r={}){let e=new br,t=Bo(r.timeout);e.useRequest(t.requestInterceptor,{priority:-100,id:"timeout-req"}),e.useResponse(t.responseInterceptor,{priority:-100,id:"timeout-res"}),e.useError(t.errorInterceptor,{priority:-100,id:"timeout-err"}),r.rateLimit&&e.useRequest(xr(r.rateLimit),{priority:-90,id:"ratelimit"});let n=Fo();e.useRequest(n.requestInterceptor,{priority:-80,id:"dedupe-req"}),e.useResponse(n.responseInterceptor,{priority:-80,id:"dedupe-res"}),e.useError(n.errorInterceptor,{priority:-80,id:"dedupe-err"});let s=qo(r.cache);e.useRequest(s.requestInterceptor,{priority:-70,id:"cache-req"}),e.useResponse(s.responseInterceptor,{priority:-70,id:"cache-res"});let o=null;r.auth&&(o=jo(r.auth),e.useRequest(o.requestInterceptor,{priority:-50,id:"auth-req"}),e.useResponse(o.responseInterceptor,{priority:-50,id:"auth-res"}));let i=Ho(r.retry);e.useResponse(i.responseInterceptor,{priority:50,id:"retry-res"}),e.useError(i.errorInterceptor,{priority:50,id:"retry-err"});let a=zo(r.logging);e.useRequest(a.requestInterceptor,{priority:90,id:"log-req"}),e.useResponse(a.responseInterceptor,{priority:90,id:"log-res"}),e.useError(a.errorInterceptor,{priority:90,id:"log-err"});let c=Ko();e.useRequest(c.requestInterceptor,{priority:95,id:"har-req"}),e.useResponse(c.responseInterceptor,{priority:95,id:"har-res"});let u=Vo();return e.useRequest(u.requestInterceptor,{priority:100,id:"metrics-req"}),e.useResponse(u.responseInterceptor,{priority:100,id:"metrics-res"}),e.useError(u.errorInterceptor,{priority:100,id:"metrics-err"}),{manager:e,retry:i,auth:o,timeout:{id:t.id},logging:a,cache:s,dedupe:n,har:c,metrics:u}}ye();U();function Lt(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}function Iu(r){return()=>Promise.resolve(r)}function Ou(){return()=>{let r=Hn("AWS_ACCESS_KEY_ID"),e=Hn("AWS_SECRET_ACCESS_KEY"),t=Hn("AWS_SESSION_TOKEN");return!r||!e?Promise.reject(new J("AWS credentials not found in environment. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.")):Promise.resolve({accessKeyId:r,secretAccessKey:e,...t!==void 0?{sessionToken:t}:{}})}}function Mu(...r){return async()=>{let e=[];for(let t of r)try{return await t()}catch(n){e.push(n instanceof Error?n:new Error(String(n)))}throw new J(`All credential providers failed:
|
|
75
91
|
${e.map(t=>` - ${t.message}`).join(`
|
|
76
|
-
`)}`)}}function
|
|
77
|
-
`)[0]?.trim();if(!a)throw new
|
|
92
|
+
`)}`)}}function Jo(r,e=300*1e3){let t=null,n=null;return()=>{let s=Date.now();return t&&(!t.expiration||new Date(t.expiration).getTime()-s>e)?Promise.resolve(t):n||(n=r().then(o=>(t=o,n=null,o),o=>{throw n=null,o}),n)}}var Nu=new Set(["http://169.254.169.254","http://169.254.170.2","http://fd00:ec2::254"]);function Du(r){try{let e=new URL(r),t=e.hostname;t.startsWith("[")&&t.endsWith("]")&&(t=t.slice(1,-1));let n=`${e.protocol}//${t}`;return Nu.has(n)}catch{return!1}}function $u(r={}){let e=r.endpoint??"http://169.254.169.254",t=r.timeout??5e3;if(!Du(e))throw new Error(`Invalid IMDS endpoint: ${e}. Only AWS metadata service endpoints are allowed.`);return Jo(async()=>{let n=await jn(`${e}/latest/api/token`,{method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"21600"}},t);if(!n.ok)throw new J(`IMDS token fetch failed: ${n.status}`);let s=await n.text(),o=await jn(`${e}/latest/meta-data/iam/security-credentials/`,{headers:{"x-aws-ec2-metadata-token":s}},t);if(!o.ok)throw new J(`IMDS role fetch failed: ${o.status}`);let a=(await o.text()).trim().split(`
|
|
93
|
+
`)[0]?.trim();if(!a)throw new J("No IAM role found in IMDS response");let c=await jn(`${e}/latest/meta-data/iam/security-credentials/${encodeURIComponent(a)}`,{headers:{"x-aws-ec2-metadata-token":s}},t);if(!c.ok)throw new J(`IMDS credentials fetch failed: ${c.status}`);let u;try{u=await c.json()}catch(b){throw new J(`IMDS credentials response was not JSON: ${b instanceof Error?b.message:String(b)}`)}if(u===null||typeof u!="object")throw new J(`IMDS credentials response was not an object: ${typeof u}`);let{AccessKeyId:l,SecretAccessKey:h,Token:d,Expiration:p}=u,m=[];if((typeof l!="string"||l.length===0)&&m.push("AccessKeyId"),(typeof h!="string"||h.length===0)&&m.push("SecretAccessKey"),(typeof d!="string"||d.length===0)&&m.push("Token"),m.length>0)throw new J(`IMDS credentials response is missing ${m.join(", ")} \u2014 the metadata endpoint returned a body this client cannot sign with`);let g=(b,E)=>{if(typeof b!="string"||b.length===0)throw new J(`IMDS credentials response is missing ${E}`);return b},w=g(l,"AccessKeyId"),y=g(h,"SecretAccessKey"),_=g(d,"Token");return{accessKeyId:w,secretAccessKey:y,sessionToken:_,...typeof p=="string"?{expiration:p}:{}}})}function _r(r){return r.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,"")}function It(r){return r.toISOString().slice(0,10).replace(/-/g,"")}function Sr(r){if(r.signingDate){let t=r.signingDate instanceof Date?r.signingDate:new Date(r.signingDate);return r.clockSkewSecs?new Date(t.getTime()+r.clockSkewSecs*1e3):t}let e=new Date;return r.clockSkewSecs?new Date(e.getTime()+r.clockSkewSecs*1e3):e}async function _e(r,e){let t=new TextEncoder,n=typeof r=="string"?t.encode(r):r,s=n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength),o=await crypto.subtle.importKey("raw",s,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",o,t.encode(e));return new Uint8Array(i)}var Uu=new Set(["user-agent","x-forwarded-for","x-forwarded-host","x-forwarded-proto","accept-encoding","connection","expect","transfer-encoding"]),Hu=new Set(["host","content-type","content-md5"]);function Qo(r,e=!0){let t=encodeURIComponent(r).replace(/[!'()*]/g,n=>"%"+n.charCodeAt(0).toString(16).toUpperCase());return e?t.replace(/%/g,"%25").replace(/%2525/g,"%25"):t}function ju(r,e){if(!r||r==="/")return"/";let n=r.split("/").map(i=>i===""||i==="."||i===".."?i:Qo(decodeURIComponent(i.replace(/\+/g," ")),e)),s=[];for(let i of n)if(i!=="."){if(i===".."){s.pop();continue}s.push(i)}let o=s.join("/");return o.startsWith("/")?o:"/"+o}function Bu(r){let e=[];for(let[t,n]of r.entries())e.push([encodeURIComponent(t).replace(/[!'()*]/g,s=>"%"+s.charCodeAt(0).toString(16).toUpperCase()),encodeURIComponent(n).replace(/[!'()*]/g,s=>"%"+s.charCodeAt(0).toString(16).toUpperCase())]);return e.sort(([t,n],[s,o])=>t<s?-1:t>s?1:n<o?-1:n>o?1:0),e.map(([t,n])=>`${t}=${n}`).join("&")}function zu(r,e){let t=new Set([...Uu,...e.map(a=>a.toLowerCase())]),n=[];for(let[a,c]of Object.entries(r)){let u=a.toLowerCase();if(u===""||t.has(u)&&!Hu.has(u))continue;let l=c.trim().replace(/\s+/g," ");n.push([u,l])}n.sort(([a],[c])=>a<c?-1:a>c?1:0);let s=new Map;for(let[a,c]of n){let u=s.get(a);s.set(a,u?`${u},${c}`:c)}let o=Array.from(s.entries()).map(([a,c])=>`${a}:${c}`).join(`
|
|
78
94
|
`)+`
|
|
79
|
-
`,i=Array.from(s.keys()).join(";");return{canonicalHeaders:o,signedHeaders:i}}async function
|
|
80
|
-
`),signedHeaders:
|
|
81
|
-
`)}async function
|
|
82
|
-
`),i=await
|
|
83
|
-
`,newState:{...e,previousSignature:a}}}async function
|
|
84
|
-
`),n=await
|
|
95
|
+
`,i=Array.from(s.keys()).join(";");return{canonicalHeaders:o,signedHeaders:i}}async function Bn(r,e,t,n,s,o,i){let a=r.toUpperCase(),c=ju(e.pathname,o),u=Bu(e.searchParams),l;s?l="UNSIGNED-PAYLOAD":n?l=await ce(n):l="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";let{canonicalHeaders:h,signedHeaders:d}=zu(t,i);return{canonicalRequest:[a,c,u,h,d,l].join(`
|
|
96
|
+
`),signedHeaders:d,payloadHash:l}}async function Ot(r,e,t,n){let s=new TextEncoder,o=s.encode("AWS4"),i=s.encode(r),a=new Uint8Array(o.length+i.length);a.set(o),a.set(i,o.length),i.fill(0);let c=await _e(a,e),u=await _e(c,t),l=await _e(u,n),h=await _e(l,"aws4_request");return a.fill(0),h}async function Go(r,e,t){let n=await ce(t);return["AWS4-HMAC-SHA256",r,e,n].join(`
|
|
97
|
+
`)}async function zn(r,e){let t=await Tr(e.credentials),n=Sr(e),s=_r(n),o=It(n),i=new URL(r.url),a=Object.keys(r.headers).some(E=>E.toLowerCase()==="host"),c={...r.headers,...a?{}:{host:i.host},"x-amz-date":s};e.unsignedPayload&&(c["x-amz-content-sha256"]="UNSIGNED-PAYLOAD"),t.sessionToken&&(c["x-amz-security-token"]=t.sessionToken);let u=e.doubleEncodeUri!==!1,l=e.unsignedHeaders??[],{canonicalRequest:h,signedHeaders:d,payloadHash:p}=await Bn(r.method,i,c,r.body,e.unsignedPayload??!1,u,l);!c["x-amz-content-sha256"]&&!e.unsignedPayload&&(c["x-amz-content-sha256"]=p);let m=`${o}/${e.region}/${e.service}/aws4_request`,g=await Go(s,m,h),w=await Ot(t.secretAccessKey,o,e.region,e.service),y=await _e(w,g),_=Lt(y),b=`AWS4-HMAC-SHA256 Credential=${t.accessKeyId}/${m}, SignedHeaders=${d}, Signature=${_}`;return{method:r.method,url:r.url,headers:{...c,authorization:b},body:r.body,authorization:b,amzDate:s,signature:_,canonicalRequest:h,stringToSign:g}}async function Xo(r,e,t={}){let n=await Tr(e.credentials),s=Sr(e),o=_r(s),i=It(s),a=e.service==="s3"?604800:3600,c=t.expiresIn??3600,u=Number.isFinite(c)?Math.min(Math.max(Math.floor(c),1),a):a;u!==c&&console.warn(`[aws-sigv4] presignRequest: expiresIn must be an integer in 1-${a} for ${e.service}, got ${c} \u2014 clamped to ${u}`);let l=new URL(r.url),h=`${i}/${e.region}/${e.service}/aws4_request`;if(l.searchParams.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),l.searchParams.set("X-Amz-Credential",`${n.accessKeyId}/${h}`),l.searchParams.set("X-Amz-Date",o),l.searchParams.set("X-Amz-Expires",String(u)),n.sessionToken&&!t.omitSessionToken&&l.searchParams.set("X-Amz-Security-Token",n.sessionToken),t.extraParams)for(let[C,T]of Object.entries(t.extraParams))l.searchParams.set(C,T);let d=Object.keys(r.headers).some(C=>C.toLowerCase()==="host"),p={...r.headers,...d?{}:{host:l.host}},m=e.unsignedHeaders??[],{canonicalRequest:g,signedHeaders:w}=await Bn(r.method,l,p,null,!0,e.doubleEncodeUri!==!1,m);l.searchParams.set("X-Amz-SignedHeaders",w);let{canonicalRequest:y}=await Bn(r.method,l,p,null,!0,e.doubleEncodeUri!==!1,m),_=await Go(o,h,y),b=await Ot(n.secretAccessKey,i,e.region,e.service),E=await _e(b,_),A=Lt(E);return l.searchParams.set("X-Amz-Signature",A),l.toString()}async function Yo(r,e){let t={...r,body:null};t.headers={...t.headers,"x-amz-content-sha256":"STREAMING-AWS4-HMAC-SHA256-PAYLOAD","content-encoding":"aws-chunked"};let n=await zn(t,{...e,unsignedPayload:!1}),s=await Tr(e.credentials),o=Sr(e),i=It(o),a=_r(o),c=await Ot(s.secretAccessKey,i,e.region,e.service),u=`${i}/${e.region}/${e.service}/aws4_request`;return{signedRequest:n,state:{previousSignature:n.signature,signingKey:c,scope:u,signingDate:a}}}async function qu(r,e){let t=typeof r=="string"?new TextEncoder().encode(r):r,n=await ce(t),o=["AWS4-HMAC-SHA256-PAYLOAD",e.signingDate,e.scope,e.previousSignature,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",n].join(`
|
|
98
|
+
`),i=await _e(e.signingKey,o),a=Lt(i);return{chunkHeader:`${t.byteLength.toString(16)};chunk-signature=${a}\r
|
|
99
|
+
`,newState:{...e,previousSignature:a}}}async function Fu(r){let e="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",t=["AWS4-HMAC-SHA256-PAYLOAD",r.signingDate,r.scope,r.previousSignature,e,e].join(`
|
|
100
|
+
`),n=await _e(r.signingKey,t);return`0;chunk-signature=${Lt(n)}\r
|
|
85
101
|
\r
|
|
86
|
-
`}async function Gs(r,e){let t=await tr(e.credentials),n=er(e),s=xt(n),o=`${s}/${e.region}/${e.service}/aws4_request`,i=`${t.accessKeyId}/${o}`,a=JSON.stringify(r),l=btoa(a),c=await _t(t.secretAccessKey,s,e.region,e.service),u=await le(c,l),h=Ve(u),p={policy:l,signature:h,credential:i,date:s};return t.sessionToken&&(p.securityToken=t.sessionToken),p}function Xs(r){let e=r.date??r.Date;if(!e)return 0;let t=new Date(e).getTime();return isNaN(t)?0:Math.round((t-Date.now())/1e3)}function Ys(r,e){return r!==403&&r!==400?!1:e.includes("RequestTimeTooSkewed")||e.includes("RequestExpired")||e.includes("InvalidSignatureException")||e.includes("AuthFailure")||e.includes("SignatureDoesNotMatch")}var ue=class{constructor(e){f(this,"config");f(this,"clockSkewSecs",0);this.config=e}async sign(e){return await an(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}async presign(e,t){return await Js(e,{...this.config,clockSkewSecs:this.clockSkewSecs},t)}async signPostPolicy(e){return await Gs(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}async initChunked(e){return await Qs(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}updateClockSkew(e){let t=Xs(e);t!==0&&(this.clockSkewSecs=t)}handleClockSkewError(e,t,n){return Ys(e,t)?(this.updateClockSkew(n),!0):!1}};async function tr(r){return await(typeof r=="function"?r():Promise.resolve(r))}function rn(r){let e=globalThis.Deno;if(typeof e<"u")try{return e.env.get(r)}catch{}try{return globalThis.process?.env?.[r]}catch{}}async function nn(r,e,t){let n=new AbortController,s=setTimeout(()=>n.abort(),t);try{let o=e.signal&&typeof AbortSignal<"u"&&"any"in AbortSignal?AbortSignal.any([e.signal,n.signal]):n.signal,i=await fetch(r,{...e,signal:o});return clearTimeout(s),i}catch(o){throw n.signal.aborted?new Z(t):o}finally{clearTimeout(s)}}function Sc(r){return new ue({credentials:r.credentials,region:r.region,service:"s3",doubleEncodeUri:!1,unsignedPayload:r.unsignedPayload??!1})}function Ec(r){return new ue({credentials:r.credentials,region:r.region,service:"execute-api"})}function Tc(r){return new ue({credentials:r.credentials,region:r.region,service:"sts"})}function Rc(r){return new ue({credentials:r.credentials,region:r.region,service:"dynamodb"})}B();function kc(r){let e=[];for(let u=0;u<r.length;u++){let h=r.charCodeAt(u);if(h<128)e.push(h);else if(h<2048)e.push(192|h>>6,128|h&63);else if(h<55296||h>=57344)e.push(224|h>>12,128|h>>6&63,128|h&63);else{u++;let p=r.charCodeAt(u),d=65536+((h&1023)<<10|p&1023);e.push(240|d>>18,128|d>>12&63,128|d>>6&63,128|d&63)}}let t=e.length*8;for(e.push(128);e.length*8%512!==448;)e.push(0);for(let u=0;u<4;u++)e.push(t>>>u*8&255);for(let u=4;u<8;u++)e.push(0);let n=[3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745],s=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],o=1732584193,i=4023233417,a=2562383102,l=271733878;for(let u=0;u<e.length;u+=64){let h=[];for(let m=0;m<16;m++){let w=e[u+m*4],S=e[u+m*4+1],x=e[u+m*4+2],T=e[u+m*4+3];h[m]=(w|S<<8|x<<16|T<<24)>>>0}let p=o,d=i,y=a,g=l;for(let m=0;m<64;m++){let w,S;m<16?(w=d&y|~d&g,S=m):m<32?(w=g&d|~g&y,S=(5*m+1)%16):m<48?(w=d^y^g,S=(3*m+5)%16):(w=y^(d|~g),S=7*m%16),w=w+p+n[m]+h[S]>>>0,p=g,g=y,y=d,d=d+(w<<s[m]|w>>>32-s[m])>>>0}o=o+p>>>0,i=i+d>>>0,a=a+y>>>0,l=l+g>>>0}function c(u){let h="";for(let p=0;p<4;p++)h+=(u>>>p*8&255).toString(16).padStart(2,"0");return h}return c(o)+c(i)+c(a)+c(l)}function cn(r){let e={algorithm:"MD5"},t=r.replace(/^Digest\s+/i,"").trim(),n=/(\w+)\s*=\s*(?:"([^"]*)"|([^,\s]+))/g,s;for(;(s=n.exec(t))!==null;){let o=s[1].toLowerCase(),i=s[2]??s[3];switch(o){case"realm":e.realm=i;break;case"nonce":e.nonce=i;break;case"opaque":e.opaque=i;break;case"algorithm":e.algorithm=i.toUpperCase();break;case"qop":e.qop=i;break;case"domain":e.domain=i;break;case"charset":e.charset=i;break;case"userhash":e.userhash=i==="true";break;case"stale":e.stale=i==="true";break}}if(!e.realm)throw new Error("Digest challenge missing 'realm'");if(!e.nonce)throw new Error("Digest challenge missing 'nonce'");return e}async function Ac(r){let e=new TextEncoder,t=await crypto.subtle.digest("SHA-256",e.encode(r)),n=new Uint8Array(t);return Array.from(n).map(s=>s.toString(16).padStart(2,"0")).join("")}function Cc(r){let e=[0x428a2f98d728ae22n,0x7137449123ef65cdn,0xb5c0fbcfec4d3b2fn,0xe9b5dba58189dbbcn,0x3956c25bf348b538n,0x59f111f1b605d019n,0x923f82a4af194f9bn,0xab1c5ed5da6d8118n,0xd807aa98a3030242n,0x12835b0145706fben,0x243185be4ee4b28cn,0x550c7dc3d5ffb4e2n,0x72be5d74f27b896fn,0x80deb1fe3b1696b1n,0x9bdc06a725c71235n,0xc19bf174cf692694n,0xe49b69c19ef14ad2n,0xefbe4786384f25e3n,0x0fc19dc68b8cd5b5n,0x240ca1cc77ac9c65n,0x2de92c6f592b0275n,0x4a7484aa6ea6e483n,0x5cb0a9dcbd41fbd4n,0x76f988da831153b5n,0x983e5152ee66dfabn,0xa831c66d2db43210n,0xb00327c898fb213fn,0xbf597fc7beef0ee4n,0xc6e00bf33da88fc2n,0xd5a79147930aa725n,0x06ca6351e003826fn,0x142929670a0e6e70n,0x27b70a8546d22ffcn,0x2e1b21385c26c926n,0x4d2c6dfc5ac42aedn,0x53380d139d95b3dfn,0x650a73548baf63den,0x766a0abb3c77b2a8n,0x81c2c92e47edaee6n,0x92722c851482353bn,0xa2bfe8a14cf10364n,0xa81a664bbc423001n,0xc24b8b70d0f89791n,0xc76c51a30654be30n,0xd192e819d6ef5218n,0xd69906245565a910n,0xf40e35855771202an,0x106aa07032bbd1b8n,0x19a4c116b8d2d0c8n,0x1e376c085141ab53n,0x2748774cdf8eeb99n,0x34b0bcb5e19b48a8n,0x391c0cb3c5c95a63n,0x4ed8aa4ae3418acbn,0x5b9cca4f7763e373n,0x682e6ff3d6b2b8a3n,0x748f82ee5defb2fcn,0x78a5636f43172f60n,0x84c87814a1f0ab72n,0x8cc702081a6439ecn,0x90befffa23631e28n,0xa4506cebde82bde9n,0xbef9a3f7b2c67915n,0xc67178f2e372532bn,0xca273eceea26619cn,0xd186b8c721c0c207n,0xeada7dd6cde0eb1en,0xf57d4f7fee6ed178n,0x06f067aa72176fban,0x0a637dc5a2c898a6n,0x113f9804bef90daen,0x1b710b35131c471bn,0x28db77f523047d84n,0x32caab7b40c72493n,0x3c9ebe0a15c9bebcn,0x431d67c49c100d4cn,0x4cc5d4becb3e42b6n,0x597f299cfc657e2an,0x5fcb6fab3ad6faecn,0x6c44198c4a475817n],t=[0x22312194fc2bf72cn,0x9f555fa3c84c64c2n,0x2393b86b6f53b151n,0x963877195940eabdn,0x96283ee2a88effe3n,0xbe5e1e2553863992n,0x2b0199fc2c85b8aan,0x0eb72ddc81c52ca2n],n=[];for(let l=0;l<r.length;l++){let c=r.charCodeAt(l);if(c<128)n.push(c);else if(c<2048)n.push(192|c>>6,128|c&63);else if(c<55296||c>=57344)n.push(224|c>>12,128|c>>6&63,128|c&63);else{l++;let u=r.charCodeAt(l),h=65536+((c&1023)<<10|u&1023);n.push(240|h>>18,128|h>>12&63,128|h>>6&63,128|h&63)}}let s=BigInt(n.length*8);for(n.push(128);n.length*8%1024!==896;)n.push(0);for(let l=15;l>=0;l--)n.push(Number(s>>BigInt(l*8)&0xffn));function o(l,c){return l>>c|l<<64n-c&0xffffffffffffffffn}let i=t.slice();for(let l=0;l<n.length;l+=128){let c=new Array(80);for(let S=0;S<16;S++){let x=0n;for(let T=0;T<8;T++)x=x<<8n|BigInt(n[l+S*8+T]);c[S]=x}for(let S=16;S<80;S++){let x=o(c[S-15],1n)^o(c[S-15],8n)^c[S-15]>>7n,T=o(c[S-2],19n)^o(c[S-2],61n)^c[S-2]>>6n;c[S]=c[S-16]+x+c[S-7]+T&0xffffffffffffffffn}let u=i[0],h=i[1],p=i[2],d=i[3],y=i[4],g=i[5],m=i[6],w=i[7];for(let S=0;S<80;S++){let x=o(y,14n)^o(y,18n)^o(y,41n),T=y&g^~y&m,v=w+x+T+e[S]+c[S]&0xffffffffffffffffn,E=o(u,28n)^o(u,34n)^o(u,39n),k=u&h^u&p^h&p,I=E+k&0xffffffffffffffffn;w=m,m=g,g=y,y=d+v&0xffffffffffffffffn,d=p,p=h,h=u,u=v+I&0xffffffffffffffffn}i=[i[0]+u&0xffffffffffffffffn,i[1]+h&0xffffffffffffffffn,i[2]+p&0xffffffffffffffffn,i[3]+d&0xffffffffffffffffn,i[4]+y&0xffffffffffffffffn,i[5]+g&0xffffffffffffffffn,i[6]+m&0xffffffffffffffffn,i[7]+w&0xffffffffffffffffn]}let a="";for(let l=0;l<4;l++)a+=i[l].toString(16).padStart(16,"0");return a}async function ln(r,e,t,n,s,o,i){let a=r.qop||"",l=r.nonce,c=r.realm,u=o||Ee(5),h=i||"00000001",p=vc(r.algorithm);async function d(S){return p==="MD5"?kc(S):p==="SHA-512-256"?Cc(S):await Ac(S)}let y=await d(`${e}:${c}:${t}`),g=await d(`${n}:${s}`),m,w=a.split(/\s*,\s*/).filter(Boolean);return w.includes("auth")||w.includes("auth-int")?m=await d(`${y}:${l}:${h}:${u}:${w[0]}:${g}`):m=await d(`${y}:${l}:${g}`),m}function vc(r){let e=r.toUpperCase().replace(/-/g,"");return e==="SHA256"?"SHA-256":e==="SHA512256"?"SHA-512-256":"MD5"}function un(r,e,t,n,s,o){let i=[],a=s||Ee(5),l=o||"00000001";return i.push(`username="${e}"`),i.push(`realm="${r.realm}"`),i.push(`nonce="${r.nonce}"`),i.push(`uri="${n}"`),i.push(`response="${t}"`),r.opaque&&i.push(`opaque="${r.opaque}"`),r.algorithm&&r.algorithm!=="MD5"&&i.push(`algorithm=${r.algorithm}`),r.qop&&(i.push(`qop=${r.qop.split(/\s*,\s*/)[0]}`),i.push(`nc=${l}`),i.push(`cnonce="${a}"`)),`Digest ${i.join(", ")}`}async function Pc(r,e,t,n,s){let o=cn(r),i=Ee(5),a="00000001",l=await ln(o,e,t,n,s,i,a);return un(o,e,l,s,i,a)}function Zs(){let r=new Map;return async(e,t,n,s,o)=>{let i=cn(e),a=Ee(5),l=`${i.realm}\0${i.nonce}`,c=(r.get(l)??0)+1;r.set(l,c);let u=c.toString(16).padStart(8,"0"),h=await ln(i,t,n,s,o,a,u);return un(i,t,h,o,a,u)}}Ze();Ze();var Jl=20,Ql={maxRetries:3,baseDelayMs:300,maxDelayMs:3e4,jitter:.3,statuses:[408,429,500,502,503,504],onNetworkError:!0,onTimeout:!1,methods:["GET","HEAD","PUT","DELETE","OPTIONS","TRACE"]},ts=class{constructor(){f(this,"_req",new Map);f(this,"_res",new Map);f(this,"_err",new Map);f(this,"_seq",0)}get request(){return Array.from(this._req.values())}get response(){return Array.from(this._res.values())}get error(){return Array.from(this._err.values())}addRequest(e){let t=++this._seq;return this._req.set(t,e),()=>{this._req.delete(t)}}addResponse(e){let t=++this._seq;return this._res.set(t,e),()=>{this._res.delete(t)}}addError(e){let t=++this._seq;return this._err.set(t,e),()=>{this._err.delete(t)}}clear(){this._req.clear(),this._res.clear(),this._err.clear()}};function Gl(r){if(r){let n=r.spanContext(),s=n.traceFlags.toString(16).padStart(2,"0");return{traceparent:`00-${n.traceId}-${n.spanId}-${s}`,traceId:n.traceId,spanId:n.spanId}}let e=rs(32),t=rs(16);return{traceparent:`00-${e}-${t}-01`,traceId:e,spanId:t}}function rs(r){return Ee(r/2)}var Xl=new Set(["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"]),Hi="__interceptorResendDepth",ji=5,Yl=new Set(["api_key","apikey","access_token","refresh_token","id_token","token","auth","authorization","key","secret","password","passwd","signature","sig","x-amz-signature","x-amz-credential","x-amz-security-token","x-goog-signature","sas","session","sessionid","jwt","code"]),Zl=8192;function eu(r){if(!r)return!1;let e=r.toLowerCase();return e.includes("json")||e.includes("xml")||e.includes("text/plain")||e.includes("application/javascript")}function Yn(r){try{let e=new URL(r),t=!1;for(let n of[...e.searchParams.keys()])Yl.has(n.toLowerCase())&&(e.searchParams.set(n,"***REDACTED***"),t=!0);return e.hash&&(e.hash.includes("token")||e.hash.includes("sig")||e.hash.length>1)&&(e.hash="#***REDACTED***",t=!0),t?e.toString():r}catch{return r.replace(/([?&])(api_key|apikey|access_token|refresh_token|token|secret|password|signature|sig)=([^&#]*)/gi,"$1$2=***REDACTED***")}}function Bi(r,e){return Xl.has(r.toLowerCase())?{name:r,value:"***REDACTED***"}:{name:r,value:e}}var ns=class{constructor(e=1e4){f(this,"_buf",new Map);f(this,"_head",0);f(this,"_tail",0);f(this,"maxEntries");this.maxEntries=e}get entries(){return Array.from(this._buf.values())}record(e,t,n){let s=t.durationMs,o=0,i=s,a=0;try{if(typeof performance<"u"&&typeof performance.getEntriesByType=="function"){let c=typeof performance.getEntriesByName=="function"?performance.getEntriesByName(t.url):performance.getEntriesByType("resource").filter(h=>h.name===t.url),u=c[c.length-1];u&&u.requestStart>0&&Date.now()-u.startTime<6e4&&(o=Math.max(0,u.responseStart-u.requestStart),a=Math.max(0,u.responseEnd-u.responseStart),i=Math.max(0,s-o-a))}}catch{}let l={startedDateTime:new Date(n).toISOString(),time:s,request:{method:e.method,url:Yn(e.url),httpVersion:t.httpVersion,headers:Object.entries(e.headers).map(([c,u])=>Bi(c,u)),queryString:(()=>{try{return Array.from(new URL(Yn(e.url)).searchParams.entries()).map(([c,u])=>({name:c,value:u}))}catch{return[]}})(),bodySize:e.body?typeof e.body=="string"?new TextEncoder().encode(e.body).byteLength:e.body instanceof Uint8Array||e.body instanceof ArrayBuffer?e.body.byteLength:-1:0},response:{status:t.status,statusText:t.statusText,httpVersion:t.httpVersion,headers:Object.entries(t.headers).map(([c,u])=>Bi(c,u)),content:{size:t.rawBody?.byteLength??0,mimeType:t.headers["content-type"]??"application/octet-stream",...typeof t.data=="string"&&eu(t.headers["content-type"])?{text:t.data.slice(0,Zl)}:{}},redirectURL:t.headers.location?Yn(t.headers.location):"",bodySize:t.rawBody?.byteLength??0},timings:{send:o,wait:i,receive:a},cache:{}};this._buf.set(this._tail++,l),this._buf.size>this.maxEntries&&this._buf.delete(this._head++)}getHAR(){return{version:"1.2",creator:{name:"kinetex",version:"1.0.0",comment:`runtime:${ye}`},entries:[...this.entries]}}clear(){this._buf.clear(),this._head=0,this._tail=0}get count(){return this._buf.size}};async function zi(r,e){let t={...r.headers};switch(e.type){case"bearer":{let s=`Bearer ${typeof e.token=="function"?await e.token():e.token}`;if(!_e(s))throw new _("Invalid bearer token \u2014 contains forbidden characters (CRLF/CTL)","EVALIDATION");t.authorization=s;break}case"basic":{let n=new TextEncoder,s=n.encode(e.username),o=n.encode(e.password),i=s.length+1+o.length,a=new Uint8Array(i);a.set(s),a.set(n.encode(":"),s.length),a.set(o,s.length+1);let l=Vt(a);t.authorization=`Basic ${l}`,s.fill(0),o.fill(0),a.fill(0);break}case"apikey":{let n=typeof e.key=="function"?await e.key():e.key;if(!ze(e.header))throw new _(`Invalid apikey auth header name: "${e.header}"`,"EVALIDATION");if(!_e(String(n)))throw new _(`Invalid apikey value for "${e.header}" \u2014 contains forbidden characters`,"EVALIDATION");t[e.header.toLowerCase()]=String(n);break}case"digest":break;case"custom":{let n=e.apply(r);if(!n)throw new Error("Custom auth 'apply' must return a KinetexRequest");return n}default:{let n=e;throw new Error(`Unknown auth type: ${n.type}`)}}return{...r,headers:t}}var tu=new Set(["authorization","cookie","proxy-authorization"]);function ru(r,e){if(e&&e.type==="apikey")return!0;if(!r)return!1;for(let t of Object.keys(r)){let n=t.toLowerCase();if(Fi.has(n)&&!tu.has(n))return!0}return!1}var Fi=new Set([...Gt,"www-authenticate"]);function Ar(r){try{let e=new URL(r);return e.username||e.password?(e.username="",e.password="",e.toString()):r}catch{return r.replace(/\/\/[^/@]*@/,"//")}}function jt(r,e,t){let o;if(/^https?:\/\//i.test(e))o=e;else{let i=r??"";try{let a=i.replace(/\/$/,""),l=e.startsWith("/")?e.slice(1):e;o=new URL(l,a+"/").href}catch{let a=i.endsWith("/")?i:i+"/",l=e.startsWith("/")?e.slice(1):e;o=a+l}}if(!t||Object.keys(t).length===0){if(!Se(o))throw new _(`URL "${Ar(o)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return o}try{let i=new URL(o),a=0;for(let[c,u]of Object.entries(t)){if(u==null)continue;let h=String(u);if(Array.isArray(u)){for(let p of u)if(p!=null){if(a++,a>100)throw new _(`Query parameter count ${a} exceeds limit of 100`,"EVALIDATION");i.searchParams.append(c,String(p))}}else{if(a++,a>100)throw new _(`Query parameter count ${a} exceeds limit of 100`,"EVALIDATION");i.searchParams.set(c,h)}}let l=i.toString();if(l.length>8192)throw new _(`URL length ${l.length} bytes exceeds limit of 8192 bytes`,"EVALIDATION");if(!Se(l))throw new _(`URL "${Ar(l)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return l}catch(i){if(i instanceof _)throw i;o.includes("?")?o+="&":o+="?";let a=[],l=0;for(let[u,h]of Object.entries(t??{}))if(h!=null)if(Array.isArray(h)){for(let p of h)if(p!=null){if(l++,l>100)throw new _(`Query parameter count ${l} exceeds limit of 100`,"EVALIDATION");a.push(`${encodeURIComponent(u)}=${encodeURIComponent(String(p))}`)}}else{if(l++,l>100)throw new _(`Query parameter count ${l} exceeds limit of 100`,"EVALIDATION");a.push(`${encodeURIComponent(u)}=${encodeURIComponent(String(h))}`)}let c=o+a.join("&");if(c.length>8192)throw new _(`URL length ${c.length} bytes exceeds limit of 8192 bytes`,"EVALIDATION");if(!Se(c))throw new _(`URL "${Ar(c)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return c}}function ot(...r){let e=Object.create(null);for(let t of r){if(!t)continue;let n=Object.keys(t);for(let s of n){if(s==="__proto__"||s==="constructor"||s==="prototype")continue;if(!ze(s))throw new _(`Invalid header name: "${s}" \u2014 contains forbidden characters`,"EVALIDATION");let o=t[s];if(o==null)continue;let i=Array.isArray(o)?o.map(String).join(", "):String(o);if(!_e(i))throw new _(`Invalid header value for ${s}: contains forbidden characters`,"EVALIDATION");e[s.toLowerCase()]=i}}return e}function qi(r,e){if(e.attempt>r.maxRetries||!r.methods.includes(e.request.method))return!1;if(r.shouldRetry)return r.shouldRetry(e);if(e.error){let t=e.error,n=t.code;switch(n){case"EHTTPSTATUS":return r.statuses.includes(t.status??0);case"ETIMEOUT":return r.onTimeout===!0;case"ENETWORK":return r.onNetworkError;case"EABORT":return!1;case"ESIZELIMIT":return!1;case"EPARSE":return!1;case"EVALIDATION":return!1;case"EAUTH":return!1;case"EPROXY":return!1;case"EREDIRECT":return!1;case"EUNKNOWN":return!1;default:return!1}}return e.response?r.statuses.includes(e.response.status):!1}function Zn(r,e,t){if(t!==null)return Math.min(t,r.maxDelayMs);let n=Math.min(e,31),s=r.baseDelayMs*Math.pow(2,n-1);if(!isFinite(s)||s>r.maxDelayMs)return r.maxDelayMs;let o=Math.min(s,r.maxDelayMs);return Math.floor(o+o*r.jitter*Math.random())}function nu(r){let e=r["retry-after"];if(!e)return null;if(/^\d+$/.test(e.trim())){let n=parseInt(e,10);return!isFinite(n)||n<0?null:Math.min(n,86400)*1e3}let t=Date.parse(e);return isNaN(t)?null:Math.max(0,Math.min(t-Date.now(),864e5))}var Bt=class r{constructor(e={}){f(this,"cfg");f(this,"transport");f(this,"interceptors");f(this,"harRecorder");f(this,"retryConfig");f(this,"_cache",null);f(this,"_cookieJar",null);f(this,"_logger",null);f(this,"_cacheInitLock",null);f(this,"_cookieJarInitLock",null);f(this,"_loggerInitLock",null);f(this,"_otelTracer",null);f(this,"_dedup",null);f(this,"_circuitBreakers",null);f(this,"_circuitBreakerKeyFn",null);f(this,"_wsClients",new Set);if(this.cfg=e,this.interceptors=new ts,this.harRecorder=e.har===!0?new ns:null,this.retryConfig={...Ql,...e.retry},e.circuitBreakerKeyFn&&(this._circuitBreakerKeyFn=e.circuitBreakerKeyFn),e.rateLimit){let t=Yt(e.rateLimit);this.interceptors.addRequest(t)}if(e.awsSigning){let t=new ue(e.awsSigning);this.interceptors.addRequest(async n=>{let s=n.request,o=null;(s.body instanceof Uint8Array||typeof s.body=="string")&&(o=s.body);let i=await t.sign({method:s.method,url:s.url,headers:{...s.headers},body:o});n.request={...s,headers:i.headers}})}if(this.transport=ur(e.fetch,e.httpVersion!=="HTTP/1.1",void 0,e.strictHeaders?{strict:!0}:void 0),e.interceptors&&(e.interceptors.request?.forEach(t=>this.interceptors.addRequest(t)),e.interceptors.response?.forEach(t=>this.interceptors.addResponse(t)),e.interceptors.error?.forEach(t=>this.interceptors.addError(t))),e.auth?.type==="digest"){let t=e.auth,n=Zs();this.interceptors.addResponse(async s=>{if(!s.response||s.response.status!==401)return;let o=s.response.headers["www-authenticate"];if(!o||!o.toLowerCase().startsWith("digest")||s.request.meta.__digestRetried)return;let i=s.request.method,a=new URL(s.request.url),l=a.pathname+a.search,c=await n(o,t.username,t.password,i,l);return{...s.request,headers:{...s.request.headers,authorization:c},meta:{...s.request.meta,__digestRetried:!0}}})}}useRequest(e){return this.interceptors.addRequest(e)}attachHookRegistry(e){let t=this.useRequest(async o=>{let i={url:o.request.url,method:o.request.method,headers:o.request.headers,body:o.request.body,signal:o.request.signal,meta:o.request.meta},a={request:i,response:null,error:null,startedAt:o.startedAt,attempt:o.attempt,meta:o.request.meta},l=await e.runBeforeRequest(i,a);l!==i&&(o.request={...o.request,...l})}),n=this.useResponse(async o=>{if(!o.response)return;let i={status:o.response.status,statusText:o.response.statusText,headers:o.response.headers,body:o.response.rawBody??null,request:{url:o.request.url,method:o.request.method,headers:o.request.headers,body:o.request.body,signal:o.request.signal,meta:o.request.meta}},a={request:i.request,response:i,error:null,startedAt:o.startedAt,attempt:o.attempt,meta:o.request.meta};await e.runAfterResponse(i,a)}),s=this.useError(async o=>{if(!o.error)return;let i={url:o.request.url,method:o.request.method,headers:o.request.headers,body:o.request.body,signal:o.request.signal,meta:o.request.meta},a=su(o.error.response,i),l={error:o.error,request:i,response:a,attempt:o.attempt},c={request:l.request,response:a,error:o.error,startedAt:o.startedAt,attempt:o.attempt,meta:o.request.meta};await e.runOnError(l,c)});return()=>{t(),n(),s()}}useResponse(e){return this.interceptors.addResponse(e)}useError(e){return this.interceptors.addError(e)}getHAR(){if(!this.harRecorder)throw new _("HAR recording not enabled. Pass `har: true` in config.","EUNKNOWN");return this.harRecorder.getHAR()}clearHAR(){this.harRecorder?.clear()}async getCache(){if(this._cache)return this._cache;if(!this.cfg.cache)return null;if(this._cacheInitLock)return await this._cacheInitLock,this._cache;let e=()=>{};this._cacheInitLock=new Promise(t=>{e=t});try{let{HTTPCache:t}=await Promise.resolve().then(()=>(Ke(),Is));return this._cache=new t(this.cfg.cache),this._cache}finally{e(),this._cacheInitLock=null}}async getCookieJar(){if(this._cookieJar)return this._cookieJar;if(!this.cfg.cookieJar)return null;if(this._cookieJarInitLock)return await this._cookieJarInitLock,this._cookieJar;if(this.cfg.cookieJar instanceof Object&&"setCookie"in this.cfg.cookieJar)return this._cookieJar=this.cfg.cookieJar,this._cookieJar;let e=()=>{};this._cookieJarInitLock=new Promise(t=>{e=t});try{let{CookieJar:t}=await Promise.resolve().then(()=>(qn(),Qo));return this._cookieJar=new t,this._cookieJar}finally{e(),this._cookieJarInitLock=null}}async getLogger(){if(this._logger)return this._logger;if(!this.cfg.logger)return null;if(this._loggerInitLock)return await this._loggerInitLock,this._logger;let e=()=>{};this._loggerInitLock=new Promise(t=>{e=t});try{let{createLogger:t}=await Promise.resolve().then(()=>(br(),ri));return this._logger=t(this.cfg.logger),this._logger}finally{e(),this._loggerInitLock=null}}extend(e){let t=this.cfg.interceptors?.request??[],n=this.cfg.interceptors?.response??[],s=this.cfg.interceptors?.error??[],o=e.interceptors?.request??[],i=e.interceptors?.response??[],a=e.interceptors?.error??[],l=new r({...this.cfg,...e,headers:ot(this.cfg.headers,e.headers),params:{...this.cfg.params,...e.params},interceptors:{request:[...t,...o],response:[...n,...i],error:[...s,...a]}}),c=new Set([...t,...o]),u=new Set([...n,...i]),h=new Set([...s,...a]);for(let p of this.interceptors.request)c.has(p)||l.useRequest(p);for(let p of this.interceptors.response)u.has(p)||l.useResponse(p);for(let p of this.interceptors.error)h.has(p)||l.useError(p);return this._circuitBreakers&&!l._circuitBreakers&&(l._circuitBreakers=this._circuitBreakers),this._dedup&&!l._dedup&&(l._dedup=this._dedup),this._otelTracer&&!l._otelTracer&&(l._otelTracer=this._otelTracer),l}setTracer(e){return this._otelTracer=e,this}enableDedup(e){return this._dedup=new je(e),this}disableDedup(){return this._dedup=null,this}get dedupMetrics(){return this._dedup?{hits:this._dedup.hits,misses:this._dedup.misses,inFlightCount:this._dedup.inFlightCount}:null}enableCircuitBreaker(e){return this._circuitBreakers=new Be(e),this}disableCircuitBreaker(){return this._circuitBreakers=null,this}tripCircuit(e){return this._circuitBreakers?.trip(e),this}resetCircuit(e){return this._circuitBreakers?.reset(e),this}get circuitSnapshots(){return this._circuitBreakers?.snapshots()??{}}async ws(e,t={}){let n=jt(this.cfg.baseURL,e,this.cfg.params),s=ot(this.cfg.headers,t.headers),o={},i=this.cfg.auth;if(i){if(i.type==="bearer"){let d=typeof i.token=="function"?await i.token():i.token;o.authorization=`Bearer ${d}`}else if(i.type==="basic"){let d=new TextEncoder,y=d.encode(i.username),g=d.encode(i.password),m=new Uint8Array(y.length+1+g.length);m.set(y),m[y.length]=58,m.set(g,y.length+1);let w=Vt(m);m.fill(0),y.fill(0),g.fill(0),o.authorization=`Basic ${w}`}else if(i.type==="apikey"){let d=typeof i.key=="function"?await i.key():i.key;o[i.header.toLowerCase()]=typeof d=="string"?d:await d}}let a=await this.getCookieJar();if(a){let d=a.getCookieHeader({url:n,http:!1});d&&(s.cookie=d)}try{let d=new URL(n);if(this.cfg.baseURL){let y=new URL(this.cfg.baseURL),g=d.protocol==="wss:",m=y.protocol==="https:";if(g!==m||d.host!==y.host)throw new _(`WebSocket origin ${d.origin} does not match baseURL origin ${y.origin}`,"EVALIDATION")}}catch(d){throw d instanceof _?d:new _(`Invalid WebSocket URL: ${d}`,"EVALIDATION")}if(this._circuitBreakers){let d=this._circuitBreakerKeyFn?this._circuitBreakerKeyFn({url:n,method:"GET",headers:s,body:null,signal:null,meta:{}}):new URL(n).origin;if(this._circuitBreakers.get(d).state==="OPEN")throw new _(`Circuit breaker is open for WebSocket origin ${new URL(n).origin}`,"ENETWORK")}let l=this.cfg.ws,c={...l?.highWaterMark!==void 0?{highWaterMark:l.highWaterMark}:{},...l?.lowWaterMark!==void 0?{lowWaterMark:l.lowWaterMark}:{},...l?.maxSendRate!==void 0?{maxSendRate:l.maxSendRate}:{},...l?.keepRooms!==void 0?{keepRooms:l.keepRooms}:{},...t},u=c.onClose,h=(d,y,g)=>{g||this._wsClients.delete(p),u?.(d,y,g)},p=new qe({url:n,headers:{...o,...s},...c,onClose:h});return this._wsClients.add(p),await p.connect().catch(d=>{throw this._wsClients.delete(p),d}),p}async send(e,t,n={}){let s=kr(),o=Date.now(),i=n.timeout!==void 0?n.timeout:this.cfg.timeout??3e4,a=n.retry===!1?!1:{...this.retryConfig,...n.retry??{}},l=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","TRACE","CONNECT"],c=t.toUpperCase();if(!l.includes(c))throw new _(`Invalid HTTP method '${t}'. Valid methods: ${l.join(", ")}`,"EVALIDATION");let u=jt(n.baseURL??this.cfg.baseURL,e,ou(this.cfg.params,n.params));if(n.proxy??this.cfg.proxy)throw new _("proxy is configured but kinetex's built-in transports cannot route through it: HTTP(S) proxies require a custom fetch with a proxy agent (e.g. undici ProxyAgent passed via the `fetch` option), and SOCKS5 requires createSocks5Tunnel() from kinetex/socks5. Set up one of those instead of relying on `proxy` silently doing nothing.","EVALIDATION");if(this.cfg.httpsOnly)try{let E=new URL(u);if(E.protocol!=="https:")throw new _(`HTTPS-only mode enabled but URL uses ${E.protocol}. Use HTTPS URLs only.`,"EVALIDATION")}catch(E){throw E instanceof _?E:new _(`Invalid URL: ${E}`,"EVALIDATION")}let p=n.maxRequestSize??this.cfg.maxRequestSize??0;if(p>0&&n.body){let E=0;if(typeof n.body=="string")E=new TextEncoder().encode(n.body).byteLength;else if(n.body instanceof Uint8Array)E=n.body.byteLength;else if(n.body instanceof ArrayBuffer)E=n.body.byteLength;else if(n.body instanceof Blob)E=n.body.size;else if(ArrayBuffer.isView(n.body))E=n.body.byteLength;else if(n.body instanceof URLSearchParams)E=new TextEncoder().encode(n.body.toString()).byteLength;else if(n.body instanceof FormData){for(let[I,$]of n.body)E+=new TextEncoder().encode(I).byteLength+76,typeof $=="string"?E+=new TextEncoder().encode($).byteLength:E+=$.size;E+=76}else{if(n.body instanceof ReadableStream)throw new _("maxRequestSize cannot be enforced for ReadableStream bodies \u2014 pass maxRequestSize: 0 to opt out, or buffer the body first","EVALIDATION");if(n.body&&typeof n.body=="object")try{E=new TextEncoder().encode(JSON.stringify(n.body)).byteLength}catch(k){throw new _(`Cannot measure request body size: ${k instanceof Error?k.message:String(k)}`,"EVALIDATION")}}if(E>p)throw new _(`Request body size ${E} bytes exceeds limit of ${p} bytes`,"EVALIDATION")}let d={url:u,method:c,headers:ot(this.cfg.headers,n.headers),body:n.body??null,signal:n.signal??null,...n.followRedirects!==void 0||this.cfg.followRedirects!==void 0?{followRedirects:n.followRedirects??this.cfg.followRedirects}:{},...n.maxRedirects!==void 0||this.cfg.maxRedirects!==void 0?{maxRedirects:n.maxRedirects??this.cfg.maxRedirects}:{},meta:{...n.meta},httpVersion:n.httpVersion??this.cfg.httpVersion??"HTTP/2"};d.body!==null&&typeof d.body=="object"&&!(d.body instanceof Uint8Array)&&!(d.body instanceof ArrayBuffer)&&!(d.body instanceof ReadableStream)&&!(d.body instanceof FormData)&&!(d.body instanceof URLSearchParams)&&!(d.body instanceof Blob)&&!d.headers["content-type"]&&(d={...d,headers:{...d.headers,"content-type":"application/json"},body:JSON.stringify(d.body)}),d.body!==null&&typeof URLSearchParams<"u"&&d.body instanceof URLSearchParams&&!d.headers["content-type"]&&(d={...d,headers:{...d.headers,"content-type":"application/x-www-form-urlencoded"}});let y=n.auth!==!1?n.auth??this.cfg.auth:void 0;y&&(d=await zi(d,y)),this.cfg.transformRequest&&(d=await this.cfg.transformRequest(d));let g=await this.getCookieJar();if(g){let E=g.getCookieHeader({url:d.url,http:!0});E&&(d={...d,headers:{...d.headers,cookie:E}})}let m=null;try{if(this._otelTracer){m=this._otelTracer.startSpan(`HTTP ${d.method}`,{kind:3});let{traceparent:E,traceId:k,spanId:I}=Gl(m);m.setAttribute("http.request.method",d.method),m.setAttribute("url.full",d.url);try{m.setAttribute("server.address",new URL(d.url).hostname)}catch{}d={...d,headers:{...d.headers,traceparent:E},meta:{...d.meta,traceId:k,spanId:I}}}else if(d.meta.traceId&&!d.headers.traceparent){let E=String(d.meta.traceId),k=rs(16);d={...d,headers:{...d.headers,traceparent:`00-${E}-${k}-01`},meta:{...d.meta,spanId:k}}}}catch(E){throw m&&(m.setStatus({code:2,message:E instanceof Error?E.message:String(E)}),E instanceof Error&&m.recordException(E),m.end()),E}let w;if(this._circuitBreakerKeyFn)try{w=this._circuitBreakerKeyFn(d)}catch{w=d.url}else try{w=new URL(d.url).origin}catch{w=d.url}let S=()=>this._executeWithRetry(d,a,i,n,s,o),x="";if(this._dedup){let E=await ge(d.headers??{});x=`${d.method}:${d.url}${E?":"+E:""}`}let T=this._dedup?()=>this._dedup.execute(d.method,x,S).then(E=>E):S,v=this._circuitBreakers?()=>this._circuitBreakers.execute(w,T).then(E=>E):T;try{let E=await v();return m&&(m.setAttribute("http.response.status_code",E.status),m.setStatus({code:E.status<400?1:2}),m.end()),E}catch(E){throw m&&(m.setStatus({code:2,message:E instanceof Error?E.message:String(E)}),E instanceof Error&&m.recordException(E),m.end()),E}}async _executeWithRetry(e,t,n,s,o,i){let a=0;for(;;){if(a++,e.signal?.aborted)throw ss(e);if(a>1&&iu(e.body))throw new _("Cannot retry a request whose body is a stream or Blob \u2014 the body was consumed by the first attempt. Buffer it first, or disable retry for this request.","EVALIDATION",{request:e});try{let l=await this._executeOnce(e,n,s,o,a,i,t);if(t&&a<=t.maxRetries){let c={request:e,response:l,error:null,attempt:a,maxRetries:t.maxRetries};if(t.shouldRetry?await t.shouldRetry(c):qi(t,c)){let h=Zn(t,a,nu(l.headers));await t.onRetry?.(c,h),await this.cfg.hooks?.onRetry?.reduce(async(p,d)=>{await p,await d(c)},Promise.resolve()),await es(h,e.signal);continue}}return l}catch(l){if(globalThis.__KINETEX_DEBUG_RETRY&&console.log("DBG catch",{attempt:a,maxRetries:t===!1?"FALSE":t?.maxRetries,methods:t===!1?"FALSE":t?.methods,code:l?.code,method:e.method}),t&&a<=t.maxRetries){let u={request:e,response:null,error:l,attempt:a,maxRetries:t.maxRetries};if(t.shouldRetry?await t.shouldRetry(u):qi(t,u)){let p=Zn(t,a,null);await t.onRetry?.(u,p),await es(p,e.signal);continue}}let c=await this._runErrorInterceptors(e,l,a,o);if(c)return c;if(s.onError){let u=l instanceof _?l:new _(String(l),"EUNKNOWN",{request:e,cause:l});throw s.onError(u),u}throw l}}}async _sendFollowingRedirects(e,t,n,s){let o=Math.max(0,e.maxRedirects??Jl),i=e.followRedirects!==!1&&o>0,a={...e,redirect:"manual"},l=(()=>{try{return new URL(e.url).origin}catch{return null}})(),c=new Set;for(let u=0;u<=o;u++){if(u>0&&s&&(()=>{try{return new URL(a.url).origin===l}catch{return!1}})()&&(a=await zi(a,s)),u>0&&this.cfg.hooks?.onBeforeRequest)for(let d of this.cfg.hooks.onBeforeRequest){let y=await d(a,{request:a,response:null,error:null,startedAt:kr(),attempt:1,meta:a.meta});y&&(a={...y,redirect:"manual"})}let h=await Ye(this.transport,a,t);if(u>0){let d=await this.getLogger();if(d){let y=a.meta.requestId??"redirect";d.logResponse(y,h.status,h.statusText,h.headers,new Uint8Array(0),1,!1)}}if(h.status>=300&&h.status<400&&!!h.headers.location){if(c.has(h.url))throw new _(`Redirect loop detected: ${h.url}`,"ENETWORK",{request:e});if(c.add(h.url),n?.processResponseHeaders(h.headers,{url:h.url}),!i)return{...h,redirected:!0};if(u===o)throw new _(`Too many redirects (exceeded ${o})`,"ENETWORK",{request:e});if(h.body)try{await h.body.cancel()}catch{}let d=h.headers.location,y;try{let x=new URL(d,h.url);y=x.href;let T=x.protocol.toLowerCase();if(T!=="http:"&&T!=="https:")throw new _(`Unsafe redirect to ${T} detected \u2014 only HTTP(S) allowed`,"ENETWORK",{request:e});if(!Se(y))throw new _(`Unsafe redirect target blocked: ${Ar(d)}`,"EVALIDATION",{request:e});if(this.cfg.httpsOnly&&T!=="https:")throw new _(`HTTPS-only mode enabled but redirect target uses ${T}`,"EVALIDATION",{request:e})}catch(x){throw x instanceof _?x:new _(`Invalid redirect location: ${d}`,"ENETWORK",{request:e,cause:x})}let g=h.status===301||h.status===302||h.status===303?"GET":a.method,m=g==="GET"||g==="HEAD"?null:a.body,w={...a.headers},S=!1;try{S=new URL(y).origin!==new URL(a.url).origin}catch{}if(S){for(let x of Fi)delete w[x];s&&s.type==="apikey"&&delete w[s.header.toLowerCase()]}if(n){let x=n.getCookieHeader({url:y,http:!0});x?w.cookie=x:delete w.cookie}else S&&delete w.cookie;a={...a,url:y,method:g,body:m,headers:w,redirect:"manual"};continue}return u>0?{...h,redirected:!0}:h}throw new _("Redirect loop","ENETWORK",{request:e})}async _executeOnce(e,t,n,s,o,i,a){let l={request:e,response:null,error:null,startedAt:s,attempt:o,aborted:!1,store:new Map},c=e.meta.requestId??`req-${o}-${Date.now()}`;if(this._trace(c,"request_interceptors","start",s,o),e=await this._runRequestInterceptors(l),this._trace(c,"request_interceptors","end",s,o),this._trace(c,"lifecycle_before","start",s,o),this.cfg.hooks?.onBeforeRequest)for(let A of this.cfg.hooks.onBeforeRequest){let P=await A(e,this._hookCtx(l));P&&(e=P)}if(this._trace(c,"lifecycle_before","end",s,o),n.cache!==!1&&this.cfg.cache){let A=await this.getCache();if(A){let P={url:e.url,method:e.method,headers:e.headers},C=await A.get(P);if(C&&!C.stale){let O=await this._buildResponse(C.entry.response,e,!0,o,s,n);if(this.cfg.hooks?.onBeforeResponse)for(let K of this.cfg.hooks.onBeforeResponse)await K(O,this._hookCtx(l));return O}if(C?.stale){if(await A.markSWRInFlight(P)){let H={...e,headers:{...e.headers,...A.buildConditionalHeaders(C.entry)}};(async()=>{try{let j=await Ye(this.transport,H,t),He=await this.getCache();if(He)if(j.status===304)await He.revalidate({url:H.url,method:H.method,headers:H.headers},{status:304,statusText:"Not Modified",headers:j.headers,body:null});else{let{decompressBodyStream:ra,readRawBody:na}=await Promise.resolve().then(()=>(Ze(),Wo)),sa=await ra(j.body,j.headers),oa=await na(sa,0,j.url,H.signal);await He.set({url:H.url,method:H.method,headers:H.headers},{status:j.status,statusText:j.statusText,headers:j.headers,body:oa},{tags:n.tags??[]})}}catch(j){if(this.cfg.onSWRError)try{this.cfg.onSWRError(j,H)}catch{}}finally{try{(await this.getCache())?.clearSWRInFlight(P)}catch{}}})()}return await this._buildResponse(C.entry.response,e,!0,o,s,n)}}}let u=[];n.onUploadProgress&&u.push(n.onUploadProgress),this.cfg.hooks?.onUploadProgress&&u.push(...this.cfg.hooks.onUploadProgress);let h=u.length>0?u:null,p=null;if(h!==null&&e.body!==null){let A=null,P=null;if(e.body instanceof ReadableStream)A=e.body;else if(typeof e.body=="string"){let C=new TextEncoder().encode(e.body);P=C.byteLength,A=new ReadableStream({start:O=>{O.enqueue(C),O.close()}})}else if(e.body instanceof Uint8Array)P=e.body.byteLength,A=new ReadableStream({start:C=>{C.enqueue(e.body),C.close()}});else if(e.body instanceof ArrayBuffer){let C=new Uint8Array(e.body);P=C.byteLength,A=new ReadableStream({start:O=>{O.enqueue(C),O.close()}})}else if(typeof Blob<"u"&&e.body instanceof Blob)P=e.body.size,A=e.body.stream();else if(typeof URLSearchParams<"u"&&e.body instanceof URLSearchParams){let C=new TextEncoder().encode(e.body.toString());P=C.byteLength,A=new ReadableStream({start:O=>{O.enqueue(C),O.close()}})}if(A){let{stream:C}=Ft(A,P,{onProgress:O=>{let K=O;for(let H of u)H(K)},...e.signal!==null?{signal:e.signal}:{}});p=C,e={...e,body:C}}}e.headers["accept-encoding"]||(e={...e,headers:{...e.headers,"accept-encoding":lr}});let d=await this.getCookieJar(),y=n.auth!==!1?n.auth??this.cfg.auth:void 0,g=d!==null||ru(e.headers,y);this._trace(c,"transport_send","start",s,o);let m;try{m=g?await this._sendFollowingRedirects(e,t,d??void 0,y):await Ye(this.transport,e,t)}catch(A){if(p)try{p.cancel("Request failed").catch(()=>{})}catch{}throw A}if(this._trace(c,"transport_send","end",s,o),m.status===304){let A=await this.getCache();if(A){let P=await A.revalidate({url:e.url,method:e.method,headers:e.headers},{status:304,statusText:"Not Modified",headers:m.headers,body:null});if(P)return await this._buildResponse(P.response,e,!0,o,s,n)}}m.alreadyDecompressed&&(delete m.headers["content-encoding"],delete m.headers["Content-Encoding"]);let w=await fr(m.body,m.headers),S=[];n.onDownloadProgress&&S.push(n.onDownloadProgress),this.cfg.hooks?.onDownloadProgress&&S.push(...this.cfg.hooks.onDownloadProgress);let x=S.length>0?S:null,T=w;if(x&&T){let A=m.headers["content-length"],P=A?parseInt(A,10):null,C=new V(P&&!isNaN(P)?P:null,{onProgress:K=>{let H=K;for(let j of S)j(H)},...e.signal!==null?{signal:e.signal}:{}}),O=T;T=new ReadableStream({async start(K){let H=O.getReader();try{for(;;){let{done:j,value:He}=await H.read();if(j){C.complete(),K.close();break}C.update(He.byteLength),K.enqueue(He)}}catch(j){K.error(j)}finally{H.releaseLock()}},cancel(K){O.cancel(K).catch(()=>{})}})}let v=n.maxResponseSize??this.cfg.maxResponseSize??0,E=await hr(T,v,m.url,e.signal),k=await this.getCookieJar();k&&k.processResponseHeaders(m.headers,{url:m.url});let I=m.headers["content-type"]??null;this._trace(c,"response_parse","start",s,o);let $=await Rt(E,I,n.parseResponse,n.parseFailure,m.headers,m.url);this._trace(c,"response_parse","end",s,o);let X=kr()-s,D={status:m.status,statusText:m.statusText,headers:m.headers,data:$,rawBody:E,url:m.url,cached:!1,redirected:m.redirected,httpVersion:m.httpVersion,durationMs:X,request:e,attempt:o};if(this.cfg.transformResponse&&(D.data=this.cfg.transformResponse(D.data,D)),n.cache!==!1&&this.cfg.cache){let A=await this.getCache();A&&m.status!==304&&await A.set({url:e.url,method:e.method,headers:e.headers},{status:m.status,statusText:m.statusText,headers:m.headers,body:E},{tags:n.tags??[]})}let W=await this.getLogger();if(W){let A=l.store.get("requestId")??e.meta.requestId??"unknown";W.logResponse(A,D.status,D.statusText,D.headers,E,o,!1)}this.harRecorder?.record(e,D,i??Date.now()-D.durationMs),l.response=D,this._trace(c,"response_interceptors","start",s,o);let z=await this._runResponseInterceptors(l,D,e,t,n,s,o,a??!1);if(this._trace(c,"response_interceptors","end",s,o),this.cfg.hooks?.onBeforeResponse){let A=z;for(let P of this.cfg.hooks.onBeforeResponse){let C=await P(A,this._hookCtx(l));C&&(A=C)}}if((n.throwOnError??this.cfg.throwOnError??!0)&&z.status>=400)throw new mt(z,e);if(this.cfg.hooks?.onAfterResponse)for(let A of this.cfg.hooks.onAfterResponse)await A(z,this._hookCtx(l));return n.onSuccess?.(z),z}async _runRequestInterceptors(e){let t=e.request;for(let n of this.interceptors.request){e.request=t;let s=await n(e);s&&"url"in s&&!("status"in s)?t=s:e.request!==t&&(t=e.request)}return e.request=t,t}async _runResponseInterceptors(e,t,n,s,o,i,a,l){let c=t;for(let u of this.interceptors.response){let h=await u(e);if(h){if("status"in h&&"headers"in h)c=h;else if("url"in h&&"method"in h&&!("status"in h)){let p=Number(n.meta[Hi]??0);if(p>=ji)throw new _(`Response interceptor re-send limit reached (${ji}) \u2014 refusing to loop`,"EVALIDATION",{request:n});if(l&&a<=l.maxRetries){let d={request:n,response:t,error:null,attempt:a,maxRetries:l.maxRetries},y=Zn(l,a,0);await l.onRetry?.(d,y),await this.cfg.hooks?.onRetry?.reduce(async(g,m)=>{await g,await m(d)},Promise.resolve()),await es(y,n.signal)}return this._executeOnce({...h,meta:{...h.meta,[Hi]:p+1}},s,o,i,a+1,void 0,l)}}}return c}async _runErrorInterceptors(e,t,n,s){let o={request:e,response:null,error:t,startedAt:s,attempt:n,aborted:!1,store:new Map};for(let i of this.interceptors.error){let a=await i(o);if(a&&"status"in a)return a}if(this.cfg.hooks?.onError)for(let i of this.cfg.hooks.onError){let a=await i(t,this._hookCtx(o));if(a)return a}return null}async _buildResponse(e,t,n,s,o,i){let a=e.body,l=a instanceof Uint8Array?a:typeof a=="string"?new TextEncoder().encode(a):null,c=l?await Rt(l,e.headers["content-type"]??null,i.parseResponse,i.parseFailure,e.headers,"url"in e?e.url:t.url):null,u=kr()-o,h="url"in e?e.url:t.url,p="redirected"in e?e.redirected:!1,d="httpVersion"in e?e.httpVersion:"HTTP/1.1";return{status:e.status,statusText:e.statusText,headers:e.headers,data:c,rawBody:l,url:h,cached:n,redirected:p,httpVersion:d,durationMs:u,request:t,attempt:s}}_hookCtx(e){return{request:e.request,response:e.response,error:e.error,startedAt:e.startedAt,attempt:e.attempt,meta:e.request.meta}}_trace(e,t,n,s,o,i){if(this.cfg.onPipelineTrace)try{console.debug("[kinetex:trace]",e,t,n,o),this.cfg.onPipelineTrace({requestId:e,stage:t,event:n,elapsedMs:typeof performance<"u"?performance.now()-s:Date.now()-s,attempt:o,...i})}catch{}}get(e,t){return this.send(e,"GET",t)}post(e,t,n){return this.send(e,"POST",{...n,...t!==void 0?{body:t}:{}})}put(e,t,n){return this.send(e,"PUT",{...n,...t!==void 0?{body:t}:{}})}patch(e,t,n){return this.send(e,"PATCH",{...n,...t!==void 0?{body:t}:{}})}delete(e,t){return this.send(e,"DELETE",t)}head(e,t){return this.send(e,"HEAD",t)}options(e,t){return this.send(e,"OPTIONS",t)}request(e,t){return new Cr(this,e,t)}GET(e){return this.request("GET",e)}POST(e){return this.request("POST",e)}PUT(e){return this.request("PUT",e)}PATCH(e){return this.request("PATCH",e)}DELETE(e){return this.request("DELETE",e)}async sse(e,t={}){let{SSEClient:n}=await Promise.resolve().then(()=>($t(),Wn)),s=ot(this.cfg.headers,t.headers),o=jt(this.cfg.baseURL,e,this.cfg.params),i=async(a,l)=>{let c=typeof a=="string"?a:a.url,u=l,h=await this.send(c,u.method??"GET",{headers:u.headers,body:u.body,signal:u.signal,throwOnError:!1,parseResponse:d=>d}),p={...h.headers};return delete p["content-encoding"],delete p["Content-Encoding"],new Response(h.rawBody?.buffer??null,{status:h.status,headers:p})};return new n({url:o,headers:s,fetch:i,...t})}async graphql(e,t={}){let{GraphQLClient:n}=await Promise.resolve().then(()=>(Tr(),Ei)),s=ot(this.cfg.headers,t.headers),o=jt(this.cfg.baseURL,e,this.cfg.params),i=async(a,l)=>{let c=typeof a=="string"?a:a.url,u=l,h=await this.send(c,u.method??"POST",{headers:u.headers,body:u.body,signal:u.signal,throwOnError:!1,parseResponse:d=>d}),p={...h.headers};return delete p["content-encoding"],delete p["Content-Encoding"],new Response(h.rawBody?.buffer??null,{status:h.status,headers:p})};return new n({url:o,headers:s,fetch:i,...t})}async paginate(e,t){let{createPagePaginator:n}=await Promise.resolve().then(()=>(Rr(),$i)),s=jt(this.cfg.baseURL,e,this.cfg.params);return n({url:s,fetch:async(i,a)=>{let l=typeof i=="string"?i:i.url,c=a,u=await this.send(l,c.method??"GET",{headers:c.headers,body:c.body,signal:c.signal,throwOnError:!1,parseResponse:p=>p}),h={...u.headers};return delete h["content-encoding"],delete h["Content-Encoding"],new Response(u.rawBody?.buffer??null,{status:u.status,headers:h})},headers:ot(this.cfg.headers),...t})}destroy(){for(let e of this._wsClients)try{e.close(1e3,"Client destroyed")}catch{}return this._wsClients.clear(),Ie&&this.transport&&"destroy"in this.transport&&this.transport.destroy(),this._cookieJar=null,this._logger=null,this._dedup?.clear(),this._circuitBreakers?.clear?.(),this._otelTracer=null,this.interceptors.clear(),Promise.resolve()}},Cr=class{constructor(e,t,n){f(this,"client");f(this,"method");f(this,"_options",{});f(this,"_url");this.client=e,this.method=t,this._url=n}header(e,t){return this._options.headers={...this._options.headers,[e.toLowerCase()]:t},this}headers(e){return this._options.headers={...this._options.headers,...e},this}param(e,t){return this._options.params={...this._options.params,[e]:t},this}params(e){return this._options.params={...this._options.params,...e},this}withBody(e){return this._options.body=e,this}withJSON(e){return this._options.body=JSON.stringify(e),this._options.headers={...this._options.headers,"content-type":"application/json"},this}withForm(e){return this._options.body=e,this}bearer(e){return this._options.auth={type:"bearer",token:e},this}basic(e,t){return this._options.auth={type:"basic",username:e,password:t},this}apiKey(e,t){return this._options.auth={type:"apikey",header:e,key:t},this}digest(e,t){return this._options.auth={type:"digest",username:e,password:t},this}noAuth(){return this._options.auth=!1,this}retry(e,t){return this._options.retry={maxRetries:e,...t},this}noRetry(){return this._options.retry=!1,this}timeout(e){return this._options.timeout=e,this}proxy(e){return this._options.proxy=e,this}cache(e){return this._options.cache=e,this}noCache(){return this._options.cache={forceRefresh:!0},this}onUploadProgress(e){return this._options.onUploadProgress=e,this}onDownloadProgress(e){return this._options.onDownloadProgress=e,this}signal(e){return this._options.signal=e,this}maxSize(e){return this._options.maxResponseSize=e,this}http2(){return this._options.httpVersion="HTTP/2",this}http1(){return this._options.httpVersion="HTTP/1.1",this}noThrow(){return this._options.throwOnError=!1,this}tags(...e){return this._options.tags=e,this}meta(e){return this._options.meta={...this._options.meta,...e},this}send(){return this.client.send(this._url,this.method,this._options)}async data(){return(await this.client.send(this._url,this.method,this._options)).data}async json(){let e={...this._options};return e.headers={...e.headers,accept:"application/json"},(await this.client.send(this._url,this.method,e)).data}async text(){let e={...this._options};return e.parseResponse=n=>new TextDecoder("utf-8").decode(n),(await this.client.send(this._url,this.method,e)).data}async bytes(){let e={...this._options};return e.parseResponse=n=>n,(await this.client.send(this._url,this.method,e)).data}async blob(){let e=await this.bytes(),t="application/octet-stream";if(typeof Blob>"u")throw new _("Blob is not available in this runtime","EUNKNOWN");return new Blob([e.buffer],{type:t})}subscribe(e,t){this.client.send(this._url,this.method,{...this._options,onSuccess:e,...t!==void 0?{onError:t}:{}}).catch(n=>t?.(n instanceof _?n:new _(String(n),"EUNKNOWN")))}};function su(r,e){return r?{status:r.status,statusText:r.statusText,headers:r.headers,body:r.rawBody??null,request:e}:null}function ss(r){return new gt(r)}function ou(r,e){if(!(!r&&!e))return{...r,...e}}function es(r,e){return new Promise((t,n)=>{if(e?.aborted){n(ss());return}let s=()=>{clearTimeout(o),n(ss())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e?.addEventListener("abort",s,{once:!0})})}function iu(r){return r instanceof ReadableStream?!0:typeof Blob<"u"&&r instanceof Blob}function kr(){return typeof performance<"u"?performance.now():Date.now()}function au(r){try{return`${r.method}:${new URL(r.url).origin}`}catch{return`${r.method}:${r.url}`}}var os=class{constructor(e,t={}){f(this,"_client");f(this,"_maxBatch");f(this,"_flushMs");f(this,"_queue",[]);f(this,"_timer",null);this._client=e;let n=t.maxBatch??100;if(!Number.isInteger(n)||n<1)throw new RangeError(`BatchQueue maxBatch must be a positive integer (got ${n})`);this._maxBatch=n;let s=t.flushMs??0;if(!Number.isFinite(s)||s<0)throw new RangeError(`BatchQueue flushMs must be a non-negative finite number (got ${s})`);this._flushMs=s}enqueue(e,t="GET",n={}){return new Promise((s,o)=>{let i={url:e,method:t,options:n,resolve:s,reject:o};this._queue.push(i);let a=n.signal;if(a){let l=()=>{let c=this._queue.indexOf(i);c!==-1&&(this._queue.splice(c,1),o(new _("Request aborted while queued","EABORT")))};if(i._abortCleanup=()=>a.removeEventListener("abort",l),a.addEventListener("abort",l,{once:!0}),a.aborted){a.removeEventListener("abort",l);let c=this._queue.indexOf(i);c!==-1&&this._queue.splice(c,1),o(new _("Request aborted before flush","EABORT"));return}}this._queue.length>=this._maxBatch?this._flushNow():this._timer||(this._flushMs===0?queueMicrotask(()=>{this._timer=null,this._flushNow()}):this._timer=setTimeout(()=>this._flushNow(),this._flushMs))})}flush(){let e=this._queue.length+1;for(;this._queue.length>0&&e-- >0;)this._flushNow()}get pendingCount(){return this._queue.length}_flushNow(){if(this._timer!==null&&(clearTimeout(this._timer),this._timer=null),this._queue.length===0)return;let e=this._queue.splice(0,this._maxBatch);for(let t of e){let n=o=>{t._abortCleanup?.(),t.resolve(o)},s=o=>{t._abortCleanup?.(),t.reject(o)};try{this._client.send(t.url,t.method,t.options).then(n,s)}catch(o){s(o)}}}};Ke();yr();Ze();Tr();St();var vr=class{constructor(){f(this,"listeners",new Map)}on(e,t){let n=this.listeners.get(e)??[];return n.push({fn:t,once:!1}),this.listeners.set(e,n),this}once(e,t){let n=this.listeners.get(e)??[];return n.push({fn:t,once:!0}),this.listeners.set(e,n),this}off(e,t){let n=this.listeners.get(e);return n?(this.listeners.set(e,n.filter(s=>s.fn!==t)),this):this}async emit(e,t){let n=this.listeners.get(e);if(!n||n.length===0)return;let s=new Set;for(let o=0;o<n.length;o++){let i=n[o];try{await i.fn(t)}catch{}i.once&&s.add(o)}if(s.size>0){let o=n.filter((i,a)=>!s.has(a));this.listeners.set(e,o)}}removeAllListeners(e){return e?this.listeners.delete(e):this.listeners.clear(),this}},cu=0;function lu(){return`hook_${++cu}`}function Q(r){return[...r].sort((e,t)=>e.priority-t.priority)}var is=class{constructor(){f(this,"beforeRequest",[]);f(this,"afterRequest",[]);f(this,"beforeResponse",[]);f(this,"afterResponse",[]);f(this,"onError",[]);f(this,"onRetry",[]);f(this,"onRedirect",[]);f(this,"onUploadProgress",[]);f(this,"onDownloadProgress",[]);f(this,"onCancel",[]);f(this,"onConnection",[]);f(this,"aroundHooks",[]);f(this,"emitter",new vr)}addBeforeRequest(e,t={}){return this._add(this.beforeRequest,e,t)}addAfterRequest(e,t={}){return this._add(this.afterRequest,e,t)}addBeforeResponse(e,t={}){return this._add(this.beforeResponse,e,t)}addAfterResponse(e,t={}){return this._add(this.afterResponse,e,t)}addOnError(e,t={}){return this._add(this.onError,e,t)}addOnRetry(e,t={}){return this._add(this.onRetry,e,t)}addOnRedirect(e,t={}){return this._add(this.onRedirect,e,t)}addOnUploadProgress(e,t={}){return this._add(this.onUploadProgress,e,t)}addOnDownloadProgress(e,t={}){return this._add(this.onDownloadProgress,e,t)}addOnCancel(e,t={}){return this._add(this.onCancel,e,t)}addOnConnection(e,t={}){return this._add(this.onConnection,e,t)}addAround(e,t={}){return this._add(this.aroundHooks,e,t)}remove(e){let t=!1,n=[this.beforeRequest,this.afterRequest,this.beforeResponse,this.afterResponse,this.onError,this.onRetry,this.onRedirect,this.onUploadProgress,this.onDownloadProgress,this.onCancel,this.onConnection,this.aroundHooks];for(let s of n){let o=s.length,i=s.filter(a=>a.id!==e);i.length<o&&(s.length=0,s.push(...i),t=!0)}return t}removeAll(){this.beforeRequest.length=0,this.afterRequest.length=0,this.beforeResponse.length=0,this.afterResponse.length=0,this.onError.length=0,this.onRetry.length=0,this.onRedirect.length=0,this.onUploadProgress.length=0,this.onDownloadProgress.length=0,this.onCancel.length=0,this.onConnection.length=0,this.aroundHooks.length=0}has(e){return[this.beforeRequest,this.afterRequest,this.beforeResponse,this.afterResponse,this.onError,this.onRetry,this.onRedirect,this.onUploadProgress,this.onDownloadProgress,this.onCancel,this.onConnection,this.aroundHooks].some(n=>n.some(s=>s.id===e))}async runBeforeRequest(e,t){let n=e;for(let s of Q(this.beforeRequest)){if(!this._shouldRun(s,t))continue;let o=await this._safeRun(s,()=>s.fn(n,t));o&&typeof o=="object"&&"url"in o&&(n=o),this._maybeEject(s,this.beforeRequest)}return await this.emitter.emit("before:request",n),n}async runAfterRequest(e,t){for(let n of Q(this.afterRequest))this._shouldRun(n,t)&&(await this._safeRun(n,()=>n.fn(e,t)),this._maybeEject(n,this.afterRequest));await this.emitter.emit("after:request",e)}async runBeforeResponse(e,t){let n=e;for(let s of Q(this.beforeResponse)){if(!this._shouldRun(s,t))continue;let o=await this._safeRun(s,()=>s.fn(n,t));o&&typeof o=="object"&&"status"in o&&(n=o),this._maybeEject(s,this.beforeResponse)}return await this.emitter.emit("before:response",n),n}async runAfterResponse(e,t){for(let n of Q(this.afterResponse))this._shouldRun(n,t)&&(await this._safeRun(n,()=>n.fn(e,t)),this._maybeEject(n,this.afterResponse));await this.emitter.emit("after:response",e)}async runOnError(e,t){for(let n of Q(this.onError)){if(!this._shouldRun(n,t))continue;let s=await this._safeRun(n,()=>n.fn(e,t));if(this._maybeEject(n,this.onError),s&&typeof s=="object"&&"status"in s)return s}return await this.emitter.emit("error",e),null}async runOnRetry(e,t){for(let n of Q(this.onRetry))this._shouldRun(n,t)&&(await this._safeRun(n,()=>n.fn(e,t)),this._maybeEject(n,this.onRetry));await this.emitter.emit("retry",e)}async runOnRedirect(e,t){let n=!0;for(let s of Q(this.onRedirect)){if(!this._shouldRun(s,t))continue;let o=await this._safeRun(s,()=>s.fn(e,t));if(this._maybeEject(s,this.onRedirect),o===!1){n=!1;break}}return await this.emitter.emit("redirect",e),n}runOnUploadProgress(e,t){for(let n of Q(this.onUploadProgress))if(this._shouldRun(n,t)){try{n.fn(e,t)}catch{}this._maybeEject(n,this.onUploadProgress)}this.emitter.emit("upload:progress",e)}runOnDownloadProgress(e,t){for(let n of Q(this.onDownloadProgress))if(this._shouldRun(n,t)){try{n.fn(e,t)}catch{}this._maybeEject(n,this.onDownloadProgress)}this.emitter.emit("download:progress",e)}runOnCancel(e,t){for(let n of Q(this.onCancel)){try{n.fn(e,t)}catch{}this._maybeEject(n,this.onCancel)}this.emitter.emit("cancel",e)}runOnConnection(e){for(let t of Q(this.onConnection)){try{t.fn(e)}catch{}this._maybeEject(t,this.onConnection)}this.emitter.emit("connection",e)}wrapWithAround(e,t){let n=Q(this.aroundHooks).reverse(),s=t;for(let o of n){let i=s;s=()=>{if(!this._shouldRun(o,e))return i();let a=o.fn(e,i);return this._maybeEject(o,this.aroundHooks),a}}return s}_add(e,t,n){let s=n.id??lu();return e.push({id:s,priority:n.priority??0,once:n.once??!1,condition:n.condition??null,safe:n.safe??!1,fn:t}),s}_shouldRun(e,t){return e.condition?e.condition(t):!0}async _safeRun(e,t){try{return await t()}catch(n){if(!e.safe)throw n;console.error(`[lifecycle] Hook "${e.id}" threw:`,n);return}}_maybeEject(e,t){if(!e.once)return;let n=t.indexOf(e);n!==-1&&t.splice(n,1)}};var as=class{constructor(e=10){f(this,"maxRedirects");f(this,"count",0);this.maxRedirects=e}record(e,t,n,s){if(this.count++,this.count>this.maxRedirects)throw new Pr(this.count,e);return{from:e,to:t,status:n,count:this.count,request:s}}get redirectCount(){return this.count}reset(){this.count=0}},Pr=class extends Error{constructor(t,n){super(`Too many redirects (${t}) at ${n}`);f(this,"count");f(this,"url");f(this,"code","ETOOMANYREDIRECTS");this.count=t,this.url=n,this.name="TooManyRedirectsError"}};function uu(r){return async e=>(await r(e),e)}function hu(r){return async e=>({...e,headers:{...e.headers,...typeof r=="function"?await r():r}})}function fu(r){return e=>{if(/^https?:\/\//i.test(e.url))return;let t=r.endsWith("/")||e.url.startsWith("/")?"":"/";return{...e,url:`${r}${t}${e.url}`}}}function du(r=e=>e>=400){return e=>{if(e.response&&r(e.response.status))throw new Ir(e.response.status,e.response.statusText,e.response)}}function pu(r){return e=>{let t=r(e);if(t===!0)return;let n=typeof t=="string"?t:`Response validation failed (status ${e.status})`;throw new Lr(n,e)}}var Ir=class extends Error{constructor(t,n,s){super(`HTTP ${t}: ${n}`);f(this,"status");f(this,"statusText");f(this,"response");f(this,"code","EHTTPERROR");this.status=t,this.statusText=n,this.response=s,this.name="HTTPError"}},Lr=class extends Error{constructor(t,n){super(t);f(this,"response");f(this,"code","EVALIDATION");this.response=n,this.name="ResponseValidationError"}};function mu(...r){return async(e,t)=>{let n=e;for(let s of r){let o=await s(n,t);o&&typeof o=="object"&&"url"in o&&(n=o)}return n}}function gu(...r){return async(e,t)=>{let n=e;for(let s of r){let o=await s(n,t);o&&typeof o=="object"&&"status"in o&&(n=o)}return n}}function yu(...r){return(e,t)=>r.reduceRight((s,o)=>()=>o(e,s),t)()}function wu(r={}){let e=r.logger??((s,o)=>console.log(s,JSON.stringify(o))),t=new Set((r.redactHeaders??["authorization","cookie"]).map(s=>s.toLowerCase()));function n(s){let o={};for(let[i,a]of Object.entries(s))o[i]=t.has(i.toLowerCase())?"***":a;return o}return{beforeRequest:s=>{e("\u2192 request",{method:s.method,url:s.url,headers:n(s.headers)})},afterResponse:s=>{e("\u2190 response",{status:s.status,url:s.request.url,headers:n(s.headers)})},onError:s=>{e("\u2717 error",{url:s.request.url,error:s.error instanceof Error?s.error.message:String(s.error),status:s.response?.status??null})}}}function bu(){let r="__kinetex_timing__";return{beforeRequest:(e,t)=>{t.meta[r]=cs()},afterResponse:(e,t)=>{let n=t.meta[r],s=n!==void 0?cs()-n:null;s!==null&&(t.meta.durationMs=s)}}}function xu(r="utf-8"){return e=>{if(e.body instanceof Uint8Array)return{...e,body:new TextDecoder(r).decode(e.body)}}}function _u(){return{beforeRequest:(r,e)=>{if(r.signal?.aborted)throw e.meta.aborted=!0,Su("Request aborted before sending")},onCancel:r=>{console.debug(`[lifecycle] Request cancelled: ${r.request.url}`,r.reason)}}}function Su(r){if(typeof DOMException<"u")return new DOMException(r,"AbortError");let e=new Error(r);return e.name="AbortError",e}function cs(){return typeof performance<"u"?performance.now():Date.now()}function Eu(r,e={}){return{request:r,response:null,error:null,startedAt:cs(),attempt:1,meta:{},...e}}br();Rr();ar();var it={NoAuth:0,GSSAPI:1,UserPassword:2,NoAcceptable:255},re={IPv4:1,Domain:3,IPv6:4},Tu={Connect:1,Bind:2,UdpAssociate:3},G={Succeeded:0,GeneralFailure:1,ConnNotAllowed:2,NetworkUnreachable:3,HostUnreachable:4,ConnRefused:5,TtlExpired:6,CmdNotSupported:7,AddrTypeNotSupported:8},Ru={[G.Succeeded]:"Succeeded",[G.GeneralFailure]:"General SOCKS server failure",[G.ConnNotAllowed]:"Connection not allowed by ruleset",[G.NetworkUnreachable]:"Network unreachable",[G.HostUnreachable]:"Host unreachable",[G.ConnRefused]:"Connection refused",[G.TtlExpired]:"TTL expired",[G.CmdNotSupported]:"Command not supported",[G.AddrTypeNotSupported]:"Address type not supported"},L=class extends Error{constructor(t,n,s=!1){super(t);f(this,"code");f(this,"retriable");this.code=n,this.retriable=s,this.name="Socks5Error"}};function ku(r){let e=Ru[r]??`Unknown reply code 0x${r.toString(16)}`,t=r===G.NetworkUnreachable||r===G.TtlExpired;return new L(`SOCKS5 proxy error: ${e}`,`SOCKS5_REPLY_${r}`,t)}var us=class{constructor(e,t){f(this,"conn");f(this,"timeoutMs");f(this,"buf",new Uint8Array(0));this.conn=e,this.timeoutMs=t}async readExact(e){for(;this.buf.length<e;){let n=new Uint8Array(4096),o=await Wi(this.conn.read(n),this.timeoutMs,"SOCKS5 handshake read timed out");if(o===null||o===0)throw new L("Connection closed during SOCKS5 handshake","SOCKS5_EOF");let i=new Uint8Array(this.buf.length+o);i.set(this.buf),i.set(n.subarray(0,o),this.buf.length),this.buf=i}let t=this.buf.slice(0,e);return this.buf=this.buf.slice(e),t}};function Wi(r,e,t){return new Promise((n,s)=>{let o=setTimeout(()=>s(new L(t,"SOCKS5_TIMEOUT",!0)),e);r.then(i=>{clearTimeout(o),n(i)},i=>{clearTimeout(o),s(i)})})}function Au(r,e){let t=r.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);if(t){let o=t.slice(1).map(Number);if(o.every(i=>i>=0&&i<=255))return new Uint8Array([re.IPv4,...o])}let n=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;if(Cu(n)){let o=vu(n);return new Uint8Array([re.IPv6,...o])}e||console.warn("[socks5] remoteDns=false but got a hostname; sending as DOMAINNAME");let s=new TextEncoder().encode(r);if(s.length>255)throw new L("Hostname too long for SOCKS5 (max 255 bytes)","SOCKS5_ADDR_TOO_LONG");return new Uint8Array([re.Domain,s.length,...s])}function Cu(r){return r.includes(":")}function vu(r){let e=r.split("::"),t=o=>o?o.split(":").map(i=>parseInt(i||"0",16)):[],n;if(e.length===2){let o=t(e[0]),i=t(e[1]),a=new Array(8-o.length-i.length).fill(0);n=[...o,...a,...i]}else n=t(r);if(n.length!==8)throw new L(`Invalid IPv6 address: ${r}`,"SOCKS5_INVALID_ADDR");for(let o of n)if(o<0||o>65535)throw new L(`Invalid IPv6 group: ${o} out of range (0-65535)`,"SOCKS5_INVALID_ADDR");let s=[];for(let o of n)s.push(o>>8&255,o&255);return s}function ls(r,e){if(r===re.IPv4)return Array.from(e).join(".");if(r===re.IPv6){let t=[];for(let n=0;n<16;n+=2)t.push((e[n]<<8|e[n+1]).toString(16));return t.join(":")}return new TextDecoder().decode(e)}async function Pu(r,e,t){let n=new us(r,t.handshakeTimeoutMs),s=!!(t.username&&t.password),o=s?[it.NoAuth,it.UserPassword]:[it.NoAuth],i=new Uint8Array([5,o.length,...o]);await r.write(i);let a=await n.readExact(2);if(a[0]!==5)throw new L(`Unexpected SOCKS version in method response: ${a[0]}`,"SOCKS5_BAD_VERSION");let l=a[1];if(l===it.NoAcceptable)throw new L("SOCKS5 proxy rejected all authentication methods","SOCKS5_NO_ACCEPTABLE_METHOD");if(l===it.UserPassword){if(!s)throw new L("SOCKS5 proxy requires username/password but none provided","SOCKS5_AUTH_REQUIRED");await Iu(r,n,t.username,t.password)}else if(l!==it.NoAuth)throw new L(`SOCKS5 proxy chose unsupported auth method: 0x${l.toString(16)}`,"SOCKS5_UNSUPPORTED_METHOD");let c=Au(e.host,t.remoteDns),u=e.port,h=[u>>8&255,u&255],p=new Uint8Array([5,Tu.Connect,0,...c,...h]);await r.write(p);let d=await n.readExact(4);if(d[0]!==5)throw new L(`Unexpected SOCKS version in reply: ${d[0]}`,"SOCKS5_BAD_VERSION");if(d[1]!==G.Succeeded)throw ku(d[1]);let y=d[3],g,m;if(y===re.IPv4)m=await n.readExact(4),g=ls(re.IPv4,m);else if(y===re.IPv6)m=await n.readExact(16),g=ls(re.IPv6,m);else if(y===re.Domain){let x=await n.readExact(1);m=await n.readExact(x[0]),g=ls(re.Domain,m)}else throw new L(`Unsupported bound address type in reply: 0x${y.toString(16)}`,"SOCKS5_UNSUPPORTED_ADDR_TYPE");let w=await n.readExact(2),S=w[0]<<8|w[1];return{boundAddr:g,boundPort:S}}async function Iu(r,e,t,n){let s=new TextEncoder,o=s.encode(t),i=s.encode(n);if(o.length>255||i.length>255)throw new L("Username or password too long (max 255 bytes)","SOCKS5_AUTH_TOO_LONG");let a=new Uint8Array([1,o.length,...o,i.length,...i]);await r.write(a);let l=await e.readExact(2);if(l[0]!==1&&l[0]!==5)throw new L(`Unexpected auth sub-negotiation version: ${l[0]}`,"SOCKS5_BAD_AUTH_VERSION");if(l[1]!==0)throw new L("SOCKS5 authentication failed (invalid credentials)","SOCKS5_AUTH_FAILED")}async function Lu(r,e,t){let n;for(let s=0;s<=e;s++)try{return await r()}catch(o){if(n=o,!(o instanceof L&&o.retriable)||s===e)break;await Mu(t*Math.pow(2,s))}throw n}function Mu(r){return new Promise(e=>setTimeout(e,r))}function Ou(r){return{host:r.host,port:r.port??1080,username:r.username??"",password:r.password??"",remoteDns:r.remoteDns??!0,connectTimeoutMs:r.connectTimeoutMs??1e4,handshakeTimeoutMs:r.handshakeTimeoutMs??1e4,maxRetries:r.maxRetries??2,retryDelayMs:r.retryDelayMs??300}}async function Ki(r,e,t){let n=Ou(r);return await Lu(async()=>{let s=await Wi(t(n.host,n.port,n.connectTimeoutMs),n.connectTimeoutMs,`TCP connection to SOCKS5 proxy ${n.host}:${n.port} timed out`);try{let{boundAddr:o,boundPort:i}=await Pu(s,e,n);return{conn:s,boundAddr:o,boundPort:i}}catch(o){throw s.close(),o}},n.maxRetries,n.retryDelayMs)}function Du(r){let e;try{Nu(r),e=new URL(r)}catch{throw new L("Invalid SOCKS5 proxy URL: malformed URL","SOCKS5_BAD_URL")}if(e.protocol!=="socks5:"&&e.protocol!=="socks5h:")throw new L(`Expected socks5:// or socks5h:// scheme, got: ${e.protocol}`,"SOCKS5_BAD_SCHEME");let t=e.protocol==="socks5h:",n=e.hostname,s=e.port?parseInt(e.port,10):1080;if(!Number.isFinite(s)||s<1||s>65535)throw new L("Invalid SOCKS5 proxy URL: port must be between 1 and 65535","SOCKS5_BAD_URL");if(!n)throw new L("Invalid SOCKS5 proxy URL: no hostname specified (e.g., socks5://host:port)","SOCKS5_BAD_URL");let o={host:n,port:s,remoteDns:t};return e.username&&(o.username=decodeURIComponent(e.username)),e.password&&(o.password=decodeURIComponent(e.password)),o}function Nu(r){try{let e=new URL(r);return`${e.protocol}//${e.host}${e.pathname}${e.search}${e.hash}`}catch{return"[redacted]"}}var Uu=async(r,e,t)=>{let n=globalThis,s=async(a,l)=>{if(!t||t<=0)return a;let c;try{return await Promise.race([a,new Promise((u,h)=>{c=setTimeout(()=>h(new L(l,"SOCKS5_TIMEOUT",!0)),t)})])}finally{c!==void 0&&clearTimeout(c)}},o=await s(n.Deno.connect({hostname:r,port:e,transport:"tcp"}),"TCP connect to proxy timed out");return{read:a=>{let l=o.read(a).catch(()=>null);return s(l,"TCP read timed out")},write:a=>o.write(a),close:()=>{try{o.close()}catch{}}}},$u=(r,e,t)=>new Promise((n,s)=>{import("node:net").then(({createConnection:o})=>{let i=o({host:r,port:e}),a=setTimeout(()=>{i.destroy(),s(new L("TCP connect to proxy timed out","SOCKS5_TIMEOUT",!0))},t),l=new Uint8Array(0),c=null,u=null,h=null,p=null;function d(){if(!c||!h||l.length===0)return;let m=Math.min(l.length,h.length);h.set(l.subarray(0,m)),l=l.slice(m);let w=c;c=null,u=null,h=null,w(m)}function y(m){if(u){let w=u;c=null,u=null,h=null,w(m)}}i.on("data",m=>{let w=new Uint8Array(l.length+m.length);w.set(l),w.set(m,l.length),l=w,d()});let g=!1;i.on("end",()=>{g=!0,c&&(c(null),c=null,u=null,h=null)}),i.on("close",()=>{g=!0}),i.once("error",m=>{clearTimeout(a),p=m,y(m),s(m)}),i.once("connect",()=>{clearTimeout(a),i.on("error",m=>{p=m,y(m)}),n({read:m=>new Promise((w,S)=>{if(p){S(p);return}if(g&&l.length===0){w(null);return}if(l.length>0){let x=Math.min(l.length,m.length);m.set(l.subarray(0,x)),l=l.slice(x),w(x);return}c=w,u=S,h=m}),write:m=>new Promise((w,S)=>{i.write(m,x=>x?S(x):w(m.length))}),close:()=>i.destroy()})})}).catch(s)});function Hu(r,e){return async(t,n,s)=>(await Ki({connectTimeoutMs:s,...r},{host:t,port:n},e)).conn}$t();Te();Te();Ze();Ke();qn();$t();Tr();Rr();br();ar();St();var hs=class extends Error{constructor(t){super(t);f(this,"code","URL_VALIDATION_ERROR");this.name="URLValidationError"}},ju=/^[A-Za-z0-9\-._~]$/,Bu=/^[:/?#\[\]@!$&'()*+,;=]$/;function fs(r,e=!1){return Array.from(r).map(t=>{if(ju.test(t)||e&&Bu.test(t))return t;let n=t.codePointAt(0);if(n>65535){let s=new TextEncoder().encode(t);return Array.from(s).map(o=>"%"+o.toString(16).toUpperCase().padStart(2,"0")).join("")}if(n>127){let s=new TextEncoder().encode(t);return Array.from(s).map(o=>"%"+o.toString(16).toUpperCase().padStart(2,"0")).join("")}return"%"+n.toString(16).toUpperCase().padStart(2,"0")}).join("")}function De(r){try{return decodeURIComponent(r.replace(/\+/g,"%20"))}catch{return r.replace(/%([0-9A-Fa-f]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16)))}}function Qi(r){return encodeURIComponent(r).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")}function at(r){return encodeURIComponent(r).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")}function zu(r,e={}){let{sort:t=!1,arrayFormat:n="repeat"}=e,s=[];for(let[o,i]of Object.entries(r)){if(i==null)continue;let a=at(o);if(Array.isArray(i)){let l=i.filter(c=>c!=null);if(l.length===0)continue;if(n==="comma")s.push([a,l.map(c=>at(String(c))).join(",")]);else if(n==="bracket")for(let c of l)s.push([`${a}[]`,at(String(c))]);else for(let c of l)s.push([a,at(String(c))])}else s.push([a,at(String(i))])}return t&&s.sort(([o],[i])=>o<i?-1:o>i?1:0),s.map(([o,i])=>`${o}=${i}`).join("&")}function Gi(r){let e=r.startsWith("?")?r.slice(1):r,t={};if(!e)return t;for(let n of e.split("&")){if(!n)continue;let s=n.indexOf("="),o=De(s===-1?n:n.slice(0,s)),i=s===-1?"":De(n.slice(s+1)),a=t[o];a===void 0?t[o]=i:Array.isArray(a)?a.push(i):t[o]=[a,i]}return t}function qu(r,e){let t={...r};for(let[n,s]of Object.entries(e))s==null?delete t[n]:t[n]=s;return t}function Fu(r,...e){let t={};for(let n of e)n in r&&(t[n]=r[n]);return t}function Wu(r,...e){let t=new Set(e),n={};for(let[s,o]of Object.entries(r))t.has(s)||(n[s]=o);return n}function Xi(...r){if(r.length===0)return"/";let e=[];for(let i of r)i&&e.push(...i.split("/").filter((a,l)=>a!==""||l===0));let n=Yi(e).join("/"),o=r[r.length-1]?.endsWith("/")&&n!=="/"?"/":"";return(n.startsWith("/")?"":"/")+n+o}function Yi(r){let e=[];for(let t of r)t!=="."&&(t===".."?e.pop():e.push(t));return e}function Zi(r,e={}){let{trailingSlash:t="preserve"}=e,n=r.endsWith("/")&&r!=="/",s=r.split("/").filter(Boolean),i="/"+Yi(s).join("/");return t==="add"&&i!=="/"?i+="/":t==="remove"||t==="preserve"&&n&&i!=="/"&&(i+="/"),i}function Ku(r){return r.split("/").filter(Boolean).map(De)}function ea(r,e){return r.replace(/:([A-Za-z_][A-Za-z0-9_]*)/g,(t,n)=>{let s=e[n];if(s===void 0)throw new hs(`Missing path param: "${n}"`);return Qi(String(s))})}var Vu={"http:":"80","https:":"443","ftp:":"21","ws:":"80","wss:":"443"};function Ju(r,e={}){let t=Ue(r);if(!t)throw new TypeError(`Invalid URL: ${r}`);let n=Vu[t.protocol],s=t.port===n?"":t.port,o=Zi(t.pathname,{trailingSlash:e.trailingSlash??"preserve"});e.sortParams&&t.searchParams.sort();let i=t.searchParams.toString()?`?${t.searchParams}`:"",a=e.removeFragment?"":t.hash,l=t.username?`${encodeURIComponent(t.username)}${t.password?":"+encodeURIComponent(t.password):""}@`:"",c=s?`${t.hostname}:${s}`:t.hostname;return`${t.protocol}//${l}${c}${o}${i}${a}`}var Ne=class r{constructor(e,t){f(this,"_url");try{this._url=new URL(String(e),t)}catch{throw new TypeError(`Invalid URL: "${e}"${t?` (base: "${t}")`:""}`)}}static from(e,t){return new r(e,t)}static https(e,t){return new r(`https://${e}${t??"/"}`)}static http(e,t){return new r(`http://${e}${t??"/"}`)}withProtocol(e){let t=this._clone();return t._url.protocol=e.endsWith(":")?e:e+":",t}withHostname(e){let t=this._clone();return t._url.hostname=e,t}withHost(e){let t=this._clone();return t._url.host=e,t}withPort(e){let t=this._clone();return t._url.port=String(e),t}withUsername(e){let t=this._clone();return t._url.username=encodeURIComponent(e),t}withPassword(e){let t=this._clone();return t._url.password=encodeURIComponent(e),t}withPathname(e){let t=this._clone();return t._url.pathname=e,t}appendPath(...e){let t=this._clone(),n=t._url.pathname.replace(/\/$/,""),s=e.map(o=>o.replace(/^\/|\/$/g,"")).filter(Boolean);return t._url.pathname=n+"/"+s.join("/"),t}path(...e){let t=this._clone();return t._url.pathname=Xi(...e),t}params(e){let t=this._clone();t._url.pathname=ea(t._url.pathname,e);for(let[n,s]of Object.entries(e))t._url.searchParams.set(n,String(s));return t}addTrailingSlash(){let e=this._clone();return e._url.pathname.endsWith("/")||(e._url.pathname+="/"),e}removeTrailingSlash(){let e=this._clone();return e._url.pathname!=="/"&&e._url.pathname.endsWith("/")&&(e._url.pathname=e._url.pathname.slice(0,-1)),e}setParam(e,t){let n=this._clone();return t==null?n._url.searchParams.delete(e):n._url.searchParams.set(e,String(t)),n}appendParam(e,t){if(t==null)return this;let n=this._clone();return n._url.searchParams.append(e,String(t)),n}deleteParam(e){let t=this._clone();return t._url.searchParams.delete(e),t}query(e){let t=this._clone();for(let[n,s]of Object.entries(e))if(s==null)t._url.searchParams.delete(n);else if(Array.isArray(s)){t._url.searchParams.delete(n);for(let o of s)o!=null&&t._url.searchParams.append(n,String(o))}else t._url.searchParams.set(n,String(s));return t}setQuery(e){let t=this._clone();return t._url.search="",t.query(e)}pickParams(...e){let t=this._clone(),n=new Set(e),s=[];for(let[o,i]of t._url.searchParams.entries())n.has(o)&&s.push([o,i]);t._url.search="";for(let[o,i]of s)t._url.searchParams.append(o,i);return t}omitParams(...e){let t=this._clone(),n=new Set(e);for(let s of n)t._url.searchParams.delete(s);return t}sortParams(){let e=this._clone();return e._url.searchParams.sort(),e}redactParams(...e){let t=this._clone();for(let n of e)t._url.searchParams.has(n)&&(t=t.setParam(n,"REDACTED"));return t}withHash(e){let t=this._clone();return t._url.hash=e.startsWith("#")?e:"#"+e,t}removeHash(){let e=this._clone();return e._url.hash="",e}toString(){return this._url.toString()}toURL(){return new URL(this._url.toString())}get href(){return this._url.href}get protocol(){return this._url.protocol}get hostname(){return this._url.hostname}get host(){return this._url.host}get port(){return this._url.port}get pathname(){return this._url.pathname}get search(){return this._url.search}get hash(){return this._url.hash}get origin(){return this._url.origin}get searchParams(){return new URLSearchParams(this._url.searchParams)}get queryObject(){return Gi(this._url.search)}_clone(){return new r(this._url.toString())}};function Qu(r,e){return r.replace(/\{([^}]+)\}/g,(t,n)=>{let s=n[0],o="+#./;?&".includes(s),i=(o?n.slice(1):n).split(",");return Gu(o?s:"",i,e)})}function Gu(r,e,t){let n=Zu(r),s=eh(r),o=th(r),i=rh(r),a=r==="+"||r==="#",l=[];for(let c of e){let{name:u,explode:h,maxLength:p}=Xu(c.trim()),d=t[u];if(d==null)continue;let y=Yu(d,u,o,h,p,a,n,i);y!==null&&l.push(y)}return l.length===0?"":s+l.join(n)}function Xu(r){if(r.endsWith("*"))return{name:r.slice(0,-1),explode:!0,maxLength:null};let e=r.lastIndexOf(":");if(e!==-1){let t=parseInt(r.slice(e+1),10);return{name:r.slice(0,e),explode:!1,maxLength:isNaN(t)?null:t}}return{name:r,explode:!1,maxLength:null}}function Yu(r,e,t,n,s,o,i,a){let l=c=>o?fs(c,!0):fs(c);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean"){let c=String(r);s!==null&&(c=c.slice(0,s));let u=l(c);return t?`${e}${u===""?a:"="+u}`:u}if(Array.isArray(r)){if(r.length===0)return null;if(n)return r.map(u=>{let h=l(String(u));return t?`${e}=${h}`:h}).join(i);let c=r.map(u=>l(String(u))).join(",");return t?`${e}=${c}`:c}if(typeof r=="object"&&r!==null){let c=Object.entries(r);if(c.length===0)return null;if(n)return c.map(([h,p])=>`${l(h)}=${l(p)}`).join(i);let u=c.flatMap(([h,p])=>[l(h),l(p)]).join(",");return t?`${e}=${u}`:u}return null}function Zu(r){switch(r){case".":return".";case"/":return"/";case";":return";";case"?":case"&":return"&";default:return","}}function eh(r){switch(r){case"#":return"#";case".":return".";case"/":return"/";case";":return";";case"?":return"?";case"&":return"&";default:return""}}function th(r){return r===";"||r==="?"||r==="&"}function rh(r){return r===";"?"":"="}function nh(r){let e=[],t={n:0},n=r.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\\\*/g,"*").replace(/\*\*/g,()=>"(.+?)").replace(/\*(?!\*)/g,()=>(t.n++,"([^/]+)")).replace(/:([A-Za-z_][A-Za-z0-9_]*)(?:\(([^)]+)\))?/g,(o,i,a)=>(e.push(i),`(${a??"[^/]+"})`)),s=new RegExp(`^${n}\\/?$`);return{match(o){let i=Vi(o),a=s.exec(i);if(!a)return null;let l={},c=[],u={},h=1;for(let p of e)l[p]=De(a[h++]??"");for(;h<=a.length-1;){let p=a[h++]??"";c.push(...p.split("/").filter(Boolean).map(De))}return{params:l,wildcards:c,groups:u}},test(o){return s.test(Vi(o))}}}function Vi(r){try{return new URL(r).pathname}catch{return r}}function ds(r){let e=Ue(r);return e?["file:","data:","blob:"].includes(e.protocol)?"null":e.origin:null}function sh(r,e){let t=ds(r),n=ds(e);return!t||!n?!1:t===n}function oh(r,e){let t=Ue(r),n=Ue(e);return!t||!n||t.protocol!==n.protocol?!1:Ji(t.hostname)===Ji(n.hostname)}function Ji(r){let e=new Set(["co.uk","co.jp","co.kr","co.nz","co.za","co.in","com.au","com.br","com.mx","com.cn","com.tw","com.hk","com.sg","com.my","com.ph","com.vn","com.tr","net.au","net.uk","net.br","org.uk","org.au","org.nz","org.cn","org.in","ac.uk","gov.uk","gov.au","gov.cn","or.kr","pe.kr","go.jp","ne.jp","ac.jp","github.io","herokuapp.com","cloudfront.net"]),t=r.split(".");if(t.length>=3){let n=t.slice(-2).join(".");if(e.has(n))return t.slice(-3).join(".")}return t.slice(-2).join(".")}function ih(r,e){try{return new URL(r,e).toString()}catch{throw new TypeError(`Cannot resolve "${r}" against base "${e}"`)}}function ah(r,e){try{let t=new URL(r),n=new URL(e);return t.origin!==n.origin||!t.pathname.startsWith(n.pathname)?null:t.pathname.slice(n.pathname.length)+t.search+t.hash}catch{return null}}function ta(r){try{if(/^[A-Za-z][A-Za-z0-9+\-.]*:\/\//.test(r))return!0;let e=new URL(r);return e.protocol!==""&&e.protocol!=="file:"}catch{return!1}}function ch(r){return!ta(r)}function lh(r){try{return new URL(r).protocol==="https:"}catch{return!1}}function uh(r){try{let e=new URL(r).protocol;return e==="http:"||e==="https:"}catch{return!1}}function hh(r){return r.trimStart().startsWith("data:")}function fh(r){return r.trimStart().startsWith("blob:")}function dh(r){try{let e=new URL(r).hostname;return e==="localhost"||e==="127.0.0.1"||e==="::1"||e.endsWith(".localhost")}catch{return!1}}function ph(r){let e=r.match(/^data:([^;,]+)?(;base64)?,(.*)$/s);return e?{mediaType:e[1]??"text/plain",isBase64:!!e[2],data:e[3]??""}:null}function mh(r,e,t=!0){if(typeof r=="string")return t?`data:${e};base64,${btoa(r)}`:`data:${e},${encodeURIComponent(r)}`;let n=new TextDecoder("iso-8859-1").decode(r);return`data:${e};base64,${btoa(n)}`}function gh(r,e){let t=Ue(r),n=Ue(e);if(!t||!n)throw new TypeError(`Cannot diff invalid URLs: "${r}" vs "${e}"`);let s={addedParams:{},removedParams:{},changedParams:{}};t.protocol!==n.protocol&&(s.protocol=[t.protocol,n.protocol]),t.hostname!==n.hostname&&(s.hostname=[t.hostname,n.hostname]),t.port!==n.port&&(s.port=[t.port,n.port]),t.pathname!==n.pathname&&(s.pathname=[t.pathname,n.pathname]),t.hash!==n.hash&&(s.hash=[t.hash,n.hash]);for(let[o,i]of t.searchParams.entries()){let a=n.searchParams.get(o);a===null?s.removedParams[o]=i:a!==i&&(s.changedParams[o]=[i,a])}for(let[o,i]of n.searchParams.entries())t.searchParams.has(o)||(s.addedParams[o]=i);return t.search!==n.search&&!Object.keys(s.changedParams).length&&!Object.keys(s.addedParams).length&&!Object.keys(s.removedParams).length&&(s.search=[t.search,n.search]),s}function Ue(r){try{return new URL(r)}catch{return null}}function yh(r){return Ne.from(r).addTrailingSlash().toString()}function wh(r){return Ne.from(r).removeTrailingSlash().toString()}function bh(r){return Ne.from(r).removeHash().toString()}function xh(r){try{let e=new URL(r);return e.search="",e.toString()}catch{return r}}function _h(r){try{let t=new URL(r).pathname.split("/").pop()??"",n=t.lastIndexOf(".");return n===-1?"":t.slice(n+1).toLowerCase()}catch{return""}}function Sh(r){try{let e=new URL(r).pathname;return De(e.split("/").filter(Boolean).pop()??"")}catch{return""}}function Eh(r,...e){return Ne.from(r).redactParams(...e).toString()}B();function Th(r={}){return new Bt(r)}var Bf=Th;export{gt as AbortError,qr as AuthError,os as BatchQueue,Mt as BatchingTransport,lt as CircuitBreaker,Be as CircuitBreakerRegistry,ct as CircuitOpenError,yt as CloudflareKVAdapter,rt as ConsoleTransport,ve as ContentTypeError,Le as CookieJar,je as DedupMap,Xe as FetchTransport,Cr as FluentRequest,ae as GraphQLClient,N as GraphQLClientError,$o as HAS_NATIVE_FETCH,ce as HTTPCache,Ir as HTTPError,Me as HTTPLogger,Qe as HTTPResponseError,mt as HTTPStatusError,b as HeaderName,vr as HookEmitter,is as HookRegistry,he as HttpHeaders,Ie as IS_NODE,Xt as InterceptorManager,Lt as JSONTransport,Bt as Kinetex,_ as KinetexError,It as LogLevel,Re as MemoryStorageAdapter,Mr as MultiPartProgressAggregator,Dt as MultiTransport,oe as NetworkError,Tt as NodeHTTP2Transport,V as ProgressTracker,Fr as ProxyError,ye as RUNTIME,bt as RateLimitError,Nt as Redactor,Wr as RedirectError,as as RedirectTracker,Ot as RemoteTransport,Ge as ResponseDecodeError,Ce as ResponseSizeLimitError,Lr as ResponseValidationError,Ae as RichHeaders,nt as SSEClient,de as SSEError,st as SSEMaxReconnectsError,Oe as SSEParser,_r as SSERouter,Ut as SSEServerResponse,xr as SSETransformStream,ue as SigV4Signer,pt as SizeLimitError,L as Socks5Error,Z as TimeoutError,Pr as TooManyRedirectsError,wt as TwoTierStorageAdapter,Ne as URLBuilder,Y as ValidationError,qe as WSClient,dt as WSConnectTimeoutError,J as WSError,Jt as WSMaxReconnectsError,zr as WSRateLimitError,We as WebStorageAdapter,or as applyDecompression,ko as assertOk,Ao as assertOkJSON,mi as authLink,mh as buildDataURL,Ws as cachingCredentials,fe as canonicalizeDomainFull,hc as chainCredentials,_i as clearAPQCache,Ti as collectAll,Ri as collectPages,ha as collectStream,nh as compilePattern,yu as composeAround,mu as composeBeforeRequest,gu as composeBeforeResponse,Fs as computeBodySize,ln as computeDigestResponse,$r as concatUint8Arrays,Ka as connectWS,Kc as corsHeaders,Ec as createAPIGatewaySigner,_u as createAbortHook,Us as createAuthInterceptor,xu as createBodyNormalizationHook,js as createCacheInterceptor,ga as createCircuitBreaker,ya as createCircuitBreakerRegistry,Bn as createCookieJar,vi as createCursorPaginator,ma as createDedupMap,Bs as createDedupeInterceptor,ti as createDevelopmentLogger,Pc as createDigestAuthorization,Rc as createDynamoDBSigner,bi as createGraphQLClient,zs as createHARInterceptor,Vc as createHeaders,Eu as createHookContext,Gc as createImmutableHeaders,cc as createInterceptorSuite,oi as createJSONSSEStream,vs as createKVCache,Mi as createKeysetPaginator,Mo as createLimitedReader,Ii as createLinkHeaderPaginator,As as createLocalStorageCache,Zo as createLogger,wu as createLoggingHooks,Hs as createLoggingInterceptor,ks as createMemoryCache,au as createMethodCircuitBreakerKey,qs as createMetricsInterceptor,Ai as createOffsetPaginator,Ci as createPagePaginator,ei as createProductionLogger,Yt as createRateLimitInterceptor,Pi as createRelayPaginator,Jc as createRequestHeaders,Qc as createResponseHeaders,Ns as createRetryInterceptor,Sc as createS3Signer,ii as createSSEResponse,si as createSSEStream,Tc as createSTSSigner,Cs as createSessionStorageCache,Ki as createSocks5Tunnel,Ua as createStructuredError,$s as createTimeoutInterceptor,bu as createTimingHook,Li as createTokenPaginator,ur as createTransport,Ps as createTwoTierCache,sr as decodeBody,gr as decodeIDNLabel,fr as decompressBodyStream,An as decompressStream,ht as deepClone,Bf as default,At as defaultPath,Uu as denoTcpConnector,_t as deriveSigningKey,Di as deserializePaginationState,Xs as detectClockSkew,Qn as detectOperationType,On as detectRuntime,Co as diffResponses,gh as diffURLs,kt as domainMatch,Qi as encodePathComponent,at as encodeQueryValue,uc as envCredentials,gi as errorLink,Qu as expandTemplate,xe as extractOperationName,Po as extractServerTiming,Pt as extractSetCookieHeaders,ea as fillPathParams,Zt as formatAmzDate,Nc as formatBasic,Dc as formatBearer,qt as formatBytes,En as formatCSP,uo as formatCacheControl,co as formatContentDisposition,io as formatContentType,xt as formatDateStamp,un as formatDigestAuth,xs as formatETA,$a as formatError,Sn as formatHSTS,Hc as formatLinkHeader,da as formatProgress,bs as formatRate,Bc as formatServerTiming,zc as fromNodeHeaders,Fc as fromWebHeaders,Si as getAPQMetrics,ge as getAuthFingerprint,yo as getClientIP,Uo as getEffectiveRuntime,ds as getOrigin,mr as getPublicSuffix,Hn as getRegistrableDomain,Br as getRuntime,xi as gql,Wa as hasNativeFetch,pc as imdsCredentials,Qs as initChunkedSigning,hu as injectHeaders,jr as isAbortError,Aa as isAbortSignal,ta as isAbsolute,Ta as isArrayBuffer,To as isBinary,Pa as isBlob,fh as isBlobURL,Fa as isBrowserEnvironment,Ys as isClockSkewError,hh as isDataURL,va as isFormData,uh as isHTTP,lh as isHTTPS,ka as isHeaders,we as isIPAddress,nr as isJSON,dh as isLocalhost,qa as isNodeEnvironment,Ca as isPlainObject,tt as isPublicSuffix,Ra as isReadableStream,ch as isRelative,Se as isSafeURL,sh as isSameOrigin,oh as isSameSite,Rn as isText,Ia as isURLSearchParams,Ea as isUint8Array,ze as isValidHeaderName,_e as isValidHeaderValue,Xi as joinPath,Fn as jsonSSE,Th as kinetex,zn as loadCookieJar,yi as loggingLink,Ui as mergePaginators,qu as mergeQuery,Hr as mergeSignals,$c as negotiateContentType,$u as nodeTcpConnector,_n as normalizeForwardedHeaders,ft as normalizeHeaders,Zi as normalizePath,Eo as normalizeResponse,Ju as normalizeURL,Wu as omitQuery,F as paginate,Gn as paginateItems,xn as parseAccept,ho as parseAcceptEncoding,fo as parseAcceptLanguage,So as parseAltSvc,pn as parseAuthorization,Rt as parseBody,xo as parseCSP,lo as parseCacheControl,ao as parseContentDisposition,Uc as parseContentLanguage,mo as parseContentRange,Pe as parseContentType,pr as parseCookieDate,ph as parseDataURL,cn as parseDigestChallenge,go as parseForwarded,bo as parseHSTS,gn as parseLinkHeader,Xn as parseLinkHeaderNext,Ln as parseMultipartResponse,te as parseParams,Gi as parseQuery,po as parseRange,wo as parseRetryAfter,ai as parseSSEText,_o as parseServerTiming,vt as parseSetCookieHeader,Du as parseSocks5Url,Sa as parseUntrustedJSON,mn as parseWWWAuthenticate,jc as parseWarning,Ct as pathMatch,Ku as pathSegments,De as percentDecode,fs as percentEncode,ja as perfNow,Fu as pickQuery,Js as presignRequest,Pn as readBlob,kn as readBodyWithLimit,ir as readBytes,vo as readFormData,Cn as readJSON,Ro as readJSONStream,In as readNDJSON,hr as readRawBody,Et as readStream,vn as readText,Eh as redactURL,ah as relativeURL,ih as resolveURL,wi as retryLink,me as safeJSONParse,Ue as safeParseURL,M as sanitizeParsedJSON,Ha as sanitizeURL,Wc as securityHeaders,Ye as sendWithTimeout,Oi as serializePaginationState,No as setRuntime,Ks as sigV4UriEncode,xc as signChunk,_c as signFinalChunk,an as signRequest,Gs as signS3PostPolicy,Ba as sleep,Hu as socks5Connector,et as splitSetCookieHeaders,lc as staticCredentials,ua as streamWithProgress,zu as stringifyQuery,bh as stripHash,xh as stripQuery,ki as takeItems,uu as tap,pa as throttleProgress,du as throwOnHTTPError,qc as toNodeHeaders,Yo as toOTelSpan,Ni as toPaginationIterator,Ss as toRequestId,za as toUint8Array,_a as tryParseJSON,Vt as uint8ArrayToBase64,_h as urlExtension,Sh as urlFilename,Ja as validateErrorCode,pu as validateResponse,fu as withBaseURL,ca as withBlobUploadProgress,la as withDownloadProgress,yh as withTrailingSlash,Ft as withUploadProgress,wh as withoutTrailingSlash,fa as xhrFetch};
|
|
102
|
+
`}async function Zo(r,e){let t=await Tr(e.credentials),n=Sr(e),s=It(n),o=`${s}/${e.region}/${e.service}/aws4_request`,i=`${t.accessKeyId}/${o}`,a=JSON.stringify(r),c=btoa(a),u=await Ot(t.secretAccessKey,s,e.region,e.service),l=await _e(u,c),h=Lt(l),d={policy:c,signature:h,credential:i,date:s};return t.sessionToken&&(d.securityToken=t.sessionToken),d}function ei(r){let e=r["x-amz-date"]??r["X-Amz-Date"],t;if(e!==void 0){if(t=Wu(e),isNaN(t))return 0}else{let n=r.date??r.Date;if(!n||(t=new Date(n).getTime(),isNaN(t)))return 0}return Math.round((t-Date.now())/1e3)}function Wu(r){let e=/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/.exec(r.trim());if(!e)return NaN;let[,t,n,s,o,i,a]=e,c=Date.UTC(Number(t),Number(n)-1,Number(s),Number(o),Number(i),Number(a)),u=new Date(c);return u.getUTCFullYear()!==Number(t)||u.getUTCMonth()+1!==Number(n)?NaN:u.getUTCDate()!==Number(s)?NaN:c}function ti(r,e){return r!==403&&r!==400?!1:e.includes("RequestTimeTooSkewed")||e.includes("RequestExpired")||e.includes("InvalidSignatureException")||e.includes("AuthFailure")||e.includes("SignatureDoesNotMatch")}var Se=class{constructor(e){f(this,"config");f(this,"clockSkewSecs",0);this.config=e}async sign(e){return await zn(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}async presign(e,t){return await Xo(e,{...this.config,clockSkewSecs:this.clockSkewSecs},t)}async signPostPolicy(e){return await Zo(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}async initChunked(e){return await Yo(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}updateClockSkew(e){let t=ei(e);t!==0&&(this.clockSkewSecs=t)}handleClockSkewError(e,t,n){return ti(e,t)?(this.updateClockSkew(n),!0):!1}};async function Tr(r){return await(typeof r=="function"?r():Promise.resolve(r))}function Hn(r){let e=globalThis.Deno;if(typeof e<"u")try{return e.env.get(r)}catch{}try{return globalThis.process?.env?.[r]}catch{}}async function jn(r,e,t){let n=new AbortController,s=setTimeout(()=>n.abort(),t);try{let o=e.signal&&typeof AbortSignal<"u"&&"any"in AbortSignal?AbortSignal.any([e.signal,n.signal]):n.signal,i=await fetch(r,{...e,signal:o});return clearTimeout(s),i}catch(o){throw n.signal.aborted?new te(t):o}finally{clearTimeout(s)}}function Ku(r){return new Se({credentials:r.credentials,region:r.region,service:"s3",doubleEncodeUri:!1,unsignedPayload:r.unsignedPayload??!1})}function Vu(r){return new Se({credentials:r.credentials,region:r.region,service:"execute-api"})}function Ju(r){return new Se({credentials:r.credentials,region:r.region,service:"sts"})}function Qu(r){return new Se({credentials:r.credentials,region:r.region,service:"dynamodb"})}U();U();function ri(r){let e=[];for(let l=0;l<r.length;l++){let h=r.charCodeAt(l);if(h<128)e.push(h);else if(h<2048)e.push(192|h>>6,128|h&63);else if(h<55296||h>=57344)e.push(224|h>>12,128|h>>6&63,128|h&63);else{l++;let d=r.charCodeAt(l),p=65536+((h&1023)<<10|d&1023);e.push(240|p>>18,128|p>>12&63,128|p>>6&63,128|p&63)}}let t=e.length*8;for(e.push(128);e.length*8%512!==448;)e.push(0);for(let l=0;l<4;l++)e.push(t>>>l*8&255);for(let l=4;l<8;l++)e.push(0);let n=[3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745],s=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],o=1732584193,i=4023233417,a=2562383102,c=271733878;for(let l=0;l<e.length;l+=64){let h=[];for(let w=0;w<16;w++){let y=e[l+w*4],_=e[l+w*4+1],b=e[l+w*4+2],E=e[l+w*4+3];h[w]=(y|_<<8|b<<16|E<<24)>>>0}let d=o,p=i,m=a,g=c;for(let w=0;w<64;w++){let y,_;w<16?(y=p&m|~p&g,_=w):w<32?(y=g&p|~g&m,_=(5*w+1)%16):w<48?(y=p^m^g,_=(3*w+5)%16):(y=m^(p|~g),_=7*w%16),y=y+d+n[w]+h[_]>>>0,d=g,g=m,m=p,p=p+(y<<s[w]|y>>>32-s[w])>>>0}o=o+d>>>0,i=i+p>>>0,a=a+m>>>0,c=c+g>>>0}function u(l){let h="";for(let d=0;d<4;d++)h+=(l>>>d*8&255).toString(16).padStart(2,"0");return h}return u(o)+u(i)+u(a)+u(c)}function ni(r){let e=new Uint8Array(r.length/2);for(let t=0;t<e.length;t++)e[t]=parseInt(r.slice(t*2,t*2+2),16);return e}function Gu(r){return r.replace(/\\(.)/g,"$1")}function qn(r){let e={algorithm:"MD5"},t=r.replace(/^Digest\s+/i,"").trim(),n='"((?:[^"\\\\]|\\\\.)*)"',s=new RegExp(`(\\w+)\\s*=\\s*(?:${n}|([^,\\s]+))`,"g"),o;for(;(o=s.exec(t))!==null;){let i=o[1].toLowerCase(),a=o[2]!==void 0?Gu(o[2]):o[3];switch(i){case"realm":e.realm=a;break;case"nonce":e.nonce=a;break;case"opaque":e.opaque=a;break;case"algorithm":e.algorithm=a.toUpperCase();break;case"qop":e.qop=a;break;case"domain":e.domain=a;break;case"charset":e.charset=a;break;case"userhash":e.userhash=a==="true";break;case"stale":e.stale=a==="true";break}}if(!e.realm)throw new Error("Digest challenge missing 'realm'");if(!e.nonce)throw new Error("Digest challenge missing 'nonce'");return e}function si(r){let e=[0x428a2f98d728ae22n,0x7137449123ef65cdn,0xb5c0fbcfec4d3b2fn,0xe9b5dba58189dbbcn,0x3956c25bf348b538n,0x59f111f1b605d019n,0x923f82a4af194f9bn,0xab1c5ed5da6d8118n,0xd807aa98a3030242n,0x12835b0145706fben,0x243185be4ee4b28cn,0x550c7dc3d5ffb4e2n,0x72be5d74f27b896fn,0x80deb1fe3b1696b1n,0x9bdc06a725c71235n,0xc19bf174cf692694n,0xe49b69c19ef14ad2n,0xefbe4786384f25e3n,0x0fc19dc68b8cd5b5n,0x240ca1cc77ac9c65n,0x2de92c6f592b0275n,0x4a7484aa6ea6e483n,0x5cb0a9dcbd41fbd4n,0x76f988da831153b5n,0x983e5152ee66dfabn,0xa831c66d2db43210n,0xb00327c898fb213fn,0xbf597fc7beef0ee4n,0xc6e00bf33da88fc2n,0xd5a79147930aa725n,0x06ca6351e003826fn,0x142929670a0e6e70n,0x27b70a8546d22ffcn,0x2e1b21385c26c926n,0x4d2c6dfc5ac42aedn,0x53380d139d95b3dfn,0x650a73548baf63den,0x766a0abb3c77b2a8n,0x81c2c92e47edaee6n,0x92722c851482353bn,0xa2bfe8a14cf10364n,0xa81a664bbc423001n,0xc24b8b70d0f89791n,0xc76c51a30654be30n,0xd192e819d6ef5218n,0xd69906245565a910n,0xf40e35855771202an,0x106aa07032bbd1b8n,0x19a4c116b8d2d0c8n,0x1e376c085141ab53n,0x2748774cdf8eeb99n,0x34b0bcb5e19b48a8n,0x391c0cb3c5c95a63n,0x4ed8aa4ae3418acbn,0x5b9cca4f7763e373n,0x682e6ff3d6b2b8a3n,0x748f82ee5defb2fcn,0x78a5636f43172f60n,0x84c87814a1f0ab72n,0x8cc702081a6439ecn,0x90befffa23631e28n,0xa4506cebde82bde9n,0xbef9a3f7b2c67915n,0xc67178f2e372532bn,0xca273eceea26619cn,0xd186b8c721c0c207n,0xeada7dd6cde0eb1en,0xf57d4f7fee6ed178n,0x06f067aa72176fban,0x0a637dc5a2c898a6n,0x113f9804bef90daen,0x1b710b35131c471bn,0x28db77f523047d84n,0x32caab7b40c72493n,0x3c9ebe0a15c9bebcn,0x431d67c49c100d4cn,0x4cc5d4becb3e42b6n,0x597f299cfc657e2an,0x5fcb6fab3ad6faecn,0x6c44198c4a475817n],t=[0x22312194fc2bf72cn,0x9f555fa3c84c64c2n,0x2393b86b6f53b151n,0x963877195940eabdn,0x96283ee2a88effe3n,0xbe5e1e2553863992n,0x2b0199fc2c85b8aan,0x0eb72ddc81c52ca2n],n=[];for(let c=0;c<r.length;c++){let u=r.charCodeAt(c);if(u<128)n.push(u);else if(u<2048)n.push(192|u>>6,128|u&63);else if(u<55296||u>=57344)n.push(224|u>>12,128|u>>6&63,128|u&63);else{c++;let l=r.charCodeAt(c),h=65536+((u&1023)<<10|l&1023);n.push(240|h>>18,128|h>>12&63,128|h>>6&63,128|h&63)}}let s=BigInt(n.length*8);for(n.push(128);n.length*8%1024!==896;)n.push(0);for(let c=15;c>=0;c--)n.push(Number(s>>BigInt(c*8)&0xffn));function o(c,u){return c>>u|c<<64n-u&0xffffffffffffffffn}let i=t.slice();for(let c=0;c<n.length;c+=128){let u=new Array(80);for(let _=0;_<16;_++){let b=0n;for(let E=0;E<8;E++)b=b<<8n|BigInt(n[c+_*8+E]);u[_]=b}for(let _=16;_<80;_++){let b=o(u[_-15],1n)^o(u[_-15],8n)^u[_-15]>>7n,E=o(u[_-2],19n)^o(u[_-2],61n)^u[_-2]>>6n;u[_]=u[_-16]+b+u[_-7]+E&0xffffffffffffffffn}let l=i[0],h=i[1],d=i[2],p=i[3],m=i[4],g=i[5],w=i[6],y=i[7];for(let _=0;_<80;_++){let b=o(m,14n)^o(m,18n)^o(m,41n),E=m&g^~m&w,A=y+b+E+e[_]+u[_]&0xffffffffffffffffn,C=o(l,28n)^o(l,34n)^o(l,39n),T=l&h^l&d^h&d,P=C+T&0xffffffffffffffffn;y=w,w=g,g=m,m=p+A&0xffffffffffffffffn,p=d,d=h,h=l,l=A+P&0xffffffffffffffffn}i=[i[0]+l&0xffffffffffffffffn,i[1]+h&0xffffffffffffffffn,i[2]+d&0xffffffffffffffffn,i[3]+p&0xffffffffffffffffn,i[4]+m&0xffffffffffffffffn,i[5]+g&0xffffffffffffffffn,i[6]+w&0xffffffffffffffffn,i[7]+y&0xffffffffffffffffn]}let a="";for(let c=0;c<4;c++)a+=i[c].toString(16).padStart(16,"0");return a}async function Fn(r,e,t,n,s,o,i){let a=r.qop||"",c=r.nonce,u=r.realm,l=o||ge(5),h=i||"00000001",d=oi(r.algorithm);if(d===null)throw new Error(`Unsupported digest algorithm: ${r.algorithm}`);let{algo:p,sess:m}=d;async function g(A){return p==="MD5"?ri(A):p==="SHA-512-256"?si(A):await ce(A)}let w=r.userhash?ue(ni(await g(`${e}:${u}`))):e,y=await g(`${w}:${u}:${t}`);if(m){if(!r.qop)throw new Error(`Digest algorithm ${r.algorithm} requires a qop parameter`);y=await g(`${y}:${c}:${l}`)}let _=await g(`${n}:${s}`),b,E=a.split(/\s*,\s*/).filter(Boolean);if(E.length>0){if(!E.includes("auth"))throw new Error(`Digest challenge offers only unsupported qop values: ${E.join(", ")}. "auth-int" requires the entity body, which this API does not receive.`);b=await g(`${y}:${c}:${h}:${l}:auth:${_}`)}else b=await g(`${y}:${c}:${_}`);return b}async function Wn(r,e){if(!r.userhash)return null;let t=oi(r.algorithm);if(t===null)throw new Error(`Unsupported digest algorithm: ${r.algorithm}`);let{algo:n}=t,s=n==="MD5"?ri(`${e}:${r.realm}`):n==="SHA-512-256"?si(`${e}:${r.realm}`):await ce(`${e}:${r.realm}`);return ue(ni(s))}function oi(r){let e=r.trim(),t=/-sess$/i.test(e),n=e.replace(/-sess$/i,"").toUpperCase().replace(/-/g,"");return n==="MD5"?{algo:"MD5",sess:t}:n==="SHA256"?{algo:"SHA-256",sess:t}:n==="SHA512256"?{algo:"SHA-512-256",sess:t}:null}function Ce(r){return r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function Kn(r,e,t,n,s,o,i){let a=[],c=s||ge(5),u=o||"00000001";if(r.userhash){if(i===void 0)throw new Error("challenge offers userhash=true: pass the value from computeUsernameStar() as `usernameStar` \u2014 sending a plaintext username would defeat it");a.push(`username*="${Ce(i)}"`)}else{if(i!==void 0)throw new Error("usernameStar was given but the challenge does not offer userhash");a.push(`username="${Ce(e)}"`)}return a.push(`realm="${Ce(r.realm)}"`),a.push(`nonce="${Ce(r.nonce)}"`),a.push(`uri="${Ce(n)}"`),a.push(`response="${Ce(t)}"`),r.opaque&&a.push(`opaque="${Ce(r.opaque)}"`),r.algorithm&&r.algorithm!=="MD5"&&a.push(`algorithm=${r.algorithm}`),r.qop&&(a.push("qop=auth"),a.push(`nc=${u}`),a.push(`cnonce="${Ce(c)}"`)),`Digest ${a.join(", ")}`}async function Xu(r,e,t,n,s){let o=qn(r),i=ge(5),a="00000001",c=await Fn(o,e,t,n,s,i,a),u=await Wn(o,e);return Kn(o,e,c,s,i,a,u??void 0)}function ii(){let r=new Map,e=64,t=(n,s)=>{if(!r.has(n)){if(r.set(n,s),r.size>e){let o=r.keys().next();o.done||r.delete(o.value)}return}r.delete(n),r.set(n,s)};return async(n,s,o,i,a)=>{let c=qn(n),u=ge(5),l=`${c.realm}\0${c.nonce}`,h=(r.get(l)??0)+1;t(l,h);let d=h.toString(16).padStart(8,"0"),p=await Fn(c,s,o,i,a,u,d),m=await Wn(c,s);return Kn(c,s,p,a,u,d,m??void 0)}}Ae();lt();lt();var yh=20,wh={maxRetries:3,baseDelayMs:300,maxDelayMs:3e4,jitter:.3,statuses:[408,429,500,502,503,504],onNetworkError:!0,onTimeout:!1,methods:["GET","HEAD","PUT","DELETE","OPTIONS","TRACE"]},Ps=class{constructor(){f(this,"_req",new Map);f(this,"_res",new Map);f(this,"_err",new Map);f(this,"_seq",0)}get request(){return Array.from(this._req.values())}get response(){return Array.from(this._res.values())}get error(){return Array.from(this._err.values())}addRequest(e){let t=++this._seq;return this._req.set(t,e),()=>{this._req.delete(t)}}addResponse(e){let t=++this._seq;return this._res.set(t,e),()=>{this._res.delete(t)}}addError(e){let t=++this._seq;return this._err.set(t,e),()=>{this._err.delete(t)}}clear(){this._req.clear(),this._res.clear(),this._err.clear()}};function bh(r){if(r){let n=r.spanContext(),s=n.traceFlags.toString(16).padStart(2,"0");return{traceparent:`00-${n.traceId}-${n.spanId}-${s}`,traceId:n.traceId,spanId:n.spanId}}let e=Ls(32),t=Ls(16);return{traceparent:`00-${e}-${t}-01`,traceId:e,spanId:t}}function Ls(r){return ge(r/2)}var xh=100*1024*1024,Ua=new Set(["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"]),Pa="__awsSkewCorrected",La="__interceptorResendDepth",Ia=5,Ns=new Set(["api_key","apikey","access_token","refresh_token","id_token","token","auth","authorization","key","secret","password","passwd","signature","sig","x-amz-signature","x-amz-credential","x-amz-security-token","x-goog-signature","sas","session","sessionid","jwt","code"]);function Ha(r,e){let t=[],n=i=>{typeof i=="string"&&i.length>=8&&t.push(i)};for(let[i,a]of Object.entries(e.headers??{}))if(ur(i,Ua)&&typeof a=="string"){n(a);let c=a.indexOf(" ");c!==-1&&n(a.slice(c+1))}let s;try{s=new URL(e.url).searchParams}catch{s=new URLSearchParams}for(let[i,a]of s.entries())Ns.has(i.toLowerCase())&&typeof a=="string"&&a.length>=8&&t.push(a);let o=r;for(let i of t)o=o.split(i).join(Ds);return o}function _h(r,e){if(!/json/i.test(e))return r;let t;try{t=JSON.parse(r)}catch{return r}let n=s=>{if(Array.isArray(s))return s.map(n);if(s!==null&&typeof s=="object"){let o={};for(let[i,a]of Object.entries(s))o[i]=Ns.has(i.toLowerCase())?Ds:n(a);return o}return s};try{return JSON.stringify(n(t))}catch{return r}}var ja=8192;function Ba(r){if(!r)return!1;let e=r.toLowerCase();return e.includes("json")||e.includes("xml")||e.includes("text/plain")||e.includes("application/javascript")}function As(r){try{let e=new URL(r),t=!1;for(let n of[...e.searchParams.keys()])Ns.has(n.toLowerCase())&&(e.searchParams.set(n,"***REDACTED***"),t=!0);return e.hash&&(e.hash.includes("token")||e.hash.includes("sig")||e.hash.length>1)&&(e.hash="#***REDACTED***",t=!0),t?e.toString():r}catch{return r.replace(/([?&])(api_key|apikey|access_token|refresh_token|token|secret|password|signature|sig)=([^&#]*)/gi,"$1$2=***REDACTED***")}}var Ds="***REDACTED***";function Oa(r,e){return{name:r,value:ur(r,Ua)?Ds:e}}function Sh(r){if(!r.body)return{};let e=r.headers["content-type"]??"";if(e&&!Ba(e))return{};let t;if(typeof r.body=="string")t=r.body;else if(r.body instanceof Uint8Array)t=new TextDecoder().decode(r.body);else if(r.body instanceof ArrayBuffer)t=new TextDecoder().decode(new Uint8Array(r.body));else return{};let n=Ha(_h(t,e),r);return{postData:{mimeType:e,text:n.slice(0,ja)}}}var Is=class{constructor(e=1e4){f(this,"_buf",new Map);f(this,"_head",0);f(this,"_tail",0);f(this,"maxEntries");this.maxEntries=e}get entries(){return Array.from(this._buf.values())}record(e,t,n){let s=t.durationMs,o=0,i=s,a=0;try{if(typeof performance<"u"&&typeof performance.getEntriesByType=="function"){let u=typeof performance.getEntriesByName=="function"?performance.getEntriesByName(t.url):performance.getEntriesByType("resource").filter(h=>h.name===t.url),l=u[u.length-1];l&&l.requestStart>0&&Date.now()-l.startTime<6e4&&(o=Math.max(0,l.responseStart-l.requestStart),a=Math.max(0,l.responseEnd-l.responseStart),i=Math.max(0,s-o-a))}}catch{}let c={startedDateTime:new Date(n).toISOString(),time:s,request:{method:e.method,url:As(e.url),httpVersion:t.httpVersion,headers:Object.entries(e.headers).map(([u,l])=>Oa(u,l)),queryString:(()=>{try{return Array.from(new URL(As(e.url)).searchParams.entries()).map(([u,l])=>({name:u,value:l}))}catch{return[]}})(),bodySize:e.body?typeof e.body=="string"?new TextEncoder().encode(e.body).byteLength:e.body instanceof Uint8Array||e.body instanceof ArrayBuffer?e.body.byteLength:-1:0,...Sh(e)},response:{status:t.status,statusText:t.statusText,httpVersion:t.httpVersion,headers:Object.entries(t.headers).map(([u,l])=>Oa(u,l)),content:{size:t.rawBody?.byteLength??0,mimeType:t.headers["content-type"]??"application/octet-stream",...typeof t.data=="string"&&Ba(t.headers["content-type"])?{text:Ha(t.data,e).slice(0,ja)}:{}},redirectURL:t.headers.location?As(t.headers.location):"",bodySize:t.rawBody?.byteLength??0},timings:{send:o,wait:i,receive:a},cache:{}};this._buf.set(this._tail++,c),this._buf.size>this.maxEntries&&this._buf.delete(this._head++)}getHAR(){return{version:"1.2",creator:{name:"kinetex",version:"1.0.0",comment:`runtime:${ve}`},entries:[...this.entries]}}clear(){this._buf.clear(),this._head=0,this._tail=0}get count(){return this._buf.size}};async function Ma(r,e){let t={...r.headers};switch(e.type){case"bearer":{let s=`Bearer ${typeof e.token=="function"?await e.token():e.token}`;if(!me(s))throw new x("Invalid bearer token \u2014 contains forbidden characters (CRLF/CTL)","EVALIDATION");t.authorization=s;break}case"basic":{let n=new TextEncoder,s=n.encode(e.username),o=n.encode(e.password),i=s.length+1+o.length,a=new Uint8Array(i);a.set(s),a.set(n.encode(":"),s.length),a.set(o,s.length+1);let c=ue(a);t.authorization=`Basic ${c}`,s.fill(0),o.fill(0),a.fill(0);break}case"apikey":{let n=typeof e.key=="function"?await e.key():e.key;if(!ke(e.header))throw new x(`Invalid apikey auth header name: "${e.header}"`,"EVALIDATION");if(!me(String(n)))throw new x(`Invalid apikey value for "${e.header}" \u2014 contains forbidden characters`,"EVALIDATION");t[e.header.toLowerCase()]=String(n);break}case"digest":break;case"custom":{let n=e.apply(r);if(!n)throw new Error("Custom auth 'apply' must return a KinetexRequest");return n}default:{let n=e;throw new Error(`Unknown auth type: ${n.type}`)}}return{...r,headers:t}}var Th=new Set([...pr,"www-authenticate"]);function nr(r){try{let e=new URL(r);return e.username||e.password?(e.username="",e.password="",e.toString()):r}catch{return r.replace(/\/\/[^/@]*@/,"//")}}function rr(r,e,t,n=["http","https"],s=!1){let i=(u,l)=>{let h=0,d=()=>{if(h++,h>100)throw new x(`Query parameter count ${h} exceeds limit of 100`,"EVALIDATION")};for(let[p,m]of Object.entries(u))if(m!=null)if(Array.isArray(m))for(let g of m)g!=null&&(d(),l(p,String(g),!0));else d(),l(p,String(m),!1)},c;if(/^https?:\/\//i.test(e))c=e;else{let u=r??"";try{let l=u.replace(/\/$/,""),h=e.startsWith("/")?e.slice(1):e;c=new URL(h,l+"/").href}catch{let l=u.endsWith("/")?u:u+"/",h=e.startsWith("/")?e.slice(1):e;c=l+h}}if(!t||Object.keys(t).length===0){if(!ae(c,n,{allowPrivateNetwork:s}))throw new x(`URL "${nr(c)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return c}try{let u=new URL(c);if(!ae(u,n,{allowPrivateNetwork:s}))throw new x(`URL "${nr(c)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");i(t,(h,d,p)=>{p?u.searchParams.append(h,d):u.searchParams.set(h,d)});let l=u.toString();if(l.length>8192)throw new x(`URL length ${l.length} bytes exceeds limit of 8192 bytes`,"EVALIDATION");if(!ae(l,n,{allowPrivateNetwork:s}))throw new x(`URL "${nr(l)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return l}catch(u){if(u instanceof x)throw u;c.includes("?")?c+="&":c+="?";let l=[];i(t??{},(d,p)=>{l.push(`${encodeURIComponent(d)}=${encodeURIComponent(p)}`)});let h=c+l.join("&");if(h.length>8192)throw new x(`URL length ${h.length} bytes exceeds limit of 8192 bytes`,"EVALIDATION");if(!ae(h,n,{allowPrivateNetwork:s}))throw new x(`URL "${nr(h)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return h}}function mt(...r){let e=Object.create(null);for(let t of r){if(!t)continue;let n=Object.keys(t);for(let s of n){if(s==="__proto__"||s==="constructor"||s==="prototype")continue;if(!ke(s))throw new x(`Invalid header name: "${s}" \u2014 contains forbidden characters`,"EVALIDATION");let o=t[s];if(o==null)continue;let i=Array.isArray(o)?o.map(String).join(", "):String(o);if(!me(i))throw new x(`Invalid header value for ${s}: contains forbidden characters`,"EVALIDATION");e[s.toLowerCase()]=i}}return e}function Eh(r){if(r==null)return null;if(typeof r=="string"||r instanceof Uint8Array)return r;try{return JSON.stringify(r)}catch{return null}}function Na(r,e){if(e.attempt>r.maxRetries||!Object.keys(e.request.headers??{}).some(n=>n.toLowerCase()==="idempotency-key"&&e.request.headers[n]!=="")&&!r.methods.includes(e.request.method))return!1;if(r.shouldRetry)return r.shouldRetry(e);if(e.error){let n=e.error,s=n.code;switch(s){case"EHTTPSTATUS":return r.statuses.includes(n.status??0);case"ETIMEOUT":return r.onTimeout===!0;case"ENETWORK":return r.onNetworkError;case"EABORT":return!1;case"ESIZELIMIT":return!1;case"EPARSE":return!1;case"EVALIDATION":return!1;case"EAUTH":return!1;case"EPROXY":return!1;case"EREDIRECT":return!1;case"EBLOCKEDHOST":return!1;case"EUNKNOWN":return!1;default:return!1}}return e.response?r.statuses.includes(e.response.status):!1}function Cs(r,e,t){if(t!==null)return Math.min(t,r.maxDelayMs);let n=Math.min(e,31),s=r.baseDelayMs*Math.pow(2,n-1);if(!isFinite(s)||s>r.maxDelayMs)return r.maxDelayMs;let o=Math.min(s,r.maxDelayMs),i=o+o*r.jitter*Math.random();return Math.min(Math.floor(i),r.maxDelayMs)}function Da(r){let e=r["retry-after"];if(!e)return null;let t=wr(e);return t.delay!==null?Math.min(t.delay,86400)*1e3:t.date?Math.max(0,Math.min(t.date.getTime()-Date.now(),864e5)):null}var sr=class r{constructor(e={}){f(this,"cfg");f(this,"transport");f(this,"interceptors");f(this,"harRecorder");f(this,"retryConfig");f(this,"_cache",null);f(this,"_cookieJar",null);f(this,"_logger",null);f(this,"_cacheInitLock",null);f(this,"_cookieJarInitLock",null);f(this,"_loggerInitLock",null);f(this,"_otelTracer",null);f(this,"_dedup",null);f(this,"_circuitBreakers",null);f(this,"_circuitBreakerKeyFn",null);f(this,"_wsClients",new Set);f(this,"_concurrencyLimiter");f(this,"_awsSigner",null);if(this.cfg=e,this.interceptors=new Ps,this.harRecorder=e.har===!0?new Is:null,this.retryConfig={...wh,...e.retry},e.circuitBreakerKeyFn&&(this._circuitBreakerKeyFn=e.circuitBreakerKeyFn),e.rateLimit){let t=xr(e.rateLimit);this.interceptors.addRequest(t)}if(this._concurrencyLimiter=e.concurrencyLimit?new Pt(e.concurrencyLimit):null,e.awsSigning){let t=new Se(e.awsSigning);this._awsSigner=t,this.interceptors.addRequest(async n=>{let s=n.request,o=null;(s.body instanceof Uint8Array||typeof s.body=="string")&&(o=s.body);let i=await t.sign({method:s.method,url:s.url,headers:{...s.headers},body:o});n.request={...s,headers:i.headers}})}if(this.transport=Or(e.fetch,e.httpVersion!=="HTTP/1.1",e.sessionPool,{...e.strictHeaders?{strict:!0}:{},...e.dispatcher!==void 0?{dispatcher:e.dispatcher}:{},...e.proxy!==void 0?{proxy:e.proxy}:{},...e.allowPrivateNetwork!==void 0?{allowPrivateNetwork:e.allowPrivateNetwork}:{},...e.ca!==void 0?{ca:e.ca}:{}}),e.interceptors&&(e.interceptors.request?.forEach(t=>this.interceptors.addRequest(t)),e.interceptors.response?.forEach(t=>this.interceptors.addResponse(t)),e.interceptors.error?.forEach(t=>this.interceptors.addError(t))),e.auth?.type==="digest"){let t=e.auth,n=ii();this.interceptors.addResponse(async s=>{if(!s.response||s.response.status!==401)return;let o=s.response.headers["www-authenticate"];if(!o||!o.toLowerCase().startsWith("digest")||s.request.meta.__digestRetried)return;let i=s.request.method,a=new URL(s.request.url),c=a.pathname+a.search,u=await n(o,t.username,t.password,i,c);return{...s.request,headers:{...s.request.headers,authorization:u},meta:{...s.request.meta,__digestRetried:!0}}})}}useRequest(e){return this.interceptors.addRequest(e)}attachHookRegistry(e){let t=this.useRequest(async o=>{let i={url:o.request.url,method:o.request.method,headers:o.request.headers,body:o.request.body,signal:o.request.signal,meta:o.request.meta},a={request:i,response:null,error:null,startedAt:o.startedAt,attempt:o.attempt,meta:o.request.meta},c=await e.runBeforeRequest(i,a);c!==i&&(o.request={...o.request,...c})}),n=this.useResponse(async o=>{if(!o.response)return;let i={status:o.response.status,statusText:o.response.statusText,headers:o.response.headers,body:o.response.body??null,request:{url:o.request.url,method:o.request.method,headers:o.request.headers,body:o.request.body,signal:o.request.signal,meta:o.request.meta}},a={request:i.request,response:i,error:null,startedAt:o.startedAt,attempt:o.attempt,meta:o.request.meta};await e.runAfterResponse(i,a)}),s=this.useError(async o=>{if(!o.error)return;let i={url:o.request.url,method:o.request.method,headers:o.request.headers,body:o.request.body,signal:o.request.signal,meta:o.request.meta},a=Rh(o.error.response,i),c={error:o.error,request:i,response:a,attempt:o.attempt},u={request:c.request,response:a,error:o.error,startedAt:o.startedAt,attempt:o.attempt,meta:o.request.meta};await e.runOnError(c,u)});return()=>{t(),n(),s()}}useResponse(e){return this.interceptors.addResponse(e)}useError(e){return this.interceptors.addError(e)}getHAR(){if(!this.harRecorder)throw new x("HAR recording not enabled. Pass `har: true` in config.","EUNKNOWN");return this.harRecorder.getHAR()}clearHAR(){this.harRecorder?.clear()}async getCache(){if(this._cache)return this._cache;if(!this.cfg.cache)return null;if(this._cacheInitLock)return await this._cacheInitLock,this._cache;let e=()=>{};this._cacheInitLock=new Promise(t=>{e=t});try{let{HTTPCache:t}=await Promise.resolve().then(()=>(st(),po));return this._cache=new t(this.cfg.cache),this._cache}finally{e(),this._cacheInitLock=null}}async getCookieJar(){if(this._cookieJar)return this._cookieJar;if(!this.cfg.cookieJar)return null;if(this._cookieJarInitLock)return await this._cookieJarInitLock,this._cookieJar;if(this.cfg.cookieJar instanceof Object&&"setCookie"in this.cfg.cookieJar)return this._cookieJar=this.cfg.cookieJar,this._cookieJar;let e=()=>{};this._cookieJarInitLock=new Promise(t=>{e=t});try{let{CookieJar:t}=await Promise.resolve().then(()=>(ds(),Wi));return this._cookieJar=new t,this._cookieJar}finally{e(),this._cookieJarInitLock=null}}async getLogger(){if(this._logger)return this._logger;if(!this.cfg.logger)return null;if(this._loggerInitLock)return await this._loggerInitLock,this._logger;let e=()=>{};this._loggerInitLock=new Promise(t=>{e=t});try{let{createLogger:t}=await Promise.resolve().then(()=>(Br(),Gi));return this._logger=t(this.cfg.logger),this._logger}finally{e(),this._loggerInitLock=null}}extend(e){let t=this.cfg.interceptors?.request??[],n=this.cfg.interceptors?.response??[],s=this.cfg.interceptors?.error??[],o=e.interceptors?.request??[],i=e.interceptors?.response??[],a=e.interceptors?.error??[],c=new r({...this.cfg,...e,headers:mt(this.cfg.headers,e.headers),params:{...this.cfg.params,...e.params},interceptors:{request:[...t,...o],response:[...n,...i],error:[...s,...a]}}),u=new Set([...t,...o]),l=new Set([...n,...i]),h=new Set([...s,...a]);for(let d of this.interceptors.request)u.has(d)||c.useRequest(d);for(let d of this.interceptors.response)l.has(d)||c.useResponse(d);for(let d of this.interceptors.error)h.has(d)||c.useError(d);return this._circuitBreakers&&!c._circuitBreakers&&(c._circuitBreakers=this._circuitBreakers),this._dedup&&!c._dedup&&(c._dedup=this._dedup),this._otelTracer&&!c._otelTracer&&(c._otelTracer=this._otelTracer),c}setTracer(e){return this._otelTracer=e,this}enableDedup(e){return this._dedup=new Ye(e),this}disableDedup(){return this._dedup=null,this}get dedupMetrics(){return this._dedup?this._dedup.getStats():null}enableCircuitBreaker(e){return this._circuitBreakers=new Ze(e),this}disableCircuitBreaker(){return this._circuitBreakers=null,this}tripCircuit(e){return this._circuitBreakers?.trip(e),this}resetCircuit(e){return this._circuitBreakers?.reset(e),this}get circuitSnapshots(){return this._circuitBreakers?.snapshots()??{}}async ws(e,t={}){let n=rr(this.cfg.baseURL,e,this.cfg.params,["http","https","ws","wss"],this.cfg.allowPrivateNetwork),s=mt(this.cfg.headers,t.headers),o={},i=this.cfg.auth;if(i){if(i.type==="bearer"){let p=typeof i.token=="function"?await i.token():i.token;o.authorization=`Bearer ${p}`}else if(i.type==="basic"){let p=new TextEncoder,m=p.encode(i.username),g=p.encode(i.password),w=new Uint8Array(m.length+1+g.length);w.set(m),w[m.length]=58,w.set(g,m.length+1);let y=ue(w);w.fill(0),m.fill(0),g.fill(0),o.authorization=`Basic ${y}`}else if(i.type==="apikey"){let p=typeof i.key=="function"?await i.key():i.key;o[i.header.toLowerCase()]=typeof p=="string"?p:await p}}let a=await this.getCookieJar();if(a){let p=a.getCookieHeader({url:n,http:!1,sameSiteContext:"strict"});p&&(s.cookie=p)}try{let p=new URL(n);if(this.cfg.baseURL){let m=new URL(this.cfg.baseURL),g=p.protocol==="wss:"||p.protocol==="https:",w=m.protocol==="https:"||m.protocol==="wss:";if(g!==w||p.host!==m.host)throw new x(`WebSocket origin ${p.origin} does not match baseURL origin ${m.origin}`,"EVALIDATION")}}catch(p){throw p instanceof x?p:new x(`Invalid WebSocket URL: ${p}`,"EVALIDATION")}if(this._circuitBreakers){let p=this._circuitBreakerKeyFn?this._circuitBreakerKeyFn({url:n,method:"GET",headers:s,body:null,signal:null,meta:{}}):new URL(n).origin;if(this._circuitBreakers.get(p).state==="OPEN")throw new x(`Circuit breaker is open for WebSocket origin ${new URL(n).origin}`,"ENETWORK")}let c=this.cfg.ws,u={...c?.highWaterMark!==void 0?{highWaterMark:c.highWaterMark}:{},...c?.lowWaterMark!==void 0?{lowWaterMark:c.lowWaterMark}:{},...c?.maxSendRate!==void 0?{maxSendRate:c.maxSendRate}:{},...c?.keepRooms!==void 0?{keepRooms:c.keepRooms}:{},...t},l=u.onClose,h=(p,m,g)=>{g||this._wsClients.delete(d),l?.(p,m,g)},d=new et({url:n,headers:{...o,...s},...u,onClose:h});return this._wsClients.add(d),await d.connect().catch(p=>{throw this._wsClients.delete(d),d.destroy(),p}),d}async send(e,t,n={}){let s=N(),o=Date.now(),i=n.timeout!==void 0?n.timeout:this.cfg.timeout??3e4,a=n.retry===!1?!1:{...this.retryConfig,...n.retry??{},...n.retry?.totalTimeoutMs!==void 0?{}:{totalTimeoutMs:n.totalTimeoutMs??this.cfg.totalTimeoutMs??i}},c=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","TRACE","CONNECT"],u=t.toUpperCase();if(!c.includes(u))throw new x(`Invalid HTTP method '${t}'. Valid methods: ${c.join(", ")}`,"EVALIDATION");let l=rr(n.baseURL??this.cfg.baseURL,e,kh(this.cfg.params,n.params),void 0,this.cfg.allowPrivateNetwork===!0);if(n.proxy)throw new x("A per-request `proxy` is not supported because the transport pools one connection per origin \u2014 set `proxy` on the client instead, or use a custom `fetch` with a proxy agent for per-request routing. SOCKS5 requires createSocks5Tunnel() from kinetex/socks5.","EVALIDATION");if(this.cfg.httpsOnly)try{let T=new URL(l);if(T.protocol!=="https:")throw new x(`HTTPS-only mode enabled but URL uses ${T.protocol}. Use HTTPS URLs only.`,"EVALIDATION")}catch(T){throw T instanceof x?T:new x(`Invalid URL: ${T}`,"EVALIDATION")}let d,p=n.maxRequestSize??this.cfg.maxRequestSize??0;if(p>0&&n.body){let T=0;if(typeof n.body=="string")T=new TextEncoder().encode(n.body).byteLength;else if(n.body instanceof Uint8Array)T=n.body.byteLength;else if(n.body instanceof ArrayBuffer)T=n.body.byteLength;else if(n.body instanceof Blob)T=n.body.size;else if(ArrayBuffer.isView(n.body))T=n.body.byteLength;else if(n.body instanceof URLSearchParams)T=new TextEncoder().encode(n.body.toString()).byteLength;else if(n.body instanceof FormData)d=await jt(n.body),T=d.bytes.byteLength;else{if(n.body instanceof ReadableStream)throw new x("maxRequestSize cannot be enforced for ReadableStream bodies \u2014 pass maxRequestSize: 0 to opt out, or buffer the body first","EVALIDATION");if(n.body&&typeof n.body=="object")try{T=new TextEncoder().encode(JSON.stringify(n.body)).byteLength}catch(P){throw new x(`Cannot measure request body size: ${P instanceof Error?P.message:String(P)}`,"EVALIDATION")}}if(T>p)throw new x(`Request body size ${T} bytes exceeds limit of ${p} bytes`,"EVALIDATION")}let m={url:l,method:u,headers:mt(this.cfg.headers,n.headers),body:n.body??null,signal:n.signal??null,...n.followRedirects!==void 0||this.cfg.followRedirects!==void 0?{followRedirects:n.followRedirects??this.cfg.followRedirects}:{},...n.maxRedirects!==void 0||this.cfg.maxRedirects!==void 0?{maxRedirects:n.maxRedirects??this.cfg.maxRedirects}:{},meta:{...n.meta},httpVersion:n.httpVersion??this.cfg.httpVersion??"HTTP/2"};if(m.body!==null&&m.body instanceof FormData&&!m.headers["content-type"]){let T=d??await jt(m.body);m={...m,headers:{...m.headers,"content-type":`multipart/form-data; boundary=${T.boundary}`},body:T.bytes}}m.body!==null&&typeof m.body=="object"&&!(m.body instanceof Uint8Array)&&!(m.body instanceof ArrayBuffer)&&!(m.body instanceof ReadableStream)&&!(m.body instanceof FormData)&&!(m.body instanceof URLSearchParams)&&!(m.body instanceof Blob)&&!m.headers["content-type"]&&(m={...m,headers:{...m.headers,"content-type":"application/json"},body:JSON.stringify(m.body)}),m.body!==null&&typeof URLSearchParams<"u"&&m.body instanceof URLSearchParams&&!m.headers["content-type"]&&(m={...m,headers:{...m.headers,"content-type":"application/x-www-form-urlencoded"}});let g=n.auth!==!1?n.auth??this.cfg.auth:void 0;g&&(m=await Ma(m,g)),this.cfg.transformRequest&&(m=await this.cfg.transformRequest(m));let w=await this.getCookieJar();if(w){let T=w.getCookieHeader({url:m.url,http:!0,sameSiteContext:"strict"});T&&(m={...m,headers:{...m.headers,cookie:T}})}let y=null,_="";try{if(this._otelTracer){y=this._otelTracer.startSpan(`HTTP ${m.method}`,{kind:3});let{traceparent:T,traceId:P,spanId:j}=bh(y);y.setAttribute("http.request.method",m.method),y.setAttribute("url.full",m.url);try{y.setAttribute("server.address",new URL(m.url).hostname)}catch{}m={...m,headers:{...m.headers,traceparent:T},meta:{...m.meta,traceId:P,spanId:j}}}else if(m.meta.traceId&&!m.headers.traceparent){let T=String(m.meta.traceId),P=Ls(16);m={...m,headers:{...m.headers,traceparent:`00-${T}-${P}-01`},meta:{...m.meta,spanId:P}}}if(this._dedup){let T=await to(m.headers);_=ro(m.method,m.url,T)}}catch(T){throw y&&(y.setStatus({code:2,message:T instanceof Error?T.message:String(T)}),T instanceof Error&&y.recordException(T),y.end()),T}let b;if(this._circuitBreakerKeyFn)try{b=this._circuitBreakerKeyFn(m)}catch{b=m.url}else try{b=new URL(m.url).origin}catch{b=m.url}let E=()=>this._executeWithRetry(m,a,i,n,s,o),A=this._dedup?()=>this._dedup.execute(m.method,_,E).then(T=>T):E,C=this._circuitBreakers?()=>this._circuitBreakers.execute(b,A).then(T=>T):A;try{let T=await C();return y&&(y.setAttribute("http.response.status_code",T.status),y.setStatus({code:T.status<400?1:2}),y.end()),T}catch(T){throw y&&(y.setStatus({code:2,message:T instanceof Error?T.message:String(T)}),T instanceof Error&&y.recordException(T),y.end()),T}}async _executeWithRetry(e,t,n,s,o,i){let a=async()=>{if(!this._concurrencyLimiter)return await this._executeWithRetryInner(e,t,n,s,o,i);await this._concurrencyLimiter.acquire(e.signal);try{return await this._executeWithRetryInner(e,t,n,s,o,i)}finally{this._concurrencyLimiter.release()}},c=Date.now(),u,l;try{let h=await a();return u=h.status,h}catch(h){throw l=h.code,h}finally{this._recordMetrics(e,u,l,Date.now()-c)}}_recordMetrics(e,t,n,s){let o=this._otelTracer;if(!o)return;let i={"http.request.method":e.method,"server.address":new URL(e.url).hostname};t!==void 0&&(i["http.response.status_code"]=t),n!==void 0&&(i["error.type"]=n);try{o.recordHistogram?.("http.client.request.duration",s/1e3,i),o.incrementCounter?.("http.client.request.count",1,i),n!==void 0&&o.incrementCounter?.("http.client.error.count",1,i)}catch{}}async _executeWithRetryInner(e,t,n,s,o,i){let a=0;for(;;){if(a++,e.signal?.aborted)throw Os(e);if(a>1&&$a(e.body))throw new x("Cannot retry a request whose body is a stream or Blob \u2014 the body was consumed by the first attempt. Buffer it first, or disable retry for this request.","EVALIDATION",{request:e});try{let c=await this._executeOnce(e,n,s,o,a,i,t);if(t&&a<=t.maxRetries){let u={request:e,response:c,error:null,attempt:a,maxRetries:t.maxRetries};if(t.shouldRetry?await t.shouldRetry(u):Na(t,u)){let h=Cs(t,a,Da(c.headers));if(t.totalTimeoutMs!==void 0&&t.totalTimeoutMs>0&&N()-o+h>=t.totalTimeoutMs)return c;await t.onRetry?.(u,h),await this.cfg.hooks?.onRetry?.reduce(async(d,p)=>{await d,await p(u)},Promise.resolve()),await vs(h,e.signal);continue}}return c}catch(c){globalThis.__KINETEX_DEBUG_RETRY&&console.log("DBG catch",{attempt:a,maxRetries:t===!1?"FALSE":t?.maxRetries,methods:t===!1?"FALSE":t?.methods,code:c?.code,method:e.method});let u=!1,l=c.response;if(this._awsSigner&&l&&c.code==="EHTTPSTATUS"){let d=l.data,p=typeof d=="string"?d:d instanceof Uint8Array?new TextDecoder().decode(d):d instanceof ArrayBuffer?new TextDecoder().decode(new Uint8Array(d)):JSON.stringify(d??"");this._awsSigner.handleClockSkewError(l.status,p,l.headers)&&(u=!e.meta[Pa],u&&(e.meta[Pa]=!0))}if(t&&(a<=t.maxRetries||u)){let d=l??null,p={request:e,response:d,error:c,attempt:a,maxRetries:t.maxRetries};if(u?!0:t.shouldRetry?await t.shouldRetry(p):Na(t,p)){let g=Cs(t,a,d?Da(d.headers):null);if(t.totalTimeoutMs!==void 0&&t.totalTimeoutMs>0&&N()-o+g>=t.totalTimeoutMs)throw c;await t.onRetry?.(p,g),await this.cfg.hooks?.onRetry?.reduce(async(w,y)=>{await w,await y(p)},Promise.resolve()),await vs(g,e.signal);continue}}let h=await this._runErrorInterceptors(e,c,a,o);if(h)return h;if(s.onError){let d=c instanceof x?c:new x(String(c),"EUNKNOWN",{request:e,cause:c});throw s.onError(d),d}throw c}}}async _sendFollowingRedirects(e,t,n,s){let o=Math.max(0,e.maxRedirects??yh),i=e.followRedirects!==!1&&o>0,a={...e,redirect:"manual"},c=(()=>{try{return new URL(e.url).origin}catch{return null}})(),u=new Set;for(let l=0;l<=o;l++){if(l>0&&s&&(()=>{try{return new URL(a.url).origin===c}catch{return!1}})()&&(a=await Ma(a,s)),l>0&&this.cfg.hooks?.onBeforeRequest)for(let p of this.cfg.hooks.onBeforeRequest){let m=await p(a,{request:a,response:null,error:null,startedAt:N(),attempt:1,meta:a.meta});m&&(a={...m,redirect:"manual"})}let h=await Ut(this.transport,a,t);if(l>0){let p=await this.getLogger();if(p){let m=a.meta.requestId??"redirect";p.logResponse(m,h.status,h.statusText,h.headers,new Uint8Array(0),1,!1)}}if(h.status>=300&&h.status<400&&!!h.headers.location){if(u.has(h.url))throw new Ne(`Redirect loop detected: ${h.url}`,e);if(u.add(h.url),n?.processResponseHeaders(h.headers,{url:h.url}),!i)return{...h,redirected:!1};if(l===o)throw new Ne(`Too many redirects (exceeded ${o})`,e);if(h.body)try{await h.body.cancel()}catch{}let p=h.headers.location,m;try{let b=new URL(p,h.url);m=b.href;let E=b.protocol.toLowerCase();if(E!=="http:"&&E!=="https:")throw new x(`Unsafe redirect to ${E} detected \u2014 only HTTP(S) allowed`,"ENETWORK",{request:e});if(!ae(m,void 0,{allowPrivateNetwork:this.cfg.allowPrivateNetwork===!0}))throw new x(`Unsafe redirect target blocked: ${nr(p)}`,"EVALIDATION",{request:e});if(this.cfg.httpsOnly&&E!=="https:")throw new x(`HTTPS-only mode enabled but redirect target uses ${E}`,"EVALIDATION",{request:e})}catch(b){throw b instanceof x?b:new x(`Invalid redirect location: ${p}`,"ENETWORK",{request:e,cause:b})}let g=h.status===301||h.status===302||h.status===303?"GET":a.method,w=g==="GET"||g==="HEAD"?null:a.body;if(w!==null&&$a(w))throw new x("Cannot follow this redirect: a 307/308 preserves the method and body, and this request's body is a stream or Blob that the first attempt already consumed. Buffer it first, or disable redirects for this request.","EVALIDATION",{request:a});let y={...a.headers},_=!1;try{_=new URL(m).origin!==new URL(a.url).origin}catch{}if(_){for(let b of Th)delete y[b];s&&s.type==="apikey"&&delete y[s.header.toLowerCase()]}if(n){let b=n.getCookieHeader({url:m,http:!0,sameSiteContext:"strict"});b?y.cookie=b:delete y.cookie}else _&&delete y.cookie;a={...a,url:m,method:g,body:w,headers:y,redirect:"manual"};continue}return l>0?{...h,redirected:!0}:h}throw new Ne("Redirect loop",e)}async _executeOnce(e,t,n,s,o,i,a){let c={request:e,response:null,error:null,startedAt:s,attempt:o,aborted:!1,store:new Map},u=e.meta.requestId??`req-${o}-${Date.now()}`;if(this._trace(u,"request_interceptors","start",s,o),e=await this._runRequestInterceptors(c),this._trace(u,"request_interceptors","end",s,o),this._trace(u,"lifecycle_before","start",s,o),this.cfg.hooks?.onBeforeRequest)for(let k of this.cfg.hooks.onBeforeRequest){let I=await k(e,this._hookCtx(c));I&&(e=I)}this._trace(u,"lifecycle_before","end",s,o);let l=await this.getLogger();l&&l.logRequest(u,e.method,e.url,e.headers,Eh(e.body),o);let h=n.cache!==!1&&n.cache?.forceRefresh===!0;if(n.cache!==!1&&this.cfg.cache){let k=await this.getCache();if(k&&!h){let I={url:e.url,method:e.method,headers:e.headers},L=await k.get(I);if(L&&!L.stale){let D=await this._buildResponse(L.entry.response,e,!0,o,s,n);if(this.cfg.hooks?.onBeforeResponse)for(let W of this.cfg.hooks.onBeforeResponse)await W(D,this._hookCtx(c));return D}if(L?.stale){if(await k.markSWRInFlight(I)){let B={...e,headers:{...e.headers,...k.buildConditionalHeaders(L.entry)}};(async()=>{try{let F=await Ut(this.transport,B,t),Je=await this.getCache();if(Je)if(F.status===304)await Je.revalidate({url:B.url,method:B.method,headers:B.headers},{status:304,statusText:"Not Modified",headers:F.headers,body:null});else{let{decompressBodyStream:ec,readRawBody:tc}=await Promise.resolve().then(()=>(lt(),Hi)),rc=await ec(F.body,F.headers),nc=await tc(rc,0,F.url,B.signal);await Je.set({url:B.url,method:B.method,headers:B.headers},{status:F.status,statusText:F.statusText,headers:F.headers,body:nc},{tags:n.tags??[]})}}catch(F){if(this.cfg.onSWRError)try{this.cfg.onSWRError(F,B)}catch{}}finally{try{(await this.getCache())?.clearSWRInFlight(I)}catch{}}})()}return await this._buildResponse(L.entry.response,e,!0,o,s,n)}}}let d=[];n.onUploadProgress&&d.push(n.onUploadProgress),this.cfg.hooks?.onUploadProgress&&d.push(...this.cfg.hooks.onUploadProgress);let p=d.length>0?d:null,m=null;if(p!==null&&e.body!==null){let k=null,I=null;if(e.body instanceof ReadableStream)k=e.body;else if(typeof e.body=="string"){let L=new TextEncoder().encode(e.body);I=L.byteLength,k=new ReadableStream({start:D=>{D.enqueue(L),D.close()}})}else if(e.body instanceof Uint8Array)I=e.body.byteLength,k=new ReadableStream({start:L=>{L.enqueue(e.body),L.close()}});else if(e.body instanceof ArrayBuffer){let L=new Uint8Array(e.body);I=L.byteLength,k=new ReadableStream({start:D=>{D.enqueue(L),D.close()}})}else if(typeof Blob<"u"&&e.body instanceof Blob)I=e.body.size,k=e.body.stream();else if(typeof URLSearchParams<"u"&&e.body instanceof URLSearchParams){let L=new TextEncoder().encode(e.body.toString());I=L.byteLength,k=new ReadableStream({start:D=>{D.enqueue(L),D.close()}})}if(k){let{stream:L}=hr(k,I,{onProgress:D=>{let W=D;for(let B of d)B(W)},...e.signal!==null?{signal:e.signal}:{}});m=L,e={...e,body:L}}}e.headers["accept-encoding"]||(e={...e,headers:{...e.headers,"accept-encoding":Ir}});let g=await this.getCookieJar(),w=n.auth!==!1?n.auth??this.cfg.auth:void 0;this._trace(u,"transport_send","start",s,o);let y;try{y=await this._sendFollowingRedirects(e,t,g??void 0,w)}catch(k){if(m)try{m.cancel("Request failed").catch(()=>{})}catch{}throw k}if(this._trace(u,"transport_send","end",s,o),this.cfg.hooks?.onAfterRequest)for(let k of this.cfg.hooks.onAfterRequest)await k(e,this._hookCtx(c));if(y.status===304){let k=await this.getCache();if(k){let I=await k.revalidate({url:e.url,method:e.method,headers:e.headers},{status:304,statusText:"Not Modified",headers:y.headers,body:null});if(I)return await this._buildResponse(I.response,e,!0,o,s,n)}}y.alreadyDecompressed&&(delete y.headers["content-encoding"],delete y.headers["Content-Encoding"]);let _=await Nr(y.body,y.headers),b=[];n.onDownloadProgress&&b.push(n.onDownloadProgress),this.cfg.hooks?.onDownloadProgress&&b.push(...this.cfg.hooks.onDownloadProgress);let E=b.length>0?b:null,A=_;if(E&&A){let k=y.headers["content-length"],I=k?parseInt(k,10):null,L=new G(I&&!isNaN(I)?I:null,{onProgress:W=>{let B=W;for(let F of b)F(B)},...e.signal!==null?{signal:e.signal}:{}}),D=A;A=new ReadableStream({async start(W){let B=D.getReader();try{for(;;){let{done:F,value:Je}=await B.read();if(F){L.complete(),W.close();break}L.update(Je.byteLength),W.enqueue(Je)}}catch(F){W.error(F)}finally{B.releaseLock()}},cancel(W){D.cancel(W).catch(()=>{})}})}let C=n.maxResponseSize??this.cfg.maxResponseSize??xh,T=await Mr(A,C,y.url,e.signal),P=await this.getCookieJar();P&&P.processResponseHeaders(y.headers,{url:y.url});let j=y.headers["content-type"]??null;this._trace(u,"response_parse","start",s,o);let v=await Ht(T,j,n.parseResponse,n.parseFailure,y.headers,y.url);this._trace(u,"response_parse","end",s,o);let M=N()-s,q={status:y.status,statusText:y.statusText,headers:y.headers,data:v,rawBody:T,body:T,url:y.url,cached:!1,redirected:y.redirected,httpVersion:y.httpVersion,durationMs:M,request:e,attempt:o};if(this.cfg.transformResponse&&(q.data=this.cfg.transformResponse(q.data,q)),n.cache!==!1&&this.cfg.cache){let k=await this.getCache();k&&y.status!==304&&await k.set({url:e.url,method:e.method,headers:e.headers},{status:y.status,statusText:y.statusText,headers:y.headers,body:T},{tags:n.tags??[]})}let de=l??await this.getLogger();if(de){let k=c.store.get("requestId")??e.meta.requestId??u;de.logResponse(k,q.status,q.statusText,q.headers,T,o,!1)}this.harRecorder?.record(e,q,i??Date.now()-q.durationMs),c.response=q,this._trace(u,"response_interceptors","start",s,o);let Z=await this._runResponseInterceptors(c,q,e,t,n,s,o,a??!1);if(this._trace(u,"response_interceptors","end",s,o),this.cfg.hooks?.onBeforeResponse){let k=Z;for(let I of this.cfg.hooks.onBeforeResponse){let L=await I(k,this._hookCtx(c));L&&(k=L)}}if((n.throwOnError??this.cfg.throwOnError??!0)&&Z.status>=400)throw new Rt(Z,e);if(this.cfg.hooks?.onAfterResponse)for(let k of this.cfg.hooks.onAfterResponse)await k(Z,this._hookCtx(c));return n.onSuccess?.(Z),Z}async _runRequestInterceptors(e){let t=e.request;for(let n of this.interceptors.request){e.request=t;let s=await n(e);s&&"url"in s&&!("status"in s)?t=s:e.request!==t&&(t=e.request)}return e.request=t,t}async _runResponseInterceptors(e,t,n,s,o,i,a,c){let u=t;for(let l of this.interceptors.response){let h=await l(e);if(h){if("status"in h&&"headers"in h)u=h;else if("url"in h&&"method"in h&&!("status"in h)){let d=Number(n.meta[La]??0);if(d>=Ia)throw new x(`Response interceptor re-send limit reached (${Ia}) \u2014 refusing to loop`,"EVALIDATION",{request:n});if(c&&a<=c.maxRetries){let p={request:n,response:t,error:null,attempt:a,maxRetries:c.maxRetries},m=Cs(c,a,0);await c.onRetry?.(p,m),await this.cfg.hooks?.onRetry?.reduce(async(g,w)=>{await g,await w(p)},Promise.resolve()),await vs(m,n.signal)}return this._executeOnce({...h,meta:{...h.meta,[La]:d+1}},s,o,i,a+1,void 0,c)}}}return u}async _runErrorInterceptors(e,t,n,s){let o={request:e,response:null,error:t,startedAt:s,attempt:n,aborted:!1,store:new Map};for(let i of this.interceptors.error){let a=await i(o);if(a&&"status"in a)return a}if(this.cfg.hooks?.onError)for(let i of this.cfg.hooks.onError){let a=await i(t,this._hookCtx(o));if(a)return a}return null}async _buildResponse(e,t,n,s,o,i){let a=e.body,c=a instanceof Uint8Array?a:typeof a=="string"?new TextEncoder().encode(a):null,u=c?await Ht(c,e.headers["content-type"]??null,i.parseResponse,i.parseFailure,e.headers,"url"in e?e.url:t.url):null,l=N()-o,h="url"in e?e.url:t.url,d="redirected"in e?e.redirected:!1,p="httpVersion"in e?e.httpVersion:"HTTP/1.1";return{status:e.status,statusText:e.statusText,headers:e.headers,body:c,data:u,rawBody:c,url:h,cached:n,redirected:d,httpVersion:p,durationMs:l,request:t,attempt:s}}_hookCtx(e){return{request:e.request,response:e.response,error:e.error,startedAt:e.startedAt,attempt:e.attempt,meta:e.request.meta}}_trace(e,t,n,s,o,i){if(this.cfg.onPipelineTrace)try{console.debug("[kinetex:trace]",e,t,n,o),this.cfg.onPipelineTrace({requestId:e,stage:t,event:n,elapsedMs:typeof performance<"u"?performance.now()-s:Date.now()-s,attempt:o,...i})}catch{}}get(e,t){return this.send(e,"GET",t)}post(e,t,n){return this.send(e,"POST",{...n,...t!==void 0?{body:t}:{}})}put(e,t,n){return this.send(e,"PUT",{...n,...t!==void 0?{body:t}:{}})}patch(e,t,n){return this.send(e,"PATCH",{...n,...t!==void 0?{body:t}:{}})}delete(e,t){return this.send(e,"DELETE",t)}head(e,t){return this.send(e,"HEAD",t)}options(e,t){return this.send(e,"OPTIONS",t)}request(e,t){return new Jr(this,e,t)}GET(e){return this.request("GET",e)}POST(e){return this.request("POST",e)}PUT(e){return this.request("PUT",e)}PATCH(e){return this.request("PATCH",e)}DELETE(e){return this.request("DELETE",e)}async sse(e,t={}){let{SSEClient:n}=await Promise.resolve().then(()=>(er(),ys)),s=mt(this.cfg.headers,t.headers),o=rr(this.cfg.baseURL,e,this.cfg.params,void 0,this.cfg.allowPrivateNetwork),i=async(a,c)=>{let u=typeof a=="string"?a:a.url,l=c,h=await this.send(u,l.method??"GET",{headers:l.headers,body:l.body,signal:l.signal,throwOnError:!1,parseResponse:p=>p}),d={...h.headers};return delete d["content-encoding"],delete d["Content-Encoding"],new Response(h.rawBody?.buffer??null,{status:h.status,headers:d})};return new n({url:o,headers:s,fetch:i,...t})}async graphql(e,t={}){let{GraphQLClient:n}=await Promise.resolve().then(()=>(Kr(),pa)),s=mt(this.cfg.headers,t.headers),o=rr(this.cfg.baseURL,e,this.cfg.params,void 0,this.cfg.allowPrivateNetwork),i=async(a,c)=>{let u=typeof a=="string"?a:a.url,l=c,h=await this.send(u,l.method??"POST",{headers:l.headers,body:l.body,signal:l.signal,throwOnError:!1,parseResponse:p=>p}),d={...h.headers};return delete d["content-encoding"],delete d["Content-Encoding"],new Response(h.rawBody?.buffer??null,{status:h.status,headers:d})};return new n({url:o,headers:s,fetch:i,...t})}async paginate(e,t){let{createPagePaginator:n}=await Promise.resolve().then(()=>(Vr(),va)),s=rr(this.cfg.baseURL,e,this.cfg.params,void 0,this.cfg.allowPrivateNetwork);return n({url:s,fetch:async(i,a)=>{let c=typeof i=="string"?i:i.url,u=a,l=await this.send(c,u.method??"GET",{headers:u.headers,body:u.body,signal:u.signal,throwOnError:!1,parseResponse:d=>d}),h={...l.headers};return delete h["content-encoding"],delete h["Content-Encoding"],new Response(l.rawBody?.buffer??null,{status:l.status,headers:h})},headers:mt(this.cfg.headers),...t})}destroy(){for(let e of this._wsClients)try{e.close(1e3,"Client destroyed")}catch{}return this._wsClients.clear(),ze&&this.transport&&"destroy"in this.transport&&this.transport.destroy(),this._concurrencyLimiter?.drain(),this._cookieJar=null,this._logger=null,this._dedup?.clear(),this._circuitBreakers?.clear?.(),this._otelTracer=null,this.interceptors.clear(),Promise.resolve()}},Jr=class{constructor(e,t,n){f(this,"client");f(this,"method");f(this,"_options",{});f(this,"_url");this.client=e,this.method=t,this._url=n}header(e,t){return this._options.headers={...this._options.headers,[e.toLowerCase()]:t},this}idempotencyKey(e){let t=e===void 0?Cn():e;if(!vn(t))throw new TypeError(`idempotencyKey: ${typeof t=="string"?JSON.stringify(t):typeof t} is not a valid Idempotency-Key \u2014 expected 1-255 visible ASCII characters`);return this._options.headers={...this._options.headers,"idempotency-key":t},this}headers(e){return this._options.headers={...this._options.headers,...e},this}param(e,t){return this._options.params={...this._options.params,[e]:t},this}params(e){return this._options.params={...this._options.params,...e},this}withBody(e){return this._options.body=e,this}withJSON(e){return this._options.body=JSON.stringify(e),this._options.headers={...this._options.headers,"content-type":"application/json"},this}withForm(e){return this._options.body=e,this}bearer(e){return this._options.auth={type:"bearer",token:e},this}basic(e,t){return this._options.auth={type:"basic",username:e,password:t},this}apiKey(e,t){return this._options.auth={type:"apikey",header:e,key:t},this}digest(e,t){return this._options.auth={type:"digest",username:e,password:t},this}noAuth(){return this._options.auth=!1,this}retry(e,t){return this._options.retry={maxRetries:e,...t},this}noRetry(){return this._options.retry=!1,this}timeout(e){return this._options.timeout=e,this}proxy(e){return this._options.proxy=e,this}cache(e){return this._options.cache=e,this}noCache(){return this._options.cache={forceRefresh:!0},this}onUploadProgress(e){return this._options.onUploadProgress=e,this}onDownloadProgress(e){return this._options.onDownloadProgress=e,this}signal(e){return this._options.signal=e,this}maxSize(e){return this._options.maxResponseSize=e,this}http2(){return this._options.httpVersion="HTTP/2",this}http1(){return this._options.httpVersion="HTTP/1.1",this}noThrow(){return this._options.throwOnError=!1,this}tags(...e){return this._options.tags=e,this}meta(e){return this._options.meta={...this._options.meta,...e},this}send(){return this.client.send(this._url,this.method,this._options)}async data(){return(await this.client.send(this._url,this.method,this._options)).data}async json(){let e={...this._options};return e.headers={...e.headers,accept:"application/json"},(await this.client.send(this._url,this.method,e)).data}async text(){let e={...this._options};return e.parseResponse=n=>new TextDecoder("utf-8").decode(n),(await this.client.send(this._url,this.method,e)).data}async bytes(){let e={...this._options};return e.parseResponse=n=>n,(await this.client.send(this._url,this.method,e)).data}async blob(){let e=await this.bytes(),t="application/octet-stream";if(typeof Blob>"u")throw new x("Blob is not available in this runtime","EUNKNOWN");return new Blob([e.buffer],{type:t})}subscribe(e,t){this.client.send(this._url,this.method,{...this._options,onSuccess:e,...t!==void 0?{onError:t}:{}}).catch(n=>t?.(n instanceof x?n:new x(String(n),"EUNKNOWN")))}};function Rh(r,e){return r?{status:r.status,statusText:r.statusText,headers:r.headers,body:r.rawBody??null,request:e}:null}function Os(r){return new kt(r)}function kh(r,e){if(!(!r&&!e))return{...r,...e}}function vs(r,e){return new Promise((t,n)=>{if(e?.aborted){n(Os());return}let s=()=>{clearTimeout(o),n(Os())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e?.addEventListener("abort",s,{once:!0})})}function $a(r){return r instanceof ReadableStream?!0:typeof Blob<"u"&&r instanceof Blob}function Ah(r){try{return`${r.method}:${new URL(r.url).origin}`}catch{return`${r.method}:${r.url}`}}var Ms=class{constructor(e,t={}){f(this,"_client");f(this,"_maxBatch");f(this,"_flushMs");f(this,"_queue",[]);f(this,"_timer",null);this._client=e;let n=t.maxBatch??100;if(!Number.isInteger(n)||n<1)throw new RangeError(`BatchQueue maxBatch must be a positive integer (got ${n})`);this._maxBatch=n;let s=t.flushMs??0;if(!Number.isFinite(s)||s<0)throw new RangeError(`BatchQueue flushMs must be a non-negative finite number (got ${s})`);this._flushMs=s}enqueue(e,t="GET",n={}){return new Promise((s,o)=>{let i={url:e,method:t,options:n,resolve:s,reject:o};this._queue.push(i);let a=n.signal;if(a){let c=()=>{let u=this._queue.indexOf(i);u!==-1&&(this._queue.splice(u,1),o(new x("Request aborted while queued","EABORT")))};if(i._abortCleanup=()=>a.removeEventListener("abort",c),a.addEventListener("abort",c,{once:!0}),a.aborted){a.removeEventListener("abort",c);let u=this._queue.indexOf(i);u!==-1&&this._queue.splice(u,1),o(new x("Request aborted before flush","EABORT"));return}}this._queue.length>=this._maxBatch?this._flushNow():this._timer||(this._flushMs===0?queueMicrotask(()=>{this._timer=null,this._flushNow()}):this._timer=setTimeout(()=>this._flushNow(),this._flushMs))})}flush(){let e=this._queue.length+1;for(;this._queue.length>0&&e-- >0;)this._flushNow()}get pendingCount(){return this._queue.length}_flushNow(){if(this._timer!==null&&(clearTimeout(this._timer),this._timer=null),this._queue.length===0)return;let e=this._queue.splice(0,this._maxBatch);for(let t of e){let n=o=>{t._abortCleanup?.(),t.resolve(o)},s=o=>{t._abortCleanup?.(),t.reject(o)};try{this._client.send(t.url,t.method,t.options).then(n,s)}catch(o){s(o)}}}};st();Hr();lt();Kr();Ae();U();var Qr=class{constructor(){f(this,"listeners",new Map)}on(e,t){let n=this.listeners.get(e)??[];return n.push({fn:t,once:!1}),this.listeners.set(e,n),this}once(e,t){let n=this.listeners.get(e)??[];return n.push({fn:t,once:!0}),this.listeners.set(e,n),this}off(e,t){let n=this.listeners.get(e);return n?(this.listeners.set(e,n.filter(s=>s.fn!==t)),this):this}async emit(e,t){let n=this.listeners.get(e);if(!n||n.length===0)return;let s=[...n],o=new Set;for(let i of s){try{await i.fn(t)}catch{}i.once&&o.add(i)}if(o.size>0){let i=this.listeners.get(e)??[];this.listeners.set(e,i.filter(a=>!o.has(a)))}}removeAllListeners(e){return e?this.listeners.delete(e):this.listeners.clear(),this}},Ch=0;function vh(){return`hook_${++Ch}`}function X(r){return[...r].sort((e,t)=>e.priority-t.priority)}var $s=class{constructor(){f(this,"beforeRequest",[]);f(this,"afterRequest",[]);f(this,"beforeResponse",[]);f(this,"afterResponse",[]);f(this,"onError",[]);f(this,"onRetry",[]);f(this,"onRedirect",[]);f(this,"onUploadProgress",[]);f(this,"onDownloadProgress",[]);f(this,"onCancel",[]);f(this,"onConnection",[]);f(this,"aroundHooks",[]);f(this,"emitter",new Qr)}addBeforeRequest(e,t={}){return this._add(this.beforeRequest,e,t)}addAfterRequest(e,t={}){return this._add(this.afterRequest,e,t)}addBeforeResponse(e,t={}){return this._add(this.beforeResponse,e,t)}addAfterResponse(e,t={}){return this._add(this.afterResponse,e,t)}addOnError(e,t={}){return this._add(this.onError,e,t)}addOnRetry(e,t={}){return this._add(this.onRetry,e,t)}addOnRedirect(e,t={}){return this._add(this.onRedirect,e,t)}addOnUploadProgress(e,t={}){return this._add(this.onUploadProgress,e,t)}addOnDownloadProgress(e,t={}){return this._add(this.onDownloadProgress,e,t)}addOnCancel(e,t={}){return this._add(this.onCancel,e,t)}addOnConnection(e,t={}){return this._add(this.onConnection,e,t)}addAround(e,t={}){return this._add(this.aroundHooks,e,t)}remove(e){let t=!1,n=[this.beforeRequest,this.afterRequest,this.beforeResponse,this.afterResponse,this.onError,this.onRetry,this.onRedirect,this.onUploadProgress,this.onDownloadProgress,this.onCancel,this.onConnection,this.aroundHooks];for(let s of n){let o=s.length,i=s.filter(a=>a.id!==e);i.length<o&&(s.length=0,s.push(...i),t=!0)}return t}removeAll(){this.beforeRequest.length=0,this.afterRequest.length=0,this.beforeResponse.length=0,this.afterResponse.length=0,this.onError.length=0,this.onRetry.length=0,this.onRedirect.length=0,this.onUploadProgress.length=0,this.onDownloadProgress.length=0,this.onCancel.length=0,this.onConnection.length=0,this.aroundHooks.length=0}has(e){return[this.beforeRequest,this.afterRequest,this.beforeResponse,this.afterResponse,this.onError,this.onRetry,this.onRedirect,this.onUploadProgress,this.onDownloadProgress,this.onCancel,this.onConnection,this.aroundHooks].some(n=>n.some(s=>s.id===e))}async runBeforeRequest(e,t){let n=e;for(let s of X(this.beforeRequest)){if(!this._shouldRun(s,t))continue;let o=await this._safeRun(s,()=>s.fn(n,t));o&&typeof o=="object"&&"url"in o&&(n=o),this._maybeEject(s,this.beforeRequest)}return await this.emitter.emit("before:request",n),n}async runAfterRequest(e,t){for(let n of X(this.afterRequest))this._shouldRun(n,t)&&(await this._safeRun(n,()=>n.fn(e,t)),this._maybeEject(n,this.afterRequest));await this.emitter.emit("after:request",e)}async runBeforeResponse(e,t){let n=e;for(let s of X(this.beforeResponse)){if(!this._shouldRun(s,t))continue;let o=await this._safeRun(s,()=>s.fn(n,t));o&&typeof o=="object"&&"status"in o&&(n=o),this._maybeEject(s,this.beforeResponse)}return await this.emitter.emit("before:response",n),n}async runAfterResponse(e,t){for(let n of X(this.afterResponse))this._shouldRun(n,t)&&(await this._safeRun(n,()=>n.fn(e,t)),this._maybeEject(n,this.afterResponse));await this.emitter.emit("after:response",e)}async runOnError(e,t){let n=null;for(let s of X(this.onError)){if(!this._shouldRun(s,t))continue;let o=await this._safeRun(s,()=>s.fn(e,t));if(this._maybeEject(s,this.onError),o&&typeof o=="object"&&"status"in o){n=o;break}}return await this.emitter.emit("error",e),n}async runOnRetry(e,t){for(let n of X(this.onRetry))this._shouldRun(n,t)&&(await this._safeRun(n,()=>n.fn(e,t)),this._maybeEject(n,this.onRetry));await this.emitter.emit("retry",e)}async runOnRedirect(e,t){let n=!0;for(let s of X(this.onRedirect)){if(!this._shouldRun(s,t))continue;let o=await this._safeRun(s,()=>s.fn(e,t));if(this._maybeEject(s,this.onRedirect),o===!1){n=!1;break}}return await this.emitter.emit("redirect",e),n}runOnUploadProgress(e,t){for(let n of X(this.onUploadProgress))this._shouldRun(n,t)&&(this._safeRunSync(n,()=>n.fn(e,t)),this._maybeEject(n,this.onUploadProgress));this.emitter.emit("upload:progress",e)}runOnDownloadProgress(e,t){for(let n of X(this.onDownloadProgress))this._shouldRun(n,t)&&(this._safeRunSync(n,()=>n.fn(e,t)),this._maybeEject(n,this.onDownloadProgress));this.emitter.emit("download:progress",e)}runOnCancel(e,t){for(let n of X(this.onCancel))this._shouldRun(n,t)&&(this._safeRunSync(n,()=>n.fn(e,t)),this._maybeEject(n,this.onCancel));this.emitter.emit("cancel",e)}runOnConnection(e,t){for(let n of X(this.onConnection))this._shouldRun(n,t)&&(this._safeRunSync(n,()=>n.fn(e)),this._maybeEject(n,this.onConnection));this.emitter.emit("connection",e)}wrapWithAround(e,t){let n=X(this.aroundHooks).reverse(),s=t;for(let o of n){let i=s;s=()=>{if(!this._shouldRun(o,e))return i();let a=!1,c=this._safeRunSync(o,()=>(a=!0,o.fn(e,i)));return this._maybeEject(o,this.aroundHooks),a?i():c}}return s}_add(e,t,n){let s=n.id??vh();return e.push({id:s,priority:n.priority??0,once:n.once??!1,condition:n.condition??null,safe:n.safe??!1,fn:t}),s}_shouldRun(e,t){return e.condition?e.condition(t):!0}async _safeRun(e,t){try{return await t()}catch(n){if(!e.safe)throw n;console.error(`[lifecycle] Hook "${e.id}" threw:`,n);return}}_safeRunSync(e,t){try{return t()}catch(n){if(!e.safe)throw n;console.error(`[lifecycle] Hook "${e.id}" threw:`,n);return}}_maybeEject(e,t){if(!e.once)return;let n=t.indexOf(e);n!==-1&&t.splice(n,1)}};var Us=class{constructor(e=10){f(this,"maxRedirects");f(this,"count",0);this.maxRedirects=e}record(e,t,n,s){if(this.count++,this.count>this.maxRedirects)throw new Gr(this.count,e);return{from:e,to:t,status:n,count:this.count,request:s}}get redirectCount(){return this.count}reset(){this.count=0}},Gr=class extends Error{constructor(t,n){super(`Too many redirects (${t}) at ${n}`);f(this,"count");f(this,"url");f(this,"code","ETOOMANYREDIRECTS");this.count=t,this.url=n,this.name="TooManyRedirectsError"}};function Ph(r){return async e=>(await r(e),e)}function Lh(r){return async e=>({...e,headers:{...e.headers,...typeof r=="function"?await r():r}})}function Ih(r){return e=>{if(/^https?:\/\//i.test(e.url))return;let t=r.replace(/\/+$/,""),n=e.url.replace(/^\/+/,"");return{...e,url:`${t}/${n}`}}}function Oh(r=e=>e>=400){return e=>{if(e.response&&r(e.response.status))throw new Xr(e.response.status,e.response.statusText,e.response)}}function Mh(r){return e=>{let t=r(e);if(t===!0)return;let n=typeof t=="string"?t:`Response validation failed (status ${e.status})`;throw new Yr(n,e)}}var Xr=class extends Error{constructor(t,n,s){super(`HTTP ${t}: ${n}`);f(this,"status");f(this,"statusText");f(this,"response");f(this,"code","EHTTPERROR");this.status=t,this.statusText=n,this.response=s,this.name="HTTPError"}},Yr=class extends Error{constructor(t,n){super(t);f(this,"response");f(this,"code","EVALIDATION");this.response=n,this.name="ResponseValidationError"}};function Nh(...r){return async(e,t)=>{let n=e;for(let s of r){let o=await s(n,t);o&&typeof o=="object"&&"url"in o&&(n=o)}return n}}function Dh(...r){return async(e,t)=>{let n=e;for(let s of r){let o=await s(n,t);o&&typeof o=="object"&&"status"in o&&(n=o)}return n}}function $h(...r){return(e,t)=>r.reduceRight((s,o)=>()=>o(e,s),t)()}function Uh(r={}){let e=r.logger??((s,o)=>console.log(s,JSON.stringify(o))),t=new Set((r.redactHeaders??["authorization","cookie","set-cookie","proxy-authorization"]).map(s=>s.toLowerCase())),n=s=>Xe(s,t,"***");return{beforeRequest:s=>{e("\u2192 request",{method:s.method,url:s.url,headers:n(s.headers)})},afterResponse:s=>{e("\u2190 response",{status:s.status,url:s.request.url,headers:n(s.headers)})},onError:s=>{e("\u2717 error",{url:s.request.url,error:s.error instanceof Error?s.error.message:String(s.error),status:s.response?.status??null})}}}function Hh(){let r="__kinetex_timing__";return{beforeRequest:(e,t)=>{t.meta[r]=N()},afterResponse:(e,t)=>{let n=t.meta[r],s=n!==void 0?N()-n:null;s!==null&&(t.meta.durationMs=s)}}}function jh(r="utf-8"){return e=>{if(e.body instanceof Uint8Array)return{...e,body:new TextDecoder(r).decode(e.body)}}}function Bh(){return{beforeRequest:(r,e)=>{if(r.signal?.aborted)throw e.meta.aborted=!0,bt("Request aborted before sending")},onCancel:r=>{console.debug(`[lifecycle] Request cancelled: ${r.request.url}`,r.reason)}}}function zh(r,e={}){return{request:r,response:null,error:null,startedAt:N(),attempt:1,meta:{},...e}}Br();Vr();Dt();var gt={NoAuth:0,GSSAPI:1,UserPassword:2,NoAcceptable:255},se={IPv4:1,Domain:3,IPv6:4},qh={Connect:1,Bind:2,UdpAssociate:3},Y={Succeeded:0,GeneralFailure:1,ConnNotAllowed:2,NetworkUnreachable:3,HostUnreachable:4,ConnRefused:5,TtlExpired:6,CmdNotSupported:7,AddrTypeNotSupported:8},Fh={[Y.Succeeded]:"Succeeded",[Y.GeneralFailure]:"General SOCKS server failure",[Y.ConnNotAllowed]:"Connection not allowed by ruleset",[Y.NetworkUnreachable]:"Network unreachable",[Y.HostUnreachable]:"Host unreachable",[Y.ConnRefused]:"Connection refused",[Y.TtlExpired]:"TTL expired",[Y.CmdNotSupported]:"Command not supported",[Y.AddrTypeNotSupported]:"Address type not supported"},O=class extends Error{constructor(t,n,s=!1){super(t);f(this,"code");f(this,"retriable");this.code=n,this.retriable=s,this.name="Socks5Error"}};function Wh(r){let e=Fh[r]??`Unknown reply code 0x${r.toString(16)}`,t=r===Y.NetworkUnreachable||r===Y.TtlExpired;return new O(`SOCKS5 proxy error: ${e}`,`SOCKS5_REPLY_${r}`,t)}var js=class{constructor(e,t){f(this,"conn");f(this,"timeoutMs");f(this,"buf",new Uint8Array(0));this.conn=e,this.timeoutMs=t}async readExact(e){for(;this.buf.length<e;){let n=new Uint8Array(4096),o=await za(this.conn.read(n),this.timeoutMs,"SOCKS5 handshake read timed out");if(o===null||o===0)throw new O("Connection closed during SOCKS5 handshake","SOCKS5_EOF");let i=new Uint8Array(this.buf.length+o);i.set(this.buf),i.set(n.subarray(0,o),this.buf.length),this.buf=i}let t=this.buf.slice(0,e);return this.buf=this.buf.slice(e),t}};function za(r,e,t){return!Number.isFinite(e)||e<=0?r:new Promise((n,s)=>{let o=setTimeout(()=>s(new O(t,"SOCKS5_TIMEOUT",!0)),e);r.then(i=>{clearTimeout(o),n(i)},i=>{clearTimeout(o),s(i)})})}function Kh(r,e){let t=r.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);if(t){let o=t.slice(1).map(Number);if(o.every(i=>i>=0&&i<=255))return new Uint8Array([se.IPv4,...o])}let n=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;if(Vh(n)){let o=Jh(n);return new Uint8Array([se.IPv6,...o])}e||console.warn("[socks5] remoteDns=false but got a hostname; sending as DOMAINNAME");let s=new TextEncoder().encode(r);if(s.length>255)throw new O("Hostname too long for SOCKS5 (max 255 bytes)","SOCKS5_ADDR_TOO_LONG");return new Uint8Array([se.Domain,s.length,...s])}var Bs=/^[0-9a-fA-F]{1,4}$/;function Vh(r){if(!r.includes(":"))return!1;let e=r.split("::");if(e.length>2)return!1;let t=s=>s===void 0||s===""?[]:s.split(":"),n=t(e[0]);if(e.length===2){let s=t(e[1]);return n.length+s.length>7?!1:[...n,...s].every(o=>Bs.test(o))}return n.length===8&&n.every(s=>Bs.test(s))}function Jh(r){let e=r.split("::"),t=o=>o?o.split(":").map(i=>Bs.test(i)?parseInt(i,16):Number.NaN):[],n;if(e.length===2){let o=t(e[0]),i=t(e[1]),a=new Array(8-o.length-i.length).fill(0);n=[...o,...a,...i]}else n=t(r);if(n.length!==8)throw new O(`Invalid IPv6 address: ${r}`,"SOCKS5_INVALID_ADDR");for(let o of n)if(!Number.isFinite(o)||o<0||o>65535)throw new O(`Invalid IPv6 group: ${o} out of range (0-65535)`,"SOCKS5_INVALID_ADDR");let s=[];for(let o of n)s.push(o>>8&255,o&255);return s}function Hs(r,e){if(r===se.IPv4)return Array.from(e).join(".");if(r===se.IPv6){let t=[];for(let n=0;n<16;n+=2)t.push((e[n]<<8|e[n+1]).toString(16));return t.join(":")}return new TextDecoder().decode(e)}async function Qh(r,e,t){let n=new js(r,t.handshakeTimeoutMs),s=!!(t.username&&t.password),o=s?[gt.NoAuth,gt.UserPassword]:[gt.NoAuth],i=new Uint8Array([5,o.length,...o]);await r.write(i);let a=await n.readExact(2);if(a[0]!==5)throw new O(`Unexpected SOCKS version in method response: ${a[0]}`,"SOCKS5_BAD_VERSION");let c=a[1];if(c===gt.NoAcceptable)throw new O("SOCKS5 proxy rejected all authentication methods","SOCKS5_NO_ACCEPTABLE_METHOD");if(c===gt.UserPassword){if(!s)throw new O("SOCKS5 proxy requires username/password but none provided","SOCKS5_AUTH_REQUIRED");await Gh(r,n,t.username,t.password)}else if(c!==gt.NoAuth)throw new O(`SOCKS5 proxy chose unsupported auth method: 0x${c.toString(16)}`,"SOCKS5_UNSUPPORTED_METHOD");let u=Kh(e.host,t.remoteDns),l=e.port,h=[l>>8&255,l&255],d=new Uint8Array([5,qh.Connect,0,...u,...h]);await r.write(d);let p=await n.readExact(4);if(p[0]!==5)throw new O(`Unexpected SOCKS version in reply: ${p[0]}`,"SOCKS5_BAD_VERSION");if(p[1]!==Y.Succeeded)throw Wh(p[1]);let m=p[3],g,w;if(m===se.IPv4)w=await n.readExact(4),g=Hs(se.IPv4,w);else if(m===se.IPv6)w=await n.readExact(16),g=Hs(se.IPv6,w);else if(m===se.Domain){let b=await n.readExact(1);w=await n.readExact(b[0]),g=Hs(se.Domain,w)}else throw new O(`Unsupported bound address type in reply: 0x${m.toString(16)}`,"SOCKS5_UNSUPPORTED_ADDR_TYPE");let y=await n.readExact(2),_=y[0]<<8|y[1];return{boundAddr:g,boundPort:_}}async function Gh(r,e,t,n){let s=new TextEncoder,o=s.encode(t),i=s.encode(n);if(o.length>255||i.length>255)throw new O("Username or password too long (max 255 bytes)","SOCKS5_AUTH_TOO_LONG");let a=new Uint8Array([1,o.length,...o,i.length,...i]);await r.write(a);let c=await e.readExact(2);if(c[0]!==1&&c[0]!==5)throw new O(`Unexpected auth sub-negotiation version: ${c[0]}`,"SOCKS5_BAD_AUTH_VERSION");if(c[1]!==0)throw new O("SOCKS5 authentication failed (invalid credentials)","SOCKS5_AUTH_FAILED")}async function Xh(r,e,t){let n;for(let s=0;s<=e;s++)try{return await r()}catch(o){if(n=o,!(o instanceof O&&o.retriable)||s===e)break;await Yh(t*Math.pow(2,s))}throw n}function Yh(r){return new Promise(e=>setTimeout(e,r))}var Zh=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","ENETDOWN","ETIMEDOUT","EPIPE","EAI_AGAIN"]);function ef(r){return{host:r.host,port:r.port??1080,username:r.username??"",password:r.password??"",remoteDns:r.remoteDns??!0,connectTimeoutMs:r.connectTimeoutMs??1e4,handshakeTimeoutMs:r.handshakeTimeoutMs??1e4,maxRetries:r.maxRetries??2,retryDelayMs:r.retryDelayMs??300}}async function qa(r,e,t){let n=ef(r);return await Xh(async()=>{let s=await za(t(n.host,n.port,n.connectTimeoutMs),n.connectTimeoutMs,`TCP connection to SOCKS5 proxy ${n.host}:${n.port} timed out`).catch(o=>{if(o instanceof O||o instanceof DOMException)throw o;let i=o?.code,a=typeof i=="string"?i:"UNKNOWN";throw new O(`Cannot reach SOCKS5 proxy ${n.host}:${n.port}: ${o instanceof Error?o.message:String(o)}`,"SOCKS5_CONNECT_FAILED",Zh.has(a))});try{let{boundAddr:o,boundPort:i}=await Qh(s,e,n);return{conn:s,boundAddr:o,boundPort:i}}catch(o){throw s.close(),o}},n.maxRetries,n.retryDelayMs)}function tf(r){let e;try{rf(r),e=new URL(r)}catch{throw new O("Invalid SOCKS5 proxy URL: malformed URL","SOCKS5_BAD_URL")}if(e.protocol!=="socks5:"&&e.protocol!=="socks5h:")throw new O(`Expected socks5:// or socks5h:// scheme, got: ${e.protocol}`,"SOCKS5_BAD_SCHEME");let t=e.protocol==="socks5h:",n=e.hostname,s=e.port?parseInt(e.port,10):1080;if(!Number.isFinite(s)||s<1||s>65535)throw new O("Invalid SOCKS5 proxy URL: port must be between 1 and 65535","SOCKS5_BAD_URL");if(!n)throw new O("Invalid SOCKS5 proxy URL: no hostname specified (e.g., socks5://host:port)","SOCKS5_BAD_URL");let o={host:n,port:s,remoteDns:t},i=(a,c)=>{try{return decodeURIComponent(a)}catch{throw new O(`Invalid SOCKS5 proxy URL: malformed percent-encoding in the ${c}`,"SOCKS5_BAD_URL")}};return e.username&&(o.username=i(e.username,"username")),e.password&&(o.password=i(e.password,"password")),o}function rf(r){try{let e=new URL(r);return`${e.protocol}//${e.host}${e.pathname}${e.search}${e.hash}`}catch{return"[redacted]"}}var nf=async(r,e,t)=>{let n=globalThis,s=async(a,c)=>{if(!t||t<=0)return a;let u;try{return await Promise.race([a,new Promise((l,h)=>{u=setTimeout(()=>h(new O(c,"SOCKS5_TIMEOUT",!0)),t)})])}finally{u!==void 0&&clearTimeout(u)}},o=await s(n.Deno.connect({hostname:r,port:e,transport:"tcp"}),"TCP connect to proxy timed out");return{read:a=>{let c=o.read(a).catch(()=>null);return s(c,"TCP read timed out")},write:a=>o.write(a),close:()=>{try{o.close()}catch{}}}},sf=(r,e,t)=>new Promise((n,s)=>{import("node:net").then(({createConnection:o})=>{let i=o({host:r,port:e}),a;Number.isFinite(t)&&t>0&&(a=setTimeout(()=>{i.destroy(),s(new O("TCP connect to proxy timed out","SOCKS5_TIMEOUT",!0))},t));let c=()=>{a!==void 0&&clearTimeout(a)},u=new Uint8Array(0),l=null,h=null,d=null,p=null;function m(){if(!l||!d||u.length===0)return;let y=Math.min(u.length,d.length);d.set(u.subarray(0,y)),u=u.slice(y);let _=l;l=null,h=null,d=null,_(y)}function g(y){if(h){let _=h;l=null,h=null,d=null,_(y)}}i.on("data",y=>{let _=new Uint8Array(u.length+y.length);_.set(u),_.set(y,u.length),u=_,m()});let w=!1;i.on("end",()=>{w=!0,l&&(l(null),l=null,h=null,d=null)}),i.on("close",()=>{w=!0}),i.once("error",y=>{c(),p=y,g(y),s(y)}),i.once("connect",()=>{c(),i.on("error",y=>{p=y,g(y)}),n({read:y=>new Promise((_,b)=>{if(p){b(p);return}if(w&&u.length===0){_(null);return}if(u.length>0){let E=Math.min(u.length,y.length);y.set(u.subarray(0,E)),u=u.slice(E),_(E);return}l=_,h=b,d=y}),write:y=>new Promise((_,b)=>{i.write(y,E=>E?b(E):_(y.length))}),close:()=>i.destroy()})})}).catch(s)});function of(r,e){return async(t,n,s)=>{let o=Number.isFinite(s)&&s>0?s:void 0,i=o??r.connectTimeoutMs;return(await qa({...r,...i!==void 0?{connectTimeoutMs:i}:{},...o!==void 0?{handshakeTimeoutMs:o}:{}},{host:t,port:n},e)).conn}}er();ye();ye();lt();st();ds();er();Kr();Vr();Br();Dt();Ae();U();var Zr=class extends Error{constructor(t){super(t);f(this,"code","URL_VALIDATION_ERROR");this.name="URLValidationError"}},af=/^[A-Za-z0-9\-._~]$/,cf=/^[:/?#\[\]@!$&'()*+,;=]$/;function zs(r,e=!1){return Array.from(r).map(t=>{if(af.test(t)||e&&cf.test(t))return t;let n=t.codePointAt(0);if(n>65535){let s=new TextEncoder().encode(t);return Array.from(s).map(o=>"%"+o.toString(16).toUpperCase().padStart(2,"0")).join("")}if(n>127){let s=new TextEncoder().encode(t);return Array.from(s).map(o=>"%"+o.toString(16).toUpperCase().padStart(2,"0")).join("")}return"%"+n.toString(16).toUpperCase().padStart(2,"0")}).join("")}function fe(r){try{return decodeURIComponent(r.replace(/\+/g,"%20"))}catch{return r.replace(/%([0-9A-Fa-f]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16)))}}function Va(r){return encodeURIComponent(r).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")}function yt(r){return encodeURIComponent(r).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")}function uf(r,e={}){let{sort:t=!1,arrayFormat:n="repeat"}=e,s=[];for(let[o,i]of Object.entries(r)){if(i==null)continue;let a=yt(o);if(Array.isArray(i)){let c=i.filter(u=>u!=null);if(c.length===0)continue;if(n==="comma")s.push([a,c.map(u=>yt(String(u))).join(",")]);else if(n==="bracket")for(let u of c)s.push([`${a}[]`,yt(String(u))]);else for(let u of c)s.push([a,yt(String(u))])}else s.push([a,yt(String(i))])}return t&&s.sort(([o],[i])=>o<i?-1:o>i?1:0),s.map(([o,i])=>`${o}=${i}`).join("&")}function Ja(r){let e=r.startsWith("?")?r.slice(1):r,t={};if(!e)return t;let n=(o,i)=>Object.prototype.hasOwnProperty.call(o,i),s=(o,i)=>{o==="__proto__"?Object.defineProperty(t,o,{value:i,writable:!0,enumerable:!0,configurable:!0}):t[o]=i};for(let o of e.split("&")){if(!o)continue;let i=o.indexOf("="),a=fe(i===-1?o:o.slice(0,i)),c=i===-1?"":fe(o.slice(i+1));if(!n(t,a))s(a,c);else{let u=t[a];Array.isArray(u)?u.push(c):s(a,[u,c])}}return t}function lf(r,e){let t={...r};for(let[n,s]of Object.entries(e))s==null?delete t[n]:t[n]=s;return t}function hf(r,...e){let t={};for(let n of e)n in r&&(t[n]=r[n]);return t}function ff(r,...e){let t=new Set(e),n={};for(let[s,o]of Object.entries(r))t.has(s)||(n[s]=o);return n}function Qa(...r){if(r.length===0)return"/";let e=[];for(let i of r)i&&e.push(...i.split("/").filter((a,c)=>a!==""||c===0));let n=Ga(e).join("/"),o=r[r.length-1]?.endsWith("/")&&n!=="/"?"/":"";return(n.startsWith("/")?"":"/")+n+o}function Ga(r){let e=[];for(let t of r)t!=="."&&(t===".."?e.pop():e.push(t));return e}function Xa(r,e={}){let{trailingSlash:t="preserve"}=e,n=r.endsWith("/")&&r!=="/",s=r.split("/").filter(Boolean),i="/"+Ga(s).join("/");return t==="add"&&i!=="/"?i+="/":t==="remove"||t==="preserve"&&n&&i!=="/"&&(i+="/"),i}function df(r){return r.split("/").filter(Boolean).map(fe)}function Ya(r,e){return r.replace(/:([A-Za-z_][A-Za-z0-9_]*)/g,(t,n)=>{let s=e[n];if(s===void 0)throw new Zr(`Missing path param: "${n}"`);return Va(String(s))})}var pf={"http:":"80","https:":"443","ftp:":"21","ws:":"80","wss:":"443"};function mf(r,e={}){let t=Ve(r);if(!t)throw new TypeError(`Invalid URL: ${r}`);let n=pf[t.protocol],s=t.port===n?"":t.port,o=Xa(t.pathname,{trailingSlash:e.trailingSlash??"preserve"});e.sortParams&&t.searchParams.sort();let i=t.searchParams.toString()?`?${t.searchParams}`:"",a=e.removeFragment?"":t.hash,c=t.username?`${encodeURIComponent(t.username)}${t.password?":"+encodeURIComponent(t.password):""}@`:"",u=s?`${t.hostname}:${s}`:t.hostname;return`${t.protocol}//${c}${u}${o}${i}${a}`}var Ke=class r{constructor(e,t){f(this,"_url");try{this._url=new URL(String(e),t)}catch{throw new TypeError(`Invalid URL: "${e}"${t?` (base: "${t}")`:""}`)}}static from(e,t){return new r(e,t)}static https(e,t){return new r(`https://${e}${t??"/"}`)}static http(e,t){return new r(`http://${e}${t??"/"}`)}withProtocol(e){let t=this._clone();return t._url.protocol=e.endsWith(":")?e:e+":",t}withHostname(e){let t=this._clone();return t._url.hostname=e,t}withHost(e){let t=this._clone();return t._url.host=e,t}withPort(e){let t=this._clone();return t._url.port=String(e),t}withUsername(e){let t=this._clone();return t._url.username=encodeURIComponent(e),t}withPassword(e){let t=this._clone();return t._url.password=encodeURIComponent(e),t}withPathname(e){let t=this._clone();return t._url.pathname=e,t}appendPath(...e){let t=this._clone(),n=t._url.pathname.replace(/\/$/,""),s=e.map(o=>o.replace(/^\/|\/$/g,"")).filter(Boolean);return t._url.pathname=n+"/"+s.join("/"),t}path(...e){let t=this._clone();return t._url.pathname=Qa(...e),t}params(e){let t=this._clone();t._url.pathname=Ya(t._url.pathname,e);for(let[n,s]of Object.entries(e))t._url.searchParams.set(n,String(s));return t}addTrailingSlash(){let e=this._clone();return e._url.pathname.endsWith("/")||(e._url.pathname+="/"),e}removeTrailingSlash(){let e=this._clone();return e._url.pathname!=="/"&&e._url.pathname.endsWith("/")&&(e._url.pathname=e._url.pathname.slice(0,-1)),e}setParam(e,t){let n=this._clone();return t==null?n._url.searchParams.delete(e):n._url.searchParams.set(e,String(t)),n}appendParam(e,t){if(t==null)return this;let n=this._clone();return n._url.searchParams.append(e,String(t)),n}deleteParam(e){let t=this._clone();return t._url.searchParams.delete(e),t}query(e){let t=this._clone();for(let[n,s]of Object.entries(e))if(s==null)t._url.searchParams.delete(n);else if(Array.isArray(s)){t._url.searchParams.delete(n);for(let o of s)o!=null&&t._url.searchParams.append(n,String(o))}else t._url.searchParams.set(n,String(s));return t}setQuery(e){let t=this._clone();return t._url.search="",t.query(e)}pickParams(...e){let t=this._clone(),n=new Set(e),s=[];for(let[o,i]of t._url.searchParams.entries())n.has(o)&&s.push([o,i]);t._url.search="";for(let[o,i]of s)t._url.searchParams.append(o,i);return t}omitParams(...e){let t=this._clone(),n=new Set(e);for(let s of n)t._url.searchParams.delete(s);return t}sortParams(){let e=this._clone();return e._url.searchParams.sort(),e}redactParams(...e){let t=this._clone();for(let n of e)t._url.searchParams.has(n)&&(t=t.setParam(n,"REDACTED"));return t}withHash(e){let t=this._clone();return t._url.hash=e.startsWith("#")?e:"#"+e,t}removeHash(){let e=this._clone();return e._url.hash="",e}toString(){return this._url.toString()}toURL(){return new URL(this._url.toString())}get href(){return this._url.href}get protocol(){return this._url.protocol}get hostname(){return this._url.hostname}get host(){return this._url.host}get port(){return this._url.port}get pathname(){return this._url.pathname}get search(){return this._url.search}get hash(){return this._url.hash}get origin(){return this._url.origin}get searchParams(){return new URLSearchParams(this._url.searchParams)}get queryObject(){return Ja(this._url.search)}_clone(){return new r(this._url.toString())}};function gf(r,e){return r.replace(/\{([^}]+)\}/g,(t,n)=>{let s=n[0],o="+#./;?&".includes(s),i=(o?n.slice(1):n).split(",");return yf(o?s:"",i,e)})}function yf(r,e,t){let n=xf(r),s=_f(r),o=Sf(r),i=Tf(r),a=r==="+"||r==="#",c=[];for(let u of e){let{name:l,explode:h,maxLength:d}=wf(u.trim()),p=t[l];if(p==null)continue;let m=bf(p,l,o,h,d,a,n,i);m!==null&&c.push(m)}return c.length===0?"":s+c.join(n)}function wf(r){if(r.endsWith("*"))return{name:r.slice(0,-1),explode:!0,maxLength:null};let e=r.lastIndexOf(":");if(e!==-1){let t=parseInt(r.slice(e+1),10);return{name:r.slice(0,e),explode:!1,maxLength:isNaN(t)?null:t}}return{name:r,explode:!1,maxLength:null}}function bf(r,e,t,n,s,o,i,a){let c=u=>o?zs(u,!0):zs(u);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean"){let u=String(r);s!==null&&(u=u.slice(0,s));let l=c(u);return t?`${e}${l===""?a:"="+l}`:l}if(Array.isArray(r)){if(r.length===0)return null;if(n)return r.map(l=>{let h=c(String(l));return t?`${e}=${h}`:h}).join(i);let u=r.map(l=>c(String(l))).join(",");return t?`${e}=${u}`:u}if(typeof r=="object"&&r!==null){let u=Object.entries(r);if(u.length===0)return null;if(n)return u.map(([h,d])=>`${c(h)}=${c(d)}`).join(i);let l=u.flatMap(([h,d])=>[c(h),c(d)]).join(",");return t?`${e}=${l}`:l}return null}function xf(r){switch(r){case".":return".";case"/":return"/";case";":return";";case"?":case"&":return"&";default:return","}}function _f(r){switch(r){case"#":return"#";case".":return".";case"/":return"/";case";":return";";case"?":return"?";case"&":return"&";default:return""}}function Sf(r){return r===";"||r==="?"||r==="&"}function Tf(r){return r===";"?"":"="}function Fa(r){return r.replace(/[.+^${}()|[\]\\]/g,"\\$&")}function Ef(r){let e=[],t=/:([A-Za-z_][A-Za-z0-9_]*)(?:\(([^)]+)\))?|\*\*|\*/g,n="",s=0;for(let i of r.matchAll(t))n+=Fa(r.slice(s,i.index)),s=i.index+i[0].length,i[1]!==void 0?(e.push({kind:"param",name:i[1]}),n+=`(${i[2]??"[^/]+"})`):i[0]==="**"?(e.push({kind:"wildcard",greedy:!0}),n+="(.+?)"):(e.push({kind:"wildcard",greedy:!1}),n+="([^/]+)");n+=Fa(r.slice(s));let o=new RegExp(`^${n}\\/?$`);return{match(i){let a=Wa(i),c=o.exec(a);if(!c)return null;let u={},l=[],h={};for(let d=0;d<e.length;d++){let p=e[d],m=c[d+1]??"";if(p.kind==="param"){let g=fe(m);u[p.name]=g,h[p.name]=g;continue}if(p.greedy)for(let g of m.split("/").filter(Boolean))l.push(fe(g));else l.push(fe(m));h[String(d+1)]=fe(m)}return{params:u,wildcards:l,groups:h}},test(i){return o.test(Wa(i))}}}function Wa(r){try{return new URL(r).pathname}catch{return r}}function qs(r){let e=Ve(r);return e?["file:","data:","blob:"].includes(e.protocol)?"null":e.origin:null}function Rf(r,e){let t=qs(r),n=qs(e);return!t||!n?!1:t===n}function kf(r,e){let t=Ve(r),n=Ve(e);return!t||!n||t.protocol!==n.protocol?!1:Ka(t.hostname)===Ka(n.hostname)}function Ka(r){let e=new Set(["co.uk","co.jp","co.kr","co.nz","co.za","co.in","com.au","com.br","com.mx","com.cn","com.tw","com.hk","com.sg","com.my","com.ph","com.vn","com.tr","net.au","net.uk","net.br","org.uk","org.au","org.nz","org.cn","org.in","ac.uk","gov.uk","gov.au","gov.cn","or.kr","pe.kr","go.jp","ne.jp","ac.jp","github.io","herokuapp.com","cloudfront.net"]),t=r.split(".");if(t.length>=3){let n=t.slice(-2).join(".");if(e.has(n))return t.slice(-3).join(".")}return t.slice(-2).join(".")}function Af(r,e){try{return new URL(r,e).toString()}catch{throw new TypeError(`Cannot resolve "${r}" against base "${e}"`)}}function Cf(r,e){try{let t=new URL(r),n=new URL(e);return t.origin!==n.origin||!t.pathname.startsWith(n.pathname)||t.pathname.length>n.pathname.length&&!n.pathname.endsWith("/")&&t.pathname[n.pathname.length]!=="/"?null:t.pathname.slice(n.pathname.length)+t.search+t.hash}catch{return null}}function Za(r){try{if(/^[A-Za-z][A-Za-z0-9+\-.]*:\/\//.test(r))return!0;let e=new URL(r);return e.protocol!==""&&e.protocol!=="file:"}catch{return!1}}function vf(r){return!Za(r)}function Pf(r){try{return new URL(r).protocol==="https:"}catch{return!1}}function Lf(r){try{let e=new URL(r).protocol;return e==="http:"||e==="https:"}catch{return!1}}function If(r){return r.trimStart().startsWith("data:")}function Of(r){return r.trimStart().startsWith("blob:")}function Mf(r){try{let e=new URL(r).hostname;return e==="localhost"||e==="127.0.0.1"||e==="::1"||e.endsWith(".localhost")}catch{return!1}}function Nf(r){if(!r.startsWith("data:"))return null;let e=r.indexOf(",");if(e===-1)return null;let t=r.slice(5,e),n=r.slice(e+1),s=t.lastIndexOf(";"),o=!1;return s!==-1&&t.slice(s+1).toLowerCase()==="base64"&&(o=!0,t=t.slice(0,s)),t=t.replace(/^;+/,""),{mediaType:t.includes("/")?t:t===""?"text/plain":`text/plain;${t}`,isBase64:o,data:n}}function Df(r,e,t=!0){if(/[,;]/.test(e))throw new Zr(`Invalid media type for a data URL: ${JSON.stringify(e)} (it must not contain "," or ";")`);return typeof r=="string"?t?`data:${e};base64,${ue(new TextEncoder().encode(r))}`:`data:${e},${encodeURIComponent(r)}`:`data:${e};base64,${ue(r)}`}function $f(r,e){let t=Ve(r),n=Ve(e);if(!t||!n)throw new TypeError(`Cannot diff invalid URLs: "${r}" vs "${e}"`);let s={addedParams:{},removedParams:{},changedParams:{}};t.protocol!==n.protocol&&(s.protocol=[t.protocol,n.protocol]),t.hostname!==n.hostname&&(s.hostname=[t.hostname,n.hostname]),t.port!==n.port&&(s.port=[t.port,n.port]),t.pathname!==n.pathname&&(s.pathname=[t.pathname,n.pathname]),t.hash!==n.hash&&(s.hash=[t.hash,n.hash]);for(let[o,i]of t.searchParams.entries()){let a=n.searchParams.get(o);a===null?s.removedParams[o]=i:a!==i&&(s.changedParams[o]=[i,a])}for(let[o,i]of n.searchParams.entries())t.searchParams.has(o)||(s.addedParams[o]=i);return t.search!==n.search&&!Object.keys(s.changedParams).length&&!Object.keys(s.addedParams).length&&!Object.keys(s.removedParams).length&&(s.search=[t.search,n.search]),s}function Ve(r){try{return new URL(r)}catch{return null}}function Uf(r){return Ke.from(r).addTrailingSlash().toString()}function Hf(r){return Ke.from(r).removeTrailingSlash().toString()}function jf(r){try{return Ke.from(r).removeHash().toString()}catch{return r}}function Bf(r){try{let e=new URL(r);return e.search="",e.toString()}catch{return r}}function zf(r){try{let t=new URL(r).pathname.split("/").pop()??"",n=t.lastIndexOf(".");return n===-1?"":t.slice(n+1).toLowerCase()}catch{return""}}function qf(r){try{let e=new URL(r).pathname;return fe(e.split("/").filter(Boolean).pop()??"")}catch{return""}}function Ff(r,...e){try{return Ke.from(r).redactParams(...e).toString()}catch{return Wf(r,e)}}function Wf(r,e){if(e.length===0)return r;let t=r.indexOf("#"),n=t===-1?r:r.slice(0,t),s=t===-1?"":r.slice(t),o=n.indexOf("?");if(o===-1)return r;let i=n.slice(0,o),a=n.slice(o+1).split("&").map(c=>{let u=c.indexOf("="),l=u===-1?c:c.slice(0,u);return e.includes(l)||e.includes(fe(l))?`${l}=REDACTED`:c});return`${i}?${a.join("&")}${s}`}Ae();U();function Kf(r={}){return new sr(r)}var Tp=Kf;export{kt as AbortError,hn as AuthError,Ms as BatchQueue,Qt as BatchingTransport,Wo as CONCURRENCY_DEFAULTS,St as CircuitBreaker,Ze as CircuitBreakerRegistry,_t as CircuitOpenError,At as CloudflareKVAdapter,it as ConcurrencyLimitError,Pt as ConcurrencyLimiter,ft as ConsoleTransport,je as ContentTypeError,qe as CookieJar,Ye as DedupMap,ut as FetchTransport,Jr as FluentRequest,he as GraphQLClient,H as GraphQLClientError,Pi as HAS_NATIVE_FETCH,we as HTTPCache,Xr as HTTPError,Fe as HTTPLogger,at as HTTPResponseError,Rt as HTTPStatusError,S as HeaderName,Qr as HookEmitter,$s as HookRegistry,xe as HttpHeaders,ze as IS_NODE,br as InterceptorManager,Jt as JSONTransport,sr as Kinetex,x as KinetexError,Vt as LogLevel,De as MemoryStorageAdapter,un as MultiPartProgressAggregator,Xt as MultiTransport,J as NetworkError,$t as NodeHTTP2Transport,G as ProgressTracker,fn as ProxyError,ve as RUNTIME,vt as RateLimitError,Yt as Redactor,Ne as RedirectError,Us as RedirectTracker,Gt as RemoteTransport,ct as ResponseDecodeError,He as ResponseSizeLimitError,Yr as ResponseValidationError,Ue as RichHeaders,dt as SSEClient,Ee as SSEError,pt as SSEMaxReconnectsError,We as SSEParser,qr as SSERouter,Zt as SSEServerResponse,zr as SSETransformStream,Se as SigV4Signer,Et as SizeLimitError,O as Socks5Error,te as TimeoutError,Gr as TooManyRedirectsError,Ct as TwoTierStorageAdapter,Ke as URLBuilder,ee as ValidationError,et as WSClient,Tt as WSConnectTimeoutError,K as WSError,fr as WSMaxReconnectsError,ln as WSRateLimitError,rt as WebStorageAdapter,Cr as applyDecompression,pi as assertOk,mi as assertOkJSON,ia as authLink,Df as buildDataURL,Jo as cachingCredentials,Te as canonicalizeDomainFull,Mu as chainCredentials,fa as clearAPQCache,ma as collectAll,ga as collectPages,Oc as collectStream,Ef as compilePattern,$h as composeAround,Nh as composeBeforeRequest,Dh as composeBeforeResponse,Un as computeBodySize,Fn as computeDigestResponse,Wn as computeUsernameStar,cr as concatUint8Arrays,zc as connectWS,yu as corsHeaders,Vu as createAPIGatewaySigner,Bh as createAbortHook,jo as createAuthInterceptor,jh as createBodyNormalizationHook,qo as createCacheInterceptor,Hc as createCircuitBreaker,jc as createCircuitBreakerRegistry,hs as createCookieJar,xa as createCursorPaginator,Uc as createDedupMap,Fo as createDedupeInterceptor,Qi as createDevelopmentLogger,Xu as createDigestAuthorization,Qu as createDynamoDBSigner,la as createGraphQLClient,Ko as createHARInterceptor,wu as createHeaders,zh as createHookContext,_u as createImmutableHeaders,Lu as createInterceptorSuite,Zi as createJSONSSEStream,ho as createKVCache,Ea as createKeysetPaginator,xi as createLimitedReader,Sa as createLinkHeaderPaginator,uo as createLocalStorageCache,Vi as createLogger,Uh as createLoggingHooks,zo as createLoggingInterceptor,co as createMemoryCache,Ah as createMethodCircuitBreakerKey,Vo as createMetricsInterceptor,wa as createOffsetPaginator,ba as createPagePaginator,Ji as createProductionLogger,xr as createRateLimitInterceptor,_a as createRelayPaginator,bu as createRequestHeaders,xu as createResponseHeaders,Ho as createRetryInterceptor,Ku as createS3Signer,ea as createSSEResponse,Yi as createSSEStream,Ju as createSTSSigner,lo as createSessionStorageCache,qa as createSocks5Tunnel,Tc as createStructuredError,Bo as createTimeoutInterceptor,Hh as createTimingHook,Ta as createTokenPaginator,Or as createTransport,fo as createTwoTierCache,Ar as decodeBody,Bt as decodeIDNLabel,Nr as decompressBodyStream,Qn as decompressStream,wt as deepClone,Tp as default,qt as defaultPath,nf as denoTcpConnector,Ot as deriveSigningKey,ka as deserializePaginationState,ei as detectClockSkew,_s as detectOperationType,ns as detectRuntime,gi as diffResponses,$f as diffURLs,zt as domainMatch,Va as encodePathComponent,yt as encodeQueryValue,Ou as envCredentials,aa as errorLink,gf as expandTemplate,Oe as extractOperationName,wi as extractServerTiming,Kt as extractSetCookieHeaders,Ya as fillPathParams,_r as formatAmzDate,ru as formatBasic,tu as formatBearer,lr as formatBytes,An as formatCSP,Eo as formatCacheControl,So as formatContentDisposition,xo as formatContentType,It as formatDateStamp,Kn as formatDigestAuth,Zs as formatETA,Ec as formatError,kn as formatHSTS,ou as formatLinkHeader,Nc as formatProgress,Ys as formatRate,fu as formatServerTiming,du as fromNodeHeaders,mu as fromWebHeaders,Cn as generateIdempotencyKey,da as getAPQMetrics,nt as getAuthFingerprint,Po as getClientIP,vi as getEffectiveRuntime,qs as getOrigin,Ur as getPublicSuffix,us as getRegistrableDomain,cn as getRuntime,ha as gql,vc as hasNativeFetch,$u as imdsCredentials,Yo as initChunkedSigning,Lh as injectHeaders,an as isAbortError,mc as isAbortSignal,Za as isAbsolute,fc as isArrayBuffer,ui as isBinary,wc as isBlob,Of as isBlobURL,Cc as isBrowserEnvironment,ti as isClockSkewError,If as isDataURL,yc as isFormData,Lf as isHTTP,Pf as isHTTPS,pc as isHeaders,Pe as isIPAddress,Rr as isJSON,Mf as isLocalhost,Ac as isNodeEnvironment,gc as isPlainObject,Le as isPublicSuffix,dc as isReadableStream,vf as isRelative,ae as isSafeURL,Rf as isSameOrigin,kf as isSameSite,Jn as isText,bc as isURLSearchParams,hc as isUint8Array,ke as isValidHeaderName,me as isValidHeaderValue,vn as isValidIdempotencyKey,Qa as joinPath,gs as jsonSSE,Kf as kinetex,fs as loadCookieJar,ca as loggingLink,Ca as mergePaginators,lf as mergeQuery,on as mergeSignals,su as negotiateContentType,sf as nodeTcpConnector,En as normalizeForwardedHeaders,xt as normalizeHeaders,Xa as normalizePath,ci as normalizeResponse,mf as normalizeURL,ff as omitQuery,Q as paginate,Rs as paginateItems,Tn as parseAccept,Ro as parseAcceptEncoding,ko as parseAcceptLanguage,Mo as parseAltSvc,bn as parseAuthorization,Ht as parseBody,Io as parseCSP,To as parseCacheControl,_o as parseContentDisposition,nu as parseContentLanguage,Co as parseContentRange,Be as parseContentType,$r as parseCookieDate,Nf as parseDataURL,qn as parseDigestChallenge,vo as parseForwarded,Lo as parseHSTS,_n as parseLinkHeader,ks as parseLinkHeaderNext,es as parseMultipartResponse,re as parseParams,Ja as parseQuery,Ao as parseRange,wr as parseRetryAfter,ta as parseSSEText,Oo as parseServerTiming,Wt as parseSetCookieHeader,tf as parseSocks5Url,lc as parseUntrustedJSON,xn as parseWWWAuthenticate,hu as parseWarning,Ft as pathMatch,df as pathSegments,fe as percentDecode,zs as percentEncode,N as perfNow,hf as pickQuery,Xo as presignRequest,Yn as readBlob,Er as readBodyWithLimit,vr as readBytes,yi as readFormData,Gn as readJSON,di as readJSONStream,Zn as readNDJSON,Mr as readRawBody,Nt as readStream,Xn as readText,Ff as redactURL,Cf as relativeURL,Af as resolveURL,ua as retryLink,Re as safeJSONParse,Ve as safeParseURL,$ as sanitizeParsedJSON,Rc as sanitizeURL,gu as securityHeaders,Ut as sendWithTimeout,Ra as serializePaginationState,Ci as setRuntime,Qo as sigV4UriEncode,qu as signChunk,Fu as signFinalChunk,zn as signRequest,Zo as signS3PostPolicy,Me as sleep,of as socks5Connector,ht as splitSetCookieHeaders,Iu as staticCredentials,Ic as streamWithProgress,uf as stringifyQuery,jf as stripHash,Bf as stripQuery,ya as takeItems,Ph as tap,Dc as throttleProgress,Oh as throwOnHTTPError,pu as toNodeHeaders,Ki as toOTelSpan,Aa as toPaginationIterator,no as toRequestId,kc as toUint8Array,uc as tryParseJSON,ue as uint8ArrayToBase64,zf as urlExtension,qf as urlFilename,Fc as validateErrorCode,Mh as validateResponse,Ih as withBaseURL,Pc as withBlobUploadProgress,Lc as withDownloadProgress,Uf as withTrailingSlash,hr as withUploadProgress,Hf as withoutTrailingSlash,Mc as xhrFetch};
|