kinetex 1.2.0 → 1.4.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.
Files changed (126) hide show
  1. package/README.md +1164 -453
  2. package/dist/browser/kinetex.esm.js +38 -22
  3. package/dist/browser/kinetex.js +3127 -715
  4. package/dist/browser/kinetex.min.js +38 -22
  5. package/dist/cjs/aws-sigv4.js +137 -20
  6. package/dist/cjs/cache.js +101 -21
  7. package/dist/cjs/circuit-breaker.js +69 -7
  8. package/dist/cjs/client.js +838 -191
  9. package/dist/cjs/cookie-parser.js +110 -9
  10. package/dist/cjs/cookie-store.js +141 -36
  11. package/dist/cjs/core.js +501 -63
  12. package/dist/cjs/dedup.js +58 -18
  13. package/dist/cjs/digest.js +185 -23
  14. package/dist/cjs/graphql.js +164 -24
  15. package/dist/cjs/headers.js +362 -48
  16. package/dist/cjs/interceptors.js +285 -29
  17. package/dist/cjs/lifecycle.js +89 -40
  18. package/dist/cjs/logging.js +169 -16
  19. package/dist/cjs/mod.js +3 -2
  20. package/dist/cjs/pagination.js +261 -28
  21. package/dist/cjs/progress.js +282 -52
  22. package/dist/cjs/proxy.js +412 -0
  23. package/dist/cjs/response.js +316 -47
  24. package/dist/cjs/socks5.js +167 -36
  25. package/dist/cjs/sse.js +201 -34
  26. package/dist/cjs/url.js +191 -45
  27. package/dist/cjs/utils.js +222 -48
  28. package/dist/cjs/worker.js +6 -6
  29. package/dist/cjs/ws.js +32 -16
  30. package/dist/esm/aws-sigv4.js +137 -20
  31. package/dist/esm/aws-sigv4.js.map +1 -1
  32. package/dist/esm/cache.js +101 -21
  33. package/dist/esm/cache.js.map +1 -1
  34. package/dist/esm/circuit-breaker.js +69 -7
  35. package/dist/esm/circuit-breaker.js.map +1 -1
  36. package/dist/esm/client.js +838 -191
  37. package/dist/esm/client.js.map +1 -1
  38. package/dist/esm/cookie-parser.js +110 -9
  39. package/dist/esm/cookie-parser.js.map +1 -1
  40. package/dist/esm/cookie-store.js +141 -36
  41. package/dist/esm/cookie-store.js.map +1 -1
  42. package/dist/esm/core.js +501 -63
  43. package/dist/esm/core.js.map +1 -1
  44. package/dist/esm/dedup.js +58 -18
  45. package/dist/esm/dedup.js.map +1 -1
  46. package/dist/esm/digest.js +185 -23
  47. package/dist/esm/digest.js.map +1 -1
  48. package/dist/esm/graphql.js +164 -24
  49. package/dist/esm/graphql.js.map +1 -1
  50. package/dist/esm/headers.js +362 -48
  51. package/dist/esm/headers.js.map +1 -1
  52. package/dist/esm/interceptors.js +285 -29
  53. package/dist/esm/interceptors.js.map +1 -1
  54. package/dist/esm/lifecycle.js +89 -40
  55. package/dist/esm/lifecycle.js.map +1 -1
  56. package/dist/esm/logging.js +169 -16
  57. package/dist/esm/logging.js.map +1 -1
  58. package/dist/esm/mod.js +3 -2
  59. package/dist/esm/mod.js.map +1 -1
  60. package/dist/esm/pagination.js +261 -28
  61. package/dist/esm/pagination.js.map +1 -1
  62. package/dist/esm/progress.js +282 -52
  63. package/dist/esm/progress.js.map +1 -1
  64. package/dist/esm/proxy.js +413 -0
  65. package/dist/esm/proxy.js.map +1 -0
  66. package/dist/esm/response.js +316 -47
  67. package/dist/esm/response.js.map +1 -1
  68. package/dist/esm/socks5.js +167 -36
  69. package/dist/esm/socks5.js.map +1 -1
  70. package/dist/esm/sse.js +201 -34
  71. package/dist/esm/sse.js.map +1 -1
  72. package/dist/esm/types.js.map +1 -1
  73. package/dist/esm/url.js +191 -45
  74. package/dist/esm/url.js.map +1 -1
  75. package/dist/esm/utils.js +222 -48
  76. package/dist/esm/utils.js.map +1 -1
  77. package/dist/esm/worker.js +6 -6
  78. package/dist/esm/worker.js.map +1 -1
  79. package/dist/esm/ws.js +32 -16
  80. package/dist/esm/ws.js.map +1 -1
  81. package/dist/types/aws-sigv4.d.ts.map +1 -1
  82. package/dist/types/cache.d.ts +27 -2
  83. package/dist/types/cache.d.ts.map +1 -1
  84. package/dist/types/circuit-breaker.d.ts +14 -1
  85. package/dist/types/circuit-breaker.d.ts.map +1 -1
  86. package/dist/types/client.d.ts +98 -23
  87. package/dist/types/client.d.ts.map +1 -1
  88. package/dist/types/cookie-parser.d.ts +0 -17
  89. package/dist/types/cookie-parser.d.ts.map +1 -1
  90. package/dist/types/cookie-store.d.ts.map +1 -1
  91. package/dist/types/core.d.ts +109 -25
  92. package/dist/types/core.d.ts.map +1 -1
  93. package/dist/types/dedup.d.ts +0 -7
  94. package/dist/types/dedup.d.ts.map +1 -1
  95. package/dist/types/digest.d.ts +31 -37
  96. package/dist/types/digest.d.ts.map +1 -1
  97. package/dist/types/graphql.d.ts.map +1 -1
  98. package/dist/types/headers.d.ts +62 -29
  99. package/dist/types/headers.d.ts.map +1 -1
  100. package/dist/types/interceptors.d.ts +102 -0
  101. package/dist/types/interceptors.d.ts.map +1 -1
  102. package/dist/types/lifecycle.d.ts +19 -2
  103. package/dist/types/lifecycle.d.ts.map +1 -1
  104. package/dist/types/logging.d.ts +23 -4
  105. package/dist/types/logging.d.ts.map +1 -1
  106. package/dist/types/mod.d.ts +5 -3
  107. package/dist/types/mod.d.ts.map +1 -1
  108. package/dist/types/pagination.d.ts +0 -25
  109. package/dist/types/pagination.d.ts.map +1 -1
  110. package/dist/types/progress.d.ts +1 -1
  111. package/dist/types/progress.d.ts.map +1 -1
  112. package/dist/types/proxy.d.ts +50 -0
  113. package/dist/types/proxy.d.ts.map +1 -0
  114. package/dist/types/response.d.ts +7 -1
  115. package/dist/types/response.d.ts.map +1 -1
  116. package/dist/types/socks5.d.ts.map +1 -1
  117. package/dist/types/sse.d.ts.map +1 -1
  118. package/dist/types/types.d.ts +139 -5
  119. package/dist/types/types.d.ts.map +1 -1
  120. package/dist/types/url.d.ts +0 -14
  121. package/dist/types/url.d.ts.map +1 -1
  122. package/dist/types/utils.d.ts.map +1 -1
  123. package/dist/types/worker.d.ts +6 -6
  124. package/dist/types/worker.d.ts.map +1 -1
  125. package/dist/types/ws.d.ts.map +1 -1
  126. package/package.json +2 -2
@@ -1,20 +1,36 @@
1
- /* kinetex v1.2.0 | MIT | https://github.com/kinetexjs/kinetex */
2
- var is=Object.defineProperty;var as=r=>{throw TypeError(r)};var Ji=(r,e,t)=>e in r?is(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var B=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(n){throw t=[n],n}};var de=(r,e)=>{for(var t in e)is(r,t,{get:e[t],enumerable:!0})};var h=(r,e,t)=>Ji(r,typeof e!="symbol"?e+"":e,t),Qi=(r,e,t)=>e.has(r)||as("Cannot "+t);var cs=(r,e,t)=>e.has(r)?as("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var re=(r,e,t)=>(Qi(r,e,"access private method"),t);function ia(){if(qt)return qt;let r=globalThis;if(r.process?.hrtime)return qt=r.process,qt}function aa(){if(Bt)return Bt;let r=globalThis;if(r.Buffer&&typeof r.Buffer.isBuffer=="function")return Bt=r.Buffer,Bt}function pe(r,e={}){let t={...ca,...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 vr(i,t,0)?!t.allowNonFinite&&Pr(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 vr(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=>vr(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=>vr(r[s],e,t+1))}return!0}function Pr(r){return typeof r=="number"&&!Number.isFinite(r)?!0:Array.isArray(r)?r.some(Pr):typeof r=="object"&&r!==null?Object.values(r).some(Pr):!1}function la(r){let e=pe(r);return e.success?e.value:r}function O(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r)){for(let t=0;t<r.length;t++)r[t]=O(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}O(e[t])}return r}function ua(r){return pe(r,{maxDepth:16,maxStringLength:1*1024*1024,maxArrayLength:1e3,maxObjectKeys:100})}function ha(r){return r instanceof Uint8Array}function fa(r){return r instanceof ArrayBuffer}function da(r){return r!==null&&typeof r=="object"&&"getReader"in r&&typeof r.getReader=="function"}function pa(r){return r!==null&&typeof r=="object"&&"forEach"in r&&typeof r.forEach=="function"}function ma(r){return r!==null&&typeof r=="object"&&"aborted"in r&&typeof r.aborted=="boolean"}function ga(r){return r!==null&&typeof r=="object"&&Object.prototype.toString.call(r)==="[object Object]"}function ya(r){return r!==null&&typeof r=="object"&&r.constructor?.name==="FormData"}function wa(r){return r!==null&&typeof r=="object"&&r.constructor?.name==="Blob"}function ba(r){return r!==null&&typeof r=="object"&&"has"in r&&typeof r.has=="function"}function De(r){return typeof r!="string"||r.length===0||r.length>4096?!1:xa.test(r)}function be(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 st(r){return Sa.some(([e,t])=>r>=e&&r<=t)}function Cr(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 ds(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=Cr(t[0]);return i===null||i>4294967295?null:i>>>0}let n=[];for(let i=0;i<t.length-1;i++){let a=Cr(t[i]);if(a===null||a>255)return null;n.push(a)}let s=Cr(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 Ea(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 l=i[c];if(l==="")return null;if(l.includes(".")){if(c!==i.length-1)return null;let u=ds(l);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(l))return null;let u=parseInt(l,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 Ta(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)?st(e(12)):r[0]===32&&r[1]===2?st(e(2)):!1}function Ne(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)||_a.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=Ea(s);if(i===null||Ta(i))return!1}else{let i=ds(s);if(i!==null&&st(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 ot(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map(t=>ot(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,ot(n))),t}if(r instanceof Set){let t=new Set;return r.forEach(n=>t.add(ot(n))),t}let e={};for(let t in r)t==="__proto__"||t==="constructor"||t==="prototype"||Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=ot(r[t]));return e}function Ra(r,e){let t=new Error(r);return Object.assign(t,e),t}function ka(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 Aa(r){if(typeof r!="string"||r.length>2048)return null;try{let e=new URL(r);return Ne(e)?(e.username="",e.password="",e.toString()):null}catch{return null}}function Ca(){let r=ia();if(r?.hrtime){let[t,n]=r.hrtime();return t*1e3+n/1e6}return typeof globalThis.Bun<"u",Date.now()}function va(r,e){return e?.aborted?Promise.reject(Ir()):new Promise((t,n)=>{let s=()=>{clearTimeout(o),n(Ir())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e&&e.addEventListener("abort",s,{once:!0})})}function Lr(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 Pa(r){if(r instanceof Uint8Array)return r.slice();if(r instanceof ArrayBuffer)return new Uint8Array(r);let e=aa();return e&&e.isBuffer(r)?new Uint8Array(r):typeof r=="string"?new TextEncoder().encode(r):null}function Ft(r){if(r.byteLength<=24576){let n="";for(let s=0;s<r.byteLength;s++)n+=String.fromCharCode(r[s]);return btoa(n)}let t=[];for(let n=0;n<r.byteLength;n+=24576){let s=r.subarray(n,n+24576),o="";for(let i=0;i<s.byteLength;i++)o+=String.fromCharCode(s[i]);t.push(btoa(o))}return t.map((n,s)=>s<t.length-1?n.replace(/=+$/,""):n).join("")}function Mr(...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(Ir())};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 Or(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 Ue(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 Ir(){if(typeof DOMException<"u")return new DOMException("Aborted","AbortError");let r=new Error("Aborted");return r.name="AbortError",r}function Dr(){if(ne)return ne;try{if(globalThis.process?.versions?.node)return ne="node",ne}catch{}return typeof globalThis.Deno<"u"?ne="deno":typeof globalThis.Bun<"u"?ne="bun":typeof window<"u"?ne="browser":typeof globalThis<"u"&&typeof globalThis.fetch=="function"?ne="edge":ne="unknown",ne}function Ia(){return Dr()==="node"}function La(){return Dr()==="browser"}function Ma(){return typeof globalThis?.fetch=="function"}function it(r){let e={};return r.forEach((t,n)=>{e[n.toLowerCase()]=t}),e}var qt,Bt,ca,xa,_a,Sa,ne,z=B(()=>{"use strict";ca={maxDepth:32,maxStringLength:10*1024*1024,maxArrayLength:1e4,maxObjectKeys:1e3,allowNonFinite:!1};xa=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;_a=new Set(["file","ftp","gopher","data","javascript","dict","ldap","ldaps","rlogin","telnet","tn3270","imap","pop","smtp","nntp","news","ssh","git","svn","webcal","urn"]),Sa=[[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]];ne=null});function ps(r){return r}function Na(r){if(typeof r=="string"){for(let e of Da)if(e===r)return e}}var Da,S,ct,lt,Ur,se,G,$r,Hr,jr,X,xe=B(()=>{"use strict";Da=["ENETWORK","ETIMEOUT","EABORT","EHTTPSTATUS","ESIZELIMIT","EPARSE","EVALIDATION","EAUTH","EPROXY","EREDIRECT","EUNKNOWN"];S=class extends Error{constructor(t,n,s){super(t);h(this,"code");h(this,"request");h(this,"response");h(this,"cause");this.name="KinetexError",this.code=n,s?.request!==void 0&&(this.request=s.request),s?.response!==void 0&&(this.response=s.response),s?.cause!==void 0&&(this.cause=s.cause)}get isNetwork(){return this.code==="ENETWORK"}get isProxy(){return this.code==="EPROXY"}get isTimeout(){return this.code==="ETIMEOUT"}get isAbort(){return this.code==="EABORT"}get isHTTPError(){return this.code==="EHTTPSTATUS"}get status(){return this.response?.status??null}},ct=class extends S{constructor(t,n,s){super(`Response size limit exceeded: ${t} bytes read, limit is ${n} bytes`,"ESIZELIMIT",s!==void 0?{request:s}:{});h(this,"bytesRead");h(this,"limit");this.bytesRead=t,this.limit=n,this.name="SizeLimitError"}},lt=class extends S{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}},Ur=class extends S{constructor(e){super("Request was aborted","EABORT",e!==void 0?{request:e}:{}),this.name="AbortError"}},se=class extends S{constructor(e,t){super(e,"ENETWORK",t!==void 0?{request:t}:{}),this.name="NetworkError"}},G=class extends S{constructor(e,t){super(e,"EVALIDATION",t!==void 0?{request:t}:{}),this.name="ValidationError"}},$r=class extends S{constructor(e,t){super(e,"EAUTH",t!==void 0?{request:t}:{}),this.name="AuthError"}},Hr=class extends S{constructor(e,t){super(e,"EPROXY",t!==void 0?{request:t}:{}),this.name="ProxyError"}},jr=class extends S{constructor(e,t){super(e,"EREDIRECT",t!==void 0?{request:t}:{}),this.name="RedirectError"}},X=class extends S{constructor(t,n){super(`Request timed out after ${t}ms`,"ETIMEOUT",n!==void 0?{request:n}:{});h(this,"timeoutMs");this.timeoutMs=t,this.name="TimeoutError"}}});var Es={};de(Es,{CloudflareKVAdapter:()=>ut,HTTPCache:()=>ae,MemoryStorageAdapter:()=>_e,TwoTierStorageAdapter:()=>ht,WebStorageAdapter:()=>je,createKVCache:()=>_s,createLocalStorageCache:()=>bs,createMemoryCache:()=>ws,createSessionStorageCache:()=>xs,createTwoTierCache:()=>Ss,getAuthFingerprint:()=>ze});function Ua(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 ms(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 He(r){let e=["\0-","\x7F-\x9F"].join(""),t=new RegExp(`[${e}]`,"g");return r.replaceAll(t,"").replaceAll(/\s+/g," ").trim()}async function ze(r){let e=["authorization","cookie","x-api-key","x-auth-token"],t=[];for(let i of e){let a=r[i.toLowerCase()];a&&t.push(`${i}=${a}`)}if(t.length===0)return"";let n=new TextEncoder().encode(t.join("|")),s=await crypto.subtle.digest("SHA-256",n);return`auth:${Array.from(new Uint8Array(s)).map(i=>i.toString(16).padStart(2,"0")).join("").slice(0,32)}`}async function $a(r){try{let e=new URL(r.url),t=He(e.hostname),n=He(e.pathname);e.searchParams.sort();let s=He(e.search);e.hash="";let o=`${e.protocol}//${t}${e.port?":"+e.port:""}${n}${s}`,i=He(r.method.toUpperCase()),a=await ze(r.headers??{}),c=`${i}:${o}`;return a?`${c}:${a}`:c}catch{let e=He(r.method.toUpperCase()),t=He(r.url),n=await ze(r.headers??{}),s=`${e}:${t}`;return n?`${s}:${n}`:s}}function gs(r,e,t){let n=r.headers["cache-control"]??r.headers["Cache-Control"]??"",s=Ua(n);if(t&&s.noStore)return{ttlMs:0,swrMs:0,staleOnError:0,shouldCache:!1};let o=s.sMaxAge??s.maxAge,i;if(o!==null){let l=parseInt(r.headers.age??r.headers.Age??"0",10)||0;i=Math.max(0,(o-l)*1e3)}else{let l=r.headers.expires??r.headers.Expires;if(l){let u=Date.parse(l);i=isNaN(u)?e:Math.max(0,u-Date.now())}else{let u=r.headers["last-modified"]??r.headers["Last-Modified"];if(u){let f=Date.parse(u);isNaN(f)?i=e:i=Math.min((Date.now()-f)*.1,e)}else i=e}}s.immutable&&i>0&&(i=365*24*60*60*1e3);let a=s.staleWhileRevalidate!==null?s.staleWhileRevalidate*1e3:0,c=s.staleIfError!==null?s.staleIfError*1e3:0;return{ttlMs:i,swrMs:a,staleOnError:c,shouldCache:i>0||a>0}}function Kt(r){return{...r,response:ys(r.response),tags:[...r.tags]}}function ys(r){return{...r,headers:{...r.headers},body:r.body instanceof Uint8Array?new Uint8Array(r.body):r.body}}function Ha(r){return r?typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength:0}function ws(r){return new ae({...r,storage:new _e})}function bs(r,e){if(typeof localStorage>"u")throw new Error("localStorage is not available");return new ae({...e,storage:new je(localStorage,r)})}function xs(r,e){if(typeof sessionStorage>"u")throw new Error("sessionStorage is not available");return new ae({...e,storage:new je(sessionStorage,r)})}function _s(r,e){return new ae({...e,storage:new ut(r)})}function Ss(r,e){return new ae({...e,storage:new ht(r)})}var _e,je,ut,ht,zr,qr,ae,ft=B(()=>{"use strict";z();_e=class{constructor(){h(this,"store",new Map)}get(e){return Promise.resolve(this.store.get(e)??null)}set(e,t){return this.store.set(e,t),Promise.resolve()}delete(e){return this.store.delete(e),Promise.resolve()}keys(){return Promise.resolve(Array.from(this.store.keys()))}clear(){return this.store.clear(),Promise.resolve()}get size(){return this.store.size}},je=class{constructor(e,t="hc:"){h(this,"storage");h(this,"prefix");this.storage=e,this.prefix=t}get(e){try{let t=this.storage.getItem(this.prefix+e);if(!t)return Promise.resolve(null);let n=pe(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()}},ut=class{constructor(e,t="hc:"){h(this,"kv");h(this,"prefix");this.kv=e,this.prefix=t}async get(e){return await this.kv.get(this.prefix+e,"json")}async set(e,t){let n=t.expiresAt===1/0?void 0:Math.max(1,Math.ceil((t.expiresAt-Date.now())/1e3));await this.kv.put(this.prefix+e,JSON.stringify(t),{...n!==void 0?{expirationTtl:n}:{}})}async delete(e){await this.kv.delete(this.prefix+e)}async keys(){return(await this.kv.list({prefix:this.prefix})).keys.map(t=>t.name.slice(this.prefix.length))}async clear(){let e=await this.keys();await Promise.all(e.map(t=>this.kv.delete(this.prefix+t)))}},ht=class{constructor(e){h(this,"l2");h(this,"l1",new _e);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()])}};zr=class{constructor(e,t=null,n=null){h(this,"key");h(this,"prev");h(this,"next");this.key=e,this.prev=t,this.next=n}},qr=class{constructor(){h(this,"map",new Map);h(this,"head",null);h(this,"tail",null)}touch(e){let t=this.map.get(e);if(t)this._unlink(t),this._prepend(t);else{let n=new zr(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}},ae=class{constructor(e={}){h(this,"cfg");h(this,"storage");h(this,"lru",new qr);h(this,"tagIndex",new Map);h(this,"swrInFlight",new Set);h(this,"stats",{hits:0,misses:0,staleHits:0,errors:0,evictions:0,totalEntries:0,totalSizeBytes:0,hitRate:0});this.cfg={maxEntries:e.maxEntries??500,maxSizeBytes:e.maxSizeBytes??50*1024*1024,maxBodySizeBytes:e.maxBodySizeBytes??5*1024*1024,defaultTtlMs:e.defaultTtlMs??6e4,maxAbsoluteAgeMs:e.maxAbsoluteAgeMs??10080*60*1e3,honorCacheControl:e.honorCacheControl??!0,cacheMethods:e.cacheMethods??["GET","HEAD"],cacheStatuses:e.cacheStatuses??[200,203,204,206,300,301,304,404,405,410,414,501],cacheKey:e.cacheKey??$a,storage:e.storage??new _e,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=ms(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:Kt(n),stale:!1}):n.staleUntil>s?(this.stats.staleHits++,this.lru.touch(t),this._updateHitRate(),{entry:Kt(n),stale:!0}):n.staleOnError>s?(this.stats.staleHits++,this._updateHitRate(),{entry:Kt(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}:gs(t,this.cfg.defaultTtlMs,this.cfg.honorCacheControl);if(!a&&!n.force)return!1;let c=Ha(t.body);if(c>this.cfg.maxBodySizeBytes)return!1;let l=Date.now(),u=this.cfg.maxAbsoluteAgeMs,f=Math.min(s===1/0?u:s,u);if(f<=0&&!n.force)return!1;let p=t.headers.vary??t.headers.Vary??null,d=p?ms(p,e.headers):"";if(d===null)return!1;let g=n.tags??[],m={response:ys(t),createdAt:l,expiresAt:f===1/0?1/0:l+f,staleUntil:l+f+o,staleOnError:l+f+i,etag:t.headers.etag??t.headers.ETag??null,lastModified:t.headers["last-modified"]??t.headers["Last-Modified"]??null,varyKey:d,tags:g,size:c+256},y=await this._key(e);if(await this._ensureCapacity(m.size),await this.storage.set(y,m)===!1)return!1;this.lru.touch(y),this.stats.totalEntries++,this.stats.totalSizeBytes+=m.size;for(let x of g){let E=this.tagIndex.get(x)??new Set;E.add(y),this.tagIndex.set(x,E)}return!0}buildConditionalHeaders(e){let t={};return e.etag&&(t["if-none-match"]=e.etag),e.lastModified&&(t["if-modified-since"]=e.lastModified),t}async revalidate(e,t){let n=await this._key(e),s=await this.storage.get(n);if(!s)return null;let o={...s.response.headers,...t.headers},i={...s.response,headers:o},{ttlMs:a,swrMs:c,staleOnError:l}=gs(i,this.cfg.defaultTtlMs,this.cfg.honorCacheControl),u=Date.now(),f=Math.min(a===1/0?this.cfg.maxAbsoluteAgeMs:a,this.cfg.maxAbsoluteAgeMs),p={...s,response:i,createdAt:u,expiresAt:f<=0?u:u+f,staleUntil:u+f+c,staleOnError:u+f+l,etag:o.etag??o.ETag??s.etag,lastModified:o["last-modified"]??o["Last-Modified"]??s.lastModified};return await this.storage.set(n,p),this.lru.touch(n),Kt(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),c=a.lastIndexOf(":auth:"),l=c!==-1?a.slice(0,c):a,u=e.endsWith("/")?e.slice(0,-1):e;if((l.endsWith("/")?l.slice(0,-1):l).startsWith(u)){let 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=pe(e,{maxDepth:32});if(!t.success)throw new Error("[kinetex] HTTPCache.deserialize: invalid JSON");let n=t.value;if(typeof n!="object"||n===null||!("version"in n)||!("entries"in n)||n.version!==1||!Array.isArray(n.entries))throw new Error("[kinetex] HTTPCache.deserialize: unexpected format (expected {version:1, entries:[\u2026]})");let{entries:s}=n,o=Date.now();for(let i of s){if(!Array.isArray(i)||i.length!==2)continue;let[a,c]=i;if(typeof a!="string"||a.length===0||a.length>2048)continue;let l=null;try{typeof c=="object"&&c!==null&&typeof c.createdAt=="number"&&typeof c.expiresAt=="number"&&typeof c.staleUntil=="number"&&typeof c.staleOnError=="number"&&typeof c.size=="number"&&Array.isArray(c.tags)&&c.tags.every(p=>typeof p=="string")&&(l=c)}catch{}if(!l)continue;let u=c;if(!(u.expiresAt!==1/0&&u.expiresAt<o)&&!(o-u.createdAt>this.cfg.maxAbsoluteAgeMs)&&!(u.size>this.cfg.maxBodySizeBytes+512)){await this.storage.set(a,u),this.lru.touch(a),this.stats.totalEntries++,this.stats.totalSizeBytes+=u.size;for(let f of u.tags){let p=this.tagIndex.get(f)??new Set;p.add(a),this.tagIndex.set(f,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)}}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 wc(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 Qs(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 Z(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 Yt(r){return r.split(",").map(e=>{let t=e.trim().split(";"),n=(t[0]??"").trim(),s=1,o=new Map;for(let i=1;i<t.length;i++){let a=t[i].trim(),c=a.indexOf("=");if(c===-1)continue;let l=a.slice(0,c).trim().toLowerCase(),u=a.slice(c+1).trim();l==="q"?s=parseFloat(u)||0:o.set(l,u)}return{value:n,quality:s,params:o}}).filter(e=>e.value!=="").sort((e,t)=>t.quality-e.quality)}function xc(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 hn(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:Z(r.slice(e));return{mediaType:`${s}/${o}`,type:s,subtype:o,charset:a.get("charset")??null,boundary:a.get("boundary")??null,params:a}}function Zs(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 eo(r){if(!r)return null;let e=r.indexOf(";"),t=(e===-1?r:r.slice(0,e)).trim().toLowerCase(),n=e===-1?new Map:Z(r.slice(e)),s=null,o=n.get("filename*");o&&(s=xc(o)),s===null&&(s=n.get("filename")??null);let i=n.get("name")??null;return{type:t,filename:s,name:i,params:n}}function to(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 ro(r){let e={noCache:!1,noStore:!1,noTransform:!1,onlyIfCached:!1,maxAge:null,maxStale:null,minFresh:null,staleIfError:null,public:!1,private:!1,mustRevalidate:!1,proxyRevalidate:!1,sMaxAge:null,immutable:!1,mustUnderstand:!1,staleWhileRevalidate:null,unknown:new Map};for(let t of r.split(",")){let n=t.trim(),s=n.indexOf("="),o=(s===-1?n:n.slice(0,s)).trim().toLowerCase(),i=s===-1?null:n.slice(s+1).trim().replace(/^"|"$/g,""),a=i!==null?parseInt(i,10):null;switch(o){case"no-cache":e.noCache=!0;break;case"no-store":e.noStore=!0;break;case"no-transform":e.noTransform=!0;break;case"only-if-cached":e.onlyIfCached=!0;break;case"public":e.public=!0;break;case"must-revalidate":e.mustRevalidate=!0;break;case"proxy-revalidate":e.proxyRevalidate=!0;break;case"immutable":e.immutable=!0;break;case"must-understand":e.mustUnderstand=!0;break;case"max-age":e.maxAge=a;break;case"max-stale":e.maxStale=a??1/0;break;case"min-fresh":e.minFresh=a;break;case"s-maxage":e.sMaxAge=a;break;case"stale-if-error":e.staleIfError=a;break;case"stale-while-revalidate":e.staleWhileRevalidate=a;break;case"private":e.private=i?i.split(",").map(c=>c.trim()):!0;break;default:e.unknown.set(o,i??!0)}}return e}function no(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 on(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=wc(n),c=a.indexOf(":");c!==-1&&(i={username:a.slice(0,c),password:a.slice(c+1)})}catch{}}else if(t==="bearer"||t==="token")o=n;else if(n.includes("="))for(let a of n.split(",")){let c=a.trim(),l=c.indexOf("=");if(l===-1)continue;let u=c.slice(0,l).trim().toLowerCase(),f=c.slice(l+1).trim();f.startsWith('"')&&f.endsWith('"')&&(f=f.slice(1,-1)),s.set(u,f)}else o=n;return{scheme:t,token:o,params:s,basic:i}}function an(r){let e=[],t=[],n="",s=!1;for(let o=0;o<r.length;o++){let i=r[o];i==='"'&&(o===0||r[o-1]!=="\\")&&(s=!s),i===","&&!s?(t.push(n.trim()),n=""):n+=i}n.trim()&&t.push(n.trim());for(let o of t){if(!o)continue;let i=o.indexOf(" "),a=(i===-1?o:o.slice(0,i)).toLowerCase(),c=i===-1?"":o.slice(i+1),l=Z(c);e.push({scheme:a,realm:l.get("realm")??null,params:l})}return e}function _c(r){return`Bearer ${r}`}function Sc(r,e){return`Basic ${Qs(`${r}:${e}`)}`}function fn(r){return Yt(r)}function so(r){return Yt(r)}function oo(r){return Yt(r)}function Ec(r){return r.trim()?Yt(r):[]}function Tc(r,e){let t=fn(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 io(r){let e=r.indexOf("=");if(e===-1)return null;let t=r.slice(0,e).trim().toLowerCase(),n=r.slice(e+1).split(",").map(s=>{let o=s.trim(),i=o.indexOf("-");if(i===-1)return null;let a=o.slice(0,i).trim(),c=o.slice(i+1).trim();return{start:a===""?null:parseInt(a,10),end:c===""?null:parseInt(c,10)}}).filter(s=>s!==null);return{unit:t,ranges:n}}function ao(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 cn(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=Z(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 Rc(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 co(r){let e={by:null,for:[],host:null,proto:null};for(let t of r.split(",")){let n=Z(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 dn(r){let e=r.get(w.Forwarded);if(e)return co(e);let t=r.get(w.XForwardedFor),n=r.get(w.XForwardedHost),s=r.get(w.XForwardedProto);return{by:null,for:t?t.split(",").map(o=>o.trim()):[],host:n??null,proto:s??null}}function lo(r){let e=dn(r);return e.for.length>0?e.for[0]:r.get(w.XRealIP)}function uo(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 kc(r){let e=[],t="",n=!1;for(let s=0;s<r.length;s++){let o=r[s];o==='"'&&(s===0||r[s-1]!=="\\")&&(n=!n),o===","&&!n?(t.trim()&&e.push(t.trim()),t=""):t+=o}return t.trim()&&e.push(t.trim()),e.map(s=>{let o=s.match(/^(\d{3})\s+(\S+)\s+["']?([^"']+)["']?\s*(.*)$/);if(!o)return null;let i=o[1],a=o[2],c=o[3],l=o[4]??"",u=parseInt(i,10),f=(()=>{let p=l.trim().replace(/^"|"$/g,"");if(p){let d=Date.parse(p);if(!isNaN(d))return new Date(d)}})();return{code:u,agent:a,text:c,...f!==void 0?{date:f}:{}}}).filter(s=>s!==null)}function ho(r){let e=Z(";"+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 pn(r){let e=`max-age=${r.maxAge}`;return r.includeSubDomains&&(e+="; includeSubDomains"),r.preload&&(e+="; preload"),e}function fo(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 mn(r){let e=[];for(let[t,n]of r)e.push(n.length>0?`${t} ${n.join(" ")}`:t);return e.join("; ")}function po(r){return r.split(",").map(e=>{let t=e.trim().split(";"),n=(t[0]??"").trim(),s=Z(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 Ac(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 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?Z(";"+i.slice(a+1)):new Map,l=(a!==-1?i.slice(0,a):i).replace(/^"|"$/g,""),u,f;if(l.startsWith("[")){let p=l.indexOf("]");if(p===-1)u=l,f=443;else{u=l.slice(0,p+1);let d=l.slice(p+2);f=d?parseInt(d,10):443}}else{let p=l.lastIndexOf(":");u=p===-1?l:l.slice(0,p),f=p===-1?443:parseInt(l.slice(p+1),10)}e.push({protocol:o,host:u,port:f,maxAge:c.has("ma")?parseInt(c.get("ma"),10):null,persist:c.has("persist")&&c.get("persist")==="1"})}return e}function Cc(r){let e=new ue;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 vc(r){let e={};return r.forEach((t,n)=>{let o=r.getAll(n);e[n]=o.length===1?o[0]:[...o]}),e}function Pc(r){return new ue(r)}function Ic(r={}){let e=new ue;if(r.hsts!==!1){let t=r.hsts===!0||r.hsts===void 0?{maxAge:31536e3,includeSubDomains:!0,preload:!1}:r.hsts;e.set(w.StrictTransportSecurity,pn(t))}if(r.csp){let t=typeof r.csp=="string"?r.csp:mn(r.csp);e.set(w.ContentSecurityPolicy,t)}return e.set(w.XFrameOptions,r.frameOptions??"DENY"),r.noSniff!==!1&&e.set(w.XContentTypeOptions,"nosniff"),e.set(w.ReferrerPolicy,r.referrer??"strict-origin-when-cross-origin"),r.permissions&&e.set(w.PermissionsPolicy,r.permissions),r.coep&&e.set(w.CrossOriginEmbedderPolicy,r.coep),r.coop&&e.set(w.CrossOriginOpenerPolicy,r.coop),r.corp&&e.set(w.CrossOriginResourcePolicy,r.corp),e}function Lc(r){let e=new ue,t=Array.isArray(r.origin)?r.origin.join(", "):r.origin;return e.set(w.AccessControlAllowOrigin,t),r.methods?.length&&e.set(w.AccessControlAllowMethods,r.methods.join(", ")),r.allowHeaders?.length&&e.set(w.AccessControlAllowHeaders,r.allowHeaders.join(", ")),r.exposeHeaders?.length&&e.set(w.AccessControlExposeHeaders,r.exposeHeaders.join(", ")),r.credentials&&e.set(w.AccessControlAllowCredentials,"true"),r.maxAge!=null&&e.set(w.AccessControlMaxAge,String(r.maxAge)),e}function Mc(r){return new Ee(r)}function Oc(r){return new Ee(r,"request")}function Dc(r){return new Ee(r,"response")}function Nc(r){return new Ee(r,"immutable")}var Se,w,ln,un,Be,Js,bc,$,Gs,rn,nn,sn,Xs,Ys,ue,Ee,gt=B(()=>{"use strict";z();w={ContentType:"content-type",ContentLength:"content-length",ContentEncoding:"content-encoding",ContentLanguage:"content-language",ContentLocation:"content-location",ContentDisposition:"content-disposition",ContentRange:"content-range",ContentMD5:"content-md5",TransferEncoding:"transfer-encoding",TrailingHeader:"trailer",CacheControl:"cache-control",Pragma:"pragma",Expires:"expires",Age:"age",ETag:"etag",LastModified:"last-modified",Vary:"vary",IfMatch:"if-match",IfNoneMatch:"if-none-match",IfModifiedSince:"if-modified-since",IfUnmodifiedSince:"if-unmodified-since",IfRange:"if-range",Host:"host",Origin:"origin",Referer:"referer",UserAgent:"user-agent",From:"from",TE:"te",Expect:"expect",MaxForwards:"max-forwards",Accept:"accept",AcceptEncoding:"accept-encoding",AcceptLanguage:"accept-language",AcceptCharset:"accept-charset",AcceptRanges:"accept-ranges",AcceptPatch:"accept-patch",Authorization:"authorization",ProxyAuthorization:"proxy-authorization",WWWAuthenticate:"www-authenticate",ProxyAuthenticate:"proxy-authenticate",AuthenticationInfo:"authentication-info",Range:"range",Cookie:"cookie",SetCookie:"set-cookie",Location:"location",Via:"via",Forwarded:"forwarded",XForwardedFor:"x-forwarded-for",XForwardedHost:"x-forwarded-host",XForwardedProto:"x-forwarded-proto",XForwardedPort:"x-forwarded-port",XRealIP:"x-real-ip",Connection:"connection",KeepAlive:"keep-alive",Upgrade:"upgrade",AccessControlAllowOrigin:"access-control-allow-origin",AccessControlAllowMethods:"access-control-allow-methods",AccessControlAllowHeaders:"access-control-allow-headers",AccessControlExposeHeaders:"access-control-expose-headers",AccessControlMaxAge:"access-control-max-age",AccessControlAllowCredentials:"access-control-allow-credentials",AccessControlRequestMethod:"access-control-request-method",AccessControlRequestHeaders:"access-control-request-headers",Date:"date",RetryAfter:"retry-after",Allow:"allow",Server:"server",ServerTiming:"server-timing",TimingAllowOrigin:"timing-allow-origin",SecWebSocketKey:"sec-websocket-key",SecWebSocketAccept:"sec-websocket-accept",SecWebSocketProtocol:"sec-websocket-protocol",SecWebSocketVersion:"sec-websocket-version",SecWebSocketExtensions:"sec-websocket-extensions",SecFetchSite:"sec-fetch-site",SecFetchMode:"sec-fetch-mode",SecFetchUser:"sec-fetch-user",SecFetchDest:"sec-fetch-dest",StrictTransportSecurity:"strict-transport-security",ContentSecurityPolicy:"content-security-policy",ContentSecurityPolicyRO:"content-security-policy-report-only",XContentTypeOptions:"x-content-type-options",XFrameOptions:"x-frame-options",XXSSProtection:"x-xss-protection",ReferrerPolicy:"referrer-policy",PermissionsPolicy:"permissions-policy",CrossOriginOpenerPolicy:"cross-origin-opener-policy",CrossOriginEmbedderPolicy:"cross-origin-embedder-policy",CrossOriginResourcePolicy:"cross-origin-resource-policy",NEL:"nel",ReportTo:"report-to",ReportingEndpoints:"reporting-endpoints",Link:"link",AltSvc:"alt-svc",AltUsed:"alt-used",Priority:"priority",EarlyData:"early-data",PushPolicy:"push-policy",AcceptPushPolicy:"accept-push-policy",XRequestID:"x-request-id",XCorrelationID:"x-correlation-id",XRateLimitLimit:"x-ratelimit-limit",XRateLimitRemaining:"x-ratelimit-remaining",XRateLimitReset:"x-ratelimit-reset",XPoweredBy:"x-powered-by",XRequestedWith:"x-requested-with"};ln=De,un=be,Be=new Set(["set-cookie","www-authenticate","proxy-authenticate"]),Js=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"]),bc=new Set(["set-cookie","set-cookie2"]),ue=class{constructor(e,t="none"){cs(this,$);h(this,"map",new Map);h(this,"guard");this.guard=t,e!=null&&re(this,$,Gs).call(this,e)}append(e,t){re(this,$,sn).call(this,e);let n=re(this,$,rn).call(this,e),s=re(this,$,nn).call(this,t),o=this.map.get(n);o?o.values.push(s):this.map.set(n,{name:e,values:[s]})}delete(e){re(this,$,Ys).call(this,e),this.map.delete(e.toLowerCase())}get(e){let t=this.map.get(e.toLowerCase());return t?Be.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){re(this,$,Xs).call(this,e);let n=re(this,$,rn).call(this,e),s=re(this,$,nn).call(this,t);this.map.set(n,{name:e,values:[s]})}forEach(e,t){for(let[n,s]of this.map){let o=Be.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(Be.has(e))for(let n of t.values)yield n;else yield t.values.join(", ")}*entries(){for(let[e,t]of this.map)if(Be.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]=Be.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 Se(this,e??this.guard)}freeze(){return this.clone("immutable")}merge(e,t={}){let n=e instanceof Se?e:new Se(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 Se;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 Se;for(let[n,s]of e.map){let o=this.get(n),i=Be.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}};$=new WeakSet,Gs=function(e){if(e instanceof Se){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))},rn=function(e){if(!ln(e))throw new TypeError(`Invalid header name: "${e}"`);return e.toLowerCase()},nn=function(e){let t=e.trim();if(!un(t))throw new TypeError(`Invalid header value for: "${t}"`);return t},sn=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&Js.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`);if(this.guard==="response"&&bc.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for response guard`)},Xs=function(e){re(this,$,sn).call(this,e)},Ys=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&Js.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`)};Se=ue;Ee=class extends ue{get contentType(){let e=this.get(w.ContentType);return e?hn(e):null}set contentType(e){if(e===null){this.delete(w.ContentType);return}if(typeof e=="string"){this.set(w.ContentType,e);return}this.set(w.ContentType,Zs(e))}get contentLength(){let e=this.get(w.ContentLength);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}set contentLength(e){if(e===null){this.delete(w.ContentLength);return}this.set(w.ContentLength,String(e))}get contentDisposition(){let e=this.get(w.ContentDisposition);return e?eo(e):null}set contentDisposition(e){if(e===null){this.delete(w.ContentDisposition);return}if(typeof e=="string"){this.set(w.ContentDisposition,e);return}this.set(w.ContentDisposition,to(e))}get cacheControl(){let e=this.get(w.CacheControl);return e?ro(e):null}set cacheControl(e){if(e===null){this.delete(w.CacheControl);return}if(typeof e=="string"){this.set(w.CacheControl,e);return}this.set(w.CacheControl,no(e))}get authorization(){let e=this.get(w.Authorization);return e?on(e):null}set authorization(e){if(e===null){this.delete(w.Authorization);return}this.set(w.Authorization,e)}get accept(){return fn(this.get(w.Accept)??"")}get acceptEncoding(){return so(this.get(w.AcceptEncoding)??"")}get acceptLanguage(){return oo(this.get(w.AcceptLanguage)??"")}get range(){let e=this.get(w.Range);return e?io(e):null}get contentRange(){let e=this.get(w.ContentRange);return e?ao(e):null}get etag(){return this.get(w.ETag)}set etag(e){if(e===null){this.delete(w.ETag);return}let t=e.startsWith('"')||e.startsWith('W/"')?e:`"${e}"`;this.set(w.ETag,t)}get links(){let e=this.get(w.Link);return e?cn(e):[]}get retryAfter(){let e=this.get(w.RetryAfter);return e?uo(e):null}get hsts(){let e=this.get(w.StrictTransportSecurity);return e?ho(e):null}set hsts(e){if(e===null){this.delete(w.StrictTransportSecurity);return}this.set(w.StrictTransportSecurity,pn(e))}get csp(){let e=this.get(w.ContentSecurityPolicy);return e?fo(e):null}set csp(e){if(e===null){this.delete(w.ContentSecurityPolicy);return}if(typeof e=="string"){this.set(w.ContentSecurityPolicy,e);return}this.set(w.ContentSecurityPolicy,mn(e))}get serverTiming(){let e=this.get(w.ServerTiming);return e?po(e):[]}get clientIP(){return lo(this)}get forwarded(){return dn(this)}get host(){return this.get(w.Host)}get origin(){return this.get(w.Origin)}get userAgent(){return this.get(w.UserAgent)}get location(){return this.get(w.Location)}get date(){let e=this.get(w.Date);if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get age(){let e=this.get(w.Age);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get vary(){let e=this.get(w.Vary);return e?e.split(",").map(t=>t.trim().toLowerCase()):[]}get xRequestID(){return this.get(w.XRequestID)}get xCorrelationID(){return this.get(w.XCorrelationID)}get xPoweredBy(){return this.get(w.XPoweredBy)}get xRequestedWith(){return this.get(w.XRequestedWith)}get xRateLimitLimit(){let e=this.get(w.XRateLimitLimit);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitRemaining(){let e=this.get(w.XRateLimitRemaining);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get xRateLimitReset(){let e=this.get(w.XRateLimitReset);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get secFetchSite(){return this.get(w.SecFetchSite)}get secFetchMode(){return this.get(w.SecFetchMode)}get secFetchUser(){return this.get(w.SecFetchUser)}get secFetchDest(){return this.get(w.SecFetchDest)}get earlyData(){let e=this.get(w.EarlyData);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get priority(){return this.get(w.Priority)}get allow(){return this.get(w.Allow)}get server(){return this.get(w.Server)}get acceptRanges(){return this.get("accept-ranges")}get lastModified(){let e=this.get("last-modified");if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get expires(){let e=this.get("expires");if(!e)return null;let t=Date.parse(e);return isNaN(t)?null:new Date(t)}get contentEncoding(){return this.get("content-encoding")}get contentLanguage(){return this.get("content-language")}get contentLocation(){return this.get("content-location")}get link(){let e=this.get(w.Link);return e?cn(e)[0]??null:null}get altSvc(){let e=this.get(w.AltSvc);return e?mo(e):[]}get wwwAuthenticate(){let e=this.get("www-authenticate");return e?an(e):null}set wwwAuthenticate(e){if(e===null){this.delete("www-authenticate");return}let t=e.map(n=>{let o=[...n.params].filter(([a])=>a!=="realm").map(([a,c])=>`${a}=${c}`).join(", "),i=n.scheme;return n.realm&&(i+=` realm="${n.realm}"`),o&&(i+=`; ${o}`),i}).join(", ");this.set("www-authenticate",t)}get proxyAuthenticate(){let e=this.get(w.ProxyAuthenticate);return e?an(e):null}set proxyAuthenticate(e){if(e===null){this.delete(w.ProxyAuthenticate);return}let t=e.map(n=>{let o=[...n.params].filter(([a])=>a!=="realm").map(([a,c])=>`${a}=${c}`).join(", "),i=n.scheme;return n.realm&&(i+=` realm="${n.realm}"`),o&&(i+=`; ${o}`),i}).join(", ");this.set(w.ProxyAuthenticate,t)}get proxyAuthorization(){let e=this.get(w.ProxyAuthorization);return e?on(e):null}set proxyAuthorization(e){if(e===null){this.delete(w.ProxyAuthorization);return}if(typeof e=="string"){this.set(w.ProxyAuthorization,e);return}e.basic?this.set(w.ProxyAuthorization,`Basic ${Qs(`${e.basic.username}:${e.basic.password}`)}`):e.token?this.set(w.ProxyAuthorization,`${e.scheme} ${e.token}`):this.set(w.ProxyAuthorization,e.scheme)}get setCookies(){return this.getAll(w.SetCookie)}get accessControlAllowOrigin(){return this.get(w.AccessControlAllowOrigin)}get accessControlAllowMethods(){return this.get(w.AccessControlAllowMethods)}get accessControlAllowHeaders(){return this.get(w.AccessControlAllowHeaders)}get accessControlMaxAge(){let e=this.get(w.AccessControlMaxAge);if(!e)return null;let t=parseInt(e,10);return isNaN(t)?null:t}get accessControlCredentials(){let e=this.get(w.AccessControlAllowCredentials);return e==="true"?!0:e==="false"?!1:null}}});var Ao={};de(Ao,{ContentTypeError:()=>Re,HTTPResponseError:()=>Fe,ResponseCache:()=>gn,ResponseDecodeError:()=>We,ResponseSizeLimitError:()=>Te,applyDecompression:()=>tr,assertOk:()=>bo,assertOkJSON:()=>xo,createLimitedReader:()=>ko,decodeBody:()=>er,decompressStream:()=>bn,diffResponses:()=>_o,extractServerTiming:()=>Eo,isBinary:()=>yo,isJSON:()=>Zt,isText:()=>yn,normalizeHeaders:()=>oe,normalizeResponse:()=>go,parseContentType:()=>ke,parseMultipartResponse:()=>Tn,readBlob:()=>Sn,readBodyWithLimit:()=>wn,readBytes:()=>rr,readFormData:()=>So,readJSON:()=>xn,readJSONStream:()=>wo,readNDJSON:()=>En,readStream:()=>yt,readText:()=>_n});function oe(r){return it(r)}function go(r){return{status:r.status,statusText:r.statusText,headers:oe(r.headers),url:r.url,redirected:r.redirected,ok:r.ok,bodyUsed:r.bodyUsed}}function ke(r){if(!r||r.length>$c)return null;let e=hn(r);return e?{mediaType:e.mediaType,type:e.type,subtype:e.subtype,charset:e.charset,boundary:e.boundary}:null}function Zt(r){if(!r)return!1;let e=ke(r);return e?e.mediaType==="application/json"||e.subtype.endsWith("+json"):!1}function yn(r){return r?ke(r)?.type==="text":!1}function yo(r){return!yn(r)&&!Zt(r)}async function wn(r,e,t,n){let s=t.onExceed??"throw",o=r.getReader(),i=[],a=0;try{for(;;){if(n?.aborted)throw await o.cancel("aborted"),new DOMException("Response reading aborted","AbortError");let{done:c,value:l}=await o.read();if(c)break;let u=a+l.byteLength;if(u>t.maxBytes){if(t.onExceedCallback?.(u,t.maxBytes),s==="throw")throw await o.cancel("size limit exceeded"),new Te(u,t.maxBytes,e);if(s==="abort"){await o.cancel("size limit exceeded");break}if(s==="truncate"){let f=t.maxBytes-a;f>0&&(i.push(l.slice(0,f)),a+=f);break}}i.push(l),a+=l.byteLength}}finally{o.releaseLock()}return Ro(i)}function jc(r){return r?Hc[r.toLowerCase()]??"utf-8":"utf-8"}function zc(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 er(r,e,t){let n=zc(r),s=n??jc(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 We(String(i),s,t)}}}function qc(r,e,t=1e8){let n=bn(r,e),s=0,o=new TransformStream({transform(i,a){if(s+=i.byteLength,s>t){a.error(new Te(s,t,"decompression"));return}a.enqueue(i)}});return n.pipeThrough(o)}function bn(r,e){let t=e.trim().toLowerCase();if(t==="br")return Bc(r);if(typeof DecompressionStream>"u")return r;try{let n=t,s=new DecompressionStream(n);return r.pipeThrough(s)}catch{return r}}function Bc(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 tr(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=qc(s,o);return s}async function xn(r,e={}){let n=oe(r.headers)["content-type"]??null,s=r.url;e.expectedContentType?To(n,e.expectedContentType,s):Zt(n);let o=await Rn(r,s,e),i=e.charset??ke(n??"")?.charset??null,a=er(o,i,s);try{return O(JSON.parse(a))}catch(c){throw new We(`JSON parse failed: ${c}`,"json",s)}}async function _n(r,e={}){let n=oe(r.headers)["content-type"]??null,s=r.url;e.expectedContentType&&To(n,e.expectedContentType,s);let o=await Rn(r,s,e),i=e.charset??ke(n??"")?.charset??null;return er(o,i,s)}async function rr(r,e={}){let t=r.url;return await Rn(r,t,e)}async function Sn(r,e={}){let t=await rr(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 yt(r,e={}){if(!r.body)return new ReadableStream({start:s=>s.close()});let t=oe(r.headers),n=r.body;return e.decompress!==!1&&(n=tr(n,t)),e.sizeLimit&&(n=Wc(n,r.url,e.sizeLimit,e.signal)),n}async function*En(r,e={}){let n=yt(r,e).getReader(),s=new TextDecoder("utf-8"),o="";try{for(;!e.signal?.aborted;){let{done:i,value:a}=await n.read();if(i){let l=o.trim();if(l)try{yield O(JSON.parse(l))}catch(u){e.onParseError?.(u,l)}break}o+=s.decode(a,{stream:!0});let c=o.split(`
4
- `);o=c.pop()??"";for(let l of c){let u=l.trim();if(!(!u||u.startsWith("#")))try{yield O(JSON.parse(u))}catch(f){e.onParseError?.(f,u)}}}}finally{n.releaseLock()}}async function*wo(r,e={}){let n=yt(r,e).getReader(),s=new TextDecoder("utf-8"),o=0,i="",a=-1,c=()=>{if(a===-1)return null;let l=i.slice(a);return a=-1,l};try{for(;!e.signal?.aborted;){let{done:l,value:u}=await n.read();if(l){let f=c();if(f)try{let p=O(JSON.parse(f));e.onObject?.(p),yield p}catch(p){e.onParseError?.(p,f)}break}i+=s.decode(u,{stream:!0});for(let f=0;f<i.length;f++){let p=i[f];if(p==="{"||p==="[")o===0&&(a=f),o++;else if((p==="}"||p==="]")&&(o--,o===0&&a!==-1)){let d=i.slice(a,f+1);try{let g=O(JSON.parse(d));e.onObject?.(g),yield g}catch(g){e.onParseError?.(g,d)}i=i.slice(f+1),f=-1}}if(i.length>1e7)throw new Error("JSON stream buffer exceeded 10MB limit")}}finally{n.releaseLock()}}async function bo(r,e={}){if(!(e.isError??(o=>o>=400))(r.status))return r;let n=oe(r.headers),s=null;if(e.readBody!==!1&&r.body&&!r.bodyUsed)try{s=await r.clone().text()}catch{}throw new Fe(r.status,r.statusText,r.url,n,s)}async function xo(r){if(r.ok)return{response:r};let e=oe(r.headers),t=null;if(r.body&&!r.bodyUsed)try{t=await r.clone().text()}catch{}throw new Fe(r.status,r.statusText,r.url,e,t)}async function _o(r,e){let t=oe(r.headers),n=oe(e.headers),s={},o={},i={};for(let[c,l]of Object.entries(t))c in n?n[c]!==l&&(s[c]=[l,n[c]]):i[c]=l;for(let[c,l]of Object.entries(n))c in t||(o[c]=l);let a=!1;try{let[c,l]=await Promise.all([r.clone().text(),e.clone().text()]);a=c!==l}catch{}return{statusChanged:r.status!==e.status,headersChanged:s,headersAdded:o,headersRemoved:i,bodyChanged:a}}async function Tn(r){let e=r.headers.get("content-type")??"",t=ke(e);if(!t?.boundary)throw new Re("multipart/*",e,r.url);let n=await r.arrayBuffer(),s=new Uint8Array(n),o=new TextEncoder().encode("--"+t.boundary),i=[],a=l=>{for(let u=l;u<s.length-o.length;u++)if(s.subarray(u,u+o.length).every((f,p)=>f===o[p]))return u;return-1},c=a(0);if(c===-1)return[];if(c+=o.length,s[c]===13&&s[c+1]===10?c+=2:s[c]===10&&(c+=1),s[c]===45&&s[c+1]===45)return[];for(;c<s.length;){let l=a(c);if(l===-1)break;let u=l+o.length;u<s.length&&(s[u]===13&&s[u+1]===10||s[u]===10||s[u]===45&&s[u+1]);let f=s.subarray(c,l-2),p=Fc(f);if(p===-1){c=l+o.length;continue}let d=f.subarray(0,p),g=f.subarray(p+4),m=new TextDecoder().decode(d),y={};for(let b of m.split(/\r\n/)){let x=b.indexOf(":");x!==-1&&(y[b.slice(0,x).trim().toLowerCase()]=b.slice(x+1).trim())}if(i.push({headers:y,body:g}),c=l+o.length,c<s.length-1&&s[c]===45&&s[c+1]===45)break}return i}function Fc(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 So(r){let e=await Tn(r),t=new FormData;for(let n of e){let s=n.headers["content-disposition"]??"",o=s.match(/name="([^"]+)"/),i=s.match(/filename="([^"]+)"/);if(!o)continue;let a=o[1],c=i?.[1];if(c){let l=n.headers["content-type"]??"application/octet-stream",u=new ArrayBuffer(n.body.byteLength);new Uint8Array(u).set(n.body);let f=new File([u],c,{type:l});t.append(a,f)}else{let l=new TextDecoder().decode(n.body);t.append(a,l)}}return t}function Eo(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=Uc(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 Rn(r,e,t){if(!r.body)return new Uint8Array(0);let n=oe(r.headers),s=r.body;if(t.decompress!==!1&&(s=tr(s,n)),t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");if(t.sizeLimit)return wn(s,e,t.sizeLimit,t.signal);let o=s.getReader(),i=[];try{for(;;){if(t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");let{done:a,value:c}=await o.read();if(a)break;i.push(c)}}finally{o.releaseLock()}return Ro(i)}function Wc(r,e,t,n){let s=t.onExceed??"throw",o=0;return new ReadableStream({async start(i){let a=r.getReader();try{for(;;){if(n?.aborted){await a.cancel("aborted"),i.error(new DOMException("Response reading aborted","AbortError"));return}let{done:c,value:l}=await a.read();if(c){i.close();break}let u=o+l.byteLength;if(u>t.maxBytes){if(t.onExceedCallback?.(u,t.maxBytes),s==="throw"){await a.cancel("size limit"),i.error(new Te(u,t.maxBytes,e));return}if(s==="abort"){await a.cancel("size limit"),i.close();return}if(s==="truncate"){let f=t.maxBytes-o;f>0&&i.enqueue(l.slice(0,f)),i.close(),await a.cancel("size limit");return}}o+=l.byteLength,i.enqueue(l)}}catch(c){i.error(c)}}})}function To(r,e,t){if(!r)throw new Re(e,"(none)",t);let n=r.split(";")[0]?.trim().toLowerCase()??"",s=e.split(";")[0]?.trim().toLowerCase()??"";if(!n.startsWith(s))throw new Re(e,r,t)}function Ro(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 ko(r,e="throw"){let t={maxBytes:r,onExceed:e};return{json:(n,s)=>xn(n,{sizeLimit:t,...s}),text:(n,s)=>_n(n,{sizeLimit:t,...s}),bytes:(n,s)=>rr(n,{sizeLimit:t,...s}),blob:(n,s)=>Sn(n,{sizeLimit:t,...s}),stream:(n,s)=>yt(n,{sizeLimit:t,...s}),ndjson:(n,s)=>En(n,{sizeLimit:t,...s})}}var Uc,Fe,Te,Re,We,$c,Hc,gn,nr=B(()=>{"use strict";gt();z();Uc=Z,Fe=class extends Error{constructor(t,n,s,o,i){super(`HTTP ${t} ${n} \u2014 ${s}`);h(this,"code","EHTTPRESPONSE");h(this,"status");h(this,"statusText");h(this,"url");h(this,"headers");h(this,"body");this.name="HTTPResponseError",this.status=t,this.statusText=n,this.url=s,this.headers=o,this.body=i}get isClientError(){return this.status>=400&&this.status<500}get isServerError(){return this.status>=500}get isNotFound(){return this.status===404}get isUnauthorized(){return this.status===401}get isForbidden(){return this.status===403}get isTooManyRequests(){return this.status===429}get isGone(){return this.status===410}get isConflict(){return this.status===409}},Te=class extends Error{constructor(t,n,s){super(`Response size limit exceeded: read ${t} bytes, limit is ${n} bytes (${s})`);h(this,"code","ESIZELIMIT");h(this,"bytesRead");h(this,"limit");h(this,"url");this.name="ResponseSizeLimitError",this.bytesRead=t,this.limit=n,this.url=s}},Re=class extends Error{constructor(t,n,s){super(`Expected content-type "${t}", got "${n}" (${s})`);h(this,"code","ECONTENTTYPE");h(this,"expected");h(this,"received");h(this,"url");this.name="ContentTypeError",this.expected=t,this.received=n,this.url=s}},We=class extends Error{constructor(t,n,s){super(`Failed to decode response as ${n} (${s}): ${t}`);h(this,"code","EDECODE");h(this,"charset");h(this,"url");this.name="ResponseDecodeError",this.charset=n,this.url=s}};$c=8192;Hc={"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"};gn=class{constructor(e={ttlMs:6e4}){h(this,"cache",new Map);h(this,"ttlMs");this.ttlMs=e.ttlMs}hashRequest(e){let t=typeof e=="string"?e:e.url;return`${typeof e=="string"?"GET":e.method}:${t}`}async get(e){let t=this.hashRequest(e),n=this.cache.get(t);return n?Date.now()>n.expiresAt?(this.cache.delete(t),null):await Promise.resolve(n.response.clone()):null}async set(e,t){let n=this.hashRequest(e);await Promise.resolve(this.cache.set(n,{response:t.clone(),expiresAt:Date.now()+this.ttlMs}))}delete(e){this.cache.delete(this.hashRequest(e))}clear(){this.cache.clear()}get size(){return this.cache.size}}});var No={};de(No,{FetchTransport:()=>Ke,HAS_NATIVE_FETCH:()=>Io,HTTP_STATUS_TEXTS:()=>Do,IS_NODE:()=>Ve,NodeHTTP2Transport:()=>wt,RUNTIME:()=>me,createTransport:()=>or,decompressBodyStream:()=>ar,detectRuntime:()=>kn,getEffectiveRuntime:()=>Po,normalizeHeaders:()=>Lo,parseBody:()=>bt,readRawBody:()=>ir,sendWithTimeout:()=>Je,setRuntime:()=>vo});function kn(){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":sr.process?.versions?.node!==void 0?"node":typeof globalThis.fetch=="function"?"edge":"unknown"}function vo(r){Co=r}function Po(){return Co??me}function Kc(){try{return globalThis.process?.env?.NODE_ENV==="production"}catch{return!1}}function or(r,e=!0,t,n){return Ve&&e&&!r?new wt({...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 Ke({fetchFn:r??globalThis.fetch,...n?.strict!==void 0?{strict:n.strict}:{},...n?.onDroppedHeader!==void 0?{onDroppedHeader:n.onDroppedHeader}:{}})}async function Je(r,e,t){if(t<=0)return r.send(e);let n=new AbortController,s=setTimeout(()=>{n.abort(new X(t,e))},t),o=Mr(e.signal,n.signal)??null,i={...e,signal:o},a=new Promise((c,l)=>{n.signal.addEventListener("abort",()=>l(new X(t,e)),{once:!0})});try{let c=await Promise.race([r.send(i),a]);if(clearTimeout(s),n.signal.aborted)throw new X(t,e);return c}catch(c){throw clearTimeout(s),n.signal.aborted&&!(c instanceof X)?new X(t,e):c}}async function ir(r,e,t,n){if(!r)return new Uint8Array(0);let s=r.getReader(),o=[],i=0,a,c=new Promise((u,f)=>{a=f}),l=()=>{s.cancel("aborted").catch(()=>{}),a(new S("Response reading aborted","EABORT"))};if(n?.aborted)throw s.cancel("aborted").catch(()=>{}),new S("Response reading aborted","EABORT");n?.addEventListener("abort",l,{once:!0});try{for(;;){let u=await Promise.race([s.read().catch(d=>{throw s.cancel("read error").catch(()=>{}),d}),c]),{done:f,value:p}=u;if(f)break;if(e>0){let d=i+p.byteLength;if(d>e)throw await s.cancel("size limit exceeded"),new ct(d,e)}o.push(p),i+=p.byteLength}}catch(u){throw s.cancel("error during read").catch(()=>{}),u}finally{n?.removeEventListener("abort",l),s.releaseLock()}return Lr(o)}function bt(r,e,t,n,s,o){if(t)return t(r,s??{},o??"");if(!r.byteLength)return null;let i=e?.split(";")[0]?.trim().toLowerCase()??"";if(i==="application/json"||i.endsWith("+json")){let a=new TextDecoder("utf-8").decode(r),c,l;try{let u=pe(a,{maxStringLength:1e7,maxDepth:100,maxArrayLength:1e5});u.success&&u.value!==void 0&&(c=u.value)}catch(u){l=u instanceof Error?u:new Error(String(u))}if(c!==void 0)return c;if(n)try{n(r,l??new Error("JSON parse failed \u2014 falling back to raw text"))}catch{}return a}return i.startsWith("text/")?new TextDecoder("utf-8").decode(r):r}function Lo(r){return it(r)}function Vc(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 Jc(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 Mo(r){return new ReadableStream({start(e){let t=!1,n=!1;r.on("data",s=>{if(s instanceof Uint8Array)e.enqueue(s);else if(sr.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 Oo(r,e){r.write(e)||await new Promise(n=>r.once("drain",n))}async function Gc(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 Oo(r,s)}}else e instanceof Uint8Array||e instanceof ArrayBuffer?r.end(sr.Buffer?new Uint8Array(e):e):typeof e=="string"?r.end(e):r.end()}async function Xc(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 Oo(r,s)}}else e instanceof Uint8Array||e instanceof ArrayBuffer?r.end(sr.Buffer?new Uint8Array(e):e):typeof e=="string"?r.end(e):r.end()}async function ar(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(()=>(nr(),Ao));return i(r,e)}var sr,me,Co,Ve,Io,Ke,wt,Qc,Do,xt=B(()=>{"use strict";xe();z();gt();z();sr=globalThis;me=kn(),Co=null;Ve=me==="node",Io=me!=="node"||typeof globalThis.fetch=="function";Ke=class{constructor(e=globalThis.fetch){h(this,"fetchFn");h(this,"strict");h(this,"onDroppedHeader");typeof e=="function"?(this.fetchFn=e,this.strict=!1,this.onDroppedHeader=void 0):(this.fetchFn=e.fetchFn??globalThis.fetch,this.strict=e.strict??!1,this.onDroppedHeader=e.onDroppedHeader)}async send(e){let t={};for(let[l,u]of Object.entries(e.headers??{}))if(!(typeof l!="string"||typeof u!="string")){if(!ln(l)||!un(u)){if(this.strict)throw new S(`Invalid header dropped in strict mode: "${l}"`,"EVALIDATION",{request:e});this.onDroppedHeader?this.onDroppedHeader(l,u):Kc()||console.warn(`[kinetex] Invalid header dropped: "${l}" \u2014 value may contain illegal characters. Pass strictHeaders: true to throw instead.`);continue}t[l]=u}let n=t["accept-encoding"];n&&n.toLowerCase().includes("gzip")&&n.toLowerCase().includes("deflate")&&n.toLowerCase().includes("br")&&delete t["accept-encoding"];let s={method:e.method,headers:t,redirect:e.redirect??"follow",...e.signal!==null?{signal:e.signal}:{}};e.body!==null&&e.method!=="GET"&&e.method!=="HEAD"&&(s.body=e.body,Ve&&typeof s.body=="object"&&s.body!==null&&"getReader"in s.body&&(s.duplex="half"));let o;try{o=await this.fetchFn(e.url,s)}catch(l){throw Or(l)?new S("Request was aborted","EABORT",{request:e,cause:l}):new S(l instanceof Error?l.message:"Network request failed","ENETWORK",{request:e,cause:l})}let i=Lo(o.headers),a=Vc(o,i),c=!0;return me==="deno"&&(o.headers.get("content-encoding")||"").toLowerCase().includes("deflate")&&(c=!1),{status:o.status,statusText:o.statusText,headers:i,body:o.body,url:o.url||e.url,redirected:o.redirected,httpVersion:a,alreadyDecompressed:c}}},wt=class{constructor(e={}){h(this,"sessions",new Map);h(this,"sessionTTLMs");h(this,"pingIntervalMs");h(this,"maxSessions");h(this,"pingTimers",new Map);h(this,"_sessionCreating",new Map);h(this,"sessionUsage",new Map);h(this,"_strict");h(this,"_onDroppedHeader");h(this,"_ca");h(this,"_connectTimeoutMs");h(this,"_requestTimeoutMs");h(this,"_http1Fallback",null);this.sessionTTLMs=e.sessionTTLMs??5*6e4,this.pingIntervalMs=e.pingIntervalMs??3e4,this.maxSessions=e.maxSessions??100,this._strict=e.strict??!1,this._onDroppedHeader=e.onDroppedHeader,this._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[c,l]of this.sessionUsage.entries())l<a&&(a=l,i=c);if(i){let c=this.sessions.get(i);c&&this._evictSession(i,c.session)}}let o=await new Promise((i,a)=>{let c=n.connect(e,{rejectUnauthorized:!0,...this._ca!==void 0?{ca:this._ca}:{}}),l=setTimeout(()=>{c.destroy(),a(new S(`HTTP/2 connection to ${e} timed out`,"ETIMEOUT",{request:t}))},this._connectTimeoutMs);typeof l.unref=="function"&&l.unref();let u=()=>{clearTimeout(l),c.destroy(),a(new S("Connection aborted","EABORT",{request:t}))},f=()=>t.signal?.removeEventListener("abort",u);t.signal?.addEventListener("abort",u,{once:!0}),c.once("connect",()=>{f(),clearTimeout(l),i(c)}),c.once("error",p=>{f(),clearTimeout(l),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 c=this.sessions.get(e);if(!c||c.session.destroyed||c.session.closed){this._evictSession(e,c?.session);return}c.session.ping(l=>{l&&this._evictSession(e,c.session)})},this.pingIntervalMs);typeof a=="object"&&a!==null&&"unref"in a&&a.unref(),this.pingTimers.set(e,a)}return o}async send(e){let t=new URL(e.url);if(t.protocol!=="https:"||e.httpVersion==="HTTP/1.1")return this._sendHTTP1(e);try{return await this._sendHTTP2(e,t)}catch(n){if(Jc(n))return this._sendHTTP1(e);throw n}}async _sendHTTP2(e,t){let n=await import("node:http2"),s=e,o=t,i=!1,a=10;for(let c=0;c<=a;c++){if(c===a)throw new S("Too many HTTP/2 redirects","ENETWORK",{request:e});let l=o.origin,u=this.sessions.get(l),f=u&&Date.now()-u.createdAt>this.sessionTTLMs,p;!u||u.session.destroyed||u.session.closed||f?p=await this._getOrCreateSession(l,s,n):(p=u.session,this.sessionUsage.set(l,Date.now()));let d={":method":s.method,":path":o.pathname+o.search,":scheme":"https",":authority":o.host,...s.headers};for(let[_,v]of Object.entries(d)){if(_.startsWith(":"))continue;let M=Array.isArray(v)?v.join(", "):String(v),H=!1;for(let j=0;j<M.length;j++){let te=M.charCodeAt(j);if(te>=0&&te<=8||te>=10&&te<=31||te===127){H=!0;break}}if(H){if(this._strict)throw new S(`Strict mode: header "${_}" contains forbidden control characters`,"EVALIDATION",{request:s});this._onDroppedHeader?this._onDroppedHeader(_,M):typeof console<"u"&&console.warn(`[kinetex] Invalid header dropped (HTTP/2): "${_}" \u2014 value contains illegal control characters. Pass strictHeaders: true to throw instead.`),delete d[_]}}let g=!s.body||s.method==="GET"||s.method==="HEAD",m=p.request(d,{endStream:g});s.body&&!g&&Gc(m,s.body).catch(_=>{m.destroy(_ instanceof Error?_:new Error(String(_)))});let y=s.signal,b=await new Promise((_,v)=>{let M=this._requestTimeoutMs,H=setTimeout(()=>{te(),v(new S(`HTTP/2 request to ${o} timed out after ${M}ms`,"ETIMEOUT",{request:s})),m.destroy()},M),j=()=>{clearTimeout(H),v(new S("Request was aborted","EABORT",{request:s})),m.destroy()},te=()=>y?.removeEventListener("abort",j);y?.addEventListener("abort",j,{once:!0}),m.once("response",k=>{let P=Number(k[":status"]??200),C=Do[P]??"",L={};for(let[W,D]of Object.entries(k))W.startsWith(":")||(L[W]=Array.isArray(D)?D.join(", "):D??"");if(clearTimeout(H),te(),y?.aborted){v(new S("Request was aborted","EABORT",{request:s})),m.destroy();return}if(s.redirect==="error"&&P>=300&&P<400&&L.location){v(new S(`Redirect not allowed (redirect:"error") \u2014 received ${P} to ${L.location}`,"ENETWORK",{request:s})),m.destroy();return}_({status:P,statusText:C,headers:L,body:Mo(m),url:s.url,redirected:i,httpVersion:"HTTP/2",alreadyDecompressed:!1})}),m.once("error",k=>{clearTimeout(H),te(),y?.aborted?v(new S("Request was aborted","EABORT",{request:s,cause:k})):v(new S(k.message,"ENETWORK",{request:s,cause:k})),m.destroy()})});if(!(b.status>=300&&b.status<400&&!!b.headers.location&&s.redirect!=="manual"))return b;try{if(b.body){let _=b.body.getReader();for(;;){let{done:v}=await _.read();if(v)break}_.releaseLock()}}catch{}let E=b.headers.location,R;try{R=new URL(E,s.url).href}catch{throw new S(`Invalid redirect Location: ${E}`,"ENETWORK",{request:e})}let A=b.status===301||b.status===302||b.status===303?"GET":s.method,U=A==="GET"||A==="HEAD"?null:s.body;s={...s,url:R,method:A,body:U},o=new URL(R),i=!0}throw new S("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 Ke(t)}return this._http1Fallback.send(e)}return this._sendHTTP1Legacy(e)}async _sendHTTP1Legacy(e){let t=await import("node:https"),n=new URL(e.url),s={hostname:n.hostname,port:n.port||"443",path:n.pathname+n.search,method:e.method,headers:e.headers};return new Promise((o,i)=>{let a=t.request(s,u=>{let f={};for(let[d,g]of Object.entries(u.headers))g!==void 0&&(f[d]=Array.isArray(g)?g.join(", "):g);let p=Qc(u);o({status:u.statusCode??200,statusText:u.statusMessage??"",headers:f,body:p,url:e.url,redirected:!1,httpVersion:"HTTP/1.1",alreadyDecompressed:!1})});a.once("error",u=>{i(new S(u.message,"ENETWORK",{request:e,cause:u}))});let c=()=>{a.destroy(),i(new S("Request was aborted","EABORT",{request:e}))};e.signal?.addEventListener("abort",c,{once:!0});let l=()=>e.signal?.removeEventListener("abort",c);a.once("close",l),a.once("error",l),e.body&&e.method!=="GET"&&e.method!=="HEAD"?Xc(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()}};Qc=Mo;Do={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 el(r){return r.split(Zc).filter(Boolean)}function tl(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 rl(r){let e=r.slice(0,9).toLowerCase();return Yc[e]??null}function nl(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 lr(r){if(!r)return null;let e=el(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=tl(a);if(c!==null){t.time=c;continue}}if(t.month===null&&/[a-zA-Z]/.test(a)){let c=rl(a);if(c!==null){t.month=c;continue}}if(/^\d{1,4}(?:st|nd|rd|th)?$/i.test(a)){let c=a.replace(/[a-z]+$/i,""),l=+c;if(t.dayOfMonth===null&&c.length<=2&&l>=1&&l<=31){t.dayOfMonth=l;continue}if(t.year===null&&c.length>=2){let u=nl(c);if(u!==null){t.year=u;continue}}if(t.dayOfMonth===null&&l>=1&&l<=31){t.dayOfMonth=l;continue}}}if(t.time===null||t.dayOfMonth===null||t.month===null||t.year===null||t.year<1601||t.year>9999||t.dayOfMonth<1||t.dayOfMonth>31)return null;let[n,s,o]=t.time,i=Date.UTC(t.year,t.month,t.dayOfMonth,n,s,o);return isNaN(i)?null:i}function _t(r){let e=r.replace(/\.$/,"").toLowerCase(),t=e.split(".");if(t.length===0||t.length===1&&t[0]==="")return null;if(Pn.has(e))return e;let n=null,s=0;for(let o=0;o<t.length;o++){let i=t.slice(o).join(".");if(Cn.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(vn.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 In(r){let e=r.toLowerCase();if(ge(e))return e;let t=_t(e);if(!t)return null;let n=t.split(".").length,s=e.split(".");return s.length<=n?null:s.slice(-(n+1)).join(".")}function St(r){let e=r.toLowerCase();if(Pn.has(e)||Cn.has(e))return!0;let t=e.split(".");if(t.length>=2){let n=t.slice(1).join(".");if(vn.has(n))return!0}return!1}function ol(r){try{let c=r.lastIndexOf("-"),l=[],u=c>=0?r.slice(0,c):"";for(let E=0;E<u.length;E++){let R=u.charCodeAt(E);if(R>122||R>90&&R<97||R>57&&R<65||R<48)return r;l.push(R)}let f=c>=0?r.slice(c+1):r,p=128,d=0,g=72,m=E=>E>=65&&E<=90?E-65:E>=97&&E<=122?E-97:E>=48&&E<=57?E-48+26:-1,y=(E,R,A)=>{E=Math.floor(E/(A?700:2)),E+=Math.floor(E/R);let U=0;for(;E>910/2;)E=Math.floor(E/35),U+=36;return U+Math.floor(36*E/(E+38))},b=0;for(;b<f.length;){let E=d,R=1;for(let A=36;;A+=36){if(b>=f.length)return r;let U=m(f.charCodeAt(b++));if(U<0)return r;d+=U*R;let _=A<=g?1:A>=g+26?26:A-g;if(U<_)break;R*=36-_}g=y(d-E,l.length+1,E===0),p+=Math.floor(d/(l.length+1)),d%=l.length+1,l.splice(d,0,p),d++}return String.fromCodePoint(...l)||r}catch{return r}}function ur(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(An){let t=r+".invalid",n=An(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=ol(r.slice(4));if(t&&t!==r.slice(4))return t}catch{}return r}function he(r){return r.replace(/^\./,"").replace(/\.$/,"").toLowerCase().split(".").map(ur).join(".")}function ge(r){let e=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;return il.test(e)?e.split(".").map(Number).every(n=>n>=0&&n<=255):al.test(e)&&e.includes(":")}function Et(r,e){let t=r.toLowerCase(),n=e.toLowerCase();return t===n?!0:!(ge(t)||!t.endsWith("."+n)||ge(n)||_t(t)===t)}function Tt(r){if(!r||r===""||r[0]!=="/")return"/";let e=r.lastIndexOf("/");return e===0?"/":r.slice(0,e)}function cr(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 Rt(r,e){let t=cr(r),n=cr(e);return!!(t===n||t.startsWith(n)&&(n.endsWith("/")||t[n.length]==="/"))}function ll(r){return r===""?!0:cl.test(r)}function ul(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 kt(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()),!ll(o)||(i.length>=2&&i[0]==='"'&&i[i.length-1]==='"'&&(i=i.slice(1,-1)),!ul(i)))return null;let a=new Map,c=n.split(";");for(let _ of c){let v=_.trim();if(!v)continue;let M=v.indexOf("=");if(M===-1)a.set(v.toLowerCase(),"");else{let H=v.slice(0,M).trim().toLowerCase(),j=v.slice(M+1).trim();a.has(H)||a.set(H,j)}}let l=a.has("domain")?a.get("domain"):null,u=a.has("path")?a.get("path"):null,f=a.has("expires")?a.get("expires"):null,p=a.has("max-age")?a.get("max-age"):null,d=a.has("secure"),g=a.has("httponly"),m="Unset";if(a.has("samesite")){let _=a.get("samesite").toLowerCase();_==="strict"?m="Strict":_==="lax"?m="Lax":_==="none"&&(m="None")}let y=a.has("sameparty"),b=null;if(a.has("priority")){let _=a.get("priority").toLowerCase();_==="low"?b="Low":_==="medium"?b="Medium":_==="high"&&(b="High")}let x=a.has("partitioned"),E=null;p!==null&&p.match(/^-?\d+$/)&&(E=parseInt(p,10));let R=null;E===null&&f!==null&&(R=lr(f));let A=null;l!==null&&l!==""&&(A=he(l));let U=null;return u!==null&&u.startsWith("/")&&(U=u),{name:o,value:i,domain:A,path:U,expires:R,maxAge:E,secure:d,httpOnly:g,sameSite:m,sameParty:y,priority:b,partitioned:x}}function Uo(r){let e=[];if(r.value.includes(";")||r.value.includes(",")||r.value.includes(" ")||r.value.includes('"')?e.push(`${r.name}="${r.value.replace(/"/g,'\\"')}"`):e.push(`${r.name}=${r.value}`),r.path&&e.push(`Path=${r.path}`),r.domain&&e.push(`Domain=${r.domain}`),r.expires!==null){let t=new Date(r.expires);e.push(`Expires=${t.toUTCString()}`)}return r.maxAge!==null&&e.push(`Max-Age=${r.maxAge}`),r.secure&&e.push("Secure"),r.httpOnly&&e.push("HttpOnly"),r.sameSite&&r.sameSite!=="Unset"&&e.push(`SameSite=${r.sameSite}`),r.sameParty&&e.push("SameParty"),r.priority&&e.push(`Priority=${r.priority}`),r.partitioned&&e.push("Partitioned"),e.join("; ")}function Qe(r){let e=[],t="",n=0,s=!1,o=!1,i=!1,a=!1,c=!1,l=()=>{i&&a&&t.trim()&&e.push(t.trim()),t="",i=!1,a=!1,c=!1};for(;n<r.length;){let u=r[n],f=r[n+1]??"";if(o){t+=u,o=!1,n++;continue}if(u==="\\"&&(s||f==='"'||f==="\\")){t+=u,o=!0,n++;continue}if(u==='"'){!s&&i?s=!0:s&&(s=!1,a=!0),t+=u,n++;continue}if(s){t+=u,n++;continue}if(u===","&&!s&&(c||a||i)){for(l();n+1<r.length&&/\s/.test(r[n+1]);)n++;n++;continue}if(u===";"){i||(i=!0),a&&(c=!0),t+=u,n++;continue}if(u==="="&&!i){i=!0,a=!0,t+=u,n++;continue}if(i&&!a&&u!==";"&&u!==","&&(a=!0),u===" "||u===" "){t.length>0&&t.trim()!==""&&(t+=u),n++;continue}t+=u,n++}return i&&a&&t.trim()&&e.push(t.trim()),e}function At(r){if(typeof Headers<"u"&&r instanceof Headers){if(typeof r.getSetCookie=="function")return r.getSetCookie();let n=r.get("set-cookie");return n?Qe(n):[]}let e=r,t=e["set-cookie"]??e["Set-Cookie"];return t?Array.isArray(t)?t.flatMap(n=>Qe(n)):Qe(t):[]}var Yc,Zc,sl,Cn,vn,Pn,An,il,al,cl,hr=B(()=>{"use strict";Yc={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},Zc=/[\t\x20-\x2f\x3b-\x40\x5b-\x60\x7b-\x7e]+/;sl=["!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"],Cn=new Set,vn=new Set,Pn=new Set;for(let r of sl)r.startsWith("!")?Pn.add(r.slice(1).toLowerCase()):r.startsWith("*.")?vn.add(r.slice(2).toLowerCase()):Cn.add(r.toLowerCase());(async()=>{try{let r=await import("node:url");typeof r.domainToUnicode=="function"&&(An=r.domainToUnicode)}catch{}})();il=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,al=/^[\da-f:]+$/i;cl=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});function pl(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 ml(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 Ln(r){try{return new URL(r)}catch{return null}}function Mn(){return new Ae}function On(r){return Ae.fromJSON(r)}var hl,fl,dl,$o,Ae,Ho=B(()=>{"use strict";hr();hl=4096,fl=50,dl=3e3,$o=400*24*60*60*1e3;Ae=class r{constructor(e={}){h(this,"dm",new Map);h(this,"total",0);h(this,"cleanupTimer",null);h(this,"maxTotal");h(this,"maxPerDomain");h(this,"domainMatcherFn");this.maxTotal=e.maxTotal??dl,this.maxPerDomain=e.maxPerDomain??fl,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=Ln(t.url);if(!n)return!1;let s=kt(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>hl)return!1;let u,f;if(s.domain!==null&&s.domain!==""){let b=s.domain;if(!(this.domainMatcherFn??Et)(i,b)||St(b))return!1;u=b,f=!1}else u=i,f=!0;let p=s.path??Tt(n.pathname),d=s.secure;if(d&&!c)return!1;let g=s.sameSite;if(g==="None"&&!d)return!1;let m;if(s.maxAge!==null){if(s.maxAge<=0)return this.removeCookie(u,p,s.name),!0;let b=Math.min(s.maxAge*1e3,$o);m=o+b}else if(s.expires!==null){if(m=s.expires,m<=o)return this.removeCookie(u,p,s.name),!0;m=Math.min(m,o+$o)}else m=1/0;let y={name:s.name,value:s.value,domain:u,path:p,expires:m,maxAge:s.maxAge,secure:d,httpOnly:s.httpOnly,sameSite:g,createdAt:o,lastAccessed:o,hostOnly:f};return pl(y,n)?(this.putCookie(y),!0):!1}getCookies(e){Math.random()<.01&&this.clearExpired();let t=Ln(e.url);if(!t)return[];let n=t.hostname.toLowerCase(),s=n.replace(/^\[|\]$/g,""),o=t.pathname||"/",i=t.protocol==="https:"||s==="localhost"||s==="127.0.0.1"||s==="::1",a=e.http!==!1,c=e.sameSiteContext??"none",l=Date.now(),u=[];for(let[p,d]of this.dm)if(this.matchDomain(n,p))for(let[,g]of d)for(let[,m]of g)m.hostOnly&&n!==m.domain||m.expires!==1/0&&m.expires<l||Rt(o,m.path)&&(m.secure&&!i||m.httpOnly&&!a||ml(m.sameSite,c)&&(m.name.startsWith("__Secure-")&&!(m.secure&&i)||m.name.startsWith("__Host-")&&!(m.secure&&i&&m.path==="/"&&m.hostOnly)||u.push(m)));u.sort((p,d)=>{let g=d.path.length-p.path.length;return g!==0?g:p.createdAt-d.createdAt});let f=Date.now();for(let p of u)p.lastAccessed=f;return u}getCookieHeader(e){return this.getCookies(e).map(t=>t.name?`${t.name}=${t.value}`:t.value).join("; ")}getCookiesForDomain(e){let t=he(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 At(e))this.setCookie(n,t)}removeCookie(e,t,n){let s=he(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=he(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=Ln(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=he(e),n=[];for(let[s,o]of this.dm)if(s===t||s.endsWith("."+t))for(let[,i]of o)for(let[,a]of i)n.push({...a});return n}putCookie(e){let{domain:t,path:n,name:s}=e;this.dm.has(t)||this.dm.set(t,new Map);let o=this.dm.get(t);o.has(n)||o.set(n,new Map);let i=o.get(n);if(i.has(s)){let a=i.get(s);i.set(s,{...e,createdAt:a.createdAt})}else this.evictForDomain(t,o),this.evictGlobal(),i.set(s,e),this.total++}evictForDomain(e,t){let n=0;for(let i of t.values())n+=i.size;if(n<this.maxPerDomain)return;let s=[];for(let[i,a]of t)for(let[c,l]of a)s.push([i,c,l]);s.sort((i,a)=>i[2].lastAccessed-a[2].lastAccessed);let o=0;for(;n>=this.maxPerDomain&&o<s.length;){let[i,a]=s[o++];t.get(i)?.delete(a)&&(this.total--,n--)}for(let[i,a]of t)a.size===0&&t.delete(i)}evictGlobal(){if(this.total<this.maxTotal)return;let e=[];for(let[n,s]of this.dm)for(let[o,i]of s)for(let[a,c]of i)e.push([n,o,a,c]);e.sort((n,s)=>n[3].lastAccessed-s[3].lastAccessed);let t=0;for(;this.total>=this.maxTotal&&t<e.length;){let[n,s,o]=e[t++],i=this.dm.get(n),a=i?.get(s);a?.delete(o)&&(this.total--,a.size===0&&i.delete(s),i.size===0&&this.dm.delete(n))}}matchDomain(e,t){return this.domainMatcherFn?this.domainMatcherFn(e,t):e===t?!0:ge(e)?!1:e.endsWith("."+t)}}});var jo={};de(jo,{CookieJar:()=>Ae,canonicalizeDomainFull:()=>he,createCookieJar:()=>Mn,decodeIDNLabel:()=>ur,defaultPath:()=>Tt,domainMatch:()=>Et,extractSetCookieHeaders:()=>At,formatSetCookieHeader:()=>Uo,getPublicSuffix:()=>_t,getRegistrableDomain:()=>In,isIPAddress:()=>ge,isPublicSuffix:()=>St,loadCookieJar:()=>On,normalizePath:()=>cr,parseCookieDate:()=>lr,parseSetCookieHeader:()=>kt,pathMatch:()=>Rt,splitSetCookieHeaders:()=>Qe});var Dn=B(()=>{"use strict";Ho();hr()});var Vo={};de(Vo,{BatchingTransport:()=>Pt,ConsoleTransport:()=>Ge,HTTPLogger:()=>Ce,JSONTransport:()=>vt,LogLevel:()=>Ct,MultiTransport:()=>Lt,Redactor:()=>Mt,RemoteTransport:()=>It,createDevelopmentLogger:()=>Ko,createLogger:()=>Fo,createProductionLogger:()=>Wo,toOTelSpan:()=>Bo});function Sl(){let r=Date.now().toString(36),e=(++_l).toString(36).padStart(4,"0"),t=Math.random().toString(36).slice(2,6);return`${r}-${e}-${t}`}function qo(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"&&qo(s[t],n)}function zo(r){return typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength}function Bo(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 El(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 fr(){return typeof performance<"u"?performance.now():Date.now()}function Fo(r){return new Ce(r)}function Wo(r){let e=[new vt];return r.endpoint&&e.push(new Pt(new It(r.endpoint))),new Ce({level:r.level??"INFO",transports:[new Lt(e)],...r.context!==void 0?{context:r.context}:{}})}function Ko(r={}){return new Ce({level:r.level??"DEBUG",transports:[new Ge({pretty:!0,useColors:!0,onWrite:e=>console.log(e)})],redaction:{logRequestBody:r.logBodies??!0,logResponseBody:r.logBodies??!0,maxBodyLength:2048}})}var gl,Ct,yl,wl,bl,Ge,xl,vt,Pt,It,Lt,_l,Mt,ye,Ce,dr=B(()=>{"use strict";z();gl=()=>{try{return globalThis.process?.env?.NODE_ENV}catch{return}},Ct={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},yl=["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"],bl=["application/json","application/x-www-form-urlencoded","text/"],Ge=class{constructor(e={pretty:!1,onWrite:t=>console.log(t)}){h(this,"pretty");h(this,"onWrite");this.pretty=e.pretty??gl()!=="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}]`}},xl=()=>{try{return typeof globalThis.process?.stdout?.write=="function"}catch{return!1}},vt=class{constructor(e=t=>{xl()?globalThis.process.stdout.write(t+`
5
- `):console.log(t)}){h(this,"writeLine");this.writeLine=e}write(e){this.writeLine(JSON.stringify(e))}},Pt=class{constructor(e,t={}){h(this,"inner");h(this,"options");h(this,"buffer",[]);h(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.buffer.length===0)return;let e=this.buffer.splice(0);for(let t of e)this.inner.write(t)}},It=class{constructor(e,t={}){h(this,"endpoint");h(this,"options");h(this,"buffer",[]);h(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._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)})}}},Lt=class{constructor(e){h(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?.()))}},_l=0;Mt=class{constructor(e={}){h(this,"headerSet");h(this,"paramSet");h(this,"bodyFields");h(this,"patterns");h(this,"maxBody");h(this,"logReqBody");h(this,"logResBody");h(this,"allowedTypes");let t=e.headers??yl,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??bl}redactHeaders(e){let t={};for(let[n,s]of Object.entries(e))t[n]=this.headerSet.has(n.toLowerCase())?"***":s;return t}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 e}}redactBody(e,t,n){if(!(n?this.logResBody:this.logReqBody)||!e)return{body:null,size:e?zo(e):null};let o=t??"";if(!this.allowedTypes.some(l=>o.startsWith(l)))return{body:`[${o||"binary"}]`,size:e?zo(e):null};let a;if(e instanceof Uint8Array)try{a=new TextDecoder().decode(e)}catch{return{body:"[binary]",size:e.byteLength}}else a=e;let c=a.length;if(o.includes("application/json")&&this.bodyFields.length>0)try{let l=O(JSON.parse(a));for(let u of this.bodyFields)qo(l,u.split("."));a=JSON.stringify(l)}catch{}for(let l of this.patterns)a=a.replace(l,"***");return a.length>this.maxBody&&(a=a.slice(0,this.maxBody)+`... [truncated ${a.length-this.maxBody} bytes]`),{body:a,size:c}}};ye=class ye{constructor(e={}){h(this,"cfg");h(this,"redactor");h(this,"level");h(this,"activeIds",new Map);this.cfg={level:e.level??"INFO",transports:e.transports??[new Ge],redaction:e.redaction??{},sampleRate:e.sampleRate??1,methods:e.methods??[],statuses:e.statuses??[],excludeURLs:e.excludeURLs??[],context:e.context??{},generateId:e.generateId??Sl},this.redactor=new Mt(this.cfg.redaction),this.level=Ct[this.cfg.level]}_cleanupActiveIds(){let e=fr();if(this.activeIds.size>ye.MAX_ACTIVE_IDS){let t=Array.from(this.activeIds.entries()),n=t.slice(0,t.length-Math.floor(ye.MAX_ACTIVE_IDS*.8));for(let[s]of n)this.activeIds.delete(s)}for(let[t,n]of this.activeIds)e-n.startMs>ye.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:fr(),method:t,url:n});let c=s["content-type"]??s["Content-Type"]??null,l=this.redactor.redactBody(o,c,!1),u={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:l.size,body:l.body,attempt:i,meta:{...this.cfg.context,...a}};this._write(u)}logResponse(e,t,n,s,o,i,a,c={}){let l=this.activeIds.get(e),u=l?fr()-l.startMs:0,f=l?.method??"GET",p=l?.url??"";if(!this._shouldLog("INFO",f,p,t))return;let d=s["content-type"]??s["Content-Type"]??null,g=this.redactor.redactBody(o,d,!0),m=t>=500?"ERROR":t>=400?"WARN":"INFO",y={type:"response",requestId:e,timestamp:new Date().toISOString(),timestampMs:Date.now(),level:m,method:f.toUpperCase(),url:this.redactor.redactURL(p),status:t,statusText:n,headers:this.redactor.redactHeaders(s),bodySize:g.size,body:g.body,durationMs:Math.round(u),attempt:i,cached:a,meta:{...this.cfg.context,...c}};this.activeIds.delete(e),this._write(y)}logError(e,t,n,s,o={}){let i=this.activeIds.get(e),a=i?fr()-i.startMs:0,c=i?.method??"GET",l=i?.url??"";if(!this._shouldLog("ERROR",c,l))return;let u={type:"error",requestId:e,timestamp:new Date().toISOString(),timestampMs:Date.now(),level:"ERROR",method:c.toUpperCase(),url:this.redactor.redactURL(l),error:El(t),status:n,durationMs:Math.round(a),attempt:s,meta:{...this.cfg.context,...o}};this.activeIds.delete(e),this._write(u)}generateRequestId(){return this.cfg.generateId()}child(e){return new ye({...this.cfg,context:{...this.cfg.context,...e}})}async flush(){await Promise.allSettled(this.cfg.transports.map(e=>e.flush?.()))}_write(e){if(!(Ct[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(Ct[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}};h(ye,"MAX_ACTIVE_IDS",1e4),h(ye,"IDLE_TIMEOUT_MS",6e4);Ce=ye});var Un={};de(Un,{SSEClient:()=>Xe,SSEError:()=>fe,SSEMaxReconnectsError:()=>Ye,SSEParser:()=>ve,SSERouter:()=>mr,SSEServerResponse:()=>Ot,SSETransformStream:()=>pr,createJSONSSEStream:()=>Go,createSSEResponse:()=>Xo,createSSEStream:()=>Qo,jsonSSE:()=>Nn,parseSSEText:()=>Yo});async function*Nn(r,e={}){for await(let t of r)if(!(!t.data&&t.data!==""))try{let n=O(JSON.parse(t.data,e.reviver));yield{event:t.event,data:n,id:t.id}}catch(n){e.onError?.(n,t)}}function Qo(r){return new Xe(r)}function Go(r,e={}){return Nn(new Xe(r),e)}function Xo(r,e={}){let t=new Ot;return(async()=>{try{await r(t)}catch(n){console.error("[sse] Generator error:",n)}t.close()})(),t.toResponse(e)}function Yo(r){let e=new ve,t=e.feed(r),n=e.flush();return n&&t.push(n),t}function Jo(r){return new Promise(e=>setTimeout(e,r))}var ve,pr,Xe,mr,Ot,fe,Ye,Dt=B(()=>{"use strict";z();ve=class{constructor(){h(this,"lines",[]);h(this,"id",null);h(this,"event","message");h(this,"data",[]);h(this,"retry",null);h(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":this.id=s||null;break;case"event":this.event=s;break;case"data":this.data.push(s);break;case"retry":{let o=parseInt(s,10);!isNaN(o)&&o>=0&&(this.retry=o);break}}return null}_dispatch(){let e={id:this.id,event:this.event,data:this.data.join(`
6
- `),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}},pr=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)}});h(this,"parser",new ve);h(this,"decoder",new TextDecoder("utf-8"))}},Xe=class{constructor(e){h(this,"config");h(this,"health");h(this,"_closed",!1);h(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;for await(let s of this._stream())if(t.push(s),n++,e.limit&&n>=e.limit||e.signal?.aborted)break;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;for(this._streamController=new AbortController;!this._closed&&!this._streamController?.signal.aborted;){let s=this._closed;if(s||e.signal?.aborted||this._streamController?.signal.aborted)break;let o=new ve,i=null;try{let c={accept:"text/event-stream","cache-control":"no-cache",...e.headers};this.health.lastEventId&&(c["last-event-id"]=this.health.lastEventId);let l={method:e.method,headers:c,body:e.body??null,signal:e.signal??null};e.body!==null&&e.body!==void 0&&(l.duplex="half");let u=await e.fetch(e.url,l),f=e.validateResponse(u);if(f!==!0){let b=typeof f=="string"?f:`SSE server returned ${u.status}`;throw new fe(b,u.status,u)}if(!u.ok)throw new fe(`SSE server error: ${u.status}`,u.status,u);if(!u.body)throw new fe("SSE response has no body",u.status,u);let p=u.headers.get("content-type")??"";if(!p.startsWith("text/event-stream"))throw new fe(`Expected text/event-stream, got: ${p}`,u.status,u);this.health.connected=!0,n=0,t=e.reconnectDelayMs;let d=u.body.getReader(),g=new TextDecoder("utf-8"),m=()=>{i&&clearTimeout(i),e.heartbeatTimeoutMs>0&&(i=setTimeout(()=>{d.cancel("heartbeat timeout")},e.heartbeatTimeoutMs))};m();try{for(;!s&&!e.signal?.aborted;){let{done:b,value:x}=await d.read();if(b)break;let E=g.decode(x,{stream:!0}),R=o.feed(E);for(let A of R)m(),A.retry!==null&&(t=Math.min(A.retry,e.maxReconnectDelayMs)),A.id!==null&&(this.health.lastEventId=A.id),this.health.totalEvents++,this.health.lastEventAt=Date.now(),yield A}}finally{i&&clearTimeout(i);try{d.cancel()}catch{}}let y=o.flush();y&&(this.health.totalEvents++,this.health.lastEventAt=Date.now(),yield y)}catch(c){if(this.health.connected=!1,s||c instanceof Error&&c.name==="AbortError"||e.signal?.aborted)break;if(c instanceof fe&&c.status&&[401,403,404].includes(c.status)||!e.reconnect)throw c;if(e.maxReconnects>0&&n>=e.maxReconnects)throw new Ye(n,e.url);n++,this.health.totalReconnects++,this.health.reconnectAttempt=n;let l=t*e.reconnectJitter*Math.random(),u=Math.min(t+l,e.maxReconnectDelayMs);t=Math.min(t*2,e.maxReconnectDelayMs),e.onReconnect(n,u),i&&(clearTimeout(i),i=null),await Jo(u),o.reset();continue}if(this.health.connected=!1,!e.reconnect)break;if(e.maxReconnects>0&&n>=e.maxReconnects)throw new Ye(n,e.url);n++,this.health.totalReconnects++;let a=Math.min(t,e.maxReconnectDelayMs);e.onReconnect(n,a),i&&(clearTimeout(i),i=null),await Jo(a)}this.health.connected=!1}};mr=class{constructor(){h(this,"handlers",new Map);h(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)=>{try{let o=O(JSON.parse(n));await t(o,s)}catch{}})}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)}},Ot=class{constructor(){h(this,"controller");h(this,"stream");h(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(`: ${e}
1
+ /* kinetex v1.4.0 | MIT | https://github.com/kinetexjs/kinetex */
2
+ var $s=Object.defineProperty;var Us=r=>{throw TypeError(r)};var qa=(r,e,t)=>e in r?$s(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var F=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(n){throw t=[n],n}};var le=(r,e)=>{for(var t in e)$s(r,t,{get:e[t],enumerable:!0})};var f=(r,e,t)=>qa(r,typeof e!="symbol"?e+"":e,t),Fa=(r,e,t)=>e.has(r)||Us("Cannot "+t);var Hs=(r,e,t)=>e.has(r)?Us("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t);var ne=(r,e,t)=>(Fa(r,e,"access private method"),t);function tc(){if(tr)return tr;let r=globalThis;if(r.process?.hrtime)return tr=r.process,tr}function rc(){if(rr)return rr;let r=globalThis;if(r.Buffer&&typeof r.Buffer.isBuffer=="function")return rr=r.Buffer,rr}function _e(r,e={}){let t={...nc};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 Gr(i,t,0)?!t.allowNonFinite&&Xr(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 Gr(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=>Gr(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=>Gr(r[s],e,t+1))}return!0}function Xr(r){return typeof r=="number"&&!Number.isFinite(r)?!0:Array.isArray(r)?r.some(Xr):typeof r=="object"&&r!==null?Object.values(r).some(Xr):!1}function sc(r){let e=_e(r);return e.success?e.value:r}function D(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r)){for(let t=0;t<r.length;t++)r[t]=D(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}D(e[t])}return r}function oc(r){return _e(r,{maxDepth:16,maxStringLength:1*1024*1024,maxArrayLength:1e3,maxObjectKeys:100})}function Ve(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 ic(r){return r instanceof Uint8Array}function ac(r){return r instanceof ArrayBuffer}function cc(r){return Ve(r,globalThis.ReadableStream,"ReadableStream",["getReader","cancel"])}function uc(r){return Ve(r,globalThis.Headers,"Headers",["get","set","append","forEach"])}function lc(r){return Ve(r,globalThis.AbortSignal,"AbortSignal",["addEventListener","removeEventListener"])}function hc(r){if(r===null||typeof r!="object")return!1;let e=Object.getPrototypeOf(r);return e===Object.prototype||e===null}function fc(r){return Ve(r,globalThis.FormData,"FormData",["append","get","getAll","set"])}function dc(r){return Ve(r,globalThis.Blob,"Blob",["arrayBuffer","slice","text","stream"])}function pc(r){return Ve(r,globalThis.URLSearchParams,"URLSearchParams",["append","get","getAll","sort"])}function Je(r){return typeof r!="string"||r.length===0||r.length>4096?!1:mc.test(r)}function Pe(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 gt(r){return yc.some(([e,t])=>r>=e&&r<=t)}function Qr(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 Fs(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=Qr(t[0]);return i===null||i>4294967295?null:i>>>0}let n=[];for(let i=0;i<t.length-1;i++){let a=Qr(t[i]);if(a===null||a>255)return null;n.push(a)}let s=Qr(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 wc(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=Fs(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 bc(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)?gt(e(12)):r[0]===32&&r[1]===2?gt(e(2)):!1}function oe(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)||gc.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=wc(s);if(i===null||bc(i))return!1}else{let i=Fs(s);if(i!==null&&gt(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 yt(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map(s=>yt(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,yt(o))),s}if(r instanceof Set){let s=new Set;return r.forEach(o=>s.add(yt(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]=yt(r[s]));return n}function xc(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 _c(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?` | ${Sc(e)}`:"";return`${r.name}: ${r.message}${t}`}return String(r)}function Sc(r){let e=new Set;try{return JSON.stringify(r,(t,n)=>{if(typeof n=="bigint")return n.toString();if(typeof n=="object"&&n!==null){if(e.has(n))return"[Circular]";e.add(n)}return n})??String(r)}catch{return String(r)}}function Ec(r){if(typeof r!="string"||r.length>2048)return null;try{let e=new URL(r);return oe(e)?(e.username="",e.password="",e.toString()):null}catch{return null}}function Tc(){let r=tc();if(r?.hrtime){let[t,n]=r.hrtime();return t*1e3+n/1e6}return typeof globalThis.Bun<"u",Date.now()}function Rc(r,e){return e?.aborted?Promise.reject(Yr()):new Promise((t,n)=>{let s=()=>{clearTimeout(o),n(Yr())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e&&e.addEventListener("abort",s,{once:!0})})}function nr(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 Ac(r){if(r instanceof Uint8Array)return r.slice();if(r instanceof ArrayBuffer)return new Uint8Array(r.slice(0));let e=rc();return e&&e.isBuffer(r)?new Uint8Array(r):typeof r=="string"?new TextEncoder().encode(r):null}function ie(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 Zr(...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(Yr())};for(let i of e)i.addEventListener("abort",o,{once:!0});return s.signal}function en(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 he(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 Yr(){if(typeof DOMException<"u")return new DOMException("Aborted","AbortError");let r=new Error("Aborted");return r.name="AbortError",r}function tn(){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 kc(){return tn()==="node"}function Cc(){return tn()==="browser"}function vc(){return typeof globalThis?.fetch=="function"}function wt(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 tr,rr,nc,mc,gc,yc,se,q=F(()=>{"use strict";nc={maxDepth:32,maxStringLength:10*1024*1024,maxArrayLength:1e4,maxObjectKeys:1e3,allowNonFinite:!1};mc=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;gc=new Set(["file","ftp","gopher","data","javascript","dict","ldap","ldaps","rlogin","telnet","tn3270","imap","pop","smtp","nntp","news","ssh","git","svn","webcal","urn"]),yc=[[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 Ws(r){return r}function Ic(r){if(typeof r=="string"){for(let e of Lc)if(e===r)return e}}var Lc,x,xt,_t,St,W,Y,nn,sn,Le,Z,fe=F(()=>{"use strict";Lc=["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}},xt=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"}},_t=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}},St=class extends x{constructor(e){super("Request was aborted","EABORT",e!==void 0?{request:e}:{}),this.name="AbortError"}},W=class extends x{constructor(e,t){super(e,"ENETWORK",t!==void 0?{request:t}:{}),this.name="NetworkError"}},Y=class extends x{constructor(e,t){super(e,"EVALIDATION",t!==void 0?{request:t}:{}),this.name="ValidationError"}},nn=class extends x{constructor(e,t){super(e,"EAUTH",t!==void 0?{request:t}:{}),this.name="AuthError"}},sn=class extends x{constructor(e,t){super(e,"EPROXY",t!==void 0?{request:t}:{}),this.name="ProxyError"}},Le=class extends x{constructor(e,t){super(e,"EREDIRECT",t!==void 0?{request:t}:{}),this.name="RedirectError"}},Z=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 to={};le(to,{CREDENTIAL_HEADERS:()=>ir,CloudflareKVAdapter:()=>Et,HTTPCache:()=>de,MemoryStorageAdapter:()=>Ie,TwoTierStorageAdapter:()=>Tt,WebStorageAdapter:()=>Xe,createKVCache:()=>Zs,createLocalStorageCache:()=>Xs,createMemoryCache:()=>Gs,createSessionStorageCache:()=>Ys,createTwoTierCache:()=>eo,getAuthFingerprint:()=>Se});function Js(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 Ks(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 Ge(r){return r.replaceAll(Oc,"").replaceAll(/\s+/g," ").trim()}async function Se(r){let e=new Map;for(let[i,a]of Object.entries(r))e.set(i.toLowerCase(),a);let t=[];for(let i of ir){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 Mc(r){try{let e=new URL(r.url),t=Ge(e.hostname),n=Ge(e.pathname);e.searchParams.sort();let s=Ge(e.search);e.hash="";let o=`${e.protocol}//${t}${e.port?":"+e.port:""}${n}${s}`,i=Ge(r.method.toUpperCase()),a=await Se(r.headers??{}),c=`${i}:${o}`;return a?`${c}:${a}`:c}catch{let e=Ge(r.method.toUpperCase()),t=Ge(r.url),n=await Se(r.headers??{}),s=`${e}:${t}`;return n?`${s}:${n}`:s}}function Dc(r){let e=r.headers["cache-control"]??r.headers["Cache-Control"]??"",t=Js(e);return t.noCache||t.mustRevalidate}function Vs(r,e,t){let n=r.headers["cache-control"]??r.headers["Cache-Control"]??"",s=Js(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 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 or(r){return{...r,response:Qs(r.response),tags:[...r.tags]}}function Qs(r){return{...r,headers:{...r.headers},body:r.body instanceof Uint8Array?new Uint8Array(r.body):r.body}}function Nc(r){return r?typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength:0}function Gs(r){return new de({...r,storage:new Ie})}function Xs(r,e){if(typeof localStorage>"u")throw new Error("localStorage is not available");return new de({...e,storage:new Xe(localStorage,r)})}function Ys(r,e){if(typeof sessionStorage>"u")throw new Error("sessionStorage is not available");return new de({...e,storage:new Xe(sessionStorage,r)})}function Zs(r,e){return new de({...e,storage:new Et(r)})}function eo(r,e){return new de({...e,storage:new Tt(r)})}var Ie,Xe,Et,Tt,Oc,ir,on,an,de,Ye=F(()=>{"use strict";q();Ie=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}},Xe=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=_e(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()}},Et=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)))}},Tt=class{constructor(e){f(this,"l2");f(this,"l1",new Ie);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()])}};Oc=/[\u0000-\u001f\u007f-\u009f]/g;ir=["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"];on=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}},an=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 on(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}},de=class{constructor(e={}){f(this,"cfg");f(this,"storage");f(this,"lru",new an);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??Mc,storage:e.storage??new Ie,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=Ks(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:or(n),stale:n.mustRevalidate===!0}):n.staleUntil>s?(this.stats.staleHits++,this.lru.touch(t),this._updateHitRate(),{entry:or(n),stale:!0}):n.staleOnError>s?(this.stats.staleHits++,this._updateHitRate(),{entry:or(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}:Vs(t,this.cfg.defaultTtlMs,this.cfg.honorCacheControl);if(!a&&!n.force)return!1;let c=Nc(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 p=t.headers.vary??t.headers.Vary??null,d=p?Ks(p,e.headers):"";if(d===null)return!1;let m=n.tags??[],g={response:Qs(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:d,mustRevalidate:Dc(t),tags:m,size:c+256},y=await this._key(e);if(await this._ensureCapacity(g.size),await this.storage.set(y,g)===!1)return!1;this.lru.touch(y),this.stats.totalEntries++,this.stats.totalSizeBytes+=g.size;for(let _ of m){let b=this.tagIndex.get(_)??new Set;b.add(y),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}=Vs(i,this.cfg.defaultTtlMs,this.cfg.honorCacheControl),l=Date.now(),h=Math.min(a===1/0?this.cfg.maxAbsoluteAgeMs:a,this.cfg.maxAbsoluteAgeMs),p={...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,p),this.lru.touch(n),or(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),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 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={...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=_e(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(p=>typeof p=="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 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 $c(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 no(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 Hc(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 jc(r){return r.length>=2&&r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\(.)/g,"$1"):r}function pe(r){return`"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function ee(r){let e=new Map;for(let t of Hc(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,jc(n.slice(s+1).trim()))}}return e}function ur(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 Bc(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 mn(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:ee(r.slice(e));return{mediaType:`${s}/${o}`,type:s,subtype:o,charset:a.get("charset")??null,boundary:a.get("boundary")??null,params:a}}function ao(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 co(r){if(!r)return null;let e=r.indexOf(";"),t=(e===-1?r:r.slice(0,e)).trim().toLowerCase(),n=e===-1?new Map:ee(r.slice(e)),s=null,o=n.get("filename*");o&&(s=Bc(o)),s===null&&(s=n.get("filename")??null);let i=n.get("name")??null;return{type:t,filename:s,name:i,params:n}}function uo(r){let e=r.type;if(r.name&&(e+=`; name=${pe(r.name)}`),r.filename){e+=`; filename=${pe(r.filename)}`;let t=encodeURIComponent(r.filename);t!==r.filename&&(e+=`; filename*=UTF-8''${t}`)}return e}function zc(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 zc(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 ho(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 fn(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=$c(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.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 dn(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=ee(c);e.push({scheme:a,realm:u.get("realm")??null,params:u})}return e}function qc(r){return`Bearer ${r}`}function Fc(r,e){return`Basic ${no(`${r}:${e}`)}`}function gn(r){return ur(r)}function fo(r){return ur(r)}function po(r){return ur(r)}function Wc(r){return r.trim()?ur(r):[]}function Kc(r,e){if(e.length===0)return null;if(!r.trim())return e[0];let t=i=>i.split(";")[0].trim().toLowerCase(),n=gn(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 mo(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 go(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 pn(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=ee(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 Vc(r){return r.map(e=>{let t=`<${e.uri}>`;e.rel&&(t+=`; rel=${pe(e.rel)}`),e.type&&(t+=`; type=${pe(e.type)}`),e.hreflang&&(t+=`; hreflang=${pe(e.hreflang)}`),e.title&&(t+=`; title=${pe(e.title)}`),e.media&&(t+=`; media=${pe(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}=${pe(String(o))}`);return t}).join(", ")}function yo(r){let e={by:null,for:[],host:null,proto:null};for(let t of r.split(",")){let n=ee(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 yn(r){let e=r.get(S.Forwarded);if(e)return yo(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 Jc(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 cn(r){if(!r)return null;let e=Qc(r);return e&&(/^_/.test(e)||Jc(e))?e:null}function wo(r,e={}){let t=Math.max(0,Math.trunc(e.trustedHops??0)),n=yn(r);if(n.for.length>0){let s=t===0?0:n.for.length-t;for(let o=s;o>=0;o--){let i=cn(n.for[o]);if(i)return i}for(let o of n.for){let i=cn(o);if(i)return i}return null}return cn(r.get(S.XRealIP))}function Qc(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 wn(r){let e=r.trim();if(!Gc.test(e)&&!Xc.test(e)&&!Yc.test(e))return null;let t=Date.parse(e);return isNaN(t)?null:t}function lr(r){let e=r.trim();if(/^\d+$/.test(e))return{date:null,delay:parseInt(e,10)};let t=wn(e);return t!==null?{date:new Date(t),delay:null}:{date:null,delay:null}}function Zc(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 p=u.trim().replace(/^"|"$/g,"");if(p){let d=Date.parse(p);if(!isNaN(d))return new Date(d)}})();return{code:l,agent:a,text:c,...h!==void 0?{date:h}:{}}}).filter(s=>s!==null)}function bo(r){let e=ee(";"+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 bn(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 xn(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=ee(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 eu(r){return r.map(e=>{let t=e.name;return e.duration!==null&&(t+=`;dur=${e.duration}`),e.description!==null&&(t+=`;desc=${pe(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(";"),c=a!==-1?ee(";"+i.slice(a+1)):new Map,u=(a!==-1?i.slice(0,a):i).replace(/^"|"$/g,""),l,h;if(u.startsWith("[")){let p=u.indexOf("]");if(p===-1)l=u,h=443;else{l=u.slice(0,p+1);let d=u.slice(p+2);h=d?parseInt(d,10):443}}else{let p=u.lastIndexOf(":");l=p===-1?u:u.slice(0,p),h=p===-1?443:parseInt(u.slice(p+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 tu(r){let e=new me;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 ru(r){let e={};return r.forEach((t,n)=>{let o=r.getAll(n);e[n]=o.length===1?o[0]:[...o]}),e}function nu(r){return new me(r)}function su(r={}){let e=new me;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,bn(t))}if(r.csp){let t=typeof r.csp=="string"?r.csp:xn(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 ou(r){let e=new me,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 iu(r){return new Me(r)}function au(r){return new Me(r,"request")}function _n(){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 Sn(r,e=255){return typeof r!="string"||r.length===0||r.length>e?!1:/^[\x21-\x7e]+$/.test(r)}function cu(r){return new Me(r,"response")}function uu(r){return new Me(r,"immutable")}var Oe,S,ar,cr,Ze,ro,Uc,z,so,un,ln,hn,oo,io,me,Gc,Xc,Yc,Me,Ee=F(()=>{"use strict";q();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"};ar=Je,cr=Pe,Ze=new Set(["set-cookie","www-authenticate","proxy-authenticate"]),ro=new Set(["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]),Uc=new Set(["set-cookie","set-cookie2"]),me=class{constructor(e,t="none"){Hs(this,z);f(this,"map",new Map);f(this,"guard");this.guard=t,e!=null&&ne(this,z,so).call(this,e)}append(e,t){ne(this,z,hn).call(this,e);let n=ne(this,z,un).call(this,e),s=ne(this,z,ln).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,z,io).call(this,e),this.map.delete(e.toLowerCase())}get(e){let t=this.map.get(e.toLowerCase());return t?Ze.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,z,oo).call(this,e);let n=ne(this,z,un).call(this,e),s=ne(this,z,ln).call(this,t);this.map.set(n,{name:e,values:[s]})}forEach(e,t){for(let[n,s]of this.map){let o=Ze.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(Ze.has(e))for(let n of t.values)yield n;else yield t.values.join(", ")}*entries(){for(let[e,t]of this.map)if(Ze.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]=Ze.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 Oe(this,e??this.guard)}freeze(){return this.clone("immutable")}merge(e,t={}){let n=e instanceof Oe?e:new Oe(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 Oe;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 Oe;for(let[n,s]of e.map){let o=this.get(n),i=Ze.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,so=function(e){if(e instanceof Oe){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))},un=function(e){if(!ar(e))throw new TypeError(`Invalid header name: "${e}"`);return e.toLowerCase()},ln=function(e){let t=e.trim();if(!cr(t))throw new TypeError(`Invalid header value for: "${t}"`);return t},hn=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&ro.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`);if(this.guard==="response"&&Uc.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for response guard`)},oo=function(e){ne(this,z,hn).call(this,e)},io=function(e){if(this.guard==="immutable")throw new TypeError("Headers are immutable");if(this.guard==="request"&&ro.has(e.toLowerCase()))throw new TypeError(`Header "${e}" is forbidden for request guard`)};Oe=me;Gc=/^(?: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$/,Xc=/^(?: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$/,Yc=/^(?: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}$/;Me=class extends me{get contentType(){let e=this.get(S.ContentType);return e?mn(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,ao(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?co(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,uo(e))}get cacheControl(){let e=this.get(S.CacheControl);return e?lo(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,ho(e))}get authorization(){let e=this.get(S.Authorization);return e?fn(e):null}set authorization(e){if(e===null){this.delete(S.Authorization);return}this.set(S.Authorization,e)}get accept(){return gn(this.get(S.Accept)??"")}get acceptEncoding(){return fo(this.get(S.AcceptEncoding)??"")}get acceptLanguage(){return po(this.get(S.AcceptLanguage)??"")}get range(){let e=this.get(S.Range);return e?mo(e):null}get contentRange(){let e=this.get(S.ContentRange);return e?go(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?pn(e):[]}get retryAfter(){let e=this.get(S.RetryAfter);return e?lr(e):null}get hsts(){let e=this.get(S.StrictTransportSecurity);return e?bo(e):null}set hsts(e){if(e===null){this.delete(S.StrictTransportSecurity);return}this.set(S.StrictTransportSecurity,bn(e))}get csp(){let e=this.get(S.ContentSecurityPolicy);return e?xo(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,xn(e))}get serverTiming(){let e=this.get(S.ServerTiming);return e?_o(e):[]}get clientIP(){return wo(this)}get forwarded(){return yn(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?pn(e)[0]??null:null}get altSvc(){let e=this.get(S.AltSvc);return e?So(e):[]}get wwwAuthenticate(){let e=this.get("www-authenticate");return e?dn(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?dn(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?fn(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 ${no(`${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 Xo={};le(Xo,{connectThroughProxy:()=>Wu});function zu(r){return/^socks5h?:/i.test(r)}function qu(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 Fu(r){let e=r.split(`\r
4
+ `,1)[0]??"",t=/^HTTP\/1\.[01] (\d{3})(?: (.*))?$/.exec(e);return t?{status:Number(t[1]),reason:t[2]??""}:null}async function Wu(r,e,t={}){let n=t.request!==void 0?{request:t.request}:{};if(zu(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(y){throw new x(`proxy url "${r.url}" is not a valid URL`,"EVALIDATION",{...n,cause:y})}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??ju,h=s.protocol==="https:"?await Vu(i,{host:s.hostname,port:a,servername:s.hostname,...t.ca!==void 0?{ca:t.ca}:{}},l,t.signal,n,`proxy ${s.host}`):await Ku(o,{host:s.hostname,port:a},l,t.signal,n,`proxy ${s.host}`),p=qu(r),d=[`CONNECT ${u} HTTP/1.1`,`Host: ${u}`,"Proxy-Connection: Keep-Alive",...p!==void 0?[`Proxy-Authorization: ${p}`]:[],"",""];h.write(d.join(`\r
5
+ `));let m="",g=await new Promise(y=>{let w=()=>{for(;;){let $=h.read();if($===null)return;m+=$.toString("latin1")}},_=()=>{w();let $=m.indexOf(`\r
6
+ \r
7
+ `);if($===-1){m.length>Bu&&(I(),y({ok:!1,err:new x("Proxy sent an oversized CONNECT response","EPROXY",n)}));return}I();let v=Fu(m.slice(0,$));if(!v){y({ok:!1,err:new x(`Proxy returned a malformed CONNECT response: ${JSON.stringify(m.slice(0,$).split(`\r
8
+ `,1)[0]??"")}`,"EPROXY",n)});return}if(v.status>=200&&v.status<300){let P=m.slice($+4);P.length>0&&h.unshift(Buffer.from(P,"latin1")),y({ok:!0});return}if(v.status===407){y({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}y({ok:!1,err:new x(`Proxy refused CONNECT to ${u}: ${v.status} ${v.reason}`.trim(),"EPROXY",n)})},b=$=>{I(),y({ok:!1,err:new x(`Proxy connection failed: ${$.message}`,"ENETWORK",{...n,cause:$})})},T=()=>{I(),y({ok:!1,err:new x(`Proxy closed the connection before answering CONNECT for ${u}`,"EPROXY",n)})},k=()=>{I(),h.destroy(),y({ok:!1,err:new x(`Proxy did not respond to CONNECT for ${u} within ${l}ms`,"ETIMEOUT",n)})},C=()=>{I(),h.destroy(),y({ok:!1,err:new x("Proxy connection aborted","EABORT",n)})},E=setTimeout(k,l);typeof E.unref=="function"&&E.unref();function I(){clearTimeout(E),h.off("readable",_),h.off("error",b),h.off("end",T),h.off("close",T),h.off("timeout",k),t.signal?.removeEventListener("abort",C)}h.on("readable",_),h.once("error",b),h.once("end",T),h.once("close",T),h.setTimeout(l,k),t.signal?.addEventListener("abort",C,{once:!0}),w()});if(!g.ok)throw h.destroy(),g.err;return e.protocol!=="https:"?(h.setTimeout(0),h):await new Promise((y,w)=>{let _=()=>{k(),h.destroy(),w(new x(`TLS handshake through proxy to ${e.hostname} did not complete within ${l}ms`,"ETIMEOUT",n))},b=()=>{k(),h.destroy(),w(new x("Proxy connection aborted","EABORT",n))},T=setTimeout(_,l);typeof T.unref=="function"&&T.unref(),t.signal?.addEventListener("abort",b,{once:!0});function k(){clearTimeout(T),t.signal?.removeEventListener("abort",b)}let C=i.connect({socket:h,servername:t.servername??e.hostname,...t.ca!==void 0?{ca:t.ca}:{}},()=>{k(),h.setTimeout(0),y(C)});C.once("error",E=>{k(),h.destroy(),w(new x(`TLS handshake through proxy failed for ${e.hostname}: ${E.message}`,"ENETWORK",{...n,cause:E}))})})}async function Ku(r,e,t,n,s,o){return await new Promise((i,a)=>{let c=r.connect({host:e.host,port:e.port}),u=d=>{p(),a(new x(`Cannot reach ${o}: ${d.message}`,"ENETWORK",{...s,cause:d}))},l=setTimeout(()=>{p(),c.destroy(),a(new x(`Connecting to ${o} timed out`,"ETIMEOUT",s))},t);typeof l.unref=="function"&&l.unref();let h=()=>{p(),c.destroy(),a(new x("Proxy connection aborted","EABORT",s))};function p(){clearTimeout(l),c.off("error",u),n?.removeEventListener("abort",h)}c.once("error",u),c.once("connect",()=>{p(),i(c)}),n?.aborted?h():n?.addEventListener("abort",h,{once:!0})})}async function Vu(r,e,t,n,s,o){return await new Promise((i,a)=>{let c=r.connect({host:e.host,port:e.port,servername:e.servername,...e.ca!==void 0?{ca:e.ca}:{}},()=>{p(),i(c)}),u=d=>{p(),a(new x(`Cannot reach ${o}: ${d.message}`,"ENETWORK",{...s,cause:d}))},l=setTimeout(()=>{p(),c.destroy(),a(new x(`Connecting to ${o} timed out`,"ETIMEOUT",s))},t);typeof l.unref=="function"&&l.unref();let h=()=>{p(),c.destroy(),a(new x("Proxy connection aborted","EABORT",s))};function p(){clearTimeout(l),c.off("error",u),n?.removeEventListener("abort",h)}c.once("error",u),n?.aborted?h():n?.addEventListener("abort",h,{once:!0})})}var ju,Bu,Yo=F(()=>{"use strict";fe();ju=3e4,Bu=64*1024});var pi={};le(pi,{ContentTypeError:()=>Ne,HTTPResponseError:()=>rt,ResponseCache:()=>Bn,ResponseDecodeError:()=>nt,ResponseSizeLimitError:()=>De,applyDecompression:()=>wr,assertOk:()=>ii,assertOkJSON:()=>ai,createLimitedReader:()=>di,decodeBody:()=>yr,decompressStream:()=>Fn,diffResponses:()=>ci,extractServerTiming:()=>li,isBinary:()=>ti,isJSON:()=>gr,isText:()=>zn,normalizeHeaders:()=>ae,normalizeResponse:()=>ei,parseContentType:()=>$e,parseMultipartResponse:()=>Qn,readBlob:()=>Vn,readBodyWithLimit:()=>qn,readBytes:()=>br,readFormData:()=>ui,readJSON:()=>Wn,readJSONStream:()=>oi,readNDJSON:()=>Jn,readStream:()=>Pt,readText:()=>Kn});function ae(r){return wt(r)}function ei(r){return{status:r.status,statusText:r.statusText,headers:ae(r.headers),url:r.url,redirected:r.redirected,ok:r.ok,bodyUsed:r.bodyUsed}}function $e(r){if(!r||r.length>Qu)return null;let e=mn(r);return e?{mediaType:e.mediaType,type:e.type,subtype:e.subtype,charset:e.charset,boundary:e.boundary}:null}function gr(r){if(!r)return!1;let e=$e(r);return e?e.mediaType==="application/json"||e.subtype.endsWith("+json"):!1}function zn(r){return r?$e(r)?.type==="text":!1}function ti(r){return!zn(r)&&!gr(r)}function vt(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 ri(r){return r==="truncate"||r==="abort"?r:"throw"}async function qn(r,e,t,n){let s=ri(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 vt(o,n);if(c){if(n?.aborted)throw new DOMException("Response reading aborted","AbortError");break}let l=a+u.byteLength;if(l>t.maxBytes){if(t.onExceedCallback?.(l,t.maxBytes),s==="throw")throw await o.cancel("size limit exceeded"),new De(l,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(u.slice(0,h)),a+=h);break}}i.push(u),a+=u.byteLength}}finally{o.releaseLock()}return fi(i)}function Gu(r){if(!r)return"utf-8";let e=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Zo,e)?Zo[e]:"utf-8"}function Xu(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 yr(r,e,t){let n=Xu(r),s=n??Gu(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 nt(String(i),s,t)}}}function Yu(r,e,t=1e8){let n=Fn(r,e),s=0,o=new TransformStream({transform(i,a){if(s+=i.byteLength,s>t){a.error(new De(s,t,"decompression"));return}a.enqueue(i)}});return n.pipeThrough(o)}function Fn(r,e){let t=e.trim().toLowerCase();if(t==="br")return Zu(r);if(t==="zstd")return el(r);if(typeof DecompressionStream>"u")return r;try{let n=t,s=new DecompressionStream(n);return r.pipeThrough(s)}catch{return r}}function Zu(r){return ni()?si(r,e=>e.createBrotliDecompress()):r}function ni(){try{return typeof globalThis.process?.versions?.node=="string"}catch{return!1}}function si(r,e){let t=!1,n=null,s=!1;return new ReadableStream({async start(o){let i=await import("node:zlib"),a=e(i);if(n=r.getReader(),s){n.cancel().catch(()=>{}),n.releaseLock(),n=null;return}let c=u=>{t||(t=!0,o.error(u))};a.on("data",u=>{t||o.enqueue(new Uint8Array(u.buffer,u.byteOffset,u.byteLength))}),a.on("end",()=>{t||(t=!0,o.close())}),a.on("error",c);try{for(;;){let{done:u,value:l}=await n.read();if(u){a.end();break}a.write(l)}}catch(u){a.destroy(u instanceof Error?u:new Error(String(u))),c(u)}finally{n.releaseLock(),n=null}},cancel(){t=!0,s=!0,n?.cancel().catch(()=>{})}})}function el(r){if(typeof DecompressionStream<"u")try{let e=DecompressionStream;return r.pipeThrough(new e("zstd"))}catch{}return ni()?si(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 wr(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=Yu(s,o);return s}async function Wn(r,e={}){let n=ae(r.headers)["content-type"]??null,s=r.url;e.expectedContentType?hi(n,e.expectedContentType,s):gr(n);let o=await Gn(r,s,e),i=e.charset??$e(n??"")?.charset??null,a=yr(o,i,s);try{return D(JSON.parse(a))}catch(c){throw new nt(`JSON parse failed: ${c}`,"json",s)}}async function Kn(r,e={}){let n=ae(r.headers)["content-type"]??null,s=r.url;e.expectedContentType&&hi(n,e.expectedContentType,s);let o=await Gn(r,s,e),i=e.charset??$e(n??"")?.charset??null;return yr(o,i,s)}async function br(r,e={}){let t=r.url;return await Gn(r,t,e)}async function Vn(r,e={}){let t=await br(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 Pt(r,e={}){if(!r.body)return new ReadableStream({start:s=>s.close()});let t=ae(r.headers),n=r.body;return e.decompress!==!1&&(n=wr(n,t)),e.sizeLimit&&(n=rl(n,r.url,e.sizeLimit,e.signal)),n}async function*Jn(r,e={}){let n=Pt(r,e).getReader(),s=new TextDecoder("utf-8"),o="";try{for(;!e.signal?.aborted;){let{done:i,value:a}=await vt(n,e.signal);if(i){let u=o.trim();if(u)try{yield D(JSON.parse(u))}catch(l){e.onParseError?.(l,u)}break}o+=s.decode(a,{stream:!0});let c=o.split(`
9
+ `);o=c.pop()??"";for(let u of c){let l=u.trim();if(!(!l||l.startsWith("#")))try{yield D(JSON.parse(l))}catch(h){e.onParseError?.(h,l)}}}}finally{n.releaseLock()}}async function*oi(r,e={}){let n=Pt(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:p}=await vt(n,e.signal);if(h){let d=l();if(d)try{let m=D(JSON.parse(d));e.onObject?.(m),yield m}catch(m){e.onParseError?.(m,d)}break}i+=s.decode(p,{stream:!0});for(let d=0;d<i.length;d++){let m=i[d];if(c){u?u=!1:m==="\\"?u=!0:m==='"'&&(c=!1);continue}if(m==='"'){c=!0;continue}if(m==="{"||m==="[")o===0&&(a=d),o++;else if((m==="}"||m==="]")&&(o--,o===0&&a!==-1)){let g=i.slice(a,d+1);try{let y=D(JSON.parse(g));e.onObject?.(y),yield y}catch(y){e.onParseError?.(y,g)}i=i.slice(d+1),a=-1,c=!1,u=!1,d=-1}}if(i.length>1e7)throw new Error("JSON stream buffer exceeded 10MB limit")}}finally{n.releaseLock()}}async function ii(r,e={}){if(!(e.isError??(o=>o>=400))(r.status))return r;let n=ae(r.headers),s=null;if(e.readBody!==!1&&r.body&&!r.bodyUsed)try{s=await r.clone().text()}catch{}throw new rt(r.status,r.statusText,r.url,n,s)}async function ai(r){if(r.ok)return{response:r};let e=ae(r.headers),t=null;if(r.body&&!r.bodyUsed)try{t=await r.clone().text()}catch{}throw new rt(r.status,r.statusText,r.url,e,t)}async function ci(r,e){let t=ae(r.headers),n=ae(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 Qn(r){let e=r.headers.get("content-type")??"",t=$e(e);if(!t?.boundary)throw new Ne("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,p)=>h===o[p]))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 p=tl(s,c,h);if(!p){c=u+o.length;continue}let d=s.subarray(c,p.headerEnd),m=s.subarray(p.bodyStart,h),g=new TextDecoder().decode(d),y={};for(let w of g.split(/\r\n|\n/)){let _=w.indexOf(":");_!==-1&&(y[w.slice(0,_).trim().toLowerCase()]=w.slice(_+1).trim())}if(i.push({headers:y,body:m}),c=u+o.length,c<s.length-1&&s[c]===45&&s[c+1]===45)break}return i}function tl(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 ui(r){let e=await Qn(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 li(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=Ju(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):[]}async function Gn(r,e,t){if(!r.body)return new Uint8Array(0);let n=ae(r.headers),s=r.body;if(t.decompress!==!1&&(s=wr(s,n)),t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");if(t.sizeLimit)return qn(s,e,t.sizeLimit,t.signal);let o=s.getReader(),i=[];try{for(;;){if(t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");let{done:a,value:c}=await vt(o,t.signal);if(a){if(t.signal?.aborted)throw new DOMException("Response reading aborted","AbortError");break}i.push(c)}}finally{t.signal?.aborted&&await o.cancel("aborted").catch(()=>{}),o.releaseLock()}return fi(i)}function rl(r,e,t,n){let s=ri(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 vt(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=o+u.byteLength;if(l>t.maxBytes){if(t.onExceedCallback?.(l,t.maxBytes),s==="throw"){await a.cancel("size limit"),i.error(new De(l,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(u.slice(0,h)),i.close(),await a.cancel("size limit");return}}o+=u.byteLength,i.enqueue(u)}}catch(c){i.error(c)}}})}function hi(r,e,t){if(!r)throw new Ne(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 Ne(e,r,t)}function fi(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 di(r,e="throw"){let t={maxBytes:r,onExceed:e};return{json:(n,s)=>Wn(n,{sizeLimit:t,...s}),text:(n,s)=>Kn(n,{sizeLimit:t,...s}),bytes:(n,s)=>br(n,{sizeLimit:t,...s}),blob:(n,s)=>Vn(n,{sizeLimit:t,...s}),stream:(n,s)=>Pt(n,{sizeLimit:t,...s}),ndjson:(n,s)=>Jn(n,{sizeLimit:t,...s})}}var Ju,rt,De,Ne,nt,Qu,Zo,Bn,xr=F(()=>{"use strict";Ee();q();Ju=ee,rt=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}},De=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}},Ne=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}},nt=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}};Qu=8192;Zo={"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"};Bn=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 Ri={};le(Ri,{DEFAULT_ACCEPT_ENCODING:()=>Er,FetchTransport:()=>st,HAS_NATIVE_FETCH:()=>bi,HTTP_STATUS_TEXTS:()=>Ti,IS_NODE:()=>Ue,NodeHTTP2Transport:()=>Lt,RUNTIME:()=>Re,createTransport:()=>Tr,decompressBodyStream:()=>Ar,detectRuntime:()=>Yn,encodeMultipart:()=>Mt,getEffectiveRuntime:()=>wi,normalizeHeaders:()=>_i,parseBody:()=>Ot,readRawBody:()=>Rr,sendWithTimeout:()=>It,setRuntime:()=>yi});function Yn(){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":Sr.process?.versions?.node!==void 0?"node":typeof globalThis.fetch=="function"?"edge":"unknown"}function yi(r){if(r!==null&&!mi.includes(r))throw new TypeError(`setRuntime: unknown runtime ${JSON.stringify(r)}. Expected one of: ${mi.join(", ")}`);gi=r}function wi(){return gi??Re}function xi(){try{return globalThis.process?.env?.NODE_ENV==="production"}catch{return!1}}function Tr(r,e=!0,t,n){let s=r!==void 0||n?.dispatcher!==void 0;return Ue&&e&&s&&(xi()||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.')),Ue&&e&&!s?new Lt({...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?.onDroppedHeader!==void 0?{onDroppedHeader:n.onDroppedHeader}:{},...n?.ca!==void 0?{ca:n.ca}:{},...n?.proxy!==void 0?{proxy:n.proxy}:{}}):new st({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}:{}})}async function It(r,e,t){if(t<=0)return r.send(e);let n=new AbortController,s=setTimeout(()=>{n.abort(new Z(t,e))},t),o=Zr(e.signal,n.signal)??null,i={...e,signal:o},a=new Promise((c,u)=>{n.signal.addEventListener("abort",()=>u(new Z(t,e)),{once:!0})});try{let c=await Promise.race([r.send(i),a]);if(clearTimeout(s),n.signal.aborted)throw new Z(t,e);return c}catch(c){throw clearTimeout(s),n.signal.aborted&&!(c instanceof Z)?new Z(t,e):c}}async function Rr(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(d=>{throw s.cancel("read error").catch(()=>{}),d}),c]),{done:h,value:p}=l;if(h)break;if(e>0){let d=i+p.byteLength;if(d>e)throw await s.cancel("size limit exceeded"),new xt(d,e)}o.push(p),i+=p.byteLength}}catch(l){throw s.cancel("error during read").catch(()=>{}),l}finally{n?.removeEventListener("abort",u),s.releaseLock()}return nr(o)}function Ot(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=_e(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 _i(r){return wt(r)}function nl(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 sl(r,e){let n=r.httpVersion;if(typeof n=="string"){let o=nl(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 ol(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 Si(r){return new ReadableStream({start(e){let t=!1,n=!1;r.on("data",s=>{if(s instanceof Uint8Array)e.enqueue(s);else if(Sr.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 Ei(r,e){r.write(e)||await new Promise(n=>r.once("drain",n))}async function al(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 Ei(r,s)}}else if(e instanceof Uint8Array||e instanceof ArrayBuffer)r.end(Sr.Buffer?new Uint8Array(e):e);else if(typeof e=="string")r.end(e);else{let{bytes:t}=await _r(e);r.end(t)}}async function cl(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 Ei(r,s)}}else if(e instanceof Uint8Array||e instanceof ArrayBuffer)r.end(Sr.Buffer?new Uint8Array(e):e);else if(typeof e=="string")r.end(e);else{let{bytes:t}=await _r(e);r.end(t)}}async function _r(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 Mt(r);return{bytes:e,contentType:`multipart/form-data; boundary=${t}`}}return{bytes:new Uint8Array(0)}}function Xn(r){return r.replace(/[\r\n"\\]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}async function Mt(r,e){let t=e??`----kinetexFormBoundary${he(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="${Xn(i)}"\r
11
+ \r
12
+ `),o(a),o(`\r
13
+ `);continue}o(`Content-Disposition: form-data; name="${Xn(i)}"; filename="${Xn(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:nr(s),boundary:t}}async function Ar(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(()=>(xr(),pi));return i(r,e)}var Sr,Re,gi,mi,Ue,bi,Er,st,Lt,il,Ti,ot=F(()=>{"use strict";fe();q();Ee();q();Sr=globalThis;Re=Yn(),gi=null,mi=["node","deno","bun","browser","cloudflare-workers","edge","unknown"];Ue=Re==="node",bi=Re!=="node"||typeof globalThis.fetch=="function";Er="gzip, deflate, br",st=class{constructor(e=globalThis.fetch){f(this,"fetchFn");f(this,"strict");f(this,"onDroppedHeader");f(this,"dispatcher");typeof e=="function"?(this.fetchFn=e,this.strict=!1,this.onDroppedHeader=void 0,this.dispatcher=void 0):(this.fetchFn=e.fetchFn??globalThis.fetch,this.strict=e.strict??!1,this.onDroppedHeader=e.onDroppedHeader,this.dispatcher=e.dispatcher)}async send(e){let t={};for(let[u,l]of Object.entries(e.headers??{}))if(!(typeof u!="string"||typeof l!="string")){if(!ar(u)||!cr(l)){if(this.strict)throw new x(`Invalid header dropped in strict mode: "${u}"`,"EVALIDATION",{request:e});this.onDroppedHeader?this.onDroppedHeader(u,l):xi()||console.warn(`[kinetex] Invalid header dropped: "${u}" \u2014 value may contain illegal characters. Pass strictHeaders: true to throw instead.`);continue}if(u==="__proto__"){Object.defineProperty(t,u,{value:l,writable:!0,enumerable:!0,configurable:!0});continue}t[u]=l}let n=t["accept-encoding"];n&&n.toLowerCase().replace(/\s+/g," ")===Er&&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,Ue&&typeof s.body=="object"&&s.body!==null&&"getReader"in s.body&&(s.duplex="half")),this.dispatcher!==void 0&&(s.dispatcher=this.dispatcher);let o;try{o=await this.fetchFn(e.url,s)}catch(u){throw en(u)?new x("Request was aborted","EABORT",{request:e,cause:u}):new x(u instanceof Error?u.message:"Network request failed","ENETWORK",{request:e,cause:u})}let i=_i(o.headers),a=sl(o,i),c=!0;return Re==="deno"&&(o.headers.get("content-encoding")||"").toLowerCase().includes("deflate")&&(c=!1),{status:o.status,statusText:o.statusText,headers:i,body:o.body,url:o.url||e.url,redirected:o.redirected,httpVersion:a,alreadyDecompressed:c}}},Lt=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,"_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._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._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}))},p=()=>t.signal?.removeEventListener("abort",h);t.signal?.addEventListener("abort",h,{once:!0}),u.once("connect",()=>{p(),clearTimeout(l),a(u)}),u.once("error",d=>{p(),clearTimeout(l),c(d)})});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(ol(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,p;!l||l.session.destroyed||l.session.closed||h?p=await this._getOrCreateSession(u,s,n):(p=l.session,this.sessionUsage.set(u,Date.now()));let d=s.body,m;s.body instanceof FormData&&(m=await _r(s.body),d=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,P]of Object.entries(s.headers)){if(v.startsWith(":")){this._rejectHeader(v,Array.isArray(P)?P.join(", "):String(P),"is not a valid header name",s);continue}if(v==="__proto__"){Object.defineProperty(g,v,{value:P,writable:!0,enumerable:!0,configurable:!0});continue}g[v]=P}for(let[v,P]of Object.entries(g)){if(v.startsWith(":"))continue;let xe=Array.isArray(P)?P.join(", "):String(P),K=ar(v),dt=cr(xe);(!K||!dt)&&(this._rejectHeader(v,xe,K?"contains forbidden control characters":"is not a valid header name",s),delete g[v])}let y=!d||s.method==="GET"||s.method==="HEAD",w=p.request(g,{endStream:y});d&&!y&&al(w,d).catch(v=>{w.destroy(v instanceof Error?v:new Error(String(v)))});let _=s.signal,b=await new Promise((v,P)=>{let xe=this._requestTimeoutMs,K=setTimeout(()=>{A(),P(new x(`HTTP/2 request to ${o} timed out after ${xe}ms`,"ETIMEOUT",{request:s})),w.destroy()},xe),dt=()=>{clearTimeout(K),P(new x("Request was aborted","EABORT",{request:s})),w.destroy()},A=()=>_?.removeEventListener("abort",dt);_?.addEventListener("abort",dt,{once:!0}),w.once("response",O=>{let L=Number(O[":status"]??200),H=Ti[L]??"",B={};for(let[j,U]of Object.entries(O))j.startsWith(":")||(B[j]=Array.isArray(U)?U.join(", "):U??"");if(clearTimeout(K),A(),_?.aborted){P(new x("Request was aborted","EABORT",{request:s})),w.destroy();return}if(s.redirect==="error"&&L>=300&&L<400&&B.location){P(new x(`Redirect not allowed (redirect:"error") \u2014 received ${L} to ${B.location}`,"ENETWORK",{request:s})),w.destroy();return}v({status:L,statusText:H,headers:B,body:Si(w),url:s.url,redirected:i,httpVersion:"HTTP/2",alreadyDecompressed:!1})}),w.once("error",O=>{clearTimeout(K),A(),_?.aborted?P(new x("Request was aborted","EABORT",{request:s,cause:O})):P(new x(O.message,"ENETWORK",{request:s,cause:O})),w.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:P}=await v.read();if(P)break}v.releaseLock()}}catch{}let k=b.headers.location,C,E;try{let v=new URL(k,s.url);C=v.href,E=v.protocol.toLowerCase()}catch{throw new x(`Invalid redirect Location: ${k}`,"ENETWORK",{request:e})}if(E!=="https:")throw new x(`HTTP/2 redirect to a non-HTTPS target blocked: ${E}//\u2026`,"EVALIDATION",{request:e});if(!oe(C))throw new x(`Unsafe redirect target blocked: ${C.replace(/:\/\/[^/@]*@/,"://\u2026@")}`,"EVALIDATION",{request:e});let I=b.status===301||b.status===302||b.status===303?"GET":s.method,$=I==="GET"||I==="HEAD"?null:s.body;s={...s,url:C,method:I,body:$},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};this._onDroppedHeader!==void 0&&(t.onDroppedHeader=this._onDroppedHeader),this._http1Fallback=new st(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 _r(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}:{}};return new Promise((i,a)=>{let c=t.request(o,h=>{let p={};for(let[m,g]of Object.entries(h.headers))g!==void 0&&(p[m]=Array.isArray(g)?g.join(", "):g);let d=il(h);i({status:h.statusCode??200,statusText:h.statusMessage??"",headers:p,body:d,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"?cl(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(()=>(Yo(),Xo)),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}};il=Si;Ti={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 hl(r){return r.split(ll).filter(Boolean)}function fl(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 dl(r){let e=r.slice(0,9).toLowerCase();return ul[e]??null}function pl(r){if(!/^\d{2,4}$/.test(r))return null;let e=+r;return e>=70&&e<=99&&(e+=1900),e>=0&&e<=69&&(e+=2e3),e}function Cr(r){if(!r)return null;let e=hl(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=fl(a);if(c!==null){t.time=c;continue}}if(t.month===null&&/[a-zA-Z]/.test(a)){let c=dl(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=pl(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 vr(r){let e=r.replace(/\.$/,"").toLowerCase(),t=e.split(".");if(t.length===0||t.length===1&&t[0]==="")return null;if(rs.has(e))return e;let n=null,s=0;for(let o=0;o<t.length;o++){let i=t.slice(o).join(".");if(es.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(ts.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 ns(r){let e=r.toLowerCase().replace(/\.$/,"");if(Ae(e))return e;let t=vr(e);if(!t)return null;let n=t.split(".").length,s=e.split(".");return s.length<=n?null:s.slice(-(n+1)).join(".")}function ke(r){let e=r.toLowerCase();if(rs.has(e)||es.has(e))return!0;let t=e.split(".");if(t.length>=2){let n=t.slice(1).join(".");if(ts.has(n))return!0}return!1}function gl(r){try{let c=r.lastIndexOf("-"),u=[],l=c>=0?r.slice(0,c):"";for(let b=0;b<l.length;b++){let T=l.charCodeAt(b);if(T>122||T>90&&T<97||T>57&&T<65||T<48)return r;u.push(T)}let h=c>=0?r.slice(c+1):r,p=128,d=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,y=(b,T,k)=>{b=Math.floor(b/(k?700:2)),b+=Math.floor(b/T);let C=0;for(;b>910/2;)b=Math.floor(b/35),C+=36;return C+Math.floor(36*b/(b+38))},w=0;for(;w<h.length;){let b=d,T=1;for(let k=36;;k+=36){if(w>=h.length)return r;let C=g(h.charCodeAt(w++));if(C<0)return r;d+=C*T;let E=k<=m?1:k>=m+26?26:k-m;if(C<E)break;T*=36-E}m=y(d-b,u.length+1,b===0),p+=Math.floor(d/(u.length+1)),d%=u.length+1,u.splice(d,0,p),d++}return String.fromCodePoint(...u)||r}catch{return r}}function Pr(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(Zn){let t=r+".invalid",n=Zn(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=gl(r.slice(4));if(t&&t!==r.slice(4))return t}catch{}return r}function we(r){return r.replace(/^\./,"").replace(/\.$/,"").toLowerCase().split(".").map(Pr).join(".")}function wl(r){let e=r,t=e.lastIndexOf(":");if(t>=0&&e.slice(t+1).includes(".")){let s=e.slice(t+1);if(!ki.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(!yl.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 Ae(r){let e=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;return ki.test(e)?e.split(".").map(Number).every(n=>n>=0&&n<=255):wl(e)}function Dt(r,e){let t=r.toLowerCase(),n=e.toLowerCase().replace(/^\./,"");return t===n?!0:!(Ae(t)||!t.endsWith("."+n)||Ae(n)||ke(n))}function Nt(r){if(!r||r===""||r[0]!=="/")return"/";let e=r.lastIndexOf("/");return e===0?"/":r.slice(0,e)}function kr(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 $t(r,e){let t=kr(r),n=kr(e);return!!(t===n||t.startsWith(n)&&(n.endsWith("/")||t[n.length]==="/"))}function xl(r){return r===""?!0:bl.test(r)}function Ai(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 Ut(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)),!xl(o)||!Ai(i)||(i=i.trim(),i.length>=2&&i[0]==='"'&&i[i.length-1]==='"'&&(i=i.slice(1,-1)),!Ai(i)))return null;let a=new Map,c=n.split(";");for(let E of c){let I=E.trim();if(!I)continue;let $=I.indexOf("=");if($===-1)a.set(I.toLowerCase(),"");else{let v=I.slice(0,$).trim().toLowerCase(),P=I.slice($+1).trim();a.has(v)||a.set(v,P)}}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,p=a.has("max-age")?a.get("max-age"):null,d=a.has("secure"),m=a.has("httponly"),g="Unset";if(a.has("samesite")){let E=a.get("samesite").toLowerCase();E==="strict"?g="Strict":E==="lax"?g="Lax":E==="none"&&(g="None")}let y=a.has("sameparty"),w=null;if(a.has("priority")){let E=a.get("priority").toLowerCase();E==="low"?w="Low":E==="medium"?w="Medium":E==="high"&&(w="High")}let _=a.has("partitioned"),b=null;p!==null&&p.match(/^-?\d+$/)&&(b=parseInt(p,10));let T=null;b===null&&h!==null&&(T=Cr(h));let k=null;u!==null&&u!==""&&(k=we(u));let C=null;return l!==null&&l.startsWith("/")&&(C=l),{name:o,value:i,domain:k,path:C,expires:T,maxAge:b,secure:d,httpOnly:m,sameSite:g,sameParty:y,priority:w,partitioned:_}}function Ci(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 _l(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 it(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(!_l(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 Ht(r){if(typeof Headers<"u"&&r instanceof Headers){if(typeof r.getSetCookie=="function")return r.getSetCookie();let n=r.get("set-cookie");return n?it(n):[]}let e=r,t=e["set-cookie"]??e["Set-Cookie"];return t?Array.isArray(t)?t.flatMap(n=>it(n)):it(t):[]}var ul,ll,ml,es,ts,rs,Zn,ki,yl,bl,Lr=F(()=>{"use strict";ul={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},ll=/[\t\x20-\x2f\x3b-\x40\x5b-\x60\x7b-\x7e]+/;ml=["!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"],es=new Set,ts=new Set,rs=new Set;for(let r of ml)r.startsWith("!")?rs.add(r.slice(1).toLowerCase()):r.startsWith("*.")?ts.add(r.slice(2).toLowerCase()):es.add(r.toLowerCase());(async()=>{try{let r=await import("node:url");typeof r.domainToUnicode=="function"&&(Zn=r.domainToUnicode)}catch{}})();ki=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,yl=/^[\da-f:]+$/i;bl=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});function Rl(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 Al(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 kl(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 ss(r){try{return new URL(r)}catch{return null}}function os(){return new He}function is(r){return He.fromJSON(r)}var Sl,El,Tl,vi,He,Pi=F(()=>{"use strict";Lr();Sl=4096,El=50,Tl=3e3,vi=400*24*60*60*1e3;He=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??Tl,this.maxPerDomain=e.maxPerDomain??El,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=ss(t.url);if(!n)return!1;let s=Ut(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>Sl)return!1;let l,h;if(s.domain!==null&&s.domain!==""){let w=s.domain.toLowerCase();if(!(this.domainMatcherFn??Dt)(i,w)||ke(w))return!1;l=w,h=!1}else l=i,h=!0;let p=s.path??Nt(n.pathname),d=s.secure;if(d&&!c)return!1;let m=s.sameSite;if(m==="None"&&!d)return!1;let g;if(s.maxAge!==null){if(s.maxAge<=0)return this.removeCookie(l,p,s.name),!0;let w=Math.min(s.maxAge*1e3,vi);g=o+w}else if(s.expires!==null){if(g=s.expires,g<=o)return this.removeCookie(l,p,s.name),!0;g=Math.min(g,o+vi)}else g=1/0;let y={name:s.name,value:s.value,domain:l,path:p,expires:g,maxAge:s.maxAge,secure:d,httpOnly:s.httpOnly,sameSite:m,createdAt:o,lastAccessed:o,hostOnly:h};return Rl(y,n)?(this.putCookie(y),!0):!1}getCookies(e){let t=ss(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[p,d]of this.dm)if(this.matchDomain(n,p))for(let[,m]of d)for(let[,g]of m)g.hostOnly&&n!==g.domain||g.expires!==1/0&&g.expires<u||$t(o,g.path)&&(g.secure&&!i||g.httpOnly&&!a||kl(g.sameSite,c)&&(g.name.startsWith("__Secure-")&&!(g.secure&&i)||g.name.startsWith("__Host-")&&!(g.secure&&i&&g.path==="/"&&g.hostOnly)||ke(g.domain)||l.push(g)));l.sort((p,d)=>{let m=d.path.length-p.path.length;return m!==0?m:p.createdAt-d.createdAt});let h=Date.now();return l.map(p=>{let d={...p};return p.lastAccessed=h,d})}getCookieHeader(e){return this.getCookies(e).map(t=>t.name?`${t.name}=${t.value}`:t.value).join("; ")}getCookiesForDomain(e){let t=we(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||ke(c.domain)||n.push({...c});return n}processResponseHeaders(e,t){for(let n of Ht(e))this.setCookie(n,t)}removeCookie(e,t,n){let s=we(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=we(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=ss(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:Al(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=we(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:Ae(n)?!1:n.endsWith("."+s)}}});var Li={};le(Li,{CookieJar:()=>He,canonicalizeDomainFull:()=>we,createCookieJar:()=>os,decodeIDNLabel:()=>Pr,defaultPath:()=>Nt,domainMatch:()=>Dt,extractSetCookieHeaders:()=>Ht,formatSetCookieHeader:()=>Ci,getPublicSuffix:()=>vr,getRegistrableDomain:()=>ns,isIPAddress:()=>Ae,isPublicSuffix:()=>ke,loadCookieJar:()=>is,normalizePath:()=>kr,parseCookieDate:()=>Cr,parseSetCookieHeader:()=>Ut,pathMatch:()=>$t,splitSetCookieHeaders:()=>it});var as=F(()=>{"use strict";Pi();Lr()});var Ni={};le(Ni,{BatchingTransport:()=>zt,ConsoleTransport:()=>at,HTTPLogger:()=>je,JSONTransport:()=>Bt,LogLevel:()=>jt,MultiTransport:()=>Ft,Redactor:()=>Wt,RemoteTransport:()=>qt,createDevelopmentLogger:()=>Di,createLogger:()=>Oi,createProductionLogger:()=>Mi,toOTelSpan:()=>Ii});function Ll(r){let e=r.split(";",1)[0].trim().toLowerCase();return e==="application/json"||e==="text/json"||e.endsWith("+json")}function Dl(){let r=Date.now().toString(36),e=(++Ml).toString(36).padStart(4,"0"),t=Math.random().toString(36).slice(2,6);return`${r}-${e}-${t}`}function cs(r,e){if(!r||typeof r!="object"||e.length===0)return;if(Array.isArray(r)){for(let o of r)cs(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"&&cs(s[t],n)}function Ir(r){return typeof r=="string"?new TextEncoder().encode(r).byteLength:r.byteLength}function Ii(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}:{}}}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:$l(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 $l(r){try{let e=new WeakSet;return JSON.stringify(r,(t,n)=>{if(n!==null&&typeof n=="object"){if(e.has(n))return"[circular]";e.add(n)}return n})??String(r)}catch{return String(r)}}function Ul(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 Or(){return typeof performance<"u"?performance.now():Date.now()}function Oi(r){return new je(r)}function Mi(r){let e=[new Bt];return r.endpoint&&e.push(new zt(new qt(r.endpoint))),new je({level:r.level??"INFO",transports:[new Ft(e)],...r.context!==void 0?{context:r.context}:{}})}function Di(r={}){return new je({level:r.level??"DEBUG",transports:[new at({pretty:!0,useColors:!0,onWrite:e=>console.log(e)})],redaction:{logRequestBody:r.logBodies??!0,logResponseBody:r.logBodies??!0,maxBodyLength:2048}})}var Cl,jt,vl,Pl,Il,at,Ol,Bt,zt,qt,Ft,Ml,Wt,Ce,je,Mr=F(()=>{"use strict";q();Cl=()=>{try{return globalThis.process?.env?.NODE_ENV}catch{return}},jt={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},vl=["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"],Pl=["token","api_key","apikey","access_token","refresh_token","secret","password","pass","pwd","key","auth"];Il=["application/json","application/x-www-form-urlencoded","text/"],at=class{constructor(e={}){f(this,"pretty");f(this,"onWrite");this.pretty=e.pretty??Cl()!=="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}]`}},Ol=()=>{try{return typeof globalThis.process?.stdout?.write=="function"}catch{return!1}},Bt=class{constructor(e=t=>{Ol()?globalThis.process.stdout.write(t+`
19
+ `):console.log(t)}){f(this,"writeLine");this.writeLine=e}write(e){this.writeLine(JSON.stringify(e))}},zt=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)}},qt=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)})}}},Ft=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?.()))}},Ml=0;Wt=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??vl,n=e.queryParams??Pl;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??Il}redactHeaders(e){let t={};for(let[n,s]of Object.entries(e))t[n]=this.headerSet.has(n.toLowerCase())?"***":s;return t}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),p=h;try{p=decodeURIComponent(h)}catch{}return this.paramSet.has(p.toLowerCase())?l===-1?`${h}=***`:`${h}=***`:u});return`${n}?${c.join("&")}${i}`}redactBody(e,t,n){if(!(n?this.logResBody:this.logReqBody)||!e)return{body:null,size:e?Ir(e):null};let o=t??"";if(!this.allowedTypes.some(l=>o.startsWith(l)))return{body:`[${o||"binary"}]`,size:e?Ir(e):null};let a=Ir(e),c;if(e instanceof Uint8Array)try{c=new TextDecoder().decode(e)}catch{return{body:"[binary]",size:e.byteLength}}else c=e;if(Ll(o)&&this.bodyFields.length>0)try{let l=D(JSON.parse(c));for(let h of this.bodyFields)cs(l,h.split("."));c=JSON.stringify(l)}catch{}for(let l of this.patterns)c=c.replace(l,"***");if(Ir(c)>this.maxBody){let l=Ul(c,this.maxBody);c=`${l.text}... [truncated ${l.removed} bytes]`}return{body:c,size:a}}};Ce=class Ce{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 at],redaction:e.redaction??{},sampleRate:e.sampleRate??1,methods:e.methods??[],statuses:e.statuses??[],excludeURLs:e.excludeURLs??[],context:e.context??{},generateId:e.generateId??Dl},this.redactor=new Wt(this.cfg.redaction),this.level=jt[this.cfg.level]}_cleanupActiveIds(){let e=Or();if(this.activeIds.size>Ce.MAX_ACTIVE_IDS){let t=Array.from(this.activeIds.entries()),n=t.slice(0,t.length-Math.floor(Ce.MAX_ACTIVE_IDS*.8));for(let[s]of n)this.activeIds.delete(s)}for(let[t,n]of this.activeIds)e-n.startMs>Ce.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:Or(),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?Or()-u.startMs:0,h=u?.method??"GET",p=u?.url??"";if(this.activeIds.delete(e),!this._shouldLog("INFO",h,p,t))return;let d=s["content-type"]??s["Content-Type"]??null,m=this.redactor.redactBody(o,d,!0),g=t>=500?"ERROR":t>=400?"WARN":"INFO",y={type:"response",requestId:e,timestamp:new Date().toISOString(),timestampMs:Date.now(),level:g,method:h.toUpperCase(),url:this.redactor.redactURL(p),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(y)}logError(e,t,n,s,o={}){let i=this.activeIds.get(e),a=i?Or()-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:Nl(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 Ce({...this.cfg,context:{...this.cfg.context,...e}})}async flush(){await Promise.allSettled(this.cfg.transports.map(e=>e.flush?.()))}_write(e){if(!(jt[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(jt[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(Ce,"MAX_ACTIVE_IDS",1e4),f(Ce,"IDLE_TIMEOUT_MS",6e4);je=Ce});var hs={};le(hs,{SSEClient:()=>ct,SSEError:()=>be,SSEMaxReconnectsError:()=>ut,SSEParser:()=>Be,SSERouter:()=>Nr,SSEServerResponse:()=>Kt,SSETransformStream:()=>Dr,createJSONSSEStream:()=>Hi,createSSEResponse:()=>ji,createSSEStream:()=>Ui,jsonSSE:()=>ls,parseSSEText:()=>Bi});async function*ls(r,e={}){for await(let t of r)if(!(!t.data&&t.data!==""))try{let n=D(JSON.parse(t.data,e.reviver));yield{event:t.event,data:n,id:t.id}}catch(n){e.onError?.(n,t)}}function us(r){return r.replace(/[\r\n\u0000]/g,"")}function Ui(r){return new ct(r)}function Hi(r,e={}){return ls(new ct(r),e)}function ji(r,e={}){let t=new Kt;return(async()=>{try{await r(t)}catch(n){console.error("[sse] Generator error:",n)}t.close()})(),t.toResponse(e)}function Bi(r){let e=new Be,t=e.feed(r),n=e.flush();return n&&t.push(n),t}function Hl(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 $i(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 Be,Dr,ct,Nr,Kt,be,ut,Vt=F(()=>{"use strict";q();Be=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}},Dr=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 Be);f(this,"decoder",new TextDecoder("utf-8"))}},ct=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 Be,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),p=e.validateResponse(h);if(p!==!0){let _=typeof p=="string"?p:`SSE server returned ${h.status}`;throw new be(_,h.status,h)}if(!h.ok)throw new be(`SSE server error: ${h.status}`,h.status,h);if(!h.body)throw new be("SSE response has no body",h.status,h);let d=h.headers.get("content-type")??"";if(!d.startsWith("text/event-stream"))throw new be(`Expected text/event-stream, got: ${d}`,h.status,h);this.health.connected=!0,n=0,t=e.reconnectDelayMs;let m=h.body.getReader(),g=new TextDecoder("utf-8"),y=()=>{a&&clearTimeout(a),e.heartbeatTimeoutMs>0&&(a=setTimeout(()=>{m.cancel("heartbeat timeout")},e.heartbeatTimeoutMs))};y();try{for(;!o&&!e.signal?.aborted;){let _=await Hl(m.read(),e.signal,s);if(_===null)break;let{done:b,value:T}=_;if(b)break;let k=g.decode(T,{stream:!0}),C=i.feed(k);for(let E of C)y(),E.retry!==null&&(t=Math.min(E.retry,e.maxReconnectDelayMs)),E.id!==null&&(this.health.lastEventId=E.id),this.health.totalEvents++,this.health.lastEventAt=Date.now(),yield E}}finally{a&&clearTimeout(a);try{m.cancel().catch(()=>{})}catch{}}let w=s.aborted||e.signal?.aborted?null:i.flush();w&&(this.health.totalEvents++,this.health.lastEventAt=Date.now(),yield w)}catch(u){if(this.health.connected=!1,o||u instanceof Error&&u.name==="AbortError"||e.signal?.aborted)break;if(u instanceof be&&u.status&&[401,403,404].includes(u.status)||!e.reconnect)throw u;if(e.maxReconnects>0&&this.health.totalReconnects>=e.maxReconnects)throw new ut(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 $i(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 ut(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 $i(c,e.signal,s),e.signal?.aborted||s.aborted)break}this.health.connected=!1}};Nr=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=D(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)}};Kt=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(`: ${us(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: ${us(n.id)}
23
+ `),e!=="message"&&(s+=`event: ${us(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}})}},fe=class extends Error{constructor(t,n,s){super(t);h(this,"status");h(this,"response");h(this,"code","ESSE");this.status=n,this.response=s,this.name="SSEError"}},Ye=class extends Error{constructor(t,n){super(`SSE max reconnects (${t}) reached for ${n}`);h(this,"attempts");h(this,"url");h(this,"code","ESSEMAXRECONNECTS");this.attempts=t,this.url=n,this.name="SSEMaxReconnectsError"}}});var pi={};de(pi,{GraphQLClient:()=>ie,GraphQLClientError:()=>N,authLink:()=>ii,clearAPQCache:()=>fi,createGraphQLClient:()=>ui,detectOperationType:()=>zn,errorLink:()=>ai,extractOperationName:()=>we,getAPQMetrics:()=>di,gql:()=>hi,loggingLink:()=>ci,retryLink:()=>li});function gr(r,e,t){let n=r.map(s=>s.message).join("; ");return new N(n,"EGRAPHQL",r,e,t)}function ri(r){return new Promise(e=>setTimeout(e,r))}function Tl(r,e){return r.reduceRight((t,n)=>s=>n(s,t),e)}function zn(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 we(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 ni(r){let e=new TextEncoder().encode(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("")}async function yr(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 si(r){if(r.length>Zo)throw new G(`GraphQL query exceeds maximum length of ${Zo} bytes`);for(let n of Al)if(n.test(r))throw new G(`GraphQL query contains potentially malicious pattern: ${n}`);let e=0,t=0;for(let n=0;n<r.length;n++){let s=r[n];s==="{"?(e++,t=Math.max(t,e)):s==="}"&&e--}if(t>ei)throw new G(`GraphQL query exceeds maximum depth of ${ei}`);if(e!==0)throw new G("GraphQL query has unbalanced braces")}function jn(r,e=1e4){let t=JSON.stringify(r);if(t.length>e)throw new G(`String value exceeds maximum length of ${e} characters`);return t}function ti(r,e){e.query&&si(e.query);let t=new URL(r),n=Nt(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",jn(e.variables)),e.extensions&&Object.keys(e.extensions).length>0&&t.searchParams.set("extensions",jn(e.extensions)),t.toString()}function Nt(r){si(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),jn(e,1e5)}function Cl(r,e){let t=new FormData,n=JSON.parse(Nt(r)),s={};for(let o=0;o<e.length;o++){let i=e[o];s[String(o)]=[i.path],vl(n,i.path,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 vl(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 G(`Invalid upload path: "${e}" \u2014 reserved key "${a}"`);(!s[a]||typeof s[a]!="object")&&(s[a]={}),s=s[a]}let o=n[n.length-1];if(o==="__proto__"||o==="constructor"||o==="prototype")throw new G(`Invalid upload path: "${e}" \u2014 reserved key "${o}"`);s[o]=t}async function oi(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 N(`HTTP ${r.status}: ${r.statusText}
17
- ${s}`,"ENETWORK",void 0,e,void 0,new Error(`HTTP ${r.status}`))}let n;try{n=O(await r.json())}catch(s){throw new N("Failed to parse GraphQL response as JSON","EPARSE",void 0,e,void 0,s)}return n}async function Hn(r,e,t,n="none",s){let o=await yr(e),i=zn(r.query),a=e.useGETForQueries&&i==="query",c=e.url,l=null,u={...o};if(n==="omitQuery"||n==="full"){let m=s?await s(r.query):await ni(r.query),y={...r.extensions,persistedQuery:{version:1,sha256Hash:m}},b=n==="omitQuery"?{...r,query:"",extensions:y}:{...r,extensions:y};a?c=ti(e.url,b):l=Nt(b)}else a?c=ti(e.url,r):l=Nt(r);a||(u["content-type"]="application/json");let f=new AbortController,p=e.timeoutMs>0?setTimeout(()=>f.abort(),e.timeoutMs):null,d=()=>f.abort();t?.addEventListener("abort",d,{once:!0});let g;try{g=await e.fetch(c,{method:a?"GET":"POST",headers:u,body:l,signal:f.signal})}catch(m){throw p&&clearTimeout(p),f.signal.aborted?new N("Request timed out","ETIMEOUT",void 0,r,void 0,m):new N(m instanceof Error?m.message:"Network error","ENETWORK",void 0,r,void 0,m)}finally{p&&clearTimeout(p),t?.removeEventListener("abort",d)}return oi(g,r)}function ii(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 ai(r){return async(e,t)=>{try{return await t(e)}catch(n){if(!(n instanceof N))throw n;let s=r(n,e,()=>t(e));if(s)return s;throw n}}}function ci(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 li(r={}){let e=r.maxRetries??3,t=r.delayMs??300,n=r.shouldRetry??(s=>!(s instanceof N&&s.isGraphQLError));return async(s,o)=>{let i;for(let a=0;a<=e;a++){a>0&&await ri(t*Math.pow(2,a-1));try{return await o(s)}catch(c){if(i=c,!n(c,a))throw c}}throw i}}function ui(r){return new ie(r)}async function hi(r,e,t,n){return await new ie({url:r,...n!==void 0?{headers:n}:{}}).query(e,t)}var N,Rl,$n,kl,Zo,ei,Al,T,ie,Pl,fi,di,wr=B(()=>{"use strict";xe();z();N=class extends Error{constructor(t,n,s,o,i,a){super(t);h(this,"graphQLErrors");h(this,"request");h(this,"response");h(this,"networkError");h(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}};Rl=1e3,$n=1800*1e3,kl=300*1e3;Zo=100*1024,ei=100,Al=[/\{\s*\{/,/<\s*</,/<!--/,/<script/,/javascript:/i,/onerror\s*=/i,/eval\s*\(/i];T=class T{constructor(e){h(this,"config");h(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);this.executeLink=Tl(this.config.links,t)}static _ensureAPQCleanup(){T._apqCleanupTimer||(T._apqCleanupTimer=setInterval(()=>{let e=Date.now();for(let[t,n]of T.apqCache)e-n.createdAt>$n&&(T.apqCache.delete(t),T.apqHashToQuery.delete(n.hash));for(let[t,n]of T.apqHashToQuery)if(e-n.createdAt>$n){T.apqHashToQuery.delete(t);for(let[s,o]of T.apqCache)if(o.hash===t){T.apqCache.delete(s);break}}},kl),typeof T._apqCleanupTimer=="object"&&T._apqCleanupTimer!==null&&"unref"in T._apqCleanupTimer&&T._apqCleanupTimer.unref())}async _getAPQHash(e){T._ensureAPQCleanup();let t=T.apqCache.get(e);if(t){if(Date.now()-t.createdAt<=$n)return T._apqHits++,t.hash;T.apqCache.delete(e),T.apqHashToQuery.delete(t.hash)}T._apqMisses++;let n=await ni(e),s=Date.now(),o=T.apqHashToQuery.get(n);if(o&&o.query!==e&&(console.warn("[GraphQL] APQ hash collision detected"),T.apqCache.delete(o.query),T.apqHashToQuery.delete(n)),T.apqCache.size>=Rl){let i="",a=1/0;for(let[c,l]of T.apqCache)l.createdAt<a&&(a=l.createdAt,i=c);if(i){let c=T.apqCache.get(i);c&&(T.apqCache.delete(i),T.apqHashToQuery.delete(c.hash))}}return T.apqCache.set(e,{hash:n,createdAt:s}),T.apqHashToQuery.set(n,{query:e,createdAt:s}),n}clearAPQCache(){T.apqCache.clear(),T.apqHashToQuery.clear(),T._apqHits=0,T._apqMisses=0,T._apqCleanupTimer&&(clearInterval(T._apqCleanupTimer),T._apqCleanupTimer=null)}getAPQMetrics(){return{size:T.apqCache.size,hits:T._apqHits,misses:T._apqMisses}}async query(e,t,n={}){let s={query:e,...t!==void 0?{variables:t}:{},...n.operationName!==void 0?{operationName:n.operationName}:we(e)!==void 0?{operationName:we(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}:we(e)!==void 0?{operationName:we(e)}:{}},i=await yr(this.config,{});delete i["content-type"];let a=Cl(o,n),c=new AbortController,l=()=>c.abort();s.signal?.addEventListener("abort",l,{once:!0}),this.config.onRequest(o);let u;try{u=await this.config.fetch(this.config.url,{method:"POST",headers:i,body:a,signal:c.signal})}catch(p){let d=new N(p instanceof Error?p.message:"Upload network error","ENETWORK",void 0,o,void 0,p);throw this.config.onError(d,o),d}finally{s.signal?.removeEventListener("abort",l)}let f=await oi(u,o);if(this.config.onResponse(f,o),f.errors?.length){let p=gr(f.errors,o,f);throw this.config.onError(p,o),p}if(f.data===void 0)throw new N("No data in upload response","ENODATA",void 0,o,f);return f.data}async batch(e,t={}){let n=await yr(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 N(l instanceof Error?l.message:"Batch network error","ENETWORK",void 0,e[0],void 0,l)}finally{t.signal?.removeEventListener("abort",o)}let a=O(await i.json());if(!Array.isArray(a))throw new N("Batch response must be an array of GraphQL responses","EINVALIDRESPONSE",void 0,e[0],a);return a.map((l,u)=>{if(l.errors?.length)throw gr(l.errors,e[u],l);if(l.data===void 0)throw new N("No data in batch response","ENODATA",void 0,e[u],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}:we(e)!==void 0?{operationName:we(e)}:{}},o=n.url??this.config.url,i=await yr(this.config,{accept:"text/event-stream"}),a=Nt(s),{SSEClient:c}=await Promise.resolve().then(()=>(Dt(),Un)),l=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 u of l){if(u.event==="complete")return;if(!u.data)continue;let f;try{f=O(JSON.parse(u.data))}catch{continue}if(f.errors?.length)throw gr(f.errors,s,f);f.data!==void 0&&(yield f.data)}}async introspect(){return await this.query(Pl)}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=gr(n.errors,e,n);throw this.config.onError(s,e),s}if(n.data===void 0)throw new N("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){let n;for(let s=0;s<=this.config.retries;s++){s>0&&await ri(this.config.retryDelayMs*Math.pow(2,s-1));try{return await this._executeRaw(e,t)}catch(o){if(n=o,o instanceof N&&o.isGraphQLError||t?.aborted)throw o}}throw n}async _executeWithAPQ(e,t){if(!this.config.enableAPQ)return Hn(e,this.config,t,"none",void 0);let n=await Hn(e,this.config,t,"omitQuery",o=>this._getAPQHash(o));return n.errors?.some(o=>o.extensions?.code==="PERSISTED_QUERY_NOT_FOUND")?Hn(e,this.config,t,"full",o=>this._getAPQHash(o)):n}};h(T,"apqCache",new Map),h(T,"apqHashToQuery",new Map),h(T,"_apqHits",0),h(T,"_apqMisses",0),h(T,"_apqCleanupTimer",null);ie=T;Pl=`
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}})}},be=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"}},ut=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 ra={};le(ra,{GraphQLClient:()=>ce,GraphQLClientError:()=>N,authLink:()=>Ji,clearAPQCache:()=>ea,createGraphQLClient:()=>Yi,detectOperationType:()=>ms,errorLink:()=>Qi,extractOperationName:()=>ve,getAPQMetrics:()=>ta,gql:()=>Zi,loggingLink:()=>Gi,retryLink:()=>Xi});function $r(r,e,t){let n=r.map(s=>s.message).join("; ");return new N(n,"EGRAPHQL",r,e,t)}function Wi(r){return new Promise(e=>setTimeout(e,r))}function jl(r,e){return r.reduceRight((t,n)=>s=>n(s,t),e)}function ms(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 ve(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 Ki(r){let e=new TextEncoder().encode(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("")}async function Ur(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 Fl(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 gs(r){if(r.length>zi)throw new Y(`GraphQL query exceeds maximum length of ${zi} bytes`);let e=Fl(r);for(let s of ql)if(s.test(e))throw new Y(`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>qi)throw new Y(`GraphQL query exceeds maximum depth of ${qi}`);if(t!==0)throw new Y("GraphQL query has unbalanced braces")}function ps(r,e=1e4){let t=JSON.stringify(r);if(t.length>e)throw new Y(`String value exceeds maximum length of ${e} characters`);return t}function Fi(r,e){e.query&&gs(e.query);let t=new URL(r),n=Jt(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",ps(e.variables)),e.extensions&&Object.keys(e.extensions).length>0&&t.searchParams.set("extensions",ps(e.extensions)),t.toString()}function Jt(r){gs(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),ps(e,1e5)}function Wl(r,e){let t=new FormData,n=JSON.parse(Jt(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],Kl(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 Kl(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 Y(`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 Y(`Invalid upload path: "${e}" \u2014 reserved key "${o}"`);s[o]=t}async function Vi(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 N(`HTTP ${r.status}: ${r.statusText}
32
+ ${s}`,"ENETWORK",void 0,e,void 0,new Error(`HTTP ${r.status}`))}let n;try{n=D(await r.json())}catch(s){throw new N("Failed to parse GraphQL response as JSON","EPARSE",void 0,e,void 0,s)}return n}async function ds(r,e,t,n="none",s){let o=await Ur(e,r.headers??{}),i=ms(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 Ki(r.query),y={...r.extensions,persistedQuery:{version:1,sha256Hash:g}},w=n==="omitQuery"?{...r,query:"",extensions:y}:{...r,extensions:y};a?c=Fi(e.url,w):u=Jt(w)}else a?c=Fi(e.url,r):u=Jt(r);a||(l["content-type"]="application/json");let h=new AbortController,p=e.timeoutMs>0?setTimeout(()=>h.abort(),e.timeoutMs):null,d=()=>h.abort();t?.addEventListener("abort",d,{once:!0});let m;try{m=await e.fetch(c,{method:a?"GET":"POST",headers:l,body:u,signal:h.signal})}catch(g){throw p&&clearTimeout(p),h.signal.aborted?new N("Request timed out","ETIMEOUT",void 0,r,void 0,g):new N(g instanceof Error?g.message:"Network error","ENETWORK",void 0,r,void 0,g)}finally{p&&clearTimeout(p),t?.removeEventListener("abort",d)}return Vi(m,r)}function Ji(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 Qi(r){return async(e,t)=>{try{return await t(e)}catch(n){if(!(n instanceof N))throw n;let s=await r(n,e,()=>t(e));if(s)return s;throw n}}}function Gi(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 Xi(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 N&&s.isGraphQLError));return async(s,o)=>{let i;for(let a=0;a<=e;a++){a>0&&await Wi(t*Math.pow(2,a-1));try{return await o(s)}catch(c){if(i=c,!n(c,a))throw c}}throw i}}function Yi(r){return new ce(r)}async function Zi(r,e,t,n){return await new ce({url:r,...n!==void 0?{headers:n}:{}}).query(e,t)}var N,Bl,fs,zl,zi,qi,ql,R,ce,Vl,ea,ta,Hr=F(()=>{"use strict";fe();q();N=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}};Bl=1e3,fs=1800*1e3,zl=300*1e3;zi=100*1024,qi=100,ql=[/\{\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=jl(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>fs&&(R.apqCache.delete(t),R.apqHashToQuery.delete(n.hash));for(let[t,n]of R.apqHashToQuery)if(e-n.createdAt>fs){R.apqHashToQuery.delete(t);for(let[s,o]of R.apqCache)if(o.hash===t){R.apqCache.delete(s);break}}},zl),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<=fs)return R._apqHits++,t.hash;R.apqCache.delete(e),R.apqHashToQuery.delete(t.hash)}R._apqMisses++;let n=await Ki(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>=Bl){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}:ve(e)!==null?{operationName:ve(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}:ve(e)!==null?{operationName:ve(e)}:{}},i=await Ur(this.config,{});delete i["content-type"];let a=Wl(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(p){let d=new N(p instanceof Error?p.message:"Upload network error","ENETWORK",void 0,o,void 0,p);throw this.config.onError(d,o),d}finally{s.signal?.removeEventListener("abort",u)}let h=await Vi(l,o);if(this.config.onResponse(h,o),h.errors?.length){let p=$r(h.errors,o,h);throw this.config.onError(p,o),p}if(h.data===void 0)throw new N("No data in upload response","ENODATA",void 0,o,h);return h.data}async batch(e,t={}){for(let l of e)gs(l.query);let n=await Ur(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 N(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 N(`HTTP ${i.status}: ${i.statusText}
33
+ ${l}`,"ENETWORK",void 0,e[0],void 0,new Error(`HTTP ${i.status}`))}let c;try{c=D(await i.json())}catch(l){throw new N("Failed to parse batch response as JSON","EPARSE",void 0,e[0],void 0,l)}if(!Array.isArray(c))throw new N("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 N(`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 $r(l.errors,e[h],l);if(l.data===void 0)throw new N("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}:ve(e)!==null?{operationName:ve(e)}:{}},o=n.url??this.config.url,i=await Ur(this.config,{accept:"text/event-stream"}),a=Jt(s),{SSEClient:c}=await Promise.resolve().then(()=>(Vt(),hs)),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=D(JSON.parse(l.data))}catch{continue}if(h.errors?.length)throw $r(h.errors,s,h);h.data!==void 0&&(yield h.data)}}async introspect(){return await this.query(Vl)}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=$r(n.errors,e,n);throw this.config.onError(s,e),s}if(n.data===void 0)throw new N("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 Wi(this.config.retryDelayMs*Math.pow(2,s-1));try{return await this._executeRaw(e,t)}catch(o){if(n=o,o instanceof N&&o.isGraphQLError||t?.aborted)throw o}}throw n}async _executeWithAPQ(e,t,n=this.config){if(!n.enableAPQ)return ds(e,n,t,"none",void 0);let s=await ds(e,n,t,"omitQuery",i=>this._getAPQHash(i));return s.errors?.some(i=>i.extensions?.code==="PERSISTED_QUERY_NOT_FOUND")?ds(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);ce=R;Vl=`
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=O(aw
71
87
  }
72
88
  }
73
89
  }
74
- `;fi=ie.prototype.clearAPQCache.bind(ie.prototype),di=ie.prototype.getAPQMetrics.bind(ie.prototype)});var vi={};de(vi,{collectAll:()=>mi,collectPages:()=>gi,createCursorPaginator:()=>xi,createKeysetPaginator:()=>Ti,createLinkHeaderPaginator:()=>Si,createOffsetPaginator:()=>wi,createPagePaginator:()=>bi,createRelayPaginator:()=>_i,createTokenPaginator:()=>Ei,deserializePaginationState:()=>ki,mergePaginators:()=>Ci,paginate:()=>F,paginateItems:()=>qn,parseLinkHeaderNext:()=>Bn,prefetchPaginate:()=>Ml,serializePaginationState:()=>Ri,takeItems:()=>yi,toPaginationIterator:()=>Ai});function Il(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 Ll(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,l=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:l,nextCursor:s?.cursor??null,prevCursor:t.prevCursor??null,raw:e}}async function*F(r,e="page"){let t=Il(r,e),n=0;for(;!t.done&&!(r.signal?.aborted||r.maxPages&&n>=r.maxPages);){n>0&&r.delayMs&&r.delayMs>0&&await Ol(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),c=Ll(o,s,t,r,i,a),l=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:l},n++,r.onPage?.(c,t),yield c,!a)break}}async function*qn(r,e="page"){for await(let t of F(r,e))for(let n of t.items)yield n}async function mi(r,e="page"){let t=[];for await(let n of F(r,e))t.push(...n.items);return t}async function gi(r,e="page"){let t=[];for await(let n of F(r,e))t.push(n);return t}async function yi(r,e,t="page"){let n=[];for await(let s of qn(e,t))if(n.push(s),n.length>=r)break;return n}function wi(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 bi(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 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 xi(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 _i(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 Si(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=Bn(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 Bn(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 Ei(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 Ti(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*Ml(r,e="page",t=2){let n=[],s=F(r,e),o=!1;async function i(){if(o)return;let{value:a,done:c}=await s.next();o=c??!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 Ri(r){return btoa(JSON.stringify(r))}function ki(r){try{return O(JSON.parse(atob(r)))}catch{throw new Error("Invalid pagination state string")}}function Ol(r,e){return new Promise(t=>{if(e?.aborted){t();return}let n=setTimeout(t,r);e&&e.addEventListener("abort",()=>{clearTimeout(n),t()},{once:!0})})}function Ai(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*Ci(...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 br=B(()=>{"use strict";z()});var K=class{constructor(e,t={}){h(this,"loaded",0);h(this,"total");h(this,"startMs");h(this,"lastMs");h(this,"lastLoaded",0);h(this,"smoothedRate",0);h(this,"smoothing");h(this,"_done",!1);h(this,"lastEmitMs",0);h(this,"minIntervalMs");h(this,"onProgress");this.total=e,this.startMs=Ht(),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=Ht();(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=Ht(),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 zt(r,e,t={}){let n=new K(e,t);if(!r)return n.complete(),{stream:new ReadableStream({start:i=>i.close()}),tracker:n};let s;if(r instanceof ReadableStream)s=r;else if(typeof r=="string"){let i=new TextEncoder().encode(r);s=new ReadableStream({start(a){a.enqueue(i),a.close()}})}else s=new ReadableStream({start(i){i.enqueue(r),i.close()}});return{stream:new ReadableStream({async start(i){let a=s.getReader();if(t.signal?.aborted){a.cancel("aborted").catch(()=>{}),i.error(new DOMException("Upload aborted","AbortError"));return}let c=()=>{a.cancel("aborted").catch(()=>{}),i.error(new DOMException("Upload aborted","AbortError"))};t.signal?.addEventListener("abort",c,{once:!0});try{for(;;){let{done:l,value:u}=await a.read();if(l){n.complete(),i.close();break}n.update(u.byteLength),i.enqueue(u)}}catch(l){n.complete(),i.error(l)}finally{t.signal?.removeEventListener("abort",c)}}}),tracker:n}}function Gi(r,e={}){return zt(r.stream(),r.size,e)}function Xi(r,e={}){let t=r.headers.get("content-length"),n=t?parseInt(t,10):null,s=new K(isNaN(n)?null:n,e);if(!r.body)return s.complete(),{response:r,tracker:s};let o=r.body,i=new ReadableStream({async start(c){let l=o.getReader(),u=!1,f=()=>{u||(u=!0,l.cancel("aborted").catch(()=>{}),c.error(new DOMException("Download aborted","AbortError")))};e.signal?.addEventListener("abort",f,{once:!0});try{for(;;){let{done:p,value:d}=await l.read();if(p){s.complete(),c.close();break}s.update(d.byteLength),c.enqueue(d)}}catch(p){u||s.complete(),c.error(p)}finally{u||e.signal?.removeEventListener("abort",f)}}});return{response:new Response(i,{status:r.status,statusText:r.statusText,headers:r.headers}),tracker:s}}async function*Yi(r,e,t={}){let n=new K(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 Zi(r,e,t={}){let n=new K(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:f}=await o.read();if(u)break;s.push(f),n.update(f.byteLength)}}finally{o.releaseLock(),t.signal?.removeEventListener("abort",i)}n.complete();let a=s.reduce((u,f)=>u+f.byteLength,0),c=new Uint8Array(a),l=0;for(let u of s)c.set(u,l),l+=u.byteLength;return{data:c,tracker:n}}var Ar=class{constructor(e,t){h(this,"partCount");h(this,"trackers",new Map);h(this,"totals",new Map);h(this,"onOverall");this.partCount=e,this.onOverall=t??null}createPartTracker(e,t,n={}){this.totals.set(e,t);let s=new K(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 f=0;f<this.partCount;f++){let d=this.trackers.get(f)?.snapshot()??{loaded:0,total:this.totals.get(f)??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,c=a?Math.min(100,t/n*100):null,l=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:l,elapsed:i,done:o}}}_emit(){this.onOverall&&this.onOverall(this.getOverall())}},ls=globalThis.XMLHttpRequest;function ea(r,e){return new Promise((t,n)=>{if(!ls){n(new Error("XMLHttpRequest is not available in this runtime. Use fetch() instead."));return}let s=new ls,o=new K(null,{...e.onUploadProgress!==void 0?{onProgress:e.onUploadProgress}:{},...e.throttleHz!==void 0?{throttleHz:e.throttleHz}:{},...e.smoothingFactor!==void 0?{smoothingFactor:e.smoothingFactor}:{}}),i=new K(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[a,c]of Object.entries(e.headers??{}))s.setRequestHeader(a,c);e.responseType&&(s.responseType=e.responseType),s.upload&&e.onUploadProgress&&(s.upload.addEventListener("loadstart",a=>{}),s.upload.addEventListener("progress",a=>{o.update(a.loaded-o.bytesLoaded)}),s.upload.addEventListener("load",()=>o.complete())),e.onDownloadProgress&&s.addEventListener("progress",a=>{i.update(a.loaded-i.bytesLoaded)}),e.signal?.addEventListener("abort",()=>{s.abort(),n(new DOMException("Request aborted","AbortError"))},{once:!0}),s.addEventListener("load",()=>{i.complete();let a=s.getAllResponseHeaders(),c={};for(let l of a.trim().split(/[\r\n]+/)){let u=l.indexOf(": ");u!==-1&&(c[l.slice(0,u).toLowerCase()]=l.slice(u+2))}t({status:s.status,statusText:s.statusText,headers:c,body:typeof s.response=="string"?s.response:String(s.response??"")})}),s.addEventListener("error",()=>{n(new TypeError("Network request failed"))}),s.addEventListener("timeout",()=>{n(new TypeError("Request timed out"))}),s.send(e.body??null)})}var us=["B","KB","MB","GB","TB"];function jt(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=us[Math.min(s,us.length-1)];return`${parseFloat((r/Math.pow(t,s)).toFixed(n))} ${o}`}function hs(r){return`${jt(r)}/s`}function fs(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 ta(r){let e=jt(r.loaded),t=r.total!==null?` / ${jt(r.total)}`:"",n=r.percent!==null?` (${r.percent.toFixed(1)}%)`:"",s=r.rate>0?` @ ${hs(r.rate)}`:"",o=r.eta!==null&&!r.done?` ETA ${fs(r.eta)}`:"";return`${e}${t}${n}${s}${o}`}function ra(r,e=10){let t=e>0?1e3/e:0,n=0;return s=>{let o=Ht();(s.done||o-n>=t)&&(n=o,r(s))}}function Ht(){return typeof performance<"u"?performance.now():Date.now()}var Me=class{constructor(e={}){h(this,"inflight",new Map);h(this,"timeouts",new Map);h(this,"windowMs");h(this,"methods");h(this,"keyFn");h(this,"_globalSignal");h(this,"_hits",0);h(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,c=i??this._globalSignal;if(c?.aborted||!this.methods.has(e.toUpperCase()))return n();let l=this.keyFn(e,t,s),u=this.inflight.get(l);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(l)}this._misses++;let f={resolvedAt:null,promise:void 0};return this.inflight.set(l,f),f.promise=(async()=>{let p=c?()=>{this.inflight.delete(l);let d=this.timeouts.get(l);d!==void 0&&(clearTimeout(d),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(f.resolvedAt=Date.now(),f.result=p,a<=0)this.inflight.delete(l);else{let d=setTimeout(()=>{this.inflight.delete(l),this.timeouts.delete(l)},a);this.timeouts.set(l,d)}return p},p=>{f.resolvedAt=Date.now(),f.error=p,this.inflight.delete(l);let d=this.timeouts.get(l);throw d!==void 0&&(clearTimeout(d),this.timeouts.delete(l)),p}),f.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 na(r){return new Me(r)}var rt=class extends Error{constructor(t,n){super(`Circuit breaker OPEN for "${t}" \u2014 request rejected`);h(this,"code","ECIRCUITOPEN");h(this,"state");this.name="CircuitOpenError",this.state=n}},nt=class{constructor(e,t={}){h(this,"key");h(this,"failureThreshold");h(this,"windowSize");h(this,"resetTimeoutMs");h(this,"successThreshold");h(this,"halfOpenConcurrency");h(this,"failureFilter");h(this,"cfg");h(this,"_state","CLOSED");h(this,"_window",[]);h(this,"_consecutiveFails",0);h(this,"_consecutiveSucc",0);h(this,"_openedAt",null);h(this,"_halfOpenAt",null);h(this,"_lastFailureAt",null);h(this,"_lastSuccessAt",null);h(this,"_inFlightProbes",0);h(this,"_totalRequests",0);h(this,"_totalFailures",0);h(this,"_totalSuccesses",0);h(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(){return{state:this._state,failureCount:this.windowSize>0?this._window.filter(e=>!e).length:this._consecutiveFails,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 t=this.snapshot;return this.cfg.onRejected?.(t),Promise.reject(new rt(this.key,t))}if(this._state==="HALF_OPEN"){if(this._inFlightProbes>=this.halfOpenConcurrency){this._totalRejected++;let t=this.snapshot;return this.cfg.onRejected?.(t),Promise.reject(new rt(this.key,t))}this._inFlightProbes++}return this._totalRequests++,e().then(t=>(this._state==="HALF_OPEN"&&(this._inFlightProbes=Math.max(0,this._inFlightProbes-1)),this._recordSuccess(),t),t=>{throw this._state==="HALF_OPEN"&&(this._inFlightProbes=Math.max(0,this._inFlightProbes-1)),this._isCountableFailure(t)&&this._recordFailure(),t})}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}},Oe=class{constructor(e={}){h(this,"breakers",new Map);h(this,"defaultConfig");this.defaultConfig=e}get(e,t){return this.breakers.has(e)||this.breakers.set(e,new nt(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 sa(r,e){return new nt(r,e)}function oa(r){return new Oe(r)}z();var V=class extends Error{constructor(t,n){super(t,n!=null?{cause:n}:void 0);h(this,"code","EWSCONNECT");h(this,"originalCause");this.name="WSError",this.originalCause=n}},Wt=class extends Error{constructor(t){super(`WebSocket gave up after ${t} reconnect attempts`);h(this,"attempts");h(this,"code","EWSMAXRECONNECTS");this.attempts=t,this.name="WSMaxReconnectsError"}},at=class extends Error{constructor(t,n){super(`WebSocket connect to ${t} timed out after ${n}ms`);h(this,"code","EWSCONNECTTIMEOUT");this.name="WSConnectTimeoutError"}},Nr=class extends Error{constructor(t){super(`WebSocket send rate limited; retry in ${t}ms`);h(this,"delayMs");h(this,"code","EWSRATELIMIT");this.delayMs=t,this.name="WSRateLimitError"}},$e=class{constructor(e){h(this,"_url");h(this,"_protocols");h(this,"_headers");h(this,"_maxReconnects");h(this,"_reconnectBaseMs");h(this,"_reconnectMaxMs");h(this,"_reconnectJitter");h(this,"_pingIntervalMs");h(this,"_pingPayload");h(this,"_pongMatcher");h(this,"_pongTimeoutMs");h(this,"_connectTimeoutMs");h(this,"_bufferMessages");h(this,"_maxBufferSize");h(this,"_cbOpen");h(this,"_cbMessage");h(this,"_cbClose");h(this,"_cbError");h(this,"_cbReconnect");h(this,"_cbGiveUp");h(this,"_ws",null);h(this,"_state","CLOSED");h(this,"_reconnAttempt",0);h(this,"_buffer",[]);h(this,"_pingTimer",null);h(this,"_pongTimer",null);h(this,"_reconnTimer",null);h(this,"_msgListeners",[]);h(this,"_closeListeners",[]);h(this,"_openWaiters",[]);h(this,"_correlations",new Map);h(this,"_aborted",!1);h(this,"_externalSignal",null);h(this,"_onExternalAbort",()=>this.close(1e3,"AbortSignal aborted"));h(this,"_iterQueue",[]);h(this,"_iterWaiter",null);h(this,"_iterDone",!1);h(this,"_rooms",[]);h(this,"_keepRooms");h(this,"_highWaterMark");h(this,"_lowWaterMark");h(this,"_bufferedBytes",0);h(this,"_drainWaiters",[]);h(this,"_cbBackpressure");h(this,"_wasBackpressured",!1);h(this,"_maxSendRate");h(this,"_tokens",0);h(this,"_lastToken",0);h(this,"_serverEndpoint",null);h(this,"_mx",{messagesSent:0,messagesReceived:0,bytesSent:0,bytesReceived:0,reconnectCount:0,totalConnectAttempts:0,connectedAt:null,closedAt:null,uptimeMs:0});h(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 at(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()}`,c=s>0?setTimeout(()=>{let l=this._correlations.get(a);l?.timer&&clearTimeout(l.timer),this._correlations.delete(a),i(new V(`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 V("Cannot drain \u2014 socket is CLOSED")):this._bufferedBytes<this._lowWaterMark?Promise.resolve():new Promise((t,n)=>{let s=e>0?setTimeout(()=>n(new V(`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 at(this._url,this._connectTimeoutMs);n(u),this._cbError?.(u);let f=this._ws;if(f&&(f.onopen=f.onmessage=f.onerror=f.onclose=null,f.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,c=(()=>{try{let u=globalThis;if(typeof globalThis.Deno<"u"||typeof globalThis.Bun<"u"||u.process?.versions?.node||typeof window>"u")return!1;let f=window;return typeof f.navigator<"u"&&typeof f.document<"u"}catch{return!1}})();if(this._headers&&c){let u=new URL(a);for(let[f,p]of Object.entries(this._headers))u.searchParams.set(f,p);a=u.href}let l;try{l=this._protocols?new WebSocket(a,this._protocols):new WebSocket(a)}catch(u){i(),this._state="CLOSED",n(new V("Failed to construct WebSocket",u instanceof Error?u:void 0));return}if(this._headers&&!c){let u=l;if(typeof u.setHeader=="function")for(let[f,p]of Object.entries(this._headers))u.setHeader(f,p)}this._ws=l,l.binaryType="arraybuffer",l.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=l.url??this._url,this._reconnAttempt=0,this._rooms.length>0&&this._keepRooms)for(let u of this._rooms)try{l.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()}},l.onmessage=async u=>{if(this._aborted)return;let f,p,d;if(typeof u.data=="string"){f=u.data,d=new TextEncoder().encode(f).byteLength;try{p=O(JSON.parse(f))}catch{}}else if(u.data instanceof ArrayBuffer)f=new Uint8Array(u.data),d=f.byteLength;else if(typeof Blob<"u"&&u.data instanceof Blob){let m=await u.data.arrayBuffer();f=new Uint8Array(m),d=f.byteLength}else f=new Uint8Array(u.data),d=f.byteLength;this._mx.messagesReceived++,this._mx.bytesReceived+=d;let g={data:f,json:p,timestamp:Date.now()};if(this._pongMatcher&&typeof f=="string"&&(typeof this._pongMatcher=="string"?f===this._pongMatcher:this._pongMatcher.test(f))){this._pongTimer&&(clearTimeout(this._pongTimer),this._pongTimer=null);return}for(let[m,y]of this._correlations)if(y.matcher(g)){this._correlations.delete(m),y.timer&&clearTimeout(y.timer);try{y.resolve(y.extract(g))}catch(b){y.reject(b)}return}for(let m of this._msgListeners)try{m(g)}catch{}if(this._cbMessage?.(g),this._iterWaiter){let m=this._iterWaiter;this._iterWaiter=null,m({done:!1,value:g})}else this._iterQueue.length>=this._maxBufferSize&&this._iterQueue.shift(),this._iterQueue.push(g)},l.onerror=u=>{this._cbError?.(new V(u.message??"WebSocket error",u.error))},l.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 V(`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 V(`Socket closed (code ${u.code})`));this._rejectCorrelations(`Socket closed (code ${u.code})`);return}let f=this._canRecon();if(this._cbClose?.(u.code,u.reason,f),f)this._scheduleRecon();else{this._cbGiveUp?.(this._reconnAttempt),this._state="CLOSED",this._terminateIter();let p=new Wt(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._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._aborted||this._doConnect(!0).catch(()=>{})},n),typeof this._reconnTimer=="object"&&this._reconnTimer!==null&&"unref"in this._reconnTimer&&this._reconnTimer.unref()}_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 V(`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 V(e));this._correlations.clear()}};async function Oa(r){let e=new $e(r);return await e.connect(),e}xe();z();ft();var ja=0;function Br(){return`interceptor_${++ja}`}function Fr(r){return[...r].sort((e,t)=>e.priority-t.priority)}var Vt=class{constructor(){h(this,"requestInterceptors",[]);h(this,"responseInterceptors",[]);h(this,"errorInterceptors",[])}useRequest(e,t={}){let n=t.id??Br();return this.requestInterceptors.push({id:n,priority:t.priority??0,once:t.once??!1,condition:t.condition??null,fn:e}),n}useResponse(e,t={}){let n=t.id??Br();return this.responseInterceptors.push({id:n,priority:t.priority??0,once:t.once??!1,condition:t.condition??null,fn:e}),n}useError(e,t={}){let n=t.id??Br();return this.errorInterceptors.push({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:Y(),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 Fr(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(Wr(o)){e.response=o;for(let i of n)this.eject(i);return this._runResponsePhase(e,t)}Ts(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 Fr(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(Ts(o)){e.request=o,e.response=null,e.error=null;for(let i of n)this.eject(i);return this._run(e,t)}Wr(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 Fr(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&&Wr(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 Wr(r){return r!==null&&typeof r=="object"&&typeof r.status=="number"&&"headers"in r&&"request"in r}function Ts(r){return r!==null&&typeof r=="object"&&typeof r.url=="string"&&typeof r.method=="string"&&!("status"in r)}var za={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 Cs(r={}){let e={...za,...r};function t(a,c){if(c!==null)return Math.min(c,e.maxDelayMs);let l=e.baseDelayMs*Math.pow(2,a-1),u=Math.min(l,e.maxDelayMs),f=u*e.jitter*Math.random();return Math.floor(u+f)}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 l=Date.parse(c);return isNaN(l)?null:Math.max(0,l-Date.now())}return{responseInterceptor:async a=>{if(!n(a))return;let c=t(a.attempt,s(a));return e.onRetry?.(a,c),await As(c),{...a.request}},errorInterceptor:async a=>{if(!n(a))return;let c=t(a.attempt,null);throw e.onRetry?.(a,c),await As(c),a.error=null,new Jr(a.request)}}}var Jr=class{constructor(e){h(this,"request");h(this,"__retrySignal",!0);this.request=e}},qa={getToken:()=>null,refreshToken:null,headerName:"authorization",scheme:"Bearer ",refreshOnStatuses:[401],maxQueue:50,refreshRetryDelay:3e4};function vs(r){let e={...qa,...r},t=null,n=[],s=null,o=e.refreshRetryDelay??3e4;async function i(){if(s!==null){let l=Date.now()-s;if(l<o)throw new Error(`Auth refresh circuit breaker: last failure ${Math.round(l/1e3)}s ago, retry after ${Math.round((o-l)/1e3)}s`)}if(t){if(n.length>=e.maxQueue)throw new Error("Auth refresh queue full");return await new Promise((l,u)=>n.push({resolve:l,reject:u}))}return e.refreshToken?(t=e.refreshToken().then(l=>{for(let u of n)u.resolve(l);return n.length=0,t=null,s=null,l},l=>{for(let u of n)u.reject(l);throw n.length=0,t=null,s=Date.now(),l}),t):null}return{requestInterceptor:async l=>{let u=await e.getToken();u&&(l.request.headers[e.headerName]=`${e.scheme}${u}`)},responseInterceptor:async l=>{if(!l.response||!e.refreshOnStatuses.includes(l.response.status)||!e.refreshToken||l.request.meta.__authRetried)return;let u=await i();return u?{...l.request,headers:{...l.request.headers,[e.headerName]:`${e.scheme}${u}`},meta:{...l.request.meta,__authRetried:!0}}:void 0}}}var Ba={timeoutMs:3e4,methodTimeouts:{},message:"Request timed out"};function Ps(r={}){let e={...Ba,...r},t=i=>{let a=e.methodTimeouts[i.request.method.toUpperCase()]??e.timeoutMs;if(a<=0)return;let c=new AbortController,l=setTimeout(()=>{i.aborted=!0,c.abort(new Qr(e.message,a))},a),u=i.request.signal;if(u){let f=()=>{clearTimeout(l),c.abort(u.reason)};u.addEventListener("abort",f,{once:!0}),i.store.set(Vr,{existing:u,onExistingAbort:f})}i.request={...i.request,signal:c.signal},i.store.set(Kr,l)},n=i=>{let a=i.store.get(Kr);a&&(clearTimeout(a),i.store.delete(Kr));let c=i.store.get(Vr);c&&(c.existing.removeEventListener("abort",c.onExistingAbort),i.store.delete(Vr))};return{id:"timeout",requestInterceptor:t,responseInterceptor:i=>{n(i)},errorInterceptor:i=>{n(i)}}}var Kr=Symbol("timeoutTimer"),Vr=Symbol("timeoutSignal"),Qr=class extends Error{constructor(t,n){super(t);h(this,"timeoutMs");h(this,"code","ETIMEDOUT");this.timeoutMs=n,this.name="TimeoutError"}},Fa={logger:r=>console.log(JSON.stringify(r)),redactHeaders:["authorization","cookie","set-cookie","proxy-authorization"],logRequests:!0,logResponses:!0,logErrors:!0},Rs=Symbol("requestId"),Wa=0;function Is(r={}){let e={...Fa,...r},t=new Set(e.redactHeaders.map(c=>c.toLowerCase()));function n(c){let l={};for(let[u,f]of Object.entries(c))l[u]=t.has(u.toLowerCase())?"**REDACTED**":f;return l}function s(c,l){let u=l.store.get(Rs)??"unknown";return{type:c,timestamp:Date.now(),requestId:u,method:l.request.method,url:l.request.url,status:l.response?.status??null,durationMs:c!=="request"?Y()-l.startedAt:null,attempt:l.attempt,error:l.error instanceof Error?l.error.message:null}}return{requestInterceptor:c=>{let l=`req_${++Wa}`;c.store.set(Rs,l),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 Ka={maxEntries:500,defaultTtlMs:6e4,cacheMethods:["GET","HEAD"],cacheKey:null,honorCacheControl:!0};function Ls(r={}){let e={...Ka,...r},t=new Map,n=[];function s(l){return e.cacheKey?e.cacheKey(l):`${l.method}:${l.url}`}function o(l){let u=n.indexOf(l);for(u!==-1&&n.splice(u,1),n.unshift(l);n.length>e.maxEntries;){let f=n.pop();t.delete(f)}}function i(l){let u=l.headers["cache-control"]??l.headers["Cache-Control"]??"",f=u.match(/max-age=(\d+)/)?.[1],p=u.match(/stale-while-revalidate=(\d+)/)?.[1],d=/no-store/i.test(u),g=/no-cache/i.test(u);if(e.honorCacheControl&&(d||g))return{ttlMs:0,swrMs:0};let m=f?parseInt(f,10)*1e3:e.defaultTtlMs,y=p?parseInt(p,10)*1e3:0;return{ttlMs:m,swrMs:y}}return{requestInterceptor:l=>{if(!e.cacheMethods.includes(l.request.method.toUpperCase()))return;let u=s(l.request),f=t.get(u);if(!f)return;let p=Y();if(f.expiresAt>p)return o(u),l.store.set(Va,!0),{...f.response,request:l.request};f.staleUntil>p&&(o(u),l.store.set(ks,f),f.etag?l.request={...l.request,headers:{...l.request.headers,"if-none-match":f.etag}}:f.lastModified&&(l.request={...l.request,headers:{...l.request.headers,"if-modified-since":f.lastModified}}))},responseInterceptor:l=>{if(!l.response||!e.cacheMethods.includes(l.request.method.toUpperCase()))return;let u=s(l.request);if(l.response.status===304){let m=l.store.get(ks);if(m){let{ttlMs:y,swrMs:b}=i(m.response),x=Y(),E={...m,createdAt:x,expiresAt:x+y,staleUntil:x+y+b};t.set(u,E),o(u),l.response={...m.response,request:l.request};return}}let{ttlMs:f,swrMs:p}=i(l.response);if(f<=0)return;let d=Y(),g={response:l.response,createdAt:d,expiresAt:d+f,staleUntil:d+f+p,etag:l.response.headers.etag??l.response.headers.ETag??null,lastModified:l.response.headers["last-modified"]??null};t.set(u,g),o(u)},store:t}}var Va=Symbol("cacheHit"),ks=Symbol("cacheStale");function Ms(){let r=new Map;function e(o){return`${o.method.toUpperCase()}:${o.url}`}return{requestInterceptor:o=>{if(o.request.method.toUpperCase()!=="GET"&&o.request.method.toUpperCase()!=="HEAD")return;let i=e(o.request),a=r.get(i);if(!a){r.set(i,{promise:void 0,waiters:[]});return}return o.store.set(Ja,i),new Promise((c,l)=>{a.waiters.push({resolve:u=>c(u),reject:u=>l(u)})})},responseInterceptor:o=>{if(!o.response)return;let i=e(o.request),a=r.get(i);if(a){r.delete(i);for(let c of a.waiters)c.resolve(o.response)}},errorInterceptor:o=>{let i=e(o.request),a=r.get(i);if(a){r.delete(i);for(let c of a.waiters)c.reject(o.error)}}}}var Ja=Symbol("dedupeQueued"),Qa={limit:60,windowMs:6e4,queue:!0,maxQueue:100};function Jt(r={}){let e={...Qa,...r},t=e.limit,n=Y(),s=[],o=null;function i(){let l=Y(),u=(l-n)/e.windowMs;t=Math.min(e.limit,t+u*e.limit),n=l}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 dt("Rate limit exceeded");if(s.length>=e.maxQueue)throw new dt("Rate limit queue full");await new Promise(l=>{s.push(()=>l()),a()})}return async()=>{await c()}}var dt=class extends Error{constructor(t){super(t);h(this,"code","ERATELIMIT");this.name="RateLimitError"}};function Os(){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,l])=>({name:c,value:l}))}catch{return[]}}return{requestInterceptor:i=>{i.store.set(e,Y())},responseInterceptor:i=>{if(!i.response)return;let a=i.store.get(e)??i.startedAt,c=Y()-a,l=i.response.headers["content-type"]??i.response.headers["Content-Type"]??"application/octet-stream",u=i.response.body,f=u instanceof Uint8Array?u.byteLength:typeof u=="string"?u.length:0;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:Ns(i.request.body)},response:{status:i.response.status,statusText:i.response.statusText,httpVersion:"HTTP/1.1",headers:t(i.response.headers),content:{size:f,mimeType:l,...typeof u=="string"?{text:u}:{}},bodySize:f,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 Ds(){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,Y()),e++,d.attempt>1&&n++},c=d=>{if(!d.response)return;let g=d.store.get(r);if(g!==void 0){let y=Y()-g;i.length>=o&&i.shift(),i.push(y)}let m=`${Math.floor(d.response.status/100)}xx`;if(m in s){let y=s;y[m]=(y[m]??0)+1}},l=()=>{t++};function u(d,g){if(d.length===0)return 0;let m=Math.ceil(g/100*d.length)-1,y=Math.min(Math.max(0,m),d.length-1);return d[y]}return{requestInterceptor:a,responseInterceptor:c,errorInterceptor:l,snapshot:()=>{let d=[...i].sort((m,y)=>m-y),g=d.length?d.reduce((m,y)=>m+y,0)/d.length:0;return{totalRequests:e,totalErrors:t,totalRetries:n,statusBuckets:{...s},avgDurationMs:Math.round(g),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 Y(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}function As(r){return new Promise(e=>setTimeout(e,r))}function Ns(r){return r?typeof r=="string"?r.length:r instanceof Uint8Array||r instanceof ArrayBuffer?r.byteLength:-1:0}function Ga(r={}){let e=new Vt,t=Ps(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(Jt(r.rateLimit),{priority:-90,id:"ratelimit"});let n=Ms();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=Ls(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=vs(r.auth),e.useRequest(o.requestInterceptor,{priority:-50,id:"auth-req"}),e.useResponse(o.responseInterceptor,{priority:-50,id:"auth-res"}));let i=Cs(r.retry);e.useResponse(i.responseInterceptor,{priority:50,id:"retry-res"}),e.useError(i.errorInterceptor,{priority:50,id:"retry-err"});let a=Is(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=Os();e.useRequest(c.requestInterceptor,{priority:95,id:"har-req"}),e.useResponse(c.responseInterceptor,{priority:95,id:"har-res"});let l=Ds();return e.useRequest(l.requestInterceptor,{priority:100,id:"metrics-req"}),e.useResponse(l.responseInterceptor,{priority:100,id:"metrics-res"}),e.useError(l.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:l}}xe();function Xa(r){return()=>Promise.resolve(r)}function Ya(){return()=>{let r=Gr("AWS_ACCESS_KEY_ID"),e=Gr("AWS_SECRET_ACCESS_KEY"),t=Gr("AWS_SESSION_TOKEN");return!r||!e?Promise.reject(new se("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 Za(...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 se(`All credential providers failed:
90
+ `;ea=ce.prototype.clearAPQCache.bind(ce.prototype),ta=ce.prototype.getAPQMetrics.bind(ce.prototype)});var ya={};le(ya,{collectAll:()=>na,collectPages:()=>sa,createCursorPaginator:()=>ca,createKeysetPaginator:()=>fa,createLinkHeaderPaginator:()=>la,createOffsetPaginator:()=>ia,createPagePaginator:()=>aa,createRelayPaginator:()=>ua,createTokenPaginator:()=>ha,deserializePaginationState:()=>pa,mergePaginators:()=>ga,paginate:()=>V,paginateItems:()=>bs,parseLinkHeaderNext:()=>xs,prefetchPaginate:()=>Yl,serializePaginationState:()=>da,takeItems:()=>oa,toPaginationIterator:()=>ma});function Jl(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 Ql(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*V(r,e="page"){let t=Jl(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 eh(r.delayMs,r.signal);let o;try{o=await r.fetch(t)}catch(d){if(r.signal?.aborted)break;throw d}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 d=u?.cursor??t.cursor,m=u?.token??t.token,g=u?.page??t.page+1,y=u?.offset??t.offset+a,_=Gl.has(t.strategy)&&r.getNext!==void 0&&u==null,b=d!==null&&s.has(d)||m!==null&&s.has(m),T=g===t.page&&y===t.offset&&d===t.cursor&&m===t.token;_||b||T?l=!1:(d!==null&&s.add(d),m!==null&&s.add(m))}let h=Ql(c,o,t,r,u,l),p=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:p},n++,r.onPage?.(h,t),yield h,!l)break}}async function*bs(r,e="page"){for await(let t of V(r,e))for(let n of t.items)yield n}async function na(r,e="page"){let t=[];for await(let n of V(r,e))t.push(...n.items);return t}async function sa(r,e="page"){let t=[];for await(let n of V(r,e))t.push(n);return t}async function oa(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 bs(e,t))if(s.push(o),s.length>=n)break;return s}function ia(r){let e=r.paramNames??{},t=e.offset??"offset",n=e.limit??"limit",s=r.fetch??globalThis.fetch;return V({...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 aa(r){let e=r.paramNames??{},t=e.page??"page",n=e.perPage??"per_page",s=r.fetch??globalThis.fetch;return V({...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 ca(r){let e=r.paramName??"cursor",t=r.fetch??globalThis.fetch;return V({...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 ua(r){let e=r.first??20;return V({...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 la(r){let e=r.fetch??globalThis.fetch;return V({...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=xs(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 xs(r){if(!r)return null;let e=r.split(/(?=<)/).filter(t=>t.trimStart().startsWith("<"));for(let t of e){let n=t.match(Xl);if(n&&n[2]&&n[2].toLowerCase().split(/\s+/).includes("next"))return n[1]}return null}function ha(r){let e=r.tokenParam??"pageToken",t=r.pageSizeParam??"pageSize",n=r.fetch??globalThis.fetch;return V({...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 fa(r){let e=r.pageSizeParam??"limit",t=r.fetch??globalThis.fetch;return V({...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*Yl(r,e="page",t=2){let n=Math.max(0,Math.floor(Number.isFinite(t)?t:0)),s=[],o=V(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 da(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 ys(r){return typeof r=="number"&&Number.isFinite(r)}function ws(r){return r==null||typeof r=="string"}function pa(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=D(e);if(typeof t!="object"||t===null||Array.isArray(t))throw new Error("Invalid pagination state string");let n=t;if(!ys(n.page)||!ys(n.offset)||!ys(n.totalFetched)||typeof n.strategy!="string"||!Zl.has(n.strategy)||typeof n.done!="boolean"||!ws(n.cursor)||!ws(n.prevCursor)||!ws(n.token))throw new Error("Invalid pagination state string");return t}function eh(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 ma(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*ga(...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 Gl,Xl,Zl,jr=F(()=>{"use strict";q();Gl=new Set(["cursor","relay","link-header","token","keyset"]);Xl=/<([^>]+)>.*?rel=["']([^"']+)["']/i;Zl=new Set(["offset","page","cursor","relay","link-header","token","keyset"])});var J=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=Yt(),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=Yt();(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=Yt(),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 er(r,e,t={}){let n=new J(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:p,value:d}=await h.read();if(p){c(),o===h&&(o=null),h.releaseLock(),a||(n.complete(),l.close());return}n.update(d.byteLength),l.enqueue(d)}catch(p){c(),o===h&&(o=null),a||n.complete(),l.error(p)}},cancel(l){c();let h=o;o=null,h?.cancel(l).catch(()=>{})}}),tracker:n}}function Wa(r,e={}){return er(r.stream(),r.size,e)}function Ka(r,e={}){let t=r.headers.get("content-length"),n=t?parseInt(t,10):null,s=new J(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(p){if(e.signal?.aborted){a=!0,p.error(new DOMException("Download aborted","AbortError"));return}i=o.getReader(),c=()=>{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",c,{once:!0})},async pull(p){let d=i;if(d)try{let{done:m,value:g}=await d.read();if(m){u(),i===d&&(i=null),d.releaseLock(),a||s.complete(),p.close();return}s.update(g.byteLength),p.enqueue(g)}catch(m){u(),i===d&&(i=null),a||s.complete(),p.error(m)}},cancel(p){u();let d=i;i=null,d?.cancel(p).catch(()=>{})}}),h=new Response(l,{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*Va(r,e,t={}){let n=new J(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 Ja(r,e,t={}){let n=new J(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:p}=await o.read();if(h)break;s.push(p),n.update(p.byteLength)}if(i)throw new DOMException("Stream aborted","AbortError")}finally{o.releaseLock(),t.signal?.removeEventListener("abort",a)}n.complete();let c=s.reduce((h,p)=>h+p.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 Jr=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 J(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 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,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())}},js=globalThis.XMLHttpRequest;function Qa(r,e){return new Promise((t,n)=>{if(!js){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 js,o=new J(null,{...e.onUploadProgress!==void 0?{onProgress:e.onUploadProgress}:{},...e.throttleHz!==void 0?{throttleHz:e.throttleHz}:{},...e.smoothingFactor!==void 0?{smoothingFactor:e.smoothingFactor}:{}}),i=new J(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 p=h.indexOf(":");if(p<=0)continue;let d=h.slice(0,p).trim().toLowerCase();if(d==="")continue;let m=h.slice(p+1).trim();if(d==="__proto__"){Object.defineProperty(l,d,{value:m,writable:!0,enumerable:!0,configurable:!0});continue}l[d]=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 Bs=["B","KB","MB","GB","TB"];function Zt(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))),Bs.length-1),a=Bs[i];return`${s}${parseFloat((o/Math.pow(t,i)).toFixed(n))} ${a}`}function zs(r){return`${Zt(r)}/s`}function qs(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 Ga(r){let e=Zt(r.loaded),t=r.total!==null?` / ${Zt(r.total)}`:"",n=r.percent!==null?` (${r.percent.toFixed(1)}%)`:"",s=r.rate>0?` @ ${zs(r.rate)}`:"",o=r.eta!==null&&!r.done?` ETA ${qs(r.eta)}`:"";return`${e}${t}${n}${s}${o}`}function Xa(r,e=10){let t=e>0?1e3/e:0,n=-1/0;return s=>{let o=Yt();(s.done||o-n>=t)&&(n=o,r(s))}}function Yt(){return typeof performance<"u"?performance.now():Date.now()}var We=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,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 p={resolvedAt:null,promise:void 0};return this.inflight.set(l,p),p.promise=(async()=>{let d=c?()=>{this.inflight.delete(l);let m=this.timeouts.get(l);m!==void 0&&(clearTimeout(m),this.timeouts.delete(l))}:null;c&&d&&c.addEventListener("abort",d,{once:!0});try{return await n()}finally{c&&d&&c.removeEventListener("abort",d)}})().then(d=>{if(p.resolvedAt=Date.now(),p.result=d,this.inflight.get(l)!==p)return d;if(a<=0)this.inflight.delete(l);else{let m=this.timeouts.get(l);m!==void 0&&(clearTimeout(m),this.timeouts.delete(l));let g=setTimeout(()=>{this.inflight.delete(l),this.timeouts.delete(l)},a);this.timeouts.set(l,g)}return d},d=>{p.resolvedAt=Date.now(),p.error=d,this.inflight.get(l)===p&&this.inflight.delete(l);let m=this.timeouts.get(l);throw m!==void 0&&(clearTimeout(m),this.timeouts.delete(l)),d}),p.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 Ya(r){return new We(r)}var pt=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}},mt=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 pt(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 pt(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}},Ke=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 mt(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 Za(r,e){return new mt(r,e)}function ec(r){return new Ke(r)}q();var Q=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}},sr=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"}},bt=class extends Error{constructor(t,n){super(`WebSocket connect to ${t} timed out after ${n}ms`);f(this,"code","EWSCONNECTTIMEOUT");this.name="WSConnectTimeoutError"}},rn=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={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 bt(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 Q(`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 Q("Cannot drain \u2014 socket is CLOSED")):this._bufferedBytes<this._lowWaterMark?Promise.resolve():new Promise((t,n)=>{let s=e>0?setTimeout(()=>n(new Q(`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 bt(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 p of this._openWaiters.splice(0))p.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,p]of Object.entries(this._headers))l.searchParams.set(h,p);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 Q("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,p]of Object.entries(this._headers))l.setHeader(h,p)}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,p,d;if(typeof l.data=="string"){h=l.data,d=new TextEncoder().encode(h).byteLength;try{p=D(JSON.parse(h))}catch{}}else if(l.data instanceof ArrayBuffer)h=new Uint8Array(l.data),d=h.byteLength;else if(typeof Blob<"u"&&l.data instanceof Blob){let g=await l.data.arrayBuffer();h=new Uint8Array(g),d=h.byteLength}else h=new Uint8Array(l.data),d=h.byteLength;this._mx.messagesReceived++,this._mx.bytesReceived+=d;let m={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,y]of this._correlations)if(y.matcher(m)){this._correlations.delete(g),y.timer&&clearTimeout(y.timer);try{y.resolve(y.extract(m))}catch(w){y.reject(w)}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 Q(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 p of this._closeListeners)try{p({code:l.code,reason:l.reason})}catch{}if(s||(s=!0,n(new Q(`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 p of this._openWaiters.splice(0))p.reject(new Q(`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 p=new sr(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 Q(`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 Q(e));this._correlations.clear()}};async function Pc(r){let e=new Qe(r);return await e.connect(),e}fe();q();Ye();Ye();fe();Ee();var lu=0;function En(){return`interceptor_${++lu}`}function Tn(r,e){let t=r.findIndex(n=>n.priority>e.priority);t===-1?r.push(e):r.splice(t,0,e)}var hr=class{constructor(){f(this,"requestInterceptors",[]);f(this,"responseInterceptors",[]);f(this,"errorInterceptors",[])}useRequest(e,t={}){let n=t.id??En();return Tn(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??En();return Tn(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??En();return Tn(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:te(),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(Rn(o)){e.response=o;for(let i of n)this.eject(i);return this._runResponsePhase(e,t)}Eo(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(Eo(o)){e.request=o,e.response=null,e.error=null;for(let i of n)this.eject(i);return this._run(e,t)}Rn(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&&Rn(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 Rn(r){return r!==null&&typeof r=="object"&&typeof r.status=="number"&&"headers"in r&&"request"in r}function Eo(r){return r!==null&&typeof r=="object"&&typeof r.url=="string"&&typeof r.method=="string"&&!("status"in r)}var hu={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 Co(r={}){let e={...hu,...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=wn(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 ko(c),{...a.request}},errorInterceptor:async a=>{if(!n(a))return;let c=t(a.attempt,null);throw e.onRetry?.(a,c),await ko(c),a.error=null,new vn(a.request)}}}var vn=class{constructor(e){f(this,"request");f(this,"__retrySignal",!0);this.request=e}},fu={getToken:()=>null,refreshToken:null,headerName:"authorization",scheme:"Bearer ",refreshOnStatuses:[401],maxQueue:50,refreshRetryDelay:3e4};function vo(r){let e={...fu,...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 du={timeoutMs:3e4,methodTimeouts:{},message:"Request timed out"};function Po(r={}){let e={...du,...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 Pn(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(kn,{existing:l,onExistingAbort:h})}i.request={...i.request,signal:c.signal},i.store.set(An,u)},n=i=>{let a=i.store.get(An);a&&(clearTimeout(a),i.store.delete(An));let c=i.store.get(kn);c&&(c.existing.removeEventListener("abort",c.onExistingAbort),i.store.delete(kn))};return{id:"timeout",requestInterceptor:t,responseInterceptor:i=>{n(i)},errorInterceptor:i=>{n(i)}}}var An=Symbol("timeoutTimer"),kn=Symbol("timeoutSignal"),Pn=class extends Error{constructor(t,n){super(t);f(this,"timeoutMs");f(this,"code","ETIMEDOUT");this.timeoutMs=n,this.name="TimeoutError"}},pu={logger:r=>console.log(JSON.stringify(r)),redactHeaders:["authorization","cookie","set-cookie","proxy-authorization"],logRequests:!0,logResponses:!0,logErrors:!0},To=Symbol("requestId"),mu=0;function Lo(r={}){let e={...pu,...r},t=new Set(e.redactHeaders.map(c=>c.toLowerCase()));function n(c){let u={};for(let[l,h]of Object.entries(c))u[l]=t.has(l.toLowerCase())?"**REDACTED**":h;return u}function s(c,u){let l=u.store.get(To)??"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"?te()-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_${++mu}`;c.store.set(To,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 gu={maxEntries:500,defaultTtlMs:6e4,cacheMethods:["GET","HEAD"],cacheKey:null,honorCacheControl:!0};function Io(r={}){let e={...gu,...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],p=l.match(/stale-while-revalidate=(\d+)/)?.[1],d=/no-store/i.test(l),m=/no-cache/i.test(l);if(e.honorCacheControl&&(d||m))return{ttlMs:0,swrMs:0};let g=h?parseInt(h,10)*1e3:e.defaultTtlMs,y=p?parseInt(p,10)*1e3:0;return{ttlMs:g,swrMs:y}}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 p=te();if(h.expiresAt>p)return o(l),u.store.set(yu,!0),{...h.response,request:u.request};h.staleUntil>p&&(o(l),u.store.set(Ro,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(Ro);if(g){let{ttlMs:y,swrMs:w}=i(g.response),_=te(),b={...g,createdAt:_,expiresAt:_+y,staleUntil:_+y+w};t.set(l,b),o(l),u.response={...g.response,request:u.request};return}}let{ttlMs:h,swrMs:p}=i(u.response);if(h<=0)return;let d=te(),m={response:u.response,createdAt:d,expiresAt:d+h,staleUntil:d+h+p,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 yu=Symbol("cacheHit"),Ro=Symbol("cacheStale");function Oo(){let r=new Map;async function e(o){let i=await Se(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(Cn,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:d=>c(d),reject:d=>u(d),cleanup:()=>l?.removeEventListener("abort",p)},p=()=>{let d=a.waiters.indexOf(h);d!==-1&&a.waiters.splice(d,1),u(new Error("Request aborted while queued for deduplication"))};if(l?.aborted){p();return}l?.addEventListener("abort",p,{once:!0}),a.waiters.push(h)})},responseInterceptor:o=>{if(!o.response)return;let i=o.store.get(Cn);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(Cn);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 Cn=Symbol("dedupeKey"),wu={limit:60,windowMs:6e4,queue:!0,maxQueue:100};function fr(r={}){let e={...wu,...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=te(),s=[],o=null;function i(){let u=te(),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 Rt("Rate limit exceeded");if(s.length>=e.maxQueue)throw new Rt("Rate limit queue full");await new Promise(u=>{s.push(()=>u()),a()})}return async()=>{await c()}}var Rt=class extends Error{constructor(t){super(t);f(this,"code","ERATELIMIT");this.name="RateLimitError"}},Mo={maxConcurrent:10,queue:!0,maxQueue:100},et=class extends Error{constructor(t){super(t);f(this,"code","ECONCURRENCY");this.name="ConcurrencyLimitError"}};function Ao(r){r.onAbort&&r.signal&&r.signal.removeEventListener("abort",r.onAbort),r.onAbort=null,r.signal=null}var At=class{constructor(e={}){f(this,"cfg");f(this,"active",0);f(this,"peak",0);f(this,"waiters",[]);if(this.cfg={...Mo,...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 et(`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 et(`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}Ao(e),e.resolve()}drain(e=new et("Client destroyed")){let t=this.waiters.splice(0,this.waiters.length);for(let n of t)Ao(n),n.reject(e)}};function Do(){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,te())},responseInterceptor:i=>{if(!i.response)return;let a=i.store.get(e)??i.startedAt,c=te()-a,u=i.response.headers["content-type"]??i.response.headers["Content-Type"]??"application/octet-stream",l=i.response.body,h=Math.max(0,Ln(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:Ln(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 No(){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,te()),e++,d.attempt>1&&n++},c=d=>{if(!d.response)return;let m=d.store.get(r);if(m!==void 0){let y=te()-m;i.length>=o&&i.shift(),i.push(y)}let g=`${Math.floor(d.response.status/100)}xx`;if(g in s){let y=s;y[g]=(y[g]??0)+1}},u=()=>{t++};function l(d,m){if(d.length===0)return 0;let g=Math.ceil(m/100*d.length)-1,y=Math.min(Math.max(0,g),d.length-1);return d[y]}return{requestInterceptor:a,responseInterceptor:c,errorInterceptor:u,snapshot:()=>{let d=[...i].sort((g,y)=>g-y),m=d.length?d.reduce((g,y)=>g+y,0)/d.length:0;return{totalRequests:e,totalErrors:t,totalRetries:n,statusBuckets:{...s},avgDurationMs:Math.round(m),p50DurationMs:l(d,50),p95DurationMs:l(d,95),p99DurationMs:l(d,99)}},reset:()=>{e=0,t=0,n=0;for(let d of Object.keys(s))s[d]=0;i.length=0}}}function te(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}function ko(r){return new Promise(e=>setTimeout(e,r))}function Ln(r){return r?typeof r=="string"?new TextEncoder().encode(r).length:r instanceof Uint8Array||r instanceof ArrayBuffer?r.byteLength:-1:0}function bu(r={}){let e=new hr,t=Po(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(fr(r.rateLimit),{priority:-90,id:"ratelimit"});let n=Oo();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=Io(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=vo(r.auth),e.useRequest(o.requestInterceptor,{priority:-50,id:"auth-req"}),e.useResponse(o.responseInterceptor,{priority:-50,id:"auth-res"}));let i=Co(r.retry);e.useResponse(i.responseInterceptor,{priority:50,id:"retry-res"}),e.useError(i.errorInterceptor,{priority:50,id:"retry-err"});let a=Lo(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=Do();e.useRequest(c.requestInterceptor,{priority:95,id:"har-req"}),e.useResponse(c.responseInterceptor,{priority:95,id:"har-res"});let u=No();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}}fe();function xu(r){return()=>Promise.resolve(r)}function _u(){return()=>{let r=In("AWS_ACCESS_KEY_ID"),e=In("AWS_SECRET_ACCESS_KEY"),t=In("AWS_SESSION_TOKEN");return!r||!e?Promise.reject(new W("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 Su(...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 W(`All credential providers failed:
75
91
  ${e.map(t=>` - ${t.message}`).join(`
76
- `)}`)}}function Us(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 ec=new Set(["http://169.254.169.254","http://169.254.170.2","http://fd00:ec2::254"]);function tc(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 ec.has(n)}catch{return!1}}function rc(r={}){let e=r.endpoint??"http://169.254.169.254",t=r.timeout??5e3;if(!tc(e))throw new Error(`Invalid IMDS endpoint: ${e}. Only AWS metadata service endpoints are allowed.`);return Us(async()=>{let n=await Xr(`${e}/latest/api/token`,{method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"21600"}},t);if(!n.ok)throw new se(`IMDS token fetch failed: ${n.status}`);let s=await n.text(),o=await Xr(`${e}/latest/meta-data/iam/security-credentials/`,{headers:{"x-aws-ec2-metadata-token":s}},t);if(!o.ok)throw new se(`IMDS role fetch failed: ${o.status}`);let a=(await o.text()).trim().split(`
77
- `)[0]?.trim();if(!a)throw new se("No IAM role found in IMDS response");let c=await Xr(`${e}/latest/meta-data/iam/security-credentials/${a}`,{headers:{"x-aws-ec2-metadata-token":s}},t);if(!c.ok)throw new se(`IMDS credentials fetch failed: ${c.status}`);let l=await c.json();return{accessKeyId:l.AccessKeyId,secretAccessKey:l.SecretAccessKey,sessionToken:l.Token,expiration:l.Expiration}})}function Qt(r){return r.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,"")}function pt(r){return r.toISOString().slice(0,10).replace(/-/g,"")}function Gt(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 ce(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)}async function Zr(r){let e=new TextEncoder,t=typeof r=="string"?e.encode(r):r,n=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength),s=await crypto.subtle.digest("SHA-256",n);return qe(new Uint8Array(s))}function qe(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}var nc=new Set(["user-agent","x-forwarded-for","x-forwarded-host","x-forwarded-proto","accept-encoding","connection","expect","transfer-encoding"]),sc=new Set(["host","content-type","content-md5"]);function $s(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 oc(r,e){if(!r||r==="/")return"/";let n=r.split("/").map(i=>i===""||i==="."||i===".."?i:$s(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 ic(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 ac(r,e){let t=new Set([...nc,...e.map(a=>a.toLowerCase())]),n=[];for(let[a,c]of Object.entries(r)){let l=a.toLowerCase();if(t.has(l)&&!sc.has(l))continue;let u=c.trim().replace(/\s+/g," ");n.push([l,u])}n.sort(([a],[c])=>a<c?-1:a>c?1:0);let s=new Map;for(let[a,c]of n){let l=s.get(a);s.set(a,l?`${l},${c}`:c)}let o=Array.from(s.entries()).map(([a,c])=>`${a}:${c}`).join(`
92
+ `)}`)}}function $o(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 Eu=new Set(["http://169.254.169.254","http://169.254.170.2","http://fd00:ec2::254"]);function Tu(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 Eu.has(n)}catch{return!1}}function Ru(r={}){let e=r.endpoint??"http://169.254.169.254",t=r.timeout??5e3;if(!Tu(e))throw new Error(`Invalid IMDS endpoint: ${e}. Only AWS metadata service endpoints are allowed.`);return $o(async()=>{let n=await On(`${e}/latest/api/token`,{method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"21600"}},t);if(!n.ok)throw new W(`IMDS token fetch failed: ${n.status}`);let s=await n.text(),o=await On(`${e}/latest/meta-data/iam/security-credentials/`,{headers:{"x-aws-ec2-metadata-token":s}},t);if(!o.ok)throw new W(`IMDS role fetch failed: ${o.status}`);let a=(await o.text()).trim().split(`
93
+ `)[0]?.trim();if(!a)throw new W("No IAM role found in IMDS response");let c=await On(`${e}/latest/meta-data/iam/security-credentials/${encodeURIComponent(a)}`,{headers:{"x-aws-ec2-metadata-token":s}},t);if(!c.ok)throw new W(`IMDS credentials fetch failed: ${c.status}`);let u;try{u=await c.json()}catch(b){throw new W(`IMDS credentials response was not JSON: ${b instanceof Error?b.message:String(b)}`)}if(u===null||typeof u!="object")throw new W(`IMDS credentials response was not an object: ${typeof u}`);let{AccessKeyId:l,SecretAccessKey:h,Token:p,Expiration:d}=u,m=[];if((typeof l!="string"||l.length===0)&&m.push("AccessKeyId"),(typeof h!="string"||h.length===0)&&m.push("SecretAccessKey"),(typeof p!="string"||p.length===0)&&m.push("Token"),m.length>0)throw new W(`IMDS credentials response is missing ${m.join(", ")} \u2014 the metadata endpoint returned a body this client cannot sign with`);let g=(b,T)=>{if(typeof b!="string"||b.length===0)throw new W(`IMDS credentials response is missing ${T}`);return b},y=g(l,"AccessKeyId"),w=g(h,"SecretAccessKey"),_=g(p,"Token");return{accessKeyId:y,secretAccessKey:w,sessionToken:_,...typeof d=="string"?{expiration:d}:{}}})}function dr(r){return r.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,"")}function kt(r){return r.toISOString().slice(0,10).replace(/-/g,"")}function pr(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 ge(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)}async function Dn(r){let e=new TextEncoder,t=typeof r=="string"?e.encode(r):r,n=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength),s=await crypto.subtle.digest("SHA-256",n);return tt(new Uint8Array(s))}function tt(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}var Au=new Set(["user-agent","x-forwarded-for","x-forwarded-host","x-forwarded-proto","accept-encoding","connection","expect","transfer-encoding"]),ku=new Set(["host","content-type","content-md5"]);function Uo(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 Cu(r,e){if(!r||r==="/")return"/";let n=r.split("/").map(i=>i===""||i==="."||i===".."?i:Uo(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 vu(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 Pu(r,e){let t=new Set([...Au,...e.map(a=>a.toLowerCase())]),n=[];for(let[a,c]of Object.entries(r)){let u=a.toLowerCase();if(u===""||t.has(u)&&!ku.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 Yr(r,e,t,n,s,o,i){let a=r.toUpperCase(),c=oc(e.pathname,o),l=ic(e.searchParams),u;s?u="UNSIGNED-PAYLOAD":n?u=await Zr(n):u="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";let{canonicalHeaders:f,signedHeaders:p}=ac(t,i);return{canonicalRequest:[a,c,l,f,p,u].join(`
80
- `),signedHeaders:p,payloadHash:u}}async function mt(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 ce(a,e),l=await ce(c,t),u=await ce(l,n),f=await ce(u,"aws4_request");return a.fill(0),f}async function Hs(r,e,t){let n=await Zr(t);return["AWS4-HMAC-SHA256",r,e,n].join(`
81
- `)}async function en(r,e){let t=await Xt(e.credentials),n=Gt(e),s=Qt(n),o=pt(n),i=new URL(r.url),a={...r.headers,host:i.host,"x-amz-date":s};e.unsignedPayload&&(a["x-amz-content-sha256"]="UNSIGNED-PAYLOAD"),t.sessionToken&&(a["x-amz-security-token"]=t.sessionToken);let c=e.doubleEncodeUri!==!1,l=e.unsignedHeaders??[],{canonicalRequest:u,signedHeaders:f,payloadHash:p}=await Yr(r.method,i,a,r.body,e.unsignedPayload??!1,c,l);!a["x-amz-content-sha256"]&&!e.unsignedPayload&&(a["x-amz-content-sha256"]=p);let d=`${o}/${e.region}/${e.service}/aws4_request`,g=await Hs(s,d,u),m=await mt(t.secretAccessKey,o,e.region,e.service),y=await ce(m,g),b=qe(y),x=`AWS4-HMAC-SHA256 Credential=${t.accessKeyId}/${d}, SignedHeaders=${f}, Signature=${b}`;return{method:r.method,url:r.url,headers:{...a,authorization:x},body:r.body,authorization:x,amzDate:s,signature:b,canonicalRequest:u,stringToSign:g}}async function js(r,e,t={}){let n=await Xt(e.credentials),s=Gt(e),o=Qt(s),i=pt(s),a=t.expiresIn??3600,c=e.service==="s3"?604800:3600;(a<1||a>c)&&console.warn(`[aws-sigv4] presignRequest: expiresIn should be 1-${c} seconds for ${e.service}, got ${a}`);let l=new URL(r.url),u=`${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}/${u}`),l.searchParams.set("X-Amz-Date",o),l.searchParams.set("X-Amz-Expires",String(a)),n.sessionToken&&!t.omitSessionToken&&l.searchParams.set("X-Amz-Security-Token",n.sessionToken),t.extraParams)for(let[R,A]of Object.entries(t.extraParams))l.searchParams.set(R,A);let f={...r.headers,host:l.host},p=e.unsignedHeaders??[],{canonicalRequest:d,signedHeaders:g}=await Yr(r.method,l,f,null,!0,e.doubleEncodeUri!==!1,p);l.searchParams.set("X-Amz-SignedHeaders",g);let{canonicalRequest:m}=await Yr(r.method,l,f,null,!0,e.doubleEncodeUri!==!1,p),y=await Hs(o,u,m),b=await mt(n.secretAccessKey,i,e.region,e.service),x=await ce(b,y),E=qe(x);return l.searchParams.set("X-Amz-Signature",E),l.toString()}async function zs(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 en(t,{...e,unsignedPayload:!1}),s=await Xt(e.credentials),o=Gt(e),i=pt(o),a=Qt(o),c=await mt(s.secretAccessKey,i,e.region,e.service),l=`${i}/${e.region}/${e.service}/aws4_request`;return{signedRequest:n,state:{previousSignature:n.signature,signingKey:c,scope:l,signingDate:a}}}async function cc(r,e){let t=typeof r=="string"?new TextEncoder().encode(r):r,n=await Zr(t),o=["AWS4-HMAC-SHA256-PAYLOAD",e.signingDate,e.scope,e.previousSignature,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",n].join(`
82
- `),i=await ce(e.signingKey,o),a=qe(i);return{chunkHeader:`${t.byteLength.toString(16)};chunk-signature=${a}\r
83
- `,newState:{...e,previousSignature:a}}}async function lc(r){let e="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",t=["AWS4-HMAC-SHA256-PAYLOAD",r.signingDate,r.scope,r.previousSignature,e,e].join(`
84
- `),n=await ce(r.signingKey,t);return`0;chunk-signature=${qe(n)}\r
95
+ `,i=Array.from(s.keys()).join(";");return{canonicalHeaders:o,signedHeaders:i}}async function Mn(r,e,t,n,s,o,i){let a=r.toUpperCase(),c=Cu(e.pathname,o),u=vu(e.searchParams),l;s?l="UNSIGNED-PAYLOAD":n?l=await Dn(n):l="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";let{canonicalHeaders:h,signedHeaders:p}=Pu(t,i);return{canonicalRequest:[a,c,u,h,p,l].join(`
96
+ `),signedHeaders:p,payloadHash:l}}async function Ct(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 ge(a,e),u=await ge(c,t),l=await ge(u,n),h=await ge(l,"aws4_request");return a.fill(0),h}async function Ho(r,e,t){let n=await Dn(t);return["AWS4-HMAC-SHA256",r,e,n].join(`
97
+ `)}async function Nn(r,e){let t=await mr(e.credentials),n=pr(e),s=dr(n),o=kt(n),i=new URL(r.url),a=Object.keys(r.headers).some(T=>T.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:p,payloadHash:d}=await Mn(r.method,i,c,r.body,e.unsignedPayload??!1,u,l);!c["x-amz-content-sha256"]&&!e.unsignedPayload&&(c["x-amz-content-sha256"]=d);let m=`${o}/${e.region}/${e.service}/aws4_request`,g=await Ho(s,m,h),y=await Ct(t.secretAccessKey,o,e.region,e.service),w=await ge(y,g),_=tt(w),b=`AWS4-HMAC-SHA256 Credential=${t.accessKeyId}/${m}, SignedHeaders=${p}, 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 jo(r,e,t={}){let n=await mr(e.credentials),s=pr(e),o=dr(s),i=kt(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,E]of Object.entries(t.extraParams))l.searchParams.set(C,E);let p=Object.keys(r.headers).some(C=>C.toLowerCase()==="host"),d={...r.headers,...p?{}:{host:l.host}},m=e.unsignedHeaders??[],{canonicalRequest:g,signedHeaders:y}=await Mn(r.method,l,d,null,!0,e.doubleEncodeUri!==!1,m);l.searchParams.set("X-Amz-SignedHeaders",y);let{canonicalRequest:w}=await Mn(r.method,l,d,null,!0,e.doubleEncodeUri!==!1,m),_=await Ho(o,h,w),b=await Ct(n.secretAccessKey,i,e.region,e.service),T=await ge(b,_),k=tt(T);return l.searchParams.set("X-Amz-Signature",k),l.toString()}async function Bo(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 Nn(t,{...e,unsignedPayload:!1}),s=await mr(e.credentials),o=pr(e),i=kt(o),a=dr(o),c=await Ct(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 Lu(r,e){let t=typeof r=="string"?new TextEncoder().encode(r):r,n=await Dn(t),o=["AWS4-HMAC-SHA256-PAYLOAD",e.signingDate,e.scope,e.previousSignature,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",n].join(`
98
+ `),i=await ge(e.signingKey,o),a=tt(i);return{chunkHeader:`${t.byteLength.toString(16)};chunk-signature=${a}\r
99
+ `,newState:{...e,previousSignature:a}}}async function Iu(r){let e="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",t=["AWS4-HMAC-SHA256-PAYLOAD",r.signingDate,r.scope,r.previousSignature,e,e].join(`
100
+ `),n=await ge(r.signingKey,t);return`0;chunk-signature=${tt(n)}\r
85
101
  \r
86
- `}async function qs(r,e){let t=await Xt(e.credentials),n=Gt(e),s=pt(n),o=`${s}/${e.region}/${e.service}/aws4_request`,i=`${t.accessKeyId}/${o}`,a=JSON.stringify(r),c=btoa(a),l=await mt(t.secretAccessKey,s,e.region,e.service),u=await ce(l,c),f=qe(u),p={policy:c,signature:f,credential:i,date:s};return t.sessionToken&&(p.securityToken=t.sessionToken),p}function Bs(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 Fs(r,e){return r!==403&&r!==400?!1:e.includes("RequestTimeTooSkewed")||e.includes("RequestExpired")||e.includes("InvalidSignatureException")||e.includes("AuthFailure")||e.includes("SignatureDoesNotMatch")}var le=class{constructor(e){h(this,"config");h(this,"clockSkewSecs",0);this.config=e}async sign(e){return await en(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 qs(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}async initChunked(e){return await zs(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}updateClockSkew(e){let t=Bs(e);t!==0&&(this.clockSkewSecs=t)}handleClockSkewError(e,t,n){return Fs(e,t)?(this.updateClockSkew(n),!0):!1}};async function Xt(r){return await(typeof r=="function"?r():Promise.resolve(r))}function Gr(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 Xr(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 X(t):o}finally{clearTimeout(s)}}function uc(r){return new le({credentials:r.credentials,region:r.region,service:"s3",doubleEncodeUri:!1,unsignedPayload:r.unsignedPayload??!1})}function hc(r){return new le({credentials:r.credentials,region:r.region,service:"execute-api"})}function fc(r){return new le({credentials:r.credentials,region:r.region,service:"sts"})}function dc(r){return new le({credentials:r.credentials,region:r.region,service:"dynamodb"})}z();function pc(r){let e=[];for(let u=0;u<r.length;u++){let f=r.charCodeAt(u);if(f<128)e.push(f);else if(f<2048)e.push(192|f>>6,128|f&63);else if(f<55296||f>=57344)e.push(224|f>>12,128|f>>6&63,128|f&63);else{u++;let p=r.charCodeAt(u),d=65536+((f&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,c=271733878;for(let u=0;u<e.length;u+=64){let f=[];for(let y=0;y<16;y++){let b=e[u+y*4],x=e[u+y*4+1],E=e[u+y*4+2],R=e[u+y*4+3];f[y]=(b|x<<8|E<<16|R<<24)>>>0}let p=o,d=i,g=a,m=c;for(let y=0;y<64;y++){let b,x;y<16?(b=d&g|~d&m,x=y):y<32?(b=m&d|~m&g,x=(5*y+1)%16):y<48?(b=d^g^m,x=(3*y+5)%16):(b=g^(d|~m),x=7*y%16),b=b+p+n[y]+f[x]>>>0,p=m,m=g,g=d,d=d+(b<<s[y]|b>>>32-s[y])>>>0}o=o+p>>>0,i=i+d>>>0,a=a+g>>>0,c=c+m>>>0}function l(u){let f="";for(let p=0;p<4;p++)f+=(u>>>p*8&255).toString(16).padStart(2,"0");return f}return l(o)+l(i)+l(a)+l(c)}function Ws(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 mc(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 gc(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 l=r.charCodeAt(c);if(l<128)n.push(l);else if(l<2048)n.push(192|l>>6,128|l&63);else if(l<55296||l>=57344)n.push(224|l>>12,128|l>>6&63,128|l&63);else{c++;let u=r.charCodeAt(c),f=65536+((l&1023)<<10|u&1023);n.push(240|f>>18,128|f>>12&63,128|f>>6&63,128|f&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,l){return c>>l|c<<64n-l&0xffffffffffffffffn}let i=t.slice();for(let c=0;c<n.length;c+=128){let l=new Array(80);for(let x=0;x<16;x++){let E=0n;for(let R=0;R<8;R++)E=E<<8n|BigInt(n[c+x*8+R]);l[x]=E}for(let x=16;x<80;x++){let E=o(l[x-15],1n)^o(l[x-15],8n)^l[x-15]>>7n,R=o(l[x-2],19n)^o(l[x-2],61n)^l[x-2]>>6n;l[x]=l[x-16]+E+l[x-7]+R&0xffffffffffffffffn}let u=i[0],f=i[1],p=i[2],d=i[3],g=i[4],m=i[5],y=i[6],b=i[7];for(let x=0;x<80;x++){let E=o(g,14n)^o(g,18n)^o(g,41n),R=g&m^~g&y,A=b+E+R+e[x]+l[x]&0xffffffffffffffffn,U=o(u,28n)^o(u,34n)^o(u,39n),_=u&f^u&p^f&p,v=U+_&0xffffffffffffffffn;b=y,y=m,m=g,g=d+A&0xffffffffffffffffn,d=p,p=f,f=u,u=A+v&0xffffffffffffffffn}i=[i[0]+u&0xffffffffffffffffn,i[1]+f&0xffffffffffffffffn,i[2]+p&0xffffffffffffffffn,i[3]+d&0xffffffffffffffffn,i[4]+g&0xffffffffffffffffn,i[5]+m&0xffffffffffffffffn,i[6]+y&0xffffffffffffffffn,i[7]+b&0xffffffffffffffffn]}let a="";for(let c=0;c<4;c++)a+=i[c].toString(16).padStart(16,"0");return a}async function Ks(r,e,t,n,s,o,i){let a=r.qop||"",c=r.nonce,l=r.realm,u=o||Ue(5),f=i||"00000001",p=yc(r.algorithm);async function d(x){return p==="MD5"?pc(x):p==="SHA-512-256"?gc(x):await mc(x)}let g=await d(`${e}:${l}:${t}`),m=await d(`${n}:${s}`),y,b=a.split(/\s*,\s*/).filter(Boolean);return b.includes("auth")||b.includes("auth-int")?y=await d(`${g}:${c}:${f}:${u}:${b[0]}:${m}`):y=await d(`${g}:${c}:${m}`),y}function yc(r){let e=r.toUpperCase().replace(/-/g,"");return e==="SHA256"?"SHA-256":e==="SHA512256"?"SHA-512-256":"MD5"}function Vs(r,e,t,n,s,o){let i=[],a=s||Ue(5),c=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=${c}`),i.push(`cnonce="${a}"`)),`Digest ${i.join(", ")}`}async function tn(r,e,t,n,s){let o=Ws(r),i=Ue(5),a="00000001",c=await Ks(o,e,t,n,s,i,a);return Vs(o,e,c,s,i,a)}xt();var Dl={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"]},Vn=class{constructor(){h(this,"_req",new Map);h(this,"_res",new Map);h(this,"_err",new Map);h(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 Nl(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=Jn(32),t=Jn(16);return{traceparent:`00-${e}-${t}-01`,traceId:e,spanId:t}}function Jn(r){return Ue(r/2)}var Ul=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"]);function Pi(r,e){return Ul.has(r.toLowerCase())?{name:r,value:"***REDACTED***"}:{name:r,value:e}}var Qn=class{constructor(e=1e4){h(this,"_buf",new Map);h(this,"_head",0);h(this,"_tail",0);h(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=performance.getEntriesByType("resource").filter(f=>f.name===t.url).pop();u&&u.requestStart>0&&(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 c={startedDateTime:new Date(n).toISOString(),time:s,request:{method:e.method,url:e.url,httpVersion:t.httpVersion,headers:Object.entries(e.headers).map(([l,u])=>Pi(l,u)),queryString:(()=>{try{return Array.from(new URL(e.url).searchParams.entries()).map(([l,u])=>({name:l,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(([l,u])=>Pi(l,u)),content:{size:t.rawBody?.byteLength??0,mimeType:t.headers["content-type"]??"application/octet-stream",...typeof t.data=="string"?{text:t.data}:{}},redirectURL: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:${me}`},entries:[...this.entries]}}clear(){this._buf.clear(),this._head=0,this._tail=0}get count(){return this._buf.size}};async function Ii(r,e){let t={...r.headers};switch(e.type){case"bearer":{let s=`Bearer ${typeof e.token=="function"?await e.token():e.token}`;if(!be(s))throw new S("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=Ft(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(!De(e.header))throw new S(`Invalid apikey auth header name: "${e.header}"`,"EVALIDATION");if(!be(String(n)))throw new S(`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 $l=new Set(["authorization","cookie","proxy-authorization","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","www-authenticate"]);function Fn(r){try{let e=new URL(r);return e.username||e.password?(e.username="",e.password="",e.toString()):r}catch{return r.replace(/\/\/[^/@]*@/,"//")}}function Ut(r,e,t){let o;if(/^https?:\/\//i.test(e))o=e;else{let i=r??"";try{let a=i.replace(/\/$/,""),c=e.startsWith("/")?e.slice(1):e;o=new URL(c,a+"/").href}catch{let a=i.endsWith("/")?i:i+"/",c=e.startsWith("/")?e.slice(1):e;o=a+c}}if(!t||Object.keys(t).length===0){if(!Ne(o))throw new S(`URL "${Fn(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[l,u]of Object.entries(t)){if(u==null)continue;let f=String(u);if(Array.isArray(u)){for(let p of u)if(p!=null){if(a++,a>100)throw new S(`Query parameter count ${a} exceeds limit of 100`,"EVALIDATION");i.searchParams.append(l,String(p))}}else{if(a++,a>100)throw new S(`Query parameter count ${a} exceeds limit of 100`,"EVALIDATION");i.searchParams.set(l,f)}}let c=i.toString();if(c.length>8192)throw new S(`URL length ${c.length} bytes exceeds limit of 8192 bytes`,"EVALIDATION");if(!Ne(c))throw new S(`URL "${Fn(c)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return c}catch(i){if(i instanceof S)throw i;o.includes("?")?o+="&":o+="?";let a=[],c=0;for(let[u,f]of Object.entries(t??{}))if(f!=null)if(Array.isArray(f)){for(let p of f)if(p!=null){if(c++,c>100)throw new S(`Query parameter count ${c} exceeds limit of 100`,"EVALIDATION");a.push(`${encodeURIComponent(u)}=${encodeURIComponent(String(p))}`)}}else{if(c++,c>100)throw new S(`Query parameter count ${c} exceeds limit of 100`,"EVALIDATION");a.push(`${encodeURIComponent(u)}=${encodeURIComponent(String(f))}`)}let l=o+a.join("&");if(l.length>8192)throw new S(`URL length ${l.length} bytes exceeds limit of 8192 bytes`,"EVALIDATION");if(!Ne(l))throw new S(`URL "${Fn(l)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return l}}function Ze(...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(!De(s))throw new S(`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(!be(i))throw new S(`Invalid header value for ${s}: contains forbidden characters`,"EVALIDATION");e[s.toLowerCase()]=i}}return e}function Li(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 Wn(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 Hl(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 $t=class r{constructor(e={}){h(this,"cfg");h(this,"transport");h(this,"interceptors");h(this,"harRecorder");h(this,"retryConfig");h(this,"_cache",null);h(this,"_cookieJar",null);h(this,"_logger",null);h(this,"_cacheInitLock",null);h(this,"_cookieJarInitLock",null);h(this,"_loggerInitLock",null);h(this,"_otelTracer",null);h(this,"_dedup",null);h(this,"_circuitBreakers",null);h(this,"_circuitBreakerKeyFn",null);h(this,"_wsClients",new Set);if(this.cfg=e,this.interceptors=new Vn,this.harRecorder=e.har===!0?new Qn:null,this.retryConfig={...Dl,...e.retry},e.circuitBreakerKeyFn&&(this._circuitBreakerKeyFn=e.circuitBreakerKeyFn),e.rateLimit){let t=Jt(e.rateLimit);this.interceptors.addRequest(t)}if(e.awsSigning){let t=new le(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=or(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;this.interceptors.addResponse(async n=>{if(!n.response||n.response.status!==401)return;let s=n.response.headers["www-authenticate"];if(!s||!s.toLowerCase().startsWith("digest")||n.request.meta.__digestRetried)return;let o=n.request.method,i=new URL(n.request.url).pathname+new URL(n.request.url).search,a=await tn(s,t.username,t.password,o,i);return{...n.request,headers:{...n.request.headers,authorization:a},meta:{...n.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.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={error:o.error,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},response:null,attempt:o.attempt},a={request:i.request,response:null,error:o.error,startedAt:o.startedAt,attempt:o.attempt,meta:o.request.meta};await e.runOnError(i,a)});return()=>{t(),n(),s()}}useResponse(e){return this.interceptors.addResponse(e)}useError(e){return this.interceptors.addError(e)}getHAR(){if(!this.harRecorder)throw new S("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(()=>(ft(),Es));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(()=>(Dn(),jo));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(()=>(dr(),Vo));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:Ze(this.cfg.headers,e.headers),params:{...this.cfg.params,...e.params},interceptors:{request:[...t,...o],response:[...n,...i],error:[...s,...a]}}),l=new Set([...t,...o]),u=new Set([...n,...i]),f=new Set([...s,...a]);for(let p of this.interceptors.request)l.has(p)||c.useRequest(p);for(let p of this.interceptors.response)u.has(p)||c.useResponse(p);for(let p of this.interceptors.error)f.has(p)||c.useError(p);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 Me(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 Oe(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=Ut(this.cfg.baseURL,e,this.cfg.params),s=Ze(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,g=d.encode(i.username),m=d.encode(i.password),y=new Uint8Array(g.length+1+m.length);y.set(g),y[g.length]=58,y.set(m,g.length+1);let b=Ft(y);y.fill(0),g.fill(0),m.fill(0),o.authorization=`Basic ${b}`}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 g=new URL(this.cfg.baseURL),m=d.protocol==="wss:",y=g.protocol==="https:";if(m!==y||d.host!==g.host)throw new S(`WebSocket origin ${d.origin} does not match baseURL origin ${g.origin}`,"EVALIDATION")}}catch(d){throw d instanceof S?d:new S(`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 S(`Circuit breaker is open for WebSocket origin ${new URL(n).origin}`,"ENETWORK")}let c=this.cfg.ws,l={...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},u=l.onClose,f=(d,g,m)=>{m||this._wsClients.delete(p),u?.(d,g,m)},p=new $e({url:n,headers:{...o,...s},...l,onClose:f});return this._wsClients.add(p),await p.connect().catch(d=>{throw this._wsClients.delete(p),d}),p}async send(e,t,n={}){let s=xr(),o=Date.now(),i=n.timeout!==void 0?n.timeout:this.cfg.timeout??3e4,a=n.retry===!1?!1:{...this.retryConfig,...n.retry??{}},c=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","TRACE","CONNECT"],l=t.toUpperCase();if(!c.includes(l))throw new S(`Invalid HTTP method '${t}'. Valid methods: ${c.join(", ")}`,"EVALIDATION");let u=Ut(n.baseURL??this.cfg.baseURL,e,jl(this.cfg.params,n.params));if(n.proxy??this.cfg.proxy)throw new S("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 _=new URL(u);if(_.protocol!=="https:")throw new S(`HTTPS-only mode enabled but URL uses ${_.protocol}. Use HTTPS URLs only.`,"EVALIDATION")}catch(_){throw _ instanceof S?_:new S(`Invalid URL: ${_}`,"EVALIDATION")}let p=n.maxRequestSize??this.cfg.maxRequestSize??0;if(p>0&&n.body){let _=0;if(typeof n.body=="string")_=new TextEncoder().encode(n.body).byteLength;else if(n.body instanceof Uint8Array)_=n.body.byteLength;else if(n.body instanceof ArrayBuffer)_=n.body.byteLength;else if(n.body instanceof Blob)_=n.body.size;else if(ArrayBuffer.isView(n.body))_=n.body.byteLength;else if(n.body instanceof URLSearchParams)_=new TextEncoder().encode(n.body.toString()).byteLength;else if(n.body instanceof FormData){for(let[M,H]of n.body)_+=new TextEncoder().encode(M).byteLength+76,typeof H=="string"?_+=new TextEncoder().encode(H).byteLength:_+=H.size;_+=76}else{if(n.body instanceof ReadableStream)throw new S("maxRequestSize cannot be enforced for ReadableStream bodies \u2014 pass maxRequestSize: 0 to opt out, or buffer the body first","EVALIDATION");n.body&&typeof n.body=="object"&&(_=new TextEncoder().encode(JSON.stringify(n.body)).byteLength)}if(_>p)throw new S(`Request body size ${_} bytes exceeds limit of ${p} bytes`,"EVALIDATION")}let d={url:u,method:t,headers:Ze(this.cfg.headers,n.headers),body:n.body??null,signal:n.signal??null,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)});let g=n.auth!==!1?n.auth??this.cfg.auth:void 0;g&&(d=await Ii(d,g)),this.cfg.transformRequest&&(d=await this.cfg.transformRequest(d));let m=await this.getCookieJar();if(m){let _=m.getCookieHeader({url:d.url,http:!0});_&&(d={...d,headers:{...d.headers,cookie:_}})}let y=null;if(this._otelTracer){y=this._otelTracer.startSpan(`HTTP ${d.method}`,{kind:3});let{traceparent:_,traceId:v,spanId:M}=Nl(y);y.setAttribute("http.request.method",d.method),y.setAttribute("url.full",d.url);try{y.setAttribute("server.address",new URL(d.url).hostname)}catch{}d={...d,headers:{...d.headers,traceparent:_},meta:{...d.meta,traceId:v,spanId:M}}}else if(d.meta.traceId&&!d.headers.traceparent){let _=String(d.meta.traceId),v=Jn(16);d={...d,headers:{...d.headers,traceparent:`00-${_}-${v}-01`},meta:{...d.meta,spanId:v}}}let b;if(this._circuitBreakerKeyFn)try{b=this._circuitBreakerKeyFn(d)}catch{b=d.url}else try{b=new URL(d.url).origin}catch{b=d.url}let x=()=>this._executeWithRetry(d,a,i,n,s,o),E=await ze(d.headers??{}),R=`${d.method}:${d.url}${E?":"+E:""}`,A=this._dedup?()=>this._dedup.execute(d.method,R,x).then(_=>_):x,U=this._circuitBreakers?()=>this._circuitBreakers.execute(b,A).then(_=>_):A;try{let _=await U();return y&&(y.setAttribute("http.response.status_code",_.status),y.setStatus({code:_.status<400?1:2}),y.end()),_}catch(_){throw y&&(y.setStatus({code:2,message:_ instanceof Error?_.message:String(_)}),_ instanceof Error&&y.recordException(_),y.end()),_}}async _executeWithRetry(e,t,n,s,o,i){let a=0;for(;;){if(a++,e.signal?.aborted)throw Gn();try{let c=await this._executeOnce(e,n,s,o,a,i,t);if(t&&a<=t.maxRetries){let l={request:e,response:c,error:null,attempt:a,maxRetries:t.maxRetries};if(t.shouldRetry?await t.shouldRetry(l):Li(t,l)){let f=Wn(t,a,Hl(c.headers));await t.onRetry?.(l,f),await this.cfg.hooks?.onRetry?.reduce(async(p,d)=>{await p,await d(l)},Promise.resolve()),await Kn(f,e.signal);continue}}return c}catch(c){if(t&&a<=t.maxRetries){let u={request:e,response:null,error:c,attempt:a,maxRetries:t.maxRetries};if(t.shouldRetry?await t.shouldRetry(u):Li(t,u)){let p=Wn(t,a,null);await t.onRetry?.(u,p),await Kn(p,e.signal);continue}}let l=await this._runErrorInterceptors(e,c,a,o);if(l)return l;if(s.onError){let u=c instanceof S?c:new S(String(c),"EUNKNOWN",{request:e,cause:c});throw s.onError(u),u}throw c}}}async _sendFollowingRedirects(e,t,n,s){let i={...e,redirect:"manual"},a=(()=>{try{return new URL(e.url).origin}catch{return null}})(),c=new Set;for(let l=0;l<=20;l++){if(l>0&&s&&(()=>{try{return new URL(i.url).origin===a}catch{return!1}})()&&(i=await Ii(i,s)),l>0&&this.cfg.hooks?.onBeforeRequest)for(let p of this.cfg.hooks.onBeforeRequest){let d=await p(i,{request:i,response:null,error:null,startedAt:xr(),attempt:1,meta:i.meta});d&&(i={...d,redirect:"manual"})}let u=await Je(this.transport,i,t);if(l>0){let p=await this.getLogger();if(p){let d=i.meta.requestId??"redirect";p.logResponse(d,u.status,u.statusText,u.headers,new Uint8Array(0),1,!1)}}if(u.status>=300&&u.status<400&&!!u.headers.location){if(c.has(u.url))throw new S(`Redirect loop detected: ${u.url}`,"ENETWORK",{request:e});if(c.add(u.url),n.processResponseHeaders(u.headers,{url:u.url}),l===20)throw new S("Too many redirects (exceeded 20)","ENETWORK",{request:e});if(u.body)try{await u.body.cancel()}catch{}let p=u.headers.location,d;try{let x=new URL(p,u.url);d=x.href;let E=x.protocol.toLowerCase();if(E!=="http:"&&E!=="https:")throw new S(`Unsafe redirect to ${E} detected \u2014 only HTTP(S) allowed`,"ENETWORK",{request:e})}catch(x){throw x instanceof S?x:new S(`Invalid redirect location: ${p}`,"ENETWORK",{request:e,cause:x})}let g=u.status===301||u.status===302||u.status===303?"GET":i.method,m=g==="GET"||g==="HEAD"?null:i.body,y=n.getCookieHeader({url:d,http:!0}),b={...i.headers};y?b.cookie=y:delete b.cookie;try{if(new URL(d).origin!==new URL(i.url).origin)for(let x of $l)delete b[x]}catch{}i={...i,url:d,method:g,body:m,headers:b,redirect:"manual"};continue}return u}throw new S("Redirect loop","ENETWORK",{request: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},l=e.meta.requestId??`req-${o}-${Date.now()}`;if(this._trace(l,"request_interceptors","start",s,o),e=await this._runRequestInterceptors(c),this._trace(l,"request_interceptors","end",s,o),this._trace(l,"lifecycle_before","start",s,o),this.cfg.hooks?.onBeforeRequest)for(let k of this.cfg.hooks.onBeforeRequest){let P=await k(e,this._hookCtx(c));P&&(e=P)}if(this._trace(l,"lifecycle_before","end",s,o),n.cache!==!1&&this.cfg.cache){let k=await this.getCache();if(k){let P={url:e.url,method:e.method,headers:e.headers},C=await k.get(P);if(C&&!C.stale){let L=await this._buildResponse(C.entry.response,e,!0,o,s,n);if(this.cfg.hooks?.onBeforeResponse)for(let W of this.cfg.hooks.onBeforeResponse)await W(L,this._hookCtx(c));return L}if(C?.stale){if(await k.markSWRInFlight(P)){let D={...e,headers:{...e.headers,...k.buildConditionalHeaders(C.entry)}};(async()=>{try{let q=await Je(this.transport,D,t),kr=await this.getCache();if(kr)if(q.status===304)await kr.revalidate({url:D.url,method:D.method,headers:D.headers},{status:304,statusText:"Not Modified",headers:q.headers,body:null});else{let{decompressBodyStream:Fi,readRawBody:Wi}=await Promise.resolve().then(()=>(xt(),No)),Ki=await Fi(q.body,q.headers),Vi=await Wi(Ki,0,q.url,D.signal);await kr.set({url:D.url,method:D.method,headers:D.headers},{status:q.status,statusText:q.statusText,headers:q.headers,body:Vi},{tags:n.tags??[]})}}catch(q){if(this.cfg.onSWRError)try{this.cfg.onSWRError(q,D)}catch{}}finally{(await this.getCache())?.clearSWRInFlight(P)}})()}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 f=u.length>0?u:null,p=null;if(f!==null&&e.body!==null){let k=null,P=null;if(e.body instanceof ReadableStream)k=e.body;else if(typeof e.body=="string"){let C=new TextEncoder().encode(e.body);P=C.byteLength,k=new ReadableStream({start:L=>{L.enqueue(C),L.close()}})}else if(e.body instanceof Uint8Array)P=e.body.byteLength,k=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,k=new ReadableStream({start:L=>{L.enqueue(C),L.close()}})}else if(typeof Blob<"u"&&e.body instanceof Blob)P=e.body.size,k=e.body.stream();else if(typeof URLSearchParams<"u"&&e.body instanceof URLSearchParams){let C=new TextEncoder().encode(e.body.toString());P=C.byteLength,k=new ReadableStream({start:L=>{L.enqueue(C),L.close()}})}if(k){let{stream:C}=zt(k,P,{onProgress:L=>{let W=L;for(let D of u)D(W)},...e.signal!==null?{signal:e.signal}:{}});p=C,e={...e,body:C}}}e.headers["accept-encoding"]||(e={...e,headers:{...e.headers,"accept-encoding":"gzip, deflate, br"}});let d=await this.getCookieJar();this._trace(l,"transport_send","start",s,o);let g;try{g=d?await this._sendFollowingRedirects(e,t,d,n.auth!==!1?n.auth??this.cfg.auth:void 0):await Je(this.transport,e,t)}catch(k){if(p)try{p.cancel("Request failed").catch(()=>{})}catch{}throw k}if(this._trace(l,"transport_send","end",s,o),g.status===304){let k=await this.getCache();if(k){let P=await k.revalidate({url:e.url,method:e.method,headers:e.headers},{status:304,statusText:"Not Modified",headers:g.headers,body:null});if(P)return await this._buildResponse(P.response,e,!0,o,s,n)}}g.alreadyDecompressed&&(delete g.headers["content-encoding"],delete g.headers["Content-Encoding"]);let m=await ar(g.body,g.headers),y=[];n.onDownloadProgress&&y.push(n.onDownloadProgress),this.cfg.hooks?.onDownloadProgress&&y.push(...this.cfg.hooks.onDownloadProgress);let b=y.length>0?y:null,x=m;if(b&&x){let k=g.headers["content-length"],P=k?parseInt(k,10):null,C=new K(P&&!isNaN(P)?P:null,{onProgress:L=>{let W=L;for(let D of y)D(W)},...e.signal!==null?{signal:e.signal}:{}});x=new ReadableStream({async start(L){let W=x.getReader();try{for(;;){let{done:D,value:q}=await W.read();if(D){C.complete(),L.close();break}C.update(q.byteLength),L.enqueue(q)}}catch(D){L.error(D)}finally{W.releaseLock()}},cancel(){x?.cancel()}})}let E=n.maxResponseSize??this.cfg.maxResponseSize??0,R=await ir(x,E,g.url,e.signal),A=await this.getCookieJar();A&&A.processResponseHeaders(g.headers,{url:g.url});let U=g.headers["content-type"]??null;this._trace(l,"response_parse","start",s,o);let _=await bt(R,U,n.parseResponse,n.parseFailure,g.headers,g.url);this._trace(l,"response_parse","end",s,o);let v=xr()-s,M={status:g.status,statusText:g.statusText,headers:g.headers,data:this.cfg.transformResponse?this.cfg.transformResponse(_,{}):_,rawBody:R,url:g.url,cached:!1,redirected:g.redirected,httpVersion:g.httpVersion,durationMs:v,request:e,attempt:o};if(n.cache!==!1&&this.cfg.cache){let k=await this.getCache();k&&g.status!==304&&await k.set({url:e.url,method:e.method,headers:e.headers},{status:g.status,statusText:g.statusText,headers:g.headers,body:R},{tags:n.tags??[]})}let H=await this.getLogger();if(H){let k=c.store.get("requestId")??e.meta.requestId??"unknown";H.logResponse(k,M.status,M.statusText,M.headers,R,o,!1)}this.harRecorder?.record(e,M,i??Date.now()-M.durationMs),c.response=M,this._trace(l,"response_interceptors","start",s,o);let j=await this._runResponseInterceptors(c,M,e,t,n,s,o,a??!1);if(this._trace(l,"response_interceptors","end",s,o),this.cfg.hooks?.onBeforeResponse){let k=j;for(let P of this.cfg.hooks.onBeforeResponse){let C=await P(k,this._hookCtx(c));C&&(k=C)}}if((n.throwOnError??this.cfg.throwOnError??!0)&&j.status>=400)throw new lt(j,e);if(this.cfg.hooks?.onAfterResponse)for(let k of this.cfg.hooks.onAfterResponse)await k(j,this._hookCtx(c));return n.onSuccess?.(j),j}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 l=t;for(let u of this.interceptors.response){let f=await u(e);if(f){if("status"in f&&"headers"in f)l=f;else if("url"in f&&"method"in f&&!("status"in f)){if(c&&a<=c.maxRetries){let p={request:n,response:t,error:null,attempt:a,maxRetries:c.maxRetries},d=Wn(c,a,0);await c.onRetry?.(p,d),await this.cfg.hooks?.onRetry?.reduce(async(g,m)=>{await g,await m(p)},Promise.resolve()),await Kn(d,n.signal)}return this._executeOnce(f,s,o,i,a+1,void 0,c)}}}return l}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,l=c?await bt(c,e.headers["content-type"]??null,i.parseResponse,i.parseFailure,e.headers,"url"in e?e.url:t.url):null,u=xr()-o,f="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:l,rawBody:c,url:f,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 _r(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(()=>(Dt(),Un)),s=Ze(this.cfg.headers,t.headers),o=Ut(this.cfg.baseURL,e,this.cfg.params),i=async(a,c)=>{let l=typeof a=="string"?a:a.url,u=c,f=await this.send(l,u.method??"GET",{headers:u.headers,body:u.body,signal:u.signal,throwOnError:!1,parseResponse:d=>d}),p={...f.headers};return delete p["content-encoding"],delete p["Content-Encoding"],new Response(f.rawBody?.buffer??null,{status:f.status,headers:p})};return new n({url:o,headers:s,fetch:i,...t})}async graphql(e,t={}){let{GraphQLClient:n}=await Promise.resolve().then(()=>(wr(),pi)),s=Ze(this.cfg.headers,t.headers),o=Ut(this.cfg.baseURL,e,this.cfg.params),i=async(a,c)=>{let l=typeof a=="string"?a:a.url,u=c,f=await this.send(l,u.method??"POST",{headers:u.headers,body:u.body,signal:u.signal,throwOnError:!1,parseResponse:d=>d}),p={...f.headers};return delete p["content-encoding"],delete p["Content-Encoding"],new Response(f.rawBody?.buffer??null,{status:f.status,headers:p})};return new n({url:o,headers:s,fetch:i,...t})}async paginate(e,t){let{createPagePaginator:n}=await Promise.resolve().then(()=>(br(),vi)),s=Ut(this.cfg.baseURL,e,this.cfg.params);return n({url:s,fetch:async(i,a)=>{let c=typeof i=="string"?i:i.url,l=a,u=await this.send(c,l.method??"GET",{headers:l.headers,body:l.body,signal:l.signal,throwOnError:!1,parseResponse:p=>p}),f={...u.headers};return delete f["content-encoding"],delete f["Content-Encoding"],new Response(u.rawBody?.buffer??null,{status:u.status,headers:f})},headers:Ze(this.cfg.headers),...t})}async destroy(){for(let e of this._wsClients)try{e.close(1e3,"Client destroyed")}catch{}if(this._wsClients.clear(),this._cache)try{await this._cache.clear()}catch{}Ve&&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()}},_r=class{constructor(e,t,n){h(this,"client");h(this,"method");h(this,"_options",{});h(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 S("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 S?n:new S(String(n),"EUNKNOWN")))}};function Gn(){if(typeof DOMException<"u")return new DOMException("Aborted","AbortError");let r=new Error("Aborted");return r.name="AbortError",r}function jl(r,e){if(!(!r&&!e))return{...r,...e}}function Kn(r,e){return new Promise((t,n)=>{if(e?.aborted){n(Gn());return}let s=()=>{clearTimeout(o),n(Gn())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e?.addEventListener("abort",s,{once:!0})})}function xr(){return typeof performance<"u"?performance.now():Date.now()}function zl(r){try{return`${r.method}:${new URL(r.url).origin}`}catch{return`${r.method}:${r.url}`}}var Xn=class{constructor(e,t={}){h(this,"_client");h(this,"_maxBatch");h(this,"_flushMs");h(this,"_queue",[]);h(this,"_timer",null);this._client=e,this._maxBatch=t.maxBatch??100,this._flushMs=t.flushMs??0}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 l=this._queue.indexOf(i);l!==-1&&(this._queue.splice(l,1),o(new S("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 l=this._queue.indexOf(i);l!==-1&&this._queue.splice(l,1),o(new S("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(){for(;this._queue.length>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)}}}};ft();hr();xt();wr();gt();var Sr=class{constructor(){h(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}},ql=0;function Bl(){return`hook_${++ql}`}function J(r){return[...r].sort((e,t)=>e.priority-t.priority)}var Yn=class{constructor(){h(this,"beforeRequest",[]);h(this,"afterRequest",[]);h(this,"beforeResponse",[]);h(this,"afterResponse",[]);h(this,"onError",[]);h(this,"onRetry",[]);h(this,"onRedirect",[]);h(this,"onUploadProgress",[]);h(this,"onDownloadProgress",[]);h(this,"onCancel",[]);h(this,"onConnection",[]);h(this,"aroundHooks",[]);h(this,"emitter",new Sr)}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 J(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 J(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 J(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 J(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 J(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 J(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 J(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 J(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 J(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 J(this.onCancel)){try{n.fn(e,t)}catch{}this._maybeEject(n,this.onCancel)}this.emitter.emit("cancel",e)}runOnConnection(e){for(let t of J(this.onConnection)){try{t.fn(e)}catch{}this._maybeEject(t,this.onConnection)}this.emitter.emit("connection",e)}wrapWithAround(e,t){let n=J(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??Bl();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 Zn=class{constructor(e=10){h(this,"maxRedirects");h(this,"count",0);this.maxRedirects=e}record(e,t,n,s){if(this.count++,this.count>this.maxRedirects)throw new Er(this.count,e);return{from:e,to:t,status:n,count:this.count,request:s}}get redirectCount(){return this.count}reset(){this.count=0}},Er=class extends Error{constructor(t,n){super(`Too many redirects (${t}) at ${n}`);h(this,"count");h(this,"url");h(this,"code","ETOOMANYREDIRECTS");this.count=t,this.url=n,this.name="TooManyRedirectsError"}};function Fl(r){return async e=>(await r(e),e)}function Wl(r){return async e=>({...e,headers:{...e.headers,...typeof r=="function"?await r():r}})}function Kl(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 Vl(r=e=>e>=400){return e=>{if(e.response&&r(e.response.status))throw new Tr(e.response.status,e.response.statusText,e.response)}}function Jl(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 Rr(n,e)}}var Tr=class extends Error{constructor(t,n,s){super(`HTTP ${t}: ${n}`);h(this,"status");h(this,"statusText");h(this,"response");h(this,"code","EHTTPERROR");this.status=t,this.statusText=n,this.response=s,this.name="HTTPError"}},Rr=class extends Error{constructor(t,n){super(t);h(this,"response");h(this,"code","EVALIDATION");this.response=n,this.name="ResponseValidationError"}};function Ql(...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 Gl(...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 Xl(...r){return(e,t)=>r.reduceRight((s,o)=>()=>o(e,s),t)()}function Yl(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 Zl(){let r="__kinetex_timing__";return{beforeRequest:(e,t)=>{t.meta[r]=es()},afterResponse:(e,t)=>{let n=t.meta[r],s=n!==void 0?es()-n:null;s!==null&&(t.meta.durationMs=s)}}}function eu(r="utf-8"){return e=>{if(e.body instanceof Uint8Array)return{...e,body:new TextDecoder(r).decode(e.body)}}}function tu(){return{beforeRequest:(r,e)=>{if(r.signal?.aborted)throw e.meta.aborted=!0,ru("Request aborted before sending")},onCancel:r=>{console.debug(`[lifecycle] Request cancelled: ${r.request.url}`,r.reason)}}}function ru(r){if(typeof DOMException<"u")return new DOMException(r,"AbortError");let e=new Error(r);return e.name="AbortError",e}function es(){return typeof performance<"u"?performance.now():Date.now()}function nu(r,e={}){return{request:r,response:null,error:null,startedAt:es(),attempt:1,meta:{},...e}}dr();br();nr();var et={NoAuth:0,GSSAPI:1,UserPassword:2,NoAcceptable:255},ee={IPv4:1,Domain:3,IPv6:4},su={Connect:1,Bind:2,UdpAssociate:3},Q={Succeeded:0,GeneralFailure:1,ConnNotAllowed:2,NetworkUnreachable:3,HostUnreachable:4,ConnRefused:5,TtlExpired:6,CmdNotSupported:7,AddrTypeNotSupported:8},ou={[Q.Succeeded]:"Succeeded",[Q.GeneralFailure]:"General SOCKS server failure",[Q.ConnNotAllowed]:"Connection not allowed by ruleset",[Q.NetworkUnreachable]:"Network unreachable",[Q.HostUnreachable]:"Host unreachable",[Q.ConnRefused]:"Connection refused",[Q.TtlExpired]:"TTL expired",[Q.CmdNotSupported]:"Command not supported",[Q.AddrTypeNotSupported]:"Address type not supported"},I=class extends Error{constructor(t,n,s=!1){super(t);h(this,"code");h(this,"retriable");this.code=n,this.retriable=s,this.name="Socks5Error"}};function iu(r){let e=ou[r]??`Unknown reply code 0x${r.toString(16)}`,t=r===Q.NetworkUnreachable||r===Q.TtlExpired;return new I(`SOCKS5 proxy error: ${e}`,`SOCKS5_REPLY_${r}`,t)}var rs=class{constructor(e,t){h(this,"conn");h(this,"timeoutMs");h(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 Mi(this.conn.read(n),this.timeoutMs,"SOCKS5 handshake read timed out");if(o===null||o===0)throw new I("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 Mi(r,e,t){return new Promise((n,s)=>{let o=setTimeout(()=>s(new I(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([ee.IPv4,...o])}let n=r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1):r;if(cu(n)){let o=lu(n);return new Uint8Array([ee.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 I("Hostname too long for SOCKS5 (max 255 bytes)","SOCKS5_ADDR_TOO_LONG");return new Uint8Array([ee.Domain,s.length,...s])}function cu(r){return r.includes(":")}function lu(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 I(`Invalid IPv6 address: ${r}`,"SOCKS5_INVALID_ADDR");for(let o of n)if(o<0||o>65535)throw new I(`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 ts(r,e){if(r===ee.IPv4)return Array.from(e).join(".");if(r===ee.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 uu(r,e,t){let n=new rs(r,t.handshakeTimeoutMs),s=!!(t.username&&t.password),o=s?[et.NoAuth,et.UserPassword]:[et.NoAuth],i=new Uint8Array([5,o.length,...o]);await r.write(i);let a=await n.readExact(2);if(a[0]!==5)throw new I(`Unexpected SOCKS version in method response: ${a[0]}`,"SOCKS5_BAD_VERSION");let c=a[1];if(c===et.NoAcceptable)throw new I("SOCKS5 proxy rejected all authentication methods","SOCKS5_NO_ACCEPTABLE_METHOD");if(c===et.UserPassword){if(!s)throw new I("SOCKS5 proxy requires username/password but none provided","SOCKS5_AUTH_REQUIRED");await hu(r,n,t.username,t.password)}else if(c!==et.NoAuth)throw new I(`SOCKS5 proxy chose unsupported auth method: 0x${c.toString(16)}`,"SOCKS5_UNSUPPORTED_METHOD");let l=au(e.host,t.remoteDns),u=e.port,f=[u>>8&255,u&255],p=new Uint8Array([5,su.Connect,0,...l,...f]);await r.write(p);let d=await n.readExact(4);if(d[0]!==5)throw new I(`Unexpected SOCKS version in reply: ${d[0]}`,"SOCKS5_BAD_VERSION");if(d[1]!==Q.Succeeded)throw iu(d[1]);let g=d[3],m,y;if(g===ee.IPv4)y=await n.readExact(4),m=ts(ee.IPv4,y);else if(g===ee.IPv6)y=await n.readExact(16),m=ts(ee.IPv6,y);else if(g===ee.Domain){let E=await n.readExact(1);y=await n.readExact(E[0]),m=ts(ee.Domain,y)}else throw new I(`Unsupported bound address type in reply: 0x${g.toString(16)}`,"SOCKS5_UNSUPPORTED_ADDR_TYPE");let b=await n.readExact(2),x=b[0]<<8|b[1];return{boundAddr:m,boundPort:x}}async function hu(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 I("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 I(`Unexpected auth sub-negotiation version: ${c[0]}`,"SOCKS5_BAD_AUTH_VERSION");if(c[1]!==0)throw new I("SOCKS5 authentication failed (invalid credentials)","SOCKS5_AUTH_FAILED")}async function fu(r,e,t){let n;for(let s=0;s<=e;s++)try{return await r()}catch(o){if(n=o,!(o instanceof I&&o.retriable)||s===e)break;await du(t*Math.pow(2,s))}throw n}function du(r){return new Promise(e=>setTimeout(e,r))}function pu(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 Oi(r,e,t){let n=pu(r);return await fu(async()=>{let s=await Mi(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 uu(s,e,n);return{conn:s,boundAddr:o,boundPort:i}}catch(o){throw s.close(),o}},n.maxRetries,n.retryDelayMs)}function mu(r){let e;try{gu(r),e=new URL(r)}catch{throw new I("Invalid SOCKS5 proxy URL: malformed URL","SOCKS5_BAD_URL")}if(e.protocol!=="socks5:"&&e.protocol!=="socks5h:")throw new I(`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 I("Invalid SOCKS5 proxy URL: port must be between 1 and 65535","SOCKS5_BAD_URL");if(!n)throw new I("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 gu(r){try{let e=new URL(r);return`${e.protocol}//${e.host}${e.pathname}${e.search}${e.hash}`}catch{return"[redacted]"}}var yu=async(r,e,t)=>{let n=globalThis,s;return t&&t>0?s=await Promise.race([n.Deno.connect({hostname:r,port:e,transport:"tcp"}),new Promise((i,a)=>setTimeout(()=>a(new I("TCP connect to proxy timed out","SOCKS5_TIMEOUT",!0)),t))]):s=await n.Deno.connect({hostname:r,port:e,transport:"tcp"}),{read:async i=>{if(t&&t>0)return Promise.race([s.read(i).catch(()=>null),new Promise((a,c)=>setTimeout(()=>c(new I("TCP read timed out","SOCKS5_TIMEOUT",!0)),t))]);try{return await s.read(i)}catch{return null}},write:i=>s.write(i),close:()=>{try{s.close()}catch{}}}},wu=(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 I("TCP connect to proxy timed out","SOCKS5_TIMEOUT",!0))},t),c=new Uint8Array(0),l=null,u=null,f=null,p=null;function d(){if(!l||!f||c.length===0)return;let m=Math.min(c.length,f.length);f.set(c.subarray(0,m)),c=c.slice(m);let y=l;l=null,u=null,f=null,y(m)}function g(m){if(u){let y=u;l=null,u=null,f=null,y(m)}}i.on("data",m=>{let y=new Uint8Array(c.length+m.length);y.set(c),y.set(m,c.length),c=y,d()}),i.on("end",()=>{l&&(l(null),l=null,u=null,f=null)}),i.once("error",m=>{clearTimeout(a),p=m,g(m),s(m)}),i.once("connect",()=>{clearTimeout(a),i.on("error",m=>{p=m,g(m)}),n({read:m=>new Promise((y,b)=>{if(p){b(p);return}if(c.length>0){let x=Math.min(c.length,m.length);m.set(c.subarray(0,x)),c=c.slice(x),y(x);return}l=y,u=b,f=m}),write:m=>new Promise((y,b)=>{i.write(m,x=>x?b(x):y(m.length))}),close:()=>i.destroy()})})}).catch(s)});function bu(r,e){return async(t,n,s)=>(await Oi({connectTimeoutMs:s,...r},{host:t,port:n},e)).conn}Dt();xe();xe();xt();ft();Dn();Dt();wr();br();dr();nr();gt();var ns=class extends Error{constructor(t){super(t);h(this,"code","URL_VALIDATION_ERROR");this.name="URLValidationError"}},xu=/^[A-Za-z0-9\-._~]$/,_u=/^[:/?#\[\]@!$&'()*+,;=]$/;function ss(r,e=!1){return Array.from(r).map(t=>{if(xu.test(t)||e&&_u.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 Pe(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 Ui(r){return encodeURIComponent(r).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")}function tt(r){return encodeURIComponent(r).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")}function Su(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=tt(o);if(Array.isArray(i)){let c=i.filter(l=>l!=null);if(c.length===0)continue;if(n==="comma")s.push([a,c.map(l=>tt(String(l))).join(",")]);else if(n==="bracket")for(let l of c)s.push([`${a}[]`,tt(String(l))]);else for(let l of c)s.push([a,tt(String(l))])}else s.push([a,tt(String(i))])}return t&&s.sort(([o],[i])=>o<i?-1:o>i?1:0),s.map(([o,i])=>`${o}=${i}`).join("&")}function $i(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=Pe(s===-1?n:n.slice(0,s)),i=s===-1?"":Pe(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 Eu(r,e){let t={...r};for(let[n,s]of Object.entries(e))s==null?delete t[n]:t[n]=s;return t}function Tu(r,...e){let t={};for(let n of e)n in r&&(t[n]=r[n]);return t}function Ru(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 Hi(...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=ji(e).join("/"),o=r[r.length-1]?.endsWith("/")&&n!=="/"?"/":"";return(n.startsWith("/")?"":"/")+n+o}function ji(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="/"+ji(s).join("/");return t==="add"&&i!=="/"?i+="/":t==="remove"||t==="preserve"&&n&&i!=="/"&&(i+="/"),i}function ku(r){return r.split("/").filter(Boolean).map(Pe)}function qi(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 ns(`Missing path param: "${n}"`);return Ui(String(s))})}var Au={"http:":"80","https:":"443","ftp:":"21","ws:":"80","wss:":"443"};function Cu(r,e={}){let t=Le(r);if(!t)throw new TypeError(`Invalid URL: ${r}`);let n=Au[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,c=t.username?`${encodeURIComponent(t.username)}${t.password?":"+encodeURIComponent(t.password):""}@`:"",l=s?`${t.hostname}:${s}`:t.hostname;return`${t.protocol}//${c}${l}${o}${i}${a}`}var Ie=class r{constructor(e,t){h(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=Hi(...e),t}params(e){let t=this._clone();t._url.pathname=qi(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 $i(this._url.search)}_clone(){return new r(this._url.toString())}};function vu(r,e){return r.replace(/\{([^}]+)\}/g,(t,n)=>{let s=n[0],o="+#./;?&".includes(s),i=(o?n.slice(1):n).split(",");return Pu(o?s:"",i,e)})}function Pu(r,e,t){let n=Mu(r),s=Ou(r),o=Du(r),i=Nu(r),a=r==="+"||r==="#",c=[];for(let l of e){let{name:u,explode:f,maxLength:p}=Iu(l.trim()),d=t[u];if(d==null)continue;let g=Lu(d,u,o,f,p,a,n,i);g!==null&&c.push(g)}return c.length===0?"":s+c.join(n)}function Iu(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 Lu(r,e,t,n,s,o,i,a){let c=l=>o?ss(l,!0):ss(l);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean"){let l=String(r);s!==null&&(l=l.slice(0,s));let u=c(l);return t?`${e}${u===""?a:"="+u}`:u}if(Array.isArray(r)){if(r.length===0)return null;if(n)return r.map(u=>{let f=c(String(u));return t?`${e}=${f}`:f}).join(i);let l=r.map(u=>c(String(u))).join(",");return t?`${e}=${l}`:l}if(typeof r=="object"&&r!==null){let l=Object.entries(r);if(l.length===0)return null;if(n)return l.map(([f,p])=>`${c(f)}=${c(p)}`).join(i);let u=l.flatMap(([f,p])=>[c(f),c(p)]).join(",");return t?`${e}=${u}`:u}return null}function Mu(r){switch(r){case".":return".";case"/":return"/";case";":return";";case"?":case"&":return"&";default:return","}}function Ou(r){switch(r){case"#":return"#";case".":return".";case"/":return"/";case";":return";";case"?":return"?";case"&":return"&";default:return""}}function Du(r){return r===";"||r==="?"||r==="&"}function Nu(r){return r===";"?"":"="}function Uu(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=Di(o),a=s.exec(i);if(!a)return null;let c={},l=[],u={},f=1;for(let p of e)c[p]=Pe(a[f++]??"");for(;f<=a.length-1;){let p=a[f++]??"";l.push(...p.split("/").filter(Boolean).map(Pe))}return{params:c,wildcards:l,groups:u}},test(o){return s.test(Di(o))}}}function Di(r){try{return new URL(r).pathname}catch{return r}}function os(r){let e=Le(r);return e?["file:","data:","blob:"].includes(e.protocol)?"null":e.origin:null}function $u(r,e){let t=os(r),n=os(e);return!t||!n?!1:t===n}function Hu(r,e){let t=Le(r),n=Le(e);return!t||!n||t.protocol!==n.protocol?!1:Ni(t.hostname)===Ni(n.hostname)}function Ni(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 ju(r,e){try{return new URL(r,e).toString()}catch{throw new TypeError(`Cannot resolve "${r}" against base "${e}"`)}}function zu(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 Bi(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 qu(r){return!Bi(r)}function Bu(r){try{return new URL(r).protocol==="https:"}catch{return!1}}function Fu(r){try{let e=new URL(r).protocol;return e==="http:"||e==="https:"}catch{return!1}}function Wu(r){return r.trimStart().startsWith("data:")}function Ku(r){return r.trimStart().startsWith("blob:")}function Vu(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 Ju(r){let e=r.match(/^data:([^;,]+)?(;base64)?,(.*)$/s);return e?{mediaType:e[1]??"text/plain",isBase64:!!e[2],data:e[3]??""}:null}function Qu(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 Gu(r,e){let t=Le(r),n=Le(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 Le(r){try{return new URL(r)}catch{return null}}function Xu(r){return Ie.from(r).addTrailingSlash().toString()}function Yu(r){return Ie.from(r).removeTrailingSlash().toString()}function Zu(r){return Ie.from(r).removeHash().toString()}function eh(r){try{let e=new URL(r);return e.search="",e.toString()}catch{return r}}function th(r){try{let t=new URL(r).pathname.split("/").pop()??"",n=t.lastIndexOf(".");return n===-1?"":t.slice(n+1).toLowerCase()}catch{return""}}function rh(r){try{let e=new URL(r).pathname;return Pe(e.split("/").filter(Boolean).pop()??"")}catch{return""}}function nh(r,...e){return Ie.from(r).redactParams(...e).toString()}z();function sh(r={}){return new $t(r)}var bf=sh;export{Ur as AbortError,$r as AuthError,Xn as BatchQueue,Pt as BatchingTransport,nt as CircuitBreaker,Oe as CircuitBreakerRegistry,rt as CircuitOpenError,ut as CloudflareKVAdapter,Ge as ConsoleTransport,Re as ContentTypeError,Ae as CookieJar,Me as DedupMap,Ke as FetchTransport,_r as FluentRequest,ie as GraphQLClient,N as GraphQLClientError,Io as HAS_NATIVE_FETCH,ae as HTTPCache,Tr as HTTPError,Ce as HTTPLogger,Fe as HTTPResponseError,lt as HTTPStatusError,w as HeaderName,Sr as HookEmitter,Yn as HookRegistry,ue as HttpHeaders,Ve as IS_NODE,Vt as InterceptorManager,vt as JSONTransport,$t as Kinetex,S as KinetexError,Ct as LogLevel,_e as MemoryStorageAdapter,Ar as MultiPartProgressAggregator,Lt as MultiTransport,se as NetworkError,wt as NodeHTTP2Transport,K as ProgressTracker,Hr as ProxyError,me as RUNTIME,dt as RateLimitError,Mt as Redactor,jr as RedirectError,Zn as RedirectTracker,It as RemoteTransport,We as ResponseDecodeError,Te as ResponseSizeLimitError,Rr as ResponseValidationError,Ee as RichHeaders,Xe as SSEClient,fe as SSEError,Ye as SSEMaxReconnectsError,ve as SSEParser,mr as SSERouter,Ot as SSEServerResponse,pr as SSETransformStream,le as SigV4Signer,ct as SizeLimitError,I as Socks5Error,X as TimeoutError,Er as TooManyRedirectsError,ht as TwoTierStorageAdapter,Ie as URLBuilder,G as ValidationError,$e as WSClient,at as WSConnectTimeoutError,V as WSError,Wt as WSMaxReconnectsError,Nr as WSRateLimitError,je as WebStorageAdapter,tr as applyDecompression,bo as assertOk,xo as assertOkJSON,ii as authLink,Qu as buildDataURL,Us as cachingCredentials,he as canonicalizeDomainFull,Za as chainCredentials,fi as clearAPQCache,mi as collectAll,gi as collectPages,Zi as collectStream,Uu as compilePattern,Xl as composeAround,Ql as composeBeforeRequest,Gl as composeBeforeResponse,Ns as computeBodySize,Ks as computeDigestResponse,Lr as concatUint8Arrays,Oa as connectWS,Lc as corsHeaders,hc as createAPIGatewaySigner,tu as createAbortHook,vs as createAuthInterceptor,eu as createBodyNormalizationHook,Ls as createCacheInterceptor,sa as createCircuitBreaker,oa as createCircuitBreakerRegistry,Mn as createCookieJar,xi as createCursorPaginator,na as createDedupMap,Ms as createDedupeInterceptor,Ko as createDevelopmentLogger,tn as createDigestAuthorization,dc as createDynamoDBSigner,ui as createGraphQLClient,Os as createHARInterceptor,Mc as createHeaders,nu as createHookContext,Nc as createImmutableHeaders,Ga as createInterceptorSuite,Go as createJSONSSEStream,_s as createKVCache,Ti as createKeysetPaginator,ko as createLimitedReader,Si as createLinkHeaderPaginator,bs as createLocalStorageCache,Fo as createLogger,Yl as createLoggingHooks,Is as createLoggingInterceptor,ws as createMemoryCache,zl as createMethodCircuitBreakerKey,Ds as createMetricsInterceptor,wi as createOffsetPaginator,bi as createPagePaginator,Wo as createProductionLogger,Jt as createRateLimitInterceptor,_i as createRelayPaginator,Oc as createRequestHeaders,Dc as createResponseHeaders,Cs as createRetryInterceptor,uc as createS3Signer,Xo as createSSEResponse,Qo as createSSEStream,fc as createSTSSigner,xs as createSessionStorageCache,Oi as createSocks5Tunnel,Ra as createStructuredError,Ps as createTimeoutInterceptor,Zl as createTimingHook,Ei as createTokenPaginator,or as createTransport,Ss as createTwoTierCache,er as decodeBody,ur as decodeIDNLabel,ar as decompressBodyStream,bn as decompressStream,ot as deepClone,bf as default,Tt as defaultPath,yu as denoTcpConnector,mt as deriveSigningKey,ki as deserializePaginationState,Bs as detectClockSkew,zn as detectOperationType,kn as detectRuntime,_o as diffResponses,Gu as diffURLs,Et as domainMatch,Ui as encodePathComponent,tt as encodeQueryValue,Ya as envCredentials,ai as errorLink,vu as expandTemplate,we as extractOperationName,Eo as extractServerTiming,At as extractSetCookieHeaders,qi as fillPathParams,Qt as formatAmzDate,Sc as formatBasic,_c as formatBearer,jt as formatBytes,mn as formatCSP,no as formatCacheControl,to as formatContentDisposition,Zs as formatContentType,pt as formatDateStamp,Vs as formatDigestAuth,fs as formatETA,ka as formatError,pn as formatHSTS,Rc as formatLinkHeader,ta as formatProgress,hs as formatRate,Ac as formatServerTiming,Cc as fromNodeHeaders,Pc as fromWebHeaders,di as getAPQMetrics,ze as getAuthFingerprint,lo as getClientIP,Po as getEffectiveRuntime,os as getOrigin,_t as getPublicSuffix,In as getRegistrableDomain,Dr as getRuntime,hi as gql,Ma as hasNativeFetch,rc as imdsCredentials,zs as initChunkedSigning,Wl as injectHeaders,Or as isAbortError,ma as isAbortSignal,Bi as isAbsolute,fa as isArrayBuffer,yo as isBinary,wa as isBlob,Ku as isBlobURL,La as isBrowserEnvironment,Fs as isClockSkewError,Wu as isDataURL,ya as isFormData,Fu as isHTTP,Bu as isHTTPS,pa as isHeaders,ge as isIPAddress,Zt as isJSON,Vu as isLocalhost,Ia as isNodeEnvironment,ga as isPlainObject,St as isPublicSuffix,da as isReadableStream,qu as isRelative,Ne as isSafeURL,$u as isSameOrigin,Hu as isSameSite,yn as isText,ba as isURLSearchParams,ha as isUint8Array,De as isValidHeaderName,be as isValidHeaderValue,Hi as joinPath,Nn as jsonSSE,sh as kinetex,On as loadCookieJar,ci as loggingLink,Ci as mergePaginators,Eu as mergeQuery,Mr as mergeSignals,Tc as negotiateContentType,wu as nodeTcpConnector,dn as normalizeForwardedHeaders,it as normalizeHeaders,zi as normalizePath,go as normalizeResponse,Cu as normalizeURL,Ru as omitQuery,F as paginate,qn as paginateItems,fn as parseAccept,so as parseAcceptEncoding,oo as parseAcceptLanguage,mo as parseAltSvc,on as parseAuthorization,bt as parseBody,fo as parseCSP,ro as parseCacheControl,eo as parseContentDisposition,Ec as parseContentLanguage,ao as parseContentRange,ke as parseContentType,lr as parseCookieDate,Ju as parseDataURL,Ws as parseDigestChallenge,co as parseForwarded,ho as parseHSTS,cn as parseLinkHeader,Bn as parseLinkHeaderNext,Tn as parseMultipartResponse,Z as parseParams,$i as parseQuery,io as parseRange,uo as parseRetryAfter,Yo as parseSSEText,po as parseServerTiming,kt as parseSetCookieHeader,mu as parseSocks5Url,ua as parseUntrustedJSON,an as parseWWWAuthenticate,kc as parseWarning,Rt as pathMatch,ku as pathSegments,Pe as percentDecode,ss as percentEncode,Ca as perfNow,Tu as pickQuery,js as presignRequest,Sn as readBlob,wn as readBodyWithLimit,rr as readBytes,So as readFormData,xn as readJSON,wo as readJSONStream,En as readNDJSON,ir as readRawBody,yt as readStream,_n as readText,nh as redactURL,zu as relativeURL,ju as resolveURL,li as retryLink,pe as safeJSONParse,Le as safeParseURL,O as sanitizeParsedJSON,Aa as sanitizeURL,Ic as securityHeaders,Je as sendWithTimeout,Ri as serializePaginationState,vo as setRuntime,$s as sigV4UriEncode,cc as signChunk,lc as signFinalChunk,en as signRequest,qs as signS3PostPolicy,va as sleep,bu as socks5Connector,Qe as splitSetCookieHeaders,Xa as staticCredentials,Yi as streamWithProgress,Su as stringifyQuery,Zu as stripHash,eh as stripQuery,yi as takeItems,Fl as tap,ra as throttleProgress,Vl as throwOnHTTPError,vc as toNodeHeaders,Bo as toOTelSpan,Ai as toPaginationIterator,ps as toRequestId,Pa as toUint8Array,la as tryParseJSON,Ft as uint8ArrayToBase64,th as urlExtension,rh as urlFilename,Na as validateErrorCode,Jl as validateResponse,Kl as withBaseURL,Gi as withBlobUploadProgress,Xi as withDownloadProgress,Xu as withTrailingSlash,zt as withUploadProgress,Yu as withoutTrailingSlash,ea as xhrFetch};
102
+ `}async function zo(r,e){let t=await mr(e.credentials),n=pr(e),s=kt(n),o=`${s}/${e.region}/${e.service}/aws4_request`,i=`${t.accessKeyId}/${o}`,a=JSON.stringify(r),c=btoa(a),u=await Ct(t.secretAccessKey,s,e.region,e.service),l=await ge(u,c),h=tt(l),p={policy:c,signature:h,credential:i,date:s};return t.sessionToken&&(p.securityToken=t.sessionToken),p}function qo(r){let e=r["x-amz-date"]??r["X-Amz-Date"],t;if(e!==void 0){if(t=Ou(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 Ou(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 Fo(r,e){return r!==403&&r!==400?!1:e.includes("RequestTimeTooSkewed")||e.includes("RequestExpired")||e.includes("InvalidSignatureException")||e.includes("AuthFailure")||e.includes("SignatureDoesNotMatch")}var ye=class{constructor(e){f(this,"config");f(this,"clockSkewSecs",0);this.config=e}async sign(e){return await Nn(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}async presign(e,t){return await jo(e,{...this.config,clockSkewSecs:this.clockSkewSecs},t)}async signPostPolicy(e){return await zo(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}async initChunked(e){return await Bo(e,{...this.config,clockSkewSecs:this.clockSkewSecs})}updateClockSkew(e){let t=qo(e);t!==0&&(this.clockSkewSecs=t)}handleClockSkewError(e,t,n){return Fo(e,t)?(this.updateClockSkew(n),!0):!1}};async function mr(r){return await(typeof r=="function"?r():Promise.resolve(r))}function In(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 On(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 Mu(r){return new ye({credentials:r.credentials,region:r.region,service:"s3",doubleEncodeUri:!1,unsignedPayload:r.unsignedPayload??!1})}function Du(r){return new ye({credentials:r.credentials,region:r.region,service:"execute-api"})}function Nu(r){return new ye({credentials:r.credentials,region:r.region,service:"sts"})}function $u(r){return new ye({credentials:r.credentials,region:r.region,service:"dynamodb"})}q();function Wo(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 p=r.charCodeAt(l),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 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 y=0;y<16;y++){let w=e[l+y*4],_=e[l+y*4+1],b=e[l+y*4+2],T=e[l+y*4+3];h[y]=(w|_<<8|b<<16|T<<24)>>>0}let p=o,d=i,m=a,g=c;for(let y=0;y<64;y++){let w,_;y<16?(w=d&m|~d&g,_=y):y<32?(w=g&d|~g&m,_=(5*y+1)%16):y<48?(w=d^m^g,_=(3*y+5)%16):(w=m^(d|~g),_=7*y%16),w=w+p+n[y]+h[_]>>>0,p=g,g=m,m=d,d=d+(w<<s[y]|w>>>32-s[y])>>>0}o=o+p>>>0,i=i+d>>>0,a=a+m>>>0,c=c+g>>>0}function u(l){let h="";for(let p=0;p<4;p++)h+=(l>>>p*8&255).toString(16).padStart(2,"0");return h}return u(o)+u(i)+u(a)+u(c)}function Ko(r){let e=new Uint8Array(r.length/2);for(let t=0;t<e.length;t++)e[t]=parseInt(r.substr(t*2,2),16);return e}function Uu(r){return r.replace(/\\(.)/g,"$1")}function $n(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?Uu(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}async function Vo(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 Jo(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 T=0;T<8;T++)b=b<<8n|BigInt(n[c+_*8+T]);u[_]=b}for(let _=16;_<80;_++){let b=o(u[_-15],1n)^o(u[_-15],8n)^u[_-15]>>7n,T=o(u[_-2],19n)^o(u[_-2],61n)^u[_-2]>>6n;u[_]=u[_-16]+b+u[_-7]+T&0xffffffffffffffffn}let l=i[0],h=i[1],p=i[2],d=i[3],m=i[4],g=i[5],y=i[6],w=i[7];for(let _=0;_<80;_++){let b=o(m,14n)^o(m,18n)^o(m,41n),T=m&g^~m&y,k=w+b+T+e[_]+u[_]&0xffffffffffffffffn,C=o(l,28n)^o(l,34n)^o(l,39n),E=l&h^l&p^h&p,I=C+E&0xffffffffffffffffn;w=y,y=g,g=m,m=d+k&0xffffffffffffffffn,d=p,p=h,h=l,l=k+I&0xffffffffffffffffn}i=[i[0]+l&0xffffffffffffffffn,i[1]+h&0xffffffffffffffffn,i[2]+p&0xffffffffffffffffn,i[3]+d&0xffffffffffffffffn,i[4]+m&0xffffffffffffffffn,i[5]+g&0xffffffffffffffffn,i[6]+y&0xffffffffffffffffn,i[7]+w&0xffffffffffffffffn]}let a="";for(let c=0;c<4;c++)a+=i[c].toString(16).padStart(16,"0");return a}async function Un(r,e,t,n,s,o,i){let a=r.qop||"",c=r.nonce,u=r.realm,l=o||he(5),h=i||"00000001",p=Qo(r.algorithm);if(p===null)throw new Error(`Unsupported digest algorithm: ${r.algorithm}`);let{algo:d,sess:m}=p;async function g(k){return d==="MD5"?Wo(k):d==="SHA-512-256"?Jo(k):await Vo(k)}let y=r.userhash?ie(Ko(await g(`${e}:${u}`))):e,w=await g(`${y}:${u}:${t}`);if(m){if(!r.qop)throw new Error(`Digest algorithm ${r.algorithm} requires a qop parameter`);w=await g(`${w}:${c}:${l}`)}let _=await g(`${n}:${s}`),b,T=a.split(/\s*,\s*/).filter(Boolean);if(T.length>0){if(!T.includes("auth"))throw new Error(`Digest challenge offers only unsupported qop values: ${T.join(", ")}. "auth-int" requires the entity body, which this API does not receive.`);b=await g(`${w}:${c}:${h}:${l}:auth:${_}`)}else b=await g(`${w}:${c}:${_}`);return b}async function Hn(r,e){if(!r.userhash)return null;let t=Qo(r.algorithm);if(t===null)throw new Error(`Unsupported digest algorithm: ${r.algorithm}`);let{algo:n}=t,s=n==="MD5"?Wo(`${e}:${r.realm}`):n==="SHA-512-256"?Jo(`${e}:${r.realm}`):await Vo(`${e}:${r.realm}`);return ie(Ko(s))}function Qo(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 Te(r){return r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function jn(r,e,t,n,s,o,i){let a=[],c=s||he(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*="${Te(i)}"`)}else{if(i!==void 0)throw new Error("usernameStar was given but the challenge does not offer userhash");a.push(`username="${Te(e)}"`)}return a.push(`realm="${Te(r.realm)}"`),a.push(`nonce="${Te(r.nonce)}"`),a.push(`uri="${Te(n)}"`),a.push(`response="${Te(t)}"`),r.opaque&&a.push(`opaque="${Te(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="${Te(c)}"`)),`Digest ${a.join(", ")}`}async function Hu(r,e,t,n,s){let o=$n(r),i=he(5),a="00000001",c=await Un(o,e,t,n,s,i,a),u=await Hn(o,e);return jn(o,e,c,s,i,a,u??void 0)}function Go(){let r=new Map;return async(e,t,n,s,o)=>{let i=$n(e),a=he(5),c=`${i.realm}\0${i.nonce}`,u=(r.get(c)??0)+1;r.set(c,u);let l=u.toString(16).padStart(8,"0"),h=await Un(i,t,n,s,o,a,l),p=await Hn(i,t);return jn(i,t,h,o,a,l,p??void 0)}}Ee();ot();ot();var th=20,rh={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 nh(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 he(r/2)}var sh=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"]),wa="__awsSkewCorrected",ba="__interceptorResendDepth",xa=5,oh=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"]),Ra=8192;function Aa(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 _s(r){try{let e=new URL(r),t=!1;for(let n of[...e.searchParams.keys()])oh.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 _a(r,e){return sh.has(r.toLowerCase())?{name:r,value:"***REDACTED***"}:{name:r,value:e}}function ih(r){if(!r.body)return{};let e=r.headers["content-type"]??"";if(e&&!Aa(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{};return{postData:{mimeType:e,text:t.slice(0,Ra)}}}var As=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:_s(e.url),httpVersion:t.httpVersion,headers:Object.entries(e.headers).map(([u,l])=>_a(u,l)),queryString:(()=>{try{return Array.from(new URL(_s(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,...ih(e)},response:{status:t.status,statusText:t.statusText,httpVersion:t.httpVersion,headers:Object.entries(t.headers).map(([u,l])=>_a(u,l)),content:{size:t.rawBody?.byteLength??0,mimeType:t.headers["content-type"]??"application/octet-stream",...typeof t.data=="string"&&Aa(t.headers["content-type"])?{text:t.data.slice(0,Ra)}:{}},redirectURL:t.headers.location?_s(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:${Re}`},entries:[...this.entries]}}clear(){this._buf.clear(),this._head=0,this._tail=0}get count(){return this._buf.size}};async function Sa(r,e){let t={...r.headers};switch(e.type){case"bearer":{let s=`Bearer ${typeof e.token=="function"?await e.token():e.token}`;if(!Pe(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=ie(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(!Je(e.header))throw new x(`Invalid apikey auth header name: "${e.header}"`,"EVALIDATION");if(!Pe(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 ah=new Set([...ir,"www-authenticate"]);function Gt(r){try{let e=new URL(r);return e.username||e.password?(e.username="",e.password="",e.toString()):r}catch{return r.replace(/\/\/[^/@]*@/,"//")}}function Qt(r,e,t,n=["http","https"]){let i;if(/^https?:\/\//i.test(e))i=e;else{let a=r??"";try{let c=a.replace(/\/$/,""),u=e.startsWith("/")?e.slice(1):e;i=new URL(u,c+"/").href}catch{let c=a.endsWith("/")?a:a+"/",u=e.startsWith("/")?e.slice(1):e;i=c+u}}if(!t||Object.keys(t).length===0){if(!oe(i,n))throw new x(`URL "${Gt(i)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return i}try{let a=new URL(i);if(!oe(a,n))throw new x(`URL "${Gt(i)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");let c=0;for(let[l,h]of Object.entries(t)){if(h==null)continue;let p=String(h);if(Array.isArray(h)){for(let d of h)if(d!=null){if(c++,c>100)throw new x(`Query parameter count ${c} exceeds limit of 100`,"EVALIDATION");a.searchParams.append(l,String(d))}}else{if(c++,c>100)throw new x(`Query parameter count ${c} exceeds limit of 100`,"EVALIDATION");a.searchParams.set(l,p)}}let u=a.toString();if(u.length>8192)throw new x(`URL length ${u.length} bytes exceeds limit of 8192 bytes`,"EVALIDATION");if(!oe(u))throw new x(`URL "${Gt(u)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return u}catch(a){if(a instanceof x)throw a;i.includes("?")?i+="&":i+="?";let c=[],u=0;for(let[h,p]of Object.entries(t??{}))if(p!=null)if(Array.isArray(p)){for(let d of p)if(d!=null){if(u++,u>100)throw new x(`Query parameter count ${u} exceeds limit of 100`,"EVALIDATION");c.push(`${encodeURIComponent(h)}=${encodeURIComponent(String(d))}`)}}else{if(u++,u>100)throw new x(`Query parameter count ${u} exceeds limit of 100`,"EVALIDATION");c.push(`${encodeURIComponent(h)}=${encodeURIComponent(String(p))}`)}let l=i+c.join("&");if(l.length>8192)throw new x(`URL length ${l.length} bytes exceeds limit of 8192 bytes`,"EVALIDATION");if(!oe(l))throw new x(`URL "${Gt(l)}" failed safety check \u2014 blocked private/loopback address or forbidden scheme`,"EVALIDATION");return l}}function lt(...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(!Je(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(!Pe(i))throw new x(`Invalid header value for ${s}: contains forbidden characters`,"EVALIDATION");e[s.toLowerCase()]=i}}return e}function Ea(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 Ss(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 Ta(r){let e=r["retry-after"];if(!e)return null;let t=lr(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 Xt=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 Ts,this.harRecorder=e.har===!0?new As:null,this.retryConfig={...rh,...e.retry},e.circuitBreakerKeyFn&&(this._circuitBreakerKeyFn=e.circuitBreakerKeyFn),e.rateLimit){let t=fr(e.rateLimit);this.interceptors.addRequest(t)}if(this._concurrencyLimiter=e.concurrencyLimit?new At(e.concurrencyLimit):null,e.awsSigning){let t=new ye(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=Tr(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.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=Go();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.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=ch(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(()=>(Ye(),to));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(()=>(as(),Li));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(()=>(Mr(),Ni));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:lt(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 p of this.interceptors.request)u.has(p)||c.useRequest(p);for(let p of this.interceptors.response)l.has(p)||c.useResponse(p);for(let p of this.interceptors.error)h.has(p)||c.useError(p);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 We(e),this}disableDedup(){return this._dedup=null,this}get dedupMetrics(){return this._dedup?this._dedup.getStats():null}enableCircuitBreaker(e){return this._circuitBreakers=new Ke(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=Qt(this.cfg.baseURL,e,this.cfg.params,["http","https","ws","wss"]),s=lt(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,m=d.encode(i.username),g=d.encode(i.password),y=new Uint8Array(m.length+1+g.length);y.set(m),y[m.length]=58,y.set(g,m.length+1);let w=ie(y);y.fill(0),m.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 m=new URL(this.cfg.baseURL),g=d.protocol==="wss:",y=m.protocol==="https:"||m.protocol==="wss:";if(g!==y||d.host!==m.host)throw new x(`WebSocket origin ${d.origin} does not match baseURL origin ${m.origin}`,"EVALIDATION")}}catch(d){throw d instanceof x?d:new x(`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 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=(d,m,g)=>{g||this._wsClients.delete(p),l?.(d,m,g)},p=new Qe({url:n,headers:{...o,...s},...u,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=Br(),o=Date.now(),i=n.timeout!==void 0?n.timeout:this.cfg.timeout??3e4,a=n.retry===!1?!1:{...this.retryConfig,...n.retry??{}},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=Qt(n.baseURL??this.cfg.baseURL,e,uh(this.cfg.params,n.params));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 E=new URL(l);if(E.protocol!=="https:")throw new x(`HTTPS-only mode enabled but URL uses ${E.protocol}. Use HTTPS URLs only.`,"EVALIDATION")}catch(E){throw E instanceof x?E:new x(`Invalid URL: ${E}`,"EVALIDATION")}let p,d=n.maxRequestSize??this.cfg.maxRequestSize??0;if(d>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)p=await Mt(n.body),E=p.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{E=new TextEncoder().encode(JSON.stringify(n.body)).byteLength}catch(I){throw new x(`Cannot measure request body size: ${I instanceof Error?I.message:String(I)}`,"EVALIDATION")}}if(E>d)throw new x(`Request body size ${E} bytes exceeds limit of ${d} bytes`,"EVALIDATION")}let m={url:l,method:u,headers:lt(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 E=p??await Mt(m.body);m={...m,headers:{...m.headers,"content-type":`multipart/form-data; boundary=${E.boundary}`},body:E.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 Sa(m,g)),this.cfg.transformRequest&&(m=await this.cfg.transformRequest(m));let y=await this.getCookieJar();if(y){let E=y.getCookieHeader({url:m.url,http:!0});E&&(m={...m,headers:{...m.headers,cookie:E}})}let w=null;try{if(this._otelTracer){w=this._otelTracer.startSpan(`HTTP ${m.method}`,{kind:3});let{traceparent:E,traceId:I,spanId:$}=nh(w);w.setAttribute("http.request.method",m.method),w.setAttribute("url.full",m.url);try{w.setAttribute("server.address",new URL(m.url).hostname)}catch{}m={...m,headers:{...m.headers,traceparent:E},meta:{...m.meta,traceId:I,spanId:$}}}else if(m.meta.traceId&&!m.headers.traceparent){let E=String(m.meta.traceId),I=Rs(16);m={...m,headers:{...m.headers,traceparent:`00-${E}-${I}-01`},meta:{...m.meta,spanId:I}}}}catch(E){throw w&&(w.setStatus({code:2,message:E instanceof Error?E.message:String(E)}),E instanceof Error&&w.recordException(E),w.end()),E}let _;if(this._circuitBreakerKeyFn)try{_=this._circuitBreakerKeyFn(m)}catch{_=m.url}else try{_=new URL(m.url).origin}catch{_=m.url}let b=()=>this._executeWithRetry(m,a,i,n,s,o),T="";if(this._dedup){let E=await Se(m.headers??{});T=`${m.method}:${m.url}${E?":"+E:""}`}let k=this._dedup?()=>this._dedup.execute(m.method,T,b).then(E=>E):b,C=this._circuitBreakers?()=>this._circuitBreakers.execute(_,k).then(E=>E):k;try{let E=await C();return w&&(w.setAttribute("http.response.status_code",E.status),w.setStatus({code:E.status<400?1:2}),w.end()),E}catch(E){throw w&&(w.setStatus({code:2,message:E instanceof Error?E.message:String(E)}),E instanceof Error&&w.recordException(E),w.end()),E}}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 ks(e);if(a>1&&lh(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):Ea(t,u)){let h=Ss(t,a,Ta(c.headers));await t.onRetry?.(u,h),await this.cfg.hooks?.onRetry?.reduce(async(p,d)=>{await p,await d(u)},Promise.resolve()),await Es(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 p=l.data,d=typeof p=="string"?p:p instanceof Uint8Array?new TextDecoder().decode(p):p instanceof ArrayBuffer?new TextDecoder().decode(new Uint8Array(p)):JSON.stringify(p??"");this._awsSigner.handleClockSkewError(l.status,d,l.headers)&&(u=!e.meta[wa],u&&(e.meta[wa]=!0))}if(t&&(a<=t.maxRetries||u)){let p=l??null,d={request:e,response:p,error:c,attempt:a,maxRetries:t.maxRetries};if(u?!0:t.shouldRetry?await t.shouldRetry(d):Ea(t,d)){let g=Ss(t,a,p?Ta(p.headers):null);await t.onRetry?.(d,g),await this.cfg.hooks?.onRetry?.reduce(async(y,w)=>{await y,await w(d)},Promise.resolve()),await Es(g,e.signal);continue}}let h=await this._runErrorInterceptors(e,c,a,o);if(h)return h;if(s.onError){let p=c instanceof x?c:new x(String(c),"EUNKNOWN",{request:e,cause:c});throw s.onError(p),p}throw c}}}async _sendFollowingRedirects(e,t,n,s){let o=Math.max(0,e.maxRedirects??th),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 Sa(a,s)),l>0&&this.cfg.hooks?.onBeforeRequest)for(let d of this.cfg.hooks.onBeforeRequest){let m=await d(a,{request:a,response:null,error:null,startedAt:Br(),attempt:1,meta:a.meta});m&&(a={...m,redirect:"manual"})}let h=await It(this.transport,a,t);if(l>0){let d=await this.getLogger();if(d){let m=a.meta.requestId??"redirect";d.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 Le(`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 Le(`Too many redirects (exceeded ${o})`,e);if(h.body)try{await h.body.cancel()}catch{}let d=h.headers.location,m;try{let b=new URL(d,h.url);m=b.href;let T=b.protocol.toLowerCase();if(T!=="http:"&&T!=="https:")throw new x(`Unsafe redirect to ${T} detected \u2014 only HTTP(S) allowed`,"ENETWORK",{request:e});if(!oe(m))throw new x(`Unsafe redirect target blocked: ${Gt(d)}`,"EVALIDATION",{request:e});if(this.cfg.httpsOnly&&T!=="https:")throw new x(`HTTPS-only mode enabled but redirect target uses ${T}`,"EVALIDATION",{request:e})}catch(b){throw b instanceof x?b:new x(`Invalid redirect location: ${d}`,"ENETWORK",{request:e,cause:b})}let g=h.status===301||h.status===302||h.status===303?"GET":a.method,y=g==="GET"||g==="HEAD"?null:a.body,w={...a.headers},_=!1;try{_=new URL(m).origin!==new URL(a.url).origin}catch{}if(_){for(let b of ah)delete w[b];s&&s.type==="apikey"&&delete w[s.header.toLowerCase()]}if(n){let b=n.getCookieHeader({url:m,http:!0});b?w.cookie=b:delete w.cookie}else _&&delete w.cookie;a={...a,url:m,method:g,body:y,headers:w,redirect:"manual"};continue}return l>0?{...h,redirected:!0}:h}throw new Le("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 A of this.cfg.hooks.onBeforeRequest){let O=await A(e,this._hookCtx(c));O&&(e=O)}this._trace(u,"lifecycle_before","end",s,o);let l=n.cache!==!1&&n.cache?.forceRefresh===!0;if(n.cache!==!1&&this.cfg.cache){let A=await this.getCache();if(A&&!l){let O={url:e.url,method:e.method,headers:e.headers},L=await A.get(O);if(L&&!L.stale){let H=await this._buildResponse(L.entry.response,e,!0,o,s,n);if(this.cfg.hooks?.onBeforeResponse)for(let B of this.cfg.hooks.onBeforeResponse)await B(H,this._hookCtx(c));return H}if(L?.stale){if(await A.markSWRInFlight(O)){let j={...e,headers:{...e.headers,...A.buildConditionalHeaders(L.entry)}};(async()=>{try{let U=await It(this.transport,j,t),Fe=await this.getCache();if(Fe)if(U.status===304)await Fe.revalidate({url:j.url,method:j.method,headers:j.headers},{status:304,statusText:"Not Modified",headers:U.headers,body:null});else{let{decompressBodyStream:Ha,readRawBody:ja}=await Promise.resolve().then(()=>(ot(),Ri)),Ba=await Ha(U.body,U.headers),za=await ja(Ba,0,U.url,j.signal);await Fe.set({url:j.url,method:j.method,headers:j.headers},{status:U.status,statusText:U.statusText,headers:U.headers,body:za},{tags:n.tags??[]})}}catch(U){if(this.cfg.onSWRError)try{this.cfg.onSWRError(U,j)}catch{}}finally{try{(await this.getCache())?.clearSWRInFlight(O)}catch{}}})()}return await this._buildResponse(L.entry.response,e,!0,o,s,n)}}}let h=[];n.onUploadProgress&&h.push(n.onUploadProgress),this.cfg.hooks?.onUploadProgress&&h.push(...this.cfg.hooks.onUploadProgress);let p=h.length>0?h:null,d=null;if(p!==null&&e.body!==null){let A=null,O=null;if(e.body instanceof ReadableStream)A=e.body;else if(typeof e.body=="string"){let L=new TextEncoder().encode(e.body);O=L.byteLength,A=new ReadableStream({start:H=>{H.enqueue(L),H.close()}})}else if(e.body instanceof Uint8Array)O=e.body.byteLength,A=new ReadableStream({start:L=>{L.enqueue(e.body),L.close()}});else if(e.body instanceof ArrayBuffer){let L=new Uint8Array(e.body);O=L.byteLength,A=new ReadableStream({start:H=>{H.enqueue(L),H.close()}})}else if(typeof Blob<"u"&&e.body instanceof Blob)O=e.body.size,A=e.body.stream();else if(typeof URLSearchParams<"u"&&e.body instanceof URLSearchParams){let L=new TextEncoder().encode(e.body.toString());O=L.byteLength,A=new ReadableStream({start:H=>{H.enqueue(L),H.close()}})}if(A){let{stream:L}=er(A,O,{onProgress:H=>{let B=H;for(let j of h)j(B)},...e.signal!==null?{signal:e.signal}:{}});d=L,e={...e,body:L}}}e.headers["accept-encoding"]||(e={...e,headers:{...e.headers,"accept-encoding":Er}});let m=await this.getCookieJar(),g=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,m??void 0,g)}catch(A){if(d)try{d.cancel("Request failed").catch(()=>{})}catch{}throw A}if(this._trace(u,"transport_send","end",s,o),this.cfg.hooks?.onAfterRequest)for(let A of this.cfg.hooks.onAfterRequest)await A(e,this._hookCtx(c));if(y.status===304){let A=await this.getCache();if(A){let O=await A.revalidate({url:e.url,method:e.method,headers:e.headers},{status:304,statusText:"Not Modified",headers:y.headers,body:null});if(O)return await this._buildResponse(O.response,e,!0,o,s,n)}}y.alreadyDecompressed&&(delete y.headers["content-encoding"],delete y.headers["Content-Encoding"]);let w=await Ar(y.body,y.headers),_=[];n.onDownloadProgress&&_.push(n.onDownloadProgress),this.cfg.hooks?.onDownloadProgress&&_.push(...this.cfg.hooks.onDownloadProgress);let b=_.length>0?_:null,T=w;if(b&&T){let A=y.headers["content-length"],O=A?parseInt(A,10):null,L=new J(O&&!isNaN(O)?O:null,{onProgress:B=>{let j=B;for(let U of _)U(j)},...e.signal!==null?{signal:e.signal}:{}}),H=T;T=new ReadableStream({async start(B){let j=H.getReader();try{for(;;){let{done:U,value:Fe}=await j.read();if(U){L.complete(),B.close();break}L.update(Fe.byteLength),B.enqueue(Fe)}}catch(U){B.error(U)}finally{j.releaseLock()}},cancel(B){H.cancel(B).catch(()=>{})}})}let k=n.maxResponseSize??this.cfg.maxResponseSize??0,C=await Rr(T,k,y.url,e.signal),E=await this.getCookieJar();E&&E.processResponseHeaders(y.headers,{url:y.url});let I=y.headers["content-type"]??null;this._trace(u,"response_parse","start",s,o);let $=await Ot(C,I,n.parseResponse,n.parseFailure,y.headers,y.url);this._trace(u,"response_parse","end",s,o);let v=Br()-s,P={status:y.status,statusText:y.statusText,headers:y.headers,data:$,rawBody:C,url:y.url,cached:!1,redirected:y.redirected,httpVersion:y.httpVersion,durationMs:v,request:e,attempt:o};if(this.cfg.transformResponse&&(P.data=this.cfg.transformResponse(P.data,P)),n.cache!==!1&&this.cfg.cache){let A=await this.getCache();A&&y.status!==304&&await A.set({url:e.url,method:e.method,headers:e.headers},{status:y.status,statusText:y.statusText,headers:y.headers,body:C},{tags:n.tags??[]})}let xe=await this.getLogger();if(xe){let A=c.store.get("requestId")??e.meta.requestId??"unknown";xe.logResponse(A,P.status,P.statusText,P.headers,C,o,!1)}this.harRecorder?.record(e,P,i??Date.now()-P.durationMs),c.response=P,this._trace(u,"response_interceptors","start",s,o);let K=await this._runResponseInterceptors(c,P,e,t,n,s,o,a??!1);if(this._trace(u,"response_interceptors","end",s,o),this.cfg.hooks?.onBeforeResponse){let A=K;for(let O of this.cfg.hooks.onBeforeResponse){let L=await O(A,this._hookCtx(c));L&&(A=L)}}if((n.throwOnError??this.cfg.throwOnError??!0)&&K.status>=400)throw new _t(K,e);if(this.cfg.hooks?.onAfterResponse)for(let A of this.cfg.hooks.onAfterResponse)await A(K,this._hookCtx(c));return n.onSuccess?.(K),K}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 p=Number(n.meta[ba]??0);if(p>=xa)throw new x(`Response interceptor re-send limit reached (${xa}) \u2014 refusing to loop`,"EVALIDATION",{request:n});if(c&&a<=c.maxRetries){let d={request:n,response:t,error:null,attempt:a,maxRetries:c.maxRetries},m=Ss(c,a,0);await c.onRetry?.(d,m),await this.cfg.hooks?.onRetry?.reduce(async(g,y)=>{await g,await y(d)},Promise.resolve()),await Es(m,n.signal)}return this._executeOnce({...h,meta:{...h.meta,[ba]:p+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 Ot(c,e.headers["content-type"]??null,i.parseResponse,i.parseFailure,e.headers,"url"in e?e.url:t.url):null,l=Br()-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:u,rawBody:c,url:h,cached:n,redirected:p,httpVersion:d,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 zr(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(()=>(Vt(),hs)),s=lt(this.cfg.headers,t.headers),o=Qt(this.cfg.baseURL,e,this.cfg.params),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: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(()=>(Hr(),ra)),s=lt(this.cfg.headers,t.headers),o=Qt(this.cfg.baseURL,e,this.cfg.params),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: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(()=>(jr(),ya)),s=Qt(this.cfg.baseURL,e,this.cfg.params);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:p=>p}),h={...l.headers};return delete h["content-encoding"],delete h["Content-Encoding"],new Response(l.rawBody?.buffer??null,{status:l.status,headers:h})},headers:lt(this.cfg.headers),...t})}destroy(){for(let e of this._wsClients)try{e.close(1e3,"Client destroyed")}catch{}return this._wsClients.clear(),Ue&&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()}},zr=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?_n():e;if(!Sn(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 ch(r,e){return r?{status:r.status,statusText:r.statusText,headers:r.headers,body:r.rawBody??null,request:e}:null}function ks(r){return new St(r)}function uh(r,e){if(!(!r&&!e))return{...r,...e}}function Es(r,e){return new Promise((t,n)=>{if(e?.aborted){n(ks());return}let s=()=>{clearTimeout(o),n(ks())},o=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r);e?.addEventListener("abort",s,{once:!0})})}function lh(r){return r instanceof ReadableStream?!0:typeof Blob<"u"&&r instanceof Blob}function Br(){return typeof performance<"u"?performance.now():Date.now()}function hh(r){try{return`${r.method}:${new URL(r.url).origin}`}catch{return`${r.method}:${r.url}`}}var Cs=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)}}}};Ye();Lr();ot();Hr();Ee();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}},fh=0;function dh(){return`hook_${++fh}`}function G(r){return[...r].sort((e,t)=>e.priority-t.priority)}var vs=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 G(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 G(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 G(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 G(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 G(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 G(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 G(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 G(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 G(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 G(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 G(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=G(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??dh();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 Ps=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 Fr(this.count,e);return{from:e,to:t,status:n,count:this.count,request:s}}get redirectCount(){return this.count}reset(){this.count=0}},Fr=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 mh(r){return async e=>({...e,headers:{...e.headers,...typeof r=="function"?await r():r}})}function gh(r){return e=>{if(/^https?:\/\//i.test(e.url))return;let t=r.replace(/\/+$/,""),n=e.url.replace(/^\/+/,"");return{...e,url:`${t}/${n}`}}}function yh(r=e=>e>=400){return e=>{if(e.response&&r(e.response.status))throw new Wr(e.response.status,e.response.statusText,e.response)}}function wh(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 Kr(n,e)}}var Wr=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"}},Kr=class extends Error{constructor(t,n){super(t);f(this,"response");f(this,"code","EVALIDATION");this.response=n,this.name="ResponseValidationError"}};function bh(...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 xh(...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 Sh(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()));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 Eh(){let r="__kinetex_timing__";return{beforeRequest:(e,t)=>{t.meta[r]=Ls()},afterResponse:(e,t)=>{let n=t.meta[r],s=n!==void 0?Ls()-n:null;s!==null&&(t.meta.durationMs=s)}}}function Th(r="utf-8"){return e=>{if(e.body instanceof Uint8Array)return{...e,body:new TextDecoder(r).decode(e.body)}}}function Rh(){return{beforeRequest:(r,e)=>{if(r.signal?.aborted)throw e.meta.aborted=!0,Ah("Request aborted before sending")},onCancel:r=>{console.debug(`[lifecycle] Request cancelled: ${r.request.url}`,r.reason)}}}function Ah(r){if(typeof DOMException<"u")return new DOMException(r,"AbortError");let e=new Error(r);return e.name="AbortError",e}function Ls(){return typeof performance<"u"?performance.now():Date.now()}function kh(r,e={}){return{request:r,response:null,error:null,startedAt:Ls(),attempt:1,meta:{},...e}}Mr();jr();xr();var ht={NoAuth:0,GSSAPI:1,UserPassword:2,NoAcceptable:255},re={IPv4:1,Domain:3,IPv6:4},Ch={Connect:1,Bind:2,UdpAssociate:3},X={Succeeded:0,GeneralFailure:1,ConnNotAllowed:2,NetworkUnreachable:3,HostUnreachable:4,ConnRefused:5,TtlExpired:6,CmdNotSupported:7,AddrTypeNotSupported:8},vh={[X.Succeeded]:"Succeeded",[X.GeneralFailure]:"General SOCKS server failure",[X.ConnNotAllowed]:"Connection not allowed by ruleset",[X.NetworkUnreachable]:"Network unreachable",[X.HostUnreachable]:"Host unreachable",[X.ConnRefused]:"Connection refused",[X.TtlExpired]:"TTL expired",[X.CmdNotSupported]:"Command not supported",[X.AddrTypeNotSupported]:"Address type not supported"},M=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 Ph(r){let e=vh[r]??`Unknown reply code 0x${r.toString(16)}`,t=r===X.NetworkUnreachable||r===X.TtlExpired;return new M(`SOCKS5 proxy error: ${e}`,`SOCKS5_REPLY_${r}`,t)}var Os=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 ka(this.conn.read(n),this.timeoutMs,"SOCKS5 handshake read timed out");if(o===null||o===0)throw new M("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 ka(r,e,t){return!Number.isFinite(e)||e<=0?r:new Promise((n,s)=>{let o=setTimeout(()=>s(new M(t,"SOCKS5_TIMEOUT",!0)),e);r.then(i=>{clearTimeout(o),n(i)},i=>{clearTimeout(o),s(i)})})}function Lh(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(Ih(n)){let o=Oh(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 M("Hostname too long for SOCKS5 (max 255 bytes)","SOCKS5_ADDR_TOO_LONG");return new Uint8Array([re.Domain,s.length,...s])}var Ms=/^[0-9a-fA-F]{1,4}$/;function Ih(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=>Ms.test(o))}return n.length===8&&n.every(s=>Ms.test(s))}function Oh(r){let e=r.split("::"),t=o=>o?o.split(":").map(i=>Ms.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 M(`Invalid IPv6 address: ${r}`,"SOCKS5_INVALID_ADDR");for(let o of n)if(!Number.isFinite(o)||o<0||o>65535)throw new M(`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 Is(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 Mh(r,e,t){let n=new Os(r,t.handshakeTimeoutMs),s=!!(t.username&&t.password),o=s?[ht.NoAuth,ht.UserPassword]:[ht.NoAuth],i=new Uint8Array([5,o.length,...o]);await r.write(i);let a=await n.readExact(2);if(a[0]!==5)throw new M(`Unexpected SOCKS version in method response: ${a[0]}`,"SOCKS5_BAD_VERSION");let c=a[1];if(c===ht.NoAcceptable)throw new M("SOCKS5 proxy rejected all authentication methods","SOCKS5_NO_ACCEPTABLE_METHOD");if(c===ht.UserPassword){if(!s)throw new M("SOCKS5 proxy requires username/password but none provided","SOCKS5_AUTH_REQUIRED");await Dh(r,n,t.username,t.password)}else if(c!==ht.NoAuth)throw new M(`SOCKS5 proxy chose unsupported auth method: 0x${c.toString(16)}`,"SOCKS5_UNSUPPORTED_METHOD");let u=Lh(e.host,t.remoteDns),l=e.port,h=[l>>8&255,l&255],p=new Uint8Array([5,Ch.Connect,0,...u,...h]);await r.write(p);let d=await n.readExact(4);if(d[0]!==5)throw new M(`Unexpected SOCKS version in reply: ${d[0]}`,"SOCKS5_BAD_VERSION");if(d[1]!==X.Succeeded)throw Ph(d[1]);let m=d[3],g,y;if(m===re.IPv4)y=await n.readExact(4),g=Is(re.IPv4,y);else if(m===re.IPv6)y=await n.readExact(16),g=Is(re.IPv6,y);else if(m===re.Domain){let b=await n.readExact(1);y=await n.readExact(b[0]),g=Is(re.Domain,y)}else throw new M(`Unsupported bound address type in reply: 0x${m.toString(16)}`,"SOCKS5_UNSUPPORTED_ADDR_TYPE");let w=await n.readExact(2),_=w[0]<<8|w[1];return{boundAddr:g,boundPort:_}}async function Dh(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 M("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 M(`Unexpected auth sub-negotiation version: ${c[0]}`,"SOCKS5_BAD_AUTH_VERSION");if(c[1]!==0)throw new M("SOCKS5 authentication failed (invalid credentials)","SOCKS5_AUTH_FAILED")}async function Nh(r,e,t){let n;for(let s=0;s<=e;s++)try{return await r()}catch(o){if(n=o,!(o instanceof M&&o.retriable)||s===e)break;await $h(t*Math.pow(2,s))}throw n}function $h(r){return new Promise(e=>setTimeout(e,r))}var Uh=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","ENETDOWN","ETIMEDOUT","EPIPE","EAI_AGAIN"]);function Hh(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 Ca(r,e,t){let n=Hh(r);return await Nh(async()=>{let s=await ka(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 M||o instanceof DOMException)throw o;let i=o?.code,a=typeof i=="string"?i:"UNKNOWN";throw new M(`Cannot reach SOCKS5 proxy ${n.host}:${n.port}: ${o instanceof Error?o.message:String(o)}`,"SOCKS5_CONNECT_FAILED",Uh.has(a))});try{let{boundAddr:o,boundPort:i}=await Mh(s,e,n);return{conn:s,boundAddr:o,boundPort:i}}catch(o){throw s.close(),o}},n.maxRetries,n.retryDelayMs)}function jh(r){let e;try{Bh(r),e=new URL(r)}catch{throw new M("Invalid SOCKS5 proxy URL: malformed URL","SOCKS5_BAD_URL")}if(e.protocol!=="socks5:"&&e.protocol!=="socks5h:")throw new M(`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 M("Invalid SOCKS5 proxy URL: port must be between 1 and 65535","SOCKS5_BAD_URL");if(!n)throw new M("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 M(`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 Bh(r){try{let e=new URL(r);return`${e.protocol}//${e.host}${e.pathname}${e.search}${e.hash}`}catch{return"[redacted]"}}var zh=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 M(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{}}}},qh=(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 M("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,p=null,d=null;function m(){if(!l||!p||u.length===0)return;let w=Math.min(u.length,p.length);p.set(u.subarray(0,w)),u=u.slice(w);let _=l;l=null,h=null,p=null,_(w)}function g(w){if(h){let _=h;l=null,h=null,p=null,_(w)}}i.on("data",w=>{let _=new Uint8Array(u.length+w.length);_.set(u),_.set(w,u.length),u=_,m()});let y=!1;i.on("end",()=>{y=!0,l&&(l(null),l=null,h=null,p=null)}),i.on("close",()=>{y=!0}),i.once("error",w=>{c(),d=w,g(w),s(w)}),i.once("connect",()=>{c(),i.on("error",w=>{d=w,g(w)}),n({read:w=>new Promise((_,b)=>{if(d){b(d);return}if(y&&u.length===0){_(null);return}if(u.length>0){let T=Math.min(u.length,w.length);w.set(u.subarray(0,T)),u=u.slice(T),_(T);return}l=_,h=b,p=w}),write:w=>new Promise((_,b)=>{i.write(w,T=>T?b(T):_(w.length))}),close:()=>i.destroy()})})}).catch(s)});function Fh(r,e){return async(t,n,s)=>{let o=Number.isFinite(s)&&s>0?s:void 0,i=o??r.connectTimeoutMs;return(await Ca({...r,...i!==void 0?{connectTimeoutMs:i}:{},...o!==void 0?{handshakeTimeoutMs:o}:{}},{host:t,port:n},e)).conn}}Vt();fe();fe();ot();Ye();as();Vt();Hr();jr();Mr();xr();Ee();q();var Vr=class extends Error{constructor(t){super(t);f(this,"code","URL_VALIDATION_ERROR");this.name="URLValidationError"}},Wh=/^[A-Za-z0-9\-._~]$/,Kh=/^[:/?#\[\]@!$&'()*+,;=]$/;function Ds(r,e=!1){return Array.from(r).map(t=>{if(Wh.test(t)||e&&Kh.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 ue(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 Ia(r){return encodeURIComponent(r).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")}function ft(r){return encodeURIComponent(r).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")}function Vh(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=ft(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=>ft(String(u))).join(",")]);else if(n==="bracket")for(let u of c)s.push([`${a}[]`,ft(String(u))]);else for(let u of c)s.push([a,ft(String(u))])}else s.push([a,ft(String(i))])}return t&&s.sort(([o],[i])=>o<i?-1:o>i?1:0),s.map(([o,i])=>`${o}=${i}`).join("&")}function Oa(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=ue(i===-1?o:o.slice(0,i)),c=i===-1?"":ue(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 Jh(r,e){let t={...r};for(let[n,s]of Object.entries(e))s==null?delete t[n]:t[n]=s;return t}function Qh(r,...e){let t={};for(let n of e)n in r&&(t[n]=r[n]);return t}function Gh(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 Ma(...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=Da(e).join("/"),o=r[r.length-1]?.endsWith("/")&&n!=="/"?"/":"";return(n.startsWith("/")?"":"/")+n+o}function Da(r){let e=[];for(let t of r)t!=="."&&(t===".."?e.pop():e.push(t));return e}function Na(r,e={}){let{trailingSlash:t="preserve"}=e,n=r.endsWith("/")&&r!=="/",s=r.split("/").filter(Boolean),i="/"+Da(s).join("/");return t==="add"&&i!=="/"?i+="/":t==="remove"||t==="preserve"&&n&&i!=="/"&&(i+="/"),i}function Xh(r){return r.split("/").filter(Boolean).map(ue)}function $a(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 Vr(`Missing path param: "${n}"`);return Ia(String(s))})}var Yh={"http:":"80","https:":"443","ftp:":"21","ws:":"80","wss:":"443"};function Zh(r,e={}){let t=qe(r);if(!t)throw new TypeError(`Invalid URL: ${r}`);let n=Yh[t.protocol],s=t.port===n?"":t.port,o=Na(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 ze=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=Ma(...e),t}params(e){let t=this._clone();t._url.pathname=$a(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 Oa(this._url.search)}_clone(){return new r(this._url.toString())}};function ef(r,e){return r.replace(/\{([^}]+)\}/g,(t,n)=>{let s=n[0],o="+#./;?&".includes(s),i=(o?n.slice(1):n).split(",");return tf(o?s:"",i,e)})}function tf(r,e,t){let n=sf(r),s=of(r),o=af(r),i=cf(r),a=r==="+"||r==="#",c=[];for(let u of e){let{name:l,explode:h,maxLength:p}=rf(u.trim()),d=t[l];if(d==null)continue;let m=nf(d,l,o,h,p,a,n,i);m!==null&&c.push(m)}return c.length===0?"":s+c.join(n)}function rf(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 nf(r,e,t,n,s,o,i,a){let c=u=>o?Ds(u,!0):Ds(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,p])=>`${c(h)}=${c(p)}`).join(i);let l=u.flatMap(([h,p])=>[c(h),c(p)]).join(",");return t?`${e}=${l}`:l}return null}function sf(r){switch(r){case".":return".";case"/":return"/";case";":return";";case"?":case"&":return"&";default:return","}}function of(r){switch(r){case"#":return"#";case".":return".";case"/":return"/";case";":return";";case"?":return"?";case"&":return"&";default:return""}}function af(r){return r===";"||r==="?"||r==="&"}function cf(r){return r===";"?"":"="}function va(r){return r.replace(/[.+^${}()|[\]\\]/g,"\\$&")}function uf(r){let e=[],t=/:([A-Za-z_][A-Za-z0-9_]*)(?:\(([^)]+)\))?|\*\*|\*/g,n="",s=0;for(let i of r.matchAll(t))n+=va(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+=va(r.slice(s));let o=new RegExp(`^${n}\\/?$`);return{match(i){let a=Pa(i),c=o.exec(a);if(!c)return null;let u={},l=[],h={};for(let p=0;p<e.length;p++){let d=e[p],m=c[p+1]??"";if(d.kind==="param"){let g=ue(m);u[d.name]=g,h[d.name]=g;continue}if(d.greedy)for(let g of m.split("/").filter(Boolean))l.push(ue(g));else l.push(ue(m));h[String(p+1)]=ue(m)}return{params:u,wildcards:l,groups:h}},test(i){return o.test(Pa(i))}}}function Pa(r){try{return new URL(r).pathname}catch{return r}}function Ns(r){let e=qe(r);return e?["file:","data:","blob:"].includes(e.protocol)?"null":e.origin:null}function lf(r,e){let t=Ns(r),n=Ns(e);return!t||!n?!1:t===n}function hf(r,e){let t=qe(r),n=qe(e);return!t||!n||t.protocol!==n.protocol?!1:La(t.hostname)===La(n.hostname)}function La(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 ff(r,e){try{return new URL(r,e).toString()}catch{throw new TypeError(`Cannot resolve "${r}" against base "${e}"`)}}function df(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 Ua(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 pf(r){return!Ua(r)}function mf(r){try{return new URL(r).protocol==="https:"}catch{return!1}}function gf(r){try{let e=new URL(r).protocol;return e==="http:"||e==="https:"}catch{return!1}}function yf(r){return r.trimStart().startsWith("data:")}function wf(r){return r.trimStart().startsWith("blob:")}function bf(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 xf(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 _f(r,e,t=!0){if(/[,;]/.test(e))throw new Vr(`Invalid media type for a data URL: ${JSON.stringify(e)} (it must not contain "," or ";")`);return typeof r=="string"?t?`data:${e};base64,${ie(new TextEncoder().encode(r))}`:`data:${e},${encodeURIComponent(r)}`:`data:${e};base64,${ie(r)}`}function Sf(r,e){let t=qe(r),n=qe(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 qe(r){try{return new URL(r)}catch{return null}}function Ef(r){return ze.from(r).addTrailingSlash().toString()}function Tf(r){return ze.from(r).removeTrailingSlash().toString()}function Rf(r){try{return ze.from(r).removeHash().toString()}catch{return r}}function Af(r){try{let e=new URL(r);return e.search="",e.toString()}catch{return r}}function kf(r){try{let t=new URL(r).pathname.split("/").pop()??"",n=t.lastIndexOf(".");return n===-1?"":t.slice(n+1).toLowerCase()}catch{return""}}function Cf(r){try{let e=new URL(r).pathname;return ue(e.split("/").filter(Boolean).pop()??"")}catch{return""}}function vf(r,...e){try{return ze.from(r).redactParams(...e).toString()}catch{return Pf(r,e)}}function Pf(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(ue(l))?`${l}=REDACTED`:c});return`${i}?${a.join("&")}${s}`}Ee();q();function Lf(r={}){return new Xt(r)}var Yd=Lf;export{St as AbortError,nn as AuthError,Cs as BatchQueue,zt as BatchingTransport,Mo as CONCURRENCY_DEFAULTS,mt as CircuitBreaker,Ke as CircuitBreakerRegistry,pt as CircuitOpenError,Et as CloudflareKVAdapter,et as ConcurrencyLimitError,At as ConcurrencyLimiter,at as ConsoleTransport,Ne as ContentTypeError,He as CookieJar,We as DedupMap,st as FetchTransport,zr as FluentRequest,ce as GraphQLClient,N as GraphQLClientError,bi as HAS_NATIVE_FETCH,de as HTTPCache,Wr as HTTPError,je as HTTPLogger,rt as HTTPResponseError,_t as HTTPStatusError,S as HeaderName,qr as HookEmitter,vs as HookRegistry,me as HttpHeaders,Ue as IS_NODE,hr as InterceptorManager,Bt as JSONTransport,Xt as Kinetex,x as KinetexError,jt as LogLevel,Ie as MemoryStorageAdapter,Jr as MultiPartProgressAggregator,Ft as MultiTransport,W as NetworkError,Lt as NodeHTTP2Transport,J as ProgressTracker,sn as ProxyError,Re as RUNTIME,Rt as RateLimitError,Wt as Redactor,Le as RedirectError,Ps as RedirectTracker,qt as RemoteTransport,nt as ResponseDecodeError,De as ResponseSizeLimitError,Kr as ResponseValidationError,Me as RichHeaders,ct as SSEClient,be as SSEError,ut as SSEMaxReconnectsError,Be as SSEParser,Nr as SSERouter,Kt as SSEServerResponse,Dr as SSETransformStream,ye as SigV4Signer,xt as SizeLimitError,M as Socks5Error,Z as TimeoutError,Fr as TooManyRedirectsError,Tt as TwoTierStorageAdapter,ze as URLBuilder,Y as ValidationError,Qe as WSClient,bt as WSConnectTimeoutError,Q as WSError,sr as WSMaxReconnectsError,rn as WSRateLimitError,Xe as WebStorageAdapter,wr as applyDecompression,ii as assertOk,ai as assertOkJSON,Ji as authLink,_f as buildDataURL,$o as cachingCredentials,we as canonicalizeDomainFull,Su as chainCredentials,ea as clearAPQCache,na as collectAll,sa as collectPages,Ja as collectStream,uf as compilePattern,_h as composeAround,bh as composeBeforeRequest,xh as composeBeforeResponse,Ln as computeBodySize,Un as computeDigestResponse,Hn as computeUsernameStar,nr as concatUint8Arrays,Pc as connectWS,ou as corsHeaders,Du as createAPIGatewaySigner,Rh as createAbortHook,vo as createAuthInterceptor,Th as createBodyNormalizationHook,Io as createCacheInterceptor,Za as createCircuitBreaker,ec as createCircuitBreakerRegistry,os as createCookieJar,ca as createCursorPaginator,Ya as createDedupMap,Oo as createDedupeInterceptor,Di as createDevelopmentLogger,Hu as createDigestAuthorization,$u as createDynamoDBSigner,Yi as createGraphQLClient,Do as createHARInterceptor,iu as createHeaders,kh as createHookContext,uu as createImmutableHeaders,bu as createInterceptorSuite,Hi as createJSONSSEStream,Zs as createKVCache,fa as createKeysetPaginator,di as createLimitedReader,la as createLinkHeaderPaginator,Xs as createLocalStorageCache,Oi as createLogger,Sh as createLoggingHooks,Lo as createLoggingInterceptor,Gs as createMemoryCache,hh as createMethodCircuitBreakerKey,No as createMetricsInterceptor,ia as createOffsetPaginator,aa as createPagePaginator,Mi as createProductionLogger,fr as createRateLimitInterceptor,ua as createRelayPaginator,au as createRequestHeaders,cu as createResponseHeaders,Co as createRetryInterceptor,Mu as createS3Signer,ji as createSSEResponse,Ui as createSSEStream,Nu as createSTSSigner,Ys as createSessionStorageCache,Ca as createSocks5Tunnel,xc as createStructuredError,Po as createTimeoutInterceptor,Eh as createTimingHook,ha as createTokenPaginator,Tr as createTransport,eo as createTwoTierCache,yr as decodeBody,Pr as decodeIDNLabel,Ar as decompressBodyStream,Fn as decompressStream,yt as deepClone,Yd as default,Nt as defaultPath,zh as denoTcpConnector,Ct as deriveSigningKey,pa as deserializePaginationState,qo as detectClockSkew,ms as detectOperationType,Yn as detectRuntime,ci as diffResponses,Sf as diffURLs,Dt as domainMatch,Ia as encodePathComponent,ft as encodeQueryValue,_u as envCredentials,Qi as errorLink,ef as expandTemplate,ve as extractOperationName,li as extractServerTiming,Ht as extractSetCookieHeaders,$a as fillPathParams,dr as formatAmzDate,Fc as formatBasic,qc as formatBearer,Zt as formatBytes,xn as formatCSP,ho as formatCacheControl,uo as formatContentDisposition,ao as formatContentType,kt as formatDateStamp,jn as formatDigestAuth,qs as formatETA,_c as formatError,bn as formatHSTS,Vc as formatLinkHeader,Ga as formatProgress,zs as formatRate,eu as formatServerTiming,tu as fromNodeHeaders,nu as fromWebHeaders,_n as generateIdempotencyKey,ta as getAPQMetrics,Se as getAuthFingerprint,wo as getClientIP,wi as getEffectiveRuntime,Ns as getOrigin,vr as getPublicSuffix,ns as getRegistrableDomain,tn as getRuntime,Zi as gql,vc as hasNativeFetch,Ru as imdsCredentials,Bo as initChunkedSigning,mh as injectHeaders,en as isAbortError,lc as isAbortSignal,Ua as isAbsolute,ac as isArrayBuffer,ti as isBinary,dc as isBlob,wf as isBlobURL,Cc as isBrowserEnvironment,Fo as isClockSkewError,yf as isDataURL,fc as isFormData,gf as isHTTP,mf as isHTTPS,uc as isHeaders,Ae as isIPAddress,gr as isJSON,bf as isLocalhost,kc as isNodeEnvironment,hc as isPlainObject,ke as isPublicSuffix,cc as isReadableStream,pf as isRelative,oe as isSafeURL,lf as isSameOrigin,hf as isSameSite,zn as isText,pc as isURLSearchParams,ic as isUint8Array,Je as isValidHeaderName,Pe as isValidHeaderValue,Sn as isValidIdempotencyKey,Ma as joinPath,ls as jsonSSE,Lf as kinetex,is as loadCookieJar,Gi as loggingLink,ga as mergePaginators,Jh as mergeQuery,Zr as mergeSignals,Kc as negotiateContentType,qh as nodeTcpConnector,yn as normalizeForwardedHeaders,wt as normalizeHeaders,Na as normalizePath,ei as normalizeResponse,Zh as normalizeURL,Gh as omitQuery,V as paginate,bs as paginateItems,gn as parseAccept,fo as parseAcceptEncoding,po as parseAcceptLanguage,So as parseAltSvc,fn as parseAuthorization,Ot as parseBody,xo as parseCSP,lo as parseCacheControl,co as parseContentDisposition,Wc as parseContentLanguage,go as parseContentRange,$e as parseContentType,Cr as parseCookieDate,xf as parseDataURL,$n as parseDigestChallenge,yo as parseForwarded,bo as parseHSTS,pn as parseLinkHeader,xs as parseLinkHeaderNext,Qn as parseMultipartResponse,ee as parseParams,Oa as parseQuery,mo as parseRange,lr as parseRetryAfter,Bi as parseSSEText,_o as parseServerTiming,Ut as parseSetCookieHeader,jh as parseSocks5Url,oc as parseUntrustedJSON,dn as parseWWWAuthenticate,Zc as parseWarning,$t as pathMatch,Xh as pathSegments,ue as percentDecode,Ds as percentEncode,Tc as perfNow,Qh as pickQuery,jo as presignRequest,Vn as readBlob,qn as readBodyWithLimit,br as readBytes,ui as readFormData,Wn as readJSON,oi as readJSONStream,Jn as readNDJSON,Rr as readRawBody,Pt as readStream,Kn as readText,vf as redactURL,df as relativeURL,ff as resolveURL,Xi as retryLink,_e as safeJSONParse,qe as safeParseURL,D as sanitizeParsedJSON,Ec as sanitizeURL,su as securityHeaders,It as sendWithTimeout,da as serializePaginationState,yi as setRuntime,Uo as sigV4UriEncode,Lu as signChunk,Iu as signFinalChunk,Nn as signRequest,zo as signS3PostPolicy,Rc as sleep,Fh as socks5Connector,it as splitSetCookieHeaders,xu as staticCredentials,Va as streamWithProgress,Vh as stringifyQuery,Rf as stripHash,Af as stripQuery,oa as takeItems,ph as tap,Xa as throttleProgress,yh as throwOnHTTPError,ru as toNodeHeaders,Ii as toOTelSpan,ma as toPaginationIterator,Ws as toRequestId,Ac as toUint8Array,sc as tryParseJSON,ie as uint8ArrayToBase64,kf as urlExtension,Cf as urlFilename,Ic as validateErrorCode,wh as validateResponse,gh as withBaseURL,Wa as withBlobUploadProgress,Ka as withDownloadProgress,Ef as withTrailingSlash,er as withUploadProgress,Tf as withoutTrailingSlash,Qa as xhrFetch};