raga-cli 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/README.md +33 -5
- package/bundled-skills/README.md +2 -2
- package/bundled-skills/bundle.json +75 -9
- package/bundled-skills/docs/guide/01-setup.md +1 -1
- package/bundled-skills/skills/bend/SKILL.md +58 -0
- package/bundled-skills/skills/bend/bend_tool.py +144 -0
- package/bundled-skills/skills/peak/SKILL.md +2 -2
- package/bundled-skills/skills/peak/references/peak-setup/SKILL.md +1 -1
- package/bundled-skills/skills/peak/references/raga-runtime/SKILL.md +20 -6
- package/bundled-skills/skills/peak/references/raga-runtime/raga_runtime.py +24 -6
- package/bundled-skills/skills/raga-artifacts/SKILL.md +117 -0
- package/bundled-skills/skills/raga-artifacts/artifact.mjs +259 -0
- package/bundled-skills/skills/raga-artifacts/artifact_tool.py +55 -0
- package/bundled-skills/skills/raga-artifacts/diagrams.md +641 -0
- package/bundled-skills/skills/raga-artifacts/templates/doc.html +124 -0
- package/bundled-skills/skills/raga-artifacts/templates/slides.html +138 -0
- package/dist/bundle/chunks/agent-attach-ZCS2QGIU.js +9 -0
- package/dist/bundle/chunks/anthropic.js +1 -8
- package/dist/bundle/chunks/chunk-4OPO7UJ6.js +4 -0
- package/dist/bundle/chunks/{chunk-IOPE2TJ4.js → chunk-A4342OQJ.js} +16 -16
- package/dist/bundle/chunks/{chunk-YMZUNB25.js → chunk-ABE5B2U7.js} +1 -1
- package/dist/bundle/chunks/{chunk-P2QCWBFM.js → chunk-D2SEW6VC.js} +1 -1
- package/dist/bundle/chunks/chunk-FTQDEUXY.js +242 -0
- package/dist/bundle/chunks/chunk-HRI5E2Y3.js +2 -0
- package/dist/bundle/chunks/{chunk-UDT647VB.js → chunk-JNHUOSVT.js} +2 -9
- package/dist/bundle/chunks/chunk-K22YTJFL.js +3 -0
- package/dist/bundle/chunks/chunk-MXJNFS34.js +47 -0
- package/dist/bundle/chunks/{chunk-J22MF7YW.js → chunk-NXGZMUQX.js} +3 -48
- package/dist/bundle/chunks/{chunk-3EGDWOKT.js → chunk-NYFFOHME.js} +1 -1
- package/dist/bundle/chunks/chunk-P2EB6CEF.js +6 -0
- package/dist/bundle/chunks/{chunk-KNY3PXQI.js → chunk-SK25JXS4.js} +1 -1
- package/dist/bundle/chunks/chunk-VEV3PRRP.js +1358 -0
- package/dist/bundle/chunks/chunk-XBBS7V4D.js +2 -0
- package/dist/bundle/chunks/{cli-4P6FVVLT.js → cli-XZ774I3U.js} +1 -1
- package/dist/bundle/chunks/{easter-egg-3d-65VIC4G2.js → easter-egg-3d-XWC5XWQO.js} +1 -1
- package/dist/bundle/chunks/{execute-3H5WKMA3.js → execute-7BWE4ZV3.js} +1 -1
- package/dist/bundle/chunks/openai-chatgpt.js +1 -8
- package/dist/bundle/chunks/openai-codex.js +1 -8
- package/dist/bundle/chunks/openrouter.js +1 -8
- package/dist/bundle/chunks/radius.js +1 -8
- package/dist/bundle/chunks/runtime-K76CFDG5.js +2 -0
- package/dist/bundle/chunks/virtual-modules-YAFG26WW.js +2 -0
- package/dist/bundle/cli-runtime.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/raga-runtime.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/docs/cli.md +8 -0
- package/docs/compaction.md +26 -0
- package/docs/sdk.md +2 -1
- package/docs/settings.md +1 -0
- package/package.json +1 -1
- package/python/raga_rlm/__init__.py +30 -6
- package/python/raga_rlm/mlx_models.py +265 -0
- package/schemas/keybindings.schema.json +84 -0
- package/schemas/settings.schema.json +74 -1
- package/schemas/theme.schema.json +2 -2
- package/dist/bundle/chunks/chunk-AI2NMHE7.js +0 -1567
- package/dist/bundle/chunks/chunk-C4IJNE7U.js +0 -2
- package/dist/bundle/chunks/chunk-RFPFZTK2.js +0 -7
- package/dist/bundle/chunks/chunk-RP2WKNT7.js +0 -4
- package/dist/bundle/chunks/runtime-435R6IKY.js +0 -2
- package/dist/bundle/chunks/virtual-modules-U3JBUDP7.js +0 -2
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
2
|
+
import{ArrayOptions,Clone,DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,Evaluate,Flatten,Get,Instantiate,Intersect,IsArray,IsBigInt,IsBoolean,IsCodec,IsConstructor,IsCyclic,IsEnum,IsFunction,IsInteger,IsIntersect,IsLiteral,IsLiteralBigInt,IsLiteralBoolean,IsLiteralNumber,IsLiteralString,IsNever,IsNull,IsNumber,IsObject,IsOptional,IsRecord,IsRef,IsRefine,IsSchema,IsString,IsSymbol,IsTemplateLiteral,IsTuple,IsUndefined,IsUnion,IsVoid,Literal,Priority,Record,RecordKey,RecordPattern,RecordValue,Ref,SETTINGS_DEFAULTS,String as String2,TemplateLiteralDecode,Tuple,Union,Unknown,Unreachable,VisualLinePreview,With,_Array_,_Object_,addUsageToTotals,arguments_exports,createUsageTotals,emit_exports,environment_exports,formatReadLineRange,formatSize,formatToolCallWithArgs,getTextOutput,globals_exports,guard_default,guard_exports,hash_exports,invalidArgText,normalizeDisplayText,renderToolPath,replaceTabs,settings_exports,shortenPath,startToolTimer,str,stripAnsi,toolTimerText,truncateTail,truncateToVisualLines,typebox_exports}from"./chunk-NXGZMUQX.js";import{Box,Container,Editor,Image,Key,KeybindingsManager,Loader,Markdown,MouseRegion,ProcessTerminal,SYSTEM_THEME_NAME,ScrollView,Spacer,TUI_KEYBINDINGS,Text,TuiAltScreen,TuiMainScreen,VStack,getCapabilities,getLanguageFromPath,getMarkdownTheme,getNativeClipboard,getTerminalTheme,highlightCode,initTheme,keyDisplayText,keyHint,keyText,markTerminalColorsPending,parseAutoThemeSetting,resolveThemeSetting,setImageTranscoder,setTerminalColorScheme,setTerminalColors,setTheme,setThemeInstance,theme,truncateToWidth,visibleWidth}from"./chunk-A4342OQJ.js";import{openBrowser}from"./chunk-HRI5E2Y3.js";import{require_proper_lockfile}from"./chunk-K22YTJFL.js";import{PROJECT_CONFIG_DIR_NAME,formatPathRelativeToCwdOrAbsolute,getAgentDir,getReadmePath,normalizePath,resolvePath,splitBom,stripBom}from"./chunk-SK25JXS4.js";import{__commonJS,__export,__require,__toESM}from"./chunk-JXWJOIH4.js";var require_symbols=__commonJS({"node_modules/undici/lib/core/symbols.js"(exports,module){"use strict";module.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kRequestOrigin:Symbol("request origin"),kOriginless:Symbol("originless"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2Options:Symbol("http2 options"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kHostAuthority:Symbol("host authority"),kHTTP2InitialWindowSize:Symbol("http2 initial window size"),kHTTP2ConnectionWindowSize:Symbol("http2 connection window size"),kEnableConnectProtocol:Symbol("http2session connect protocol"),kRemoteSettings:Symbol("http2session remote settings"),kHTTP2Stream:Symbol("http2session client stream"),kPingInterval:Symbol("ping interval"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent"),kSocks5ProxyAgent:Symbol("socks5 proxy agent")}}});var require_timers=__commonJS({"node_modules/undici/lib/util/timers.js"(exports,module){"use strict";var fastNow=0,RESOLUTION_MS=1e3,TICK_MS=(RESOLUTION_MS>>1)-1,fastNowTimeout,kFastTimer=Symbol("kFastTimer"),fastTimers=[],NOT_IN_LIST=-2,TO_BE_CLEARED=-1,PENDING=0,ACTIVE=1;function onTick(){fastNow+=TICK_MS;let idx=0,len=fastTimers.length;for(;idx<len;){let timer=fastTimers[idx];timer._state===PENDING?(timer._idleStart=fastNow-TICK_MS,timer._state=ACTIVE):timer._state===ACTIVE&&fastNow>=timer._idleStart+timer._idleTimeout&&(timer._state=TO_BE_CLEARED,timer._idleStart=-1,timer._onTimeout(timer._timerArg)),timer._state===TO_BE_CLEARED?(timer._state=NOT_IN_LIST,--len!==0&&(fastTimers[idx]=fastTimers[len])):++idx}fastTimers.length=len,fastTimers.length!==0&&refreshTimeout()}function refreshTimeout(){fastNowTimeout?.refresh?fastNowTimeout.refresh():(clearTimeout(fastNowTimeout),fastNowTimeout=setTimeout(onTick,TICK_MS),fastNowTimeout?.unref())}var FastTimer=class{[kFastTimer]=!0;_state=NOT_IN_LIST;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(callback,delay,arg){this._onTimeout=callback,this._idleTimeout=delay,this._timerArg=arg,this.refresh()}refresh(){this._state===NOT_IN_LIST&&fastTimers.push(this),(!fastNowTimeout||fastTimers.length===1)&&refreshTimeout(),this._state=PENDING}clear(){this._state=TO_BE_CLEARED,this._idleStart=-1}};module.exports={setTimeout(callback,delay,arg){return delay<=RESOLUTION_MS?setTimeout(callback,delay,arg):new FastTimer(callback,delay,arg)},clearTimeout(timeout){timeout[kFastTimer]?timeout.clear():clearTimeout(timeout)},setFastTimeout(callback,delay,arg){return new FastTimer(callback,delay,arg)},clearFastTimeout(timeout){timeout.clear()},now(){return fastNow},tick(delay=0){fastNow+=delay-RESOLUTION_MS+1,onTick(),onTick()},reset(){fastNow=0,fastTimers.length=0,clearTimeout(fastNowTimeout),fastNowTimeout=null},kFastTimer}}});var require_errors=__commonJS({"node_modules/undici/lib/core/errors.js"(exports,module){"use strict";var kUndiciError=Symbol.for("undici.error.UND_ERR"),UndiciError=class extends Error{constructor(message,options){super(message,options),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](instance){return instance&&instance[kUndiciError]===!0}get[kUndiciError](){return!0}},kConnectTimeoutError=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),ConnectTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="ConnectTimeoutError",this.message=message||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kConnectTimeoutError]===!0}get[kConnectTimeoutError](){return!0}},kHeadersTimeoutError=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),HeadersTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="HeadersTimeoutError",this.message=message||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kHeadersTimeoutError]===!0}get[kHeadersTimeoutError](){return!0}},kHeadersOverflowError=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),HeadersOverflowError=class extends UndiciError{constructor(message){super(message),this.name="HeadersOverflowError",this.message=message||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](instance){return instance&&instance[kHeadersOverflowError]===!0}get[kHeadersOverflowError](){return!0}},kBodyTimeoutError=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),BodyTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="BodyTimeoutError",this.message=message||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kBodyTimeoutError]===!0}get[kBodyTimeoutError](){return!0}},kInvalidArgumentError=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),InvalidArgumentError=class extends UndiciError{constructor(message){super(message),this.name="InvalidArgumentError",this.message=message||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](instance){return instance&&instance[kInvalidArgumentError]===!0}get[kInvalidArgumentError](){return!0}},kInvalidReturnValueError=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),InvalidReturnValueError=class extends UndiciError{constructor(message){super(message),this.name="InvalidReturnValueError",this.message=message||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](instance){return instance&&instance[kInvalidReturnValueError]===!0}get[kInvalidReturnValueError](){return!0}},kAbortError=Symbol.for("undici.error.UND_ERR_ABORT"),AbortError=class extends UndiciError{constructor(message){super(message),this.name="AbortError",this.message=message||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](instance){return instance&&instance[kAbortError]===!0}get[kAbortError](){return!0}},kRequestAbortedError=Symbol.for("undici.error.UND_ERR_ABORTED"),RequestAbortedError=class extends AbortError{constructor(message){super(message),this.name="AbortError",this.message=message||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](instance){return instance&&instance[kRequestAbortedError]===!0}get[kRequestAbortedError](){return!0}},kInformationalError=Symbol.for("undici.error.UND_ERR_INFO"),InformationalError=class extends UndiciError{constructor(message,options){super(message,options),this.name="InformationalError",this.message=message||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](instance){return instance&&instance[kInformationalError]===!0}get[kInformationalError](){return!0}},kRequestContentLengthMismatchError=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),RequestContentLengthMismatchError=class extends UndiciError{constructor(message){super(message),this.name="RequestContentLengthMismatchError",this.message=message||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](instance){return instance&&instance[kRequestContentLengthMismatchError]===!0}get[kRequestContentLengthMismatchError](){return!0}},kResponseContentLengthMismatchError=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),ResponseContentLengthMismatchError=class extends UndiciError{constructor(message){super(message),this.name="ResponseContentLengthMismatchError",this.message=message||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](instance){return instance&&instance[kResponseContentLengthMismatchError]===!0}get[kResponseContentLengthMismatchError](){return!0}},kClientDestroyedError=Symbol.for("undici.error.UND_ERR_DESTROYED"),ClientDestroyedError=class extends UndiciError{constructor(message){super(message),this.name="ClientDestroyedError",this.message=message||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](instance){return instance&&instance[kClientDestroyedError]===!0}get[kClientDestroyedError](){return!0}},kClientClosedError=Symbol.for("undici.error.UND_ERR_CLOSED"),ClientClosedError=class extends UndiciError{constructor(message){super(message),this.name="ClientClosedError",this.message=message||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](instance){return instance&&instance[kClientClosedError]===!0}get[kClientClosedError](){return!0}},kSocketError=Symbol.for("undici.error.UND_ERR_SOCKET"),SocketError=class extends UndiciError{constructor(message,socket){super(message),this.name="SocketError",this.message=message||"Socket error",this.code="UND_ERR_SOCKET",this.socket=socket}static[Symbol.hasInstance](instance){return instance&&instance[kSocketError]===!0}get[kSocketError](){return!0}},kNotSupportedError=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),NotSupportedError=class extends UndiciError{constructor(message){super(message),this.name="NotSupportedError",this.message=message||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](instance){return instance&&instance[kNotSupportedError]===!0}get[kNotSupportedError](){return!0}},kBalancedPoolMissingUpstreamError=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),BalancedPoolMissingUpstreamError=class extends UndiciError{constructor(message){super(message),this.name="MissingUpstreamError",this.message=message||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](instance){return instance&&instance[kBalancedPoolMissingUpstreamError]===!0}get[kBalancedPoolMissingUpstreamError](){return!0}},kHTTPParserError=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),HTTPParserError=class extends Error{constructor(message,code,data){super(message),this.name="HTTPParserError",this.code=code?`HPE_${code}`:void 0,this.data=data?data.toString():void 0}static[Symbol.hasInstance](instance){return instance&&instance[kHTTPParserError]===!0}get[kHTTPParserError](){return!0}},kResponseExceededMaxSizeError=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),ResponseExceededMaxSizeError=class extends UndiciError{constructor(message){super(message),this.name="ResponseExceededMaxSizeError",this.message=message||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](instance){return instance&&instance[kResponseExceededMaxSizeError]===!0}get[kResponseExceededMaxSizeError](){return!0}},kRequestRetryError=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),RequestRetryError=class extends UndiciError{constructor(message,code,{headers,data}){super(message),this.name="RequestRetryError",this.message=message||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=code,this.data=data,this.headers=headers}static[Symbol.hasInstance](instance){return instance&&instance[kRequestRetryError]===!0}get[kRequestRetryError](){return!0}},kResponseError=Symbol.for("undici.error.UND_ERR_RESPONSE"),ResponseError=class extends UndiciError{constructor(message,code,{headers,body}){super(message),this.name="ResponseError",this.message=message||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=code,this.body=body,this.headers=headers}static[Symbol.hasInstance](instance){return instance&&instance[kResponseError]===!0}get[kResponseError](){return!0}},kSecureProxyConnectionError=Symbol.for("undici.error.UND_ERR_PRX_TLS"),SecureProxyConnectionError=class extends UndiciError{constructor(cause,message,options={}){super(message,{cause,...options}),this.name="SecureProxyConnectionError",this.message=message||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=cause}static[Symbol.hasInstance](instance){return instance&&instance[kSecureProxyConnectionError]===!0}get[kSecureProxyConnectionError](){return!0}},kProxyConnectionError=Symbol.for("undici.error.UND_ERR_PRX_CONN"),ProxyConnectionError=class extends UndiciError{constructor(cause,message,options={}){super(message,{cause,...options}),this.name="ProxyConnectionError",this.message=message||"Proxy Connection failed",this.code="UND_ERR_PRX_CONN",this.cause=cause}static[Symbol.hasInstance](instance){return instance&&instance[kProxyConnectionError]===!0}get[kProxyConnectionError](){return!0}},kMaxOriginsReachedError=Symbol.for("undici.error.UND_ERR_MAX_ORIGINS_REACHED"),MaxOriginsReachedError=class extends UndiciError{constructor(message){super(message),this.name="MaxOriginsReachedError",this.message=message||"Maximum allowed origins reached",this.code="UND_ERR_MAX_ORIGINS_REACHED"}static[Symbol.hasInstance](instance){return instance&&instance[kMaxOriginsReachedError]===!0}get[kMaxOriginsReachedError](){return!0}},Socks5ProxyError=class extends UndiciError{constructor(message,code){super(message),this.name="Socks5ProxyError",this.message=message||"SOCKS5 proxy error",this.code=code||"UND_ERR_SOCKS5"}},kMessageSizeExceededError=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),MessageSizeExceededError=class extends UndiciError{constructor(message){super(message),this.name="MessageSizeExceededError",this.message=message||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](instance){return instance&&instance[kMessageSizeExceededError]===!0}get[kMessageSizeExceededError](){return!0}};module.exports={AbortError,HTTPParserError,UndiciError,HeadersTimeoutError,HeadersOverflowError,BodyTimeoutError,RequestContentLengthMismatchError,ConnectTimeoutError,InvalidArgumentError,InvalidReturnValueError,RequestAbortedError,ClientDestroyedError,ClientClosedError,InformationalError,SocketError,NotSupportedError,ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError,RequestRetryError,ResponseError,SecureProxyConnectionError,ProxyConnectionError,MaxOriginsReachedError,Socks5ProxyError,MessageSizeExceededError}}});var require_constants=__commonJS({"node_modules/undici/lib/core/constants.js"(exports,module){"use strict";var wellknownHeaderNames=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"],headerNameLowerCasedRecord={};Object.setPrototypeOf(headerNameLowerCasedRecord,null);for(let i=0;i<wellknownHeaderNames.length;++i){let key=wellknownHeaderNames[i],lowerCasedKey=key.toLowerCase();headerNameLowerCasedRecord[key]=headerNameLowerCasedRecord[lowerCasedKey]=lowerCasedKey}module.exports={wellknownHeaderNames,headerNameLowerCasedRecord}}});var require_tree=__commonJS({"node_modules/undici/lib/core/tree.js"(exports,module){"use strict";var{wellknownHeaderNames,headerNameLowerCasedRecord}=require_constants(),TstNode=class _TstNode{value=null;left=null;middle=null;right=null;code;constructor(key,value,index3){if(index3===void 0||index3>=key.length)throw new TypeError("Unreachable");if((this.code=key.charCodeAt(index3))>127)throw new TypeError("key must be ascii string");key.length!==++index3?this.middle=new _TstNode(key,value,index3):this.value=value}add(key,value){let length=key.length;if(length===0)throw new TypeError("Unreachable");let index3=0,node=this;for(;;){let code=key.charCodeAt(index3);if(code>127)throw new TypeError("key must be ascii string");if(node.code===code)if(length===++index3){node.value=value;break}else if(node.middle!==null)node=node.middle;else{node.middle=new _TstNode(key,value,index3);break}else if(node.code<code)if(node.left!==null)node=node.left;else{node.left=new _TstNode(key,value,index3);break}else if(node.right!==null)node=node.right;else{node.right=new _TstNode(key,value,index3);break}}}search(key){let keylength=key.length,index3=0,node=this;for(;node!==null&&index3<keylength;){let code=key[index3];for(code<=90&&code>=65&&(code|=32);node!==null;){if(code===node.code){if(keylength===++index3)return node;node=node.middle;break}node=node.code<code?node.left:node.right}}return null}},TernarySearchTree=class{node=null;insert(key,value){this.node===null?this.node=new TstNode(key,value,0):this.node.add(key,value)}lookup(key){return this.node?.search(key)?.value??null}},tree=new TernarySearchTree;for(let i=0;i<wellknownHeaderNames.length;++i){let key=headerNameLowerCasedRecord[wellknownHeaderNames[i]];tree.insert(key,key)}module.exports={TernarySearchTree,tree}}});var require_util=__commonJS({"node_modules/undici/lib/core/util.js"(exports,module){"use strict";var assert=__require("node:assert"),{kDestroyed,kBodyUsed,kListeners,kBody}=require_symbols(),{IncomingMessage}=__require("node:http"),stream=__require("node:stream"),net=__require("node:net"),{stringify}=__require("node:querystring"),{EventEmitter:EE,addAbortListener:addAbortListenerNative}=__require("node:events"),timers=require_timers(),{InvalidArgumentError,ConnectTimeoutError}=require_errors(),{headerNameLowerCasedRecord}=require_constants(),{tree}=require_tree(),BodyAsyncIterable=class{constructor(body){this[kBody]=body,this[kBodyUsed]=!1}async*[Symbol.asyncIterator](){assert(!this[kBodyUsed],"disturbed"),this[kBodyUsed]=!0,yield*this[kBody]}};function noop(){}function wrapRequestBody(body){return isStream(body)?(bodyLength(body)===0&&body.on("data",function(){assert(!1)}),typeof body.readableDidRead!="boolean"&&(body[kBodyUsed]=!1,EE.prototype.on.call(body,"data",function(){this[kBodyUsed]=!0})),body):body&&typeof body.pipeTo=="function"?new BodyAsyncIterable(body):body&&isFormDataLike(body)?body:body&&typeof body!="string"&&!ArrayBuffer.isView(body)&&isIterable(body)?new BodyAsyncIterable(body):body}function isStream(obj){return obj&&typeof obj=="object"&&typeof obj.pipe=="function"&&typeof obj.on=="function"}function isBlobLike(object){return object instanceof Blob}function pathHasQueryOrFragment(url){return url.includes("?")||url.includes("#")}function serializePathWithQuery(url,queryParams){if(pathHasQueryOrFragment(url))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let stringified=stringify(queryParams);return stringified&&(url+="?"+stringified),url}function isValidPort(port){let value=parseInt(port,10);return value===Number(port)&&value>=0&&value<=65535}function isHttpOrHttpsPrefixed(value){return value!=null&&value[0]==="h"&&value[1]==="t"&&value[2]==="t"&&value[3]==="p"&&(value[4]===":"||value[4]==="s"&&value[5]===":")}function parseURL(url){if(typeof url=="string"){if(url=new URL(url),!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");return url}if(!url||typeof url!="object")throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object.");if(!(url instanceof URL)){if(url.port!=null&&url.port!==""&&isValidPort(url.port)===!1)throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer.");if(url.path!=null&&typeof url.path!="string")throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined.");if(url.pathname!=null&&typeof url.pathname!="string")throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined.");if(url.hostname!=null&&typeof url.hostname!="string")throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined.");if(url.origin!=null&&typeof url.origin!="string")throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined.");if(!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");let port=url.port!=null?url.port:url.protocol==="https:"?443:80,origin=url.origin!=null?url.origin:`${url.protocol||""}//${url.hostname||""}:${port}`,path2=url.path!=null?url.path:`${url.pathname||""}${url.search||""}`;return origin[origin.length-1]==="/"&&(origin=origin.slice(0,origin.length-1)),path2&&path2[0]!=="/"&&(path2=`/${path2}`),new URL(`${origin}${path2}`)}if(!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");return url}function parseOrigin(url){if(url=parseURL(url),url.pathname!=="/"||url.search||url.hash)throw new InvalidArgumentError("invalid url");return url}function getHostname(host){if(host[0]==="["){let idx2=host.indexOf("]");return assert(idx2!==-1),host.substring(1,idx2)}let idx=host.indexOf(":");return idx===-1?host:host.substring(0,idx)}function getServerName(host){if(!host)return null;assert(typeof host=="string");let servername=getHostname(host);return net.isIP(servername)?"":servername}function deepClone(obj){return JSON.parse(JSON.stringify(obj))}function isAsyncIterable(obj){return obj!=null&&typeof obj[Symbol.asyncIterator]=="function"}function isIterable(obj){return obj!=null&&(typeof obj[Symbol.iterator]=="function"||typeof obj[Symbol.asyncIterator]=="function")}function hasSafeIterator(obj){let prototype=Object.getPrototypeOf(obj);return Object.hasOwn(obj,Symbol.iterator)||prototype!=null&&prototype!==Object.prototype&&typeof obj[Symbol.iterator]=="function"}function bodyLength(body){if(body==null)return 0;if(isStream(body)){let state2=body._readableState;return state2&&state2.objectMode===!1&&state2.ended===!0&&Number.isFinite(state2.length)?state2.length:null}else{if(isBlobLike(body))return body.size!=null?body.size:null;if(isBuffer(body))return body.byteLength}return null}function isDestroyed(body){return body&&!!(body.destroyed||body[kDestroyed]||stream.isDestroyed?.(body))}function destroy(stream2,err){if(!(stream2==null||!isStream(stream2)||isDestroyed(stream2))){if(typeof stream2.destroy=="function"){Object.getPrototypeOf(stream2).constructor===IncomingMessage&&(stream2.socket=null);try{stream2.destroy(err)}catch{}}else err&&queueMicrotask(()=>{stream2.emit("error",err)});stream2.destroyed!==!0&&(stream2[kDestroyed]=!0)}}var KEEPALIVE_TIMEOUT_EXPR=/timeout=(\d+)/;function parseKeepAliveTimeout(val){let m=val.match(KEEPALIVE_TIMEOUT_EXPR);return m?parseInt(m[1],10)*1e3:null}function headerNameToString(value){return typeof value=="string"?headerNameLowerCasedRecord[value]??value.toLowerCase():tree.lookup(value)??value.toString("latin1").toLowerCase()}function bufferToLowerCasedHeaderName(value){return tree.lookup(value)??value.toString("latin1").toLowerCase()}function parseHeaders(headers,obj){obj===void 0&&(obj={});for(let i=0;i<headers.length;i+=2){let key=headerNameToString(headers[i]),val=obj[key];if(val!==void 0)if(Object.hasOwn(obj,key))typeof val=="string"&&(val=[val],obj[key]=val),val.push(headers[i+1].toString("latin1"));else{let headersValue=typeof headers[i+1]=="string"?headers[i+1]:Array.isArray(headers[i+1])?headers[i+1].map(x=>x.toString("latin1")):headers[i+1].toString("latin1");key==="__proto__"?Object.defineProperty(obj,key,{value:headersValue,enumerable:!0,configurable:!0,writable:!0}):obj[key]=headersValue}else{let headersValue=typeof headers[i+1]=="string"?headers[i+1]:Array.isArray(headers[i+1])?headers[i+1].map(x=>x.toString("latin1")):headers[i+1].toString("latin1");obj[key]=headersValue}}return obj}function parseRawHeaders(headers){if(headers==null)return[];if(!Array.isArray(headers)){let rawHeaders=[];for(let[name,value]of Object.entries(headers))if(Array.isArray(value))for(let entry of value)rawHeaders.push(name,`${entry}`);else rawHeaders.push(name,`${value}`);return rawHeaders}let headersLength=headers.length,ret=new Array(headersLength),key,val;for(let n=0;n<headersLength;n+=2)key=headers[n],val=headers[n+1],typeof key!="string"&&(key=key.toString()),typeof val!="string"&&(val=val.toString("latin1")),ret[n]=key,ret[n+1]=val;return ret}function toRawHeaders(headers){let rawHeaders=[];for(let[name,value]of Object.entries(headers))if(Array.isArray(value))for(let entry of value)rawHeaders.push(Buffer.from(name,"latin1"),Buffer.from(`${entry}`,"latin1"));else rawHeaders.push(Buffer.from(name,"latin1"),Buffer.from(`${value}`,"latin1"));return rawHeaders}function encodeRawHeaders(headers){if(!Array.isArray(headers))throw new TypeError("expected headers to be an array");return headers.map(x=>Buffer.from(x))}function isBuffer(buffer){return buffer instanceof Uint8Array||Buffer.isBuffer(buffer)}function assertRequestHandler(handler,method,upgrade){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");if(typeof handler.onRequestStart!="function")throw new InvalidArgumentError("invalid onRequestStart method");if(typeof handler.onResponseError!="function")throw new InvalidArgumentError("invalid onResponseError method");if(typeof handler.onBodySent!="function"&&handler.onBodySent!==void 0)throw new InvalidArgumentError("invalid onBodySent method");if(typeof handler.onRequestSent!="function"&&handler.onRequestSent!==void 0)throw new InvalidArgumentError("invalid onRequestSent method");if(upgrade||method==="CONNECT"){if(typeof handler.onRequestUpgrade!="function")throw new InvalidArgumentError("invalid onRequestUpgrade method")}else{if(typeof handler.onResponseStart!="function")throw new InvalidArgumentError("invalid onResponseStart method");if(typeof handler.onResponseData!="function")throw new InvalidArgumentError("invalid onResponseData method");if(typeof handler.onResponseEnd!="function")throw new InvalidArgumentError("invalid onResponseEnd method")}}function isDisturbed(body){return!!(body&&(stream.isDisturbed(body)||body[kBodyUsed]))}function getSocketInfo(socket){return{localAddress:socket.localAddress,localPort:socket.localPort,remoteAddress:socket.remoteAddress,remotePort:socket.remotePort,remoteFamily:socket.remoteFamily,timeout:socket.timeout,bytesWritten:socket.bytesWritten,bytesRead:socket.bytesRead}}function ReadableStreamFrom(iterable){let iterator;return new ReadableStream({start(){iterator=iterable[Symbol.asyncIterator]()},pull(controller){return iterator.next().then(({done,value})=>{if(done)return queueMicrotask(()=>{controller.close(),controller.byobRequest?.respond(0)});{let buf=Buffer.isBuffer(value)?value:Buffer.from(value);return buf.byteLength?controller.enqueue(new Uint8Array(buf)):this.pull(controller)}})},cancel(){return iterator.return()},type:"bytes"})}function isFormDataLike(object){return object&&typeof object=="object"&&typeof object.append=="function"&&typeof object.delete=="function"&&typeof object.get=="function"&&typeof object.getAll=="function"&&typeof object.has=="function"&&typeof object.set=="function"&&object[Symbol.toStringTag]==="FormData"}function addAbortListener(signal,listener){return!signal||"aborted"in signal?addAbortListenerNative(signal,listener)[Symbol.dispose]:typeof signal.addEventListener=="function"?(signal.addEventListener("abort",listener,{once:!0}),()=>signal.removeEventListener("abort",listener)):(signal.once("abort",listener),()=>signal.removeListener("abort",listener))}var validTokenChars=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function isTokenCharCode(c){return validTokenChars[c]===1}var tokenRegExp=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function isValidHTTPToken(characters){if(characters.length>=12)return tokenRegExp.test(characters);if(characters.length===0)return!1;for(let i=0;i<characters.length;i++)if(validTokenChars[characters.charCodeAt(i)]!==1)return!1;return!0}var headerCharRegex=/[^\t\x20-\x7e\x80-\xff]/;function isValidHeaderValue(characters){return!headerCharRegex.test(characters)}var rangeHeaderRegex=/^bytes (\d+)-(\d+)\/(\d+|\*)?$/;function parseRangeHeader(range){if(range==null||range==="")return{start:0,end:null,size:null};if(!range)return null;let m=rangeHeaderRegex.exec(range);return m?{start:parseInt(m[1]),end:m[2]?parseInt(m[2]):null,size:m[3]&&m[3]!=="*"?parseInt(m[3]):null}:null}function addListener(obj,name,listener){return(obj[kListeners]??=[]).push([name,listener]),obj.on(name,listener),obj}function removeAllListeners(obj){if(obj[kListeners]!=null){for(let[name,listener]of obj[kListeners])obj.removeListener(name,listener);obj[kListeners]=null}return obj}function errorRequest(client,request,err){try{request.onResponseError(err),assert(request.aborted)}catch(err2){client.emit("error",err2)}}var setupConnectTimeout=process.platform==="win32"?(socketWeakRef,opts)=>{if(!opts.timeout)return noop;let s1=null,s2=null,fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{s2=setImmediate(()=>onConnectTimeout(socketWeakRef.deref(),opts))})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer),clearImmediate(s1),clearImmediate(s2)}}:(socketWeakRef,opts)=>{if(!opts.timeout)return noop;let s1=null,fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{onConnectTimeout(socketWeakRef.deref(),opts)})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer),clearImmediate(s1)}};function onConnectTimeout(socket,opts){if(socket==null)return;let message="Connect Timeout Error";Array.isArray(socket.autoSelectFamilyAttemptedAddresses)?message+=` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`:message+=` (attempted address: ${opts.hostname}:${opts.port},`,message+=` timeout: ${opts.timeout}ms)`,destroy(socket,new ConnectTimeoutError(message))}var lastUrlString=null,lastProtocol=null;function getProtocolFromUrlString(urlString){if(urlString===lastUrlString)return lastProtocol;let protocol=getProtocolFromUrlStringSlow(urlString);return lastUrlString=urlString,lastProtocol=protocol,protocol}function getProtocolFromUrlStringSlow(urlString){if(urlString[0]==="h"&&urlString[1]==="t"&&urlString[2]==="t"&&urlString[3]==="p")switch(urlString[4]){case":":return"http:";case"s":if(urlString[5]===":")return"https:"}return urlString.slice(0,urlString.indexOf(":")+1)}var kEnumerableProperty={__proto__:null,enumerable:!0},normalizedMethodRecordsBase={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT",query:"QUERY",QUERY:"QUERY"},normalizedMethodRecords={...normalizedMethodRecordsBase,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(normalizedMethodRecordsBase,null);Object.setPrototypeOf(normalizedMethodRecords,null);module.exports={kEnumerableProperty,isDisturbed,isBlobLike,parseOrigin,parseURL,getServerName,isStream,isIterable,hasSafeIterator,isAsyncIterable,isDestroyed,headerNameToString,bufferToLowerCasedHeaderName,addListener,removeAllListeners,errorRequest,parseRawHeaders,toRawHeaders,encodeRawHeaders,parseHeaders,parseKeepAliveTimeout,destroy,bodyLength,deepClone,ReadableStreamFrom,isBuffer,assertRequestHandler,getSocketInfo,isFormDataLike,pathHasQueryOrFragment,serializePathWithQuery,addAbortListener,isValidHTTPToken,isValidHeaderValue,isTokenCharCode,parseRangeHeader,normalizedMethodRecordsBase,normalizedMethodRecords,isValidPort,isHttpOrHttpsPrefixed,safeHTTPMethods:Object.freeze(["GET","HEAD","OPTIONS","TRACE"]),wrapRequestBody,setupConnectTimeout,getProtocolFromUrlString}}});var require_stats=__commonJS({"node_modules/undici/lib/util/stats.js"(exports,module){"use strict";var{kConnected,kPending,kRunning,kSize,kFree,kQueued}=require_symbols(),ClientStats=class{constructor(client){this.connected=client[kConnected],this.pending=client[kPending],this.running=client[kRunning],this.size=client[kSize]}},PoolStats=class{constructor(pool){this.connected=pool[kConnected],this.free=pool[kFree],this.pending=pool[kPending],this.queued=pool[kQueued],this.running=pool[kRunning],this.size=pool[kSize]}};module.exports={ClientStats,PoolStats}}});var require_diagnostics=__commonJS({"node_modules/undici/lib/core/diagnostics.js"(exports,module){"use strict";var diagnosticsChannel=__require("node:diagnostics_channel"),util=__require("node:util"),undiciDebugLog=util.debuglog("undici"),fetchDebuglog=util.debuglog("fetch"),websocketDebuglog=util.debuglog("websocket"),channels={beforeConnect:diagnosticsChannel.channel("undici:client:beforeConnect"),connected:diagnosticsChannel.channel("undici:client:connected"),connectError:diagnosticsChannel.channel("undici:client:connectError"),sendHeaders:diagnosticsChannel.channel("undici:client:sendHeaders"),create:diagnosticsChannel.channel("undici:request:create"),bodySent:diagnosticsChannel.channel("undici:request:bodySent"),bodyChunkSent:diagnosticsChannel.channel("undici:request:bodyChunkSent"),bodyChunkReceived:diagnosticsChannel.channel("undici:request:bodyChunkReceived"),headers:diagnosticsChannel.channel("undici:request:headers"),trailers:diagnosticsChannel.channel("undici:request:trailers"),error:diagnosticsChannel.channel("undici:request:error"),open:diagnosticsChannel.channel("undici:websocket:open"),close:diagnosticsChannel.channel("undici:websocket:close"),socketError:diagnosticsChannel.channel("undici:websocket:socket_error"),ping:diagnosticsChannel.channel("undici:websocket:ping"),pong:diagnosticsChannel.channel("undici:websocket:pong"),proxyConnected:diagnosticsChannel.channel("undici:proxy:connected")},isTrackingClientEvents=!1;function trackClientEvents(debugLog=undiciDebugLog){if(!isTrackingClientEvents){if(channels.beforeConnect.hasSubscribers||channels.connected.hasSubscribers||channels.connectError.hasSubscribers||channels.sendHeaders.hasSubscribers){isTrackingClientEvents=!0;return}isTrackingClientEvents=!0,diagnosticsChannel.subscribe("undici:client:beforeConnect",evt=>{let{connectParams:{version,protocol,port,host}}=evt;debugLog("connecting to %s%s using %s%s",host,port?`:${port}`:"",protocol,version)}),diagnosticsChannel.subscribe("undici:client:connected",evt=>{let{connectParams:{version,protocol,port,host}}=evt;debugLog("connected to %s%s using %s%s",host,port?`:${port}`:"",protocol,version)}),diagnosticsChannel.subscribe("undici:client:connectError",evt=>{let{connectParams:{version,protocol,port,host},error}=evt;debugLog("connection to %s%s using %s%s errored - %s",host,port?`:${port}`:"",protocol,version,error.message)}),diagnosticsChannel.subscribe("undici:client:sendHeaders",evt=>{let{request:{method,path:path2,origin}}=evt;debugLog("sending request to %s %s%s",method,origin,path2)})}}var isTrackingRequestEvents=!1;function trackRequestEvents(debugLog=undiciDebugLog){if(!isTrackingRequestEvents){if(channels.headers.hasSubscribers||channels.trailers.hasSubscribers||channels.error.hasSubscribers){isTrackingRequestEvents=!0;return}isTrackingRequestEvents=!0,diagnosticsChannel.subscribe("undici:request:headers",evt=>{let{request:{method,path:path2,origin},response:{statusCode}}=evt;debugLog("received response to %s %s%s - HTTP %d",method,origin,path2,statusCode)}),diagnosticsChannel.subscribe("undici:request:trailers",evt=>{let{request:{method,path:path2,origin}}=evt;debugLog("trailers received from %s %s%s",method,origin,path2)}),diagnosticsChannel.subscribe("undici:request:error",evt=>{let{request:{method,path:path2,origin},error}=evt;debugLog("request to %s %s%s errored - %s",method,origin,path2,error.message)})}}var isTrackingWebSocketEvents=!1;function trackWebSocketEvents(debugLog=websocketDebuglog){if(!isTrackingWebSocketEvents){if(channels.open.hasSubscribers||channels.close.hasSubscribers||channels.socketError.hasSubscribers||channels.ping.hasSubscribers||channels.pong.hasSubscribers){isTrackingWebSocketEvents=!0;return}isTrackingWebSocketEvents=!0,diagnosticsChannel.subscribe("undici:websocket:open",evt=>{if(evt.address!=null){let{address,port}=evt.address;debugLog("connection opened %s%s",address,port?`:${port}`:"")}else debugLog("connection opened")}),diagnosticsChannel.subscribe("undici:websocket:close",evt=>{let{websocket,code,reason}=evt;debugLog("closed connection to %s - %s %s",websocket.url,code,reason)}),diagnosticsChannel.subscribe("undici:websocket:socket_error",err=>{debugLog("connection errored - %s",err.message)}),diagnosticsChannel.subscribe("undici:websocket:ping",evt=>{debugLog("ping received")}),diagnosticsChannel.subscribe("undici:websocket:pong",evt=>{debugLog("pong received")})}}(undiciDebugLog.enabled||fetchDebuglog.enabled)&&(trackClientEvents(fetchDebuglog.enabled?fetchDebuglog:undiciDebugLog),trackRequestEvents(fetchDebuglog.enabled?fetchDebuglog:undiciDebugLog));websocketDebuglog.enabled&&(trackClientEvents(undiciDebugLog.enabled?undiciDebugLog:websocketDebuglog),trackWebSocketEvents(websocketDebuglog));module.exports={channels}}});var require_request=__commonJS({"node_modules/undici/lib/core/request.js"(exports,module){"use strict";var{InvalidArgumentError,NotSupportedError}=require_errors(),assert=__require("node:assert"),{isValidHTTPToken,isValidHeaderValue,isStream,destroy,isBuffer,isFormDataLike,isIterable,hasSafeIterator,isBlobLike,serializePathWithQuery,parseHeaders,assertRequestHandler,getServerName,normalizedMethodRecords,getProtocolFromUrlString}=require_util(),{channels}=require_diagnostics(),{headerNameLowerCasedRecord}=require_constants(),invalidPathRegex=/[^\u0021-\u00ff]/;function isValidContentLengthHeaderValue(val){if(typeof val!="string"||val.length===0)return!1;for(let i=0;i<val.length;i++){let charCode=val.charCodeAt(i);if(charCode<48||charCode>57)return!1}return!0}var kHandler=Symbol("handler"),kController=Symbol("controller"),kResume=Symbol("resume"),RequestController=class{#paused=!1;#reason=null;#aborted=!1;#abort;[kResume]=null;rawHeaders=null;rawTrailers=null;constructor(abort){this.#abort=abort}pause(){this.#paused=!0}resume(){this.#paused&&(this.#paused=!1,this[kResume]?.())}abort(reason){this.#aborted||(this.#aborted=!0,this.#reason=reason,this.#abort(reason))}get aborted(){return this.#aborted}get reason(){return this.#reason}get paused(){return this.#paused}},Request=class{constructor(origin,{path:path2,method,body,headers,query,idempotent,blocking,upgrade,headersTimeout,bodyTimeout,reset,expectContinue,servername,throwOnError,maxRedirections,typeOfService},handler){if(typeof path2!="string")throw new InvalidArgumentError("path must be a string");if(path2[0]!=="/"&&!(path2.startsWith("http://")||path2.startsWith("https://"))&&method!=="CONNECT")throw new InvalidArgumentError("path must be an absolute URL or start with a slash");if(invalidPathRegex.test(path2))throw new InvalidArgumentError("invalid request path");if(typeof method!="string")throw new InvalidArgumentError("method must be a string");if(normalizedMethodRecords[method]===void 0&&!isValidHTTPToken(method))throw new InvalidArgumentError("invalid request method");if(upgrade&&typeof upgrade!="string")throw new InvalidArgumentError("upgrade must be a string");if(upgrade&&!isValidHeaderValue(upgrade))throw new InvalidArgumentError("invalid upgrade header");if(headersTimeout!=null&&(!Number.isFinite(headersTimeout)||headersTimeout<0))throw new InvalidArgumentError("invalid headersTimeout");if(bodyTimeout!=null&&(!Number.isFinite(bodyTimeout)||bodyTimeout<0))throw new InvalidArgumentError("invalid bodyTimeout");if(reset!=null&&typeof reset!="boolean")throw new InvalidArgumentError("invalid reset");if(expectContinue!=null&&typeof expectContinue!="boolean")throw new InvalidArgumentError("invalid expectContinue");if(throwOnError!=null)throw new InvalidArgumentError("invalid throwOnError");if(maxRedirections!=null&&maxRedirections!==0)throw new InvalidArgumentError("maxRedirections is not supported, use the redirect interceptor");if(typeOfService!=null&&(!Number.isInteger(typeOfService)||typeOfService<0||typeOfService>255))throw new InvalidArgumentError("typeOfService must be an integer between 0 and 255");if(this.headersTimeout=headersTimeout,this.bodyTimeout=bodyTimeout,this.method=method,this.typeOfService=typeOfService,this.abort=null,body==null)this.body=null;else if(isStream(body)){this.body=body;let rState=this.body._readableState;(!rState||!rState.autoDestroy)&&(this.endHandler=function(){destroy(this)},this.body.on("end",this.endHandler)),this.errorHandler=err=>{this.abort?this.abort(err):this.error=err},this.body.on("error",this.errorHandler)}else if(isBuffer(body))this.body=body.byteLength?body:null;else if(ArrayBuffer.isView(body))this.body=body.buffer.byteLength?Buffer.from(body.buffer,body.byteOffset,body.byteLength):null;else if(body instanceof ArrayBuffer)this.body=body.byteLength?Buffer.from(body):null;else if(typeof body=="string")this.body=body.length?Buffer.from(body):null;else if(isFormDataLike(body)||isIterable(body)||isBlobLike(body))this.body=body;else throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=upgrade||null,this.path=query?serializePathWithQuery(path2,query):path2,this.origin=origin,this.protocol=getProtocolFromUrlString(origin),this.idempotent=idempotent??(method==="HEAD"||method==="GET"||method==="QUERY"),this.blocking=blocking??this.method!=="HEAD",this.reset=reset??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=expectContinue??!1,Array.isArray(headers)){if(headers.length%2!==0)throw new InvalidArgumentError("headers array must be even");for(let i=0;i<headers.length;i+=2)processHeader(this,headers[i],headers[i+1])}else if(headers&&typeof headers=="object")if(hasSafeIterator(headers))for(let header of headers){if(!Array.isArray(header)||header.length!==2)throw new InvalidArgumentError("headers must be in key-value pair format");processHeader(this,header[0],header[1])}else{let keys=Object.keys(headers);for(let i=0;i<keys.length;++i)processHeader(this,keys[i],headers[keys[i]])}else if(headers!=null)throw new InvalidArgumentError("headers must be an object or an array");assertRequestHandler(handler,method,upgrade),this.servername=servername||getServerName(this.host)||null,this[kHandler]=handler,channels.create.hasSubscribers&&channels.create.publish({request:this})}onBodySent(chunk){if(channels.bodyChunkSent.hasSubscribers&&channels.bodyChunkSent.publish({request:this,chunk}),this[kHandler].onBodySent)try{return this[kHandler].onBodySent(chunk)}catch(err){this.abort(err)}}onRequestSent(){if(channels.bodySent.hasSubscribers&&channels.bodySent.publish({request:this}),this[kHandler].onRequestSent)try{return this[kHandler].onRequestSent()}catch(err){this.abort(err)}}onRequestStart(abort,context){if(assert(!this.aborted),assert(!this.completed),this[kController]=new RequestController(abort),this.error){this[kController].abort(this.error);return}return this.abort=abort,this[kHandler].onRequestStart(this[kController],context)}onResponseStarted(){return this[kHandler].onResponseStarted?.()}onResponseStart(statusCode,headers,resume,statusText){assert(!this.aborted),assert(!this.completed),channels.headers.hasSubscribers&&channels.headers.publish({request:this,response:{statusCode,headers,statusText}});let controller=this[kController];controller&&(controller[kResume]=resume,controller.rawHeaders=headers);let parsedHeaders=Array.isArray(headers)?parseHeaders(headers):headers;try{return this[kHandler].onResponseStart?.(controller,statusCode,parsedHeaders,statusText),!controller?.paused}catch(err){return this.abort(err),!1}}onResponseData(chunk){assert(!this.aborted),assert(!this.completed),channels.bodyChunkReceived.hasSubscribers&&channels.bodyChunkReceived.publish({request:this,chunk});let controller=this[kController];try{return this[kHandler].onResponseData?.(controller,chunk),!controller?.paused}catch(err){return this.abort(err),!1}}onRequestUpgrade(statusCode,headers,socket){assert(!this.aborted),assert(!this.completed);let controller=this[kController];controller&&(controller.rawHeaders=headers);let parsedHeaders=Array.isArray(headers)?parseHeaders(headers):headers;return this[kHandler].onRequestUpgrade?.(controller,statusCode,parsedHeaders,socket)}onResponseEnd(trailers){this.onFinally(),assert(!this.aborted),assert(!this.completed),this.completed=!0,channels.trailers.hasSubscribers&&channels.trailers.publish({request:this,trailers});let controller=this[kController];controller&&(controller.rawTrailers=trailers);let parsedTrailers=Array.isArray(trailers)?parseHeaders(trailers):trailers;try{return this[kHandler].onResponseEnd?.(controller,parsedTrailers)}catch(err){this.onResponseError(err)}}onResponseError(error){if(this.onFinally(),channels.error.hasSubscribers&&channels.error.publish({request:this,error}),this.aborted)return;this.aborted=!0;let controller=this[kController];return this[kHandler].onResponseError?.(controller,error)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(key,value){return processHeader(this,key,value),this}};function processHeader(request,key,val){if(val&&typeof val=="object"&&!Array.isArray(val))throw new InvalidArgumentError(`invalid ${key} header`);if(val===void 0)return;let headerName=headerNameLowerCasedRecord[key];if(headerName===void 0&&(headerName=key.toLowerCase(),headerNameLowerCasedRecord[headerName]===void 0&&!isValidHTTPToken(headerName)))throw new InvalidArgumentError("invalid header key");if(Array.isArray(val)){let arr=[];for(let i=0;i<val.length;i++)if(typeof val[i]=="string"){if(!isValidHeaderValue(val[i]))throw new InvalidArgumentError(`invalid ${key} header`);arr.push(val[i])}else if(val[i]===null)arr.push("");else{if(typeof val[i]=="object")throw new InvalidArgumentError(`invalid ${key} header`);{let str2=`${val[i]}`;if(!isValidHeaderValue(str2))throw new InvalidArgumentError(`invalid ${key} header`);arr.push(str2)}}val=arr}else if(typeof val=="string"){if(!isValidHeaderValue(val))throw new InvalidArgumentError(`invalid ${key} header`)}else if(val===null)val="";else if(val=`${val}`,!isValidHeaderValue(val))throw new InvalidArgumentError(`invalid ${key} header`);if(headerName==="host"){if(request.host!==null)throw new InvalidArgumentError("duplicate host header");if(typeof val!="string")throw new InvalidArgumentError("invalid host header");request.host=val}else if(headerName==="content-length"){if(request.contentLength!==null)throw new InvalidArgumentError("duplicate content-length header");if(!isValidContentLengthHeaderValue(val))throw new InvalidArgumentError("invalid content-length header");request.contentLength=parseInt(val,10)}else if(request.contentType===null&&headerName==="content-type")request.contentType=val,request.headers.push(key,val);else{if(headerName==="transfer-encoding"||headerName==="keep-alive"||headerName==="upgrade")throw new InvalidArgumentError(`invalid ${headerName} header`);if(headerName==="connection"){let value=typeof val=="string"?val:null;if(value===null)throw new InvalidArgumentError("invalid connection header");for(let token of value.toLowerCase().split(",")){let trimmed=token.trim();if(!isValidHTTPToken(trimmed))throw new InvalidArgumentError("invalid connection header");trimmed==="close"&&(request.reset=!0)}}else{if(headerName==="expect")throw new NotSupportedError("expect header not supported");request.headers.push(key,val)}}}module.exports=Request}});var require_dispatcher=__commonJS({"node_modules/undici/lib/dispatcher/dispatcher.js"(exports,module){"use strict";var EventEmitter2=__require("node:events"),{kOriginless,kUrl}=require_symbols(),Dispatcher=class extends EventEmitter2{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...args){let interceptors=Array.isArray(args[0])?args[0]:args,interceptorOrigin=this[kOriginless]===!0?null:this[kUrl]?.origin,dispatch=this.dispatch.bind(this);for(let interceptor of interceptors)if(interceptor!=null){if(typeof interceptor!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`);if(dispatch=interceptor(dispatch,interceptorOrigin),dispatch==null||typeof dispatch!="function"||dispatch.length!==2)throw new TypeError("invalid interceptor")}let originalDispatch=dispatch,self=this;return dispatch=function(opts,handler){return opts&&typeof opts=="object"&&!opts.origin&&self[kUrl]&&(opts=Object.assign({},opts,{origin:self[kUrl].origin})),originalDispatch(opts,handler)},new Proxy(this,{get:(target,key)=>key==="dispatch"?dispatch:target[key]})}};module.exports=Dispatcher}});var require_dispatcher_base=__commonJS({"node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports,module){"use strict";var buffer=__require("node:buffer"),Dispatcher=require_dispatcher(),{ClientDestroyedError,ClientClosedError,InvalidArgumentError}=require_errors(),{kDestroy,kClose,kClosed,kDestroyed,kDispatch}=require_symbols(),kOnDestroyed=Symbol("onDestroyed"),kOnClosed=Symbol("onClosed"),kWebSocketOptions=Symbol("webSocketOptions"),kEventSourceOptions=Symbol("eventSourceOptions"),DispatcherBase=class extends Dispatcher{[kDestroyed]=!1;[kOnDestroyed]=null;[kClosed]=!1;[kOnClosed]=null;constructor(opts){super(),this[kWebSocketOptions]=opts?.webSocket??{},this[kEventSourceOptions]=opts?.eventSource??{}}get webSocketOptions(){return{maxFragments:this[kWebSocketOptions].maxFragments??131072,maxPayloadSize:this[kWebSocketOptions].maxPayloadSize??128*1024*1024}}get eventSourceOptions(){return{maxEventSize:this[kEventSourceOptions].maxEventSize??buffer.kStringMaxLength}}get destroyed(){return this[kDestroyed]}get closed(){return this[kClosed]}close(callback){if(callback===void 0)return new Promise((resolve2,reject)=>{this.close((err,data)=>err?reject(err):resolve2(data))});if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(this[kDestroyed]){let err=new ClientDestroyedError;queueMicrotask(()=>callback(err,null));return}if(this[kClosed]){this[kOnClosed]?this[kOnClosed].push(callback):queueMicrotask(()=>callback(null,null));return}this[kClosed]=!0,this[kOnClosed]??=[],this[kOnClosed].push(callback);let onClosed=()=>{let callbacks=this[kOnClosed];this[kOnClosed]=null;for(let i=0;i<callbacks.length;i++)callbacks[i](null,null)};this[kClose]().then(()=>this.destroy()).then(()=>queueMicrotask(onClosed))}destroy(err,callback){if(typeof err=="function"&&(callback=err,err=null),callback===void 0)return new Promise((resolve2,reject)=>{this.destroy(err,(err2,data)=>err2?reject(err2):resolve2(data))});if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(this[kDestroyed]){this[kOnDestroyed]?this[kOnDestroyed].push(callback):queueMicrotask(()=>callback(null,null));return}err||(err=new ClientDestroyedError),this[kDestroyed]=!0,this[kOnDestroyed]??=[],this[kOnDestroyed].push(callback);let onDestroyed=()=>{let callbacks=this[kOnDestroyed];this[kOnDestroyed]=null;for(let i=0;i<callbacks.length;i++)callbacks[i](null,null)};this[kDestroy](err).then(()=>queueMicrotask(onDestroyed))}dispatch(opts,handler){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");try{if(!opts||typeof opts!="object")throw new InvalidArgumentError("opts must be an object.");if(opts.dispatcher)throw new InvalidArgumentError("opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.");if(this[kDestroyed]||this[kOnDestroyed])throw new ClientDestroyedError;if(this[kClosed])throw new ClientClosedError;return this[kDispatch](opts,handler)}catch(err){if(typeof handler.onResponseError!="function")throw err;return handler.onResponseError(null,err),!1}}};module.exports=DispatcherBase}});var require_connect=__commonJS({"node_modules/undici/lib/core/connect.js"(exports,module){"use strict";var net=__require("node:net"),assert=__require("node:assert"),util=require_util(),{InvalidArgumentError,ConnectTimeoutError}=require_errors(),tls,SessionCache=class{constructor(maxCachedSessions){this._maxCachedSessions=maxCachedSessions,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(key=>{if(this._sessionCache.size<this._maxCachedSessions)return;let ref=this._sessionCache.get(key);ref!==void 0&&ref.deref()===void 0&&this._sessionCache.delete(key)})}get(sessionKey){let ref=this._sessionCache.get(sessionKey);return ref?ref.deref():null}set(sessionKey,session){if(this._maxCachedSessions!==0){if(this._sessionCache.has(sessionKey))this._sessionCache.delete(sessionKey);else if(this._sessionCache.size>=this._maxCachedSessions){for(let[key,ref]of this._sessionCache)if(ref.deref()===void 0){this._sessionCache.delete(key);return}let oldest=this._sessionCache.keys().next();oldest.done||this._sessionCache.delete(oldest.value)}this._sessionCache.set(sessionKey,new WeakRef(session)),this._sessionRegistry.register(session,sessionKey)}}};function buildConnector({allowH2,preferH2,useH2c,maxCachedSessions,socketPath,timeout,session:customSession,...opts}){if(maxCachedSessions!=null&&(!Number.isInteger(maxCachedSessions)||maxCachedSessions<0))throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero");let options={path:socketPath,...opts},sessionCache=new SessionCache(maxCachedSessions??100);return timeout=timeout??1e4,allowH2=allowH2??!0,function({hostname,host,protocol,port,servername,localAddress,httpSocket},callback){let socket;if(protocol==="https:"){tls||(tls=__require("node:tls")),servername=servername||options.servername||util.getServerName(host)||null;let sessionKey=servername||hostname;assert(sessionKey);let session=customSession||sessionCache.get(sessionKey)||null;port=port||443,socket=tls.connect({highWaterMark:16384,...options,servername,session,localAddress,ALPNProtocols:allowH2?preferH2?["h2","http/1.1"]:["http/1.1","h2"]:["http/1.1"],socket:httpSocket,port,host:hostname}),socket.on("session",function(session2){sessionCache.set(sessionKey,session2)})}else{assert(!httpSocket,"httpSocket can only be sent on TLS update"),port=port||80;let connectOptions={highWaterMark:64*1024,...options,localAddress,port,host:hostname},family=net.isIP(hostname);family!==0&&servername&&servername!==hostname&&(connectOptions.host=servername,connectOptions.lookup=(_hostname,lookupOptions,cb)=>{lookupOptions.all?cb(null,[{address:hostname,family}]):cb(null,hostname,family)}),socket=net.connect(connectOptions),useH2c===!0&&(socket.alpnProtocol="h2")}if(options.keepAlive==null||options.keepAlive){let keepAliveInitialDelay=options.keepAliveInitialDelay===void 0?6e4:options.keepAliveInitialDelay;socket.setKeepAlive(!0,keepAliveInitialDelay)}let clearConnectTimeout=util.setupConnectTimeout(new WeakRef(socket),{timeout,hostname,port});return socket.setNoDelay(!0).once(protocol==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(clearConnectTimeout),callback){let cb=callback;callback=null,cb(null,this)}}).on("error",function(err){if(queueMicrotask(clearConnectTimeout),callback){let cb=callback;callback=null,cb(maybeNormalizeConnectError(err,this,{timeout,hostname,port}))}}),socket}}function maybeNormalizeConnectError(err,socket,opts){if(err instanceof AggregateError&&(err.code==="ETIMEDOUT"||err.errors.some(e=>e!=null&&e.code==="ETIMEDOUT"))){let message="Connect Timeout Error";Array.isArray(socket.autoSelectFamilyAttemptedAddresses)?message+=` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`:message+=` (attempted address: ${opts.hostname}:${opts.port},`,message+=` timeout: ${opts.timeout}ms)`;let wrapped=new ConnectTimeoutError(message);return wrapped.cause=err,wrapped}return err}module.exports=buildConnector}});var require_utils=__commonJS({"node_modules/undici/lib/llhttp/utils.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.enumToMap=enumToMap;function enumToMap(obj,filter=[],exceptions=[]){let emptyFilter=(filter?.length??0)===0,emptyExceptions=(exceptions?.length??0)===0;return Object.fromEntries(Object.entries(obj).filter(([,value])=>typeof value=="number"&&(emptyFilter||filter.includes(value))&&(emptyExceptions||!exceptions.includes(value))))}}});var require_constants2=__commonJS({"node_modules/undici/lib/llhttp/constants.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.SPECIAL_HEADERS=exports.MINOR=exports.MAJOR=exports.HTAB_SP_VCHAR_OBS_TEXT=exports.QUOTED_STRING=exports.CONNECTION_TOKEN_CHARS=exports.HEADER_CHARS=exports.TOKEN=exports.HEX=exports.URL_CHAR=exports.USERINFO_CHARS=exports.MARK=exports.ALPHANUM=exports.NUM=exports.HEX_MAP=exports.NUM_MAP=exports.ALPHA=exports.STATUSES_HTTP=exports.H_METHOD_MAP=exports.METHOD_MAP=exports.METHODS_RTSP=exports.METHODS_ICE=exports.METHODS_HTTP=exports.HEADER_STATE=exports.FINISH=exports.STATUSES=exports.METHODS=exports.LENIENT_FLAGS=exports.FLAGS=exports.TYPE=exports.ERROR=void 0;var utils_1=require_utils();exports.ERROR={OK:0,INTERNAL:1,STRICT:2,CR_EXPECTED:25,LF_EXPECTED:3,UNEXPECTED_CONTENT_LENGTH:4,UNEXPECTED_SPACE:30,CLOSED_CONNECTION:5,INVALID_METHOD:6,INVALID_URL:7,INVALID_CONSTANT:8,INVALID_VERSION:9,INVALID_HEADER_TOKEN:10,INVALID_CONTENT_LENGTH:11,INVALID_CHUNK_SIZE:12,INVALID_STATUS:13,INVALID_EOF_STATE:14,INVALID_TRANSFER_ENCODING:15,CB_MESSAGE_BEGIN:16,CB_HEADERS_COMPLETE:17,CB_MESSAGE_COMPLETE:18,CB_CHUNK_HEADER:19,CB_CHUNK_COMPLETE:20,PAUSED:21,PAUSED_UPGRADE:22,PAUSED_H2_UPGRADE:23,USER:24,CB_URL_COMPLETE:26,CB_STATUS_COMPLETE:27,CB_METHOD_COMPLETE:32,CB_VERSION_COMPLETE:33,CB_HEADER_FIELD_COMPLETE:28,CB_HEADER_VALUE_COMPLETE:29,CB_CHUNK_EXTENSION_NAME_COMPLETE:34,CB_CHUNK_EXTENSION_VALUE_COMPLETE:35,CB_RESET:31,CB_PROTOCOL_COMPLETE:38};exports.TYPE={BOTH:0,REQUEST:1,RESPONSE:2};exports.FLAGS={CONNECTION_KEEP_ALIVE:1,CONNECTION_CLOSE:2,CONNECTION_UPGRADE:4,CHUNKED:8,UPGRADE:16,CONTENT_LENGTH:32,SKIPBODY:64,TRAILING:128,TRANSFER_ENCODING:512};exports.LENIENT_FLAGS={HEADERS:1,CHUNKED_LENGTH:2,KEEP_ALIVE:4,TRANSFER_ENCODING:8,VERSION:16,DATA_AFTER_CLOSE:32,OPTIONAL_LF_AFTER_CR:64,OPTIONAL_CRLF_AFTER_CHUNK:128,OPTIONAL_CR_BEFORE_LF:256,SPACES_AFTER_CHUNK_SIZE:512};exports.METHODS={DELETE:0,GET:1,HEAD:2,POST:3,PUT:4,CONNECT:5,OPTIONS:6,TRACE:7,COPY:8,LOCK:9,MKCOL:10,MOVE:11,PROPFIND:12,PROPPATCH:13,SEARCH:14,UNLOCK:15,BIND:16,REBIND:17,UNBIND:18,ACL:19,REPORT:20,MKACTIVITY:21,CHECKOUT:22,MERGE:23,"M-SEARCH":24,NOTIFY:25,SUBSCRIBE:26,UNSUBSCRIBE:27,PATCH:28,PURGE:29,MKCALENDAR:30,LINK:31,UNLINK:32,SOURCE:33,PRI:34,DESCRIBE:35,ANNOUNCE:36,SETUP:37,PLAY:38,PAUSE:39,TEARDOWN:40,GET_PARAMETER:41,SET_PARAMETER:42,REDIRECT:43,RECORD:44,FLUSH:45,QUERY:46};exports.STATUSES={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,RESPONSE_IS_STALE:110,REVALIDATION_FAILED:111,DISCONNECTED_OPERATION:112,HEURISTIC_EXPIRATION:113,MISCELLANEOUS_WARNING:199,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,TRANSFORMATION_APPLIED:214,IM_USED:226,MISCELLANEOUS_PERSISTENT_WARNING:299,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,SWITCH_PROXY:306,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,PAGE_EXPIRED:419,ENHANCE_YOUR_CALM:420,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL:430,REQUEST_HEADER_FIELDS_TOO_LARGE:431,LOGIN_TIMEOUT:440,NO_RESPONSE:444,RETRY_WITH:449,BLOCKED_BY_PARENTAL_CONTROL:450,UNAVAILABLE_FOR_LEGAL_REASONS:451,CLIENT_CLOSED_LOAD_BALANCED_REQUEST:460,INVALID_X_FORWARDED_FOR:463,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,INVALID_TOKEN:498,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,BANDWIDTH_LIMIT_EXCEEDED:509,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511,WEB_SERVER_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMEOUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,SITE_IS_OVERLOADED:529,SITE_IS_FROZEN:530,IDENTITY_PROVIDER_AUTHENTICATION_ERROR:561,NETWORK_READ_TIMEOUT:598,NETWORK_CONNECT_TIMEOUT:599};exports.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2};exports.HEADER_STATE={GENERAL:0,CONNECTION:1,CONTENT_LENGTH:2,TRANSFER_ENCODING:3,UPGRADE:4,CONNECTION_KEEP_ALIVE:5,CONNECTION_CLOSE:6,CONNECTION_UPGRADE:7,TRANSFER_ENCODING_CHUNKED:8};exports.METHODS_HTTP=[exports.METHODS.DELETE,exports.METHODS.GET,exports.METHODS.HEAD,exports.METHODS.POST,exports.METHODS.PUT,exports.METHODS.CONNECT,exports.METHODS.OPTIONS,exports.METHODS.TRACE,exports.METHODS.COPY,exports.METHODS.LOCK,exports.METHODS.MKCOL,exports.METHODS.MOVE,exports.METHODS.PROPFIND,exports.METHODS.PROPPATCH,exports.METHODS.SEARCH,exports.METHODS.UNLOCK,exports.METHODS.BIND,exports.METHODS.REBIND,exports.METHODS.UNBIND,exports.METHODS.ACL,exports.METHODS.REPORT,exports.METHODS.MKACTIVITY,exports.METHODS.CHECKOUT,exports.METHODS.MERGE,exports.METHODS["M-SEARCH"],exports.METHODS.NOTIFY,exports.METHODS.SUBSCRIBE,exports.METHODS.UNSUBSCRIBE,exports.METHODS.PATCH,exports.METHODS.PURGE,exports.METHODS.MKCALENDAR,exports.METHODS.LINK,exports.METHODS.UNLINK,exports.METHODS.PRI,exports.METHODS.SOURCE,exports.METHODS.QUERY];exports.METHODS_ICE=[exports.METHODS.SOURCE];exports.METHODS_RTSP=[exports.METHODS.OPTIONS,exports.METHODS.DESCRIBE,exports.METHODS.ANNOUNCE,exports.METHODS.SETUP,exports.METHODS.PLAY,exports.METHODS.PAUSE,exports.METHODS.TEARDOWN,exports.METHODS.GET_PARAMETER,exports.METHODS.SET_PARAMETER,exports.METHODS.REDIRECT,exports.METHODS.RECORD,exports.METHODS.FLUSH,exports.METHODS.GET,exports.METHODS.POST];exports.METHOD_MAP=(0,utils_1.enumToMap)(exports.METHODS);exports.H_METHOD_MAP=Object.fromEntries(Object.entries(exports.METHODS).filter(([k])=>k.startsWith("H")));exports.STATUSES_HTTP=[exports.STATUSES.CONTINUE,exports.STATUSES.SWITCHING_PROTOCOLS,exports.STATUSES.PROCESSING,exports.STATUSES.EARLY_HINTS,exports.STATUSES.RESPONSE_IS_STALE,exports.STATUSES.REVALIDATION_FAILED,exports.STATUSES.DISCONNECTED_OPERATION,exports.STATUSES.HEURISTIC_EXPIRATION,exports.STATUSES.MISCELLANEOUS_WARNING,exports.STATUSES.OK,exports.STATUSES.CREATED,exports.STATUSES.ACCEPTED,exports.STATUSES.NON_AUTHORITATIVE_INFORMATION,exports.STATUSES.NO_CONTENT,exports.STATUSES.RESET_CONTENT,exports.STATUSES.PARTIAL_CONTENT,exports.STATUSES.MULTI_STATUS,exports.STATUSES.ALREADY_REPORTED,exports.STATUSES.TRANSFORMATION_APPLIED,exports.STATUSES.IM_USED,exports.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,exports.STATUSES.MULTIPLE_CHOICES,exports.STATUSES.MOVED_PERMANENTLY,exports.STATUSES.FOUND,exports.STATUSES.SEE_OTHER,exports.STATUSES.NOT_MODIFIED,exports.STATUSES.USE_PROXY,exports.STATUSES.SWITCH_PROXY,exports.STATUSES.TEMPORARY_REDIRECT,exports.STATUSES.PERMANENT_REDIRECT,exports.STATUSES.BAD_REQUEST,exports.STATUSES.UNAUTHORIZED,exports.STATUSES.PAYMENT_REQUIRED,exports.STATUSES.FORBIDDEN,exports.STATUSES.NOT_FOUND,exports.STATUSES.METHOD_NOT_ALLOWED,exports.STATUSES.NOT_ACCEPTABLE,exports.STATUSES.PROXY_AUTHENTICATION_REQUIRED,exports.STATUSES.REQUEST_TIMEOUT,exports.STATUSES.CONFLICT,exports.STATUSES.GONE,exports.STATUSES.LENGTH_REQUIRED,exports.STATUSES.PRECONDITION_FAILED,exports.STATUSES.PAYLOAD_TOO_LARGE,exports.STATUSES.URI_TOO_LONG,exports.STATUSES.UNSUPPORTED_MEDIA_TYPE,exports.STATUSES.RANGE_NOT_SATISFIABLE,exports.STATUSES.EXPECTATION_FAILED,exports.STATUSES.IM_A_TEAPOT,exports.STATUSES.PAGE_EXPIRED,exports.STATUSES.ENHANCE_YOUR_CALM,exports.STATUSES.MISDIRECTED_REQUEST,exports.STATUSES.UNPROCESSABLE_ENTITY,exports.STATUSES.LOCKED,exports.STATUSES.FAILED_DEPENDENCY,exports.STATUSES.TOO_EARLY,exports.STATUSES.UPGRADE_REQUIRED,exports.STATUSES.PRECONDITION_REQUIRED,exports.STATUSES.TOO_MANY_REQUESTS,exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,exports.STATUSES.LOGIN_TIMEOUT,exports.STATUSES.NO_RESPONSE,exports.STATUSES.RETRY_WITH,exports.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,exports.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,exports.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,exports.STATUSES.INVALID_X_FORWARDED_FOR,exports.STATUSES.REQUEST_HEADER_TOO_LARGE,exports.STATUSES.SSL_CERTIFICATE_ERROR,exports.STATUSES.SSL_CERTIFICATE_REQUIRED,exports.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,exports.STATUSES.INVALID_TOKEN,exports.STATUSES.CLIENT_CLOSED_REQUEST,exports.STATUSES.INTERNAL_SERVER_ERROR,exports.STATUSES.NOT_IMPLEMENTED,exports.STATUSES.BAD_GATEWAY,exports.STATUSES.SERVICE_UNAVAILABLE,exports.STATUSES.GATEWAY_TIMEOUT,exports.STATUSES.HTTP_VERSION_NOT_SUPPORTED,exports.STATUSES.VARIANT_ALSO_NEGOTIATES,exports.STATUSES.INSUFFICIENT_STORAGE,exports.STATUSES.LOOP_DETECTED,exports.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,exports.STATUSES.NOT_EXTENDED,exports.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,exports.STATUSES.WEB_SERVER_UNKNOWN_ERROR,exports.STATUSES.WEB_SERVER_IS_DOWN,exports.STATUSES.CONNECTION_TIMEOUT,exports.STATUSES.ORIGIN_IS_UNREACHABLE,exports.STATUSES.TIMEOUT_OCCURED,exports.STATUSES.SSL_HANDSHAKE_FAILED,exports.STATUSES.INVALID_SSL_CERTIFICATE,exports.STATUSES.RAILGUN_ERROR,exports.STATUSES.SITE_IS_OVERLOADED,exports.STATUSES.SITE_IS_FROZEN,exports.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,exports.STATUSES.NETWORK_READ_TIMEOUT,exports.STATUSES.NETWORK_CONNECT_TIMEOUT];exports.ALPHA=[];for(let i=65;i<=90;i++)exports.ALPHA.push(String.fromCharCode(i)),exports.ALPHA.push(String.fromCharCode(i+32));exports.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};exports.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};exports.NUM=["0","1","2","3","4","5","6","7","8","9"];exports.ALPHANUM=exports.ALPHA.concat(exports.NUM);exports.MARK=["-","_",".","!","~","*","'","(",")"];exports.USERINFO_CHARS=exports.ALPHANUM.concat(exports.MARK).concat(["%",";",":","&","=","+","$",","]);exports.URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(exports.ALPHANUM);exports.HEX=exports.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);exports.TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(exports.ALPHANUM);exports.HEADER_CHARS=[" "];for(let i=32;i<=255;i++)i!==127&&exports.HEADER_CHARS.push(i);exports.CONNECTION_TOKEN_CHARS=exports.HEADER_CHARS.filter(c=>c!==44);exports.QUOTED_STRING=[" "," "];for(let i=33;i<=255;i++)i!==34&&i!==92&&exports.QUOTED_STRING.push(i);exports.HTAB_SP_VCHAR_OBS_TEXT=[" "," "];for(let i=33;i<=126;i++)exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);for(let i=128;i<=255;i++)exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);exports.MAJOR=exports.NUM_MAP;exports.MINOR=exports.MAJOR;exports.SPECIAL_HEADERS={connection:exports.HEADER_STATE.CONNECTION,"content-length":exports.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":exports.HEADER_STATE.CONNECTION,"transfer-encoding":exports.HEADER_STATE.TRANSFER_ENCODING,upgrade:exports.HEADER_STATE.UPGRADE};exports.default={ERROR:exports.ERROR,TYPE:exports.TYPE,FLAGS:exports.FLAGS,LENIENT_FLAGS:exports.LENIENT_FLAGS,METHODS:exports.METHODS,STATUSES:exports.STATUSES,FINISH:exports.FINISH,HEADER_STATE:exports.HEADER_STATE,ALPHA:exports.ALPHA,NUM_MAP:exports.NUM_MAP,HEX_MAP:exports.HEX_MAP,NUM:exports.NUM,ALPHANUM:exports.ALPHANUM,MARK:exports.MARK,USERINFO_CHARS:exports.USERINFO_CHARS,URL_CHAR:exports.URL_CHAR,HEX:exports.HEX,TOKEN:exports.TOKEN,HEADER_CHARS:exports.HEADER_CHARS,CONNECTION_TOKEN_CHARS:exports.CONNECTION_TOKEN_CHARS,QUOTED_STRING:exports.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:exports.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:exports.MAJOR,MINOR:exports.MINOR,SPECIAL_HEADERS:exports.SPECIAL_HEADERS,METHODS_HTTP:exports.METHODS_HTTP,METHODS_ICE:exports.METHODS_ICE,METHODS_RTSP:exports.METHODS_RTSP,METHOD_MAP:exports.METHOD_MAP,H_METHOD_MAP:exports.H_METHOD_MAP,STATUSES_HTTP:exports.STATUSES_HTTP}}});var require_llhttp_wasm=__commonJS({"node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),wasmBase64="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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C0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAg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ogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",wasmBuffer;Object.defineProperty(module,"exports",{get:()=>wasmBuffer||(wasmBuffer=Buffer2.from(wasmBase64,"base64"))})}});var require_llhttp_simd_wasm=__commonJS({"node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),wasmBase64="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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DAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkB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CyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANA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BTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",wasmBuffer;Object.defineProperty(module,"exports",{get:()=>wasmBuffer||(wasmBuffer=Buffer2.from(wasmBase64,"base64"))})}});var require_constants3=__commonJS({"node_modules/undici/lib/web/fetch/constants.js"(exports,module){"use strict";var corsSafeListedMethods=["GET","HEAD","POST"],corsSafeListedMethodsSet=new Set(corsSafeListedMethods),nullBodyStatus=[101,204,205,304],redirectStatus=[301,302,303,307,308],redirectStatusSet=new Set(redirectStatus),badPorts=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],badPortsSet=new Set(badPorts),referrerPolicyTokens=["no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],referrerPolicy=["",...referrerPolicyTokens],referrerPolicyTokensSet=new Set(referrerPolicyTokens),requestRedirect=["follow","manual","error"],safeMethods=["GET","HEAD","OPTIONS","TRACE","QUERY"],safeMethodsSet=new Set(safeMethods),requestMode=["navigate","same-origin","no-cors","cors"],requestCredentials=["omit","same-origin","include"],requestCache=["default","no-store","reload","no-cache","force-cache","only-if-cached"],requestBodyHeader=["content-encoding","content-language","content-location","content-type","content-length"],requestDuplex=["half"],forbiddenMethods=["CONNECT","TRACE","TRACK"],forbiddenMethodsSet=new Set(forbiddenMethods),subresource=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],subresourceSet=new Set(subresource);module.exports={subresource,forbiddenMethods,requestBodyHeader,referrerPolicy,requestRedirect,requestMode,requestCredentials,requestCache,redirectStatus,corsSafeListedMethods,nullBodyStatus,safeMethods,badPorts,requestDuplex,subresourceSet,badPortsSet,redirectStatusSet,corsSafeListedMethodsSet,safeMethodsSet,forbiddenMethodsSet,referrerPolicyTokens:referrerPolicyTokensSet}}});var require_global=__commonJS({"node_modules/undici/lib/web/fetch/global.js"(exports,module){"use strict";var globalOrigin=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[globalOrigin]}function setGlobalOrigin(newOrigin){if(newOrigin===void 0){Object.defineProperty(globalThis,globalOrigin,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let parsedURL=new URL(newOrigin);if(parsedURL.protocol!=="http:"&&parsedURL.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`);Object.defineProperty(globalThis,globalOrigin,{value:parsedURL,writable:!0,enumerable:!1,configurable:!1})}module.exports={getGlobalOrigin,setGlobalOrigin}}});var require_encoding=__commonJS({"node_modules/undici/lib/encoding/index.js"(exports,module){"use strict";var textDecoder=new TextDecoder;function utf8DecodeBytes(buffer){return buffer.length===0?"":(buffer[0]===239&&buffer[1]===187&&buffer[2]===191&&(buffer=buffer.subarray(3)),textDecoder.decode(buffer))}module.exports={utf8DecodeBytes}}});var require_infra=__commonJS({"node_modules/undici/lib/web/infra/index.js"(exports,module){"use strict";var assert=__require("node:assert"),{utf8DecodeBytes}=require_encoding();function collectASequenceOfCodePoints(condition,input,position){let result="";for(;position.position<input.length&&condition(input[position.position]);)result+=input[position.position],position.position++;return result}function collectASequenceOfCodePointsFast(char,input,position){let idx=input.indexOf(char,position.position),start=position.position;return idx===-1?(position.position=input.length,input.slice(start)):(position.position=idx,input.slice(start,position.position))}var ASCII_WHITESPACE_REPLACE_REGEX=/[\u0009\u000A\u000C\u000D\u0020]/g;function forgivingBase64(data){data=data.replace(ASCII_WHITESPACE_REPLACE_REGEX,"");let dataLength=data.length;if(dataLength%4===0&&data.charCodeAt(dataLength-1)===61&&(--dataLength,data.charCodeAt(dataLength-1)===61&&--dataLength),dataLength%4===1||/[^+/0-9A-Za-z]/.test(data.length===dataLength?data:data.substring(0,dataLength)))return"failure";let buffer=Buffer.from(data,"base64");return new Uint8Array(buffer.buffer,buffer.byteOffset,buffer.byteLength)}function isASCIIWhitespace(char){return char===9||char===10||char===12||char===13||char===32}function isomorphicDecode(input){let length=input.length;if(65535>length)return String.fromCharCode.apply(null,input);let result="",i=0,addition=65535;for(;i<length;)i+addition>length&&(addition=length-i),result+=String.fromCharCode.apply(null,input.subarray(i,i+=addition));return result}var invalidIsomorphicEncodeValueRegex=/[^\x00-\xFF]/;function isomorphicEncode(input){return assert(!invalidIsomorphicEncodeValueRegex.test(input)),input}function parseJSONFromBytes(bytes){return JSON.parse(utf8DecodeBytes(bytes))}function removeASCIIWhitespace(str2,leading=!0,trailing=!0){return removeChars(str2,leading,trailing,isASCIIWhitespace)}function removeChars(str2,leading,trailing,predicate){let lead=0,trail=str2.length-1;if(leading)for(;lead<str2.length&&predicate(str2.charCodeAt(lead));)lead++;if(trailing)for(;trail>0&&predicate(str2.charCodeAt(trail));)trail--;return lead===0&&trail===str2.length-1?str2:str2.slice(lead,trail+1)}function serializeJavascriptValueToJSONString(value){let result=JSON.stringify(value);if(result===void 0)throw new TypeError("Value is not JSON serializable");return assert(typeof result=="string"),result}module.exports={collectASequenceOfCodePoints,collectASequenceOfCodePointsFast,forgivingBase64,isASCIIWhitespace,isomorphicDecode,isomorphicEncode,parseJSONFromBytes,removeASCIIWhitespace,removeChars,serializeJavascriptValueToJSONString}}});var require_data_url=__commonJS({"node_modules/undici/lib/web/fetch/data-url.js"(exports,module){"use strict";var assert=__require("node:assert"),{forgivingBase64,collectASequenceOfCodePoints,collectASequenceOfCodePointsFast,isomorphicDecode,removeASCIIWhitespace,removeChars}=require_infra(),encoder=new TextEncoder,HTTP_TOKEN_CODEPOINTS=/^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u,HTTP_WHITESPACE_REGEX=/[\u000A\u000D\u0009\u0020]/u,HTTP_QUOTED_STRING_TOKENS=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function dataURLProcessor(dataURL){assert(dataURL.protocol==="data:");let input=URLSerializer(dataURL,!0);input=input.slice(5);let position={position:0},mimeType=collectASequenceOfCodePointsFast(",",input,position),mimeTypeLength=mimeType.length;if(mimeType=removeASCIIWhitespace(mimeType,!0,!0),position.position>=input.length)return"failure";position.position++;let encodedBody=input.slice(mimeTypeLength+1),body=stringPercentDecode(encodedBody);if(/;(?:\u0020*)base64$/ui.test(mimeType)){let stringBody=isomorphicDecode(body);if(body=forgivingBase64(stringBody),body==="failure")return"failure";mimeType=mimeType.slice(0,-6),mimeType=mimeType.replace(/(\u0020+)$/u,""),mimeType=mimeType.slice(0,-1)}mimeType.startsWith(";")&&(mimeType="text/plain"+mimeType);let mimeTypeRecord=parseMIMEType(mimeType);return mimeTypeRecord==="failure"&&(mimeTypeRecord=parseMIMEType("text/plain;charset=US-ASCII")),{mimeType:mimeTypeRecord,body}}function URLSerializer(url,excludeFragment=!1){if(!excludeFragment)return url.href;let href=url.href,hashLength=url.hash.length,serialized=hashLength===0?href:href.substring(0,href.length-hashLength);return!hashLength&&href.endsWith("#")?serialized.slice(0,-1):serialized}function stringPercentDecode(input){let bytes=encoder.encode(input);return percentDecode(bytes)}function isHexCharByte(byte){return byte>=48&&byte<=57||byte>=65&&byte<=70||byte>=97&&byte<=102}function hexByteToNumber(byte){return byte>=48&&byte<=57?byte-48:(byte&223)-55}function percentDecode(input){let length=input.length,output=new Uint8Array(length),j=0,i=0;for(;i<length;){let byte=input[i];byte!==37?output[j++]=byte:byte===37&&!(isHexCharByte(input[i+1])&&isHexCharByte(input[i+2]))?output[j++]=37:(output[j++]=hexByteToNumber(input[i+1])<<4|hexByteToNumber(input[i+2]),i+=2),++i}return length===j?output:output.subarray(0,j)}function parseMIMEType(input){input=removeHTTPWhitespace(input,!0,!0);let position={position:0},type=collectASequenceOfCodePointsFast("/",input,position);if(type.length===0||!HTTP_TOKEN_CODEPOINTS.test(type)||position.position>=input.length)return"failure";position.position++;let subtype=collectASequenceOfCodePointsFast(";",input,position);if(subtype=removeHTTPWhitespace(subtype,!1,!0),subtype.length===0||!HTTP_TOKEN_CODEPOINTS.test(subtype))return"failure";let typeLowercase=type.toLowerCase(),subtypeLowercase=subtype.toLowerCase(),mimeType={type:typeLowercase,subtype:subtypeLowercase,parameters:new Map,essence:`${typeLowercase}/${subtypeLowercase}`};for(;position.position<input.length;){position.position++,collectASequenceOfCodePoints(char=>HTTP_WHITESPACE_REGEX.test(char),input,position);let parameterName=collectASequenceOfCodePoints(char=>char!==";"&&char!=="=",input,position);if(parameterName=parameterName.toLowerCase(),position.position<input.length){if(input[position.position]===";")continue;position.position++}if(position.position>=input.length)break;let parameterValue=null;if(input[position.position]==='"')parameterValue=collectAnHTTPQuotedString(input,position,!0),collectASequenceOfCodePointsFast(";",input,position);else if(parameterValue=collectASequenceOfCodePointsFast(";",input,position),parameterValue=removeHTTPWhitespace(parameterValue,!1,!0),parameterValue.length===0)continue;parameterName.length!==0&&HTTP_TOKEN_CODEPOINTS.test(parameterName)&&(parameterValue.length===0||HTTP_QUOTED_STRING_TOKENS.test(parameterValue))&&!mimeType.parameters.has(parameterName)&&mimeType.parameters.set(parameterName,parameterValue)}return mimeType}function collectAnHTTPQuotedString(input,position,extractValue=!1){let positionStart=position.position,value="";for(assert(input[position.position]==='"'),position.position++;value+=collectASequenceOfCodePoints(char=>char!=='"'&&char!=="\\",input,position),!(position.position>=input.length);){let quoteOrBackslash=input[position.position];if(position.position++,quoteOrBackslash==="\\"){if(position.position>=input.length){value+="\\";break}value+=input[position.position],position.position++}else{assert(quoteOrBackslash==='"');break}}return extractValue?value:input.slice(positionStart,position.position)}function serializeAMimeType(mimeType){assert(mimeType!=="failure");let{parameters,essence}=mimeType,serialization=essence;for(let[name,value]of parameters.entries())serialization+=";",serialization+=name,serialization+="=",HTTP_TOKEN_CODEPOINTS.test(value)||(value=value.replace(/[\\"]/ug,"\\$&"),value='"'+value,value+='"'),serialization+=value;return serialization}function isHTTPWhiteSpace(char){return char===13||char===10||char===9||char===32}function removeHTTPWhitespace(str2,leading=!0,trailing=!0){return removeChars(str2,leading,trailing,isHTTPWhiteSpace)}function minimizeSupportedMimeType(mimeType){switch(mimeType.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return mimeType.subtype.endsWith("+json")?"application/json":mimeType.subtype.endsWith("+xml")?"application/xml":""}module.exports={dataURLProcessor,URLSerializer,stringPercentDecode,parseMIMEType,collectAnHTTPQuotedString,serializeAMimeType,removeHTTPWhitespace,minimizeSupportedMimeType,HTTP_TOKEN_CODEPOINTS}}});var require_webidl=__commonJS({"node_modules/undici/lib/web/webidl/index.js"(exports,module){"use strict";var assert=__require("node:assert"),{types,inspect}=__require("node:util"),{markAsUncloneable}=__require("node:worker_threads"),UNDEFINED=1,BOOLEAN=2,STRING=3,SYMBOL=4,NUMBER=5,BIGINT=6,NULL=7,OBJECT=8,FunctionPrototypeSymbolHasInstance=Function.call.bind(Function.prototype[Symbol.hasInstance]),webidl={converters:{},util:{},errors:{},is:{}};webidl.errors.exception=function(message){return new TypeError(`${message.header}: ${message.message}`)};webidl.errors.conversionFailed=function(opts){let plural=opts.types.length===1?"":" one of",message=`${opts.argument} could not be converted to${plural}: ${opts.types.join(", ")}.`;return webidl.errors.exception({header:opts.prefix,message})};webidl.errors.invalidArgument=function(context){return webidl.errors.exception({header:context.prefix,message:`"${context.value}" is an invalid ${context.type}.`})};webidl.brandCheck=function(V,I){if(!FunctionPrototypeSymbolHasInstance(I,V)){let err=new TypeError("Illegal invocation");throw err.code="ERR_INVALID_THIS",err}};webidl.brandCheckMultiple=function(List){let prototypes=List.map(c=>webidl.util.MakeTypeAssertion(c));return V=>{if(prototypes.every(typeCheck=>!typeCheck(V))){let err=new TypeError("Illegal invocation");throw err.code="ERR_INVALID_THIS",err}}};webidl.argumentLengthCheck=function({length},min,ctx){if(length<min)throw webidl.errors.exception({message:`${min} argument${min!==1?"s":""} required, but${length?" only":""} ${length} found.`,header:ctx})};webidl.illegalConstructor=function(){throw webidl.errors.exception({header:"TypeError",message:"Illegal constructor"})};webidl.util.MakeTypeAssertion=function(I){return O=>FunctionPrototypeSymbolHasInstance(I,O)};webidl.util.Type=function(V){switch(typeof V){case"undefined":return UNDEFINED;case"boolean":return BOOLEAN;case"string":return STRING;case"symbol":return SYMBOL;case"number":return NUMBER;case"bigint":return BIGINT;case"function":case"object":return V===null?NULL:OBJECT}};webidl.util.Types={UNDEFINED,BOOLEAN,STRING,SYMBOL,NUMBER,BIGINT,NULL,OBJECT};webidl.util.TypeValueToString=function(o){switch(webidl.util.Type(o)){case UNDEFINED:return"Undefined";case BOOLEAN:return"Boolean";case STRING:return"String";case SYMBOL:return"Symbol";case NUMBER:return"Number";case BIGINT:return"BigInt";case NULL:return"Null";case OBJECT:return"Object"}};webidl.util.markAsUncloneable=markAsUncloneable;webidl.util.ConvertToInt=function(V,bitLength,signedness,flags){let upperBound,lowerBound;bitLength===64?(upperBound=Math.pow(2,53)-1,signedness==="unsigned"?lowerBound=0:lowerBound=Math.pow(-2,53)+1):signedness==="unsigned"?(lowerBound=0,upperBound=Math.pow(2,bitLength)-1):(lowerBound=-Math.pow(2,bitLength-1),upperBound=Math.pow(2,bitLength-1)-1);let x=Number(V);if(x===0&&(x=0),webidl.util.HasFlag(flags,webidl.attributes.EnforceRange)){if(Number.isNaN(x)||x===Number.POSITIVE_INFINITY||x===Number.NEGATIVE_INFINITY)throw webidl.errors.exception({header:"Integer conversion",message:`Could not convert ${webidl.util.Stringify(V)} to an integer.`});if(x=webidl.util.IntegerPart(x),x<lowerBound||x>upperBound)throw webidl.errors.exception({header:"Integer conversion",message:`Value must be between ${lowerBound}-${upperBound}, got ${x}.`});return x}return!Number.isNaN(x)&&webidl.util.HasFlag(flags,webidl.attributes.Clamp)?(x=Math.min(Math.max(x,lowerBound),upperBound),Math.floor(x)%2===0?x=Math.floor(x):x=Math.ceil(x),x):Number.isNaN(x)||x===0&&Object.is(0,x)||x===Number.POSITIVE_INFINITY||x===Number.NEGATIVE_INFINITY?0:(x=webidl.util.IntegerPart(x),x=x%Math.pow(2,bitLength),signedness==="signed"&&x>=Math.pow(2,bitLength-1)?x-Math.pow(2,bitLength):x)};webidl.util.IntegerPart=function(n){let r=Math.floor(Math.abs(n));return n<0?-1*r:r};webidl.util.Stringify=function(V){switch(webidl.util.Type(V)){case SYMBOL:return`Symbol(${V.description})`;case OBJECT:return inspect(V);case STRING:return`"${V}"`;case BIGINT:return`${V}n`;default:return`${V}`}};webidl.util.IsResizableArrayBuffer=function(V){if(types.isArrayBuffer(V))return V.resizable;if(types.isSharedArrayBuffer(V))return V.growable;throw webidl.errors.exception({header:"IsResizableArrayBuffer",message:`"${webidl.util.Stringify(V)}" is not an array buffer.`})};webidl.util.HasFlag=function(flags,attributes){return typeof flags=="number"&&(flags&attributes)===attributes};webidl.sequenceConverter=function(converter){return(V,prefix,argument,Iterable)=>{if(webidl.util.Type(V)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`${argument} (${webidl.util.Stringify(V)}) is not iterable.`});let method=typeof Iterable=="function"?Iterable():V?.[Symbol.iterator]?.(),seq=[],index3=0;if(method===void 0||typeof method.next!="function")throw webidl.errors.exception({header:prefix,message:`${argument} is not iterable.`});for(;;){let{done,value}=method.next();if(done)break;seq.push(converter(value,prefix,`${argument}[${index3++}]`))}return seq}};webidl.recordConverter=function(keyConverter,valueConverter){return(O,prefix,argument)=>{if(webidl.util.Type(O)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`${argument} ("${webidl.util.TypeValueToString(O)}") is not an Object.`});let result={};if(!types.isProxy(O)){let keys2=[...Object.getOwnPropertyNames(O),...Object.getOwnPropertySymbols(O)];for(let key of keys2){let keyName=webidl.util.Stringify(key),typedKey=keyConverter(key,prefix,`Key ${keyName} in ${argument}`),typedValue=valueConverter(O[key],prefix,`${argument}[${keyName}]`);result[typedKey]=typedValue}return result}let keys=Reflect.ownKeys(O);for(let key of keys)if(Reflect.getOwnPropertyDescriptor(O,key)?.enumerable){let typedKey=keyConverter(key,prefix,argument),typedValue=valueConverter(O[key],prefix,argument);result[typedKey]=typedValue}return result}};webidl.interfaceConverter=function(TypeCheck,name){return(V,prefix,argument)=>{if(!TypeCheck(V))throw webidl.errors.exception({header:prefix,message:`Expected ${argument} ("${webidl.util.Stringify(V)}") to be an instance of ${name}.`});return V}};webidl.dictionaryConverter=function(converters){return converters.sort((a,b)=>(a.key>b.key)-(a.key<b.key)),(dictionary,prefix,argument)=>{let dict={};if(dictionary!=null&&webidl.util.Type(dictionary)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`Expected ${dictionary} to be one of: Null, Undefined, Object.`});for(let options of converters){let{key,defaultValue,required,converter}=options;if(required===!0&&(dictionary==null||!Object.hasOwn(dictionary,key)))throw webidl.errors.exception({header:prefix,message:`Missing required key "${key}".`});let value=dictionary?.[key],hasDefault=defaultValue!==void 0;if(hasDefault&&value===void 0&&(value=defaultValue()),required||hasDefault||value!==void 0){if(value=converter(value,prefix,`${argument}.${key}`),options.allowedValues&&!options.allowedValues.includes(value))throw webidl.errors.exception({header:prefix,message:`${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.`});dict[key]=value}}return dict}};webidl.nullableConverter=function(converter){return(V,prefix,argument)=>V===null?V:converter(V,prefix,argument)};webidl.is.USVString=function(value){return typeof value=="string"&&value.isWellFormed()};webidl.is.ReadableStream=webidl.util.MakeTypeAssertion(ReadableStream);webidl.is.Blob=webidl.util.MakeTypeAssertion(Blob);webidl.is.URLSearchParams=webidl.util.MakeTypeAssertion(URLSearchParams);webidl.is.File=webidl.util.MakeTypeAssertion(File);webidl.is.URL=webidl.util.MakeTypeAssertion(URL);webidl.is.AbortSignal=webidl.util.MakeTypeAssertion(AbortSignal);webidl.is.MessagePort=webidl.util.MakeTypeAssertion(MessagePort);webidl.is.BufferSource=function(V){return types.isArrayBuffer(V)||ArrayBuffer.isView(V)&&types.isArrayBuffer(V.buffer)};webidl.util.getCopyOfBytesHeldByBufferSource=function(bufferSource){let jsBufferSource=bufferSource,jsArrayBuffer=jsBufferSource,offset=0,length=0;if(types.isTypedArray(jsBufferSource)||types.isDataView(jsBufferSource)?(jsArrayBuffer=jsBufferSource.buffer,offset=jsBufferSource.byteOffset,length=jsBufferSource.byteLength):(assert(types.isAnyArrayBuffer(jsBufferSource)),length=jsBufferSource.byteLength),jsArrayBuffer.detached)return new Uint8Array(0);let bytes=new Uint8Array(length),view=new Uint8Array(jsArrayBuffer,offset,length);return bytes.set(view),bytes};webidl.converters.DOMString=function(V,prefix,argument,flags){if(V===null&&webidl.util.HasFlag(flags,webidl.attributes.LegacyNullToEmptyString))return"";if(typeof V=="symbol")throw webidl.errors.exception({header:prefix,message:`${argument} is a symbol, which cannot be converted to a DOMString.`});return String(V)};webidl.converters.ByteString=function(V,prefix,argument){if(typeof V=="symbol")throw webidl.errors.exception({header:prefix,message:`${argument} is a symbol, which cannot be converted to a ByteString.`});let x=String(V);for(let index3=0;index3<x.length;index3++)if(x.charCodeAt(index3)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${index3} has a value of ${x.charCodeAt(index3)} which is greater than 255.`);return x};webidl.converters.USVString=function(value){return typeof value=="string"?value.toWellFormed():`${value}`.toWellFormed()};webidl.converters.boolean=function(V){return!!V};webidl.converters.any=function(V){return V};webidl.converters["long long"]=function(V,prefix,argument){return webidl.util.ConvertToInt(V,64,"signed",0,prefix,argument)};webidl.converters["unsigned long long"]=function(V,prefix,argument){return webidl.util.ConvertToInt(V,64,"unsigned",0,prefix,argument)};webidl.converters["unsigned long"]=function(V,prefix,argument){return webidl.util.ConvertToInt(V,32,"unsigned",0,prefix,argument)};webidl.converters["unsigned short"]=function(V,prefix,argument,flags){return webidl.util.ConvertToInt(V,16,"unsigned",flags,prefix,argument)};webidl.converters.ArrayBuffer=function(V,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isArrayBuffer(V))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["ArrayBuffer"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a resizable ArrayBuffer.`});return V};webidl.converters.SharedArrayBuffer=function(V,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isSharedArrayBuffer(V))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["SharedArrayBuffer"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a resizable SharedArrayBuffer.`});return V};webidl.converters.TypedArray=function(V,T,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isTypedArray(V)||V.constructor.name!==T.name)throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:[T.name]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V};webidl.converters.DataView=function(V,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isDataView(V))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["DataView"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V};webidl.converters.ArrayBufferView=function(V,prefix,argument,flags){if(webidl.util.Type(V)!==OBJECT||!types.isArrayBufferView(V))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["ArrayBufferView"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V};webidl.converters.BufferSource=function(V,prefix,argument,flags){if(types.isArrayBuffer(V))return webidl.converters.ArrayBuffer(V,prefix,argument,flags);if(types.isArrayBufferView(V))return flags&=~webidl.attributes.AllowShared,webidl.converters.ArrayBufferView(V,prefix,argument,flags);throw types.isSharedArrayBuffer(V)?webidl.errors.exception({header:prefix,message:`${argument} cannot be a SharedArrayBuffer.`}):webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["ArrayBuffer","ArrayBufferView"]})};webidl.converters.AllowSharedBufferSource=function(V,prefix,argument,flags){if(types.isArrayBuffer(V))return webidl.converters.ArrayBuffer(V,prefix,argument,flags);if(types.isSharedArrayBuffer(V))return webidl.converters.SharedArrayBuffer(V,prefix,argument,flags);if(types.isArrayBufferView(V))return flags|=webidl.attributes.AllowShared,webidl.converters.ArrayBufferView(V,prefix,argument,flags);throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V)}")`,types:["ArrayBuffer","SharedArrayBuffer","ArrayBufferView"]})};webidl.converters["sequence<ByteString>"]=webidl.sequenceConverter(webidl.converters.ByteString);webidl.converters["sequence<sequence<ByteString>>"]=webidl.sequenceConverter(webidl.converters["sequence<ByteString>"]);webidl.converters["record<ByteString, ByteString>"]=webidl.recordConverter(webidl.converters.ByteString,webidl.converters.ByteString);webidl.converters.Blob=webidl.interfaceConverter(webidl.is.Blob,"Blob");webidl.converters.AbortSignal=webidl.interfaceConverter(webidl.is.AbortSignal,"AbortSignal");webidl.converters.EventHandlerNonNull=function(V){return webidl.util.Type(V)!==OBJECT?null:typeof V=="function"?V:()=>{}};webidl.attributes={Clamp:1,EnforceRange:2,AllowShared:4,AllowResizable:8,LegacyNullToEmptyString:16};module.exports={webidl}}});var require_util2=__commonJS({"node_modules/undici/lib/web/fetch/util.js"(exports,module){"use strict";var{Transform}=__require("node:stream"),zlib=__require("node:zlib"),{redirectStatusSet,referrerPolicyTokens,badPortsSet}=require_constants3(),{getGlobalOrigin}=require_global(),{collectAnHTTPQuotedString,parseMIMEType}=require_data_url(),{performance:performance2}=__require("node:perf_hooks"),{ReadableStreamFrom,isValidHTTPToken,normalizedMethodRecordsBase}=require_util(),assert=__require("node:assert"),{isUint8Array}=__require("node:util/types"),{webidl}=require_webidl(),{isomorphicEncode,collectASequenceOfCodePoints,removeChars}=require_infra();function responseURL(response){let urlList=response.urlList,length=urlList.length;return length===0?null:urlList[length-1].toString()}function responseLocationURL(response,requestFragment){if(!redirectStatusSet.has(response.status))return null;let location=response.headersList.get("location",!0);return location!==null&&isValidHeaderValue(location)&&(isValidEncodedURL(location)||(location=normalizeBinaryStringToUtf8(location)),location=new URL(location,responseURL(response))),location&&!location.hash&&(location.hash=requestFragment),location}function isValidEncodedURL(url){for(let i=0;i<url.length;++i){let code=url.charCodeAt(i);if(code>126||code<32)return!1}return!0}function normalizeBinaryStringToUtf8(value){return Buffer.from(value,"binary").toString("utf8")}function requestCurrentURL(request){return request.urlList[request.urlList.length-1]}function requestBadPort(request){let url=requestCurrentURL(request);return urlIsHttpHttpsScheme(url)&&badPortsSet.has(url.port)?"blocked":"allowed"}function isErrorLike(object){return object instanceof Error||object?.constructor?.name==="Error"||object?.constructor?.name==="DOMException"}function isValidReasonPhrase(statusText){for(let i=0;i<statusText.length;++i){let c=statusText.charCodeAt(i);if(!(c===9||c>=32&&c<=126||c>=128&&c<=255))return!1}return!0}var isValidHeaderName=isValidHTTPToken;function isValidHeaderValue(potentialValue){return(potentialValue[0]===" "||potentialValue[0]===" "||potentialValue[potentialValue.length-1]===" "||potentialValue[potentialValue.length-1]===" "||potentialValue.includes(`
|
|
3
|
+
`)||potentialValue.includes("\r")||potentialValue.includes("\0"))===!1}function parseReferrerPolicy(actualResponse){let policyHeader=(actualResponse.headersList.get("referrer-policy",!0)??"").split(","),policy="";if(policyHeader.length)for(let i=policyHeader.length;i!==0;i--){let token=policyHeader[i-1].trim();if(referrerPolicyTokens.has(token)){policy=token;break}}return policy}function setRequestReferrerPolicyOnRedirect(request,actualResponse){let policy=parseReferrerPolicy(actualResponse);policy!==""&&(request.referrerPolicy=policy)}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(httpRequest){if(!isURLPotentiallyTrustworthy(requestCurrentURL(httpRequest)))return;let header=null;header=httpRequest.mode,httpRequest.headersList.set("sec-fetch-mode",header,!0)}function appendRequestOriginHeader(request){let serializedOrigin=request.origin;if(!(serializedOrigin==="client"||serializedOrigin===void 0)){if(request.responseTainting==="cors"||request.mode==="websocket")request.headersList.append("origin",serializedOrigin,!0);else if(request.method!=="GET"&&request.method!=="HEAD"){switch(request.referrerPolicy){case"no-referrer":serializedOrigin=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":request.origin&&urlHasHttpsScheme(request.origin)&&!urlHasHttpsScheme(requestCurrentURL(request))&&(serializedOrigin=null);break;case"same-origin":sameOrigin(request,requestCurrentURL(request))||(serializedOrigin=null);break;default:}request.headersList.append("origin",serializedOrigin,!0)}}}function coarsenTime(timestamp,crossOriginIsolatedCapability){return timestamp}function clampAndCoarsenConnectionTimingInfo(connectionTimingInfo,defaultStartTime,crossOriginIsolatedCapability){return!connectionTimingInfo?.startTime||connectionTimingInfo.startTime<defaultStartTime?{domainLookupStartTime:defaultStartTime,domainLookupEndTime:defaultStartTime,connectionStartTime:defaultStartTime,connectionEndTime:defaultStartTime,secureConnectionStartTime:defaultStartTime,ALPNNegotiatedProtocol:connectionTimingInfo?.ALPNNegotiatedProtocol}:{domainLookupStartTime:coarsenTime(connectionTimingInfo.domainLookupStartTime,crossOriginIsolatedCapability),domainLookupEndTime:coarsenTime(connectionTimingInfo.domainLookupEndTime,crossOriginIsolatedCapability),connectionStartTime:coarsenTime(connectionTimingInfo.connectionStartTime,crossOriginIsolatedCapability),connectionEndTime:coarsenTime(connectionTimingInfo.connectionEndTime,crossOriginIsolatedCapability),secureConnectionStartTime:coarsenTime(connectionTimingInfo.secureConnectionStartTime,crossOriginIsolatedCapability),ALPNNegotiatedProtocol:connectionTimingInfo.ALPNNegotiatedProtocol}}function coarsenedSharedCurrentTime(crossOriginIsolatedCapability){return coarsenTime(performance2.now(),crossOriginIsolatedCapability)}function createOpaqueTimingInfo(timingInfo){return{startTime:timingInfo.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:timingInfo.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function makePolicyContainer(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function clonePolicyContainer(policyContainer){return{referrerPolicy:policyContainer.referrerPolicy}}function determineRequestsReferrer(request){let policy=request.referrerPolicy;assert(policy);let referrerSource=null;if(request.referrer==="client"){let globalOrigin=getGlobalOrigin();if(!globalOrigin||globalOrigin.origin==="null")return"no-referrer";referrerSource=new URL(globalOrigin)}else webidl.is.URL(request.referrer)&&(referrerSource=request.referrer);let referrerURL=stripURLForReferrer(referrerSource),referrerOrigin=stripURLForReferrer(referrerSource,!0);switch(referrerURL.toString().length>4096&&(referrerURL=referrerOrigin),policy){case"no-referrer":return"no-referrer";case"origin":return referrerOrigin??stripURLForReferrer(referrerSource,!0);case"unsafe-url":return referrerURL;case"strict-origin":{let currentURL=requestCurrentURL(request);return isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin}case"strict-origin-when-cross-origin":{let currentURL=requestCurrentURL(request);return sameOrigin(referrerURL,currentURL)?referrerURL:isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin}case"same-origin":return sameOrigin(request,referrerURL)?referrerURL:"no-referrer";case"origin-when-cross-origin":return sameOrigin(request,referrerURL)?referrerURL:referrerOrigin;case"no-referrer-when-downgrade":{let currentURL=requestCurrentURL(request);return isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)?"no-referrer":referrerURL}}}function stripURLForReferrer(url,originOnly=!1){return assert(webidl.is.URL(url)),url=new URL(url),urlIsLocal(url)?"no-referrer":(url.username="",url.password="",url.hash="",originOnly===!0&&(url.pathname="",url.search=""),url)}var isPotentialleTrustworthyIPv4=RegExp.prototype.test.bind(/^127\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/),isPotentiallyTrustworthyIPv6=RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);function isOriginIPPotentiallyTrustworthy(origin){return origin.includes(":")?(origin[0]==="["&&origin[origin.length-1]==="]"&&(origin=origin.slice(1,-1)),isPotentiallyTrustworthyIPv6(origin)):isPotentialleTrustworthyIPv4(origin)}function isOriginPotentiallyTrustworthy(origin){return origin==null||origin==="null"?!1:(origin=new URL(origin),!!(origin.protocol==="https:"||origin.protocol==="wss:"||isOriginIPPotentiallyTrustworthy(origin.hostname)||origin.hostname==="localhost"||origin.hostname==="localhost."||origin.hostname.endsWith(".localhost")||origin.hostname.endsWith(".localhost.")||origin.protocol==="file:"))}function isURLPotentiallyTrustworthy(url){return webidl.is.URL(url)?url.href==="about:blank"||url.href==="about:srcdoc"||url.protocol==="data:"||url.protocol==="blob:"?!0:isOriginPotentiallyTrustworthy(url.origin):!1}function tryUpgradeRequestToAPotentiallyTrustworthyURL(request){}function sameOrigin(A,B){return A.origin===B.origin&&A.origin==="null"||A.protocol===B.protocol&&A.hostname===B.hostname&&A.port===B.port}function isAborted(fetchParams){return fetchParams.controller.state==="aborted"}function isCancelled(fetchParams){return fetchParams.controller.state==="aborted"||fetchParams.controller.state==="terminated"}function normalizeMethod(method){return normalizedMethodRecordsBase[method.toLowerCase()]??method}var esIteratorPrototype=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function createIterator(name,kInternalIterator,keyIndex=0,valueIndex=1){class FastIterableIterator{#target;#kind;#index;constructor(target,kind){this.#target=target,this.#kind=kind,this.#index=0}next(){if(typeof this!="object"||this===null||!(#target in this))throw new TypeError(`'next' called on an object that does not implement interface ${name} Iterator.`);let index3=this.#index,values=kInternalIterator(this.#target),len=values.length;if(index3>=len)return{value:void 0,done:!0};let{[keyIndex]:key,[valueIndex]:value}=values[index3];this.#index=index3+1;let result;switch(this.#kind){case"key":result=key;break;case"value":result=value;break;case"key+value":result=[key,value];break}return{value:result,done:!1}}}return delete FastIterableIterator.prototype.constructor,Object.setPrototypeOf(FastIterableIterator.prototype,esIteratorPrototype),Object.defineProperties(FastIterableIterator.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${name} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(target,kind){return new FastIterableIterator(target,kind)}}function iteratorMixin(name,object,kInternalIterator,keyIndex=0,valueIndex=1){let makeIterator=createIterator(name,kInternalIterator,keyIndex,valueIndex),properties={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return webidl.brandCheck(this,object),makeIterator(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return webidl.brandCheck(this,object),makeIterator(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return webidl.brandCheck(this,object),makeIterator(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(callbackfn,thisArg=globalThis){if(webidl.brandCheck(this,object),webidl.argumentLengthCheck(arguments,1,`${name}.forEach`),typeof callbackfn!="function")throw new TypeError(`Failed to execute 'forEach' on '${name}': parameter 1 is not of type 'Function'.`);for(let{0:key,1:value}of makeIterator(this,"key+value"))callbackfn.call(thisArg,value,key,this)}}};return Object.defineProperties(object.prototype,{...properties,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:properties.entries.value}})}function fullyReadBody(body,processBody,processBodyError){let successSteps=processBody,errorSteps=processBodyError;try{let reader=body.stream.getReader();readAllBytes(reader,successSteps,errorSteps)}catch(e){errorSteps(e)}}function readableStreamClose(controller){try{controller.close(),controller.byobRequest?.respond(0)}catch(err){if(!err.message.includes("Controller is already closed")&&!err.message.includes("ReadableStream is already closed"))throw err}}async function readAllBytes(reader,successSteps,failureSteps){try{let bytes=[],byteLength=0;do{let{done,value:chunk}=await reader.read();if(done){successSteps(Buffer.concat(bytes,byteLength));return}if(!isUint8Array(chunk)){failureSteps(new TypeError("Received non-Uint8Array chunk"));return}bytes.push(chunk),byteLength+=chunk.length}while(!0)}catch(e){failureSteps(e)}}function urlIsLocal(url){assert("protocol"in url);let protocol=url.protocol;return protocol==="about:"||protocol==="blob:"||protocol==="data:"}function urlHasHttpsScheme(url){return typeof url=="string"&&url[5]===":"&&url[0]==="h"&&url[1]==="t"&&url[2]==="t"&&url[3]==="p"&&url[4]==="s"||url.protocol==="https:"}function urlIsHttpHttpsScheme(url){assert("protocol"in url);let protocol=url.protocol;return protocol==="http:"||protocol==="https:"}function simpleRangeHeaderValue(value,allowWhitespace){let data=value;if(!data.startsWith("bytes"))return"failure";let position={position:5};if(allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position),data.charCodeAt(position.position)!==61)return"failure";position.position++,allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position);let rangeStart=collectASequenceOfCodePoints(char=>{let code=char.charCodeAt(0);return code>=48&&code<=57},data,position),rangeStartValue=rangeStart.length?Number(rangeStart):null;if(allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position),data.charCodeAt(position.position)!==45)return"failure";position.position++,allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position);let rangeEnd=collectASequenceOfCodePoints(char=>{let code=char.charCodeAt(0);return code>=48&&code<=57},data,position),rangeEndValue=rangeEnd.length?Number(rangeEnd):null;return position.position<data.length||rangeEndValue===null&&rangeStartValue===null||rangeStartValue!==null&&rangeEndValue!==null&&rangeStartValue>rangeEndValue?"failure":{rangeStartValue,rangeEndValue}}function buildContentRange(rangeStart,rangeEnd,fullLength){let contentRange="bytes ";return contentRange+=isomorphicEncode(`${rangeStart}`),contentRange+="-",contentRange+=isomorphicEncode(`${rangeEnd}`),contentRange+="/",contentRange+=isomorphicEncode(`${fullLength}`),contentRange}var InflateStream=class extends Transform{#zlibOptions;constructor(zlibOptions){super(),this.#zlibOptions=zlibOptions}_transform(chunk,encoding,callback){if(!this._inflateStream){if(chunk.length===0){callback();return}this._inflateStream=(chunk[0]&15)===8?zlib.createInflate(this.#zlibOptions):zlib.createInflateRaw(this.#zlibOptions),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",err=>this.destroy(err))}this._inflateStream.write(chunk,encoding,callback)}_final(callback){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),callback()}};function createInflate(zlibOptions){return new InflateStream(zlibOptions)}function extractMimeType(headers){let charset=null,essence=null,mimeType=null,values=getDecodeSplit("content-type",headers);if(values===null)return"failure";for(let value of values){let temporaryMimeType=parseMIMEType(value);temporaryMimeType==="failure"||temporaryMimeType.essence==="*/*"||(mimeType=temporaryMimeType,mimeType.essence!==essence?(charset=null,mimeType.parameters.has("charset")&&(charset=mimeType.parameters.get("charset")),essence=mimeType.essence):!mimeType.parameters.has("charset")&&charset!==null&&mimeType.parameters.set("charset",charset))}return mimeType??"failure"}function gettingDecodingSplitting(value){let input=value,position={position:0},values=[],temporaryValue="";for(;position.position<input.length;){if(temporaryValue+=collectASequenceOfCodePoints(char=>char!=='"'&&char!==",",input,position),position.position<input.length)if(input.charCodeAt(position.position)===34){if(temporaryValue+=collectAnHTTPQuotedString(input,position),position.position<input.length)continue}else assert(input.charCodeAt(position.position)===44),position.position++;temporaryValue=removeChars(temporaryValue,!0,!0,char=>char===9||char===32),values.push(temporaryValue),temporaryValue=""}return values}function getDecodeSplit(name,list){let value=list.get(name,!0);return value===null?null:gettingDecodingSplitting(value)}function hasAuthenticationEntry(request){return!1}function includesCredentials(url){return!!(url.username||url.password)}function isTraversableNavigable(navigable){return navigable!=null&&navigable!=="client"&&navigable!=="no-traversable"}var EnvironmentSettingsObjectBase=class{get baseUrl(){return getGlobalOrigin()}get origin(){return this.baseUrl?.origin}policyContainer=makePolicyContainer()},EnvironmentSettingsObject=class{settingsObject=new EnvironmentSettingsObjectBase},environmentSettingsObject=new EnvironmentSettingsObject;module.exports={isAborted,isCancelled,isValidEncodedURL,ReadableStreamFrom,tryUpgradeRequestToAPotentiallyTrustworthyURL,clampAndCoarsenConnectionTimingInfo,coarsenedSharedCurrentTime,determineRequestsReferrer,makePolicyContainer,clonePolicyContainer,appendFetchMetadata,appendRequestOriginHeader,TAOCheck,corsCheck,crossOriginResourcePolicyCheck,createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect,isValidHTTPToken,requestBadPort,requestCurrentURL,responseURL,responseLocationURL,isURLPotentiallyTrustworthy,isValidReasonPhrase,sameOrigin,normalizeMethod,iteratorMixin,createIterator,isValidHeaderName,isValidHeaderValue,isErrorLike,fullyReadBody,readableStreamClose,urlIsLocal,urlHasHttpsScheme,urlIsHttpHttpsScheme,readAllBytes,simpleRangeHeaderValue,buildContentRange,createInflate,extractMimeType,getDecodeSplit,environmentSettingsObject,isOriginIPPotentiallyTrustworthy,hasAuthenticationEntry,includesCredentials,isTraversableNavigable}}});var require_runtime_features=__commonJS({"node_modules/undici/lib/util/runtime-features.js"(exports,module){"use strict";var lazyLoaders={__proto__:null,"node:crypto":()=>__require("node:crypto"),"node:sqlite":()=>__require("node:sqlite")};function detectRuntimeFeatureByNodeModule(moduleName){try{return lazyLoaders[moduleName](),!0}catch(err){if(err.code!=="ERR_UNKNOWN_BUILTIN_MODULE"&&err.code!=="ERR_NO_CRYPTO")throw err;return!1}}var runtimeFeaturesAsNodeModule=["crypto","sqlite"];function detectRuntimeFeature(feature){if(runtimeFeaturesAsNodeModule.includes(feature))return detectRuntimeFeatureByNodeModule(`node:${feature}`);throw new TypeError(`unknown feature: ${feature}`)}var RuntimeFeatures=class{#map=new Map;clear(){this.#map.clear()}has(feature){return this.#map.get(feature)??this.#detectRuntimeFeature(feature)}set(feature,value){if(runtimeFeaturesAsNodeModule.includes(feature)===!1)throw new TypeError(`unknown feature: ${feature}`);this.#map.set(feature,value)}#detectRuntimeFeature(feature){let result=detectRuntimeFeature(feature);return this.#map.set(feature,result),result}},instance=new RuntimeFeatures;module.exports.runtimeFeatures=instance;module.exports.default=instance}});var require_formdata=__commonJS({"node_modules/undici/lib/web/fetch/formdata.js"(exports,module){"use strict";var{iteratorMixin}=require_util2(),{kEnumerableProperty}=require_util(),{webidl}=require_webidl(),nodeUtil=__require("node:util"),{runtimeFeatures}=require_runtime_features(),random=runtimeFeatures.has("crypto")?__require("node:crypto").randomInt:max=>Math.floor(Math.random()*max),FormData=class _FormData{#state=[];#boundary=null;constructor(form=void 0){if(webidl.util.markAsUncloneable(this),form!==void 0)throw webidl.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}append(name,value,filename=void 0){webidl.brandCheck(this,_FormData);let prefix="FormData.append";webidl.argumentLengthCheck(arguments,2,prefix),name=webidl.converters.USVString(name),arguments.length===3||webidl.is.Blob(value)?(value=webidl.converters.Blob(value,prefix,"value"),filename!==void 0&&(filename=webidl.converters.USVString(filename))):value=webidl.converters.USVString(value);let entry=makeEntry(name,value,filename);this.#state.push(entry)}delete(name){webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.delete"),name=webidl.converters.USVString(name),this.#state=this.#state.filter(entry=>entry.name!==name)}get(name){webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.get"),name=webidl.converters.USVString(name);let idx=this.#state.findIndex(entry=>entry.name===name);return idx===-1?null:this.#state[idx].value}getAll(name){return webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.getAll"),name=webidl.converters.USVString(name),this.#state.filter(entry=>entry.name===name).map(entry=>entry.value)}has(name){return webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.has"),name=webidl.converters.USVString(name),this.#state.findIndex(entry=>entry.name===name)!==-1}set(name,value,filename=void 0){webidl.brandCheck(this,_FormData);let prefix="FormData.set";webidl.argumentLengthCheck(arguments,2,prefix),name=webidl.converters.USVString(name),arguments.length===3||webidl.is.Blob(value)?(value=webidl.converters.Blob(value,prefix,"value"),filename!==void 0&&(filename=webidl.converters.USVString(filename))):value=webidl.converters.USVString(value);let entry=makeEntry(name,value,filename),idx=this.#state.findIndex(entry2=>entry2.name===name);idx!==-1?this.#state=[...this.#state.slice(0,idx),entry,...this.#state.slice(idx+1).filter(entry2=>entry2.name!==name)]:this.#state.push(entry)}[nodeUtil.inspect.custom](depth,options){let state2=this.#state.reduce((a,b)=>(a[b.name]?Array.isArray(a[b.name])?a[b.name].push(b.value):a[b.name]=[a[b.name],b.value]:a[b.name]=b.value,a),{__proto__:null});options.depth??=depth,options.colors??=!0;let output=nodeUtil.formatWithOptions(options,state2);return`FormData ${output.slice(output.indexOf("]")+2)}`}static getFormDataState(formData){return formData.#state}static setFormDataState(formData,newState){formData.#state=newState}static getFormDataBoundary(formData){let boundary=formData.#boundary;return boundary??(formData.#boundary=`----formdata-undici-0${`${random(1e11)}`.padStart(11,"0")}`)}},{getFormDataState,setFormDataState,getFormDataBoundary}=FormData;Reflect.deleteProperty(FormData,"getFormDataState");Reflect.deleteProperty(FormData,"setFormDataState");Reflect.deleteProperty(FormData,"getFormDataBoundary");iteratorMixin("FormData",FormData,getFormDataState,"name","value");Object.defineProperties(FormData.prototype,{append:kEnumerableProperty,delete:kEnumerableProperty,get:kEnumerableProperty,getAll:kEnumerableProperty,has:kEnumerableProperty,set:kEnumerableProperty,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function makeEntry(name,value,filename){if(typeof value!="string"){if(webidl.is.File(value)||(value=new File([value],"blob",{type:value.type})),filename!==void 0){let options={type:value.type,lastModified:value.lastModified};value=new File([value],filename,options)}}return{name,value}}webidl.is.FormData=webidl.util.MakeTypeAssertion(FormData);module.exports={FormData,makeEntry,setFormDataState,getFormDataBoundary}}});var require_formdata_parser=__commonJS({"node_modules/undici/lib/web/fetch/formdata-parser.js"(exports,module){"use strict";var{bufferToLowerCasedHeaderName}=require_util(),{HTTP_TOKEN_CODEPOINTS}=require_data_url(),{makeEntry}=require_formdata(),{webidl}=require_webidl(),assert=__require("node:assert"),{isomorphicDecode}=require_infra(),dd=Buffer.from("--"),decoder=new TextDecoder,decoderIgnoreBOM=new TextDecoder("utf-8",{ignoreBOM:!0});function isAsciiString(chars){for(let i=0;i<chars.length;++i)if((chars.charCodeAt(i)&-128)!==0)return!1;return!0}function validateBoundary(boundary){let length=boundary.length;if(length<27||length>70)return!1;for(let i=0;i<length;++i){let cp=boundary.charCodeAt(i);if(!(cp>=48&&cp<=57||cp>=65&&cp<=90||cp>=97&&cp<=122||cp===39||cp===45||cp===95))return!1}return!0}function multipartFormDataParser(input,mimeType){assert(mimeType!=="failure"&&mimeType.essence==="multipart/form-data");let boundaryString=mimeType.parameters.get("boundary");if(boundaryString===void 0)throw parsingError("missing boundary in content-type header");let boundary=Buffer.from(`--${boundaryString}`,"utf8"),entryList=[],position={position:0},firstBoundaryIndex=input.indexOf(boundary);if(firstBoundaryIndex===-1)throw parsingError("no boundary found in multipart body");for(position.position=firstBoundaryIndex;;){if(input.subarray(position.position,position.position+boundary.length).equals(boundary))position.position+=boundary.length;else throw parsingError("expected a value starting with -- and the boundary");if(bufferStartsWith(input,dd,position))return entryList;if(input[position.position]!==13||input[position.position+1]!==10)throw parsingError("expected CRLF");position.position+=2;let result=parseMultipartFormDataHeaders(input,position),{name,filename,contentType,encoding}=result;position.position+=2;let body;{let boundaryIndex=input.indexOf(boundary.subarray(2),position.position);if(boundaryIndex===-1)throw parsingError("expected boundary after body");body=input.subarray(position.position,boundaryIndex-4),position.position+=body.length,encoding==="base64"&&(body=Buffer.from(body.toString(),"base64"))}if(input[position.position]!==13||input[position.position+1]!==10)throw parsingError("expected CRLF");position.position+=2;let value;filename!==null?(contentType??="text/plain",isAsciiString(contentType)||(contentType=""),value=new File([body],filename,{type:contentType})):value=decoderIgnoreBOM.decode(Buffer.from(body)),assert(webidl.is.USVString(name)),assert(typeof value=="string"&&webidl.is.USVString(value)||webidl.is.File(value)),entryList.push(makeEntry(name,value,filename))}}function parseContentDispositionAttribute(input,position){input[position.position]===59&&position.position++,collectASequenceOfBytes(char=>char===32||char===9,input,position);let attributeName=collectASequenceOfBytes(char=>isToken(char)&&char!==61&&char!==42,input,position);if(attributeName.length===0)return null;let attrNameStr=attributeName.toString("ascii").toLowerCase(),isExtended=input[position.position]===42;if(isExtended&&position.position++,input[position.position]!==61)return null;position.position++,collectASequenceOfBytes(char=>char===32||char===9,input,position);let value;if(isExtended){let headerValue=collectASequenceOfBytes(char=>char!==32&&char!==13&&char!==10&&char!==59,input,position);if(headerValue[0]!==117&&headerValue[0]!==85||headerValue[1]!==116&&headerValue[1]!==84||headerValue[2]!==102&&headerValue[2]!==70||headerValue[3]!==45||headerValue[4]!==56)throw parsingError("unknown encoding, expected utf-8''");value=decodeURIComponent(decoder.decode(headerValue.subarray(7)))}else if(input[position.position]===34){position.position++;let quotedValue=collectASequenceOfBytes(char=>char!==10&&char!==13&&char!==34,input,position);if(input[position.position]!==34)throw parsingError("Closing quote not found");position.position++,value=decoder.decode(quotedValue).replace(/%0A/ig,`
|
|
4
|
+
`).replace(/%0D/ig,"\r").replace(/%22/g,'"')}else{let tokenValue=collectASequenceOfBytes(char=>isToken(char)&&char!==59,input,position);value=decoder.decode(tokenValue)}return{name:attrNameStr,value,extended:isExtended}}function parseMultipartFormDataHeaders(input,position){let name=null,filename=null,contentType=null,encoding=null;for(;;){if(input[position.position]===13&&input[position.position+1]===10){if(name===null)throw parsingError("header name is null");return{name,filename,contentType,encoding}}let headerName=collectASequenceOfBytes(char=>char!==10&&char!==13&&char!==58,input,position);if(headerName=removeChars(headerName,!0,!0,char=>char===9||char===32),!HTTP_TOKEN_CODEPOINTS.test(headerName.toString()))throw parsingError("header name does not match the field-name token production");if(input[position.position]!==58)throw parsingError("expected :");switch(position.position++,collectASequenceOfBytes(char=>char===32||char===9,input,position),bufferToLowerCasedHeaderName(headerName)){case"content-disposition":{name=filename=null;let filenameIsExtended=!1;if(collectASequenceOfBytes(char=>isToken(char),input,position).toString("ascii").toLowerCase()!=="form-data")throw parsingError("expected form-data for content-disposition header");for(;position.position<input.length&&(input[position.position]!==13||input[position.position+1]!==10);){let attribute=parseContentDispositionAttribute(input,position);if(!attribute)break;attribute.name==="name"?name=attribute.value:attribute.name==="filename"&&(attribute.extended?(filename=attribute.value,filenameIsExtended=!0):filenameIsExtended||(filename=attribute.value))}if(name===null)throw parsingError("name attribute is required in content-disposition header");break}case"content-type":{let headerValue=collectASequenceOfBytes(char=>char!==10&&char!==13,input,position);headerValue=removeChars(headerValue,!1,!0,char=>char===9||char===32),contentType=isomorphicDecode(headerValue);break}case"content-transfer-encoding":{let headerValue=collectASequenceOfBytes(char=>char!==10&&char!==13,input,position);headerValue=removeChars(headerValue,!1,!0,char=>char===9||char===32),encoding=isomorphicDecode(headerValue);break}default:collectASequenceOfBytes(char=>char!==10&&char!==13,input,position)}if(input[position.position]!==13||input[position.position+1]!==10)throw parsingError("expected CRLF");position.position+=2}}function collectASequenceOfBytes(condition,input,position){let start=position.position;for(;start<input.length&&condition(input[start]);)++start;return input.subarray(position.position,position.position=start)}function removeChars(buf,leading,trailing,predicate){let lead=0,trail=buf.length-1;if(leading)for(;lead<buf.length&&predicate(buf[lead]);)lead++;if(trailing)for(;trail>0&&predicate(buf[trail]);)trail--;return lead===0&&trail===buf.length-1?buf:buf.subarray(lead,trail+1)}function bufferStartsWith(buffer,start,position){if(buffer.length<start.length)return!1;for(let i=0;i<start.length;i++)if(start[i]!==buffer[position.position+i])return!1;return!0}function parsingError(cause){return new TypeError("Failed to parse body as FormData.",{cause:new TypeError(cause)})}function isCTL(char){return char<=31||char===127}function isTSpecial(char){return char===40||char===41||char===60||char===62||char===64||char===44||char===59||char===58||char===92||char===34||char===47||char===91||char===93||char===63||char===61}function isToken(char){return char<=127&&char!==32&&char!==9&&!isCTL(char)&&!isTSpecial(char)}module.exports={multipartFormDataParser,validateBoundary}}});var require_body=__commonJS({"node_modules/undici/lib/web/fetch/body.js"(exports,module){"use strict";var util=require_util(),{ReadableStreamFrom,readableStreamClose,fullyReadBody,extractMimeType}=require_util2(),{FormData,setFormDataState,getFormDataBoundary}=require_formdata(),{webidl}=require_webidl(),assert=__require("node:assert"),{isErrored,isDisturbed}=__require("node:stream"),{isUint8Array}=__require("node:util/types"),{serializeAMimeType}=require_data_url(),{multipartFormDataParser}=require_formdata_parser(),{parseJSONFromBytes}=require_infra(),{utf8DecodeBytes}=require_encoding(),{ReadableStreamTee}=__require("node:stream/web"),textEncoder=new TextEncoder;function noop(){}var streamRegistry=new FinalizationRegistry(weakRef=>{let stream=weakRef.deref();stream&&!stream.locked&&!isDisturbed(stream)&&!isErrored(stream)&&stream.cancel("Response object has been garbage collected").catch(noop)});function extractBody(object,keepalive=!1){let stream=null,controller=null;webidl.is.ReadableStream(object)?stream=object:webidl.is.Blob(object)?stream=object.stream():stream=new ReadableStream({pull(){},start(c){controller=c},cancel(){},type:"bytes"}),assert(webidl.is.ReadableStream(stream));let action=null,source=null,length=null,type=null;if(typeof object=="string")source=object,type="text/plain;charset=UTF-8";else if(webidl.is.URLSearchParams(object))source=object.toString(),type="application/x-www-form-urlencoded;charset=UTF-8";else if(webidl.is.BufferSource(object))source=webidl.util.getCopyOfBytesHeldByBufferSource(object);else if(webidl.is.FormData(object)){let boundary=getFormDataBoundary(object),prefix=`--${boundary}\r
|
|
5
|
+
Content-Disposition: form-data`;let formdataEscape=str2=>str2.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),normalizeLinefeeds=value=>value.replace(/\r?\n|\r/g,`\r
|
|
6
|
+
`),blobParts=[],rn=new Uint8Array([13,10]);length=0;let hasUnknownSizeValue=!1;for(let[name,value]of object)if(typeof value=="string"){let chunk2=textEncoder.encode(prefix+`; name="${formdataEscape(normalizeLinefeeds(name))}"\r
|
|
7
|
+
\r
|
|
8
|
+
${normalizeLinefeeds(value)}\r
|
|
9
|
+
`);blobParts.push(chunk2),length+=chunk2.byteLength}else{let chunk2=textEncoder.encode(`${prefix}; name="${formdataEscape(normalizeLinefeeds(name))}"`+(value.name?`; filename="${formdataEscape(value.name)}"`:"")+`\r
|
|
10
|
+
Content-Type: ${value.type||"application/octet-stream"}\r
|
|
11
|
+
\r
|
|
12
|
+
`);blobParts.push(chunk2,value,rn),typeof value.size=="number"?length+=chunk2.byteLength+value.size+rn.byteLength:hasUnknownSizeValue=!0}let chunk=textEncoder.encode(`--${boundary}--\r
|
|
13
|
+
`);blobParts.push(chunk),length+=chunk.byteLength,hasUnknownSizeValue&&(length=null),source=object,action=async function*(){for(let part of blobParts)part.stream?yield*part.stream():yield part},type=`multipart/form-data; boundary=${boundary}`}else if(webidl.is.Blob(object))source=object,length=object.size,object.type&&(type=object.type);else if(typeof object[Symbol.asyncIterator]=="function"){if(keepalive)throw new TypeError("keepalive");if(util.isDisturbed(object)||object.locked)throw new TypeError("Response body object should not be disturbed or locked");stream=webidl.is.ReadableStream(object)?object:ReadableStreamFrom(object)}return(typeof source=="string"||isUint8Array(source))&&(action=()=>(length=typeof source=="string"?Buffer.byteLength(source):source.length,source)),action!=null&&(async()=>{let result=action(),iterator=result?.[Symbol.asyncIterator]?.();if(iterator)for await(let bytes of iterator){if(isErrored(stream))break;bytes.length&&controller.enqueue(new Uint8Array(bytes))}else result?.length&&!isErrored(stream)&&controller.enqueue(typeof result=="string"?textEncoder.encode(result):new Uint8Array(result));queueMicrotask(()=>readableStreamClose(controller))})(),[{stream,source,length},type]}function safelyExtractBody(object,keepalive=!1){return webidl.is.ReadableStream(object)&&(assert(!util.isDisturbed(object),"The body has already been consumed."),assert(!object.locked,"The stream is locked.")),extractBody(object,keepalive)}function cloneBody(body){let{0:out1,1:out2}=ReadableStreamTee?.(body.stream,!0)??body.stream.tee();return body.stream=out1,{stream:out2,length:body.length,source:body.source}}function bodyMixinMethods(instance,getInternalState){return{blob(){return consumeBody(this,bytes=>{let mimeType=bodyMimeType(getInternalState(this));return mimeType===null?mimeType="":mimeType&&(mimeType=serializeAMimeType(mimeType)),new Blob([bytes],{type:mimeType})},instance,getInternalState)},arrayBuffer(){return consumeBody(this,bytes=>new Uint8Array(bytes).buffer,instance,getInternalState)},text(){return consumeBody(this,utf8DecodeBytes,instance,getInternalState)},json(){return consumeBody(this,parseJSONFromBytes,instance,getInternalState)},formData(){return consumeBody(this,value=>{let mimeType=bodyMimeType(getInternalState(this));if(mimeType!==null)switch(mimeType.essence){case"multipart/form-data":{let parsed=multipartFormDataParser(value,mimeType),fd=new FormData;return setFormDataState(fd,parsed),fd}case"application/x-www-form-urlencoded":{let entries=new URLSearchParams(value.toString()),fd=new FormData;for(let[name,value2]of entries)fd.append(name,value2);return fd}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},instance,getInternalState)},bytes(){return consumeBody(this,bytes=>new Uint8Array(bytes),instance,getInternalState)},textStream(){let this_=getInternalState(this);if(bodyUnusable(this_))throw new TypeError("Body is unusable: Body has already been read");if(this_.body==null){let controller,emptyStream=new ReadableStream({start:c=>{controller=c},pull:()=>Promise.resolve(),cancel:()=>Promise.resolve()},{size:()=>1});return controller.close(),emptyStream}let stream=this_.body.stream,decoder=new TextDecoderStream("UTF-8");return stream.pipeThrough(decoder)}}}function mixinBody(prototype,getInternalState){Object.assign(prototype.prototype,bodyMixinMethods(prototype,getInternalState))}function consumeBody(object,convertBytesToJSValue,instance,getInternalState){try{webidl.brandCheck(object,instance)}catch(e){return Promise.reject(e)}if(object=getInternalState(object),bodyUnusable(object))return Promise.reject(new TypeError("Body is unusable: Body has already been read"));let promise=Promise.withResolvers(),errorSteps=promise.reject,successSteps=data=>{try{promise.resolve(convertBytesToJSValue(data))}catch(e){errorSteps(e)}};return object.body==null?(successSteps(Buffer.allocUnsafe(0)),promise.promise):(fullyReadBody(object.body,successSteps,errorSteps),promise.promise)}function bodyUnusable(object){let body=object.body;return body!=null&&(body.stream.locked||util.isDisturbed(body.stream))}function bodyMimeType(requestOrResponse){let headers=requestOrResponse.headersList,mimeType=extractMimeType(headers);return mimeType==="failure"?null:mimeType}module.exports={extractBody,safelyExtractBody,cloneBody,mixinBody,streamRegistry,bodyUnusable}}});var require_client_h1=__commonJS({"node_modules/undici/lib/dispatcher/client-h1.js"(exports,module){"use strict";var assert=__require("node:assert"),util=require_util(),{channels}=require_diagnostics(),timers=require_timers(),{RequestContentLengthMismatchError,ResponseContentLengthMismatchError,RequestAbortedError,InvalidArgumentError,HeadersTimeoutError,HeadersOverflowError,SocketError,InformationalError,BodyTimeoutError,HTTPParserError,ResponseExceededMaxSizeError}=require_errors(),{kUrl,kReset,kClient,kParser,kBlocking,kRunning,kPending,kSize,kWriting,kQueue,kNoRef,kKeepAliveDefaultTimeout,kHostHeader,kPendingIdx,kRunningIdx,kError,kPipelining,kSocket,kKeepAliveTimeoutValue,kMaxHeadersSize,kKeepAliveMaxTimeout,kKeepAliveTimeoutThreshold,kHeadersTimeout,kBodyTimeout,kStrictContentLength,kMaxRequests,kCounter,kMaxResponseSize,kOnError,kResume,kHTTPContext,kClosed}=require_symbols(),constants3=require_constants2(),EMPTY_BUF=Buffer.alloc(0),FastBuffer=Buffer[Symbol.species],removeAllListeners=util.removeAllListeners,kIdleSocketValidation=Symbol("kIdleSocketValidation"),kIdleSocketValidationTimeout=Symbol("kIdleSocketValidationTimeout"),kSocketUsed=Symbol("kSocketUsed"),kTypeOfService=Symbol("kTypeOfService"),extractBody;function lazyllhttp(){let llhttpWasmData=process.env.JEST_WORKER_ID?require_llhttp_wasm():void 0,mod,useWasmSIMD=process.arch!=="ppc64";if(process.env.UNDICI_NO_WASM_SIMD==="1"?useWasmSIMD=!1:process.env.UNDICI_NO_WASM_SIMD==="0"&&(useWasmSIMD=!0),useWasmSIMD)try{mod=new WebAssembly.Module(require_llhttp_simd_wasm())}catch{}return mod||(mod=new WebAssembly.Module(llhttpWasmData||require_llhttp_wasm())),new WebAssembly.Instance(mod,{env:{wasm_on_url:(p,at,len)=>0,wasm_on_status:(p,at,len)=>{assert(currentParser.ptr===p);let start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer,start,len))},wasm_on_message_begin:p=>(assert(currentParser.ptr===p),currentParser.onMessageBegin()),wasm_on_header_field:(p,at,len)=>{assert(currentParser.ptr===p);let start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer,start,len))},wasm_on_header_value:(p,at,len)=>{assert(currentParser.ptr===p);let start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer,start,len))},wasm_on_headers_complete:(p,statusCode,upgrade,shouldKeepAlive)=>(assert(currentParser.ptr===p),currentParser.onHeadersComplete(statusCode,upgrade===1,shouldKeepAlive===1)),wasm_on_body:(p,at,len)=>{assert(currentParser.ptr===p);let start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onBody(new FastBuffer(currentBufferRef.buffer,start,len))},wasm_on_message_complete:p=>(assert(currentParser.ptr===p),currentParser.onMessageComplete())}})}var llhttpInstance=null,currentParser=null,currentBufferRef=null,currentBufferSize=0,currentBufferPtr=null,currentBuffer=null,USE_NATIVE_TIMER=0,USE_FAST_TIMER=1,TIMEOUT_HEADERS=2|USE_FAST_TIMER,TIMEOUT_BODY=4|USE_FAST_TIMER,TIMEOUT_KEEP_ALIVE=8|USE_NATIVE_TIMER,Parser2=class{constructor(client,socket,{exports:exports2}){this.llhttp=exports2,this.ptr=this.llhttp.llhttp_alloc(constants3.TYPE.RESPONSE),this.client=client,this.socket=socket,this.timeout=null,this.timeoutWeakRef=new WeakRef(this),this.timeoutValue=null,this.timeoutType=null,this.statusCode=0,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=client[kMaxHeadersSize],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength=-1,this.connectionKeepAlive=!1,this.maxResponseSize=client[kMaxResponseSize]}setTimeout(delay,type){delay!==this.timeoutValue||type&USE_FAST_TIMER^this.timeoutType&USE_FAST_TIMER?(this.timeout&&(timers.clearTimeout(this.timeout),this.timeout=null),delay&&(type&USE_FAST_TIMER?this.timeout=timers.setFastTimeout(onParserTimeout,delay,this.timeoutWeakRef):(this.timeout=setTimeout(onParserTimeout,delay,this.timeoutWeakRef),this.timeout?.unref())),this.timeoutValue=delay):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=type}resume(){this.socket.destroyed||!this.paused||(assert(this.ptr!=null),assert(currentParser===null),this.llhttp.llhttp_resume(this.ptr),assert(this.timeoutType===TIMEOUT_BODY),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||EMPTY_BUF),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let chunk=this.socket.read();if(chunk===null)break;this.execute(chunk)}}execute(chunk){assert(currentParser===null),assert(this.ptr!=null),assert(!this.paused);let{socket,llhttp}=this;chunk.length>currentBufferSize&&(currentBufferPtr&&llhttp.free(currentBufferPtr),currentBufferSize=Math.ceil(chunk.length/4096)*4096,currentBufferPtr=llhttp.malloc(currentBufferSize)),(currentBuffer===null||currentBuffer.buffer!==llhttp.memory.buffer||currentBuffer.byteOffset!==currentBufferPtr||currentBuffer.byteLength!==currentBufferSize)&&(currentBuffer=new Uint8Array(llhttp.memory.buffer,currentBufferPtr,currentBufferSize)),currentBuffer.set(chunk);try{let ret;try{currentBufferRef=chunk,currentParser=this,ret=llhttp.llhttp_execute(this.ptr,currentBufferPtr,chunk.length)}finally{currentParser=null,currentBufferRef=null}if(ret!==constants3.ERROR.OK){let data=chunk.subarray(llhttp.llhttp_get_error_pos(this.ptr)-currentBufferPtr);if(ret===constants3.ERROR.PAUSED_UPGRADE)this.onUpgrade(data);else if(ret===constants3.ERROR.PAUSED)this.paused=!0,socket.unshift(data);else throw this.createError(ret,data)}}catch(err){util.destroy(socket,err)}}finish(){assert(currentParser===null),assert(this.ptr!=null);let{llhttp}=this;if(this.paused){let data;do llhttp.llhttp_resume(this.ptr),this.paused=!1,data=this.socket.read()||EMPTY_BUF,this.execute(data);while(this.paused&&data.length>0);this.paused&&(llhttp.llhttp_resume(this.ptr),this.paused=!1)}let ret;try{currentParser=this,ret=llhttp.llhttp_finish(this.ptr)}finally{currentParser=null}return ret===constants3.ERROR.OK?null:ret===constants3.ERROR.PAUSED||ret===constants3.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(ret,EMPTY_BUF)}createError(ret,data){let{llhttp,contentLength,bytesRead}=this;if(contentLength!==-1&&bytesRead!==contentLength)return new ResponseContentLengthMismatchError;let ptr=llhttp.llhttp_get_error_reason(this.ptr),message="";if(ptr){let len=new Uint8Array(llhttp.memory.buffer,ptr).indexOf(0);message="Response does not match the HTTP/1.1 protocol ("+Buffer.from(llhttp.memory.buffer,ptr,len).toString()+")"}return new HTTPParserError(message,constants3.ERROR[ret],data)}destroy(){assert(currentParser===null),assert(this.ptr!=null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&timers.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(buf){return this.statusText=buf.toString(),0}onMessageBegin(){let{socket,client}=this;if(socket.destroyed)return-1;if(client[kRunning]===0)return util.destroy(socket,new SocketError("bad response",util.getSocketInfo(socket))),-1;let request=client[kQueue][client[kRunningIdx]];return request?(request.onResponseStarted(),0):-1}onHeaderField(buf){let len=this.headers.length;return(len&1)===0?this.headers.push(buf):this.headers[len-1]=Buffer.concat([this.headers[len-1],buf]),this.trackHeader(buf.length),0}onHeaderValue(buf){let len=this.headers.length;(len&1)===1?(this.headers.push(buf),len+=1):this.headers[len-1]=Buffer.concat([this.headers[len-1],buf]);let key=this.headers[len-2];if(key.length===10){let headerName=util.bufferToLowerCasedHeaderName(key);headerName==="keep-alive"?this.keepAlive+=buf.toString():headerName==="connection"&&(this.connectionKeepAlive=this.headers[len-1].length===10&&util.bufferToLowerCasedHeaderName(this.headers[len-1])==="keep-alive")}else if(key.length===14&&util.bufferToLowerCasedHeaderName(key)==="content-length"){this.contentLength===-1&&(this.contentLength=0);for(let i=0;i<buf.length;i++)this.contentLength=this.contentLength*10+(buf[i]-48)}return this.trackHeader(buf.length),0}trackHeader(len){this.headersSize+=len,this.headersSize>=this.headersMaxSize&&util.destroy(this.socket,new HeadersOverflowError)}onUpgrade(head){let{upgrade,client,socket,headers,statusCode}=this;assert(upgrade),assert(client[kSocket]===socket),assert(!socket.destroyed),assert(!this.paused),assert((headers.length&1)===0);let request=client[kQueue][client[kRunningIdx]];assert(request),assert(request.upgrade||request.method==="CONNECT"),this.statusCode=0,this.statusText="",this.shouldKeepAlive=!1,this.headers=[],this.headersSize=0,socket.unshift(head),socket[kParser].destroy(),socket[kParser]=null,socket[kClient]=null,socket[kError]=null,removeAllListeners(socket),client[kSocket]=null,client[kHTTPContext]=null,client[kQueue][client[kRunningIdx]++]=null,client.emit("disconnect",client[kUrl],[client],new InformationalError("upgrade"));try{request.onRequestUpgrade(statusCode,headers,socket)}catch(err){util.destroy(socket,err)}client[kResume]()}onHeadersComplete(statusCode,upgrade,shouldKeepAlive){let{client,socket,headers,statusText}=this;if(socket.destroyed)return-1;if(client[kRunning]===0)return util.destroy(socket,new SocketError("bad response",util.getSocketInfo(socket))),-1;let request=client[kQueue][client[kRunningIdx]];if(!request)return-1;if(assert(!this.upgrade),assert(this.statusCode<200),statusCode===100)return util.destroy(socket,new SocketError("bad response",util.getSocketInfo(socket))),-1;if(upgrade&&!request.upgrade)return util.destroy(socket,new SocketError("bad upgrade",util.getSocketInfo(socket))),-1;if(assert(this.timeoutType===TIMEOUT_HEADERS),this.statusCode=statusCode,this.shouldKeepAlive=shouldKeepAlive||request.method==="HEAD"&&!socket[kReset]&&this.connectionKeepAlive,this.statusCode>=200){let bodyTimeout=request.bodyTimeout!=null?request.bodyTimeout:client[kBodyTimeout];this.setTimeout(bodyTimeout,TIMEOUT_BODY)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(request.method==="CONNECT")return assert(client[kRunning]===1),this.upgrade=!0,2;if(upgrade)return assert(client[kRunning]===1),this.upgrade=!0,2;if(assert((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&client[kPipelining]){let keepAliveTimeout=this.keepAlive?util.parseKeepAliveTimeout(this.keepAlive):null;if(keepAliveTimeout!=null){let timeout=Math.min(keepAliveTimeout-client[kKeepAliveTimeoutThreshold],client[kKeepAliveMaxTimeout]);timeout<=0?socket[kReset]=!0:client[kKeepAliveTimeoutValue]=timeout}else client[kKeepAliveTimeoutValue]=client[kKeepAliveDefaultTimeout]}else socket[kReset]=!0;let pause=request.onResponseStart(statusCode,headers,this.resume,statusText)===!1;return request.aborted?-1:request.method==="HEAD"||statusCode<200?1:(socket[kBlocking]&&(socket[kBlocking]=!1,client[kResume]()),pause?constants3.ERROR.PAUSED:0)}onBody(buf){let{client,socket,statusCode,maxResponseSize}=this;if(socket.destroyed)return-1;let request=client[kQueue][client[kRunningIdx]];return assert(request),assert(this.timeoutType===TIMEOUT_BODY),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),assert(statusCode>=200),maxResponseSize>-1&&this.bytesRead+buf.length>maxResponseSize?(util.destroy(socket,new ResponseExceededMaxSizeError),-1):(this.bytesRead+=buf.length,request.onResponseData(buf)===!1?constants3.ERROR.PAUSED:0)}onMessageComplete(){let{client,socket,statusCode,upgrade,headers,contentLength,bytesRead,shouldKeepAlive}=this;if(socket.destroyed&&(!statusCode||shouldKeepAlive))return-1;if(upgrade)return 0;assert(statusCode>=100),assert((this.headers.length&1)===0);let request=client[kQueue][client[kRunningIdx]];if(assert(request),this.statusCode=0,this.statusText="",this.bytesRead=0,this.contentLength=-1,this.keepAlive="",this.connectionKeepAlive=!1,this.headers=[],this.headersSize=0,statusCode<200)return 0;if(request.method!=="HEAD"&&contentLength!==-1&&bytesRead!==contentLength)return util.destroy(socket,new ResponseContentLengthMismatchError),-1;if(request.onResponseEnd(headers),client[kQueue][client[kRunningIdx]++]=null,socket[kSocketUsed]=client[kPending]===0,socket[kWriting])return assert(client[kRunning]===0),util.destroy(socket,new InformationalError("reset")),constants3.ERROR.PAUSED;if(shouldKeepAlive){if(socket[kReset]&&client[kRunning]===0)return util.destroy(socket,new InformationalError("reset")),constants3.ERROR.PAUSED;client[kPipelining]==null||client[kPipelining]===1?setImmediate(client[kResume]):client[kResume]()}else return util.destroy(socket,new InformationalError("reset")),constants3.ERROR.PAUSED;return 0}};function onParserTimeout(parserWeakRef){let parser=parserWeakRef.deref();if(!parser)return;let{socket,timeoutType,client,paused}=parser;timeoutType===TIMEOUT_HEADERS?(!socket[kWriting]||socket.writableNeedDrain||client[kRunning]>1)&&(assert(!paused,"cannot be paused while waiting for headers"),util.destroy(socket,new HeadersTimeoutError)):timeoutType===TIMEOUT_BODY?paused||util.destroy(socket,new BodyTimeoutError):timeoutType===TIMEOUT_KEEP_ALIVE&&(assert(client[kRunning]===0&&client[kKeepAliveTimeoutValue]),util.destroy(socket,new InformationalError("socket idle timeout")))}function connectH1(client,socket){if(client[kSocket]=socket,llhttpInstance||(llhttpInstance=lazyllhttp()),socket.errored)throw socket.errored;if(socket.destroyed)throw new SocketError("destroyed");return socket[kNoRef]=!1,socket[kWriting]=!1,socket[kReset]=!1,socket[kBlocking]=!1,socket[kIdleSocketValidation]=0,socket[kIdleSocketValidationTimeout]=null,socket[kSocketUsed]=!1,socket[kParser]=new Parser2(client,socket,llhttpInstance),util.addListener(socket,"error",onHttpSocketError),util.addListener(socket,"readable",onHttpSocketReadable),util.addListener(socket,"end",onHttpSocketEnd),util.addListener(socket,"close",onHttpSocketClose),socket[kClosed]=!1,socket.on("close",onSocketClose),{version:"h1",defaultPipelining:1,write(request){return writeH1(client,request)},resume(){resumeH1(client)},destroy(err,callback){socket[kClosed]?queueMicrotask(callback):(socket.on("close",callback),socket.destroy(err))},get destroyed(){return socket.destroyed},busy(request){return!!(socket[kWriting]||socket[kReset]||socket[kBlocking]||socket[kIdleSocketValidation]===1||request&&(client[kRunning]>0&&!request.idempotent||client[kRunning]>0&&(request.upgrade||request.method==="CONNECT")||client[kRunning]>0&&util.bodyLength(request.body)!==0&&(util.isStream(request.body)||util.isAsyncIterable(request.body)||util.isFormDataLike(request.body))))}}}function onHttpSocketError(err){assert(err.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let parser=this[kParser];if(err.code==="ECONNRESET"&&parser.statusCode&&!parser.shouldKeepAlive){let parserErr=parser.finish();parserErr&&(this[kError]=parserErr,this[kClient][kOnError](parserErr));return}this[kError]=err,this[kClient][kOnError](err)}function onHttpSocketReadable(){this[kParser]?.readMore()}function onHttpSocketEnd(){let parser=this[kParser];if(parser.statusCode&&!parser.shouldKeepAlive){let parserErr=parser.finish();parserErr&&util.destroy(this,parserErr);return}util.destroy(this,new SocketError("other side closed",util.getSocketInfo(this)))}function onHttpSocketClose(){let parser=this[kParser];clearIdleSocketValidation(this),parser&&(!this[kError]&&parser.statusCode&&!parser.shouldKeepAlive&&(this[kError]=parser.finish()||this[kError]),this[kParser].destroy(),this[kParser]=null);let err=this[kError]||new SocketError("closed",util.getSocketInfo(this)),client=this[kClient];if(client[kSocket]=null,client[kHTTPContext]=null,client.destroyed){assert(client[kPending]===0);let requests=client[kQueue].splice(client[kRunningIdx]);for(let i=0;i<requests.length;i++){let request=requests[i];util.errorRequest(client,request,err)}}else if(client[kRunning]>0&&err.code!=="UND_ERR_INFO"){let request=client[kQueue][client[kRunningIdx]];client[kQueue][client[kRunningIdx]++]=null,util.errorRequest(client,request,err)}client[kPendingIdx]=client[kRunningIdx],assert(client[kRunning]===0),client.emit("disconnect",client[kUrl],[client],err),client[kResume]()}function onSocketClose(){this[kClosed]=!0}function clearIdleSocketValidation(socket){socket[kIdleSocketValidationTimeout]&&(clearImmediate(socket[kIdleSocketValidationTimeout]),socket[kIdleSocketValidationTimeout]=null),socket[kIdleSocketValidation]=0}function scheduleIdleSocketValidation(client,socket){socket[kIdleSocketValidation]=1,socket[kIdleSocketValidationTimeout]=setImmediate(()=>{socket[kIdleSocketValidationTimeout]=null,socket[kIdleSocketValidation]=2,client[kSocket]===socket&&!socket.destroyed&&client[kResume]()})}function resumeH1(client){let socket=client[kSocket];if(socket&&!socket.destroyed){if(client[kSize]===0?!socket[kNoRef]&&socket.unref&&(socket.unref(),socket[kNoRef]=!0):socket[kNoRef]&&socket.ref&&(socket.ref(),socket[kNoRef]=!1),client[kRunning]===0&&client[kPending]>0&&socket[kSocketUsed]){if(socket[kIdleSocketValidation]===0)return scheduleIdleSocketValidation(client,socket),socket[kParser].readMore(),socket.destroyed,void 0;if(socket[kIdleSocketValidation]===1)return socket[kParser].readMore(),socket.destroyed,void 0}if(client[kRunning]===0&&(socket[kParser].readMore(),socket.destroyed))return;if(client[kSize]===0)socket[kParser].timeoutType!==TIMEOUT_KEEP_ALIVE&&socket[kParser].setTimeout(client[kKeepAliveTimeoutValue],TIMEOUT_KEEP_ALIVE);else if(client[kRunning]>0&&socket[kParser].statusCode<200&&socket[kParser].timeoutType!==TIMEOUT_HEADERS){let request=client[kQueue][client[kRunningIdx]],headersTimeout=request.headersTimeout!=null?request.headersTimeout:client[kHeadersTimeout];socket[kParser].setTimeout(headersTimeout,TIMEOUT_HEADERS)}}}function shouldSendContentLength(method){return method!=="GET"&&method!=="HEAD"&&method!=="OPTIONS"&&method!=="TRACE"&&method!=="CONNECT"}function setTypeOfService(socket,request){if(typeof socket.setTypeOfService!="function")return;let typeOfService=request.typeOfService;if(!(typeOfService===void 0||socket[kTypeOfService]===typeOfService))try{socket.setTypeOfService(typeOfService),socket[kTypeOfService]=typeOfService}catch{}}function writeH1(client,request){let{method,path:path2,host,upgrade,blocking,reset}=request,{body,headers,contentLength}=request,expectsPayload=method==="PUT"||method==="POST"||method==="PATCH"||method==="QUERY"||method==="PROPFIND"||method==="PROPPATCH";if(util.isFormDataLike(body)){extractBody||(extractBody=require_body().extractBody);let[bodyStream,contentType]=extractBody(body);request.contentType==null&&headers.push("content-type",contentType),body=bodyStream.stream,contentLength=bodyStream.length}else if(util.isBlobLike(body)&&request.contentType==null){let contentType=body.type;if(contentType){let contentTypeValue=`${contentType}`;if(!util.isValidHeaderValue(contentTypeValue))return util.errorRequest(client,request,new InvalidArgumentError("invalid content-type header")),!1;headers.push("content-type",contentTypeValue)}}body&&typeof body.read=="function"&&body.read(0);let bodyLength=util.bodyLength(body);if(contentLength=bodyLength??contentLength,contentLength===null&&(contentLength=request.contentLength),contentLength===0&&!expectsPayload&&(contentLength=null),shouldSendContentLength(method)&&contentLength>0&&request.contentLength!==null&&request.contentLength!==contentLength){if(client[kStrictContentLength])return util.errorRequest(client,request,new RequestContentLengthMismatchError),!1;process.emitWarning(new RequestContentLengthMismatchError)}let socket=client[kSocket];clearIdleSocketValidation(socket);let abort=err=>{request.aborted||request.completed||(util.errorRequest(client,request,err||new RequestAbortedError),util.destroy(body),util.destroy(socket,new InformationalError("aborted")))};try{request.onRequestStart(abort,null)}catch(err){util.errorRequest(client,request,err)}if(request.aborted)return!1;method==="HEAD"&&(socket[kReset]=!0),(upgrade||method==="CONNECT")&&(socket[kReset]=!0),reset!=null&&(socket[kReset]=reset),client[kMaxRequests]&&++socket[kCounter]>=client[kMaxRequests]&&(socket[kReset]=!0),blocking&&(socket[kBlocking]=!0),setTypeOfService(socket,request);let header=`${method} ${path2} HTTP/1.1\r
|
|
14
|
+
`;if(typeof host=="string"?header+=`host: ${host}\r
|
|
15
|
+
`:header+=client[kHostHeader],upgrade?header+=`connection: upgrade\r
|
|
16
|
+
upgrade: ${upgrade}\r
|
|
17
|
+
`:client[kPipelining]&&!socket[kReset]?header+=`connection: keep-alive\r
|
|
18
|
+
`:header+=`connection: close\r
|
|
19
|
+
`,Array.isArray(headers))for(let n=0;n<headers.length;n+=2){let key=headers[n+0],val=headers[n+1];if(Array.isArray(val))for(let i=0;i<val.length;i++)header+=`${key}: ${val[i]}\r
|
|
20
|
+
`;else header+=`${key}: ${val}\r
|
|
21
|
+
`}return channels.sendHeaders.hasSubscribers&&channels.sendHeaders.publish({request,headers:header,socket}),!body||bodyLength===0?writeBuffer(abort,null,client,request,socket,contentLength,header,expectsPayload):util.isBuffer(body)?writeBuffer(abort,body,client,request,socket,contentLength,header,expectsPayload):util.isBlobLike(body)?typeof body.stream=="function"?writeIterable(abort,body.stream(),client,request,socket,contentLength,header,expectsPayload):writeBlob(abort,body,client,request,socket,contentLength,header,expectsPayload):util.isStream(body)?writeStream(abort,body,client,request,socket,contentLength,header,expectsPayload):util.isIterable(body)?writeIterable(abort,body,client,request,socket,contentLength,header,expectsPayload):assert(!1),!0}function writeStream(abort,body,client,request,socket,contentLength,header,expectsPayload){assert(contentLength!==0||client[kRunning]===0,"stream body cannot be pipelined");let finished2=!1,writer=new AsyncWriter({abort,socket,request,contentLength,client,expectsPayload,header}),onData=function(chunk){if(!finished2)try{!writer.write(chunk)&&this.pause&&this.pause()}catch(err){util.destroy(this,err)}},onDrain=function(){finished2||body.resume&&body.resume()},onClose=function(){if(queueMicrotask(()=>{body.removeListener("error",onFinished)}),!finished2){let err=new RequestAbortedError;queueMicrotask(()=>onFinished(err))}},onFinished=function(err){if(!finished2){if(finished2=!0,assert(socket.destroyed||socket[kWriting]&&client[kRunning]<=1),socket.off("drain",onDrain).off("error",onFinished),body.removeListener("data",onData).removeListener("end",onFinished).removeListener("close",onClose),!err)try{writer.end()}catch(er){err=er}writer.destroy(err),err&&(err.code!=="UND_ERR_INFO"||err.message!=="reset")?util.destroy(body,err):util.destroy(body)}};body.on("data",onData).on("end",onFinished).on("error",onFinished).on("close",onClose),body.resume&&body.resume(),socket.on("drain",onDrain).on("error",onFinished),body.errorEmitted??body.errored?setImmediate(onFinished,body.errored):(body.endEmitted??body.readableEnded)&&setImmediate(onFinished,null),(body.closeEmitted??body.closed)&&setImmediate(onClose)}function writeBuffer(abort,body,client,request,socket,contentLength,header,expectsPayload){try{body?util.isBuffer(body)&&(assert(contentLength===body.byteLength,"buffer body must have content length"),socket.cork(),socket.write(`${header}content-length: ${contentLength}\r
|
|
22
|
+
\r
|
|
23
|
+
`,"latin1"),socket.write(body),socket.uncork(),request.onBodySent(body),!expectsPayload&&request.reset!==!1&&(socket[kReset]=!0)):contentLength===0?socket.write(`${header}content-length: 0\r
|
|
24
|
+
\r
|
|
25
|
+
`,"latin1"):(assert(contentLength===null,"no body must not have content length"),socket.write(`${header}\r
|
|
26
|
+
`,"latin1")),request.onRequestSent(),client[kResume]()}catch(err){abort(err)}}async function writeBlob(abort,body,client,request,socket,contentLength,header,expectsPayload){try{if(contentLength!=null&&contentLength!==body.size)throw new RequestContentLengthMismatchError;let buffer=Buffer.from(await body.arrayBuffer());socket.cork(),socket.write(`${header}content-length: ${contentLength}\r
|
|
27
|
+
\r
|
|
28
|
+
`,"latin1"),socket.write(buffer),socket.uncork(),request.onBodySent(buffer),request.onRequestSent(),!expectsPayload&&request.reset!==!1&&(socket[kReset]=!0),client[kResume]()}catch(err){abort(err)}}async function writeIterable(abort,body,client,request,socket,contentLength,header,expectsPayload){assert(contentLength!==0||client[kRunning]===0,"iterator body cannot be pipelined");let callback=null;function onDrain(){if(callback){let cb=callback;callback=null,cb()}}let waitForDrain=()=>new Promise((resolve2,reject)=>{assert(callback===null),socket[kError]?reject(socket[kError]):callback=resolve2});socket.on("close",onDrain).on("drain",onDrain);let writer=new AsyncWriter({abort,socket,request,contentLength,client,expectsPayload,header});try{for await(let chunk of body){if(socket[kError])throw socket[kError];writer.write(chunk)||await waitForDrain()}writer.end()}catch(err){writer.destroy(err)}finally{socket.off("close",onDrain).off("drain",onDrain)}}var AsyncWriter=class{constructor({abort,socket,request,contentLength,client,expectsPayload,header}){this.socket=socket,this.request=request,this.contentLength=contentLength,this.client=client,this.bytesWritten=0,this.expectsPayload=expectsPayload,this.header=header,this.abort=abort,socket[kWriting]=!0}write(chunk){let{socket,request,contentLength,client,bytesWritten,expectsPayload,header}=this;if(socket[kError])throw socket[kError];if(socket.destroyed)return!1;let len=chunk instanceof Uint8Array?chunk.byteLength:Buffer.byteLength(chunk);if(!len)return!0;if(contentLength!==null&&bytesWritten+len>contentLength){if(client[kStrictContentLength])throw new RequestContentLengthMismatchError;process.emitWarning(new RequestContentLengthMismatchError)}socket.cork(),bytesWritten===0&&(!expectsPayload&&request.reset!==!1&&(socket[kReset]=!0),contentLength===null?socket.write(`${header}transfer-encoding: chunked\r
|
|
29
|
+
`,"latin1"):socket.write(`${header}content-length: ${contentLength}\r
|
|
30
|
+
\r
|
|
31
|
+
`,"latin1")),contentLength===null&&socket.write(`\r
|
|
32
|
+
${len.toString(16)}\r
|
|
33
|
+
`,"latin1"),this.bytesWritten+=len;let ret=socket.write(chunk);return socket.uncork(),request.onBodySent(chunk),ret||socket[kParser].timeout&&socket[kParser].timeoutType===TIMEOUT_HEADERS&&socket[kParser].timeout.refresh&&socket[kParser].timeout.refresh(),ret}end(){let{socket,contentLength,client,bytesWritten,expectsPayload,header,request}=this;if(request.onRequestSent(),socket[kWriting]=!1,socket[kError])throw socket[kError];if(!socket.destroyed){if(bytesWritten===0?expectsPayload?socket.write(`${header}content-length: 0\r
|
|
34
|
+
\r
|
|
35
|
+
`,"latin1"):socket.write(`${header}\r
|
|
36
|
+
`,"latin1"):contentLength===null&&socket.write(`\r
|
|
37
|
+
0\r
|
|
38
|
+
\r
|
|
39
|
+
`,"latin1"),contentLength!==null&&bytesWritten!==contentLength){if(client[kStrictContentLength])throw new RequestContentLengthMismatchError;process.emitWarning(new RequestContentLengthMismatchError)}socket[kParser].timeout&&socket[kParser].timeoutType===TIMEOUT_HEADERS&&socket[kParser].timeout.refresh&&socket[kParser].timeout.refresh(),client[kResume]()}}destroy(err){let{socket,client,abort}=this;socket[kWriting]=!1,err&&(assert(client[kRunning]<=1,"pipeline should only contain this request"),abort(err))}};module.exports=connectH1}});var require_client_h2=__commonJS({"node_modules/undici/lib/dispatcher/client-h2.js"(exports,module){"use strict";var assert=__require("node:assert"),{pipeline}=__require("node:stream"),util=require_util(),{RequestContentLengthMismatchError,RequestAbortedError,SocketError,InformationalError,InvalidArgumentError,HeadersTimeoutError,BodyTimeoutError,ResponseExceededMaxSizeError}=require_errors(),{kUrl,kReset,kClient,kRunning,kPending,kQueue,kPendingIdx,kRunningIdx,kError,kSocket,kStrictContentLength,kOnError,kMaxConcurrentStreams,kHTTP2Session,kHostAuthority,kResume,kSize,kHTTPContext,kClosed,kKeepAliveDefaultTimeout,kHeadersTimeout,kBodyTimeout,kEnableConnectProtocol,kRemoteSettings,kHTTP2Stream,kHTTP2SessionState,kHTTP2Options,kMaxResponseSize}=require_symbols(),{channels}=require_diagnostics(),kOpenStreams=Symbol("open streams"),kRequestStreamId=Symbol("request stream id"),kRequestStream=Symbol("request stream"),kRequestStreamCleanup=Symbol("request stream cleanup"),kRequestStreamState=Symbol("request stream state"),kReceivedGoAway=Symbol("received goaway"),kGoAwayReplayAttempts=Symbol("goaway replay attempts"),kRefusedStreamRetry=Symbol("refused stream retry"),MAX_GOAWAY_REPLAY_ATTEMPTS=1,extractBody,http2;try{http2=__require("node:http2")}catch{http2={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY,HTTP2_HEADER_METHOD,HTTP2_HEADER_PATH,HTTP2_HEADER_SCHEME,HTTP2_HEADER_CONTENT_LENGTH,HTTP2_HEADER_EXPECT,HTTP2_HEADER_STATUS,HTTP2_HEADER_PROTOCOL,NGHTTP2_NO_ERROR,NGHTTP2_REFUSED_STREAM}}=http2;function getGoAwayError(session,errorCode){return session[kError]||(errorCode===NGHTTP2_NO_ERROR?new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${errorCode}`):new SocketError(`HTTP/2: "GOAWAY" frame received with code ${errorCode}`,util.getSocketInfo(session[kSocket])))}function resetHttp2Session(session,err){let client=session[kClient],socket=session[kSocket];if(client[kHTTP2Session]===session&&(client[kSocket]=null,client[kHTTPContext]=null,client[kHTTP2Session]=null),socket!=null&&socket[kError]==null&&(socket[kError]=err),!session.closed&&!session.destroyed)try{session.destroy(err)}catch{}util.destroy(socket,err)}function getGoAwayPendingIdx(client,lastStreamID){let maxAcceptedStreamID=Number.isInteger(lastStreamID)?lastStreamID:Number.MAX_SAFE_INTEGER;for(let i=client[kRunningIdx];i<client[kPendingIdx];i++){let request=client[kQueue][i];if(request!=null&&(typeof request[kRequestStreamId]!="number"||request[kRequestStreamId]>maxAcceptedStreamID))return i}return client[kPendingIdx]}function detachRequestFromStream(request){request[kRequestStreamId]=null,request[kRequestStream]=null,request[kRequestStreamCleanup]=null}function bindRequestToStream(request,stream,cleanup){let previousCleanup=request[kRequestStreamCleanup],previousStream=request[kRequestStream];detachRequestFromStream(request),previousCleanup?.(previousStream),request[kRequestStreamId]=stream.id,request[kRequestStream]=stream,request[kRequestStreamCleanup]=cleanup}function clearRequestStream(request){let cleanup=request[kRequestStreamCleanup],stream=request[kRequestStream];detachRequestFromStream(request),cleanup?.(stream)}function requeueUnsentRequest(client,request){client[kQueue].splice(client[kPendingIdx]+1,0,request)}function completeRequest(client,request,resetPendingIdx=!1){let queue=client[kQueue],runningIdx=client[kRunningIdx];if(runningIdx<client[kPendingIdx]&&queue[runningIdx]===request){queue[runningIdx]=null,client[kRunningIdx]=runningIdx+1;return}let index3=queue.indexOf(request,runningIdx);index3===-1||index3>=client[kPendingIdx]||(queue.splice(index3,1),client[kPendingIdx]--,resetPendingIdx&&client[kPendingIdx]<client[kRunningIdx]&&(client[kPendingIdx]=client[kRunningIdx]))}function canReplayRequest(request){let{body}=request;return body==null||util.isBuffer(body)||util.isBlobLike(body)}function registerGoAwayRefusal(request){let attempts=(request[kGoAwayReplayAttempts]??0)+1;return request[kGoAwayReplayAttempts]=attempts,attempts<=MAX_GOAWAY_REPLAY_ATTEMPTS}function closeStream(stream,code=NGHTTP2_REFUSED_STREAM){if(stream!=null&&!stream.destroyed&&!stream.closed)try{stream.close(code)}catch{}}function detachRequestStreamForClose(request){let stream=request[kRequestStream];return clearRequestStream(request),severRequestStream(stream),stream}function severRequestStream(stream){stream==null||stream[kRequestStreamState]==null||(stream[kRequestStreamState]=null,stream.off("close",completeRequestStream),stream.off("close",onUpgradeStreamClose),stream[kHTTP2Session]!=null&&closeStreamSession(stream),!stream.destroyed&&!stream.closed&&stream.once("error",noop))}function connectH2(client,socket){client[kSocket]=socket;let http2InitialWindowSize=client[kHTTP2Options].sessionOptions?.initialWindowSize,http2ConnectionWindowSize=client[kHTTP2Options].connectionWindowSize,session=http2.connect(client[kUrl],{createConnection:()=>socket,peerMaxConcurrentStreams:client[kHTTP2Options].maxConcurrentStreams,settings:{enablePush:!1,...http2InitialWindowSize!=null?{initialWindowSize:http2InitialWindowSize}:null}});return client[kSocket]=socket,session[kOpenStreams]=0,session[kClient]=client,session[kSocket]=socket,session[kHTTP2SessionState]={idleTimeout:null,noStreamsTimeout:null,refed:!0,ping:{interval:client[kHTTP2Options].pingInterval===0?null:setInterval(onHttp2SendPing,client[kHTTP2Options].pingInterval,session).unref()}},session[kReceivedGoAway]=!1,session[kEnableConnectProtocol]=!1,session[kRemoteSettings]=!1,http2ConnectionWindowSize&&util.addListener(session,"connect",applyConnectionWindowSize.bind(session,http2ConnectionWindowSize)),util.addListener(session,"error",onHttp2SessionError),util.addListener(session,"frameError",onHttp2FrameError),util.addListener(session,"goaway",onHttp2SessionGoAway),util.addListener(session,"close",onHttp2SessionClose),util.addListener(session,"remoteSettings",onHttp2RemoteSettings),unrefH2Session(session),client[kHTTP2Session]=session,socket[kHTTP2Session]=session,util.addListener(socket,"error",onHttp2SocketError),util.addListener(socket,"end",onHttp2SocketEnd),util.addListener(socket,"close",onHttp2SocketClose),socket[kClosed]=!1,socket.on("close",onSocketClose),{version:"h2",defaultPipelining:1/0,write(request){return writeH2(client,request)},resume(){resumeH2(client)},destroy(err,callback){socket[kClosed]?queueMicrotask(callback):socket.destroy(err).on("close",callback)},get destroyed(){return socket.destroyed},busy(request){if(session[kRemoteSettings]===!1&&client[kRunning]>0||client[kRunning]>=client[kMaxConcurrentStreams])return!0;if(request!=null)if(client[kRunning]>0){if((request.upgrade==="websocket"||request.method==="CONNECT")&&session[kRemoteSettings]===!1)return!0}else return(request.upgrade==="websocket"||request.method==="CONNECT")&&session[kRemoteSettings]===!1;return!1}}}function refH2Session(session){let state2=session[kHTTP2SessionState];state2.refed===!1&&(state2.refed=!0,session.ref())}function unrefH2Session(session){let state2=session[kHTTP2SessionState];state2.refed===!0&&(state2.refed=!1,session.unref())}function resumeH2(client){let socket=client[kSocket],session=client[kHTTP2Session];socket?.destroyed===!1&&(client[kSize]===0||client[kMaxConcurrentStreams]===0?unrefH2Session(session):refH2Session(session),client[kSize]===0&&session[kOpenStreams]===0?setHttp2IdleTimeout(session):clearHttp2IdleTimeout(session),client[kMaxConcurrentStreams]===0&&client[kRunning]===0&&client[kPending]>0?setNoStreamsTimeout(session):clearNoStreamsTimeout(session))}function clearNoStreamsTimeout(session){let state2=session[kHTTP2SessionState];state2?.noStreamsTimeout!=null&&(clearTimeout(state2.noStreamsTimeout),state2.noStreamsTimeout=null)}function setNoStreamsTimeout(session){let client=session[kClient],state2=session[kHTTP2SessionState],timeout=client[kHeadersTimeout];!timeout||state2.noStreamsTimeout!=null||(state2.noStreamsTimeout=setTimeout(onNoStreamsTimeout,timeout,session).unref())}function onNoStreamsTimeout(session){let client=session[kClient],state2=session[kHTTP2SessionState];if(state2.noStreamsTimeout=null,client[kHTTP2Session]!==session||client[kMaxConcurrentStreams]!==0||client[kRunning]!==0||client[kPending]===0)return;let err=new HeadersTimeoutError(`HTTP/2: server did not accept a new stream within ${client[kHeadersTimeout]}`),requests=client[kQueue].splice(client[kPendingIdx]);for(let i=0;i<requests.length;i++)requests[i]!=null&&util.errorRequest(client,requests[i],err);session[kError]=err,resetHttp2Session(session,err)}function clearHttp2IdleTimeout(session){let state2=session[kHTTP2SessionState];state2?.idleTimeout!=null&&(clearTimeout(state2.idleTimeout),state2.idleTimeout=null)}function setHttp2IdleTimeout(session){let client=session[kClient];if(client[kHTTP2Session]!==session||session.closed||session.destroyed)return;if(session[kOpenStreams]!==0||client[kSize]!==0){clearHttp2IdleTimeout(session);return}let state2=session[kHTTP2SessionState];state2.idleTimeout==null&&(state2.idleTimeout=setTimeout(onHttp2SessionIdleTimeout,client[kKeepAliveDefaultTimeout],session).unref())}function onHttp2SessionIdleTimeout(session){let client=session[kClient],socket=session[kSocket],state2=session[kHTTP2SessionState];if(state2.idleTimeout=null,client[kHTTP2Session]!==session||session[kOpenStreams]!==0||client[kSize]!==0||session.closed||session.destroyed)return;let err=new InformationalError("socket idle timeout");socket[kError]=err,util.destroy(socket,err)}function applyConnectionWindowSize(connectionWindowSize){try{typeof this.setLocalWindowSize=="function"&&this.setLocalWindowSize(connectionWindowSize)}catch{}}function onHttp2RemoteSettings(settings){if(this[kClient][kMaxConcurrentStreams]=settings.maxConcurrentStreams??this[kClient][kMaxConcurrentStreams],this[kRemoteSettings]===!0&&this[kEnableConnectProtocol]===!0&&settings.enableConnectProtocol===!1){let err=new InformationalError("HTTP/2: Server disabled extended CONNECT protocol against RFC-8441");this[kSocket][kError]=err,this[kClient][kOnError](err);return}this[kEnableConnectProtocol]=settings.enableConnectProtocol??this[kEnableConnectProtocol],this[kRemoteSettings]=!0,this[kClient][kResume]()}function onHttp2SendPing(session){let state2=session[kHTTP2SessionState];if((session.closed||session.destroyed)&&state2.ping.interval!=null){clearInterval(state2.ping.interval),state2.ping.interval=null;return}session.ping(onPing.bind(session));function onPing(err,duration){let client=this[kClient],socket=this[kSocket];if(err!=null){let error=new InformationalError(`HTTP/2: "PING" errored - type ${err.message}`);socket[kError]=error,client[kOnError](error)}else client.emit("ping",duration)}}function onHttp2SessionError(err){assert(err.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[kSocket][kError]=err,!this[kReceivedGoAway]&&this[kClient][kOnError](err)}function onHttp2FrameError(type,code,id){if(id===0){if(this[kReceivedGoAway])return;let err=new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`);this[kSocket][kError]=err,this[kClient][kOnError](err)}}function onHttp2SessionGoAway(errorCode,lastStreamID){if(this[kReceivedGoAway])return;this[kReceivedGoAway]=!0;let err=getGoAwayError(this,errorCode),client=this[kClient],previousPendingIdx=client[kPendingIdx],pendingIdx=getGoAwayPendingIdx(client,lastStreamID),retriableRequests=[],streamsToClose=[];for(let i=pendingIdx;i<previousPendingIdx;i++){let request=client[kQueue][i];request!=null&&(streamsToClose.push(detachRequestStreamForClose(request)),canReplayRequest(request)&®isterGoAwayRefusal(request)?retriableRequests.push(request):util.errorRequest(client,request,err))}for(let i=0;i<streamsToClose.length;i++)closeStream(streamsToClose[i]);if(pendingIdx!==previousPendingIdx){let remainingPendingRequests=client[kQueue].slice(previousPendingIdx);client[kQueue].length=pendingIdx,client[kQueue].push(...retriableRequests,...remainingPendingRequests)}client[kHTTP2Session]===this&&(client[kSocket]=null,client[kHTTPContext]=null,client[kHTTP2Session]=null),clearHttp2IdleTimeout(this),clearNoStreamsTimeout(this),!this.closed&&!this.destroyed&&this.close(),client[kPendingIdx]=pendingIdx,client.emit("disconnect",client[kUrl],[client],err),client[kResume]()}function onHttp2SessionClose(){let{[kClient]:client,[kHTTP2SessionState]:state2,[kSocket]:socket}=this,err=socket[kError]||this[kError]||new SocketError("closed",util.getSocketInfo(socket));if(client[kHTTP2Session]===this&&(client[kSocket]=null,client[kHTTPContext]=null,client[kHTTP2Session]=null),clearHttp2IdleTimeout(this),clearNoStreamsTimeout(this),state2.ping.interval!=null&&(clearInterval(state2.ping.interval),state2.ping.interval=null),client.destroyed){assert(client[kPending]===0);let requests=client[kQueue].splice(client[kRunningIdx]);for(let i=0;i<requests.length;i++){let request=requests[i];request!=null&&util.errorRequest(client,request,err)}}}function onHttp2SocketClose(){let err=this[kError]||new SocketError("closed",util.getSocketInfo(this)),session=this[kHTTP2Session],client=session[kClient];client[kSocket]!==this&&(session[kReceivedGoAway]||client[kHTTP2Session]!=null&&client[kHTTP2Session]!==session)||(client[kSocket]=null,client[kHTTPContext]=null,client[kHTTP2Session]===session&&(client[kHTTP2Session]=null),session.destroy(err),client[kPendingIdx]=client[kRunningIdx],assert(client[kRunning]===0),client.emit("disconnect",client[kUrl],[client],err),client[kResume]())}function onHttp2SocketError(err){assert(err.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[kError]=err,!this[kHTTP2Session]?.[kReceivedGoAway]&&this[kHTTP2Session]?.[kClient]?.[kOnError](err)}function onHttp2SocketEnd(){util.destroy(this,new SocketError("other side closed",util.getSocketInfo(this)))}function onSocketClose(){this[kClosed]=!0}function noop(){}function closeStreamSession(stream){let session=stream[kHTTP2Session];stream[kHTTP2Session]=null,session[kOpenStreams]-=1,session[kOpenStreams]===0&&(unrefH2Session(session),setHttp2IdleTimeout(session))}function onUpgradeStreamClose(){this.off("error",noop);let state2=this[kRequestStreamState];this[kRequestStreamState]=null,failUpgradeStream(state2,new InformationalError("HTTP/2: stream closed before response headers")),closeStreamSession(this)}function completeRequestStream(){let state2=this[kRequestStreamState];state2!=null&&(releaseRequestStream(this),state2.pendingEnd&&!state2.request.aborted&&!state2.request.completed?state2.request.onResponseEnd(state2.trailers||{}):!state2.request.aborted&&!state2.request.completed&&util.errorRequest(state2.client,state2.request,new InformationalError("HTTP/2: stream closed before the response was complete")),finalizeRequest(state2),closeStreamSession(this),this[kRequestStreamState]=null)}function shouldSendContentLength(method){return method!=="GET"&&method!=="HEAD"&&method!=="OPTIONS"&&method!=="TRACE"&&method!=="CONNECT"}function buildRequestHeaders(reqHeaders){let headers={};for(let n=0;n<reqHeaders.length;n+=2){let key=reqHeaders[n+0],val=reqHeaders[n+1],current=headers[key];if(key==="cookie"){current!=null?headers[key]=Array.isArray(current)?(current.push(val),current):[current,val]:headers[key]=val;continue}if(typeof val=="string"){headers[key]=current?`${current}, ${val}`:val;continue}for(let i=0;i<val.length;i++)headers[key]=headers[key]?`${headers[key]}, ${val[i]}`:val[i]}return headers}function removeUpgradeStreamListeners(stream){stream.off("response",onUpgradeResponse),stream.off("error",onUpgradeStreamError),stream.off("end",onUpgradeStreamEnd),stream.off("timeout",onUpgradeStreamTimeout),stream.off("error",noop)}function releaseUpgradeStream(stream){if(stream==null)return;let state2=stream[kRequestStreamState];if(state2==null)return;let{request}=state2;request[kRequestStream]===stream&&detachRequestFromStream(request),removeUpgradeStreamListeners(stream),!stream.destroyed&&!stream.closed&&stream.once("error",noop)}function failUpgradeStream(state2,err){if(state2==null)return;let{request}=state2;state2.responseReceived||request.aborted||request.completed||(releaseUpgradeStream(state2.stream),state2.abort(err,!0))}function onUpgradeStreamError(){let state2=this[kRequestStreamState];typeof this.rstCode=="number"&&this.rstCode!==0?failUpgradeStream(state2,new InformationalError(`HTTP/2: "stream error" received - code ${this.rstCode}`)):failUpgradeStream(state2,new InformationalError("HTTP/2: stream errored before response headers"))}function onUpgradeStreamEnd(){failUpgradeStream(this[kRequestStreamState],new InformationalError("HTTP/2: stream half-closed (remote)"))}function onUpgradeStreamTimeout(){let state2=this[kRequestStreamState];failUpgradeStream(state2,new InformationalError(`HTTP/2: "stream timeout after ${state2.headersTimeout}"`))}function onUpgradeResponse(headers,_flags){let stream=this,state2=stream[kRequestStreamState],{request}=state2;state2.responseReceived=!0;let statusCode=headers[HTTP2_HEADER_STATUS];delete headers[HTTP2_HEADER_STATUS],request.onRequestUpgrade(statusCode,headers,stream),!(request.aborted||request.completed)&&(removeUpgradeStreamListeners(stream),detachRequestFromStream(request),finalizeRequest(state2))}function setupUpgradeStream(stream,state2){let{request,headersTimeout,session}=state2;stream[kHTTP2Stream]=!0,stream[kHTTP2Session]=session,stream[kRequestStreamState]=state2,state2.stream=stream,bindRequestToStream(request,stream,releaseUpgradeStream),stream.once("response",onUpgradeResponse),stream.on("error",onUpgradeStreamError),stream.once("end",onUpgradeStreamEnd),stream.on("timeout",onUpgradeStreamTimeout),stream.once("close",onUpgradeStreamClose),clearHttp2IdleTimeout(session),++session[kOpenStreams],stream.setTimeout(headersTimeout)}function finalizeRequest(state2,resetPendingIdx=!1){state2.requestFinalized||(state2.requestFinalized=!0,completeRequest(state2.client,state2.request,resetPendingIdx),state2.client[kResume]())}function openStream(client,request,session,abort,headers,options){try{return session.request(headers,options)}catch(err){if(err?.code==="ERR_HTTP2_INVALID_SESSION"||err?.code==="ERR_HTTP2_GOAWAY_SESSION"){let wrappedErr2=new SocketError(err.message,util.getSocketInfo(session[kSocket]));return wrappedErr2.cause=err,session[kError]=wrappedErr2,resetHttp2Session(session,wrappedErr2),requeueUnsentRequest(client,request),null}let wrappedErr=new InformationalError(err.message,{cause:err});return session[kError]=wrappedErr,session[kSocket][kError]=wrappedErr,session.destroy(wrappedErr),util.destroy(session[kSocket],wrappedErr),abort(wrappedErr),null}}function writeH2(client,request){let headersTimeout=request.headersTimeout??client[kHeadersTimeout],bodyTimeout=request.bodyTimeout??client[kBodyTimeout],session=client[kHTTP2Session],{method,path:path2,host,upgrade,expectContinue,signal,protocol,headers:reqHeaders}=request;if(upgrade!=null&&upgrade!=="websocket")return util.errorRequest(client,request,new InvalidArgumentError(`Custom upgrade "${upgrade}" not supported over HTTP/2`)),!1;let headers=buildRequestHeaders(reqHeaders);headers[HTTP2_HEADER_AUTHORITY]=host||client[kHostAuthority],headers[HTTP2_HEADER_METHOD]=method;let state2={abort:null,body:request.body,bytesRead:0,client,contentLength:null,expectsPayload:!1,maxResponseSize:client[kMaxResponseSize],request,headersTimeout,bodyTimeout,requestFinalized:!1,responseReceived:!1,bodySent:!1,pendingEnd:!1,trailers:null,session,stream:null},abort=(err,resetPendingIdx=!1)=>{if(!(request.aborted||request.completed)){if(err=err||new RequestAbortedError,util.errorRequest(client,request,err),state2.stream!=null){clearRequestStream(request);let stream2=state2.stream;stream2.close(),stream2.destroyed||util.destroy(stream2),client[kOnError](err),finalizeRequest(state2,resetPendingIdx)}util.destroy(state2.body,err)}};state2.abort=abort;let stream=null;try{request.onRequestStart(abort,null)}catch(err){util.errorRequest(client,request,err)}if(request.aborted)return!1;if(upgrade||method==="CONNECT")return refH2Session(session),upgrade==="websocket"?session[kEnableConnectProtocol]===!1?(util.errorRequest(client,request,new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server")),unrefH2Session(session),!1):(headers[HTTP2_HEADER_METHOD]="CONNECT",headers[HTTP2_HEADER_PROTOCOL]="websocket",headers[HTTP2_HEADER_PATH]=path2,protocol==="ws:"||protocol==="wss:"?headers[HTTP2_HEADER_SCHEME]=protocol==="ws:"?"http":"https":headers[HTTP2_HEADER_SCHEME]=protocol==="http:"?"http":"https",stream=openStream(client,request,session,abort,headers,{endStream:!1,signal}),stream==null?(unrefH2Session(session),!1):(setupUpgradeStream(stream,state2),!0)):(stream=openStream(client,request,session,abort,headers,{endStream:!1,signal}),stream==null?(unrefH2Session(session),!1):(setupUpgradeStream(stream,state2),!0));headers[HTTP2_HEADER_PATH]=path2,headers[HTTP2_HEADER_SCHEME]=protocol==="http:"?"http":"https";let expectsPayload=method==="PUT"||method==="POST"||method==="PATCH"||method==="QUERY"||method==="PROPFIND"||method==="PROPPATCH",body=state2.body;body&&typeof body.read=="function"&&body.read(0);let contentLength=util.bodyLength(body);if(util.isFormDataLike(body)){extractBody??=require_body().extractBody;let[bodyStream,contentType]=extractBody(body);headers["content-type"]=contentType,body=bodyStream.stream,contentLength=bodyStream.length}if(contentLength==null&&(contentLength=request.contentLength),contentLength===0&&!expectsPayload&&(contentLength=null),shouldSendContentLength(method)&&contentLength>0&&request.contentLength!=null&&request.contentLength!==contentLength){if(client[kStrictContentLength])return util.errorRequest(client,request,new RequestContentLengthMismatchError),!1;process.emitWarning(new RequestContentLengthMismatchError)}if(contentLength!=null&&(assert(body||contentLength===0,"no body must not have content length"),headers[HTTP2_HEADER_CONTENT_LENGTH]=`${contentLength}`),refH2Session(session),channels.sendHeaders.hasSubscribers){let header="";for(let key in headers)header+=`${key}: ${headers[key]}\r
|
|
40
|
+
`;channels.sendHeaders.publish({request,headers:header,socket:session[kSocket]})}let shouldEndStream=body===null||contentLength===0;return state2.body=body,state2.contentLength=contentLength,state2.expectsPayload=expectsPayload,expectContinue&&(headers[HTTP2_HEADER_EXPECT]="100-continue"),stream=openStream(client,request,session,abort,headers,{endStream:shouldEndStream,signal}),stream==null?!1:(stream[kHTTP2Stream]=!0,stream[kRequestStreamState]=state2,state2.stream=stream,clearHttp2IdleTimeout(session),++session[kOpenStreams],headersTimeout&&stream.setTimeout(headersTimeout),stream[kHTTP2Session]=session,stream.on("close",completeRequestStream),bindRequestToStream(request,stream,releaseRequestStream),expectContinue&&stream.once("continue",writeBodyH2),stream.on("response",onResponse),stream.on("headers",onInterimResponse),stream.on("end",onEnd),stream.on("error",onError),stream.on("frameError",onFrameError),stream.on("aborted",onAborted),(headersTimeout||bodyTimeout)&&stream.on("timeout",onTimeout),stream.on("trailers",onTrailers),expectContinue||writeBodyH2.call(stream),!0)}function removeRequestStreamListeners(stream){stream.off("error",noop),stream.off("continue",writeBodyH2),stream.off("response",onResponse),stream.off("headers",onInterimResponse),stream.off("end",onEnd),stream.off("error",onError),stream.off("frameError",onFrameError),stream.off("aborted",onAborted),stream.off("timeout",onTimeout),stream.off("trailers",onTrailers),stream.off("data",onData)}function releaseRequestStream(stream){if(stream==null)return;let state2=stream[kRequestStreamState];if(state2==null)return;let{request}=state2;request[kRequestStream]===stream&&detachRequestFromStream(request),!stream.destroyed&&!stream.closed&&(removeRequestStreamListeners(stream),stream.once("error",noop))}function onData(chunk){let stream=this,state2=stream[kRequestStreamState];if(state2==null)return;let{request,maxResponseSize}=state2;if(!(request.aborted||request.completed)){if(maxResponseSize>-1&&state2.bytesRead+chunk.length>maxResponseSize){state2.abort(new ResponseExceededMaxSizeError);return}state2.bytesRead+=chunk.length,request.onResponseData(chunk)===!1&&stream.pause()}}function onInterimResponse(headers){let state2=this[kRequestStreamState];if(state2==null)return;let{request}=state2;if(request.aborted||request.completed)return;let statusCode=headers[HTTP2_HEADER_STATUS];delete headers[HTTP2_HEADER_STATUS],request.onResponseStart(Number(statusCode),headers,noop,"")}function onResponse(headers){let stream=this,state2=stream[kRequestStreamState];if(state2==null)return;let{request}=state2;stream.off("response",onResponse),state2.body!=null&&!state2.bodySent&&!stream.writableEnded&&(stream.removeListener("continue",writeBodyH2),stream.end());let statusCode=headers[HTTP2_HEADER_STATUS];if(delete headers[HTTP2_HEADER_STATUS],request.onResponseStarted(),state2.responseReceived=!0,(state2.headersTimeout||state2.bodyTimeout)&&stream.setTimeout(state2.bodyTimeout),request.aborted||request.completed){releaseRequestStream(stream);return}request.onResponseStart(Number(statusCode),headers,stream.resume.bind(stream),"")===!1&&stream.pause(),stream.on("data",onData)}function onEnd(){let stream=this,state2=stream[kRequestStreamState];if(state2==null)return;let{request}=state2;stream.off("end",onEnd),state2.responseReceived?!request.aborted&&!request.completed&&(state2.pendingEnd=!0,completeRequestStream.call(stream)):state2.abort(new InformationalError("HTTP/2: stream half-closed (remote)"),!0)}function retryRefusedStream(stream,state2){let{client,request}=state2;return state2.responseReceived||request.aborted||request.completed||request[kRefusedStreamRetry]||!canReplayRequest(request)?!1:(request[kRefusedStreamRetry]=!0,detachRequestStreamForClose(request),state2.stream=null,state2.requestFinalized=!0,completeRequest(client,request),client[kQueue].splice(client[kPendingIdx],0,request),client[kResume](),!0)}function onError(err){let stream=this,state2=stream[kRequestStreamState];state2!=null&&(stream.off("error",onError),typeof stream.rstCode=="number"&&stream.rstCode!==NGHTTP2_NO_ERROR&&(err.http2ErrorCode=stream.rstCode),!(stream.rstCode===NGHTTP2_REFUSED_STREAM&&retryRefusedStream(stream,state2))&&state2.abort(err))}function onFrameError(type,code){let stream=this,state2=stream[kRequestStreamState];state2!=null&&(stream.off("frameError",onFrameError),state2.abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`)))}function onAborted(){this.off("data",onData)}function onTimeout(){let stream=this,state2=stream[kRequestStreamState];if(state2==null)return;stream.off("timeout",onTimeout);let err=state2.responseReceived?new BodyTimeoutError(`HTTP/2: "stream timeout after ${state2.bodyTimeout}"`):new HeadersTimeoutError(`HTTP/2: "headers timeout after ${state2.headersTimeout}"`);state2.abort(err)}function onTrailers(trailers){let stream=this,state2=stream[kRequestStreamState];if(state2==null)return;let{request}=state2;stream.off("trailers",onTrailers),stream.off("data",onData),!(request.aborted||request.completed)&&(state2.trailers=trailers)}function writeBodyH2(){let stream=this,state2=stream[kRequestStreamState];state2.bodySent=!0;let{abort,body,client,contentLength,expectsPayload,request}=state2;!body||contentLength===0?writeBuffer(abort,stream,null,client,request,client[kSocket],contentLength,expectsPayload):util.isBuffer(body)?writeBuffer(abort,stream,body,client,request,client[kSocket],contentLength,expectsPayload):util.isBlobLike(body)?typeof body.stream=="function"?writeIterable(abort,stream,body.stream(),client,request,client[kSocket],contentLength,expectsPayload):writeBlob(abort,stream,body,client,request,client[kSocket],contentLength,expectsPayload):util.isStream(body)?writeStream(abort,client[kSocket],expectsPayload,stream,body,client,request,contentLength):util.isIterable(body)?writeIterable(abort,stream,body,client,request,client[kSocket],contentLength,expectsPayload):assert(!1)}function writeBuffer(abort,h2stream,body,client,request,socket,contentLength,expectsPayload){try{body!=null&&util.isBuffer(body)&&(assert(contentLength===body.byteLength,"buffer body must have content length"),h2stream.cork(),h2stream.write(body),h2stream.uncork(),h2stream.end(),request.onBodySent(body)),expectsPayload||(socket[kReset]=!0),request.onRequestSent(),client[kResume]()}catch(error){abort(error)}}function writeStream(abort,socket,expectsPayload,h2stream,body,client,request,contentLength){assert(contentLength!==0||client[kRunning]===0,"stream body cannot be pipelined");let pipe=pipeline(body,h2stream,err=>{err?(util.destroy(pipe,err),abort(err)):(util.removeAllListeners(pipe),request.onRequestSent(),expectsPayload||(socket[kReset]=!0),client[kResume]())});util.addListener(pipe,"data",onPipeData);function onPipeData(chunk){request.onBodySent(chunk)}}async function writeBlob(abort,h2stream,body,client,request,socket,contentLength,expectsPayload){try{if(contentLength!=null&&contentLength!==body.size)throw new RequestContentLengthMismatchError;let buffer=Buffer.from(await body.arrayBuffer());h2stream.cork(),h2stream.write(buffer),h2stream.uncork(),h2stream.end(),request.onBodySent(buffer),request.onRequestSent(),expectsPayload||(socket[kReset]=!0),client[kResume]()}catch(err){abort(err)}}async function writeIterable(abort,h2stream,body,client,request,socket,contentLength,expectsPayload){assert(contentLength!==0||client[kRunning]===0,"iterator body cannot be pipelined");let callback=null;function onDrain(){if(callback){let cb=callback;callback=null,cb()}}let waitForDrain=()=>new Promise((resolve2,reject)=>{assert(callback===null),socket[kError]?reject(socket[kError]):callback=resolve2});h2stream.on("close",onDrain).on("drain",onDrain);try{for await(let chunk of body){if(socket[kError])throw socket[kError];let res=h2stream.write(chunk);request.onBodySent(chunk),res||await waitForDrain()}h2stream.end(),request.onRequestSent(),expectsPayload||(socket[kReset]=!0),client[kResume]()}catch(err){abort(err)}finally{h2stream.off("close",onDrain).off("drain",onDrain)}}module.exports=connectH2}});var require_client=__commonJS({"node_modules/undici/lib/dispatcher/client.js"(exports,module){"use strict";var assert=__require("node:assert"),net=__require("node:net"),http=__require("node:http"),util=require_util(),{ClientStats}=require_stats(),{channels}=require_diagnostics(),Request=require_request(),DispatcherBase=require_dispatcher_base(),{InvalidArgumentError,InformationalError,ClientDestroyedError}=require_errors(),buildConnector=require_connect(),{kUrl,kServerName,kClient,kBusy,kConnect,kResuming,kRunning,kPending,kSize,kQueue,kConnected,kConnecting,kNeedDrain,kKeepAliveDefaultTimeout,kHostHeader,kPendingIdx,kRunningIdx,kError,kPipelining,kKeepAliveTimeoutValue,kMaxHeadersSize,kKeepAliveMaxTimeout,kKeepAliveTimeoutThreshold,kHeadersTimeout,kBodyTimeout,kStrictContentLength,kConnector,kMaxRequests,kCounter,kClose,kDestroy,kDispatch,kLocalAddress,kMaxResponseSize,kOnError,kHTTPContext,kMaxConcurrentStreams,kHostAuthority,kResume,kHTTP2Options}=require_symbols(),connectH1=require_client_h1(),connectH2=require_client_h2(),kClosedResolve=Symbol("kClosedResolve"),getDefaultNodeMaxHeaderSize=http&&http.maxHeaderSize&&Number.isInteger(http.maxHeaderSize)&&http.maxHeaderSize>0?()=>http.maxHeaderSize:()=>{throw new InvalidArgumentError("http module not available or http.maxHeaderSize invalid")},noop=()=>{};function getPipelining(client){return client[kPipelining]??client[kHTTPContext]?.defaultPipelining??1}var h2NamespaceOptsWarning=!1;function emitH2OptionsNamespaceWarning(optName){h2NamespaceOptsWarning!==!0&&(process.emitWarning(`Use h2Options.${optName} instead. ${optName} for H2 will be deprecated in future major.`,{code:"UNDICI-H2-OPTIONS"}),h2NamespaceOptsWarning=!0)}function getMaxConcurrent(client){return client[kHTTPContext]?.version==="h2"?client[kMaxConcurrentStreams]:getPipelining(client)}var Client2=class extends DispatcherBase{constructor(url,{maxHeaderSize,headersTimeout,socketTimeout,requestTimeout,connectTimeout,bodyTimeout,idleTimeout,keepAlive,keepAliveTimeout,maxKeepAliveTimeout,keepAliveMaxTimeout,keepAliveTimeoutThreshold,socketPath,pipelining,tls,strictContentLength,maxCachedSessions,connect:connect2,maxRequestsPerClient,localAddress,maxResponseSize,autoSelectFamily,autoSelectFamilyAttemptTimeout,maxConcurrentStreams,allowH2,useH2c,initialWindowSize,connectionWindowSize,pingInterval,webSocket,h2Options,eventSource}={}){if(keepAlive!==void 0)throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead");if(socketTimeout!==void 0)throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(requestTimeout!==void 0)throw new InvalidArgumentError("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(idleTimeout!==void 0)throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead");if(maxKeepAliveTimeout!==void 0)throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(maxHeaderSize!=null){if(!Number.isInteger(maxHeaderSize)||maxHeaderSize<1)throw new InvalidArgumentError("invalid maxHeaderSize")}else maxHeaderSize=getDefaultNodeMaxHeaderSize();if(socketPath!=null&&typeof socketPath!="string")throw new InvalidArgumentError("invalid socketPath");if(connectTimeout!=null&&(!Number.isFinite(connectTimeout)||connectTimeout<0))throw new InvalidArgumentError("invalid connectTimeout");if(keepAliveTimeout!=null&&(!Number.isFinite(keepAliveTimeout)||keepAliveTimeout<=0))throw new InvalidArgumentError("invalid keepAliveTimeout");if(keepAliveMaxTimeout!=null&&(!Number.isFinite(keepAliveMaxTimeout)||keepAliveMaxTimeout<=0))throw new InvalidArgumentError("invalid keepAliveMaxTimeout");if(keepAliveTimeoutThreshold!=null&&!Number.isFinite(keepAliveTimeoutThreshold))throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold");if(headersTimeout!=null&&(!Number.isInteger(headersTimeout)||headersTimeout<0))throw new InvalidArgumentError("headersTimeout must be a positive integer or zero");if(bodyTimeout!=null&&(!Number.isInteger(bodyTimeout)||bodyTimeout<0))throw new InvalidArgumentError("bodyTimeout must be a positive integer or zero");if(connect2!=null&&typeof connect2!="function"&&typeof connect2!="object")throw new InvalidArgumentError("connect must be a function or an object");if(maxRequestsPerClient!=null&&(!Number.isInteger(maxRequestsPerClient)||maxRequestsPerClient<0))throw new InvalidArgumentError("maxRequestsPerClient must be a positive number");if(localAddress!=null&&(typeof localAddress!="string"||net.isIP(localAddress)===0))throw new InvalidArgumentError("localAddress must be valid string IP address");if(maxResponseSize!=null&&(!Number.isInteger(maxResponseSize)||maxResponseSize<-1))throw new InvalidArgumentError("maxResponseSize must be a positive number");if(autoSelectFamilyAttemptTimeout!=null&&(!Number.isInteger(autoSelectFamilyAttemptTimeout)||autoSelectFamilyAttemptTimeout<-1))throw new InvalidArgumentError("autoSelectFamilyAttemptTimeout must be a positive number");if(allowH2!=null&&typeof allowH2!="boolean")throw new InvalidArgumentError("allowH2 must be a valid boolean value");if(allowH2!==!1)if(h2Options!=null){if(h2Options.useH2c!=null&&typeof h2Options.useH2c!="boolean")throw new InvalidArgumentError("h2Options.useH2c must be a valid boolean value");if(h2Options.settings?.initialWindowSize!=null&&(!Number.isInteger(h2Options.settings.initialWindowSize)||h2Options.settings.initialWindowSize<1))throw new InvalidArgumentError("h2Options.settings.initialWindowSize must be a positive integer, greater than 0");if(h2Options.maxConcurrentStreams!=null&&(!Number.isInteger(h2Options.connectionWindowSize)||h2Options.maxConcurrentStreams<1))throw new InvalidArgumentError("h2Options.maxConcurrentStreams must be a positive integer, greater than 0");if(h2Options.connectionWindowSize!=null&&(!Number.isInteger(h2Options.connectionWindowSize)||h2Options.connectionWindowSize<1))throw new InvalidArgumentError("h2Options.connectionWindowSize must be a positive integer, greater than 0");if(h2Options.pingInterval!=null&&(typeof h2Options.pingInterval!="number"||!Number.isInteger(h2Options.pingInterval)||h2Options.pingInterval<0))throw new InvalidArgumentError("h2Options.pingInterval must be a positive integer, greater or equal to 0")}else{if(useH2c!=null&&typeof useH2c!="boolean")throw emitH2OptionsNamespaceWarning("useH2c"),new InvalidArgumentError("useH2c must be a valid boolean value");if(maxConcurrentStreams!=null&&(typeof maxConcurrentStreams!="number"||maxConcurrentStreams<1))throw emitH2OptionsNamespaceWarning("maxConcurrentStreams"),new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0");if(initialWindowSize!=null&&(!Number.isInteger(initialWindowSize)||initialWindowSize<1))throw emitH2OptionsNamespaceWarning("initialWindowSize"),new InvalidArgumentError("initialWindowSize must be a positive integer, greater than 0");if(connectionWindowSize!=null&&(!Number.isInteger(connectionWindowSize)||connectionWindowSize<1))throw emitH2OptionsNamespaceWarning("connectionWindowSize"),new InvalidArgumentError("connectionWindowSize must be a positive integer, greater than 0");if(pingInterval!=null&&(typeof pingInterval!="number"||!Number.isInteger(pingInterval)||pingInterval<0))throw emitH2OptionsNamespaceWarning("pingInterval"),new InvalidArgumentError("pingInterval must be a positive integer, greater or equal to 0")}if(super({webSocket,eventSource}),typeof connect2!="function")connect2=buildConnector({...tls,maxCachedSessions,allowH2,socketPath,useH2c:h2Options?.useH2c??useH2c,timeout:connectTimeout,...typeof autoSelectFamily=="boolean"?{autoSelectFamily,autoSelectFamilyAttemptTimeout}:void 0,...connect2});else{let customConnect=connect2;connect2=(opts,callback)=>customConnect({...opts,...socketPath!=null?{socketPath}:null,...allowH2!=null?{allowH2}:null},callback)}this[kUrl]=util.parseOrigin(url),this[kHostAuthority]=`${this[kUrl].hostname}${this[kUrl].port?`:${this[kUrl].port}`:""}`,this[kConnector]=connect2,this[kPipelining]=pipelining??1,this[kMaxHeadersSize]=maxHeaderSize,this[kKeepAliveDefaultTimeout]=keepAliveTimeout??4e3,this[kKeepAliveMaxTimeout]=keepAliveMaxTimeout??6e5,this[kKeepAliveTimeoutThreshold]=keepAliveTimeoutThreshold??2e3,this[kKeepAliveTimeoutValue]=this[kKeepAliveDefaultTimeout],this[kServerName]=null,this[kLocalAddress]=localAddress??null,this[kResuming]=0,this[kNeedDrain]=0,this[kHostHeader]=`host: ${this[kHostAuthority]}\r
|
|
41
|
+
`,this[kBodyTimeout]=bodyTimeout??3e5,this[kHeadersTimeout]=headersTimeout??3e5,this[kStrictContentLength]=strictContentLength??!0,this[kMaxRequests]=maxRequestsPerClient,this[kClosedResolve]=null,this[kMaxResponseSize]=maxResponseSize>-1?maxResponseSize:-1,this[kHTTPContext]=null,this[kHTTP2Options]={pingInterval:h2Options?.pingInterval??pingInterval??6e4,connectionWindowSize:h2Options?.connectionWindowSize??connectionWindowSize??524288,maxConcurrentStreams:h2Options?.maxConcurrentStreams??maxConcurrentStreams??100,sessionOptions:{initialWindowSize:h2Options?.initialWindowSize??initialWindowSize??262144}},this[kQueue]=[],this[kRunningIdx]=0,this[kPendingIdx]=0,this[kResume]=sync=>resume(this,sync),this[kOnError]=err=>onError(this,err)}get pipelining(){return this[kPipelining]}set pipelining(value){this[kPipelining]=value,this[kResume](!0)}get stats(){return new ClientStats(this)}get[kPending](){return this[kQueue].length-this[kPendingIdx]}get[kRunning](){return this[kPendingIdx]-this[kRunningIdx]}get[kSize](){return this[kQueue].length-this[kRunningIdx]}get[kConnected](){return!!this[kHTTPContext]&&!this[kConnecting]&&!this[kHTTPContext].destroyed}get[kBusy](){let allowsMux=this[kHTTPContext]?.version==="h2";return!!(this[kHTTPContext]?.busy(null)||this[kSize]>=(getMaxConcurrent(this)||1)||this[kPending]>0&&!allowsMux)}[kConnect](cb){connect(this),this.once("connect",cb)}[kDispatch](opts,handler){let request=new Request(this[kUrl].origin,opts,handler);return this[kQueue].push(request),this[kResuming]||(util.bodyLength(request.body)==null&&util.isIterable(request.body)?(this[kResuming]=1,queueMicrotask(()=>resume(this))):this[kResume](!0)),this[kResuming]&&this[kNeedDrain]!==2&&this[kBusy]&&(this[kNeedDrain]=2),this[kNeedDrain]<2}[kClose](){return new Promise(resolve2=>{this[kSize]?this[kClosedResolve]=resolve2:resolve2(null)})}[kDestroy](err){return new Promise(resolve2=>{let requests=this[kQueue].splice(this[kPendingIdx]);for(let i=0;i<requests.length;i++){let request=requests[i];request!=null&&util.errorRequest(this,request,err)}let callback=()=>{this[kClosedResolve]&&(this[kClosedResolve](),this[kClosedResolve]=null),resolve2(null)};this[kHTTPContext]?(this[kHTTPContext].destroy(err,callback),this[kHTTPContext]=null):queueMicrotask(callback),this[kResume]()})}};function onError(client,err){if(client[kRunning]===0&&err.code!=="UND_ERR_INFO"&&err.code!=="UND_ERR_SOCKET"){assert(client[kPendingIdx]===client[kRunningIdx]);let requests=client[kQueue].splice(client[kRunningIdx]);for(let i=0;i<requests.length;i++){let request=requests[i];request!=null&&util.errorRequest(client,request,err)}assert(client[kSize]===0)}}function connect(client){assert(!client[kConnecting]),assert(!client[kHTTPContext]);let{host,hostname,protocol,port}=client[kUrl];if(hostname[0]==="["){let idx=hostname.indexOf("]");assert(idx!==-1);let ip=hostname.substring(1,idx);assert(net.isIPv6(ip)),hostname=ip}client[kConnecting]=!0,channels.beforeConnect.hasSubscribers&&channels.beforeConnect.publish({connectParams:{host,hostname,protocol,port,version:client[kHTTPContext]?.version,servername:client[kServerName],localAddress:client[kLocalAddress]},connector:client[kConnector]});try{client[kConnector]({host,hostname,protocol,port,servername:client[kServerName],localAddress:client[kLocalAddress]},(err,socket)=>{if(err){handleConnectError(client,err,{host,hostname,protocol,port}),client[kResume]();return}if(client.destroyed){util.destroy(socket.on("error",noop),new ClientDestroyedError),client[kResume]();return}assert(socket);try{client[kHTTPContext]=socket.alpnProtocol==="h2"?connectH2(client,socket):connectH1(client,socket)}catch(err2){socket.destroy().on("error",noop),handleConnectError(client,err2,{host,hostname,protocol,port}),client[kResume]();return}client[kConnecting]=!1,socket[kCounter]=0,socket[kMaxRequests]=client[kMaxRequests],socket[kClient]=client,socket[kError]=null,channels.connected.hasSubscribers&&channels.connected.publish({connectParams:{host,hostname,protocol,port,version:client[kHTTPContext]?.version,servername:client[kServerName],localAddress:client[kLocalAddress]},connector:client[kConnector],socket}),client.emit("connect",client[kUrl],[client]),client[kResume]()})}catch(err){handleConnectError(client,err,{host,hostname,protocol,port}),client[kResume]()}}function handleConnectError(client,err,{host,hostname,protocol,port}){if(!client.destroyed){if(client[kConnecting]=!1,channels.connectError.hasSubscribers&&channels.connectError.publish({connectParams:{host,hostname,protocol,port,version:client[kHTTPContext]?.version,servername:client[kServerName],localAddress:client[kLocalAddress]},connector:client[kConnector],error:err}),err.code==="ERR_TLS_CERT_ALTNAME_INVALID"){let running=client[kQueue].splice(client[kRunningIdx],client[kRunning]);client[kPendingIdx]=client[kRunningIdx];for(let i=0;i<running.length;i++)util.errorRequest(client,running[i],err);for(;client[kPending]>0&&client[kQueue][client[kPendingIdx]].servername===client[kServerName];){let request=client[kQueue].splice(client[kPendingIdx],1)[0];util.errorRequest(client,request,err)}}else onError(client,err);client.emit("connectionError",client[kUrl],[client],err)}}function emitDrain(client){client[kNeedDrain]=0,client.emit("drain",client[kUrl],[client])}function resume(client,sync){client[kResuming]!==2&&(client[kResuming]=2,_resume(client,sync),client[kResuming]=0,client[kRunningIdx]>256&&(client[kQueue].splice(0,client[kRunningIdx]),client[kPendingIdx]-=client[kRunningIdx],client[kRunningIdx]=0))}function _resume(client,sync){for(;;){if(client.destroyed){assert(client[kPending]===0);return}if(client[kClosedResolve]&&!client[kSize]){client[kClosedResolve](),client[kClosedResolve]=null;return}if(client[kHTTPContext]&&client[kHTTPContext].resume(),client[kBusy])client[kNeedDrain]=2;else if(client[kNeedDrain]===2){sync?(client[kNeedDrain]=1,queueMicrotask(()=>emitDrain(client))):emitDrain(client);continue}if(client[kPending]===0||client[kRunning]>=(getMaxConcurrent(client)||1))return;let request=client[kQueue][client[kPendingIdx]];if(request===null)return;if(client[kUrl].protocol==="https:"&&client[kServerName]!==request.servername){if(client[kRunning]>0)return;client[kServerName]=request.servername,client[kHTTPContext]?.destroy(new InformationalError("servername changed"),()=>{client[kHTTPContext]=null,resume(client)})}if(client[kConnecting])return;if(!client[kHTTPContext]){client[kServerName]=request.servername,connect(client);return}if(client[kHTTPContext].destroyed||client[kHTTPContext].busy(request))return;!request.aborted&&client[kHTTPContext].write(request)?client[kPendingIdx]++:client[kQueue].splice(client[kPendingIdx],1)}}module.exports=Client2}});var require_fixed_queue=__commonJS({"node_modules/undici/lib/dispatcher/fixed-queue.js"(exports,module){"use strict";var FixedCircularBuffer=class{bottom=0;top=0;list=new Array(2048).fill(void 0);next=null;isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(data){this.list[this.top]=data,this.top=this.top+1&2047}shift(){let nextItem=this.list[this.bottom];return nextItem===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,nextItem)}};module.exports=class{constructor(){this.head=this.tail=new FixedCircularBuffer}isEmpty(){return this.head.isEmpty()}push(data){this.head.isFull()&&(this.head=this.head.next=new FixedCircularBuffer),this.head.push(data)}shift(){let tail=this.tail,next=tail.shift();return tail.isEmpty()&&tail.next!==null&&(this.tail=tail.next,tail.next=null),next}}}});var require_pool_base=__commonJS({"node_modules/undici/lib/dispatcher/pool-base.js"(exports,module){"use strict";var{PoolStats}=require_stats(),DispatcherBase=require_dispatcher_base(),FixedQueue=require_fixed_queue(),{kConnected,kSize,kRunning,kPending,kQueued,kBusy,kFree,kUrl,kClose,kDestroy,kDispatch}=require_symbols(),kClients=Symbol("clients"),kNeedDrain=Symbol("needDrain"),kQueue=Symbol("queue"),kClosedResolve=Symbol("closed resolve"),kOnDrain=Symbol("onDrain"),kOnConnect=Symbol("onConnect"),kOnDisconnect=Symbol("onDisconnect"),kOnConnectionError=Symbol("onConnectionError"),kGetDispatcher=Symbol("get dispatcher"),kHasDispatcher=Symbol("has dispatcher"),kAddClient=Symbol("add client"),kRemoveClient=Symbol("remove client"),PoolBase=class extends DispatcherBase{[kQueue]=new FixedQueue;[kQueued]=0;[kClients]=[];[kNeedDrain]=!1;[kOnDrain](client,origin,targets){let queue=this[kQueue],needDrain=!1;for(;!needDrain;){let item=queue.shift();if(!item)break;this[kQueued]--,needDrain=!client.dispatch(item.opts,item.handler)}if(client[kNeedDrain]=needDrain,!needDrain&&this[kNeedDrain]&&(this[kNeedDrain]=!1,this.emit("drain",origin,[this,...targets])),this[kClosedResolve]&&queue.isEmpty()){let closeAll=[];for(let i=0;i<this[kClients].length;i++){let client2=this[kClients][i];client2.destroyed||closeAll.push(client2.close())}return Promise.all(closeAll).then(this[kClosedResolve])}}[kOnConnect]=(origin,targets)=>{this.emit("connect",origin,[this,...targets])};[kOnDisconnect]=(origin,targets,err)=>{this.emit("disconnect",origin,[this,...targets],err)};[kOnConnectionError]=(origin,targets,err)=>{this.emit("connectionError",origin,[this,...targets],err)};get[kBusy](){return this[kNeedDrain]}get[kConnected](){let ret=0;for(let{[kConnected]:connected}of this[kClients])ret+=connected;return ret}get[kFree](){let ret=0;for(let{[kConnected]:connected,[kNeedDrain]:needDrain}of this[kClients])ret+=connected&&!needDrain;return ret}get[kPending](){let ret=this[kQueued];for(let{[kPending]:pending}of this[kClients])ret+=pending;return ret}get[kRunning](){let ret=0;for(let{[kRunning]:running}of this[kClients])ret+=running;return ret}get[kSize](){let ret=this[kQueued];for(let{[kSize]:size}of this[kClients])ret+=size;return ret}get stats(){return new PoolStats(this)}[kClose](){if(this[kQueue].isEmpty()){let closeAll=[];for(let i=0;i<this[kClients].length;i++){let client=this[kClients][i];client.destroyed||closeAll.push(client.close())}return Promise.all(closeAll)}else return new Promise(resolve2=>{this[kClosedResolve]=resolve2})}[kDestroy](err){for(;;){let item=this[kQueue].shift();if(!item)break;item.handler.onResponseError(null,err)}let destroyAll=new Array(this[kClients].length);for(let i=0;i<this[kClients].length;i++)destroyAll[i]=this[kClients][i].destroy(err);return Promise.all(destroyAll)}[kDispatch](opts,handler){let dispatcher=this[kGetDispatcher]();return dispatcher?dispatcher.dispatch(opts,handler)||(dispatcher[kNeedDrain]=!0,this[kNeedDrain]=!this[kHasDispatcher]()):(this[kNeedDrain]=!0,this[kQueue].push({opts,handler}),this[kQueued]++),!this[kNeedDrain]}[kHasDispatcher](){for(let i=0;i<this[kClients].length;i++){let dispatcher=this[kClients][i];if(!dispatcher[kNeedDrain]&&dispatcher.closed!==!0&&dispatcher.destroyed!==!0)return!0}return!1}[kAddClient](client){return client.on("drain",this[kOnDrain].bind(this,client)).on("connect",this[kOnConnect]).on("disconnect",this[kOnDisconnect]).on("connectionError",this[kOnConnectionError]),this[kClients].push(client),this[kNeedDrain]&&queueMicrotask(()=>{this[kNeedDrain]&&this[kOnDrain](client,client[kUrl],[client,this])}),this}[kRemoveClient](client){let idx=this[kClients].indexOf(client);idx!==-1&&this[kClients].splice(idx,1),client.close(()=>{}),this[kNeedDrain]=!this[kClients].some(dispatcher=>!dispatcher[kNeedDrain]&&dispatcher.closed!==!0&&dispatcher.destroyed!==!0)}};module.exports={PoolBase,kClients,kNeedDrain,kAddClient,kRemoveClient,kGetDispatcher,kHasDispatcher}}});var require_pool=__commonJS({"node_modules/undici/lib/dispatcher/pool.js"(exports,module){"use strict";var{PoolBase,kClients,kNeedDrain,kAddClient,kGetDispatcher,kHasDispatcher,kRemoveClient}=require_pool_base(),Client2=require_client(),{InvalidArgumentError}=require_errors(),util=require_util(),{kUrl}=require_symbols(),buildConnector=require_connect(),kOptions=Symbol("options"),kConnections=Symbol("connections"),kFactory=Symbol("factory");function defaultFactory(origin,opts){return new Client2(origin,opts)}var Pool2=class extends PoolBase{constructor(origin,{connections,factory=defaultFactory,connect,connectTimeout,tls,maxCachedSessions,socketPath,autoSelectFamily,autoSelectFamilyAttemptTimeout,allowH2,useH2c,clientTtl,...options}={}){if(connections!=null&&(!Number.isFinite(connections)||connections<0))throw new InvalidArgumentError("invalid connections");if(typeof factory!="function")throw new InvalidArgumentError("factory must be a function.");if(connect!=null&&typeof connect!="function"&&typeof connect!="object")throw new InvalidArgumentError("connect must be a function or an object");typeof connect!="function"&&(connect=buildConnector({...tls,maxCachedSessions,allowH2,useH2c,socketPath,timeout:connectTimeout,...typeof autoSelectFamily=="boolean"?{autoSelectFamily,autoSelectFamilyAttemptTimeout}:void 0,...connect})),super(options),this[kConnections]=connections||null,this[kUrl]=util.parseOrigin(origin),this[kOptions]={...util.deepClone(options),connect,allowH2,useH2c,clientTtl,socketPath},this[kFactory]=factory,this.on("connect",(origin2,targets)=>{if(clientTtl!=null&&clientTtl>0)for(let target of targets)Object.assign(target,{ttl:Date.now()})}),this.on("connectionError",(origin2,targets,error)=>{for(let target of targets){let idx=this[kClients].indexOf(target);idx!==-1&&this[kClients].splice(idx,1)}})}[kGetDispatcher](){let clientTtlOption=this[kOptions].clientTtl;for(let i=0;i<this[kClients].length;i++){let client=this[kClients][i];if(clientTtlOption!=null&&clientTtlOption>0&&client.ttl&&Date.now()-client.ttl>clientTtlOption)this[kRemoveClient](client),i--;else if(!client[kNeedDrain])return client}if(!this[kConnections]||this[kClients].length<this[kConnections]){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),dispatcher}}[kHasDispatcher](){let clientTtlOption=this[kOptions].clientTtl;for(let i=0;i<this[kClients].length;i++){let client=this[kClients][i];if(clientTtlOption!=null&&clientTtlOption>0&&client.ttl&&Date.now()-client.ttl>clientTtlOption)this[kRemoveClient](client),i--;else if(!client[kNeedDrain])return!0}if(!this[kConnections]||this[kClients].length<this[kConnections]){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),!0}return!1}};module.exports=Pool2}});var require_balanced_pool=__commonJS({"node_modules/undici/lib/dispatcher/balanced-pool.js"(exports,module){"use strict";var{BalancedPoolMissingUpstreamError,InvalidArgumentError}=require_errors(),{PoolBase,kClients,kNeedDrain,kAddClient,kRemoveClient,kGetDispatcher}=require_pool_base(),Pool2=require_pool(),{kOriginless,kUrl}=require_symbols(),util=require_util(),kFactory=Symbol("factory"),kOptions=Symbol("options"),kGreatestCommonDivisor=Symbol("kGreatestCommonDivisor"),kCurrentWeight=Symbol("kCurrentWeight"),kIndex=Symbol("kIndex"),kWeight=Symbol("kWeight"),kMaxWeightPerServer=Symbol("kMaxWeightPerServer"),kErrorPenalty=Symbol("kErrorPenalty");function getGreatestCommonDivisor(a,b){if(a===0)return b;for(;b!==0;){let t=b;b=a%b,a=t}return a}function defaultFactory(origin,opts){return new Pool2(origin,opts)}var BalancedPool=class extends PoolBase{constructor(upstreams=[],{factory=defaultFactory,connect,tls,...opts}={}){if(typeof factory!="function")throw new InvalidArgumentError("factory must be a function.");super(opts),this[kOriginless]=!0,connect&&typeof connect!="function"&&(connect={...connect}),tls&&typeof tls!="function"&&(tls={...tls}),this[kOptions]={...util.deepClone(opts),connect,tls},this[kIndex]=-1,this[kCurrentWeight]=0,this[kMaxWeightPerServer]=this[kOptions].maxWeightPerServer||100,this[kErrorPenalty]=this[kOptions].errorPenalty||15,Array.isArray(upstreams)||(upstreams=[upstreams]),this[kFactory]=factory;for(let upstream of upstreams)this.addUpstream(upstream);this._updateBalancedPoolStats()}addUpstream(upstream){let upstreamOrigin=util.parseOrigin(upstream).origin;if(this[kClients].find(pool2=>pool2[kUrl].origin===upstreamOrigin&&pool2.closed!==!0&&pool2.destroyed!==!0))return this;let pool=this[kFactory](upstreamOrigin,this[kOptions]);this[kAddClient](pool),pool.on("connect",()=>{pool[kWeight]=Math.min(this[kMaxWeightPerServer],pool[kWeight]+this[kErrorPenalty])}),pool.on("connectionError",()=>{pool[kWeight]=Math.max(1,pool[kWeight]-this[kErrorPenalty]),this._updateBalancedPoolStats()}),pool.on("disconnect",(...args)=>{let err=args[2];err&&err.code==="UND_ERR_SOCKET"&&(pool[kWeight]=Math.max(1,pool[kWeight]-this[kErrorPenalty]),this._updateBalancedPoolStats())});for(let client of this[kClients])client[kWeight]=this[kMaxWeightPerServer];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let result=0;for(let i=0;i<this[kClients].length;i++)result=getGreatestCommonDivisor(this[kClients][i][kWeight],result);this[kGreatestCommonDivisor]=result}removeUpstream(upstream){let upstreamOrigin=util.parseOrigin(upstream).origin,pool=this[kClients].find(pool2=>pool2[kUrl].origin===upstreamOrigin&&pool2.closed!==!0&&pool2.destroyed!==!0);return pool&&this[kRemoveClient](pool),this}getUpstream(upstream){let upstreamOrigin=util.parseOrigin(upstream).origin;return this[kClients].find(pool=>pool[kUrl].origin===upstreamOrigin&&pool.closed!==!0&&pool.destroyed!==!0)}get upstreams(){return this[kClients].filter(dispatcher=>dispatcher.closed!==!0&&dispatcher.destroyed!==!0).map(p=>p[kUrl].origin)}[kGetDispatcher](){if(this[kClients].length===0)throw new BalancedPoolMissingUpstreamError;let counter=0,maxWeightIndex=-1;for(;counter++<this[kClients].length;){this[kIndex]=(this[kIndex]+1)%this[kClients].length;let pool=this[kClients][this[kIndex]];if(this[kIndex]===0&&(this[kCurrentWeight]=this[kCurrentWeight]-this[kGreatestCommonDivisor],this[kCurrentWeight]<=0&&(this[kCurrentWeight]=this[kMaxWeightPerServer])),!(pool[kNeedDrain]||pool.closed===!0||pool.destroyed===!0)&&((maxWeightIndex===-1||pool[kWeight]>this[kClients][maxWeightIndex][kWeight])&&(maxWeightIndex=this[kIndex]),pool[kWeight]>=this[kCurrentWeight]))return pool}if(maxWeightIndex!==-1)return this[kCurrentWeight]=this[kClients][maxWeightIndex][kWeight],this[kIndex]=maxWeightIndex,this[kClients][maxWeightIndex]}};module.exports=BalancedPool}});var require_round_robin_pool=__commonJS({"node_modules/undici/lib/dispatcher/round-robin-pool.js"(exports,module){"use strict";var{PoolBase,kClients,kNeedDrain,kAddClient,kGetDispatcher,kHasDispatcher,kRemoveClient}=require_pool_base(),Client2=require_client(),{InvalidArgumentError}=require_errors(),util=require_util(),{kUrl}=require_symbols(),buildConnector=require_connect(),kOptions=Symbol("options"),kConnections=Symbol("connections"),kFactory=Symbol("factory"),kIndex=Symbol("index");function defaultFactory(origin,opts){return new Client2(origin,opts)}var RoundRobinPool=class extends PoolBase{constructor(origin,{connections,factory=defaultFactory,connect,connectTimeout,tls,maxCachedSessions,socketPath,autoSelectFamily,autoSelectFamilyAttemptTimeout,allowH2,clientTtl,...options}={}){if(connections!=null&&(!Number.isFinite(connections)||connections<0))throw new InvalidArgumentError("invalid connections");if(typeof factory!="function")throw new InvalidArgumentError("factory must be a function.");if(connect!=null&&typeof connect!="function"&&typeof connect!="object")throw new InvalidArgumentError("connect must be a function or an object");typeof connect!="function"&&(connect=buildConnector({...tls,maxCachedSessions,allowH2,socketPath,timeout:connectTimeout,...typeof autoSelectFamily=="boolean"?{autoSelectFamily,autoSelectFamilyAttemptTimeout}:void 0,...connect})),super(options),this[kConnections]=connections||null,this[kUrl]=util.parseOrigin(origin),this[kOptions]={...util.deepClone(options),connect,allowH2,clientTtl,socketPath},this[kFactory]=factory,this[kIndex]=-1,this.on("connect",(origin2,targets)=>{if(clientTtl!=null&&clientTtl>0)for(let target of targets)Object.assign(target,{ttl:Date.now()})}),this.on("connectionError",(origin2,targets,error)=>{for(let target of targets){let idx=this[kClients].indexOf(target);idx!==-1&&this[kClients].splice(idx,1)}})}[kGetDispatcher](){let clientTtlOption=this[kOptions].clientTtl;if(this[kClients].length===0){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),dispatcher}let checked=0;for(;checked<this[kClients].length;){this[kIndex]=(this[kIndex]+1)%this[kClients].length;let client=this[kClients][this[kIndex]];if(clientTtlOption!=null&&clientTtlOption>0&&client.ttl&&Date.now()-client.ttl>clientTtlOption){this[kRemoveClient](client),this[kIndex]--;continue}if(!client[kNeedDrain])return client;checked++}if(!this[kConnections]||this[kClients].length<this[kConnections]){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),dispatcher}}[kHasDispatcher](){let clientTtlOption=this[kOptions].clientTtl;for(let i=0;i<this[kClients].length;i++){let client=this[kClients][i];if(clientTtlOption!=null&&clientTtlOption>0&&client.ttl&&Date.now()-client.ttl>clientTtlOption)this[kRemoveClient](client),i<=this[kIndex]&&this[kIndex]--,i--;else if(!client[kNeedDrain])return!0}if(!this[kConnections]||this[kClients].length<this[kConnections]){let dispatcher=this[kFactory](this[kUrl],this[kOptions]);return this[kAddClient](dispatcher),!0}return!1}};module.exports=RoundRobinPool}});var require_agent=__commonJS({"node_modules/undici/lib/dispatcher/agent.js"(exports,module){"use strict";var{InvalidArgumentError,MaxOriginsReachedError}=require_errors(),{kBusy,kClients,kConnected,kRunning,kPending,kClose,kDestroy,kDispatch,kUrl}=require_symbols(),DispatcherBase=require_dispatcher_base(),Pool2=require_pool(),Client2=require_client(),util=require_util(),kOnConnect=Symbol("onConnect"),kOnDisconnect=Symbol("onDisconnect"),kOnConnectionError=Symbol("onConnectionError"),kOnDrain=Symbol("onDrain"),kFactory=Symbol("factory"),kOptions=Symbol("options"),kOrigins=Symbol("origins");function defaultFactory(origin,opts){return opts&&opts.connections===1?new Client2(origin,opts):new Pool2(origin,opts)}var Agent=class extends DispatcherBase{constructor({factory=defaultFactory,maxOrigins=1/0,connect,...options}={}){if(typeof factory!="function")throw new InvalidArgumentError("factory must be a function.");if(connect!=null&&typeof connect!="function"&&typeof connect!="object")throw new InvalidArgumentError("connect must be a function or an object");if(typeof maxOrigins!="number"||Number.isNaN(maxOrigins)||maxOrigins<=0)throw new InvalidArgumentError("maxOrigins must be a number greater than 0");super(options),connect&&typeof connect!="function"&&(connect={...connect}),this[kOptions]={...util.deepClone(options),maxOrigins,connect},this[kFactory]=factory,this[kClients]=new Map,this[kOrigins]=new Set,this[kOnDrain]=(origin,targets)=>{this.emit("drain",origin,[this,...targets])},this[kOnConnect]=(origin,targets)=>{this.emit("connect",origin,[this,...targets])},this[kOnDisconnect]=(origin,targets,err)=>{this.emit("disconnect",origin,[this,...targets],err)},this[kOnConnectionError]=(origin,targets,err)=>{this.emit("connectionError",origin,[this,...targets],err)}}get[kRunning](){let ret=0;for(let dispatcher of this[kClients].values())ret+=dispatcher[kRunning];return ret}[kDispatch](opts,handler){let origin;if(opts.origin&&(typeof opts.origin=="string"||opts.origin instanceof URL))origin=String(opts.origin);else throw new InvalidArgumentError("opts.origin must be a non-empty string or URL.");let allowH2=opts.allowH2??this[kOptions].allowH2,key=allowH2===!1?`${origin}#http1-only`:origin;if(this[kOrigins].size>=this[kOptions].maxOrigins&&!this[kOrigins].has(origin))throw new MaxOriginsReachedError;let dispatcher=this[kClients].get(key);if(!dispatcher){dispatcher=this[kFactory](opts.origin,allowH2===!1?{...this[kOptions],allowH2:!1}:this[kOptions]);let closeClientIfUnused=()=>{if(this[kClients].get(key)!==dispatcher||dispatcher[kConnected]>0||dispatcher[kBusy]||dispatcher[kPending]>0)return;this[kClients].delete(key),dispatcher.destroyed||dispatcher.close();let hasOrigin=!1;for(let k of this[kClients].keys())if(k===origin||k===`${origin}#http1-only`){hasOrigin=!0;break}hasOrigin||this[kOrigins].delete(origin)};dispatcher.on("drain",this[kOnDrain]).on("connect",this[kOnConnect]).on("disconnect",(origin2,targets,err)=>{closeClientIfUnused(),this[kOnDisconnect](origin2,targets,err)}).on("connectionError",(origin2,targets,err)=>{closeClientIfUnused(),this[kOnConnectionError](origin2,targets,err)}),this[kClients].set(key,dispatcher),this[kOrigins].add(origin)}return dispatcher.dispatch(opts,handler)}[kClose](){let closePromises=[];for(let dispatcher of this[kClients].values())closePromises.push(dispatcher.close());return this[kClients].clear(),Promise.all(closePromises)}[kDestroy](err){let destroyPromises=[];for(let dispatcher of this[kClients].values())destroyPromises.push(dispatcher.destroy(err));return this[kClients].clear(),Promise.all(destroyPromises)}get stats(){let allClientStats={};for(let dispatcher of this[kClients].values())dispatcher.stats&&(allClientStats[dispatcher[kUrl].origin]=dispatcher.stats);return allClientStats}};module.exports=Agent}});var require_dispatcher1_wrapper=__commonJS({"node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js"(exports,module){"use strict";var Dispatcher=require_dispatcher(),{InvalidArgumentError}=require_errors(),{toRawHeaders}=require_util(),{kOriginless,kUrl}=require_symbols(),LegacyHandlerWrapper=class{#handler;constructor(handler){this.#handler=handler}onRequestStart(controller,context){this.#handler.onConnect?.(reason=>controller.abort(reason),context)}onRequestUpgrade(controller,statusCode,headers,socket){let rawHeaders=controller?.rawHeaders??toRawHeaders(headers??{});this.#handler.onUpgrade?.(statusCode,rawHeaders,socket)}onResponseStart(controller,statusCode,headers,statusMessage){let rawHeaders=controller?.rawHeaders??toRawHeaders(headers??{});this.#handler.onHeaders?.(statusCode,rawHeaders,()=>controller.resume(),statusMessage)===!1&&controller.pause()}onResponseData(controller,chunk){this.#handler.onData?.(chunk)===!1&&controller.pause()}onResponseEnd(controller,trailers){let rawTrailers=controller?.rawTrailers??toRawHeaders(trailers??{});this.#handler.onComplete?.(rawTrailers)}onResponseError(_controller,err){if(!this.#handler.onError)throw err;this.#handler.onError(err)}onBodySent(chunk){this.#handler.onBodySent?.(chunk)}onRequestSent(){this.#handler.onRequestSent?.()}onResponseStarted(){this.#handler.onResponseStarted?.()}},Dispatcher1Wrapper=class _Dispatcher1Wrapper extends Dispatcher{#dispatcher;constructor(dispatcher){if(super(),!dispatcher||typeof dispatcher.dispatch!="function")throw new InvalidArgumentError("Argument dispatcher must implement dispatch");this.#dispatcher=dispatcher,this[kUrl]=dispatcher[kUrl],this[kOriginless]=dispatcher[kOriginless]}static wrapHandler(handler){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");return typeof handler.onRequestStart=="function"?handler:new LegacyHandlerWrapper(handler)}dispatch(opts,handler){return opts.allowH2!==!1&&(opts={...opts,allowH2:!1}),this.#dispatcher.dispatch(opts,_Dispatcher1Wrapper.wrapHandler(handler))}close(...args){return this.#dispatcher.close(...args)}destroy(...args){return this.#dispatcher.destroy(...args)}};module.exports=Dispatcher1Wrapper}});var require_socks5_utils=__commonJS({"node_modules/undici/lib/core/socks5-utils.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),net=__require("node:net"),{InvalidArgumentError}=require_errors();function parseAddress(address){if(net.isIPv4(address)){let parts=address.split(".").map(Number);return{type:1,buffer:Buffer2.from(parts)}}if(net.isIPv6(address))return{type:4,buffer:parseIPv6(address)};let domainBuffer=Buffer2.from(address,"utf8");if(domainBuffer.length>255)throw new InvalidArgumentError("Domain name too long (max 255 bytes)");return{type:3,buffer:Buffer2.concat([Buffer2.from([domainBuffer.length]),domainBuffer])}}function parseIPv6(address){let buffer=Buffer2.alloc(16),normalizedAddress=address;if(address.includes(".")){let lastColonIndex=address.lastIndexOf(":"),ipv4Part=address.slice(lastColonIndex+1);if(net.isIPv4(ipv4Part)){let octets=ipv4Part.split(".").map(Number),high=(octets[0]<<8|octets[1]).toString(16),low=(octets[2]<<8|octets[3]).toString(16);normalizedAddress=`${address.slice(0,lastColonIndex)}:${high}:${low}`}}let doubleColonIndex=normalizedAddress.indexOf("::");if(doubleColonIndex!==-1){let before=normalizedAddress.slice(0,doubleColonIndex),after=normalizedAddress.slice(doubleColonIndex+2),beforeParts=before===""?[]:before.split(":"),afterParts=after===""?[]:after.split(":"),bufferIndex=0;for(let part of beforeParts)buffer.writeUInt16BE(parseInt(part,16),bufferIndex),bufferIndex+=2;bufferIndex=16-afterParts.length*2;for(let part of afterParts)buffer.writeUInt16BE(parseInt(part,16),bufferIndex),bufferIndex+=2}else{let parts=normalizedAddress.split(":");for(let i=0;i<parts.length;i++)buffer.writeUInt16BE(parseInt(parts[i],16),i*2)}return buffer}function buildAddressBuffer(type,addressBuffer,port){let portBuffer=Buffer2.allocUnsafe(2);return portBuffer.writeUInt16BE(port,0),Buffer2.concat([Buffer2.from([type]),addressBuffer,portBuffer])}function parseResponseAddress(buffer,offset=0){if(buffer.length<offset+1)throw new InvalidArgumentError("Buffer too small to contain address type");let addressType=buffer[offset],address,currentOffset=offset+1;switch(addressType){case 1:{if(buffer.length<currentOffset+6)throw new InvalidArgumentError("Buffer too small for IPv4 address");address=Array.from(buffer.subarray(currentOffset,currentOffset+4)).join("."),currentOffset+=4;break}case 3:{if(buffer.length<currentOffset+1)throw new InvalidArgumentError("Buffer too small for domain length");let domainLength=buffer[currentOffset];if(currentOffset+=1,buffer.length<currentOffset+domainLength+2)throw new InvalidArgumentError("Buffer too small for domain address");address=buffer.subarray(currentOffset,currentOffset+domainLength).toString("utf8"),currentOffset+=domainLength;break}case 4:{if(buffer.length<currentOffset+18)throw new InvalidArgumentError("Buffer too small for IPv6 address");let parts=[];for(let i=0;i<8;i++){let value=buffer.readUInt16BE(currentOffset+i*2);parts.push(value.toString(16))}address=parts.join(":"),currentOffset+=16;break}default:throw new InvalidArgumentError(`Invalid address type: ${addressType}`)}if(buffer.length<currentOffset+2)throw new InvalidArgumentError("Buffer too small for port");let port=buffer.readUInt16BE(currentOffset);return currentOffset+=2,{address,port,bytesRead:currentOffset-offset}}function createReplyError(replyCode){let message={1:"General SOCKS server failure",2:"Connection not allowed by ruleset",3:"Network unreachable",4:"Host unreachable",5:"Connection refused",6:"TTL expired",7:"Command not supported",8:"Address type not supported"}[replyCode]||`Unknown SOCKS5 error code: ${replyCode}`,error=new Error(message);return error.code=`SOCKS5_${replyCode}`,error}module.exports={parseAddress,parseIPv6,buildAddressBuffer,parseResponseAddress,createReplyError}}});var require_socks5_client=__commonJS({"node_modules/undici/lib/core/socks5-client.js"(exports,module){"use strict";var{EventEmitter:EventEmitter2}=__require("node:events"),{Buffer:Buffer2}=__require("node:buffer"),{InvalidArgumentError,Socks5ProxyError}=require_errors(),{debuglog}=__require("node:util"),{parseAddress}=require_socks5_utils(),debug=debuglog("undici:socks5"),EMPTY_BUFFER=Buffer2.alloc(0),SOCKS_VERSION=5,AUTH_METHODS={NO_AUTH:0,GSSAPI:1,USERNAME_PASSWORD:2,NO_ACCEPTABLE:255},COMMANDS={CONNECT:1,BIND:2,UDP_ASSOCIATE:3},ADDRESS_TYPES={IPV4:1,DOMAIN:3,IPV6:4},REPLY_CODES={SUCCEEDED:0,GENERAL_FAILURE:1,CONNECTION_NOT_ALLOWED:2,NETWORK_UNREACHABLE:3,HOST_UNREACHABLE:4,CONNECTION_REFUSED:5,TTL_EXPIRED:6,COMMAND_NOT_SUPPORTED:7,ADDRESS_TYPE_NOT_SUPPORTED:8},STATES={INITIAL:"initial",HANDSHAKING:"handshaking",AUTHENTICATING:"authenticating",AUTHENTICATED:"authenticated",CONNECTING:"connecting",CONNECTED:"connected",ERROR:"error",CLOSED:"closed"},Socks5Client=class extends EventEmitter2{constructor(socket,options={}){if(super(),!socket)throw new InvalidArgumentError("socket is required");this.socket=socket,this.options=options,this.state=STATES.INITIAL,this.buffer=EMPTY_BUFFER,this.onSocketData=this.onData.bind(this),this.onSocketError=this.onError.bind(this),this.onSocketClose=this.onClose.bind(this),this.authMethods=[],options.username&&options.password&&this.authMethods.push(AUTH_METHODS.USERNAME_PASSWORD),this.authMethods.push(AUTH_METHODS.NO_AUTH),this.socket.on("data",this.onSocketData),this.socket.on("error",this.onSocketError),this.socket.on("close",this.onSocketClose)}onData(data){debug("received data",data.length,"bytes in state",this.state),this.buffer=Buffer2.concat([this.buffer,data]);try{switch(this.state){case STATES.HANDSHAKING:this.handleHandshakeResponse();break;case STATES.AUTHENTICATING:this.handleAuthResponse();break;case STATES.CONNECTING:this.handleConnectResponse();break}}catch(err){this.onError(err)}}onError(err){debug("socket error",err),this.state=STATES.ERROR,this.emit("error",err),this.destroy()}onClose(){debug("socket closed"),this.state=STATES.CLOSED,this.emit("close")}destroy(){this.socket&&!this.socket.destroyed&&this.socket.destroy()}markAuthenticated(){this.state=STATES.AUTHENTICATED,this.emit("authenticated")}handshake(){if(this.state!==STATES.INITIAL)throw new InvalidArgumentError("Handshake already started");debug("starting handshake with",this.authMethods.length,"auth methods"),this.state=STATES.HANDSHAKING;let request=Buffer2.alloc(2+this.authMethods.length);request[0]=SOCKS_VERSION,request[1]=this.authMethods.length,this.authMethods.forEach((method,i)=>{request[2+i]=method}),this.socket.write(request)}handleHandshakeResponse(){if(this.buffer.length<2)return;let version=this.buffer[0],method=this.buffer[1];if(version!==SOCKS_VERSION)throw new Socks5ProxyError(`Invalid SOCKS version: ${version}`,"UND_ERR_SOCKS5_VERSION");if(method===AUTH_METHODS.NO_ACCEPTABLE)throw new Socks5ProxyError("No acceptable authentication method","UND_ERR_SOCKS5_AUTH_REJECTED");if(this.buffer=this.buffer.subarray(2),debug("server selected auth method",method),method===AUTH_METHODS.NO_AUTH)this.markAuthenticated();else if(method===AUTH_METHODS.USERNAME_PASSWORD)this.state=STATES.AUTHENTICATING,this.sendAuthRequest();else throw new Socks5ProxyError(`Unsupported authentication method: ${method}`,"UND_ERR_SOCKS5_AUTH_METHOD")}sendAuthRequest(){let{username,password}=this.options;if(!username||!password)throw new InvalidArgumentError("Username and password required for authentication");debug("sending username/password auth");let usernameBuffer=Buffer2.from(username),passwordBuffer=Buffer2.from(password);if(usernameBuffer.length>255||passwordBuffer.length>255)throw new InvalidArgumentError("Username or password too long");let request=Buffer2.alloc(3+usernameBuffer.length+passwordBuffer.length);request[0]=1,request[1]=usernameBuffer.length,usernameBuffer.copy(request,2),request[2+usernameBuffer.length]=passwordBuffer.length,passwordBuffer.copy(request,3+usernameBuffer.length),this.socket.write(request)}handleAuthResponse(){if(this.buffer.length<2)return;let version=this.buffer[0],status=this.buffer[1];if(version!==1)throw new Socks5ProxyError(`Invalid auth sub-negotiation version: ${version}`,"UND_ERR_SOCKS5_AUTH_VERSION");if(status!==0)throw new Socks5ProxyError("Authentication failed","UND_ERR_SOCKS5_AUTH_FAILED");this.buffer=this.buffer.subarray(2),debug("authentication successful"),this.markAuthenticated()}connect(address,port){if(this.state===STATES.CONNECTING||this.state===STATES.CONNECTED)throw new InvalidArgumentError("Connection already in progress");if(this.state!==STATES.AUTHENTICATED)throw new InvalidArgumentError("Client must be authenticated before CONNECT");debug("connecting to",address,port),this.state=STATES.CONNECTING;let request=this.buildConnectRequest(COMMANDS.CONNECT,address,port);this.socket.write(request)}buildConnectRequest(command,address,port){let{type:addressType,buffer:addressBuffer}=parseAddress(address),request=Buffer2.alloc(4+addressBuffer.length+2);return request[0]=SOCKS_VERSION,request[1]=command,request[2]=0,request[3]=addressType,addressBuffer.copy(request,4),request.writeUInt16BE(port,4+addressBuffer.length),request}handleConnectResponse(){if(this.buffer.length<4)return;let version=this.buffer[0],reply=this.buffer[1],addressType=this.buffer[3];if(version!==SOCKS_VERSION)throw new Socks5ProxyError(`Invalid SOCKS version in reply: ${version}`,"UND_ERR_SOCKS5_REPLY_VERSION");let responseLength=4;if(addressType===ADDRESS_TYPES.IPV4)responseLength+=6;else if(addressType===ADDRESS_TYPES.DOMAIN){if(this.buffer.length<5)return;responseLength+=1+this.buffer[4]+2}else if(addressType===ADDRESS_TYPES.IPV6)responseLength+=18;else throw new Socks5ProxyError(`Invalid address type in reply: ${addressType}`,"UND_ERR_SOCKS5_ADDR_TYPE");if(this.buffer.length<responseLength)return;if(reply!==REPLY_CODES.SUCCEEDED){let errorMessage2=this.getReplyErrorMessage(reply);throw new Socks5ProxyError(`SOCKS5 connection failed: ${errorMessage2}`,`UND_ERR_SOCKS5_REPLY_${reply}`)}let boundAddress,offset=4;if(addressType===ADDRESS_TYPES.IPV4)boundAddress=Array.from(this.buffer.subarray(offset,offset+4)).join("."),offset+=4;else if(addressType===ADDRESS_TYPES.DOMAIN){let domainLength=this.buffer[offset];offset+=1,boundAddress=this.buffer.subarray(offset,offset+domainLength).toString(),offset+=domainLength}else if(addressType===ADDRESS_TYPES.IPV6){let parts=[];for(let i=0;i<8;i++){let value=this.buffer.readUInt16BE(offset+i*2);parts.push(value.toString(16))}boundAddress=parts.join(":"),offset+=16}let boundPort=this.buffer.readUInt16BE(offset);this.buffer=EMPTY_BUFFER,this.state=STATES.CONNECTED,this.socket.removeListener("data",this.onSocketData),debug("connected, bound address:",boundAddress,"port:",boundPort),this.emit("connected",{address:boundAddress,port:boundPort})}getReplyErrorMessage(reply){switch(reply){case REPLY_CODES.GENERAL_FAILURE:return"General SOCKS server failure";case REPLY_CODES.CONNECTION_NOT_ALLOWED:return"Connection not allowed by ruleset";case REPLY_CODES.NETWORK_UNREACHABLE:return"Network unreachable";case REPLY_CODES.HOST_UNREACHABLE:return"Host unreachable";case REPLY_CODES.CONNECTION_REFUSED:return"Connection refused";case REPLY_CODES.TTL_EXPIRED:return"TTL expired";case REPLY_CODES.COMMAND_NOT_SUPPORTED:return"Command not supported";case REPLY_CODES.ADDRESS_TYPE_NOT_SUPPORTED:return"Address type not supported";default:return`Unknown error code: ${reply}`}}};module.exports={Socks5Client,AUTH_METHODS,COMMANDS,ADDRESS_TYPES,REPLY_CODES,STATES}}});var require_socks5_proxy_agent=__commonJS({"node_modules/undici/lib/dispatcher/socks5-proxy-agent.js"(exports,module){"use strict";var{URL:URL2}=__require("node:url"),tls,DispatcherBase=require_dispatcher_base(),{ConnectTimeoutError,InvalidArgumentError}=require_errors(),{Socks5Client,STATES}=require_socks5_client(),{kBusy,kConnected,kDispatch,kClose,kDestroy}=require_symbols(),Pool2=require_pool(),buildConnector=require_connect(),{setupConnectTimeout}=require_util(),{debuglog}=__require("node:util"),debug=debuglog("undici:socks5-proxy"),DEFAULT_SOCKS5_CONNECT_TIMEOUT=5e3,kProxyUrl=Symbol("proxy url"),kProxyHeaders=Symbol("proxy headers"),kProxyAuth=Symbol("proxy auth"),kProxyProtocol=Symbol("proxy protocol"),kPools=Symbol("pools"),kConnector=Symbol("connector"),kConnectTimeout=Symbol("connect timeout"),kRequestTls=Symbol("request tls settings"),kRequestTlsTimeout=Symbol("request tls timeout");function createConnectTimeoutError(hostname,port,timeout){return new ConnectTimeoutError(`Connect Timeout Error (attempted address: ${hostname}:${port}, timeout: ${timeout}ms)`)}var experimentalWarningEmitted=!1,Socks5ProxyAgent=class extends DispatcherBase{constructor(proxyUrl,options={}){if(super(options),experimentalWarningEmitted||(process.emitWarning("SOCKS5 proxy support is experimental and subject to change","ExperimentalWarning"),experimentalWarningEmitted=!0),!proxyUrl)throw new InvalidArgumentError("Proxy URL is mandatory");let url=typeof proxyUrl=="string"?new URL2(proxyUrl):proxyUrl;if(url.protocol!=="socks5:"&&url.protocol!=="socks:")throw new InvalidArgumentError("Proxy URL must use socks5:// or socks:// protocol");this[kProxyUrl]=url,this[kProxyHeaders]=options.headers||{},this[kProxyProtocol]=options.proxyTls?"https:":"http:";let connectTimeout=options.connectTimeout??DEFAULT_SOCKS5_CONNECT_TIMEOUT;if(!Number.isFinite(connectTimeout)||connectTimeout<0)throw new InvalidArgumentError("invalid connectTimeout");this[kConnectTimeout]=connectTimeout;let{timeout,...requestTls}=options.requestTls||{},requestTlsTimeout=timeout??connectTimeout;if(!Number.isFinite(requestTlsTimeout)||requestTlsTimeout<0)throw new InvalidArgumentError("invalid requestTls.timeout");this[kRequestTls]=requestTls,this[kRequestTlsTimeout]=requestTlsTimeout,this[kProxyAuth]={username:options.username||(url.username?decodeURIComponent(url.username):null),password:options.password||(url.password?decodeURIComponent(url.password):null)};let proxyTlsTimeout=options.proxyTls?.timeout??connectTimeout;if(!Number.isFinite(proxyTlsTimeout)||proxyTlsTimeout<0)throw new InvalidArgumentError("invalid proxyTls.timeout");this[kConnector]=options.connect||buildConnector({...options.proxyTls,timeout:proxyTlsTimeout,servername:options.proxyTls?.servername||url.hostname}),this[kPools]=new Map}async createSocks5Connection(targetHost,targetPort){let proxyHost=this[kProxyUrl].hostname,proxyPort=parseInt(this[kProxyUrl].port)||1080;debug("creating SOCKS5 connection to",proxyHost,proxyPort);let socketReady=Promise.withResolvers();this[kConnector]({hostname:proxyHost,host:proxyHost,port:proxyPort,protocol:this[kProxyProtocol]},(err,socket2)=>{err?socketReady.reject(err):socketReady.resolve(socket2)});let socket=await socketReady.promise,socks5Client=new Socks5Client(socket,this[kProxyAuth]);socks5Client.on("error",err=>{debug("SOCKS5 error:",err),socket.destroy()}),await socks5Client.handshake();let authenticationReady=Promise.withResolvers(),authenticationTimeout=this[kConnectTimeout]===0?null:setTimeout(()=>{cleanupAuthenticationListeners(),socks5Client.destroy(),authenticationReady.reject(createConnectTimeoutError(proxyHost,proxyPort,this[kConnectTimeout]))},this[kConnectTimeout]),cleanupAuthenticationListeners=()=>{clearTimeout(authenticationTimeout),socks5Client.removeListener("authenticated",onAuthenticated),socks5Client.removeListener("error",onAuthenticationError)},onAuthenticated=()=>{cleanupAuthenticationListeners(),authenticationReady.resolve()},onAuthenticationError=err=>{cleanupAuthenticationListeners(),authenticationReady.reject(err)};socks5Client.state===STATES.AUTHENTICATED?(clearTimeout(authenticationTimeout),authenticationReady.resolve()):(socks5Client.once("authenticated",onAuthenticated),socks5Client.once("error",onAuthenticationError)),await authenticationReady.promise,await socks5Client.connect(targetHost,targetPort);let connectionReady=Promise.withResolvers(),connectionTimeout=this[kConnectTimeout]===0?null:setTimeout(()=>{cleanupConnectionListeners(),socks5Client.destroy(),connectionReady.reject(createConnectTimeoutError(targetHost,targetPort,this[kConnectTimeout]))},this[kConnectTimeout]),cleanupConnectionListeners=()=>{clearTimeout(connectionTimeout),socks5Client.removeListener("connected",onConnected),socks5Client.removeListener("error",onConnectionError)},onConnected=info=>{debug("SOCKS5 tunnel established to",targetHost,targetPort,"via",info),cleanupConnectionListeners(),connectionReady.resolve()},onConnectionError=err=>{cleanupConnectionListeners(),connectionReady.reject(err)};return socks5Client.once("connected",onConnected),socks5Client.once("error",onConnectionError),await connectionReady.promise,socket}[kDispatch](opts,handler){let{origin}=opts;debug("dispatching request to",origin,"via SOCKS5");try{let originKey=String(origin),pool=this[kPools].get(originKey);if(!pool||pool.destroyed||pool.closed){pool=new Pool2(origin,{pipelining:opts.pipelining,connections:opts.connections,connect:async(connectOpts,callback)=>{try{let url=new URL2(origin),targetHost=url.hostname,targetPort=parseInt(url.port)||(url.protocol==="https:"?443:80);debug("establishing SOCKS5 connection to",targetHost,targetPort);let socket=await this.createSocks5Connection(targetHost,targetPort),finalSocket=socket;if(url.protocol==="https:"){tls||(tls=__require("node:tls")),debug("upgrading to TLS"),finalSocket=tls.connect({...this[kRequestTls],socket,servername:this[kRequestTls]?.servername||targetHost});let tlsReady=Promise.withResolvers(),cleanupTlsListeners=()=>{queueMicrotask(clearTlsTimeout),finalSocket.removeListener("secureConnect",onSecureConnect),finalSocket.removeListener("error",onTlsError)},onSecureConnect=()=>{cleanupTlsListeners(),tlsReady.resolve()},onTlsError=err=>{cleanupTlsListeners(),tlsReady.reject(err)},clearTlsTimeout=setupConnectTimeout(new WeakRef(finalSocket),{timeout:this[kRequestTlsTimeout],hostname:targetHost,port:targetPort});finalSocket.once("secureConnect",onSecureConnect),finalSocket.once("error",onTlsError),await tlsReady.promise}callback(null,finalSocket)}catch(err){debug("SOCKS5 connection error:",err),callback(err)}}}),this[kPools].set(originKey,pool);let closePoolIfUnused=()=>{this[kPools].get(originKey)!==pool||pool[kConnected]>0||pool[kBusy]||(this[kPools].delete(originKey),pool.destroyed||pool.close())};pool.on("disconnect",closePoolIfUnused),pool.on("connectionError",closePoolIfUnused)}return pool[kDispatch](opts,handler)}catch(err){if(debug("dispatch error:",err),typeof handler.onResponseError=="function")return handler.onResponseError(null,err),!1;if(typeof handler.onError=="function")return handler.onError(err),!1;throw err}}async[kClose](){let closePromises=[];for(let pool of this[kPools].values())closePromises.push(pool.close());this[kPools].clear(),await Promise.all(closePromises)}async[kDestroy](err){let destroyPromises=[];for(let pool of this[kPools].values())destroyPromises.push(pool.destroy(err));this[kPools].clear(),await Promise.all(destroyPromises)}};module.exports=Socks5ProxyAgent}});var require_proxy_agent=__commonJS({"node_modules/undici/lib/dispatcher/proxy-agent.js"(exports,module){"use strict";var{kProxy,kClose,kDestroy,kDispatch}=require_symbols(),Agent=require_agent(),Pool2=require_pool(),DispatcherBase=require_dispatcher_base(),{InvalidArgumentError,RequestAbortedError,SecureProxyConnectionError,ProxyConnectionError}=require_errors(),buildConnector=require_connect(),Client2=require_client(),{channels}=require_diagnostics(),Socks5ProxyAgent=require_socks5_proxy_agent(),{hasSafeIterator}=require_util(),kAgent=Symbol("proxy agent"),kClient=Symbol("proxy client"),kProxyHeaders=Symbol("proxy headers"),kRequestTls=Symbol("request tls settings"),kProxyTls=Symbol("proxy tls settings"),kConnectEndpoint=Symbol("connect endpoint function"),kConnectEndpointHTTP1=Symbol("connect endpoint function (http/1.1 only)"),kTunnelProxy=Symbol("tunnel proxy"),proxyAuthorization="proxy-authorization";function defaultProtocolPort(protocol){return protocol==="https:"?443:80}function defaultFactory(origin,opts){return new Pool2(origin,opts)}var noop=()=>{};function defaultAgentFactory(origin,opts){return opts.connections===1?new Client2(origin,opts):new Pool2(origin,opts)}function shouldProxyTunnel(requestProtocol,proxyTunnel){return proxyTunnel===!0||requestProtocol!=="http:"}var Http1ProxyWrapper=class extends DispatcherBase{#client;#proxyServername;constructor(proxyUrl,{headers={},connect,factory,proxyServername}){if(!proxyUrl)throw new InvalidArgumentError("Proxy URL is mandatory");super(),this[kProxyHeaders]=headers,this.#proxyServername=proxyServername,factory?this.#client=factory(proxyUrl,{connect}):this.#client=new Client2(proxyUrl,{connect})}[kDispatch](opts,handler){let onResponseStart=handler.onResponseStart;handler.onResponseStart=function(controller,statusCode,data,statusMessage){if(statusCode===407){typeof handler.onResponseError=="function"&&handler.onResponseError(controller,new InvalidArgumentError("Proxy Authentication Required (407)"));return}onResponseStart&&onResponseStart.call(this,controller,statusCode,data,statusMessage)};let{origin,path:path2="/",headers={}}=opts;if(opts.path=origin+path2,!("host"in headers)&&!("Host"in headers)){let{host}=new URL(origin);headers.host=host}return opts.headers={...this[kProxyHeaders],...headers},this.#proxyServername!=null&&(opts.servername=this.#proxyServername),this.#client[kDispatch](opts,handler)}[kClose](){return this.#client.close()}[kDestroy](err){return this.#client.destroy(err)}},ProxyAgent=class extends DispatcherBase{constructor(opts){if(!opts||typeof opts=="object"&&!(opts instanceof URL)&&!opts.uri)throw new InvalidArgumentError("Proxy uri is mandatory");let{clientFactory=defaultFactory}=opts;if(typeof clientFactory!="function")throw new InvalidArgumentError("Proxy opts.clientFactory must be a function.");let{proxyTunnel,connectTimeout}=opts;super(opts);let url=this.#getUrl(opts),{href,origin,port,protocol,username,password,hostname:proxyHostname}=url;if(this[kProxy]={uri:href,protocol},this[kRequestTls]=opts.requestTls,this[kProxyTls]=opts.proxyTls,this[kProxyHeaders]=opts.headers||{},this[kTunnelProxy]=proxyTunnel,opts.auth&&opts.token)throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token");opts.auth?this[kProxyHeaders]["proxy-authorization"]=`Basic ${opts.auth}`:opts.token?this[kProxyHeaders]["proxy-authorization"]=opts.token:username&&password?this[kProxyHeaders]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`:username&&(this[kProxyHeaders]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(username)}:`).toString("base64")}`);let connect=buildConnector({timeout:connectTimeout,...opts.proxyTls}),connectHTTP1=buildConnector({timeout:connectTimeout,...opts.proxyTls,allowH2:!1});this[kConnectEndpoint]=buildConnector({timeout:connectTimeout,...opts.requestTls}),this[kConnectEndpointHTTP1]=buildConnector({timeout:connectTimeout,...opts.requestTls,allowH2:!1});let agentFactory=opts.factory||defaultAgentFactory,factory=(origin2,options)=>{let{protocol:protocol2}=new URL(origin2);if(this[kProxy].protocol==="socks5:"||this[kProxy].protocol==="socks:")return new Socks5ProxyAgent(this[kProxy].uri,{headers:this[kProxyHeaders],connect,factory:agentFactory,username:opts.username||username,password:opts.password||password,connectTimeout,proxyTls:opts.proxyTls,requestTls:opts.requestTls});if(!shouldProxyTunnel(protocol2,this[kTunnelProxy])){let forwardConnect=this[kProxy].protocol==="https:"?(opts2,cb)=>connectHTTP1(opts2,(err,socket)=>{err&&err.code==="ERR_TLS_CERT_ALTNAME_INVALID"?cb(new SecureProxyConnectionError(err)):cb(err,socket)}):connectHTTP1;return new Http1ProxyWrapper(this[kProxy].uri,{headers:this[kProxyHeaders],connect:forwardConnect,factory:agentFactory,proxyServername:this[kProxy].protocol==="https:"?this[kProxyTls]?.servername||proxyHostname:void 0})}return agentFactory(origin2,options)};protocol==="socks5:"||protocol==="socks:"?this[kClient]=null:this[kClient]=clientFactory(url,{connect}),this[kAgent]=new Agent({...opts,factory,connect:async(opts2,callback)=>{if(!this[kClient]){callback(new InvalidArgumentError("Cannot establish tunnel connection without a proxy client"));return}let requestedPath=opts2.host;opts2.port||(requestedPath+=`:${defaultProtocolPort(opts2.protocol)}`);try{let connectParams={origin,port,path:requestedPath,signal:opts2.signal,headers:{...this[kProxyHeaders],host:opts2.host,...opts2.connections==null||opts2.connections>0?{"proxy-connection":"keep-alive"}:{}},servername:this[kProxyTls]?.servername||proxyHostname},{socket,statusCode}=await this[kClient].connect(connectParams);if(statusCode!==200){socket.on("error",noop).destroy(),callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`));return}if(channels.proxyConnected.hasSubscribers&&channels.proxyConnected.publish({socket,connectParams}),opts2.protocol!=="https:"){callback(null,socket);return}let servername;this[kRequestTls]?servername=this[kRequestTls].servername:servername=opts2.servername,(opts2.allowH2===!1?this[kConnectEndpointHTTP1]:this[kConnectEndpoint])({...opts2,servername,httpSocket:socket},callback)}catch(err){err.code==="ERR_TLS_CERT_ALTNAME_INVALID"?callback(new SecureProxyConnectionError(err)):err.code==="UND_ERR_SOCKET"?callback(new ProxyConnectionError(err)):callback(err)}}})}dispatch(opts,handler){let headers=buildHeaders(opts.headers);if(throwIfProxyAuthIsSent(headers),headers&&!("host"in headers)&&!("Host"in headers)){let{host}=new URL(opts.origin);headers.host=host}return this[kAgent].dispatch({...opts,headers},handler)}#getUrl(opts){return typeof opts=="string"?new URL(opts):opts instanceof URL?opts:new URL(opts.uri)}[kClose](){let promises=[this[kAgent].close()];return this[kClient]&&promises.push(this[kClient].close()),Promise.all(promises)}[kDestroy](){let promises=[this[kAgent].destroy()];return this[kClient]&&promises.push(this[kClient].destroy()),Promise.all(promises)}};function buildHeaders(headers){if(Array.isArray(headers)){let headersPair={};for(let i=0;i<headers.length;i+=2)isProxyAuthorizationHeader(headers[i])&&throwProxyAuthError(),headersPair[headers[i]]=headers[i+1];return headersPair}if(headers&&typeof headers=="object"&&hasSafeIterator(headers)){let headersPair={};for(let[key,value]of headers)headersPair[key]=value;return headersPair}return headers}function throwIfProxyAuthIsSent(headers){for(let key in headers)isProxyAuthorizationHeader(key)&&throwProxyAuthError()}function isProxyAuthorizationHeader(key){return key.length===proxyAuthorization.length&&key.toLowerCase()===proxyAuthorization}function throwProxyAuthError(){throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor")}module.exports=ProxyAgent}});var require_env_http_proxy_agent=__commonJS({"node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports,module){"use strict";var DispatcherBase=require_dispatcher_base(),{kClose,kDestroy,kClosed,kDestroyed,kDispatch,kNoProxyAgent,kHttpProxyAgent,kHttpsProxyAgent}=require_symbols(),ProxyAgent=require_proxy_agent(),Agent=require_agent(),DEFAULT_PORTS={"http:":80,"https:":443},EnvHttpProxyAgent2=class extends DispatcherBase{#noProxyValue=null;#noProxyEntries=null;#opts=null;constructor(opts={}){super(opts),this.#opts=opts;let{httpProxy,httpsProxy,noProxy,...agentOpts}=opts;this[kNoProxyAgent]=new Agent(agentOpts);let HTTP_PROXY=httpProxy??process.env.http_proxy??process.env.HTTP_PROXY;HTTP_PROXY?this[kHttpProxyAgent]=new ProxyAgent({...agentOpts,uri:HTTP_PROXY}):this[kHttpProxyAgent]=this[kNoProxyAgent];let HTTPS_PROXY=httpsProxy??process.env.https_proxy??process.env.HTTPS_PROXY;HTTPS_PROXY?this[kHttpsProxyAgent]=new ProxyAgent({...agentOpts,uri:HTTPS_PROXY}):this[kHttpsProxyAgent]=this[kHttpProxyAgent],this.#parseNoProxy()}[kDispatch](opts,handler){let url=new URL(opts.origin);return this.#getProxyAgentForUrl(url).dispatch(opts,handler)}[kClose](){return Promise.all([this[kNoProxyAgent].close(),!this[kHttpProxyAgent][kClosed]&&this[kHttpProxyAgent].close(),!this[kHttpsProxyAgent][kClosed]&&this[kHttpsProxyAgent].close()])}[kDestroy](err){return Promise.all([this[kNoProxyAgent].destroy(err),!this[kHttpProxyAgent][kDestroyed]&&this[kHttpProxyAgent].destroy(err),!this[kHttpsProxyAgent][kDestroyed]&&this[kHttpsProxyAgent].destroy(err)])}#getProxyAgentForUrl(url){let{protocol,host:hostname,port}=url;return hostname=hostname.replace(/:\d*$/,"").replace(/^\[(.+)\]$/,"$1").toLowerCase(),hostname.length>1&&hostname.charCodeAt(hostname.length-1)===46&&(hostname=hostname.slice(0,-1)),port=Number.parseInt(port,10)||DEFAULT_PORTS[protocol]||0,this.#shouldProxy(hostname,port)?protocol==="https:"?this[kHttpsProxyAgent]:this[kHttpProxyAgent]:this[kNoProxyAgent]}#shouldProxy(hostname,port){if(this.#noProxyChanged&&this.#parseNoProxy(),this.#noProxyEntries.length===0)return!0;if(this.#noProxyValue==="*")return!1;for(let i=0;i<this.#noProxyEntries.length;i++){let entry=this.#noProxyEntries[i];if(!(entry.port&&entry.port!==port)&&(hostname===entry.hostname||hostname.slice(-(entry.hostname.length+1))===`.${entry.hostname}`))return!1}return!0}#parseNoProxy(){let noProxyValue=this.#opts.noProxy??this.#noProxyEnv,noProxySplit=noProxyValue.split(/[,\s]/),noProxyEntries=[];for(let i=0;i<noProxySplit.length;i++){let entry=noProxySplit[i];if(!entry)continue;let hostname,port,ipv6WithPort=entry.match(/^\[(.+)\]:(\d+)$/);if(ipv6WithPort)hostname=ipv6WithPort[1],port=Number.parseInt(ipv6WithPort[2],10);else{let unbracketed=entry.replace(/^\[(.+)\]$/,"$1"),parsed=(unbracketed.match(/:/g)||[]).length===1&&unbracketed.match(/^(.+):(\d+)$/);hostname=parsed?parsed[1]:unbracketed,port=parsed?Number.parseInt(parsed[2],10):0}noProxyEntries.push({hostname:hostname.replace(/^\*?\./,"").replace(/^(.+)\.$/,"$1").toLowerCase(),port})}this.#noProxyValue=noProxyValue,this.#noProxyEntries=noProxyEntries}get#noProxyChanged(){return this.#opts.noProxy!==void 0?!1:this.#noProxyValue!==this.#noProxyEnv}get#noProxyEnv(){return process.env.no_proxy??process.env.NO_PROXY??""}};module.exports=EnvHttpProxyAgent2}});var require_retry_handler=__commonJS({"node_modules/undici/lib/handler/retry-handler.js"(exports,module){"use strict";var assert=__require("node:assert"),{kRetryHandlerDefaultRetry}=require_symbols(),{RequestRetryError,RequestAbortedError}=require_errors(),{isDisturbed,parseRangeHeader,wrapRequestBody}=require_util();function calculateRetryAfterHeader(retryAfter){let retryTime=new Date(retryAfter).getTime();return isNaN(retryTime)?null:retryTime-Date.now()}function validatePartialResponseContentLength(headers,range,statusCode,retryCount){let contentLength=headers["content-length"];if(contentLength==null||!Number.isFinite(range.start)||!Number.isFinite(range.end))return;let length=Number(contentLength),expectedLength=range.end-range.start+1;if(!Number.isFinite(length)||length!==expectedLength)throw new RequestRetryError("Content-Length mismatch",statusCode,{headers,data:{count:retryCount}})}var RetryController=class{#onAbort;constructor(onAbort){this.#onAbort=onAbort,this.target=null}pause(){this.target?.pause()}resume(){this.target?.resume()}abort(reason){this.target?.abort(reason),this.#onAbort(reason)}get paused(){return this.target?.paused??!1}get aborted(){return this.target?.aborted??!1}get reason(){return this.target?.reason??null}get rawHeaders(){return this.target?.rawHeaders??null}set rawHeaders(value){this.target&&(this.target.rawHeaders=value)}get rawTrailers(){return this.target?.rawTrailers??null}set rawTrailers(value){this.target&&(this.target.rawTrailers=value)}},RetryHandler=class _RetryHandler{constructor(opts,{dispatch,handler}){let{retryOptions,...dispatchOpts}=opts,{retry:retryFn,maxRetries,maxTimeout,minTimeout,timeoutFactor,methods,errorCodes,retryAfter,statusCodes,throwOnError}=retryOptions??{};this.error=null,this.dispatch=dispatch,this.handler=handler,this.opts={...dispatchOpts,body:wrapRequestBody(opts.body)},this.retryOpts={throwOnError:throwOnError??!0,retry:retryFn??_RetryHandler[kRetryHandlerDefaultRetry],retryAfter:retryAfter??!0,maxTimeout:maxTimeout??30*1e3,minTimeout:minTimeout??500,timeoutFactor:timeoutFactor??2,maxRetries:maxRetries??5,methods:methods??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE","QUERY"],statusCodes:statusCodes??[500,502,503,504,429],errorCodes:errorCodes??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.headersSent=!1,this.start=0,this.end=null,this.etag=null,this.statusCode=null,this.headers=null,this.controllerProxy=new RetryController(reason=>this.#onAbort(reason)),this.retryPending=!1,this.retryTimer=null,this.aborted=!1}onResponseStartWithRetry(controller,statusCode,headers,statusMessage,err){if(this.retryOpts.throwOnError){this.retryOpts.statusCodes.includes(statusCode)===!1?this.headersSent?this.handler.onResponseError?.(this.controllerProxy,err):(this.headersSent=!0,this.checkpointResponseEnd(headers),this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage)):this.error=err;return}if(isDisturbed(this.opts.body)){this.headersSent=!0,this.checkpointResponseEnd(headers),this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage);return}function shouldRetry(passedErr){if(!this.aborted){if(this.retryPending=!1,this.retryTimer=null,passedErr){this.headersSent?this.handler.onResponseError?.(this.controllerProxy,passedErr):(this.headersSent=!0,this.checkpointResponseEnd(headers),this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage)),controller.resume();return}this.error=err,controller.resume()}}controller.pause(),this.retryPending=!0,this.retryTimer=this.retryOpts.retry(err,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},shouldRetry.bind(this))??null}checkpointResponseEnd(headers){if(this.end==null&&this.opts.method!=="HEAD"){let contentLength=headers["content-length"];this.end=contentLength!=null?Number(contentLength)-1:null,assert(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=this.end!=null}}onRequestStart(controller,context){this.controllerProxy.target=controller,this.headersSent||this.handler.onRequestStart?.(this.controllerProxy,context)}onBodySent(chunk){this.handler.onBodySent?.(chunk)}onRequestSent(){this.handler.onRequestSent?.()}onRequestUpgrade(_controller,statusCode,headers,socket){this.handler.onRequestUpgrade?.(this.controllerProxy,statusCode,headers,socket)}static[kRetryHandlerDefaultRetry](err,{state:state2,opts},cb){let{statusCode,code,headers}=err,{method,retryOptions}=opts,{maxRetries,minTimeout,maxTimeout,timeoutFactor,statusCodes,errorCodes,methods,retryAfter}=retryOptions,{counter}=state2;if(code&&code!=="UND_ERR_REQ_RETRY"&&!errorCodes.includes(code)){cb(err);return}if(Array.isArray(methods)&&!methods.includes(method)){cb(err);return}if(statusCode!=null&&Array.isArray(statusCodes)&&!statusCodes.includes(statusCode)){cb(err);return}if(counter>maxRetries){cb(err);return}let retryAfterHeader=retryAfter===!1?void 0:headers?.["retry-after"];retryAfterHeader&&(retryAfterHeader=Number(retryAfterHeader),retryAfterHeader=Number.isNaN(retryAfterHeader)?calculateRetryAfterHeader(headers["retry-after"]):retryAfterHeader*1e3);let retryTimeout=retryAfterHeader===0?0:retryAfterHeader>0?Math.min(retryAfterHeader,maxTimeout):Math.min(minTimeout*timeoutFactor**(counter-1),maxTimeout);return setTimeout(()=>cb(null),retryTimeout)}onResponseStart(controller,statusCode,headers,statusMessage){if(statusCode<200){this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage);return}if(this.error=null,this.retryCount+=1,this.statusCode=statusCode,this.headers=headers,this.headersSent){if(statusCode!==206&&(this.start>0||statusCode!==200))throw new RequestRetryError("server does not support the range header and the payload was partially consumed",statusCode,{headers,data:{count:this.retryCount}});let contentRange=parseRangeHeader(headers["content-range"]);if(!contentRange)throw new RequestRetryError("Content-Range mismatch",statusCode,{headers,data:{count:this.retryCount}});if(this.etag!=null&&this.etag!==headers.etag)throw new RequestRetryError("ETag mismatch",statusCode,{headers,data:{count:this.retryCount}});validatePartialResponseContentLength(headers,contentRange,statusCode,this.retryCount);let{start,size,end=size?size-1:null}=contentRange;if(this.start!==start||this.end!=null&&this.end!==end)throw new RequestRetryError("Content-Range mismatch",statusCode,{headers,data:{count:this.retryCount}});return}if(statusCode>=300){let err=new RequestRetryError("Request failed",statusCode,{headers,data:{count:this.retryCount}});this.onResponseStartWithRetry(controller,statusCode,headers,statusMessage,err);return}if(this.end==null){if(statusCode===206){let range=parseRangeHeader(headers["content-range"]);if(range==null||range.end==null){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage);return}validatePartialResponseContentLength(headers,range,statusCode,this.retryCount);let{start,size,end=size?size-1:null}=range;assert(start!=null&&Number.isFinite(start),"content-range mismatch"),assert(end!=null&&Number.isFinite(end),"invalid content-length"),this.start=start,this.end=end}if(this.end==null&&this.opts.method!=="HEAD"){let contentLength=headers["content-length"];this.end=contentLength!=null?Number(contentLength)-1:null}assert(Number.isFinite(this.start)),assert(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=!0,this.etag=headers.etag!=null?headers.etag:null,this.etag!=null&&this.etag[0]==="W"&&this.etag[1]==="/"&&(this.etag=null),this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,statusCode,headers,statusMessage)}else throw new RequestRetryError("Request failed",statusCode,{headers,data:{count:this.retryCount}})}onResponseData(_controller,chunk){this.error||(this.start+=chunk.length,this.handler.onResponseData?.(this.controllerProxy,chunk))}onResponseEnd(_controller,trailers){if(this.error&&this.retryOpts.throwOnError)throw this.error;if(!this.error){if(this.end!=null&&Number.isFinite(this.end)&&this.start!==this.end+1)throw new RequestRetryError("Content-Range mismatch",this.statusCode,{headers:this.headers,data:{count:this.retryCount}});return this.retryCount=0,this.handler.onResponseEnd?.(this.controllerProxy,trailers)}this.retry()}retry(){if(this.start!==0){let headers={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(headers["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...headers}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(err){this.handler.onResponseError?.(this.controllerProxy,err)}}onResponseError(controller,err){if(this.aborted)return;if(controller?.aborted||isDisturbed(this.opts.body)||this.headersSent&&!this.resume){this.handler.onResponseError?.(this.controllerProxy,err);return}function shouldRetry(returnedErr){if(!this.aborted){if(this.retryPending=!1,this.retryTimer=null,!returnedErr){this.retry();return}this.handler?.onResponseError?.(this.controllerProxy,returnedErr)}}this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryPending=!0,this.retryTimer=this.retryOpts.retry(err,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},shouldRetry.bind(this))??null}#onAbort(reason){this.retryPending&&(this.aborted=!0,this.retryPending=!1,clearTimeout(this.retryTimer),this.retryTimer=null,this.handler.onResponseError?.(this.controllerProxy,reason??new RequestAbortedError))}};module.exports=RetryHandler}});var require_retry_agent=__commonJS({"node_modules/undici/lib/dispatcher/retry-agent.js"(exports,module){"use strict";var Dispatcher=require_dispatcher(),RetryHandler=require_retry_handler(),{kOriginless,kUrl}=require_symbols(),RetryAgent=class extends Dispatcher{#agent=null;#options=null;constructor(agent,options={}){super(options),this.#agent=agent,this.#options=options,this[kUrl]=agent[kUrl],this[kOriginless]=agent[kOriginless]}dispatch(opts,handler){let retry=new RetryHandler({...opts,retryOptions:this.#options},{dispatch:this.#agent.dispatch.bind(this.#agent),handler});return this.#agent.dispatch(opts,retry)}close(){return this.#agent.close()}destroy(){return this.#agent.destroy()}};module.exports=RetryAgent}});var require_h2c_client=__commonJS({"node_modules/undici/lib/dispatcher/h2c-client.js"(exports,module){"use strict";var{InvalidArgumentError}=require_errors(),Client2=require_client(),H2CClient=class extends Client2{constructor(origin,clientOpts){if(typeof origin=="string"&&(origin=new URL(origin)),origin.protocol!=="http:")throw new InvalidArgumentError("h2c-client: Only h2c protocol is supported");let{maxConcurrentStreams,pipelining,...opts}=clientOpts??{},defaultMaxConcurrentStreams=maxConcurrentStreams??100,defaultPipelining=100;if(maxConcurrentStreams!=null&&(!Number.isInteger(maxConcurrentStreams)||maxConcurrentStreams<1))throw new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0");if(pipelining!=null&&Number.isInteger(pipelining)&&pipelining>0&&(defaultPipelining=pipelining),defaultPipelining>defaultMaxConcurrentStreams)throw new InvalidArgumentError("h2c-client: pipelining cannot be greater than maxConcurrentStreams");super(origin,{...opts,maxConcurrentStreams:defaultMaxConcurrentStreams,pipelining:defaultPipelining,allowH2:!0,useH2c:!0})}};module.exports=H2CClient}});var require_readable=__commonJS({"node_modules/undici/lib/api/readable.js"(exports,module){"use strict";var assert=__require("node:assert"),{addAbortListener}=__require("node:events"),{Readable}=__require("node:stream"),{RequestAbortedError,NotSupportedError,InvalidArgumentError,AbortError}=require_errors(),util=require_util(),{ReadableStreamFrom}=require_util(),kConsume=Symbol("kConsume"),kReading=Symbol("kReading"),kBody=Symbol("kBody"),kAbort=Symbol("kAbort"),kContentType=Symbol("kContentType"),kContentLength=Symbol("kContentLength"),kUsed=Symbol("kUsed"),kBytesRead=Symbol("kBytesRead"),noop=()=>{},BodyReadable=class extends Readable{constructor({resume,abort,contentType="",contentLength,highWaterMark=64*1024}){super({autoDestroy:!0,read:resume,highWaterMark}),this._readableState.dataEmitted=!1,this[kAbort]=abort,this[kConsume]=null,this[kBytesRead]=0,this[kBody]=null,this[kUsed]=!1,this[kContentType]=contentType,this[kContentLength]=Number.isFinite(contentLength)?contentLength:null,this[kReading]=!1}_destroy(err,callback){!err&&!this._readableState.endEmitted&&(err=new RequestAbortedError),err&&this[kAbort](),this[kUsed]?callback(err):setImmediate(callback,err)}on(event,listener){return(event==="data"||event==="readable")&&(this[kReading]=!0,this[kUsed]=!0),super.on(event,listener)}addListener(event,listener){return this.on(event,listener)}off(event,listener){let ret=super.off(event,listener);return(event==="data"||event==="readable")&&(this[kReading]=this.listenerCount("data")>0||this.listenerCount("readable")>0),ret}removeListener(event,listener){return this.off(event,listener)}push(chunk){return chunk&&(this[kBytesRead]+=chunk.length,this[kConsume])?(consumePush(this[kConsume],chunk),this[kReading]?super.push(chunk):!0):super.push(chunk)}text(){return consume(this,"text")}json(){return consume(this,"json")}blob(){return consume(this,"blob")}bytes(){return consume(this,"bytes")}arrayBuffer(){return consume(this,"arrayBuffer")}async formData(){throw new NotSupportedError}get bodyUsed(){return util.isDisturbed(this)}get body(){return this[kBody]||(this[kBody]=ReadableStreamFrom(this),this[kConsume]&&(this[kBody].getReader(),assert(this[kBody].locked))),this[kBody]}dump(opts){let signal=opts?.signal;if(signal!=null&&(typeof signal!="object"||!("aborted"in signal)))return Promise.reject(new InvalidArgumentError("signal must be an AbortSignal"));let limit=opts?.limit&&Number.isFinite(opts.limit)?opts.limit:128*1024;return signal?.aborted?Promise.reject(signal.reason??new AbortError):this._readableState.closeEmitted?Promise.resolve(null):new Promise((resolve2,reject)=>{if((this[kContentLength]&&this[kContentLength]>limit||this[kBytesRead]>limit)&&this.destroy(new AbortError),signal){let abortListener=addAbortListener(signal,()=>{this.destroy(signal.reason??new AbortError)});this.on("close",function(){abortListener[Symbol.dispose](),signal.aborted?reject(signal.reason??new AbortError):resolve2(null)})}else this.on("close",resolve2);this.on("error",noop).on("data",()=>{this[kBytesRead]>limit&&this.destroy()}).resume()})}setEncoding(encoding){return Buffer.isEncoding(encoding)&&super.setEncoding(encoding),this}};function isLocked(bodyReadable){return bodyReadable[kBody]?.locked===!0||bodyReadable[kConsume]!==null}function isUnusable(bodyReadable){return util.isDisturbed(bodyReadable)||isLocked(bodyReadable)}function consume(stream,type){return assert(!stream[kConsume]),new Promise((resolve2,reject)=>{if(isUnusable(stream)){let rState=stream._readableState;rState.destroyed&&rState.closeEmitted===!1?stream.on("error",reject).on("close",()=>{reject(new TypeError("unusable"))}):reject(rState.errored??new TypeError("unusable"))}else queueMicrotask(()=>{stream[kConsume]={type,stream,resolve:resolve2,reject,length:0,body:[]},stream.on("error",function(err){consumeFinish(this[kConsume],err)}).on("close",function(){this[kConsume].body!==null&&consumeFinish(this[kConsume],new RequestAbortedError)}),consumeStart(stream[kConsume])})})}function consumeStart(consume2){if(consume2.body===null)return;let{_readableState:state2}=consume2.stream;if(state2.bufferIndex){let start=state2.bufferIndex,end=state2.buffer.length;for(let n=start;n<end;n++)consumePush(consume2,state2.buffer[n])}else for(let chunk of state2.buffer)consumePush(consume2,chunk);let decoder=state2.decoder;if(decoder!=null&&decoder.lastNeed>0&&consumePush(consume2,Buffer.from(decoder.lastChar.subarray(0,decoder.lastTotal-decoder.lastNeed))),state2.endEmitted){consumeEnd(consume2,state2.encoding);return}for(consume2.stream.on("end",function(){consumeEnd(this[kConsume],this._readableState.encoding)}),consume2.stream.resume();consume2.stream.read()!=null;);}function chunksDecode(chunks,length,encoding){if(chunks.length===0||length===0)return"";let buffer=chunks.length===1?chunks[0]:Buffer.concat(chunks,length),bufferLength=buffer.length,start=bufferLength>2&&buffer[0]===239&&buffer[1]===187&&buffer[2]===191?3:0;return!encoding||encoding==="utf8"||encoding==="utf-8"?buffer.utf8Slice(start,bufferLength):buffer.subarray(start,bufferLength).toString(encoding)}function chunksConcat(chunks,length){if(chunks.length===0||length===0)return new Uint8Array(0);if(chunks.length===1)return new Uint8Array(chunks[0]);let buffer=new Uint8Array(Buffer.allocUnsafeSlow(length).buffer),offset=0;for(let i=0;i<chunks.length;++i){let chunk=chunks[i];buffer.set(chunk,offset),offset+=chunk.length}return buffer}function consumeEnd(consume2,encoding){let{type,body,resolve:resolve2,stream,length}=consume2;try{type==="text"?resolve2(chunksDecode(body,length,encoding)):type==="json"?resolve2(JSON.parse(chunksDecode(body,length,encoding))):type==="arrayBuffer"?resolve2(chunksConcat(body,length).buffer):type==="blob"?resolve2(new Blob(body,{type:stream[kContentType]})):type==="bytes"&&resolve2(chunksConcat(body,length)),consumeFinish(consume2)}catch(err){stream.destroy(err)}}function consumePush(consume2,chunk){consume2.body!==null&&(typeof chunk=="string"&&(chunk=Buffer.from(chunk,consume2.stream._readableState.encoding)),consume2.length+=chunk.length,consume2.body.push(chunk))}function consumeFinish(consume2,err){consume2.body!==null&&(err?consume2.reject(err):consume2.resolve(),consume2.type=null,consume2.stream=null,consume2.resolve=null,consume2.reject=null,consume2.length=0,consume2.body=null)}module.exports={Readable:BodyReadable,chunksDecode}}});var require_api_request=__commonJS({"node_modules/undici/lib/api/api-request.js"(exports,module){"use strict";var assert=__require("node:assert"),{AsyncResource}=__require("node:async_hooks"),{Readable}=require_readable(),{InvalidArgumentError,RequestAbortedError}=require_errors(),util=require_util();function noop(){}var RequestHandler=class extends AsyncResource{constructor(opts,callback){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");let{signal,method,opaque,body,onInfo,responseHeaders,highWaterMark}=opts;try{if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(highWaterMark!=null&&(!Number.isFinite(highWaterMark)||highWaterMark<0))throw new InvalidArgumentError("invalid highWaterMark");if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");if(method==="CONNECT")throw new InvalidArgumentError("invalid method");if(onInfo&&typeof onInfo!="function")throw new InvalidArgumentError("invalid onInfo callback");super("UNDICI_REQUEST")}catch(err){throw util.isStream(body)&&util.destroy(body.on("error",noop),err),err}this.method=method,this.responseHeaders=responseHeaders||null,this.opaque=opaque||null,this.callback=callback,this.res=null,this.abort=null,this.body=body,this.trailers={},this.context=null,this.controller=null,this.onInfo=onInfo||null,this.highWaterMark=highWaterMark,this.reason=null,this.removeAbortListener=null,signal?.aborted?this.reason=signal.reason??new RequestAbortedError:signal&&(this.removeAbortListener=util.addAbortListener(signal,()=>{if(this.reason=signal.reason??new RequestAbortedError,this.res){let res=this.res;this.res=null,util.destroy(res.on("error",noop),this.reason)}else this.abort&&this.abort(this.reason)}))}onRequestStart(controller,context){if(this.reason){controller.abort(this.reason);return}assert(this.callback),this.controller=controller,this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(controller,statusCode,headers,statusText){let{callback,opaque,context,responseHeaders,highWaterMark}=this,rawHeaders=controller?.rawHeaders,responseHeaderData=responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;if(statusCode<200){this.onInfo&&this.onInfo({statusCode,headers:responseHeaderData});return}let parsedHeaders=headers,contentType=parsedHeaders?.["content-type"],contentLength=parsedHeaders?.["content-length"],res=new Readable({resume:()=>controller.resume(),abort:reason=>controller.abort(reason),contentType,contentLength:this.method!=="HEAD"&&contentLength?Number(contentLength):null,highWaterMark});if(this.removeAbortListener&&(res.on("close",this.removeAbortListener),this.removeAbortListener=null),this.callback=null,this.res=res,callback!==null)try{this.runInAsyncScope(callback,null,null,{statusCode,statusText,headers:responseHeaderData,trailers:this.trailers,opaque,body:res,context})}catch(err){this.res=null,util.destroy(res.on("error",noop),err),queueMicrotask(()=>{throw err})}}onResponseData(controller,chunk){this.res&&this.res.push(chunk)===!1&&controller.pause()}onResponseEnd(_controller,trailers){if(trailers&&typeof trailers=="object")for(let key of Object.keys(trailers))key==="__proto__"?Object.defineProperty(this.trailers,key,{value:trailers[key],enumerable:!0,configurable:!0,writable:!0}):this.trailers[key]=trailers[key];this.res?.push(null)}onResponseError(_controller,err){let{res,callback,body,opaque}=this;callback&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})})),res&&(this.res=null,queueMicrotask(()=>{util.destroy(res.on("error",noop),err)})),body&&(this.body=null,util.isStream(body)&&(body.on("error",noop),util.destroy(body,err))),this.removeAbortListener&&(this.removeAbortListener(),this.removeAbortListener=null)}};function request(opts,callback){if(callback===void 0)return new Promise((resolve2,reject)=>{request.call(this,opts,(err,data)=>err?reject(err):resolve2(data))});try{let handler=new RequestHandler(opts,callback);this.dispatch(opts,handler)}catch(err){if(typeof callback!="function")throw err;let opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=request;module.exports.RequestHandler=RequestHandler}});var require_abort_signal=__commonJS({"node_modules/undici/lib/api/abort-signal.js"(exports,module){"use strict";var{addAbortListener}=require_util(),{RequestAbortedError}=require_errors(),kListener=Symbol("kListener"),kSignal=Symbol("kSignal");function abort(self){self.abort?self.abort(self[kSignal]?.reason):self.reason=self[kSignal]?.reason??new RequestAbortedError,removeSignal(self)}function addSignal(self,signal){if(self.reason=null,self[kSignal]=null,self[kListener]=null,!!signal){if(signal.aborted){abort(self);return}self[kSignal]=signal,self[kListener]=()=>{abort(self)},addAbortListener(self[kSignal],self[kListener])}}function removeSignal(self){self[kSignal]&&("removeEventListener"in self[kSignal]?self[kSignal].removeEventListener("abort",self[kListener]):self[kSignal].removeListener("abort",self[kListener]),self[kSignal]=null,self[kListener]=null)}module.exports={addSignal,removeSignal}}});var require_api_stream=__commonJS({"node_modules/undici/lib/api/api-stream.js"(exports,module){"use strict";var assert=__require("node:assert"),{AsyncResource}=__require("node:async_hooks"),{InvalidArgumentError,InvalidReturnValueError}=require_errors(),util=require_util(),{addSignal,removeSignal}=require_abort_signal();function noop(){}function getWritableError(stream2){return stream2.errored??stream2.writableErrored??stream2._writableState?.errored}function createPrematureCloseError(){let err=new Error("Premature close");return err.code="ERR_STREAM_PREMATURE_CLOSE",err}function trackWritableLifecycle(stream2,callback){let done=!1,cleanup=()=>{stream2.removeListener("close",onClose),stream2.removeListener("error",onError),stream2.removeListener("finish",onFinish)},finish=(err,fromErrorEvent=!1)=>{done||(done=!0,cleanup(),callback(err,fromErrorEvent))},onClose=()=>{let err=getWritableError(stream2);finish(err??(stream2.writableFinished?void 0:createPrematureCloseError()))},onError=err=>finish(err,!0),onFinish=()=>finish();stream2.on("close",onClose),stream2.on("error",onError),stream2.on("finish",onFinish),stream2.closed?process.nextTick(onClose):stream2.writableFinished&&process.nextTick(onFinish)}var StreamHandler=class extends AsyncResource{constructor(opts,factory,callback){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");let{signal,method,opaque,body,onInfo,responseHeaders}=opts;try{if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(typeof factory!="function")throw new InvalidArgumentError("invalid factory");if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");if(method==="CONNECT")throw new InvalidArgumentError("invalid method");if(onInfo&&typeof onInfo!="function")throw new InvalidArgumentError("invalid onInfo callback");super("UNDICI_STREAM")}catch(err){throw util.isStream(body)&&util.destroy(body.on("error",noop),err),err}this.responseHeaders=responseHeaders||null,this.opaque=opaque||null,this.factory=factory,this.callback=callback,this.res=null,this.abort=null,this.context=null,this.controller=null,this.trailers=null,this.body=body,this.onInfo=onInfo||null,util.isStream(body)&&body.on("error",err=>{this.onResponseError(this.controller,err)}),addSignal(this,signal)}onRequestStart(controller,context){if(this.reason){controller.abort(this.reason);return}assert(this.callback),this.controller=controller,this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(controller,statusCode,headers,_statusMessage){let{factory,opaque,context,responseHeaders}=this,rawHeaders=controller?.rawHeaders,responseHeaderData=responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;if(statusCode<200){this.onInfo&&this.onInfo({statusCode,headers:responseHeaderData});return}if(this.factory=null,factory===null)return;let res=this.runInAsyncScope(factory,null,{statusCode,headers:responseHeaderData,opaque,context});if(!res||typeof res.write!="function"||typeof res.end!="function"||typeof res.on!="function")throw new InvalidReturnValueError("expected Writable");trackWritableLifecycle(res,(err,fromErrorEvent)=>{let{callback,res:res2,opaque:opaque2,trailers,abort}=this;this.res=null,(err||!res2?.readable)&&util.destroy(res2,fromErrorEvent?void 0:err),this.callback=null,this.runInAsyncScope(callback,null,err||null,{opaque:opaque2,trailers}),err&&abort(err)}),res.on("drain",()=>controller.resume()),this.res=res,(res.writableNeedDrain!==void 0?res.writableNeedDrain:res._writableState?.needDrain)===!0&&controller.pause()}onResponseData(controller,chunk){let{res}=this;res&&res.write(chunk)===!1&&controller.pause()}onResponseEnd(_controller,trailers){let{res}=this;removeSignal(this),res&&(trailers&&typeof trailers=="object"&&(this.trailers=trailers),res.end())}onResponseError(_controller,err){let{res,callback,opaque,body}=this;removeSignal(this),this.factory=null,res?(this.res=null,util.destroy(res,err)):callback&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})})),body&&(this.body=null,util.destroy(body,err))}};function stream(opts,factory,callback){if(callback===void 0)return new Promise((resolve2,reject)=>{stream.call(this,opts,factory,(err,data)=>err?reject(err):resolve2(data))});try{let handler=new StreamHandler(opts,factory,callback);this.dispatch(opts,handler)}catch(err){if(typeof callback!="function")throw err;let opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=stream}});var require_api_pipeline=__commonJS({"node_modules/undici/lib/api/api-pipeline.js"(exports,module){"use strict";var{Readable,Duplex,PassThrough}=__require("node:stream"),assert=__require("node:assert"),{AsyncResource}=__require("node:async_hooks"),{InvalidArgumentError,InvalidReturnValueError,RequestAbortedError}=require_errors(),util=require_util(),{kBodyUsed}=require_symbols(),{addSignal,removeSignal}=require_abort_signal();function noop(){}var kResume=Symbol("resume"),PipelineRequest=class extends Readable{constructor(){super({autoDestroy:!0}),this[kResume]=null,this[kBodyUsed]=!0}_read(){let{[kResume]:resume}=this;resume&&(this[kResume]=null,resume())}_destroy(err,callback){this._read(),callback(err)}},PipelineResponse=class extends Readable{constructor(resume){super({autoDestroy:!0}),this[kResume]=resume}_read(){this[kResume]()}_destroy(err,callback){!err&&!this._readableState.endEmitted&&(err=new RequestAbortedError),callback(err)}},PipelineHandler=class extends AsyncResource{constructor(opts,handler){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");if(typeof handler!="function")throw new InvalidArgumentError("invalid handler");let{signal,method,opaque,onInfo,responseHeaders}=opts;if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");if(method==="CONNECT")throw new InvalidArgumentError("invalid method");if(onInfo&&typeof onInfo!="function")throw new InvalidArgumentError("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=opaque||null,this.responseHeaders=responseHeaders||null,this.handler=handler,this.abort=null,this.context=null,this.onInfo=onInfo||null,this.req=new PipelineRequest().on("error",noop),this.ret=new Duplex({readableObjectMode:opts.objectMode,autoDestroy:!0,read:()=>{let{body}=this;body?.resume&&body.resume()},write:(chunk,encoding,callback)=>{let{req}=this;req.push(chunk,encoding)||req._readableState.destroyed?callback():req[kResume]=callback},destroy:(err,callback)=>{let{body,req,res,ret,abort}=this;!err&&!ret._readableState.endEmitted&&(err=new RequestAbortedError),abort&&err&&abort(),util.destroy(body,err),util.destroy(req,err),util.destroy(res,err),removeSignal(this),callback(err)}}).on("prefinish",()=>{let{req}=this;req.push(null)}),this.res=null,addSignal(this,signal)}onRequestStart(controller,context){let{res}=this;if(this.reason){controller.abort(this.reason);return}assert(!res,"pipeline cannot be retried"),this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(controller,statusCode,headers,_statusMessage){let{opaque,handler,context}=this;if(statusCode<200){if(this.onInfo){let rawHeaders=controller?.rawHeaders,responseHeaders=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;this.onInfo({statusCode,headers:responseHeaders})}return}this.res=new PipelineResponse(()=>controller.resume());let body;try{this.handler=null;let rawHeaders=controller?.rawHeaders,responseHeaders=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;body=this.runInAsyncScope(handler,null,{statusCode,headers:responseHeaders,opaque,body:this.res,context})}catch(err){throw this.res.on("error",noop),err}if(!body||typeof body.on!="function")throw new InvalidReturnValueError("expected Readable");body.on("data",chunk=>{let{ret,body:body2}=this;!ret.push(chunk)&&body2.pause&&body2.pause()}).on("error",err=>{let{ret}=this;util.destroy(ret,err)}).on("end",()=>{let{ret}=this;ret.push(null)}).on("close",()=>{let{ret}=this;ret._readableState.ended||util.destroy(ret,new RequestAbortedError)}),this.body=body}onResponseData(controller,chunk){let{res}=this;res.push(chunk)===!1&&controller.pause()}onResponseEnd(_controller,_trailers){let{res}=this;res.push(null)}onResponseError(_controller,err){let{ret}=this;this.handler=null,util.destroy(ret,err)}};function pipeline(opts,handler){try{let pipelineHandler=new PipelineHandler(opts,handler);return this.dispatch({...opts,body:pipelineHandler.req},pipelineHandler),pipelineHandler.ret}catch(err){return new PassThrough().destroy(err)}}module.exports=pipeline}});var require_api_upgrade=__commonJS({"node_modules/undici/lib/api/api-upgrade.js"(exports,module){"use strict";var{InvalidArgumentError,SocketError}=require_errors(),{AsyncResource}=__require("node:async_hooks"),assert=__require("node:assert"),util=require_util(),{kHTTP2Stream}=require_symbols(),{addSignal,removeSignal}=require_abort_signal(),UpgradeHandler=class extends AsyncResource{constructor(opts,callback){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");let{signal,opaque,responseHeaders}=opts;if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=responseHeaders||null,this.opaque=opaque||null,this.callback=callback,this.abort=null,this.context=null,addSignal(this,signal)}onRequestStart(controller,context){if(this.reason){controller.abort(this.reason);return}assert(this.callback),this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(){throw new SocketError("bad upgrade",null)}onRequestUpgrade(controller,statusCode,headers,socket){let expectedStatusCode=socket[kHTTP2Stream]===!0?200:101;if(statusCode!==expectedStatusCode){let socketInfo=socket[kHTTP2Stream]===!0?null:util.getSocketInfo(socket);controller.abort(new SocketError("bad upgrade",socketInfo));return}let{callback,opaque,context}=this;removeSignal(this),this.callback=null;let rawHeaders=controller?.rawHeaders,responseHeaders=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers;this.runInAsyncScope(callback,null,null,{headers:responseHeaders,socket,opaque,context})}onResponseError(_controller,err){let{callback,opaque}=this;removeSignal(this),callback&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})}))}};function upgrade(opts,callback){if(callback===void 0)return new Promise((resolve2,reject)=>{upgrade.call(this,opts,(err,data)=>err?reject(err):resolve2(data))});try{let upgradeHandler=new UpgradeHandler(opts,callback),upgradeOpts={...opts,method:opts.method||"GET",upgrade:opts.protocol||"Websocket"};this.dispatch(upgradeOpts,upgradeHandler)}catch(err){if(typeof callback!="function")throw err;let opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=upgrade}});var require_api_connect=__commonJS({"node_modules/undici/lib/api/api-connect.js"(exports,module){"use strict";var assert=__require("node:assert"),{AsyncResource}=__require("node:async_hooks"),{InvalidArgumentError,SocketError}=require_errors(),util=require_util(),{addSignal,removeSignal}=require_abort_signal(),ConnectHandler=class extends AsyncResource{constructor(opts,callback){if(!opts||typeof opts!="object")throw new InvalidArgumentError("invalid opts");if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");let{signal,opaque,responseHeaders}=opts;if(signal&&typeof signal.on!="function"&&typeof signal.addEventListener!="function")throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=opaque||null,this.responseHeaders=responseHeaders||null,this.callback=callback,this.abort=null,addSignal(this,signal)}onRequestStart(controller,context){if(this.reason){controller.abort(this.reason);return}assert(this.callback),this.abort=reason=>controller.abort(reason),this.context=context}onResponseStart(){throw new SocketError("bad connect",null)}onRequestUpgrade(controller,statusCode,headers,socket){let{callback,opaque,context}=this;removeSignal(this),this.callback=null;let responseHeaders=headers,rawHeaders=controller?.rawHeaders;responseHeaders!=null&&(responseHeaders=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):headers),this.runInAsyncScope(callback,null,null,{statusCode,headers:responseHeaders,socket,opaque,context})}onResponseError(_controller,err){let{callback,opaque}=this;removeSignal(this),callback&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})}))}};function connect(opts,callback){if(callback===void 0)return new Promise((resolve2,reject)=>{connect.call(this,opts,(err,data)=>err?reject(err):resolve2(data))});try{let connectHandler=new ConnectHandler(opts,callback),connectOptions={...opts,method:"CONNECT"};this.dispatch(connectOptions,connectHandler)}catch(err){if(typeof callback!="function")throw err;let opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=connect}});var require_api=__commonJS({"node_modules/undici/lib/api/index.js"(exports,module){"use strict";module.exports.request=require_api_request();module.exports.stream=require_api_stream();module.exports.pipeline=require_api_pipeline();module.exports.upgrade=require_api_upgrade();module.exports.connect=require_api_connect()}});var require_mock_errors=__commonJS({"node_modules/undici/lib/mock/mock-errors.js"(exports,module){"use strict";var{UndiciError}=require_errors(),kMockNotMatchedError=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),MockNotMatchedError=class extends UndiciError{constructor(message){super(message),this.name="MockNotMatchedError",this.message=message||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](instance){return instance&&instance[kMockNotMatchedError]===!0}get[kMockNotMatchedError](){return!0}};module.exports={MockNotMatchedError}}});var require_mock_symbols=__commonJS({"node_modules/undici/lib/mock/mock-symbols.js"(exports,module){"use strict";module.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOriginalDispatch:Symbol("original dispatch"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected"),kIgnoreTrailingSlash:Symbol("ignore trailing slash"),kMockAgentMockCallHistoryInstance:Symbol("mock agent mock call history name"),kMockAgentRegisterCallHistory:Symbol("mock agent register mock call history"),kMockAgentAddCallHistoryLog:Symbol("mock agent add call history log"),kMockAgentIsCallHistoryEnabled:Symbol("mock agent is call history enabled"),kMockAgentAcceptsNonStandardSearchParameters:Symbol("mock agent accepts non standard search parameters"),kMockCallHistoryAddLog:Symbol("mock call history add log"),kTotalDispatchCount:Symbol("total dispatch count")}}});var require_mock_utils=__commonJS({"node_modules/undici/lib/mock/mock-utils.js"(exports,module){"use strict";var{MockNotMatchedError}=require_mock_errors(),{kDispatches,kMockAgent,kOriginalDispatch,kOrigin,kGetNetConnect,kTotalDispatchCount}=require_mock_symbols(),{serializePathWithQuery,parseHeaders}=require_util(),{STATUS_CODES}=__require("node:http"),{types:{isPromise}}=__require("node:util"),{InvalidArgumentError}=require_errors(),requestAborted=Symbol("request aborted");function matchValue(match,value){return typeof match=="string"?match===value:match instanceof RegExp?match.test(value):typeof match=="function"?match(value)===!0:!1}function lowerCaseEntries(headers){return Object.fromEntries(Object.entries(headers).map(([headerName,headerValue])=>[headerName.toLocaleLowerCase(),headerValue]))}function getHeaderByName(headers,key){if(Array.isArray(headers)){for(let i=0;i<headers.length;i+=2)if(headers[i].toLocaleLowerCase()===key.toLocaleLowerCase())return headers[i+1];return}else return typeof headers.get=="function"?headers.get(key):lowerCaseEntries(headers)[key.toLocaleLowerCase()]}function buildHeadersFromArray(headers){let clone=headers.slice(),entries=[];for(let index3=0;index3<clone.length;index3+=2)entries.push([clone[index3],clone[index3+1]]);return Object.fromEntries(entries)}function matchHeaders(mockDispatch2,headers){if(typeof mockDispatch2.headers=="function")return Array.isArray(headers)&&(headers=buildHeadersFromArray(headers)),mockDispatch2.headers(headers?lowerCaseEntries(headers):{});if(typeof mockDispatch2.headers>"u")return!0;if(typeof headers!="object"||typeof mockDispatch2.headers!="object")return!1;for(let[matchHeaderName,matchHeaderValue]of Object.entries(mockDispatch2.headers)){let headerValue=getHeaderByName(headers,matchHeaderName);if(!matchValue(matchHeaderValue,headerValue))return!1}return!0}function normalizeSearchParams(query){if(typeof query!="string")return query;let originalQp=new URLSearchParams(query),normalizedQp=new URLSearchParams;for(let[key,value]of originalQp.entries()){if(key=key.replace("[]",""),/^(['"]).*\1$/.test(value)){normalizedQp.append(key,value);continue}if(value.includes(",")){let values=value.split(",");for(let v of values)normalizedQp.append(key,v);continue}normalizedQp.append(key,value)}return normalizedQp}function safeUrl(path2){if(typeof path2!="string")return path2;let pathSegments=path2.split("?",3);if(pathSegments.length!==2)return path2;let qp=new URLSearchParams(pathSegments.pop());return qp.sort(),[...pathSegments,qp.toString()].join("?")}function matchKey(mockDispatch2,{path:path2,method,body,headers}){let pathMatch=matchValue(mockDispatch2.path,path2),methodMatch=matchValue(mockDispatch2.method,method),bodyMatch=typeof mockDispatch2.body<"u"?matchValue(mockDispatch2.body,body):!0,headersMatch=matchHeaders(mockDispatch2,headers);return pathMatch&&methodMatch&&bodyMatch&&headersMatch}function getResponseData(data){return Buffer.isBuffer(data)||data instanceof Uint8Array||data instanceof ArrayBuffer?data:ArrayBuffer.isView(data)?new Uint8Array(data.buffer,data.byteOffset,data.byteLength):typeof data=="object"?JSON.stringify(data):data?data.toString():""}function getMockDispatch(mockDispatches,key){let basePath=key.query?serializePathWithQuery(key.path,key.query):key.path,resolvedPath=typeof basePath=="string"?safeUrl(basePath):basePath,resolvedPathWithoutTrailingSlash=removeTrailingSlash(resolvedPath),matchedMockDispatches=mockDispatches.filter(({consumed})=>!consumed).filter(({path:path2,ignoreTrailingSlash})=>ignoreTrailingSlash?matchValue(removeTrailingSlash(safeUrl(path2)),resolvedPathWithoutTrailingSlash):matchValue(safeUrl(path2),resolvedPath));if(matchedMockDispatches.length===0)throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`);if(matchedMockDispatches=matchedMockDispatches.filter(({method})=>matchValue(method,key.method)),matchedMockDispatches.length===0)throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}' on path '${resolvedPath}'`);if(matchedMockDispatches=matchedMockDispatches.filter(({body})=>typeof body<"u"?matchValue(body,key.body):!0),matchedMockDispatches.length===0)throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`);if(matchedMockDispatches=matchedMockDispatches.filter(mockDispatch2=>matchHeaders(mockDispatch2,key.headers)),matchedMockDispatches.length===0){let headers=typeof key.headers=="object"?JSON.stringify(key.headers):key.headers;throw new MockNotMatchedError(`Mock dispatch not matched for headers '${headers}' on path '${resolvedPath}'`)}return matchedMockDispatches[0]}function addMockDispatch(mockDispatches,key,data,opts){let baseData={timesInvoked:0,times:1,persist:!1,consumed:!1,...opts},replyData=typeof data=="function"?{callback:data}:{...data},newMockDispatch={...baseData,...key,pending:!0,data:{error:null,...replyData}};return mockDispatches.push(newMockDispatch),mockDispatches[kTotalDispatchCount]=(mockDispatches[kTotalDispatchCount]||0)+1,newMockDispatch}function deleteMockDispatch(mockDispatches,key){let index3=mockDispatches.findIndex(dispatch=>dispatch.consumed?matchKey(dispatch,key):!1);index3!==-1&&mockDispatches.splice(index3,1)}function removeTrailingSlash(path2){if(typeof path2!="string")return path2;for(;path2.endsWith("/");)path2=path2.slice(0,-1);return path2.length===0&&(path2="/"),path2}function buildKey(opts){let{path:path2,method,body,headers,query}=opts;return{path:path2,method,body,headers,query}}function generateKeyValues(data){let keys=Object.keys(data),result=[];for(let i=0;i<keys.length;++i){let key=keys[i],value=data[key],name=Buffer.from(`${key}`);if(Array.isArray(value))for(let j=0;j<value.length;++j)result.push(name,Buffer.from(`${value[j]}`));else result.push(name,Buffer.from(`${value}`))}return result}function getStatusText(statusCode){return STATUS_CODES[statusCode]||"unknown"}async function getResponse(body){let buffers=[];for await(let data of body)buffers.push(data);return Buffer.concat(buffers).toString("utf8")}function mockDispatch(opts,handler){let key=buildKey(opts),mockDispatch2=getMockDispatch(this[kDispatches],key),mockDispatches=this[kDispatches];mockDispatch2.timesInvoked++;let{timesInvoked,times}=mockDispatch2;mockDispatch2.consumed=!mockDispatch2.persist&×Invoked>=times,mockDispatch2.pending=timesInvoked<times;let hasBodyHooks=typeof handler.onBodySent=="function"||typeof handler.onRequestSent=="function";if(mockDispatch2.data.callback&&(!hasBodyHooks||opts.body==null)){let{callback,...responseDefaults}=mockDispatch2.data,callbackResult=callback(opts);if(isPromise(callbackResult))return callbackResult.then(resolvedData=>{if(resolvedData==null||typeof resolvedData!="object"){handler.onResponseError(null,new InvalidArgumentError("reply options callback must return an object"));return}dispatchMockReply(mockDispatches,mockDispatch2,key,opts,handler,{...responseDefaults,...resolvedData})},error=>{handler.onResponseError(null,error)}),!0;if(callbackResult==null||typeof callbackResult!="object")throw new InvalidArgumentError("reply options callback must return an object");return dispatchMockReply(mockDispatches,mockDispatch2,key,opts,handler,{...responseDefaults,...callbackResult})}return dispatchMockReply(mockDispatches,mockDispatch2,key,opts,handler)}function dispatchMockReply(mockDispatches,mockDispatch2,key,opts,handler,resolvedResponse){let{data:responseData,delay}=mockDispatch2,response=resolvedResponse??responseData;if(response.error!==null)return deleteMockDispatch(mockDispatches,key),handler.onResponseError(null,response.error),!0;let aborted=!1,timer=null,controller={paused:!1,rawHeaders:null,rawTrailers:null,pause(){this.paused=!0},resume(){this.paused=!1},abort:reason=>{aborted||(aborted=!0,timer!==null&&(clearTimeout(timer),timer=null),handler.onResponseError?.(controller,reason))}},replyOpts=opts,dispatches=mockDispatches;if(handler.onRequestStart?.(controller,null),aborted)return!0;let requestBody=dispatchRequestBody(opts.body,handler,controller,()=>aborted);if(isPromise(requestBody))return requestBody.then(body=>{body!==requestAborted&&(body!==opts.body&&(replyOpts={...opts,body}),sendReply())},error=>controller.abort(error)),!0;if(requestBody===requestAborted)return!0;requestBody!==opts.body&&(replyOpts={...opts,body:requestBody}),sendReply();function sendReply(){if(response.callback){let{callback,...responseDefaults}=response,callbackResult;try{callbackResult=callback(replyOpts)}catch(err){deleteMockDispatch(mockDispatches,key),handler.onResponseError(null,err);return}if(isPromise(callbackResult)){callbackResult.then(resolvedData=>{if(resolvedData==null||typeof resolvedData!="object"){handler.onResponseError(null,new InvalidArgumentError("reply options callback must return an object"));return}handleReply(dispatches,{...responseDefaults,...resolvedData})},err=>{handler.onResponseError(null,err)});return}if(callbackResult==null||typeof callbackResult!="object")throw new InvalidArgumentError("reply options callback must return an object");handleReply(dispatches,{...responseDefaults,...callbackResult});return}typeof delay=="number"&&delay>0?timer=setTimeout(()=>{timer=null,handleReply(dispatches)},delay):handleReply(dispatches)}function handleReply(mockDispatches2,_response=response){if(aborted)return;let{statusCode,data,headers,trailers}=_response,optsHeaders=Array.isArray(opts.headers)?buildHeadersFromArray(opts.headers):opts.headers,body=typeof data=="function"?data({...replyOpts,headers:optsHeaders}):data;if(isPromise(body))return body.then(newData=>handleReply(mockDispatches2,{..._response,data:newData}));if(aborted)return;let responseData2=getResponseData(body),responseHeaders=generateKeyValues(headers??{}),responseTrailers=generateKeyValues(trailers??{});controller.rawHeaders=responseHeaders,controller.rawTrailers=responseTrailers,handler.onResponseStart?.(controller,statusCode,parseHeaders(responseHeaders),getStatusText(statusCode)),handler.onResponseData?.(controller,Buffer.from(responseData2)),handler.onResponseEnd?.(controller,parseHeaders(responseTrailers)),deleteMockDispatch(mockDispatches2,key)}return!0}function dispatchRequestBody(body,handler,controller,isAborted){if(typeof handler.onBodySent!="function"&&typeof handler.onRequestSent!="function")return body;if(body==null)return callOnRequestSent(handler,controller,isAborted)?body:requestAborted;if(body&&typeof body[Symbol.asyncIterator]=="function")return dispatchAsyncIterableBody(body,handler,controller,isAborted);if(isIterableBody(body)){let chunks=[];for(let chunk of body)if(isAborted()||(chunks.push(chunk),!callOnBodySent(handler,controller,chunk)||isAborted()))return requestAborted;return callOnRequestSent(handler,controller,isAborted)?chunks:requestAborted}return isAborted()||!callOnBodySent(handler,controller,body)?requestAborted:callOnRequestSent(handler,controller,isAborted)?body:requestAborted}async function dispatchAsyncIterableBody(body,handler,controller,isAborted){let chunks=[];for await(let chunk of body)if(isAborted()||(chunks.push(chunk),!callOnBodySent(handler,controller,chunk)||isAborted()))return requestAborted;return callOnRequestSent(handler,controller,isAborted)?{async*[Symbol.asyncIterator](){yield*chunks}}:requestAborted}function callOnBodySent(handler,controller,chunk){try{return handler.onBodySent?.(chunk),!0}catch(error){return controller.abort(error),!1}}function callOnRequestSent(handler,controller,isAborted){try{return handler.onRequestSent?.(),!isAborted()}catch(error){return controller.abort(error),!1}}function isIterableBody(body){return typeof body!="string"&&!Buffer.isBuffer(body)&&!ArrayBuffer.isView(body)&&typeof body[Symbol.iterator]=="function"}function buildMockDispatch(){let agent=this[kMockAgent],origin=this[kOrigin],originalDispatch=this[kOriginalDispatch];return function(opts,handler){if(agent.isMockActive)try{mockDispatch.call(this,opts,handler)}catch(error){if(error.code==="UND_MOCK_ERR_MOCK_NOT_MATCHED"){let netConnect=agent[kGetNetConnect](),totalInterceptsCount=this[kDispatches][kTotalDispatchCount]||this[kDispatches].length,interceptsMessage=`, ${this[kDispatches].filter(({consumed})=>!consumed).length} interceptor(s) remaining out of ${totalInterceptsCount} defined`;if(netConnect===!1)throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)${interceptsMessage}`);if(checkNetConnect(netConnect,origin))originalDispatch.call(this,"__mockAgentBodyForDispatch"in opts?{...opts,body:opts.__mockAgentBodyForDispatch}:opts,handler);else throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)${interceptsMessage}`)}else throw error}else originalDispatch.call(this,opts,handler)}}function checkNetConnect(netConnect,origin){let url=new URL(origin);return netConnect===!0?!0:!!(Array.isArray(netConnect)&&netConnect.some(matcher=>matchValue(matcher,url.host)))}function normalizeOrigin(origin){return typeof origin!="string"&&!(origin instanceof URL)?origin:origin instanceof URL?origin.origin:origin.toLowerCase()}function buildAndValidateMockOptions(opts){let{agent,...mockOptions}=opts;if("enableCallHistory"in mockOptions&&typeof mockOptions.enableCallHistory!="boolean")throw new InvalidArgumentError("options.enableCallHistory must to be a boolean");if("acceptNonStandardSearchParameters"in mockOptions&&typeof mockOptions.acceptNonStandardSearchParameters!="boolean")throw new InvalidArgumentError("options.acceptNonStandardSearchParameters must to be a boolean");if("ignoreTrailingSlash"in mockOptions&&typeof mockOptions.ignoreTrailingSlash!="boolean")throw new InvalidArgumentError("options.ignoreTrailingSlash must to be a boolean");return mockOptions}module.exports={getResponseData,getMockDispatch,addMockDispatch,deleteMockDispatch,buildKey,generateKeyValues,matchValue,getResponse,getStatusText,mockDispatch,buildMockDispatch,checkNetConnect,buildAndValidateMockOptions,getHeaderByName,buildHeadersFromArray,normalizeSearchParams,normalizeOrigin}}});var require_mock_interceptor=__commonJS({"node_modules/undici/lib/mock/mock-interceptor.js"(exports,module){"use strict";var{getResponseData,buildKey,addMockDispatch}=require_mock_utils(),{kDispatches,kDispatchKey,kDefaultHeaders,kDefaultTrailers,kContentLength,kMockDispatch,kIgnoreTrailingSlash}=require_mock_symbols(),{InvalidArgumentError}=require_errors(),{serializePathWithQuery}=require_util(),{types:{isPromise}}=__require("node:util"),MockScope=class{constructor(mockDispatch){this[kMockDispatch]=mockDispatch}delay(waitInMs){if(typeof waitInMs!="number"||!Number.isInteger(waitInMs)||waitInMs<=0)throw new InvalidArgumentError("waitInMs must be a valid integer > 0");return this[kMockDispatch].delay=waitInMs,this}persist(){return this[kMockDispatch].persist=!0,this}times(repeatTimes){if(typeof repeatTimes!="number"||!Number.isInteger(repeatTimes)||repeatTimes<=0)throw new InvalidArgumentError("repeatTimes must be a valid integer > 0");return this[kMockDispatch].times=repeatTimes,this}},MockInterceptor=class{constructor(opts,mockDispatches){if(typeof opts!="object")throw new InvalidArgumentError("opts must be an object");if(typeof opts.path>"u")throw new InvalidArgumentError("opts.path must be defined");if(typeof opts.method>"u"&&(opts.method="GET"),typeof opts.path=="string")if(opts.query)opts.path=serializePathWithQuery(opts.path,opts.query);else{let parsedURL=new URL(opts.path,"data://");opts.path=parsedURL.pathname+parsedURL.search}typeof opts.method=="string"&&(opts.method=opts.method.toUpperCase()),this[kDispatchKey]=buildKey(opts),this[kDispatches]=mockDispatches,this[kIgnoreTrailingSlash]=opts.ignoreTrailingSlash??!1,this[kDefaultHeaders]={},this[kDefaultTrailers]={},this[kContentLength]=!1}createMockScopeDispatchData({statusCode,data,responseOptions}){let responseData=getResponseData(data),contentLength=this[kContentLength]?{"content-length":responseData.length}:{},headers={...this[kDefaultHeaders],...contentLength,...responseOptions.headers},trailers={...this[kDefaultTrailers],...responseOptions.trailers};return{statusCode,data,headers,trailers}}validateReplyParameters(replyParameters){if(typeof replyParameters.statusCode>"u")throw new InvalidArgumentError("statusCode must be defined");if(typeof replyParameters.responseOptions!="object"||replyParameters.responseOptions===null)throw new InvalidArgumentError("responseOptions must be an object")}reply(replyOptionsCallbackOrStatusCode){if(typeof replyOptionsCallbackOrStatusCode=="function"){let resolveReplyCallbackData=resolvedData=>{if(typeof resolvedData!="object"||resolvedData===null)throw new InvalidArgumentError("reply options callback must return an object");let replyParameters2={data:"",responseOptions:{},...resolvedData};return this.validateReplyParameters(replyParameters2),{...this.createMockScopeDispatchData(replyParameters2)}},wrappedDefaultsCallback=opts=>{let resolvedData=replyOptionsCallbackOrStatusCode(opts);return isPromise(resolvedData)?resolvedData.then(resolveReplyCallbackData):resolveReplyCallbackData(resolvedData)},newMockDispatch2=addMockDispatch(this[kDispatches],this[kDispatchKey],wrappedDefaultsCallback,{ignoreTrailingSlash:this[kIgnoreTrailingSlash]});return new MockScope(newMockDispatch2)}let replyParameters={statusCode:replyOptionsCallbackOrStatusCode,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(replyParameters);let dispatchData=this.createMockScopeDispatchData(replyParameters),newMockDispatch=addMockDispatch(this[kDispatches],this[kDispatchKey],dispatchData,{ignoreTrailingSlash:this[kIgnoreTrailingSlash]});return new MockScope(newMockDispatch)}replyWithError(error){if(typeof error>"u")throw new InvalidArgumentError("error must be defined");let newMockDispatch=addMockDispatch(this[kDispatches],this[kDispatchKey],{error},{ignoreTrailingSlash:this[kIgnoreTrailingSlash]});return new MockScope(newMockDispatch)}defaultReplyHeaders(headers){if(typeof headers>"u")throw new InvalidArgumentError("headers must be defined");return this[kDefaultHeaders]=headers,this}defaultReplyTrailers(trailers){if(typeof trailers>"u")throw new InvalidArgumentError("trailers must be defined");return this[kDefaultTrailers]=trailers,this}replyContentLength(){return this[kContentLength]=!0,this}};module.exports.MockInterceptor=MockInterceptor;module.exports.MockScope=MockScope}});var require_mock_client=__commonJS({"node_modules/undici/lib/mock/mock-client.js"(exports,module){"use strict";var{promisify}=__require("node:util"),Client2=require_client(),{buildMockDispatch}=require_mock_utils(),{kDispatches,kMockAgent,kClose,kOriginalClose,kOrigin,kOriginalDispatch,kConnected,kIgnoreTrailingSlash}=require_mock_symbols(),{MockInterceptor}=require_mock_interceptor(),Symbols=require_symbols(),{InvalidArgumentError}=require_errors(),MockClient=class extends Client2{constructor(origin,opts){if(!opts||!opts.agent||typeof opts.agent.dispatch!="function")throw new InvalidArgumentError("Argument opts.agent must implement Agent");super(origin,opts),this[kMockAgent]=opts.agent,this[kOrigin]=origin,this[kIgnoreTrailingSlash]=opts.ignoreTrailingSlash??!1,this[kDispatches]=[],this[kConnected]=1,this[kOriginalDispatch]=this.dispatch,this[kOriginalClose]=this.close.bind(this),this.dispatch=buildMockDispatch.call(this),this.close=this[kClose]}get[Symbols.kConnected](){return this[kConnected]}intercept(opts){return new MockInterceptor(opts&&{ignoreTrailingSlash:this[kIgnoreTrailingSlash],...opts},this[kDispatches])}cleanMocks(){this[kDispatches]=[]}async[kClose](){await promisify(this[kOriginalClose])(),this[kConnected]=0,this[kMockAgent][Symbols.kClients].delete(this[kOrigin])}};module.exports=MockClient}});var require_mock_call_history=__commonJS({"node_modules/undici/lib/mock/mock-call-history.js"(exports,module){"use strict";var{kMockCallHistoryAddLog}=require_mock_symbols(),{InvalidArgumentError}=require_errors();function handleFilterCallsWithOptions(criteria,options,handler,store,allLogs){switch(options.operator){case"OR":return store.push(...handler(criteria,allLogs)),store;case"AND":return handler(criteria,store);default:throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'")}}function buildAndValidateFilterCallsOptions(options={}){let finalOptions={};if("operator"in options){if(typeof options.operator!="string"||options.operator.toUpperCase()!=="OR"&&options.operator.toUpperCase()!=="AND")throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'");return{...finalOptions,operator:options.operator.toUpperCase()}}return finalOptions}function makeFilterCalls(parameterName){return(parameterValue,logs=this.logs)=>{if(typeof parameterValue=="string"||parameterValue==null)return logs.filter(log=>log[parameterName]===parameterValue);if(parameterValue instanceof RegExp)return logs.filter(log=>parameterValue.test(log[parameterName]));throw new InvalidArgumentError(`${parameterName} parameter should be one of string, regexp, undefined or null`)}}function computeUrlWithMaybeSearchParameters(requestInit){try{let url=new URL(requestInit.path,requestInit.origin);return url.search.length!==0||(url.search=new URLSearchParams(requestInit.query).toString()),url}catch(error){throw new InvalidArgumentError("An error occurred when computing MockCallHistoryLog.url",{cause:error})}}var MockCallHistoryLog=class{constructor(requestInit={}){this.body=requestInit.body,this.headers=requestInit.headers,this.method=requestInit.method;let url=computeUrlWithMaybeSearchParameters(requestInit);this.fullUrl=url.toString(),this.origin=url.origin,this.path=url.pathname,this.searchParams=Object.fromEntries(url.searchParams),this.protocol=url.protocol,this.host=url.host,this.port=url.port,this.hash=url.hash}toMap(){return new Map([["protocol",this.protocol],["host",this.host],["port",this.port],["origin",this.origin],["path",this.path],["hash",this.hash],["searchParams",this.searchParams],["fullUrl",this.fullUrl],["method",this.method],["body",this.body],["headers",this.headers]])}toString(){let options={betweenKeyValueSeparator:"->",betweenPairSeparator:"|"},result="";return this.toMap().forEach((value,key)=>{(typeof value=="string"||value===void 0||value===null)&&(result=`${result}${key}${options.betweenKeyValueSeparator}${value}${options.betweenPairSeparator}`),(typeof value=="object"&&value!==null||Array.isArray(value))&&(result=`${result}${key}${options.betweenKeyValueSeparator}${JSON.stringify(value)}${options.betweenPairSeparator}`)}),result.slice(0,-1)}},MockCallHistory=class{logs=[];calls(){return this.logs}firstCall(){return this.logs.at(0)}lastCall(){return this.logs.at(-1)}nthCall(number){if(typeof number!="number")throw new InvalidArgumentError("nthCall must be called with a number");if(!Number.isInteger(number))throw new InvalidArgumentError("nthCall must be called with an integer");if(Math.sign(number)!==1)throw new InvalidArgumentError("nthCall must be called with a positive value. use firstCall or lastCall instead");return this.logs.at(number-1)}filterCalls(criteria,options){if(this.logs.length===0)return this.logs;if(typeof criteria=="function")return this.logs.filter(criteria);if(criteria instanceof RegExp)return this.logs.filter(log=>criteria.test(log.toString()));if(typeof criteria=="object"&&criteria!==null){if(Object.keys(criteria).length===0)return this.logs;let finalOptions={operator:"OR",...buildAndValidateFilterCallsOptions(options)},maybeDuplicatedLogsFiltered=finalOptions.operator==="AND"?this.logs:[];return"protocol"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.protocol,finalOptions,this.filterCallsByProtocol,maybeDuplicatedLogsFiltered,this.logs)),"host"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.host,finalOptions,this.filterCallsByHost,maybeDuplicatedLogsFiltered,this.logs)),"port"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.port,finalOptions,this.filterCallsByPort,maybeDuplicatedLogsFiltered,this.logs)),"origin"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.origin,finalOptions,this.filterCallsByOrigin,maybeDuplicatedLogsFiltered,this.logs)),"path"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.path,finalOptions,this.filterCallsByPath,maybeDuplicatedLogsFiltered,this.logs)),"hash"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.hash,finalOptions,this.filterCallsByHash,maybeDuplicatedLogsFiltered,this.logs)),"fullUrl"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.fullUrl,finalOptions,this.filterCallsByFullUrl,maybeDuplicatedLogsFiltered,this.logs)),"method"in criteria&&(maybeDuplicatedLogsFiltered=handleFilterCallsWithOptions(criteria.method,finalOptions,this.filterCallsByMethod,maybeDuplicatedLogsFiltered,this.logs)),[...new Set(maybeDuplicatedLogsFiltered)]}throw new InvalidArgumentError("criteria parameter should be one of function, regexp, or object")}filterCallsByProtocol=makeFilterCalls.call(this,"protocol");filterCallsByHost=makeFilterCalls.call(this,"host");filterCallsByPort=makeFilterCalls.call(this,"port");filterCallsByOrigin=makeFilterCalls.call(this,"origin");filterCallsByPath=makeFilterCalls.call(this,"path");filterCallsByHash=makeFilterCalls.call(this,"hash");filterCallsByFullUrl=makeFilterCalls.call(this,"fullUrl");filterCallsByMethod=makeFilterCalls.call(this,"method");clear(){this.logs=[]}[kMockCallHistoryAddLog](requestInit){let log=new MockCallHistoryLog(requestInit);return this.logs.push(log),log}*[Symbol.iterator](){for(let log of this.calls())yield log}};module.exports.MockCallHistory=MockCallHistory;module.exports.MockCallHistoryLog=MockCallHistoryLog}});var require_mock_pool=__commonJS({"node_modules/undici/lib/mock/mock-pool.js"(exports,module){"use strict";var{promisify}=__require("node:util"),Pool2=require_pool(),{buildMockDispatch}=require_mock_utils(),{kDispatches,kMockAgent,kClose,kOriginalClose,kOrigin,kOriginalDispatch,kConnected,kIgnoreTrailingSlash}=require_mock_symbols(),{MockInterceptor}=require_mock_interceptor(),Symbols=require_symbols(),{InvalidArgumentError}=require_errors(),MockPool=class extends Pool2{constructor(origin,opts){if(!opts||!opts.agent||typeof opts.agent.dispatch!="function")throw new InvalidArgumentError("Argument opts.agent must implement Agent");super(origin,opts),this[kMockAgent]=opts.agent,this[kOrigin]=origin,this[kIgnoreTrailingSlash]=opts.ignoreTrailingSlash??!1,this[kDispatches]=[],this[kConnected]=1,this[kOriginalDispatch]=this.dispatch,this[kOriginalClose]=this.close.bind(this),this.dispatch=buildMockDispatch.call(this),this.close=this[kClose]}get[Symbols.kConnected](){return this[kConnected]}intercept(opts){return new MockInterceptor(opts&&{ignoreTrailingSlash:this[kIgnoreTrailingSlash],...opts},this[kDispatches])}cleanMocks(){this[kDispatches]=[]}async[kClose](){await promisify(this[kOriginalClose])(),this[kConnected]=0,this[kMockAgent][Symbols.kClients].delete(this[kOrigin])}};module.exports=MockPool}});var require_pending_interceptors_formatter=__commonJS({"node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports,module){"use strict";var{Transform}=__require("node:stream"),{Console}=__require("node:console"),PERSISTENT=process.versions.icu?"\u2705":"Y ",NOT_PERSISTENT=process.versions.icu?"\u274C":"N ";module.exports=class{constructor({disableColors}={}){this.transform=new Transform({transform(chunk,_enc,cb){cb(null,chunk)}}),this.logger=new Console({stdout:this.transform,inspectOptions:{colors:!disableColors&&!process.env.CI}})}format(pendingInterceptors){let withPrettyHeaders=pendingInterceptors.map(({method,path:path2,data:{statusCode},persist,times,timesInvoked,origin})=>({Method:method,Origin:origin,Path:path2,"Status code":statusCode,Persistent:persist?PERSISTENT:NOT_PERSISTENT,Invocations:timesInvoked,Remaining:persist?1/0:times-timesInvoked}));return this.logger.table(withPrettyHeaders),this.transform.read().toString()}}}});var require_mock_agent=__commonJS({"node_modules/undici/lib/mock/mock-agent.js"(exports,module){"use strict";var{kClients}=require_symbols(),Agent=require_agent(),{kAgent,kMockAgentSet,kMockAgentGet,kDispatches,kIsMockActive,kNetConnect,kGetNetConnect,kOptions,kFactory,kMockAgentRegisterCallHistory,kMockAgentIsCallHistoryEnabled,kMockAgentAddCallHistoryLog,kMockAgentMockCallHistoryInstance,kMockAgentAcceptsNonStandardSearchParameters,kMockCallHistoryAddLog,kIgnoreTrailingSlash}=require_mock_symbols(),MockClient=require_mock_client(),MockPool=require_mock_pool(),{matchValue,normalizeSearchParams,buildAndValidateMockOptions,normalizeOrigin}=require_mock_utils(),{InvalidArgumentError,UndiciError}=require_errors(),Dispatcher=require_dispatcher(),PendingInterceptorsFormatter=require_pending_interceptors_formatter(),{MockCallHistory}=require_mock_call_history(),MockAgent=class extends Dispatcher{constructor(opts={}){super(opts);let mockOptions=buildAndValidateMockOptions(opts);if(this[kNetConnect]=!0,this[kIsMockActive]=!0,this[kMockAgentIsCallHistoryEnabled]=mockOptions.enableCallHistory??!1,this[kMockAgentAcceptsNonStandardSearchParameters]=mockOptions.acceptNonStandardSearchParameters??!1,this[kIgnoreTrailingSlash]=mockOptions.ignoreTrailingSlash??!1,opts?.agent&&typeof opts.agent.dispatch!="function")throw new InvalidArgumentError("Argument opts.agent must implement Agent");let agent=opts?.agent?opts.agent:new Agent(opts);this[kAgent]=agent,this[kClients]=agent[kClients],this[kOptions]=mockOptions,this[kMockAgentIsCallHistoryEnabled]&&this[kMockAgentRegisterCallHistory]()}get(origin){let normalizedOrigin=normalizeOrigin(origin),originKey=this[kIgnoreTrailingSlash]?normalizedOrigin.replace(/\/$/,""):normalizedOrigin,dispatcher=this[kMockAgentGet](originKey);return dispatcher||(dispatcher=this[kFactory](originKey),this[kMockAgentSet](originKey,dispatcher)),dispatcher}dispatch(opts,handler){opts.origin=normalizeOrigin(opts.origin);let mockDispatcher=this.get(opts.origin);this[kMockAgentAddCallHistoryLog](opts);let acceptNonStandardSearchParameters=this[kMockAgentAcceptsNonStandardSearchParameters],dispatchOpts={...opts};if(dispatchOpts.allowH2===!1){let http1OnlyKey=`${dispatchOpts.origin}#http1-only`;if(!this[kClients].has(http1OnlyKey)){let http1OnlyDispatcher=this[kFactory](dispatchOpts.origin);http1OnlyDispatcher[kDispatches]=mockDispatcher[kDispatches],this[kMockAgentSet](http1OnlyKey,http1OnlyDispatcher)}}if(acceptNonStandardSearchParameters&&dispatchOpts.path){let[path2,searchParams]=dispatchOpts.path.split("?"),normalizedSearchParams=normalizeSearchParams(searchParams,acceptNonStandardSearchParameters);dispatchOpts.path=`${path2}?${normalizedSearchParams}`}return this[kAgent].dispatch(dispatchOpts,handler)}async close(){this.clearCallHistory(),await this[kAgent].close(),this[kClients].clear()}deactivate(){this[kIsMockActive]=!1}activate(){this[kIsMockActive]=!0}enableNetConnect(matcher){if(typeof matcher=="string"||typeof matcher=="function"||matcher instanceof RegExp)Array.isArray(this[kNetConnect])?this[kNetConnect].push(matcher):this[kNetConnect]=[matcher];else if(typeof matcher>"u")this[kNetConnect]=!0;else throw new InvalidArgumentError("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[kNetConnect]=!1}enableCallHistory(){return this[kMockAgentIsCallHistoryEnabled]=!0,this}disableCallHistory(){return this[kMockAgentIsCallHistoryEnabled]=!1,this}getCallHistory(){return this[kMockAgentMockCallHistoryInstance]}clearCallHistory(){this[kMockAgentMockCallHistoryInstance]!==void 0&&this[kMockAgentMockCallHistoryInstance].clear()}get isMockActive(){return this[kIsMockActive]}[kMockAgentRegisterCallHistory](){this[kMockAgentMockCallHistoryInstance]===void 0&&(this[kMockAgentMockCallHistoryInstance]=new MockCallHistory)}[kMockAgentAddCallHistoryLog](opts){this[kMockAgentIsCallHistoryEnabled]&&(this[kMockAgentRegisterCallHistory](),this[kMockAgentMockCallHistoryInstance][kMockCallHistoryAddLog](opts))}[kMockAgentSet](origin,dispatcher){this[kClients].set(origin,dispatcher)}[kFactory](origin){let mockOptions=Object.assign({agent:this},this[kOptions]);return this[kOptions]&&this[kOptions].connections===1?new MockClient(origin,mockOptions):new MockPool(origin,mockOptions)}[kMockAgentGet](origin){let dispatcher=this[kClients].get(origin);if(dispatcher)return dispatcher;if(typeof origin!="string"){let dispatcher2=this[kFactory]("http://localhost:9999");return this[kMockAgentSet](origin,dispatcher2),dispatcher2}for(let[keyMatcher,nonExplicitDispatcher]of Array.from(this[kClients]))if(nonExplicitDispatcher&&typeof keyMatcher!="string"&&matchValue(keyMatcher,origin)){let dispatcher2=this[kFactory](origin);return this[kMockAgentSet](origin,dispatcher2),dispatcher2[kDispatches]=nonExplicitDispatcher[kDispatches],dispatcher2}}[kGetNetConnect](){return this[kNetConnect]}pendingInterceptors(){let mockAgentClients=this[kClients];return Array.from(mockAgentClients.entries()).flatMap(([origin,dispatcher])=>dispatcher[kDispatches].map(dispatch=>({...dispatch,origin}))).filter(({pending})=>pending)}assertNoPendingInterceptors({pendingInterceptorsFormatter=new PendingInterceptorsFormatter}={}){let pending=this.pendingInterceptors();if(pending.length!==0)throw new UndiciError(pending.length===1?`1 interceptor is pending:
|
|
42
|
+
|
|
43
|
+
${pendingInterceptorsFormatter.format(pending)}`.trim():`${pending.length} interceptors are pending:
|
|
44
|
+
|
|
45
|
+
${pendingInterceptorsFormatter.format(pending)}`.trim())}};module.exports=MockAgent}});var require_snapshot_utils=__commonJS({"node_modules/undici/lib/mock/snapshot-utils.js"(exports,module){"use strict";var{InvalidArgumentError}=require_errors(),{runtimeFeatures}=require_runtime_features();function createHeaderFilters(matchOptions={}){let{ignoreHeaders=[],excludeHeaders=[],matchHeaders=[],caseSensitive=!1}=matchOptions;return{ignore:new Set(ignoreHeaders.map(header=>caseSensitive?header:header.toLowerCase())),exclude:new Set(excludeHeaders.map(header=>caseSensitive?header:header.toLowerCase())),match:new Set(matchHeaders.map(header=>caseSensitive?header:header.toLowerCase()))}}var crypto=runtimeFeatures.has("crypto")?__require("node:crypto"):null,hashId=crypto?.hash?value=>crypto.hash("sha256",value,"base64url"):value=>Buffer.from(value).toString("base64url");function isUndiciHeaders(headers){return Array.isArray(headers)&&(headers.length&1)===0}function isUrlExcludedFactory(excludePatterns=[]){return excludePatterns.length===0?()=>!1:function(url){let urlLowerCased;for(let pattern of excludePatterns)if(typeof pattern=="string"){if(urlLowerCased||(urlLowerCased=url.toLowerCase()),urlLowerCased.includes(pattern.toLowerCase()))return!0}else if(pattern instanceof RegExp&&pattern.test(url))return!0;return!1}}function normalizeHeaders(headers){let normalizedHeaders={};if(!headers)return normalizedHeaders;if(isUndiciHeaders(headers)){for(let i=0;i<headers.length;i+=2){let key=headers[i],value=headers[i+1];if(key&&value!==void 0){let keyStr=Buffer.isBuffer(key)?key.toString():key,valueStr=Buffer.isBuffer(value)?value.toString():value;normalizedHeaders[keyStr.toLowerCase()]=valueStr}}return normalizedHeaders}if(headers&&typeof headers=="object")for(let[key,value]of Object.entries(headers))key&&typeof key=="string"&&(normalizedHeaders[key.toLowerCase()]=Array.isArray(value)?value.join(", "):String(value));return normalizedHeaders}var validSnapshotModes=["record","playback","update"];function validateSnapshotMode(mode){if(!validSnapshotModes.includes(mode))throw new InvalidArgumentError(`Invalid snapshot mode: ${mode}. Must be one of: ${validSnapshotModes.join(", ")}`)}module.exports={createHeaderFilters,hashId,isUndiciHeaders,normalizeHeaders,isUrlExcludedFactory,validateSnapshotMode}}});var require_snapshot_recorder=__commonJS({"node_modules/undici/lib/mock/snapshot-recorder.js"(exports,module){"use strict";var{writeFile,readFile:readFile2,mkdir}=__require("node:fs/promises"),{dirname:dirname4,resolve:resolve2}=__require("node:path"),{setTimeout:setTimeout2,clearTimeout:clearTimeout2}=__require("node:timers"),{InvalidArgumentError,UndiciError}=require_errors(),{hashId,isUrlExcludedFactory,normalizeHeaders,createHeaderFilters}=require_snapshot_utils();function normalizeUrlForMatching(url,matchQuery,normalizeQuery){if(matchQuery===!1)return`${url.origin}${url.pathname}`;if(normalizeQuery){let normalized=String(normalizeQuery(url.searchParams)??"");return normalized?`${url.origin}${url.pathname}?${normalized}`:`${url.origin}${url.pathname}`}return url.toString()}function normalizeBodyForMatching(body,matchBody,normalizeBody){return matchBody===!1?"":normalizeBody?String(normalizeBody(body)??""):body?String(body):""}function formatRequestKey(opts,headerFilters,matchOptions={}){let url=new URL(opts.path,opts.origin),normalized=opts._normalizedHeaders||normalizeHeaders(opts.headers);return opts._normalizedHeaders||(opts._normalizedHeaders=normalized),{method:opts.method||"GET",url:normalizeUrlForMatching(url,matchOptions.matchQuery,matchOptions.normalizeQuery),headers:filterHeadersForMatching(normalized,headerFilters,matchOptions),body:normalizeBodyForMatching(opts.body,matchOptions.matchBody,matchOptions.normalizeBody)}}function filterHeadersForMatching(headers,headerFilters,matchOptions={}){if(!headers||typeof headers!="object")return{};let{caseSensitive=!1}=matchOptions,filtered={},{ignore,exclude,match}=headerFilters;for(let[key,value]of Object.entries(headers)){let headerKey=caseSensitive?key:key.toLowerCase();exclude.has(headerKey)||ignore.has(headerKey)||match.size!==0&&!match.has(headerKey)||(filtered[headerKey]=value)}return filtered}function filterHeadersForStorage(headers,headerFilters,matchOptions={}){if(!headers||typeof headers!="object")return{};let{caseSensitive=!1}=matchOptions,filtered={},{exclude:excludeSet}=headerFilters;for(let[key,value]of Object.entries(headers)){let headerKey=caseSensitive?key:key.toLowerCase();excludeSet.has(headerKey)||(filtered[headerKey]=value)}return filtered}function createRequestHash(formattedRequest){let parts=[formattedRequest.method,formattedRequest.url];if(formattedRequest.headers&&typeof formattedRequest.headers=="object"){let headerKeys=Object.keys(formattedRequest.headers).sort();for(let key of headerKeys){let values=Array.isArray(formattedRequest.headers[key])?formattedRequest.headers[key]:[formattedRequest.headers[key]];parts.push(key);for(let value of values.sort())parts.push(String(value))}}parts.push(formattedRequest.body);let content=parts.join("|");return hashId(content)}var SnapshotRecorder=class{#flushTimeout;#isUrlExcluded;#snapshots=new Map;#snapshotPath;#maxSnapshots=1/0;#autoFlush=!1;#headerFilters;constructor(options={}){this.#snapshotPath=options.snapshotPath,this.#maxSnapshots=options.maxSnapshots||1/0,this.#autoFlush=options.autoFlush||!1,this.flushInterval=options.flushInterval||3e4,this._flushTimer=null,this.matchOptions={matchHeaders:options.matchHeaders||[],ignoreHeaders:options.ignoreHeaders||[],excludeHeaders:options.excludeHeaders||[],matchBody:options.matchBody!==!1,normalizeBody:options.normalizeBody||void 0,matchQuery:options.matchQuery!==!1,normalizeQuery:options.normalizeQuery||void 0,caseSensitive:options.caseSensitive||!1},this.#headerFilters=createHeaderFilters(this.matchOptions),this.shouldRecord=options.shouldRecord||(()=>!0),this.shouldPlayback=options.shouldPlayback||(()=>!0),this.#isUrlExcluded=isUrlExcludedFactory(options.excludeUrls),this.#autoFlush&&this.#snapshotPath&&this.#startAutoFlush()}async record(requestOpts,response){if(!this.shouldRecord(requestOpts)||this.isUrlExcluded(requestOpts))return;let request=formatRequestKey(requestOpts,this.#headerFilters,this.matchOptions),hash=createRequestHash(request),normalizedHeaders=normalizeHeaders(response.headers),responseData={statusCode:response.statusCode,headers:filterHeadersForStorage(normalizedHeaders,this.#headerFilters,this.matchOptions),body:Buffer.isBuffer(response.body)?response.body.toString("base64"):Buffer.from(String(response.body||"")).toString("base64"),trailers:response.trailers};if(this.#snapshots.size>=this.#maxSnapshots&&!this.#snapshots.has(hash)){let oldestKey=this.#snapshots.keys().next().value;this.#snapshots.delete(oldestKey)}let existingSnapshot=this.#snapshots.get(hash);existingSnapshot&&existingSnapshot.responses?(existingSnapshot.responses.push(responseData),existingSnapshot.timestamp=new Date().toISOString()):this.#snapshots.set(hash,{request,responses:[responseData],callCount:0,timestamp:new Date().toISOString()}),this.#autoFlush&&this.#snapshotPath&&this.#scheduleFlush()}isUrlExcluded(requestOpts){let url=new URL(requestOpts.path,requestOpts.origin).toString();return this.#isUrlExcluded(url)}findSnapshot(requestOpts){if(!this.shouldPlayback(requestOpts)||this.isUrlExcluded(requestOpts))return;let request=formatRequestKey(requestOpts,this.#headerFilters,this.matchOptions),hash=createRequestHash(request),snapshot=this.#snapshots.get(hash);if(!snapshot)return;let currentCallCount=snapshot.callCount||0,responseIndex=Math.min(currentCallCount,snapshot.responses.length-1);return snapshot.callCount=currentCallCount+1,{...snapshot,response:snapshot.responses[responseIndex]}}async loadSnapshots(filePath){let path2=filePath||this.#snapshotPath;if(!path2)throw new InvalidArgumentError("Snapshot path is required");try{let data=await readFile2(resolve2(path2),"utf8"),parsed=JSON.parse(data);if(Array.isArray(parsed)){this.#snapshots.clear();for(let{hash,snapshot}of parsed)this.#snapshots.set(hash,snapshot)}else this.#snapshots=new Map(Object.entries(parsed))}catch(error){if(error.code==="ENOENT")this.#snapshots.clear();else throw new UndiciError(`Failed to load snapshots from ${path2}`,{cause:error})}}async saveSnapshots(filePath){let path2=filePath||this.#snapshotPath;if(!path2)throw new InvalidArgumentError("Snapshot path is required");let resolvedPath=resolve2(path2);await mkdir(dirname4(resolvedPath),{recursive:!0});let data=Array.from(this.#snapshots.entries()).map(([hash,snapshot])=>({hash,snapshot}));await writeFile(resolvedPath,JSON.stringify(data,null,2),{flush:!0})}clear(){this.#snapshots.clear()}getSnapshots(){return Array.from(this.#snapshots.values())}size(){return this.#snapshots.size}resetCallCounts(){for(let snapshot of this.#snapshots.values())snapshot.callCount=0}deleteSnapshot(requestOpts){let request=formatRequestKey(requestOpts,this.#headerFilters,this.matchOptions),hash=createRequestHash(request);return this.#snapshots.delete(hash)}getSnapshotInfo(requestOpts){let request=formatRequestKey(requestOpts,this.#headerFilters,this.matchOptions),hash=createRequestHash(request),snapshot=this.#snapshots.get(hash);return snapshot?{hash,request:snapshot.request,responseCount:snapshot.responses?snapshot.responses.length:snapshot.response?1:0,callCount:snapshot.callCount||0,timestamp:snapshot.timestamp}:null}replaceSnapshots(snapshotData){if(this.#snapshots.clear(),Array.isArray(snapshotData))for(let{hash,snapshot}of snapshotData)this.#snapshots.set(hash,snapshot);else snapshotData&&typeof snapshotData=="object"&&(this.#snapshots=new Map(Object.entries(snapshotData)))}#startAutoFlush(){return this.#scheduleFlush()}#stopAutoFlush(){this.#flushTimeout&&(clearTimeout2(this.#flushTimeout),this.saveSnapshots().catch(()=>{}),this.#flushTimeout=null)}#scheduleFlush(){this.#flushTimeout=setTimeout2(()=>{this.saveSnapshots().catch(()=>{}),this.#autoFlush?this.#flushTimeout?.refresh():this.#flushTimeout=null},1e3)}destroy(){this.#stopAutoFlush(),this.#flushTimeout&&(clearTimeout2(this.#flushTimeout),this.#flushTimeout=null)}async close(){this.#snapshotPath&&this.#snapshots.size!==0&&await this.saveSnapshots(),this.destroy()}};module.exports={SnapshotRecorder,formatRequestKey,createRequestHash,filterHeadersForMatching,filterHeadersForStorage,createHeaderFilters}}});var require_snapshot_agent=__commonJS({"node_modules/undici/lib/mock/snapshot-agent.js"(exports,module){"use strict";var Agent=require_agent(),MockAgent=require_mock_agent(),{SnapshotRecorder}=require_snapshot_recorder(),{InvalidArgumentError,UndiciError}=require_errors(),util=require_util(),{validateSnapshotMode}=require_snapshot_utils(),kSnapshotRecorder=Symbol("kSnapshotRecorder"),kSnapshotMode=Symbol("kSnapshotMode"),kSnapshotPath=Symbol("kSnapshotPath"),kSnapshotLoaded=Symbol("kSnapshotLoaded"),kRealAgent=Symbol("kRealAgent"),warningEmitted=!1,SnapshotAgent=class extends MockAgent{constructor(opts={}){warningEmitted||(process.emitWarning("SnapshotAgent is experimental and subject to change","ExperimentalWarning"),warningEmitted=!0);let{mode="record",snapshotPath=null,...mockAgentOpts}=opts;if(super(mockAgentOpts),validateSnapshotMode(mode),(mode==="playback"||mode==="update")&&!snapshotPath)throw new InvalidArgumentError(`snapshotPath is required when mode is '${mode}'`);this[kSnapshotMode]=mode,this[kSnapshotPath]=snapshotPath,this[kSnapshotRecorder]=new SnapshotRecorder({snapshotPath:this[kSnapshotPath],mode:this[kSnapshotMode],maxSnapshots:opts.maxSnapshots,autoFlush:opts.autoFlush,flushInterval:opts.flushInterval,matchHeaders:opts.matchHeaders,ignoreHeaders:opts.ignoreHeaders,excludeHeaders:opts.excludeHeaders,matchBody:opts.matchBody,normalizeBody:opts.normalizeBody,matchQuery:opts.matchQuery,normalizeQuery:opts.normalizeQuery,caseSensitive:opts.caseSensitive,shouldRecord:opts.shouldRecord,shouldPlayback:opts.shouldPlayback,excludeUrls:opts.excludeUrls}),this[kSnapshotLoaded]=!1,(this[kSnapshotMode]==="record"||this[kSnapshotMode]==="update"||this[kSnapshotMode]==="playback"&&opts.excludeUrls&&opts.excludeUrls.length>0)&&(this[kRealAgent]=new Agent(opts)),(this[kSnapshotMode]==="playback"||this[kSnapshotMode]==="update")&&this[kSnapshotPath]&&this.loadSnapshots().catch(()=>{})}dispatch(opts,handler){let mode=this[kSnapshotMode];if(this[kSnapshotRecorder].isUrlExcluded(opts))return this[kRealAgent].dispatch(opts,handler);if(mode==="playback"||mode==="update"){if(!this[kSnapshotLoaded])return this.#asyncDispatch(opts,handler);let snapshot=this[kSnapshotRecorder].findSnapshot(opts);if(snapshot)return this.#replaySnapshot(snapshot,handler);if(mode==="update")return this.#recordAndReplay(opts,handler);{let error=new UndiciError(`No snapshot found for ${opts.method||"GET"} ${opts.path}`);if(handler.onResponseError){handler.onResponseError(null,error);return}throw error}}else if(mode==="record")return this.#recordAndReplay(opts,handler)}async#asyncDispatch(opts,handler){return await this.loadSnapshots(),this.dispatch(opts,handler)}#recordAndReplay(opts,handler){let responseData={statusCode:null,headers:{},trailers:{},body:[]},self=this,recordingHandler={onRequestStart(controller,context){return handler.onRequestStart(controller,{...context,history:this.history})},onRequestUpgrade(controller,statusCode,headers,socket){return handler.onRequestUpgrade(controller,statusCode,headers,socket)},onResponseStart(controller,statusCode,headers,statusMessage){return responseData.statusCode=statusCode,responseData.headers=headers,handler.onResponseStart(controller,statusCode,headers,statusMessage)},onResponseData(controller,chunk){return responseData.body.push(chunk),handler.onResponseData(controller,chunk)},onResponseEnd(controller,trailers){responseData.trailers=trailers;let responseBody=Buffer.concat(responseData.body);self[kSnapshotRecorder].record(opts,{statusCode:responseData.statusCode,headers:responseData.headers,body:responseBody,trailers:responseData.trailers}).then(()=>handler.onResponseEnd(controller,trailers)).catch(error=>handler.onResponseError(controller,error))},onResponseError(controller,error){return handler.onResponseError(controller,error)}};return this[kRealAgent].dispatch(opts,recordingHandler)}#replaySnapshot(snapshot,handler){try{let{response}=snapshot,rawHeaders=response.headers?util.toRawHeaders(response.headers):[],rawTrailers=response.trailers?util.toRawHeaders(response.trailers):[],controller={rawHeaders,rawTrailers,pause(){},resume(){},abort(reason){this.aborted=!0,this.reason=reason},aborted:!1,paused:!1};handler.onRequestStart(controller),handler.onResponseStart(controller,response.statusCode,response.headers,response.statusMessage);let body=Buffer.from(response.body,"base64");handler.onResponseData(controller,body),handler.onResponseEnd(controller,response.trailers)}catch(error){handler.onResponseError?.(null,error)}}async loadSnapshots(filePath){await this[kSnapshotRecorder].loadSnapshots(filePath||this[kSnapshotPath]),this[kSnapshotLoaded]=!0,this[kSnapshotMode]==="playback"&&this.#setupMockInterceptors()}async saveSnapshots(filePath){return this[kSnapshotRecorder].saveSnapshots(filePath||this[kSnapshotPath])}#setupMockInterceptors(){for(let snapshot of this[kSnapshotRecorder].getSnapshots()){let{request,responses,response}=snapshot,url=new URL(request.url),mockPool=this.get(url.origin),responseData=responses?responses[0]:response;responseData&&mockPool.intercept({path:url.pathname+url.search,method:request.method,headers:request.headers,body:request.body}).reply(responseData.statusCode,responseData.body,{headers:responseData.headers,trailers:responseData.trailers}).persist()}}getRecorder(){return this[kSnapshotRecorder]}getMode(){return this[kSnapshotMode]}clearSnapshots(){this[kSnapshotRecorder].clear()}resetCallCounts(){this[kSnapshotRecorder].resetCallCounts()}deleteSnapshot(requestOpts){return this[kSnapshotRecorder].deleteSnapshot(requestOpts)}getSnapshotInfo(requestOpts){return this[kSnapshotRecorder].getSnapshotInfo(requestOpts)}replaceSnapshots(snapshotData){this[kSnapshotRecorder].replaceSnapshots(snapshotData)}async close(){this[kSnapshotMode]==="playback"?this[kSnapshotRecorder].destroy():await this[kSnapshotRecorder].close(),await this[kRealAgent]?.close(),await super.close()}};module.exports=SnapshotAgent}});var require_global2=__commonJS({"node_modules/undici/lib/global.js"(exports,module){"use strict";var globalDispatcher=Symbol.for("undici.globalDispatcher.2"),legacyGlobalDispatcher=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError}=require_errors(),Agent=require_agent(),Dispatcher1Wrapper=require_dispatcher1_wrapper(),fallbackDispatcher;getGlobalDispatcher()===void 0&&setGlobalDispatcher2(new Agent);function setGlobalDispatcher2(agent){if(!agent||typeof agent.dispatch!="function")throw new InvalidArgumentError("Argument agent must implement Agent");try{Object.defineProperty(globalThis,globalDispatcher,{value:agent,writable:!0,enumerable:!1,configurable:!1})}catch(err){if(err instanceof TypeError){fallbackDispatcher=agent;return}throw err}try{let legacyAgent=agent instanceof Dispatcher1Wrapper?agent:new Dispatcher1Wrapper(agent);Object.defineProperty(globalThis,legacyGlobalDispatcher,{value:legacyAgent,writable:!0,enumerable:!1,configurable:!1})}catch(err){if(!(err instanceof TypeError))throw err}}function getGlobalDispatcher(){return globalThis[globalDispatcher]??fallbackDispatcher}var installedExports=["fetch","Headers","Response","Request","FormData","WebSocket","CloseEvent","ErrorEvent","MessageEvent","EventSource"];module.exports={setGlobalDispatcher:setGlobalDispatcher2,getGlobalDispatcher,installedExports}}});var require_decorator_handler=__commonJS({"node_modules/undici/lib/handler/decorator-handler.js"(exports,module){"use strict";var assert=__require("node:assert");module.exports=class{#handler;#onCompleteCalled=!1;#onErrorCalled=!1;#onResponseStartCalled=!1;constructor(handler){if(typeof handler!="object"||handler===null)throw new TypeError("handler must be an object");this.#handler=handler}onRequestStart(...args){this.#handler.onRequestStart?.(...args)}onRequestUpgrade(...args){return assert(!this.#onCompleteCalled),assert(!this.#onErrorCalled),this.#handler.onRequestUpgrade?.(...args)}onResponseStart(...args){return assert(!this.#onCompleteCalled),assert(!this.#onErrorCalled),assert(!this.#onResponseStartCalled),this.#onResponseStartCalled=!0,this.#handler.onResponseStart?.(...args)}onResponseData(...args){return assert(!this.#onCompleteCalled),assert(!this.#onErrorCalled),this.#handler.onResponseData?.(...args)}onResponseEnd(...args){return assert(!this.#onCompleteCalled),assert(!this.#onErrorCalled),this.#onCompleteCalled=!0,this.#handler.onResponseEnd?.(...args)}onResponseError(...args){return this.#onErrorCalled=!0,this.#handler.onResponseError?.(...args)}onBodySent(...args){return this.#handler.onBodySent?.(...args)}onRequestSent(...args){return this.#handler.onRequestSent?.(...args)}}}});var require_redirect_handler=__commonJS({"node_modules/undici/lib/handler/redirect-handler.js"(exports,module){"use strict";var util=require_util(),assert=__require("node:assert"),{InvalidArgumentError}=require_errors(),{kRequestOrigin}=require_symbols(),redirectableStatusCodes=[300,301,302,303,307,308],noop=()=>{},RedirectHandler=class _RedirectHandler{static buildDispatch(dispatcher,maxRedirections){if(maxRedirections!=null&&(!Number.isInteger(maxRedirections)||maxRedirections<0))throw new InvalidArgumentError("maxRedirections must be a positive number");let dispatch=dispatcher.dispatch.bind(dispatcher);return(opts,originalHandler)=>dispatch(opts,new _RedirectHandler(dispatch,maxRedirections,opts,originalHandler))}constructor(dispatch,maxRedirections,opts,handler){if(maxRedirections!=null&&(!Number.isInteger(maxRedirections)||maxRedirections<0))throw new InvalidArgumentError("maxRedirections must be a positive number");if(opts.throwOnMaxRedirect!=null&&typeof opts.throwOnMaxRedirect!="boolean")throw new InvalidArgumentError("throwOnMaxRedirect must be a boolean");this.dispatch=dispatch,this.location=null;let{maxRedirections:_,stripHeadersOnRedirect,stripHeadersOnCrossOriginRedirect,...cleanOpts}=opts;this.opts=cleanOpts,this.opts.body=util.wrapRequestBody(this.opts.body),this.stripHeadersOnRedirect=normalizeStripHeaders(stripHeadersOnRedirect,"stripHeadersOnRedirect"),this.stripHeadersOnCrossOriginRedirect=normalizeStripHeaders(stripHeadersOnCrossOriginRedirect,"stripHeadersOnCrossOriginRedirect"),this.maxRedirections=maxRedirections,this.handler=handler,this.history=[]}onRequestStart(controller,context){this.handler.onRequestStart?.(controller,{...context,history:this.history})}onBodySent(chunk){this.handler.onBodySent?.(chunk)}onRequestSent(){this.handler.onRequestSent?.()}onRequestUpgrade(controller,statusCode,headers,socket){this.handler.onRequestUpgrade?.(controller,statusCode,headers,socket)}onResponseStart(controller,statusCode,headers,statusMessage){if(this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections)throw new Error("max redirects");let removeContentHeaders=statusCode===303;(statusCode===301||statusCode===302)&&this.opts.method==="POST"&&(this.opts.method="GET",util.isStream(this.opts.body)&&util.destroy(this.opts.body.on("error",noop)),this.opts.body=null,removeContentHeaders=!0),statusCode===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",util.isStream(this.opts.body)&&util.destroy(this.opts.body.on("error",noop)),this.opts.body=null),this.location=this.history.length>=this.maxRedirections||util.isDisturbed(this.opts.body)||redirectableStatusCodes.indexOf(statusCode)===-1?null:headers.location;let requestOrigin=this.opts[kRequestOrigin]===void 0?this.opts.origin:this.opts[kRequestOrigin];if(requestOrigin&&this.history.push(new URL(this.opts.path,requestOrigin)),!this.location){this.handler.onResponseStart?.(controller,statusCode,headers,statusMessage);return}let baseUrl=requestOrigin?new URL(this.opts.path,requestOrigin):void 0,{origin,pathname,search}=util.parseURL(new URL(this.location,baseUrl)),path2=search?`${pathname}${search}`:pathname,redirectUrlString=`${origin}${path2}`;for(let historyUrl of this.history)if(historyUrl.toString()===redirectUrlString)throw new InvalidArgumentError(`Redirect loop detected. Cannot redirect to ${origin}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`);this.opts.headers=cleanRequestHeaders(this.opts.headers,removeContentHeaders,requestOrigin!==origin,this.stripHeadersOnRedirect,this.stripHeadersOnCrossOriginRedirect),this.opts.path=path2,this.opts.origin=origin,this.opts[kRequestOrigin]=origin,this.opts.query=null}onResponseData(controller,chunk){this.location||this.handler.onResponseData?.(controller,chunk)}onResponseEnd(controller,trailers){this.location?this.dispatch(this.opts,this):this.handler.onResponseEnd(controller,trailers)}onResponseError(controller,error){this.handler.onResponseError?.(controller,error)}};function shouldRemoveHeader(header,removeContent,unknownOrigin,stripHeaders,stripHeadersOnCrossOrigin){let name=util.headerNameToString(header);return name==="host"||stripHeaders?.has(name)||unknownOrigin&&stripHeadersOnCrossOrigin?.has(name)||removeContent&&name.startsWith("content-")?!0:unknownOrigin?name==="authorization"||name==="cookie"||name==="proxy-authorization":!1}function normalizeStripHeaders(headers,optionName){if(headers==null)return null;if(!Array.isArray(headers))throw new InvalidArgumentError(`${optionName} must be an array`);let normalized=new Set;for(let header of headers){if(typeof header!="string")throw new InvalidArgumentError(`${optionName} must contain header names`);normalized.add(util.headerNameToString(header))}return normalized}function cleanRequestHeaders(headers,removeContent,unknownOrigin,stripHeaders,stripHeadersOnCrossOrigin){let ret=[];if(Array.isArray(headers))for(let i=0;i<headers.length;i+=2)shouldRemoveHeader(headers[i],removeContent,unknownOrigin,stripHeaders,stripHeadersOnCrossOrigin)||ret.push(headers[i],headers[i+1]);else if(headers&&typeof headers=="object"){let entries=util.hasSafeIterator(headers)?headers:Object.entries(headers);for(let[key,value]of entries)shouldRemoveHeader(key,removeContent,unknownOrigin,stripHeaders,stripHeadersOnCrossOrigin)||ret.push(key,value)}else assert(headers==null,"headers must be an object or an array");return ret}module.exports=RedirectHandler}});var require_redirect=__commonJS({"node_modules/undici/lib/interceptor/redirect.js"(exports,module){"use strict";var RedirectHandler=require_redirect_handler();function createRedirectInterceptor({maxRedirections:defaultMaxRedirections,throwOnMaxRedirect:defaultThrowOnMaxRedirect,stripHeadersOnRedirect:defaultStripHeadersOnRedirect,stripHeadersOnCrossOriginRedirect:defaultStripHeadersOnCrossOriginRedirect}={}){return dispatch=>function(opts,handler){let{maxRedirections=defaultMaxRedirections,throwOnMaxRedirect=defaultThrowOnMaxRedirect,stripHeadersOnRedirect=defaultStripHeadersOnRedirect,stripHeadersOnCrossOriginRedirect=defaultStripHeadersOnCrossOriginRedirect,...rest}=opts;if(maxRedirections==null||maxRedirections===0)return dispatch(opts,handler);let dispatchOpts={...rest,throwOnMaxRedirect,stripHeadersOnRedirect,stripHeadersOnCrossOriginRedirect},redirectHandler=new RedirectHandler(dispatch,maxRedirections,dispatchOpts,handler);return dispatch(dispatchOpts,redirectHandler)}}module.exports=createRedirectInterceptor}});var require_response_error=__commonJS({"node_modules/undici/lib/interceptor/response-error.js"(exports,module){"use strict";var DecoratorHandler=require_decorator_handler(),{ResponseError}=require_errors(),ResponseErrorHandler=class extends DecoratorHandler{#statusCode;#contentType;#decoder;#headers;#body;constructor(_opts,{handler}){super(handler)}#checkContentType(contentType){return(this.#contentType??"").indexOf(contentType)===0}onRequestStart(controller,context){return this.#statusCode=0,this.#contentType=null,this.#decoder=null,this.#headers=null,this.#body="",super.onRequestStart(controller,context)}onResponseStart(controller,statusCode,headers,statusMessage){if(this.#statusCode=statusCode,this.#headers=headers,this.#contentType=headers["content-type"],this.#statusCode<400)return super.onResponseStart(controller,statusCode,headers,statusMessage);(this.#checkContentType("application/json")||this.#checkContentType("text/plain"))&&(this.#decoder=new TextDecoder("utf-8"))}onResponseData(controller,chunk){if(this.#statusCode<400)return super.onResponseData(controller,chunk);this.#body+=this.#decoder?.decode(chunk,{stream:!0})??""}onResponseEnd(controller,trailers){if(this.#statusCode>=400){if(this.#body+=this.#decoder?.decode(void 0,{stream:!1})??"",this.#checkContentType("application/json"))try{this.#body=JSON.parse(this.#body)}catch{}let err,stackTraceLimit=Error.stackTraceLimit;Error.stackTraceLimit=0;try{err=new ResponseError("Response Error",this.#statusCode,{body:this.#body,headers:this.#headers})}finally{Error.stackTraceLimit=stackTraceLimit}super.onResponseError(controller,err)}else super.onResponseEnd(controller,trailers)}onResponseError(controller,err){super.onResponseError(controller,err)}};module.exports=()=>dispatch=>function(opts,handler){return dispatch(opts,new ResponseErrorHandler(opts,{handler}))}}});var require_retry=__commonJS({"node_modules/undici/lib/interceptor/retry.js"(exports,module){"use strict";var RetryHandler=require_retry_handler();module.exports=globalOpts=>dispatch=>function(opts,handler){return dispatch(opts,new RetryHandler({...opts,retryOptions:{...globalOpts,...opts.retryOptions}},{handler,dispatch}))}}});var require_dump=__commonJS({"node_modules/undici/lib/interceptor/dump.js"(exports,module){"use strict";var{InvalidArgumentError,RequestAbortedError}=require_errors(),DecoratorHandler=require_decorator_handler(),DumpHandler=class extends DecoratorHandler{#maxSize=1024*1024;#dumped=!1;#size=0;aborted=!1;reason=!1;constructor({maxSize,signal},handler){if(maxSize!=null&&(!Number.isFinite(maxSize)||maxSize<1))throw new InvalidArgumentError("maxSize must be a number greater than 0");super(handler),this.#maxSize=maxSize??this.#maxSize}#abort(reason){this.aborted=!0,this.reason=reason}onRequestStart(controller,context){return controller.abort=this.#abort.bind(this),super.onRequestStart(controller,context)}onResponseStart(controller,statusCode,headers,statusMessage){let contentLength=headers["content-length"];if(contentLength!=null&&contentLength>this.#maxSize)throw new RequestAbortedError(`Response size (${contentLength}) larger than maxSize (${this.#maxSize})`);return this.aborted===!0?!0:super.onResponseStart(controller,statusCode,headers,statusMessage)}onResponseError(controller,err){super.onResponseError(controller,this.aborted===!0?this.reason:err)}onResponseData(controller,chunk){if(this.#size=this.#size+chunk.length,this.#size>this.#maxSize)throw new RequestAbortedError(`Response size (${this.#size}) larger than maxSize (${this.#maxSize})`);return this.#size===this.#maxSize&&(this.#dumped=!0),!0}onResponseEnd(controller,trailers){if(this.aborted===!0){super.onResponseError(controller,this.reason);return}super.onResponseEnd(controller,this.#dumped?{}:trailers)}};function createDumpInterceptor({maxSize:defaultMaxSize}={maxSize:1024*1024}){return dispatch=>function(opts,handler){let{dumpMaxSize=defaultMaxSize}=opts,dumpHandler=new DumpHandler({maxSize:dumpMaxSize,signal:opts.signal},handler);return dispatch(opts,dumpHandler)}}module.exports=createDumpInterceptor}});var require_dns=__commonJS({"node_modules/undici/lib/interceptor/dns.js"(exports,module){"use strict";var{isIP}=__require("node:net"),{lookup}=__require("node:dns"),DecoratorHandler=require_decorator_handler(),{InvalidArgumentError,InformationalError}=require_errors(),{kRequestOrigin}=require_symbols(),maxInt=Math.pow(2,31)-1;function hasSafeIterator(headers){let prototype=Object.getPrototypeOf(headers);return Object.hasOwn(headers,Symbol.iterator)||prototype!=null&&prototype!==Object.prototype&&typeof headers[Symbol.iterator]=="function"}function isHostHeader(key){return typeof key=="string"&&key.toLowerCase()==="host"}function normalizeHeaders(headers){if(headers==null)return null;if(Array.isArray(headers)){if(headers.length===0||!Array.isArray(headers[0]))return headers;let normalized=[];for(let header of headers)Array.isArray(header)&&header.length===2?normalized.push(header[0],header[1]):normalized.push(header);return normalized}if(typeof headers=="object"&&hasSafeIterator(headers)){let normalized=[];for(let header of headers)Array.isArray(header)&&header.length===2?normalized.push(header[0],header[1]):normalized.push(header);return normalized}return headers}function hasHostHeader(headers){if(headers==null)return!1;if(Array.isArray(headers)){if(headers.length===0)return!1;for(let i=0;i<headers.length;i+=2)if(isHostHeader(headers[i]))return!0;return!1}if(typeof headers=="object"){for(let key in headers)if(isHostHeader(key))return!0}return!1}function withHostHeader(host,headers){let normalizedHeaders=normalizeHeaders(headers);return hasHostHeader(normalizedHeaders)?normalizedHeaders:Array.isArray(normalizedHeaders)?["host",host,...normalizedHeaders]:normalizedHeaders&&typeof normalizedHeaders=="object"?{host,...normalizedHeaders}:{host}}var DNSStorage=class{#maxItems=0;#records=new Map;constructor(opts){this.#maxItems=opts.maxItems}get size(){return this.#records.size}get(hostname){return this.#records.get(hostname)??null}set(hostname,records){this.#records.set(hostname,records)}delete(hostname){this.#records.delete(hostname)}full(){return this.size>=this.#maxItems}},DNSInstance=class{#maxTTL=0;#maxItems=0;dualStack=!0;affinity=null;lookup=null;pick=null;storage=null;constructor(opts){this.#maxTTL=opts.maxTTL,this.#maxItems=opts.maxItems,this.dualStack=opts.dualStack,this.affinity=opts.affinity,this.lookup=opts.lookup??this.#defaultLookup,this.pick=opts.pick??this.#defaultPick,this.storage=opts.storage??new DNSStorage(opts)}runLookup(origin,opts,cb){let ips=this.storage.get(origin.hostname);if(ips==null&&this.storage.full()){cb(null,origin);return}let newOpts={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...opts.dns,maxTTL:this.#maxTTL,maxItems:this.#maxItems};if(ips==null)this.lookup(origin,newOpts,(err,addresses)=>{if(err||addresses==null||addresses.length===0){cb(err??new InformationalError("No DNS entries found"));return}this.setRecords(origin,addresses);let records=this.storage.get(origin.hostname),ip=this.pick(origin,records,newOpts.affinity),port;typeof ip.port=="number"?port=`:${ip.port}`:origin.port!==""?port=`:${origin.port}`:port="",cb(null,new URL(`${origin.protocol}//${ip.family===6?`[${ip.address}]`:ip.address}${port}`))});else{let ip=this.pick(origin,ips,newOpts.affinity);if(ip==null){this.storage.delete(origin.hostname),this.runLookup(origin,opts,cb);return}let port;typeof ip.port=="number"?port=`:${ip.port}`:origin.port!==""?port=`:${origin.port}`:port="",cb(null,new URL(`${origin.protocol}//${ip.family===6?`[${ip.address}]`:ip.address}${port}`))}}#defaultLookup(origin,opts,cb){lookup(origin.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(err,addresses)=>{if(err)return cb(err);let results=new Map;for(let addr of addresses)results.set(`${addr.address}:${addr.family}`,addr);cb(null,results.values())})}#defaultPick(origin,hostnameRecords,affinity){let ip=null,{records,offset}=hostnameRecords,family;if(this.dualStack?(affinity==null&&(offset==null||offset===maxInt?(hostnameRecords.offset=0,affinity=4):(hostnameRecords.offset++,affinity=(hostnameRecords.offset&1)===1?6:4)),records[affinity]!=null&&records[affinity].ips.length>0?family=records[affinity]:family=records[affinity===4?6:4]):family=records[affinity],family==null||family.ips.length===0)return ip;family.offset==null||family.offset===maxInt?family.offset=0:family.offset++;let position=family.offset%family.ips.length;return ip=family.ips[position]??null,ip==null?ip:Date.now()-ip.timestamp>ip.ttl?(family.ips.splice(position,1),this.pick(origin,hostnameRecords,affinity)):ip}pickFamily(origin,ipFamily){let records=this.storage.get(origin.hostname)?.records;if(!records)return null;let family=records[ipFamily];if(!family)return null;family.offset==null||family.offset===maxInt?family.offset=0:family.offset++;let position=family.offset%family.ips.length,ip=family.ips[position]??null;return ip==null||Date.now()-ip.timestamp>ip.ttl&&family.ips.splice(position,1),ip}setRecords(origin,addresses){let timestamp=Date.now(),records={records:{4:null,6:null}},minTTL=this.#maxTTL;for(let record of addresses){record.timestamp=timestamp,typeof record.ttl=="number"?(record.ttl=Math.min(record.ttl,this.#maxTTL),minTTL=Math.min(minTTL,record.ttl)):record.ttl=this.#maxTTL;let familyRecords=records.records[record.family]??{ips:[]};familyRecords.ips.push(record),records.records[record.family]=familyRecords}this.storage.set(origin.hostname,records,{ttl:minTTL})}deleteRecords(origin){this.storage.delete(origin.hostname)}getHandler(meta,opts){return new DNSDispatchHandler(this,meta,opts)}},DNSDispatchHandler=class extends DecoratorHandler{#state=null;#opts=null;#dispatch=null;#origin=null;#controller=null;#newOrigin=null;#firstTry=!0;constructor(state2,{origin,handler,dispatch,newOrigin},opts){super(handler),this.#origin=origin,this.#newOrigin=newOrigin,this.#opts={...opts},this.#state=state2,this.#dispatch=dispatch}onResponseError(controller,err){switch(err.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#state.dualStack){if(!this.#firstTry){super.onResponseError(controller,err);return}this.#firstTry=!1;let otherFamily=this.#newOrigin.hostname[0]==="["?4:6,ip=this.#state.pickFamily(this.#origin,otherFamily);if(ip==null){super.onResponseError(controller,err);return}let port;typeof ip.port=="number"?port=`:${ip.port}`:this.#origin.port!==""?port=`:${this.#origin.port}`:port="";let dispatchOpts={...this.#opts,origin:`${this.#origin.protocol}//${ip.family===6?`[${ip.address}]`:ip.address}${port}`,[kRequestOrigin]:this.#opts[kRequestOrigin]===void 0?this.#origin:this.#opts[kRequestOrigin],headers:withHostHeader(this.#origin.host,this.#opts.headers)};this.#dispatch(dispatchOpts,this);return}super.onResponseError(controller,err);break}case"ENOTFOUND":this.#state.deleteRecords(this.#origin),super.onResponseError(controller,err);break;default:super.onResponseError(controller,err);break}}};module.exports=interceptorOpts=>{if(interceptorOpts?.maxTTL!=null&&(typeof interceptorOpts?.maxTTL!="number"||interceptorOpts?.maxTTL<0))throw new InvalidArgumentError("Invalid maxTTL. Must be a positive number");if(interceptorOpts?.maxItems!=null&&(typeof interceptorOpts?.maxItems!="number"||interceptorOpts?.maxItems<1))throw new InvalidArgumentError("Invalid maxItems. Must be a positive number and greater than zero");if(interceptorOpts?.affinity!=null&&interceptorOpts?.affinity!==4&&interceptorOpts?.affinity!==6)throw new InvalidArgumentError("Invalid affinity. Must be either 4 or 6");if(interceptorOpts?.dualStack!=null&&typeof interceptorOpts?.dualStack!="boolean")throw new InvalidArgumentError("Invalid dualStack. Must be a boolean");if(interceptorOpts?.lookup!=null&&typeof interceptorOpts?.lookup!="function")throw new InvalidArgumentError("Invalid lookup. Must be a function");if(interceptorOpts?.pick!=null&&typeof interceptorOpts?.pick!="function")throw new InvalidArgumentError("Invalid pick. Must be a function");if(interceptorOpts?.storage!=null&&(typeof interceptorOpts?.storage?.get!="function"||typeof interceptorOpts?.storage?.set!="function"||typeof interceptorOpts?.storage?.full!="function"||typeof interceptorOpts?.storage?.delete!="function"))throw new InvalidArgumentError("Invalid storage. Must be a object with methods: { get, set, full, delete }");let dualStack=interceptorOpts?.dualStack??!0,affinity;dualStack?affinity=interceptorOpts?.affinity??null:affinity=interceptorOpts?.affinity??4;let opts={maxTTL:interceptorOpts?.maxTTL??1e4,lookup:interceptorOpts?.lookup??null,pick:interceptorOpts?.pick??null,dualStack,affinity,maxItems:interceptorOpts?.maxItems??1/0,storage:interceptorOpts?.storage},instance=new DNSInstance(opts);return dispatch=>function(origDispatchOpts,handler){if(origDispatchOpts.origin==null)return dispatch(origDispatchOpts,handler);let origin=origDispatchOpts.origin.constructor===URL?origDispatchOpts.origin:new URL(origDispatchOpts.origin);return isIP(origin.hostname)!==0?dispatch(origDispatchOpts,handler):(instance.runLookup(origin,origDispatchOpts,(err,newOrigin)=>{if(err)return handler.onResponseError(null,err);let dispatchOpts={...origDispatchOpts,servername:origin.hostname,origin:newOrigin.origin,[kRequestOrigin]:origDispatchOpts[kRequestOrigin]===void 0?origin:origDispatchOpts[kRequestOrigin],headers:withHostHeader(origin.host,origDispatchOpts.headers)};dispatch(dispatchOpts,instance.getHandler({origin,dispatch,handler,newOrigin},origDispatchOpts))}),!0)}}}});var require_cache=__commonJS({"node_modules/undici/lib/util/cache.js"(exports,module){"use strict";var{safeHTTPMethods,pathHasQueryOrFragment,hasSafeIterator,isValidHTTPToken}=require_util(),{serializePathWithQuery}=require_util(),{kRequestOrigin}=require_symbols(),MAX_DELTA_SECONDS=2147483647,RESTRICTIVE_DIRECTIVE_NAMES=["no-store","private","no-cache"],kInvalidCacheControlDirectives=Symbol("invalid cache-control directives");function trimOWS(value){return value.replace(/^[\t ]+|[\t ]+$/g,"")}function arrayIncludes(array,value){for(let i=0;i<array.length;i++)if(array[i]===value)return!0;return!1}function trimOWSStart(value){return value.replace(/^[\t ]+/,"")}function trimOWSEnd(value){return value.replace(/[\t ]+$/,"")}function findUnescapedQuote(value,start){let escaped=!1;for(let i=start;i<value.length;i++)if(escaped)escaped=!1;else if(value[i]==="\\")escaped=!0;else if(value[i]==='"')return i;return-1}function splitCacheControlHeaderValue(value){let directives=[],start=0,quoteStart=-1,inQuote=!1,escaped=!1;for(let i=0;i<value.length;i++)inQuote?escaped?escaped=!1:value[i]==="\\"?escaped=!0:value[i]==='"'&&(inQuote=!1,quoteStart=-1):value[i]==='"'?(inQuote=!0,quoteStart=i):value[i]===","&&(directives.push({value:value.substring(start,i),fromMalformedQuote:!1}),start=i+1);if(!inQuote)return directives.push({value:value.substring(start),fromMalformedQuote:!1}),directives;let tail=value.substring(start),quoteOffset=quoteStart-start,tailStart=0;for(let i=0;i<tail.length;i++)tail[i]===","&&(directives.push({value:tail.substring(tailStart,i),fromMalformedQuote:tailStart>quoteOffset}),tailStart=i+1);return directives.push({value:tail.substring(tailStart),fromMalformedQuote:tailStart>quoteOffset}),directives}function markInvalidCacheControlDirective(directives,key){let invalidDirectives=directives[kInvalidCacheControlDirectives];invalidDirectives===void 0&&(invalidDirectives=new Set,Object.defineProperty(directives,kInvalidCacheControlDirectives,{value:invalidDirectives})),invalidDirectives.add(key)}function hasInvalidCacheControlDirective(directives,key){return directives[kInvalidCacheControlDirectives]?.has(key)===!0}function getMalformedRestrictiveDirectiveName(key){for(let directiveName of RESTRICTIVE_DIRECTIVE_NAMES)if(key.startsWith(directiveName)&&key.length>directiveName.length&&!isValidHTTPToken(key[directiveName.length]))return directiveName;let tokenOnlyKey="",hasInvalidTokenChar=!1;for(let i=0;i<key.length;i++)isValidHTTPToken(key[i])?tokenOnlyKey+=key[i]:hasInvalidTokenChar=!0;if(hasInvalidTokenChar&&arrayIncludes(RESTRICTIVE_DIRECTIVE_NAMES,tokenOnlyKey))return tokenOnlyKey}function getRequestOrigin(opts){let origin=opts[kRequestOrigin]===void 0?opts.origin:opts[kRequestOrigin];return typeof origin=="string"||origin instanceof URL?origin:null}function getInterceptorOrigin(opts,interceptorOrigin){let requestOrigin=getRequestOrigin(opts);if(interceptorOrigin===void 0)return requestOrigin;if(interceptorOrigin===null)return null;if(requestOrigin)try{if(new URL(requestOrigin).origin!==interceptorOrigin)return null}catch{return interceptorOrigin}return interceptorOrigin}function makeCacheKey(opts,origin=getRequestOrigin(opts)){if(!origin)throw new Error("opts.origin is undefined");let fullPath=opts.path||"/";return opts.query&&!pathHasQueryOrFragment(fullPath)&&(fullPath=serializePathWithQuery(fullPath,opts.query)),{origin:origin.toString(),method:opts.method,path:fullPath,headers:opts.headers}}function appendHeader(headers,key,val){let headerName=key.toLowerCase(),current=headers[headerName],values=Array.isArray(val)?val:[val];current===void 0?headers[headerName]=Array.isArray(val)?val.slice():val:Array.isArray(current)?current.push(...values):headers[headerName]=[current,...values]}function normalizeHeaders(opts){let headers;if(opts.headers==null)headers={};else if(typeof opts.headers=="object")if(headers={},hasSafeIterator(opts.headers))if(Array.isArray(opts.headers)){let first=opts.headers[0];if(Array.isArray(first))for(let x of opts.headers){if(!Array.isArray(x))throw new Error("opts.headers is not a valid header map");let[key,val]=x;if(typeof key!="string"||typeof val!="string")throw new Error("opts.headers is not a valid header map");appendHeader(headers,key,val)}else{let len=opts.headers.length;if(len%2!==0)throw new Error("opts.headers is not a valid header map");for(let i=0;i<len;i+=2){let key=opts.headers[i],val=opts.headers[i+1];if(typeof key!="string"||typeof val!="string"&&!Array.isArray(val))throw new Error("opts.headers is not a valid header map");if(typeof val=="string")appendHeader(headers,key,val);else{let mapped=[];for(let j=0;j<val.length;j++){let v=val[j];mapped.push(typeof v=="string"?v:v.toString("latin1"))}appendHeader(headers,key,mapped)}}}}else for(let x of opts.headers){if(!Array.isArray(x))throw new Error("opts.headers is not a valid header map");let[key,val]=x;if(typeof key!="string"||typeof val!="string")throw new Error("opts.headers is not a valid header map");appendHeader(headers,key,val)}else for(let key of Object.keys(opts.headers))appendHeader(headers,key,opts.headers[key]);else throw new Error("opts.headers is not an object");return headers}function assertCacheKey(key){if(typeof key!="object")throw new TypeError(`expected key to be object, got ${typeof key}`);for(let property of["origin","method","path"])if(typeof key[property]!="string")throw new TypeError(`expected key.${property} to be string, got ${typeof key[property]}`);if(key.headers!==void 0&&typeof key.headers!="object")throw new TypeError(`expected headers to be object, got ${typeof key}`)}function assertCacheValue(value){if(typeof value!="object")throw new TypeError(`expected value to be object, got ${typeof value}`);for(let property of["statusCode","cachedAt","staleAt","deleteAt"])if(typeof value[property]!="number")throw new TypeError(`expected value.${property} to be number, got ${typeof value[property]}`);if(typeof value.statusMessage!="string")throw new TypeError(`expected value.statusMessage to be string, got ${typeof value.statusMessage}`);if(value.headers!=null&&typeof value.headers!="object")throw new TypeError(`expected value.rawHeaders to be object, got ${typeof value.headers}`);if(value.vary!==void 0&&typeof value.vary!="object")throw new TypeError(`expected value.vary to be object, got ${typeof value.vary}`);if(value.etag!==void 0&&typeof value.etag!="string")throw new TypeError(`expected value.etag to be string, got ${typeof value.etag}`)}function parseCacheControlHeader(header){let output={},invalidNumericDirectives=new Set,invalidNoArgumentDirectives=new Set,directives=splitCacheControlHeaderValue(Array.isArray(header)?header.join(","):header);for(let i=0;i<directives.length;i++){let directiveRecord=directives[i],directive=directiveRecord.value.toLowerCase(),fromMalformedQuote=directiveRecord.fromMalformedQuote,keyValueDelimiter=directive.indexOf("="),key,value,keyHasTrailingWhitespace=!1,valueHasLeadingWhitespace=!1;if(keyValueDelimiter!==-1){let rawKey=directive.substring(0,keyValueDelimiter),rawValue=directive.substring(keyValueDelimiter+1);keyHasTrailingWhitespace=trimOWSEnd(rawKey)!==rawKey,valueHasLeadingWhitespace=trimOWSStart(rawValue)!==rawValue,key=trimOWS(rawKey),value=trimOWSStart(rawValue)}else key=trimOWS(directive);let malformedRestrictiveDirectiveName=getMalformedRestrictiveDirectiveName(key);if(malformedRestrictiveDirectiveName!==void 0){output[malformedRestrictiveDirectiveName]=!0;continue}switch(key){case"min-fresh":case"max-stale":case"max-age":case"s-maxage":case"stale-while-revalidate":case"stale-if-error":{if(fromMalformedQuote||invalidNumericDirectives.has(key))continue;if(value===void 0||keyHasTrailingWhitespace||valueHasLeadingWhitespace){delete output[key],invalidNumericDirectives.add(key),markInvalidCacheControlDirective(output,key);continue}if(value.length>=2&&value[0]==='"'&&value[value.length-1]==='"'&&(value=value.substring(1,value.length-1)),!/^[0-9]+$/.test(value)){delete output[key],invalidNumericDirectives.add(key),markInvalidCacheControlDirective(output,key);continue}let parsedValue=Math.min(parseInt(value,10),MAX_DELTA_SECONDS);key==="min-fresh"?(!(key in output)||output[key]<parsedValue)&&(output[key]=parsedValue):(!(key in output)||output[key]>parsedValue)&&(output[key]=parsedValue);break}case"private":case"no-cache":{if(fromMalformedQuote){output[key]=!0;break}if(value!==void 0&&value.length===0){output[key]=!0;break}if(value){if(value[0]==='"'){value=trimOWSEnd(value);let fieldList="",lastQuotedPart=i,foundEndingQuote=!1,closingQuote=findUnescapedQuote(value,1);if(closingQuote!==-1)fieldList=value.substring(1,closingQuote),foundEndingQuote=!0;else{let fieldListParts=[value.substring(1)];for(let j=i+1;j<directives.length;j++){let nextPart=trimOWS(directives[j].value),closingQuote2=findUnescapedQuote(nextPart,0);if(lastQuotedPart=j,closingQuote2!==-1){fieldListParts.push(nextPart.substring(0,closingQuote2)),foundEndingQuote=!0;break}fieldListParts.push(nextPart)}fieldList=fieldListParts.join(",")}if(!foundEndingQuote){output[key]=!0;break}i=lastQuotedPart;let headers=fieldList.split(","),validFieldNames=!0;for(let j=0;j<headers.length;j++)headers[j]=trimOWS(headers[j]),isValidHTTPToken(headers[j])||(validFieldNames=!1);validFieldNames?output[key]!==!0&&(key in output?output[key]=output[key].concat(headers):output[key]=headers):output[key]=!0}else{let fieldName=trimOWS(value);isValidHTTPToken(fieldName)?output[key]!==!0&&(key in output?output[key]=output[key].concat(fieldName):output[key]=[fieldName]):output[key]=!0}break}}case"public":case"must-revalidate":case"proxy-revalidate":case"immutable":case"no-transform":case"must-understand":case"only-if-cached":if(fromMalformedQuote||invalidNoArgumentDirectives.has(key))continue;if(value!==void 0){delete output[key],invalidNoArgumentDirectives.add(key);continue}output[key]=!0;break;case"no-store":output[key]=!0;break;default:continue}}return output}function splitVaryHeader(varyHeader){let values=Array.isArray(varyHeader)?varyHeader:[varyHeader],output=[];for(let i=0;i<values.length;i++){let parts=values[i].split(",");for(let j=0;j<parts.length;j++)output.push(parts[j])}return output}function hasVaryStar(varyHeader){let values=splitVaryHeader(varyHeader);for(let i=0;i<values.length;i++)if(trimOWS(values[i]).indexOf("*")!==-1)return!0;return!1}function parseVaryHeader(varyHeader,headers){if(hasVaryStar(varyHeader))return headers;let output={},varyingHeaders=splitVaryHeader(varyHeader);for(let header of varyingHeaders){let trimmedHeader=trimOWS(header).toLowerCase();if(trimmedHeader.length===0)continue;if(!isValidHTTPToken(trimmedHeader))return;let headerValue=headers[trimmedHeader];output[trimmedHeader]=Array.isArray(headerValue)?headerValue.slice():headerValue??null}return output}function isInvalidOrWildcardVaryHeader(varyHeader){return hasVaryStar(varyHeader)||parseVaryHeader(varyHeader,{})===void 0}function isEtagUsable(etag){return etag.length<=2?!1:etag[0]==='"'&&etag[etag.length-1]==='"'?!(etag[1]==='"'||etag.startsWith('"W/')):etag.startsWith('W/"')&&etag[etag.length-1]==='"'?etag.length!==4:!1}function assertCacheStore(store,name="CacheStore"){if(typeof store!="object"||store===null)throw new TypeError(`expected type of ${name} to be a CacheStore, got ${store===null?"null":typeof store}`);for(let fn of["get","createWriteStream","delete"])if(typeof store[fn]!="function")throw new TypeError(`${name} needs to have a \`${fn}()\` function`)}function assertCacheMethods(methods,name="CacheMethods"){if(!Array.isArray(methods))throw new TypeError(`expected type of ${name} needs to be an array, got ${methods===null?"null":typeof methods}`);if(methods.length===0)throw new TypeError(`${name} needs to have at least one method`);for(let method of methods)if(!arrayIncludes(safeHTTPMethods,method))throw new TypeError(`element of ${name}-array needs to be one of following values: ${safeHTTPMethods.join(", ")}, got ${method}`)}function makeDeduplicationKey(cacheKey,excludeHeaders){let headers={};if(cacheKey.headers){let sortedHeaders=Object.keys(cacheKey.headers).sort();for(let header of sortedHeaders)excludeHeaders?.has(header.toLowerCase())||(headers[header]=cacheKey.headers[header])}return JSON.stringify([cacheKey.origin,cacheKey.method,cacheKey.path,headers])}module.exports={getInterceptorOrigin,getRequestOrigin,makeCacheKey,normalizeHeaders,assertCacheKey,assertCacheValue,parseCacheControlHeader,hasInvalidCacheControlDirective,parseVaryHeader,hasVaryStar,isInvalidOrWildcardVaryHeader,isEtagUsable,assertCacheMethods,assertCacheStore,makeDeduplicationKey}}});var require_date=__commonJS({"node_modules/undici/lib/util/date.js"(exports,module){"use strict";function parseHttpDate(date){switch(date[3]){case",":return parseImfDate(date);case" ":return parseAscTimeDate(date);default:return parseRfc850Date(date)}}function makeDate(year,monthIdx,day,hour,minute,second,weekday){let result=new Date(Date.UTC(year,monthIdx,day,hour,minute,second));return year>=0&&year<=99&&result.setUTCFullYear(year),result.getUTCFullYear()===year&&result.getUTCMonth()===monthIdx&&result.getUTCDate()===day&&result.getUTCHours()===hour&&result.getUTCMinutes()===minute&&result.getUTCSeconds()===second&&result.getUTCDay()===weekday?result:void 0}function parseImfDate(date){if(date.length!==29||date[4]!==" "||date[7]!==" "||date[11]!==" "||date[16]!==" "||date[19]!==":"||date[22]!==":"||date[25]!==" "||date[26]!=="G"||date[27]!=="M"||date[28]!=="T")return;let weekday=-1;if(date[0]==="S"&&date[1]==="u"&&date[2]==="n")weekday=0;else if(date[0]==="M"&&date[1]==="o"&&date[2]==="n")weekday=1;else if(date[0]==="T"&&date[1]==="u"&&date[2]==="e")weekday=2;else if(date[0]==="W"&&date[1]==="e"&&date[2]==="d")weekday=3;else if(date[0]==="T"&&date[1]==="h"&&date[2]==="u")weekday=4;else if(date[0]==="F"&&date[1]==="r"&&date[2]==="i")weekday=5;else if(date[0]==="S"&&date[1]==="a"&&date[2]==="t")weekday=6;else return;let day=0;if(date[5]==="0"){let code=date.charCodeAt(6);if(code<49||code>57)return;day=code-48}else{let code1=date.charCodeAt(5);if(code1<49||code1>51)return;let code2=date.charCodeAt(6);if(code2<48||code2>57)return;day=(code1-48)*10+(code2-48)}let monthIdx=-1;if(date[8]==="J"&&date[9]==="a"&&date[10]==="n")monthIdx=0;else if(date[8]==="F"&&date[9]==="e"&&date[10]==="b")monthIdx=1;else if(date[8]==="M"&&date[9]==="a")if(date[10]==="r")monthIdx=2;else if(date[10]==="y")monthIdx=4;else return;else if(date[8]==="J")if(date[9]==="a"&&date[10]==="n")monthIdx=0;else if(date[9]==="u")if(date[10]==="n")monthIdx=5;else if(date[10]==="l")monthIdx=6;else return;else return;else if(date[8]==="A")if(date[9]==="p"&&date[10]==="r")monthIdx=3;else if(date[9]==="u"&&date[10]==="g")monthIdx=7;else return;else if(date[8]==="S"&&date[9]==="e"&&date[10]==="p")monthIdx=8;else if(date[8]==="O"&&date[9]==="c"&&date[10]==="t")monthIdx=9;else if(date[8]==="N"&&date[9]==="o"&&date[10]==="v")monthIdx=10;else if(date[8]==="D"&&date[9]==="e"&&date[10]==="c")monthIdx=11;else return;let yearDigit1=date.charCodeAt(12);if(yearDigit1<48||yearDigit1>57)return;let yearDigit2=date.charCodeAt(13);if(yearDigit2<48||yearDigit2>57)return;let yearDigit3=date.charCodeAt(14);if(yearDigit3<48||yearDigit3>57)return;let yearDigit4=date.charCodeAt(15);if(yearDigit4<48||yearDigit4>57)return;let year=(yearDigit1-48)*1e3+(yearDigit2-48)*100+(yearDigit3-48)*10+(yearDigit4-48),hour=0;if(date[17]==="0"){let code=date.charCodeAt(18);if(code<48||code>57)return;hour=code-48}else{let code1=date.charCodeAt(17);if(code1<48||code1>50)return;let code2=date.charCodeAt(18);if(code2<48||code2>57||code1===50&&code2>51)return;hour=(code1-48)*10+(code2-48)}let minute=0;if(date[20]==="0"){let code=date.charCodeAt(21);if(code<48||code>57)return;minute=code-48}else{let code1=date.charCodeAt(20);if(code1<48||code1>53)return;let code2=date.charCodeAt(21);if(code2<48||code2>57)return;minute=(code1-48)*10+(code2-48)}let second=0;if(date[23]==="0"){let code=date.charCodeAt(24);if(code<48||code>57)return;second=code-48}else{let code1=date.charCodeAt(23);if(code1<48||code1>53)return;let code2=date.charCodeAt(24);if(code2<48||code2>57)return;second=(code1-48)*10+(code2-48)}return makeDate(year,monthIdx,day,hour,minute,second,weekday)}function parseAscTimeDate(date){if(date.length!==24||date[7]!==" "||date[10]!==" "||date[19]!==" ")return;let weekday=-1;if(date[0]==="S"&&date[1]==="u"&&date[2]==="n")weekday=0;else if(date[0]==="M"&&date[1]==="o"&&date[2]==="n")weekday=1;else if(date[0]==="T"&&date[1]==="u"&&date[2]==="e")weekday=2;else if(date[0]==="W"&&date[1]==="e"&&date[2]==="d")weekday=3;else if(date[0]==="T"&&date[1]==="h"&&date[2]==="u")weekday=4;else if(date[0]==="F"&&date[1]==="r"&&date[2]==="i")weekday=5;else if(date[0]==="S"&&date[1]==="a"&&date[2]==="t")weekday=6;else return;let monthIdx=-1;if(date[4]==="J"&&date[5]==="a"&&date[6]==="n")monthIdx=0;else if(date[4]==="F"&&date[5]==="e"&&date[6]==="b")monthIdx=1;else if(date[4]==="M"&&date[5]==="a")if(date[6]==="r")monthIdx=2;else if(date[6]==="y")monthIdx=4;else return;else if(date[4]==="J")if(date[5]==="a"&&date[6]==="n")monthIdx=0;else if(date[5]==="u")if(date[6]==="n")monthIdx=5;else if(date[6]==="l")monthIdx=6;else return;else return;else if(date[4]==="A")if(date[5]==="p"&&date[6]==="r")monthIdx=3;else if(date[5]==="u"&&date[6]==="g")monthIdx=7;else return;else if(date[4]==="S"&&date[5]==="e"&&date[6]==="p")monthIdx=8;else if(date[4]==="O"&&date[5]==="c"&&date[6]==="t")monthIdx=9;else if(date[4]==="N"&&date[5]==="o"&&date[6]==="v")monthIdx=10;else if(date[4]==="D"&&date[5]==="e"&&date[6]==="c")monthIdx=11;else return;let day=0;if(date[8]===" "){let code=date.charCodeAt(9);if(code<49||code>57)return;day=code-48}else{let code1=date.charCodeAt(8);if(code1<49||code1>51)return;let code2=date.charCodeAt(9);if(code2<48||code2>57)return;day=(code1-48)*10+(code2-48)}let hour=0;if(date[11]==="0"){let code=date.charCodeAt(12);if(code<48||code>57)return;hour=code-48}else{let code1=date.charCodeAt(11);if(code1<48||code1>50)return;let code2=date.charCodeAt(12);if(code2<48||code2>57||code1===50&&code2>51)return;hour=(code1-48)*10+(code2-48)}let minute=0;if(date[14]==="0"){let code=date.charCodeAt(15);if(code<48||code>57)return;minute=code-48}else{let code1=date.charCodeAt(14);if(code1<48||code1>53)return;let code2=date.charCodeAt(15);if(code2<48||code2>57)return;minute=(code1-48)*10+(code2-48)}let second=0;if(date[17]==="0"){let code=date.charCodeAt(18);if(code<48||code>57)return;second=code-48}else{let code1=date.charCodeAt(17);if(code1<48||code1>53)return;let code2=date.charCodeAt(18);if(code2<48||code2>57)return;second=(code1-48)*10+(code2-48)}let yearDigit1=date.charCodeAt(20);if(yearDigit1<48||yearDigit1>57)return;let yearDigit2=date.charCodeAt(21);if(yearDigit2<48||yearDigit2>57)return;let yearDigit3=date.charCodeAt(22);if(yearDigit3<48||yearDigit3>57)return;let yearDigit4=date.charCodeAt(23);if(yearDigit4<48||yearDigit4>57)return;let year=(yearDigit1-48)*1e3+(yearDigit2-48)*100+(yearDigit3-48)*10+(yearDigit4-48);return makeDate(year,monthIdx,day,hour,minute,second,weekday)}function parseRfc850Date(date){let commaIndex=-1,weekday=-1;if(date[0]==="S")date[1]==="u"&&date[2]==="n"&&date[3]==="d"&&date[4]==="a"&&date[5]==="y"?(weekday=0,commaIndex=6):date[1]==="a"&&date[2]==="t"&&date[3]==="u"&&date[4]==="r"&&date[5]==="d"&&date[6]==="a"&&date[7]==="y"&&(weekday=6,commaIndex=8);else if(date[0]==="M"&&date[1]==="o"&&date[2]==="n"&&date[3]==="d"&&date[4]==="a"&&date[5]==="y")weekday=1,commaIndex=6;else if(date[0]==="T")date[1]==="u"&&date[2]==="e"&&date[3]==="s"&&date[4]==="d"&&date[5]==="a"&&date[6]==="y"?(weekday=2,commaIndex=7):date[1]==="h"&&date[2]==="u"&&date[3]==="r"&&date[4]==="s"&&date[5]==="d"&&date[6]==="a"&&date[7]==="y"&&(weekday=4,commaIndex=8);else if(date[0]==="W"&&date[1]==="e"&&date[2]==="d"&&date[3]==="n"&&date[4]==="e"&&date[5]==="s"&&date[6]==="d"&&date[7]==="a"&&date[8]==="y")weekday=3,commaIndex=9;else if(date[0]==="F"&&date[1]==="r"&&date[2]==="i"&&date[3]==="d"&&date[4]==="a"&&date[5]==="y")weekday=5,commaIndex=6;else return;if(date[commaIndex]!==","||date.length-commaIndex-1!==23||date[commaIndex+1]!==" "||date[commaIndex+4]!=="-"||date[commaIndex+8]!=="-"||date[commaIndex+11]!==" "||date[commaIndex+14]!==":"||date[commaIndex+17]!==":"||date[commaIndex+20]!==" "||date[commaIndex+21]!=="G"||date[commaIndex+22]!=="M"||date[commaIndex+23]!=="T")return;let day=0;if(date[commaIndex+2]==="0"){let code=date.charCodeAt(commaIndex+3);if(code<49||code>57)return;day=code-48}else{let code1=date.charCodeAt(commaIndex+2);if(code1<49||code1>51)return;let code2=date.charCodeAt(commaIndex+3);if(code2<48||code2>57)return;day=(code1-48)*10+(code2-48)}let monthIdx=-1;if(date[commaIndex+5]==="J"&&date[commaIndex+6]==="a"&&date[commaIndex+7]==="n")monthIdx=0;else if(date[commaIndex+5]==="F"&&date[commaIndex+6]==="e"&&date[commaIndex+7]==="b")monthIdx=1;else if(date[commaIndex+5]==="M"&&date[commaIndex+6]==="a"&&date[commaIndex+7]==="r")monthIdx=2;else if(date[commaIndex+5]==="A"&&date[commaIndex+6]==="p"&&date[commaIndex+7]==="r")monthIdx=3;else if(date[commaIndex+5]==="M"&&date[commaIndex+6]==="a"&&date[commaIndex+7]==="y")monthIdx=4;else if(date[commaIndex+5]==="J"&&date[commaIndex+6]==="u"&&date[commaIndex+7]==="n")monthIdx=5;else if(date[commaIndex+5]==="J"&&date[commaIndex+6]==="u"&&date[commaIndex+7]==="l")monthIdx=6;else if(date[commaIndex+5]==="A"&&date[commaIndex+6]==="u"&&date[commaIndex+7]==="g")monthIdx=7;else if(date[commaIndex+5]==="S"&&date[commaIndex+6]==="e"&&date[commaIndex+7]==="p")monthIdx=8;else if(date[commaIndex+5]==="O"&&date[commaIndex+6]==="c"&&date[commaIndex+7]==="t")monthIdx=9;else if(date[commaIndex+5]==="N"&&date[commaIndex+6]==="o"&&date[commaIndex+7]==="v")monthIdx=10;else if(date[commaIndex+5]==="D"&&date[commaIndex+6]==="e"&&date[commaIndex+7]==="c")monthIdx=11;else return;let yearDigit1=date.charCodeAt(commaIndex+9);if(yearDigit1<48||yearDigit1>57)return;let yearDigit2=date.charCodeAt(commaIndex+10);if(yearDigit2<48||yearDigit2>57)return;let year=(yearDigit1-48)*10+(yearDigit2-48);year+=year<70?2e3:1900;let hour=0;if(date[commaIndex+12]==="0"){let code=date.charCodeAt(commaIndex+13);if(code<48||code>57)return;hour=code-48}else{let code1=date.charCodeAt(commaIndex+12);if(code1<48||code1>50)return;let code2=date.charCodeAt(commaIndex+13);if(code2<48||code2>57||code1===50&&code2>51)return;hour=(code1-48)*10+(code2-48)}let minute=0;if(date[commaIndex+15]==="0"){let code=date.charCodeAt(commaIndex+16);if(code<48||code>57)return;minute=code-48}else{let code1=date.charCodeAt(commaIndex+15);if(code1<48||code1>53)return;let code2=date.charCodeAt(commaIndex+16);if(code2<48||code2>57)return;minute=(code1-48)*10+(code2-48)}let second=0;if(date[commaIndex+18]==="0"){let code=date.charCodeAt(commaIndex+19);if(code<48||code>57)return;second=code-48}else{let code1=date.charCodeAt(commaIndex+18);if(code1<48||code1>53)return;let code2=date.charCodeAt(commaIndex+19);if(code2<48||code2>57)return;second=(code1-48)*10+(code2-48)}return makeDate(year,monthIdx,day,hour,minute,second,weekday)}module.exports={parseHttpDate}}});var require_cache_handler=__commonJS({"node_modules/undici/lib/handler/cache-handler.js"(exports,module){"use strict";var util=require_util(),{parseCacheControlHeader,hasInvalidCacheControlDirective,parseVaryHeader,hasVaryStar,isInvalidOrWildcardVaryHeader,isEtagUsable}=require_cache(),{parseHttpDate}=require_date();function noop(){}var HEURISTICALLY_CACHEABLE_STATUS_CODES=[200,203,204,206,300,301,308,404,405,410,414,501],NOT_UNDERSTOOD_STATUS_CODES=[206],MAX_RESPONSE_AGE=2147483647e3,REVALIDATION_ONLY_RETENTION=864e5;function trimOWS(value){return value.replace(/^[\t ]+|[\t ]+$/g,"")}function arrayIncludes(array,value){for(let i=0;i<array.length;i++)if(array[i]===value)return!0;return!1}function appendConnectionHeaderTokens(headersToRemove,connectionHeader){let values=Array.isArray(connectionHeader)?connectionHeader:[connectionHeader];for(let i=0;i<values.length;i++){let tokens=values[i].split(",");for(let j=0;j<tokens.length;j++)headersToRemove.push(trimOWS(tokens[j]).toLowerCase())}}function getSameOriginPath(cacheKey,location){if(typeof location!="string")return;let originUrl,requestUrl,locationUrl;try{originUrl=new URL(cacheKey.origin),requestUrl=new URL(cacheKey.path,originUrl),locationUrl=new URL(location,requestUrl)}catch{return}if(locationUrl.origin===originUrl.origin)return locationUrl.pathname+locationUrl.search}function deleteCachedUri(store,cacheKey,path2){deleteCachedValue(store,{...cacheKey,path:path2});for(let i=0;i<util.safeHTTPMethods.length;i++){let method=util.safeHTTPMethods[i];method!==cacheKey.method&&deleteCachedValue(store,{...cacheKey,method,path:path2})}}function deleteLocationTargets(store,cacheKey,headerValue){if(headerValue===void 0)return;let values=Array.isArray(headerValue)?headerValue:[headerValue];for(let i=0;i<values.length;i++){let path2=getSameOriginPath(cacheKey,values[i]);path2!==void 0&&deleteCachedUri(store,cacheKey,path2)}}function invalidateUnsafeRequest(store,cacheKey,resHeaders){deleteCachedUri(store,cacheKey,cacheKey.path),deleteLocationTargets(store,cacheKey,resHeaders.location),deleteLocationTargets(store,cacheKey,resHeaders["content-location"])}var CacheHandler=class{#cacheKey;#cacheType;#cacheByDefault;#store;#handler;#writeStream;constructor({store,type,cacheByDefault},cacheKey,handler){this.#store=store,this.#cacheType=type,this.#cacheByDefault=cacheByDefault,this.#cacheKey=cacheKey,this.#handler=handler}onRequestStart(controller,context){this.#writeStream?.destroy(),this.#writeStream=void 0,this.#handler.onRequestStart?.(controller,context)}onBodySent(chunk){this.#handler.onBodySent?.(chunk)}onRequestSent(){this.#handler.onRequestSent?.()}onRequestUpgrade(controller,statusCode,headers,socket){this.#handler.onRequestUpgrade?.(controller,statusCode,headers,socket)}onResponseStart(controller,statusCode,resHeaders,statusMessage){let downstreamOnHeaders=()=>this.#handler.onResponseStart?.(controller,statusCode,resHeaders,statusMessage),handler=this;if(!arrayIncludes(util.safeHTTPMethods,this.#cacheKey.method)&&statusCode>=200&&statusCode<=399)return invalidateUnsafeRequest(this.#store,this.#cacheKey,resHeaders),downstreamOnHeaders();let cacheControlHeader=resHeaders["cache-control"],cacheControlDirectives=cacheControlHeader?parseCacheControlHeader(cacheControlHeader):{};if(revalidationResponseDisallowsCachedReuse(this.#cacheType,resHeaders,cacheControlDirectives))return deleteCachedValue(this.#store,this.#cacheKey),downstreamOnHeaders();let heuristicallyCacheable=resHeaders["last-modified"]&&arrayIncludes(HEURISTICALLY_CACHEABLE_STATUS_CODES,statusCode);if(!cacheControlHeader&&!resHeaders.expires&&!heuristicallyCacheable&&!this.#cacheByDefault)return statusCode===304&&resHeaders.vary&&isInvalidOrWildcardVaryHeader(resHeaders.vary)&&deleteCachedValue(this.#store,this.#cacheKey),downstreamOnHeaders();if(!canCacheResponse(this.#cacheType,this.#cacheKey.method,statusCode,resHeaders,cacheControlDirectives,this.#cacheKey.headers))return statusCode===304&&(cacheControlHeader||revalidationResponseDisallowsCachedReuse(this.#cacheType,resHeaders,cacheControlDirectives))&&deleteCachedValue(this.#store,this.#cacheKey),downstreamOnHeaders();let now=Date.now(),resAge=Object.hasOwn(resHeaders,"age")?getAge(resHeaders.age):void 0;if(resAge!==void 0&&resAge>=MAX_RESPONSE_AGE)return deleteCachedValueIfNotModified(statusCode,this.#store,this.#cacheKey),downstreamOnHeaders();let resDate=Object.hasOwn(resHeaders,"date")?getDate(resHeaders.date):void 0;if(resDate===null)return deleteCachedValueIfNotModified(statusCode,this.#store,this.#cacheKey),downstreamOnHeaders();let apparentAge=resDate?Math.max(0,now-resDate.getTime()):0,currentAge=Math.max(apparentAge,resAge??0),hasValidator=typeof resHeaders.etag=="string"&&isEtagUsable(resHeaders.etag)||typeof resHeaders["last-modified"]=="string",staleAt=determineStaleAt(this.#cacheType,now,resAge,resHeaders,resDate,cacheControlDirectives,hasValidator)??this.#cacheByDefault,revalidationOnly=staleAt===0&&hasValidator;if(staleAt===void 0||currentAge>=staleAt&&!revalidationOnly)return(cacheControlHeader||staleAt!==void 0)&&deleteCachedValueIfNotModified(statusCode,this.#store,this.#cacheKey),downstreamOnHeaders();let baseTime=now-currentAge,absoluteStaleAt=staleAt+baseTime;if(now>=absoluteStaleAt&&!revalidationOnly)return deleteCachedValueIfNotModified(statusCode,this.#store,this.#cacheKey),downstreamOnHeaders();let varyDirectives;if(this.#cacheKey.headers&&resHeaders.vary&&(varyDirectives=parseVaryHeader(resHeaders.vary,this.#cacheKey.headers),!varyDirectives))return downstreamOnHeaders();let cachedAt=baseTime,deleteAt=determineDeleteAt(baseTime,now,cacheControlDirectives,absoluteStaleAt),strippedHeaders=stripNecessaryHeaders(resHeaders,cacheControlDirectives),value={statusCode,statusMessage,headers:strippedHeaders,vary:varyDirectives,cacheControlDirectives,cachedAt,staleAt:absoluteStaleAt,deleteAt};if(statusCode===304){let handle304=cachedValue=>{if(!cachedValue)return downstreamOnHeaders();if(value.statusCode=cachedValue.statusCode,value.statusMessage=cachedValue.statusMessage,value.etag=cachedValue.etag,value.vary=varyDirectives??cachedValue.vary,value.headers={...cachedValue.headers,...strippedHeaders},downstreamOnHeaders(),this.#writeStream=this.#store.createWriteStream(this.#cacheKey,value),!(!this.#writeStream||!cachedValue?.body))if(typeof cachedValue.body.values=="function"){let bodyIterator=cachedValue.body.values(),streamCachedBody=()=>{for(let chunk of bodyIterator){let full=this.#writeStream.write(chunk)===!1;if(this.#handler.onResponseData?.(controller,chunk),full)break}};this.#writeStream.on("error",function(){handler.#writeStream=void 0,handler.#store.delete(handler.#cacheKey)}).on("drain",()=>{streamCachedBody()}).on("close",function(){handler.#writeStream===this&&(handler.#writeStream=void 0)}),streamCachedBody()}else typeof cachedValue.body.on=="function"&&(cachedValue.body.on("data",chunk=>{this.#writeStream.write(chunk),this.#handler.onResponseData?.(controller,chunk)}).on("end",()=>{this.#writeStream.end()}).on("error",()=>{this.#writeStream=void 0,this.#store.delete(this.#cacheKey)}),this.#writeStream.on("error",function(){handler.#writeStream=void 0,handler.#store.delete(handler.#cacheKey)}).on("close",function(){handler.#writeStream===this&&(handler.#writeStream=void 0)}))},result=this.#store.get(this.#cacheKey);result&&typeof result.then=="function"?result.then(handle304):handle304(result)}else{if(typeof resHeaders.etag=="string"&&isEtagUsable(resHeaders.etag)&&(value.etag=resHeaders.etag),this.#writeStream=this.#store.createWriteStream(this.#cacheKey,value),!this.#writeStream)return downstreamOnHeaders();this.#writeStream.on("drain",()=>controller.resume()).on("error",function(){handler.#writeStream=void 0,handler.#store.delete(handler.#cacheKey)}).on("close",function(){handler.#writeStream===this&&(handler.#writeStream=void 0),controller.resume()}),downstreamOnHeaders()}}onResponseData(controller,chunk){this.#writeStream?.write(chunk)===!1&&controller.pause(),this.#handler.onResponseData?.(controller,chunk)}onResponseEnd(controller,trailers){this.#writeStream?.end(),this.#handler.onResponseEnd?.(controller,trailers)}onResponseError(controller,err){this.#writeStream?.destroy(err),this.#writeStream=void 0,this.#handler.onResponseError?.(controller,err)}};function deleteCachedValue(store,cacheKey){try{store.delete(cacheKey)?.catch?.(noop)}catch{}}function deleteCachedValueIfNotModified(statusCode,store,cacheKey){statusCode===304&&deleteCachedValue(store,cacheKey)}function revalidationResponseDisallowsCachedReuse(cacheType,resHeaders,cacheControlDirectives){return cacheControlDirectives["no-store"]===!0||cacheType==="shared"&&(cacheControlDirectives.private===!0||Object.hasOwn(resHeaders,"set-cookie"))||(resHeaders.vary?isInvalidOrWildcardVaryHeader(resHeaders.vary):!1)}function canCacheResponse(cacheType,method,statusCode,resHeaders,cacheControlDirectives,reqHeaders){return!(!arrayIncludes(util.safeHTTPMethods,method)||statusCode<200||arrayIncludes(NOT_UNDERSTOOD_STATUS_CODES,statusCode)||!arrayIncludes(HEURISTICALLY_CACHEABLE_STATUS_CODES,statusCode)&&!resHeaders.expires&&!cacheControlDirectives.public&&cacheControlDirectives["max-age"]===void 0&&!(cacheControlDirectives.private&&cacheType==="private")&&!(cacheControlDirectives["s-maxage"]!==void 0&&cacheType==="shared")||cacheControlDirectives["no-store"]||cacheType==="shared"&&(cacheControlDirectives.private===!0||Object.hasOwn(resHeaders,"set-cookie"))||resHeaders.vary&&hasVaryStar(resHeaders.vary)||reqHeaders!=null&&Object.hasOwn(reqHeaders,"authorization")&&(!cacheControlDirectives.public&&!cacheControlDirectives["s-maxage"]&&!cacheControlDirectives["must-revalidate"]||typeof reqHeaders.authorization!="string"||Array.isArray(cacheControlDirectives["no-cache"])&&arrayIncludes(cacheControlDirectives["no-cache"],"authorization")||Array.isArray(cacheControlDirectives.private)&&arrayIncludes(cacheControlDirectives.private,"authorization")))}function getDate(dateHeader){let dateValue=dateHeader;if(Array.isArray(dateValue)){if(dateValue.length!==1)return null;dateValue=dateValue[0]}return typeof dateValue!="string"?null:parseHttpDate(dateValue)}function getAge(ageHeader){let ageValue=ageHeader;if(Array.isArray(ageValue)){if(ageValue.length!==1)return MAX_RESPONSE_AGE;ageValue=ageValue[0]}if(typeof ageValue!="string"||!/^[\t ]*[0-9]+[\t ]*$/.test(ageValue))return MAX_RESPONSE_AGE;let age=BigInt(ageValue.replace(/^[\t ]+|[\t ]+$/g,""));return age>=BigInt(MAX_RESPONSE_AGE/1e3)?MAX_RESPONSE_AGE:Number(age)*1e3}function determineStaleAt(cacheType,now,age,resHeaders,responseDate,cacheControlDirectives,hasValidator){if(cacheType==="shared"){if(hasInvalidCacheControlDirective(cacheControlDirectives,"s-maxage"))return 0;let sMaxAge=cacheControlDirectives["s-maxage"];if(sMaxAge!==void 0)return sMaxAge>0?sMaxAge*1e3:0}if(hasInvalidCacheControlDirective(cacheControlDirectives,"max-age"))return 0;let maxAge=cacheControlDirectives["max-age"];if(maxAge!==void 0)return maxAge>0?maxAge*1e3:0;if(Object.hasOwn(resHeaders,"expires")){if(typeof resHeaders.expires!="string")return 0;let expiresDate=parseHttpDate(resHeaders.expires);if(!expiresDate||now>=expiresDate.getTime())return 0;if(responseDate){if(responseDate>=expiresDate)return 0;let freshnessLifetime=expiresDate.getTime()-responseDate.getTime();return age!==void 0&&age>=freshnessLifetime?0:freshnessLifetime}return expiresDate.getTime()-now}if(typeof resHeaders["last-modified"]=="string"){let lastModified=parseHttpDate(resHeaders["last-modified"]);if(lastModified)return lastModified.getTime()>=now?void 0:(now-lastModified.getTime())*.1}if(cacheControlDirectives.immutable)return 31536e6;if(cacheControlDirectives["no-cache"]===!0&&hasValidator)return 0}function determineDeleteAt(baseTime,cachedAt,cacheControlDirectives,staleAt){let staleWhileRevalidate=-1/0,staleIfError=-1/0,immutable=-1/0;if(cacheControlDirectives["stale-while-revalidate"]&&(staleWhileRevalidate=staleAt+cacheControlDirectives["stale-while-revalidate"]*1e3),cacheControlDirectives["stale-if-error"]&&(staleIfError=staleAt+cacheControlDirectives["stale-if-error"]*1e3),cacheControlDirectives.immutable&&staleWhileRevalidate===-1/0&&staleIfError===-1/0&&(immutable=cachedAt+31536e6),staleWhileRevalidate===-1/0&&staleIfError===-1/0&&immutable===-1/0){let freshnessLifetime=staleAt-baseTime;if(freshnessLifetime<=0)return cachedAt+REVALIDATION_ONLY_RETENTION;let datePrecisionPadding=Math.min(Math.max(cachedAt-baseTime,0),1e3);return staleAt+freshnessLifetime+datePrecisionPadding}return Math.max(staleAt,staleWhileRevalidate,staleIfError,immutable)}function stripNecessaryHeaders(resHeaders,cacheControlDirectives){let headersToRemove=["connection","proxy-authenticate","proxy-authentication-info","proxy-authorization","proxy-connection","te","transfer-encoding","upgrade","age"];resHeaders.connection&&appendConnectionHeaderTokens(headersToRemove,resHeaders.connection),Array.isArray(cacheControlDirectives["no-cache"])&&headersToRemove.push(...cacheControlDirectives["no-cache"]),Array.isArray(cacheControlDirectives.private)&&headersToRemove.push(...cacheControlDirectives.private);let strippedHeaders;for(let headerName of headersToRemove)Object.hasOwn(resHeaders,headerName)&&(strippedHeaders??={...resHeaders},delete strippedHeaders[headerName]);return strippedHeaders??resHeaders}module.exports=CacheHandler}});var require_memory_cache_store=__commonJS({"node_modules/undici/lib/cache/memory-cache-store.js"(exports,module){"use strict";var{Writable}=__require("node:stream"),{EventEmitter:EventEmitter2}=__require("node:events"),{assertCacheKey,assertCacheValue}=require_cache(),MemoryCacheStore=class extends EventEmitter2{#maxCount=1024;#maxSize=104857600;#maxEntrySize=5242880;#size=0;#count=0;#entries=new Map;#hasEmittedMaxSizeEvent=!1;constructor(opts){if(super(),opts){if(typeof opts!="object")throw new TypeError("MemoryCacheStore options must be an object");if(opts.maxCount!==void 0){if(typeof opts.maxCount!="number"||!Number.isInteger(opts.maxCount)||opts.maxCount<0)throw new TypeError("MemoryCacheStore options.maxCount must be a non-negative integer");this.#maxCount=opts.maxCount}if(opts.maxSize!==void 0){if(typeof opts.maxSize!="number"||!Number.isInteger(opts.maxSize)||opts.maxSize<0)throw new TypeError("MemoryCacheStore options.maxSize must be a non-negative integer");this.#maxSize=opts.maxSize}if(opts.maxEntrySize!==void 0){if(typeof opts.maxEntrySize!="number"||!Number.isInteger(opts.maxEntrySize)||opts.maxEntrySize<0)throw new TypeError("MemoryCacheStore options.maxEntrySize must be a non-negative integer");this.#maxEntrySize=opts.maxEntrySize}}}get size(){return this.#size}isFull(){return this.#size>=this.#maxSize||this.#count>=this.#maxCount}get(key){assertCacheKey(key);let topLevelKey=`${key.origin}:${key.path}`,now=Date.now(),entries=this.#entries.get(topLevelKey),entry=entries?findEntry(key,entries,now):null;return entry==null?void 0:{statusMessage:entry.statusMessage,statusCode:entry.statusCode,headers:entry.headers,body:entry.body,vary:entry.vary?entry.vary:void 0,etag:entry.etag,cacheControlDirectives:entry.cacheControlDirectives,cachedAt:entry.cachedAt,staleAt:entry.staleAt,deleteAt:entry.deleteAt}}createWriteStream(key,val){assertCacheKey(key),assertCacheValue(val);let topLevelKey=`${key.origin}:${key.path}`,store=this,entry={...key,...val,body:[],size:0};return new Writable({write(chunk,encoding,callback){typeof chunk=="string"&&(chunk=Buffer.from(chunk,encoding)),entry.size+=chunk.byteLength,entry.size>store.#maxEntrySize?this.destroy():entry.body.push(chunk),callback(null)},final(callback){let entries=store.#entries.get(topLevelKey);entries||(entries=[],store.#entries.set(topLevelKey,entries));let previousEntry=findEntry(key,entries,Date.now());if(previousEntry){let index3=entries.indexOf(previousEntry);entries.splice(index3,1,entry),store.#size-=previousEntry.size}else entries.push(entry),store.#count+=1;if(store.#size+=entry.size,store.#size>store.#maxSize||store.#count>store.#maxCount){store.#hasEmittedMaxSizeEvent||(store.emit("maxSizeExceeded",{size:store.#size,maxSize:store.#maxSize,count:store.#count,maxCount:store.#maxCount}),store.#hasEmittedMaxSizeEvent=!0);for(let[key2,entries2]of store.#entries){for(let entry2 of entries2.splice(0,Math.ceil(entries2.length/2)))store.#size-=entry2.size,store.#count-=1;entries2.length===0&&store.#entries.delete(key2)}store.#size<store.#maxSize&&store.#count<store.#maxCount&&(store.#hasEmittedMaxSizeEvent=!1)}callback(null)}})}delete(key){if(typeof key!="object")throw new TypeError(`expected key to be object, got ${typeof key}`);let topLevelKey=`${key.origin}:${key.path}`;for(let entry of this.#entries.get(topLevelKey)??[])this.#size-=entry.size,this.#count-=1;this.#entries.delete(topLevelKey)}};function findEntry(key,entries,now){for(let i=0;i<entries.length;i++){let entry=entries[i];if(entry.deleteAt>now&&entry.method===key.method&&varyMatches(key,entry))return entry}}function varyMatches(key,entry){if(entry.vary==null)return!0;for(let headerName in entry.vary)if(Object.hasOwn(entry.vary,headerName)&&!headerValueEquals(key.headers?.[headerName],entry.vary[headerName]))return!1;return!0}function headerValueEquals(lhs,rhs){if(lhs==null&&rhs==null)return!0;if(lhs==null&&rhs!=null||lhs!=null&&rhs==null)return!1;if(Array.isArray(lhs)&&Array.isArray(rhs)){if(lhs.length!==rhs.length)return!1;for(let i=0;i<lhs.length;i++)if(lhs[i]!==rhs[i])return!1;return!0}return lhs===rhs}module.exports=MemoryCacheStore}});var require_cache_revalidation_handler=__commonJS({"node_modules/undici/lib/handler/cache-revalidation-handler.js"(exports,module){"use strict";var assert=__require("node:assert"),CacheRevalidationHandler=class{#successful=!1;#callback;#handler;#context;#allowErrorStatusCodes;constructor(callback,handler,allowErrorStatusCodes){if(typeof callback!="function")throw new TypeError("callback must be a function");this.#callback=callback,this.#handler=handler,this.#allowErrorStatusCodes=allowErrorStatusCodes}onRequestStart(_,context){this.#successful=!1,this.#context=context}onRequestUpgrade(controller,statusCode,headers,socket){this.#handler.onRequestUpgrade?.(controller,statusCode,headers,socket)}onResponseStart(controller,statusCode,headers,statusMessage){if(assert(this.#callback!=null),this.#successful=statusCode===304||this.#allowErrorStatusCodes&&statusCode>=500&&statusCode<=504,this.#callback(this.#successful,this.#context,statusCode,headers),this.#callback=null,this.#successful)return!0;this.#handler.onRequestStart?.(controller,this.#context),this.#handler.onResponseStart?.(controller,statusCode,headers,statusMessage)}onResponseData(controller,chunk){if(!this.#successful)return this.#handler.onResponseData?.(controller,chunk)}onResponseEnd(controller,trailers){this.#successful||this.#handler.onResponseEnd?.(controller,trailers)}onResponseError(controller,err){if(!this.#successful){if(this.#callback){if(this.#allowErrorStatusCodes){this.#successful=!0,this.#callback(!0,this.#context),this.#callback=null;return}this.#callback(!1),this.#callback=null}if(typeof this.#handler.onResponseError=="function")this.#handler.onResponseError(controller,err);else throw err}}};module.exports=CacheRevalidationHandler}});var require_cache2=__commonJS({"node_modules/undici/lib/interceptor/cache.js"(exports,module){"use strict";var assert=__require("node:assert"),{Readable}=__require("node:stream"),util=require_util(),CacheHandler=require_cache_handler(),MemoryCacheStore=require_memory_cache_store(),CacheRevalidationHandler=require_cache_revalidation_handler(),{assertCacheStore,assertCacheMethods,getInterceptorOrigin,makeCacheKey,normalizeHeaders,parseCacheControlHeader,isInvalidOrWildcardVaryHeader,parseVaryHeader}=require_cache(),{AbortError}=require_errors(),{parseHttpDate}=require_date();function assertCacheOrigins(origins,name){if(origins!==void 0){if(!Array.isArray(origins))throw new TypeError(`expected ${name} to be an array or undefined, got ${typeof origins}`);for(let i=0;i<origins.length;i++){let origin=origins[i];if(typeof origin!="string"&&!(origin instanceof RegExp))throw new TypeError(`expected ${name}[${i}] to be a string or RegExp, got ${typeof origin}`)}}}var nop=()=>{};function trimOWS(value){return value.replace(/^[\t ]+|[\t ]+$/g,"")}function arrayIncludes(array,value){for(let i=0;i<array.length;i++)if(array[i]===value)return!0;return!1}function hasPragmaNoCache(headers){let pragma=headers?.pragma;if(!pragma)return!1;let values=Array.isArray(pragma)?pragma:[pragma];for(let i=0;i<values.length;i++){let value=values[i];if(typeof value!="string")continue;let directives=value.split(",");for(let j=0;j<directives.length;j++)if(trimOWS(directives[j]).toLowerCase()==="no-cache")return!0}return!1}function needsRevalidation(result,cacheControlDirectives,{headers={}}){return!!(cacheControlDirectives?.["no-cache"]||result.cacheControlDirectives?.["no-cache"]&&!Array.isArray(result.cacheControlDirectives["no-cache"])||headers["if-modified-since"]||headers["if-none-match"])}function staleResponseRequiresRevalidation(result,cacheType){return result.cacheControlDirectives?.["must-revalidate"]===!0||cacheType==="shared"&&(result.cacheControlDirectives?.["proxy-revalidate"]===!0||result.cacheControlDirectives?.["s-maxage"]!==void 0)}function revalidationResponseDisallowsCachedReuse(cacheType,headers){if(headers.vary&&isInvalidOrWildcardVaryHeader(headers.vary)||cacheType==="shared"&&Object.hasOwn(headers,"set-cookie"))return!0;let cacheControl=headers["cache-control"];if(!cacheControl)return!1;let cacheControlDirectives=parseCacheControlHeader(cacheControl);return cacheControlDirectives["no-store"]===!0||cacheType==="shared"&&cacheControlDirectives.private===!0}function revalidationResponseUpdatesCacheControl(headers){return headers["cache-control"]!==void 0}function revalidationResponseAddsVary(result,varyDirectives){if(!varyDirectives)return!1;for(let key in varyDirectives)if(result.vary==null||!Object.hasOwn(result.vary,key))return!0;return!1}function deleteCachedValue(store,cacheKey){try{store.delete(cacheKey)?.catch?.(nop)}catch{}}function getUsableLastModified(headers){let lastModified=headers?.["last-modified"];if(typeof lastModified=="string"&&parseHttpDate(lastModified))return lastModified}function makeRevalidationHeaders(opts,result){let headers={...opts.headers,"if-modified-since":getUsableLastModified(result.headers)??new Date(result.cachedAt).toUTCString()};if(result.etag&&(headers["if-none-match"]=result.etag),result.vary)for(let key in result.vary)result.vary[key]!=null&&(headers[key]=result.vary[key]);return headers}function isStale(result,cacheControlDirectives,cacheType){let now=Date.now();if(now>result.staleAt){if(!staleResponseRequiresRevalidation(result,cacheType)&&cacheControlDirectives?.["max-stale"]){let gracePeriod=result.staleAt+cacheControlDirectives["max-stale"]*1e3;return now>gracePeriod}return!0}if(cacheControlDirectives?.["min-fresh"]){let timeLeftTillStale=result.staleAt-now,threshold=cacheControlDirectives["min-fresh"]*1e3;return timeLeftTillStale<=threshold}return!1}function withinStaleWhileRevalidateWindow(result,cacheType){let staleWhileRevalidate=result.cacheControlDirectives?.["stale-while-revalidate"];if(!staleWhileRevalidate||staleResponseRequiresRevalidation(result,cacheType))return!1;let now=Date.now(),staleWhileRevalidateExpiry=result.staleAt+staleWhileRevalidate*1e3;return now<=staleWhileRevalidateExpiry}function handleUncachedResponse(dispatch,globalOpts,cacheKey,handler,opts,reqCacheControl){if(reqCacheControl?.["only-if-cached"]){let aborted=!1,controller={paused:!1,rawHeaders:[],rawTrailers:[],pause(){this.paused=!0},resume(){this.paused=!1},abort:reason=>{aborted=!0,handler.onResponseError?.(controller,reason??new AbortError)}};try{if(handler.onRequestStart?.(controller,null),aborted||(handler.onResponseStart?.(controller,504,{},"Gateway Timeout"),aborted))return;handler.onResponseEnd?.(controller,{})}catch(err){typeof handler.onResponseError=="function"&&handler.onResponseError(controller,err)}return!0}return dispatch(opts,new CacheHandler(globalOpts,cacheKey,handler))}function sendCachedValue(handler,opts,result,age,context,isStale2){let stream=util.isStream(result.body)?result.body:Readable.from(result.body??[]);assert(!stream.destroyed,"stream should not be destroyed"),assert(!stream.readableDidRead,"stream should not be readableDidRead");let controller={rawHeaders:[],rawTrailers:[],resume(){stream.resume()},pause(){stream.pause()},get paused(){return stream.isPaused()},get aborted(){return stream.destroyed},get reason(){return stream.errored},abort(reason){stream.destroy(reason??new AbortError)}};if(stream.on("error",function(err){if(!this.readableEnded)if(typeof handler.onResponseError=="function")handler.onResponseError(controller,err);else throw err}).on("close",function(){this.errored||handler.onResponseEnd?.(controller,{})}),handler.onRequestStart?.(controller,context),stream.destroyed)return;let headers={...result.headers,age:String(age)};isStale2&&(headers.warning='110 - "response is stale"'),controller.rawHeaders=util.toRawHeaders(headers),handler.onResponseStart?.(controller,result.statusCode,headers,result.statusMessage),opts.method==="HEAD"?stream.destroy():stream.on("data",function(chunk){handler.onResponseData?.(controller,chunk)})}function handleResult(dispatch,globalOpts,cacheKey,handler,opts,reqCacheControl,result){if(!result)return handleUncachedResponse(dispatch,globalOpts,cacheKey,handler,opts,reqCacheControl);if(globalOpts.type==="shared"&&Object.hasOwn(result.headers,"set-cookie"))return util.isStream(result.body)&&result.body.on("error",nop).destroy(),deleteCachedValue(globalOpts.store,cacheKey),handleUncachedResponse(dispatch,globalOpts,cacheKey,handler,opts,reqCacheControl);let now=Date.now();if(now>result.deleteAt)return dispatch(opts,new CacheHandler(globalOpts,cacheKey,handler));let age=Math.round((now-result.cachedAt)/1e3),requestMaxAgeExpired=reqCacheControl?.["max-age"]!==void 0&&age>=reqCacheControl["max-age"],stale=requestMaxAgeExpired||isStale(result,reqCacheControl,globalOpts.type),revalidate=requestMaxAgeExpired||needsRevalidation(result,reqCacheControl,opts);if(stale||revalidate){if(util.isStream(opts.body)&&util.bodyLength(opts.body)!==0)return dispatch(opts,new CacheHandler(globalOpts,cacheKey,handler));if(!revalidate&&withinStaleWhileRevalidateWindow(result,globalOpts.type))return sendCachedValue(handler,opts,result,age,null,!0),queueMicrotask(()=>{let headers2=makeRevalidationHeaders(opts,result);dispatch({...opts,headers:headers2},new CacheHandler(globalOpts,cacheKey,{onRequestStart(){},onRequestUpgrade(){},onResponseStart(){},onResponseData(){},onResponseEnd(){},onResponseError(){}}))}),!0;let withinStaleIfErrorThreshold=!1;if(!staleResponseRequiresRevalidation(result,globalOpts.type)){let staleIfErrorExpiry=result.cacheControlDirectives["stale-if-error"]??reqCacheControl?.["stale-if-error"];staleIfErrorExpiry&&(withinStaleIfErrorThreshold=now<result.staleAt+staleIfErrorExpiry*1e3)}let headers=makeRevalidationHeaders(opts,result);return dispatch({...opts,headers},new CacheRevalidationHandler((success,context,statusCode,headers2)=>{if(success){if(statusCode===304){if(revalidationResponseDisallowsCachedReuse(globalOpts.type,headers2))return util.isStream(result.body)&&result.body.on("error",nop).destroy(),deleteCachedValue(globalOpts.store,cacheKey),dispatch(opts,new CacheHandler(globalOpts,cacheKey,handler));if(revalidationResponseUpdatesCacheControl(headers2))deleteCachedValue(globalOpts.store,cacheKey);else if(revalidationResponseAddsVary(result,headers2.vary?parseVaryHeader(headers2.vary,opts.headers):void 0))return util.isStream(result.body)&&result.body.on("error",nop).destroy(),deleteCachedValue(globalOpts.store,cacheKey),dispatch(opts,new CacheHandler(globalOpts,cacheKey,handler))}sendCachedValue(handler,opts,result,age,context,stale)}else util.isStream(result.body)&&result.body.on("error",nop).destroy()},new CacheHandler(globalOpts,cacheKey,handler),withinStaleIfErrorThreshold))}util.isStream(opts.body)&&opts.body.on("error",nop).destroy(),sendCachedValue(handler,opts,result,age,null,!1)}module.exports=(opts={})=>{let{store=new MemoryCacheStore,methods=["GET"],cacheByDefault=void 0,type="shared",origins=void 0}=opts;if(typeof opts!="object"||opts===null)throw new TypeError(`expected type of opts to be an Object, got ${opts===null?"null":typeof opts}`);if(assertCacheStore(store,"opts.store"),assertCacheMethods(methods,"opts.methods"),assertCacheOrigins(origins,"opts.origins"),typeof cacheByDefault<"u"&&typeof cacheByDefault!="number")throw new TypeError(`expected opts.cacheByDefault to be number or undefined, got ${typeof cacheByDefault}`);if(typeof type<"u"&&type!=="shared"&&type!=="private")throw new TypeError(`expected opts.type to be shared, private, or undefined, got ${typeof type}`);let globalOpts={store,methods,cacheByDefault,type},safeMethodsToNotCache=[];for(let i=0;i<util.safeHTTPMethods.length;i++){let method=util.safeHTTPMethods[i];arrayIncludes(methods,method)||safeMethodsToNotCache.push(method)}return(dispatch,interceptorOrigin)=>(opts2,handler)=>{let requestOrigin=getInterceptorOrigin(opts2,interceptorOrigin);if(!requestOrigin||arrayIncludes(safeMethodsToNotCache,opts2.method))return dispatch(opts2,handler);if(origins!==void 0){let normalizedRequestOrigin=requestOrigin.toString().toLowerCase(),isAllowed=!1;for(let i=0;i<origins.length;i++){let allowed=origins[i];if(typeof allowed=="string"){if(allowed.toLowerCase()===normalizedRequestOrigin){isAllowed=!0;break}}else if(allowed.test(normalizedRequestOrigin)){isAllowed=!0;break}}if(!isAllowed)return dispatch(opts2,handler)}opts2={...opts2,headers:normalizeHeaders(opts2)};let reqCacheControl=opts2.headers?.["cache-control"]?parseCacheControlHeader(opts2.headers["cache-control"]):hasPragmaNoCache(opts2.headers)?{"no-cache":!0}:void 0;if(reqCacheControl?.["no-store"])return dispatch(opts2,handler);let cacheKey=makeCacheKey(opts2,requestOrigin);if(!arrayIncludes(util.safeHTTPMethods,opts2.method))return dispatch(opts2,new CacheHandler(globalOpts,cacheKey,handler));let result=store.get(cacheKey);return result&&typeof result.then=="function"?result.then(result2=>handleResult(dispatch,globalOpts,cacheKey,handler,opts2,reqCacheControl,result2)):handleResult(dispatch,globalOpts,cacheKey,handler,opts2,reqCacheControl,result)}}}});var require_decompress=__commonJS({"node_modules/undici/lib/interceptor/decompress.js"(exports,module){"use strict";var{createInflate,createGunzip,createBrotliDecompress,createZstdDecompress}=__require("node:zlib"),{pipeline,Transform:TransformStream2}=__require("node:stream"),{InvalidArgumentError,ResponseExceededMaxSizeError}=require_errors(),DecoratorHandler=require_decorator_handler(),supportedEncodings={gzip:createGunzip,"x-gzip":createGunzip,br:createBrotliDecompress,deflate:createInflate,compress:createInflate,"x-compress":createInflate,zstd:createZstdDecompress},defaultSkipStatusCodes=[204,304],defaultMaxSize=64*1024*1024;function createMaxSizeLimiter(maxSize){let size=0;return new TransformStream2({transform(chunk,_encoding,callback){let decompressedSize=size+chunk.length;if(decompressedSize>maxSize){callback(new ResponseExceededMaxSizeError(`Decompressed response size (${decompressedSize}) exceeded maxSize (${maxSize})`));return}size=decompressedSize,callback(null,chunk)}})}var warningEmitted=!1,DecompressHandler=class extends DecoratorHandler{#decompressors=[];#trailers;#skipStatusCodes;#skipErrorResponses;#maxSize;#decompressedSize=0;#terminated=!1;#inputEnded=!1;constructor(handler,{skipStatusCodes=defaultSkipStatusCodes,skipErrorResponses=!0,maxSize=defaultMaxSize}={}){if(!Number.isSafeInteger(maxSize)||maxSize<1)throw new InvalidArgumentError("maxSize must be a positive integer");super(handler),this.#skipStatusCodes=skipStatusCodes,this.#skipErrorResponses=skipErrorResponses,this.#maxSize=maxSize}#shouldSkipDecompression(contentEncoding,statusCode){return!!(!contentEncoding||statusCode<200||this.#skipStatusCodes.includes(statusCode)||this.#skipErrorResponses&&statusCode>=400)}#createDecompressionChain(encodings){let parts=encodings.split(","),maxContentEncodings=5;if(parts.length>maxContentEncodings)throw new Error(`too many content-encodings in response: ${parts.length}, maximum allowed is ${maxContentEncodings}`);let decompressors=[];for(let i=parts.length-1;i>=0;i--){let encoding=parts[i].trim();if(encoding){if(!supportedEncodings[encoding])return decompressors.length=0,decompressors;decompressors.push(supportedEncodings[encoding]())}}if(decompressors.length<2)return decompressors;let streams=[];for(let i=0;i<decompressors.length;i++)streams.push(decompressors[i]),i<decompressors.length-1&&streams.push(createMaxSizeLimiter(this.#maxSize));return streams}#fail(controller,error){this.#terminated||(this.#inputEnded?this.onResponseError(controller,error):controller.abort(error))}#setupDecompressorEvents(decompressor,controller){decompressor.on("readable",()=>{if(this.#terminated)return;let chunk;for(;(chunk=decompressor.read())!==null;){let decompressedSize=this.#decompressedSize+chunk.length;if(decompressedSize>this.#maxSize){this.#fail(controller,new ResponseExceededMaxSizeError(`Decompressed response size (${decompressedSize}) exceeded maxSize (${this.#maxSize})`));return}if(this.#decompressedSize=decompressedSize,super.onResponseData(controller,chunk)===!1)break}}),decompressor.on("error",error=>{this.#fail(controller,error)})}#setupSingleDecompressor(controller){let decompressor=this.#decompressors[0];this.#setupDecompressorEvents(decompressor,controller),decompressor.on("end",()=>{this.#terminated||(this.#terminated=!0,this.#cleanupDecompressors(),super.onResponseEnd(controller,this.#trailers))})}#setupMultipleDecompressors(controller){let lastDecompressor=this.#decompressors[this.#decompressors.length-1];this.#setupDecompressorEvents(lastDecompressor,controller),pipeline(this.#decompressors,err=>{if(!this.#terminated){if(err){this.#fail(controller,err);return}this.#terminated=!0,this.#cleanupDecompressors(),super.onResponseEnd(controller,this.#trailers)}})}#cleanupDecompressors(){this.#decompressors.length=0}onResponseStart(controller,statusCode,headers,statusMessage){let contentEncoding=headers["content-encoding"];if(this.#shouldSkipDecompression(contentEncoding,statusCode))return super.onResponseStart(controller,statusCode,headers,statusMessage);let decompressors=this.#createDecompressionChain(contentEncoding.toLowerCase());if(decompressors.length===0)return this.#cleanupDecompressors(),super.onResponseStart(controller,statusCode,headers,statusMessage);this.#decompressors=decompressors;let{"content-encoding":_,"content-length":__,...newHeaders}=headers;if(controller?.rawHeaders){let rawHeaders=controller.rawHeaders;if(Array.isArray(rawHeaders)){let filteredHeaders=[];for(let i=0;i<rawHeaders.length;i+=2){let headerName=rawHeaders[i],lowerName=(Buffer.isBuffer(headerName)?headerName.toString("latin1"):`${headerName}`).toLowerCase();lowerName==="content-encoding"||lowerName==="content-length"||filteredHeaders.push(rawHeaders[i],rawHeaders[i+1])}rawHeaders.splice(0,rawHeaders.length,...filteredHeaders)}else if(typeof rawHeaders=="object")for(let name of Object.keys(rawHeaders)){let lowerName=name.toLowerCase();(lowerName==="content-encoding"||lowerName==="content-length")&&delete rawHeaders[name]}}return this.#decompressors.length===1?this.#setupSingleDecompressor(controller):this.#setupMultipleDecompressors(controller),super.onResponseStart(controller,statusCode,newHeaders,statusMessage)}onResponseData(controller,chunk){if(this.#decompressors.length>0){this.#decompressors[0].write(chunk);return}super.onResponseData(controller,chunk)}onResponseEnd(controller,trailers){if(this.#decompressors.length>0){this.#inputEnded=!0,this.#trailers=trailers,this.#decompressors[0].end();return}super.onResponseEnd(controller,trailers)}onResponseError(controller,err){if(!this.#terminated){this.#terminated=!0;for(let decompressor of this.#decompressors)decompressor.destroy();this.#cleanupDecompressors(),super.onResponseError(controller,err)}}};function createDecompressInterceptor(options={}){return warningEmitted||(process.emitWarning("DecompressInterceptor is experimental and subject to change","ExperimentalWarning"),warningEmitted=!0),dispatch=>(opts,handler)=>{if(opts.method==="HEAD")return dispatch(opts,handler);let decompressHandler=new DecompressHandler(handler,options);return dispatch(opts,decompressHandler)}}module.exports=createDecompressInterceptor}});var require_deduplication_handler=__commonJS({"node_modules/undici/lib/handler/deduplication-handler.js"(exports,module){"use strict";var{RequestAbortedError}=require_errors(),DEFAULT_MAX_BUFFER_SIZE=5*1024*1024,DeduplicationHandler=class{#primaryHandler;#waitingHandlers=[];#maxBufferSize=DEFAULT_MAX_BUFFER_SIZE;#statusCode=0;#headers={};#statusMessage="";#aborted=!1;#responseStarted=!1;#responseDataStarted=!1;#completed=!1;#controller=null;#onComplete=null;constructor(primaryHandler,onComplete,maxBufferSize=DEFAULT_MAX_BUFFER_SIZE){this.#primaryHandler=primaryHandler,this.#onComplete=onComplete,this.#maxBufferSize=maxBufferSize}addWaitingHandler(handler){if(this.#completed||this.#responseDataStarted)return!1;let waitingHandler=this.#createWaitingHandler(handler),waitingController=waitingHandler.controller;try{if(handler.onRequestStart?.(waitingController,null),waitingController.aborted)return waitingHandler.done=!0,!0;this.#responseStarted&&handler.onResponseStart?.(waitingController,this.#statusCode,this.#headers,this.#statusMessage)}catch{return waitingHandler.done=!0,!0}return waitingController.aborted||this.#waitingHandlers.push(waitingHandler),!0}onRequestStart(controller,context){this.#controller=controller,this.#primaryHandler.onRequestStart?.(controller,context)}onRequestUpgrade(controller,statusCode,headers,socket){this.#primaryHandler.onRequestUpgrade?.(controller,statusCode,headers,socket)}onResponseStart(controller,statusCode,headers,statusMessage){this.#responseStarted=!0,this.#statusCode=statusCode,this.#headers=headers,this.#statusMessage=statusMessage,this.#primaryHandler.onResponseStart?.(controller,statusCode,headers,statusMessage);for(let waitingHandler of this.#waitingHandlers){let{handler,controller:waitingController}=waitingHandler;if(waitingHandler.done||waitingController.aborted){waitingHandler.done=!0;continue}try{handler.onResponseStart?.(waitingController,statusCode,headers,statusMessage)}catch{}waitingController.aborted&&(waitingHandler.done=!0)}this.#pruneDoneWaitingHandlers()}onResponseData(controller,chunk){if(!(this.#aborted||this.#completed)){this.#responseDataStarted=!0,this.#primaryHandler.onResponseData?.(controller,chunk);for(let waitingHandler of this.#waitingHandlers){let{handler,controller:waitingController}=waitingHandler;if(waitingHandler.done||waitingController.aborted){waitingHandler.done=!0;continue}if(waitingController.paused){this.#bufferWaitingChunk(waitingHandler,chunk);continue}try{handler.onResponseData?.(waitingController,chunk)}catch{}waitingController.aborted&&(waitingHandler.done=!0,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0)}this.#pruneDoneWaitingHandlers()}}onResponseEnd(controller,trailers){if(!(this.#aborted||this.#completed)){this.#completed=!0,this.#primaryHandler.onResponseEnd?.(controller,trailers);for(let waitingHandler of this.#waitingHandlers){if(waitingHandler.done||waitingHandler.controller.aborted){waitingHandler.done=!0;continue}if(this.#flushWaitingHandler(waitingHandler),waitingHandler.done||waitingHandler.controller.aborted){waitingHandler.done=!0;continue}if(waitingHandler.controller.paused&&waitingHandler.bufferedChunks.length>0){waitingHandler.pendingTrailers=trailers;continue}try{waitingHandler.handler.onResponseEnd?.(waitingHandler.controller,trailers)}catch{}waitingHandler.done=!0}this.#pruneDoneWaitingHandlers(),this.#onComplete?.()}}onResponseError(controller,err){if(!this.#completed){this.#aborted=!0,this.#completed=!0,this.#primaryHandler.onResponseError?.(controller,err);for(let waitingHandler of this.#waitingHandlers)this.#errorWaitingHandler(waitingHandler,err);this.#waitingHandlers=[],this.#onComplete?.()}}#createWaitingHandler(handler){let waitingHandler={handler,controller:null,bufferedChunks:[],bufferedBytes:0,pendingTrailers:null,done:!1},state2={aborted:!1,paused:!1,reason:null};return waitingHandler.controller={resume:()=>{if(!state2.aborted){if(state2.paused=!1,this.#flushWaitingHandler(waitingHandler),this.#completed&&waitingHandler.pendingTrailers&&waitingHandler.bufferedChunks.length===0&&!state2.paused&&!state2.aborted){try{waitingHandler.handler.onResponseEnd?.(waitingHandler.controller,waitingHandler.pendingTrailers)}catch{}waitingHandler.pendingTrailers=null,waitingHandler.done=!0}this.#pruneDoneWaitingHandlers()}},pause:()=>{state2.aborted||(state2.paused=!0)},get paused(){return state2.paused},get aborted(){return state2.aborted},get reason(){return state2.reason},abort:reason=>{if(!state2.aborted){state2.aborted=!0,state2.reason=reason??null,waitingHandler.done=!0,waitingHandler.pendingTrailers=null,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0;try{handler.onResponseError?.(waitingHandler.controller,state2.reason??new RequestAbortedError)}catch{}}}},waitingHandler}#bufferWaitingChunk(waitingHandler,chunk){if(waitingHandler.done||waitingHandler.controller.aborted){waitingHandler.done=!0,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0;return}let bufferedChunk=Buffer.from(chunk);if(waitingHandler.bufferedChunks.push(bufferedChunk),waitingHandler.bufferedBytes+=bufferedChunk.length,waitingHandler.bufferedBytes>this.#maxBufferSize){let err=new RequestAbortedError(`Deduplicated waiting handler exceeded maxBufferSize (${this.#maxBufferSize} bytes) while paused`);this.#errorWaitingHandler(waitingHandler,err)}}#flushWaitingHandler(waitingHandler){let{handler,controller}=waitingHandler;for(;!waitingHandler.done&&!controller.aborted&&!controller.paused&&waitingHandler.bufferedChunks.length>0;){let bufferedChunk=waitingHandler.bufferedChunks.shift();waitingHandler.bufferedBytes-=bufferedChunk.length;try{handler.onResponseData?.(controller,bufferedChunk)}catch{}if(controller.aborted){waitingHandler.done=!0,waitingHandler.pendingTrailers=null,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0;break}}}#errorWaitingHandler(waitingHandler,err){waitingHandler.done||(waitingHandler.done=!0,waitingHandler.pendingTrailers=null,waitingHandler.bufferedChunks=[],waitingHandler.bufferedBytes=0,waitingHandler.controller.abort(err))}#pruneDoneWaitingHandlers(){this.#waitingHandlers=this.#waitingHandlers.filter(waitingHandler=>waitingHandler.done===!1)}};module.exports=DeduplicationHandler}});var require_deduplicate=__commonJS({"node_modules/undici/lib/interceptor/deduplicate.js"(exports,module){"use strict";var diagnosticsChannel=__require("node:diagnostics_channel"),util=require_util(),DeduplicationHandler=require_deduplication_handler(),{getInterceptorOrigin,normalizeHeaders,makeCacheKey,makeDeduplicationKey}=require_cache(),pendingRequestsChannel=diagnosticsChannel.channel("undici:request:pending-requests");module.exports=(opts={})=>{let{methods=["GET"],skipHeaderNames=[],excludeHeaderNames=[],maxBufferSize=5*1024*1024}=opts;if(typeof opts!="object"||opts===null)throw new TypeError(`expected type of opts to be an Object, got ${opts===null?"null":typeof opts}`);if(!Array.isArray(methods))throw new TypeError(`expected opts.methods to be an array, got ${typeof methods}`);for(let method of methods)if(!util.safeHTTPMethods.includes(method))throw new TypeError(`expected opts.methods to only contain safe HTTP methods, got ${method}`);if(!Array.isArray(skipHeaderNames))throw new TypeError(`expected opts.skipHeaderNames to be an array, got ${typeof skipHeaderNames}`);if(!Array.isArray(excludeHeaderNames))throw new TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof excludeHeaderNames}`);if(!Number.isFinite(maxBufferSize)||maxBufferSize<=0)throw new TypeError(`expected opts.maxBufferSize to be a positive finite number, got ${maxBufferSize}`);let skipHeaderNamesSet=new Set(skipHeaderNames.map(name=>name.toLowerCase())),excludeHeaderNamesSet=new Set(excludeHeaderNames.map(name=>name.toLowerCase())),pendingRequests=new Map;return(dispatch,interceptorOrigin)=>(opts2,handler)=>{let requestOrigin=getInterceptorOrigin(opts2,interceptorOrigin);if(!requestOrigin||opts2.upgrade||methods.includes(opts2.method)===!1)return dispatch(opts2,handler);if(opts2={...opts2,headers:normalizeHeaders(opts2)},skipHeaderNamesSet.size>0){for(let headerName of Object.keys(opts2.headers))if(skipHeaderNamesSet.has(headerName.toLowerCase()))return dispatch(opts2,handler)}let cacheKey=makeCacheKey(opts2,requestOrigin),dedupeKey=makeDeduplicationKey(cacheKey,excludeHeaderNamesSet),pendingHandler=pendingRequests.get(dedupeKey);if(pendingHandler)return pendingHandler.addWaitingHandler(handler)?!0:dispatch(opts2,handler);let deduplicationHandler=new DeduplicationHandler(handler,()=>{pendingRequests.delete(dedupeKey),pendingRequestsChannel.hasSubscribers&&pendingRequestsChannel.publish({size:pendingRequests.size,key:dedupeKey,type:"removed"})},maxBufferSize);return pendingRequests.set(dedupeKey,deduplicationHandler),pendingRequestsChannel.hasSubscribers&&pendingRequestsChannel.publish({size:pendingRequests.size,key:dedupeKey,type:"added"}),dispatch(opts2,deduplicationHandler)}}}});var require_sqlite_cache_store=__commonJS({"node_modules/undici/lib/cache/sqlite-cache-store.js"(exports,module){"use strict";var{Writable}=__require("node:stream"),{assertCacheKey,assertCacheValue}=require_cache(),DatabaseSync,VERSION=3,MAX_ENTRY_SIZE=2*1e3*1e3*1e3;module.exports=class{#maxEntrySize=MAX_ENTRY_SIZE;#maxCount=1/0;#db;#getValuesQuery;#updateValueQuery;#insertValueQuery;#deleteExpiredValuesQuery;#deleteByUrlQuery;#countEntriesQuery;#deleteOldValuesQuery;constructor(opts){if(opts){if(typeof opts!="object")throw new TypeError("SqliteCacheStore options must be an object");if(opts.maxEntrySize!==void 0){if(typeof opts.maxEntrySize!="number"||!Number.isInteger(opts.maxEntrySize)||opts.maxEntrySize<0)throw new TypeError("SqliteCacheStore options.maxEntrySize must be a non-negative integer");if(opts.maxEntrySize>MAX_ENTRY_SIZE)throw new TypeError("SqliteCacheStore options.maxEntrySize must be less than 2gb");this.#maxEntrySize=opts.maxEntrySize}if(opts.maxCount!==void 0){if(typeof opts.maxCount!="number"||!Number.isInteger(opts.maxCount)||opts.maxCount<0)throw new TypeError("SqliteCacheStore options.maxCount must be a non-negative integer");this.#maxCount=opts.maxCount}}DatabaseSync||(DatabaseSync=__require("node:sqlite").DatabaseSync),this.#db=new DatabaseSync(opts?.location??":memory:"),this.#db.exec(`
|
|
46
|
+
PRAGMA journal_mode = WAL;
|
|
47
|
+
PRAGMA synchronous = NORMAL;
|
|
48
|
+
PRAGMA temp_store = memory;
|
|
49
|
+
PRAGMA optimize;
|
|
50
|
+
|
|
51
|
+
CREATE TABLE IF NOT EXISTS cacheInterceptorV${VERSION} (
|
|
52
|
+
-- Data specific to us
|
|
53
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
54
|
+
url TEXT NOT NULL,
|
|
55
|
+
method TEXT NOT NULL,
|
|
56
|
+
|
|
57
|
+
-- Data returned to the interceptor
|
|
58
|
+
body BUF NULL,
|
|
59
|
+
deleteAt INTEGER NOT NULL,
|
|
60
|
+
statusCode INTEGER NOT NULL,
|
|
61
|
+
statusMessage TEXT NOT NULL,
|
|
62
|
+
headers TEXT NULL,
|
|
63
|
+
cacheControlDirectives TEXT NULL,
|
|
64
|
+
etag TEXT NULL,
|
|
65
|
+
vary TEXT NULL,
|
|
66
|
+
cachedAt INTEGER NOT NULL,
|
|
67
|
+
staleAt INTEGER NOT NULL
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION}_getValuesQuery ON cacheInterceptorV${VERSION}(url, method, deleteAt);
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION}_deleteByUrlQuery ON cacheInterceptorV${VERSION}(deleteAt);
|
|
72
|
+
`),this.#getValuesQuery=this.#db.prepare(`
|
|
73
|
+
SELECT
|
|
74
|
+
id,
|
|
75
|
+
body,
|
|
76
|
+
deleteAt,
|
|
77
|
+
statusCode,
|
|
78
|
+
statusMessage,
|
|
79
|
+
headers,
|
|
80
|
+
etag,
|
|
81
|
+
cacheControlDirectives,
|
|
82
|
+
vary,
|
|
83
|
+
cachedAt,
|
|
84
|
+
staleAt
|
|
85
|
+
FROM cacheInterceptorV${VERSION}
|
|
86
|
+
WHERE
|
|
87
|
+
url = ?
|
|
88
|
+
AND method = ?
|
|
89
|
+
ORDER BY
|
|
90
|
+
deleteAt ASC
|
|
91
|
+
`),this.#updateValueQuery=this.#db.prepare(`
|
|
92
|
+
UPDATE cacheInterceptorV${VERSION} SET
|
|
93
|
+
body = ?,
|
|
94
|
+
deleteAt = ?,
|
|
95
|
+
statusCode = ?,
|
|
96
|
+
statusMessage = ?,
|
|
97
|
+
headers = ?,
|
|
98
|
+
etag = ?,
|
|
99
|
+
cacheControlDirectives = ?,
|
|
100
|
+
vary = ?,
|
|
101
|
+
cachedAt = ?,
|
|
102
|
+
staleAt = ?
|
|
103
|
+
WHERE
|
|
104
|
+
id = ?
|
|
105
|
+
`),this.#insertValueQuery=this.#db.prepare(`
|
|
106
|
+
INSERT INTO cacheInterceptorV${VERSION} (
|
|
107
|
+
url,
|
|
108
|
+
method,
|
|
109
|
+
body,
|
|
110
|
+
deleteAt,
|
|
111
|
+
statusCode,
|
|
112
|
+
statusMessage,
|
|
113
|
+
headers,
|
|
114
|
+
etag,
|
|
115
|
+
cacheControlDirectives,
|
|
116
|
+
vary,
|
|
117
|
+
cachedAt,
|
|
118
|
+
staleAt
|
|
119
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
120
|
+
`),this.#deleteByUrlQuery=this.#db.prepare(`DELETE FROM cacheInterceptorV${VERSION} WHERE url = ?`),this.#countEntriesQuery=this.#db.prepare(`SELECT COUNT(*) AS total FROM cacheInterceptorV${VERSION}`),this.#deleteExpiredValuesQuery=this.#db.prepare(`DELETE FROM cacheInterceptorV${VERSION} WHERE deleteAt <= ?`),this.#deleteOldValuesQuery=this.#maxCount===1/0?null:this.#db.prepare(`
|
|
121
|
+
DELETE FROM cacheInterceptorV${VERSION}
|
|
122
|
+
WHERE id IN (
|
|
123
|
+
SELECT
|
|
124
|
+
id
|
|
125
|
+
FROM cacheInterceptorV${VERSION}
|
|
126
|
+
ORDER BY cachedAt ASC
|
|
127
|
+
LIMIT ?
|
|
128
|
+
)
|
|
129
|
+
`)}close(){this.#db.close()}get(key){assertCacheKey(key);let value=this.#findValue(key);return value?{body:value.body?Buffer.from(value.body.buffer,value.body.byteOffset,value.body.byteLength):void 0,statusCode:value.statusCode,statusMessage:value.statusMessage,headers:value.headers?JSON.parse(value.headers):void 0,etag:value.etag?value.etag:void 0,vary:value.vary?JSON.parse(value.vary):void 0,cacheControlDirectives:value.cacheControlDirectives?JSON.parse(value.cacheControlDirectives):void 0,cachedAt:value.cachedAt,staleAt:value.staleAt,deleteAt:value.deleteAt}:void 0}set(key,value){assertCacheKey(key);let url=this.#makeValueUrl(key),body=Array.isArray(value.body)?Buffer.concat(value.body):value.body,size=body?.byteLength;if(size&&size>this.#maxEntrySize)return;let existingValue=this.#findValue(key,!0);existingValue?this.#updateValueQuery.run(body,value.deleteAt,value.statusCode,value.statusMessage,value.headers?JSON.stringify(value.headers):null,value.etag?value.etag:null,value.cacheControlDirectives?JSON.stringify(value.cacheControlDirectives):null,value.vary?JSON.stringify(value.vary):null,value.cachedAt,value.staleAt,existingValue.id):(this.#insertValueQuery.run(url,key.method,body,value.deleteAt,value.statusCode,value.statusMessage,value.headers?JSON.stringify(value.headers):null,value.etag?value.etag:null,value.cacheControlDirectives?JSON.stringify(value.cacheControlDirectives):null,value.vary?JSON.stringify(value.vary):null,value.cachedAt,value.staleAt),this.#prune())}createWriteStream(key,value){assertCacheKey(key),assertCacheValue(value);let size=0,body=[],store=this;return new Writable({decodeStrings:!0,write(chunk,encoding,callback){size+=chunk.byteLength,size<=store.#maxEntrySize?body.push(chunk):this.destroy(),callback()},final(callback){store.set(key,{...value,body}),callback()}})}delete(key){if(typeof key!="object")throw new TypeError(`expected key to be object, got ${typeof key}`);this.#deleteByUrlQuery.run(this.#makeValueUrl(key))}#prune(){if(Number.isFinite(this.#maxCount)&&this.size<=this.#maxCount)return 0;{let removed=this.#deleteExpiredValuesQuery.run(Date.now()).changes;if(removed)return removed}{let removed=this.#deleteOldValuesQuery?.run(Math.max(Math.floor(this.#maxCount*.1),1)).changes;if(removed)return removed}return 0}get size(){let{total}=this.#countEntriesQuery.get();return total}#makeValueUrl(key){return`${key.origin}/${key.path}`}#findValue(key,canBeExpired=!1){let url=this.#makeValueUrl(key),{headers,method}=key,values=this.#getValuesQuery.all(url,method);if(values.length===0)return;let now=Date.now();for(let value of values){if(now>=value.deleteAt&&!canBeExpired)continue;let matches=!0;if(value.vary){let vary=JSON.parse(value.vary);for(let header in vary)if(!headerValueEquals(headers[header],vary[header])){matches=!1;break}}if(matches)return value}}};function headerValueEquals(lhs,rhs){if(lhs==null&&rhs==null)return!0;if(lhs==null&&rhs!=null||lhs!=null&&rhs==null)return!1;if(Array.isArray(lhs)&&Array.isArray(rhs)){if(lhs.length!==rhs.length)return!1;for(let i=0;i<lhs.length;i++)if(lhs[i]!==rhs[i])return!1;return!0}return lhs===rhs}}});var require_headers=__commonJS({"node_modules/undici/lib/web/fetch/headers.js"(exports,module){"use strict";var{kConstruct}=require_symbols(),{kEnumerableProperty}=require_util(),{iteratorMixin,isValidHeaderName,isValidHeaderValue}=require_util2(),{webidl}=require_webidl(),assert=__require("node:assert"),util=__require("node:util");function isHTTPWhiteSpaceCharCode(code){return code===10||code===13||code===9||code===32}function headerValueNormalize(potentialValue){let i=0,j=potentialValue.length;for(;j>i&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j-1));)--j;for(;j>i&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i));)++i;return i===0&&j===potentialValue.length?potentialValue:potentialValue.substring(i,j)}function fill(headers,object){if(Array.isArray(object))for(let i=0;i<object.length;++i){let header=object[i];if(header.length!==2)throw webidl.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${header.length}.`});appendHeader(headers,header[0],header[1])}else if(typeof object=="object"&&object!==null){let keys=Object.keys(object);for(let i=0;i<keys.length;++i)appendHeader(headers,keys[i],object[keys[i]])}else throw webidl.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function appendHeader(headers,name,value){if(value=headerValueNormalize(value),isValidHeaderName(name)){if(!isValidHeaderValue(value))throw webidl.errors.invalidArgument({prefix:"Headers.append",value,type:"header value"})}else throw webidl.errors.invalidArgument({prefix:"Headers.append",value:name,type:"header name"});if(getHeadersGuard(headers)==="immutable")throw new TypeError("immutable");return getHeadersList(headers).append(name,value,!1)}function headersListSortAndCombine(target){let headersList=getHeadersList(target);if(!headersList)return[];if(headersList.sortedMap)return headersList.sortedMap;let headers=[],names2=headersList.toSortedArray(),cookies=headersList.cookies;if(cookies===null||cookies.length===1)return headersList.sortedMap=names2;for(let i=0;i<names2.length;++i){let{0:name,1:value}=names2[i];if(name==="set-cookie")for(let j=0;j<cookies.length;++j)headers.push([name,cookies[j]]);else headers.push([name,value])}return headersList.sortedMap=headers}function compareHeaderName(a,b){return a[0]<b[0]?-1:1}var HeadersList=class _HeadersList{cookies=null;sortedMap;headersMap;constructor(init){init instanceof _HeadersList?(this.headersMap=new Map(init.headersMap),this.sortedMap=init.sortedMap,this.cookies=init.cookies===null?null:[...init.cookies]):(this.headersMap=new Map(init),this.sortedMap=null)}contains(name,isLowerCase){return this.headersMap.has(isLowerCase?name:name.toLowerCase())}clear(){this.headersMap.clear(),this.sortedMap=null,this.cookies=null}append(name,value,isLowerCase){this.sortedMap=null;let lowercaseName=isLowerCase?name:name.toLowerCase(),exists=this.headersMap.get(lowercaseName);if(exists){let delimiter=lowercaseName==="cookie"?"; ":", ";this.headersMap.set(lowercaseName,{name:exists.name,value:`${exists.value}${delimiter}${value}`})}else this.headersMap.set(lowercaseName,{name,value});lowercaseName==="set-cookie"&&(this.cookies??=[]).push(value)}set(name,value,isLowerCase){this.sortedMap=null;let lowercaseName=isLowerCase?name:name.toLowerCase();lowercaseName==="set-cookie"&&(this.cookies=[value]),this.headersMap.set(lowercaseName,{name,value})}delete(name,isLowerCase){this.sortedMap=null,isLowerCase||(name=name.toLowerCase()),name==="set-cookie"&&(this.cookies=null),this.headersMap.delete(name)}get(name,isLowerCase){return this.headersMap.get(isLowerCase?name:name.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:name,1:{value}}of this.headersMap)yield[name,value]}get entries(){let headers={};if(this.headersMap.size!==0)for(let{name,value}of this.headersMap.values())headers[name]=value;return headers}rawValues(){return this.headersMap.values()}get entriesList(){let headers=[];if(this.headersMap.size!==0)for(let{0:lowerName,1:{name,value}}of this.headersMap)if(lowerName==="set-cookie")for(let cookie of this.cookies)headers.push([name,cookie]);else headers.push([name,value]);return headers}toSortedArray(){let size=this.headersMap.size,array=new Array(size);if(size<=32){if(size===0)return array;let iterator=this.headersMap[Symbol.iterator](),firstValue=iterator.next().value;array[0]=[firstValue[0],firstValue[1].value],assert(firstValue[1].value!==null);for(let i=1,j=0,right=0,left=0,pivot=0,x,value;i<size;++i){for(value=iterator.next().value,x=array[i]=[value[0],value[1].value],assert(x[1]!==null),left=0,right=i;left<right;)pivot=left+(right-left>>1),array[pivot][0]<=x[0]?left=pivot+1:right=pivot;if(i!==pivot){for(j=i;j>left;)array[j]=array[--j];array[left]=x}}if(!iterator.next().done)throw new TypeError("Unreachable");return array}else{let i=0;for(let{0:name,1:{value}}of this.headersMap)array[i++]=[name,value],assert(value!==null);return array.sort(compareHeaderName)}}},Headers=class _Headers{#guard;#headersList;constructor(init=void 0){webidl.util.markAsUncloneable(this),init!==kConstruct&&(this.#headersList=new HeadersList,this.#guard="none",init!==void 0&&(init=webidl.converters.HeadersInit(init,"Headers constructor","init"),fill(this,init)))}append(name,value){webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,2,"Headers.append");let prefix="Headers.append";return name=webidl.converters.ByteString(name,prefix,"name"),value=webidl.converters.ByteString(value,prefix,"value"),appendHeader(this,name,value)}delete(name){if(webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,1,"Headers.delete"),name=webidl.converters.ByteString(name,"Headers.delete","name"),!isValidHeaderName(name))throw webidl.errors.invalidArgument({prefix:"Headers.delete",value:name,type:"header name"});if(this.#guard==="immutable")throw new TypeError("immutable");this.#headersList.contains(name,!1)&&this.#headersList.delete(name,!1)}get(name){webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,1,"Headers.get");let prefix="Headers.get";if(name=webidl.converters.ByteString(name,prefix,"name"),!isValidHeaderName(name))throw webidl.errors.invalidArgument({prefix,value:name,type:"header name"});return this.#headersList.get(name,!1)}has(name){webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,1,"Headers.has");let prefix="Headers.has";if(name=webidl.converters.ByteString(name,prefix,"name"),!isValidHeaderName(name))throw webidl.errors.invalidArgument({prefix,value:name,type:"header name"});return this.#headersList.contains(name,!1)}set(name,value){webidl.brandCheck(this,_Headers),webidl.argumentLengthCheck(arguments,2,"Headers.set");let prefix="Headers.set";if(name=webidl.converters.ByteString(name,prefix,"name"),value=webidl.converters.ByteString(value,prefix,"value"),value=headerValueNormalize(value),isValidHeaderName(name)){if(!isValidHeaderValue(value))throw webidl.errors.invalidArgument({prefix,value,type:"header value"})}else throw webidl.errors.invalidArgument({prefix,value:name,type:"header name"});if(this.#guard==="immutable")throw new TypeError("immutable");this.#headersList.set(name,value,!1)}getSetCookie(){webidl.brandCheck(this,_Headers);let list=this.#headersList.cookies;return list?[...list]:[]}[util.inspect.custom](depth,options){return options.depth??=depth,`Headers ${util.formatWithOptions(options,this.#headersList.entries)}`}static getHeadersGuard(o){return o.#guard}static setHeadersGuard(o,guard){o.#guard=guard}static getHeadersList(o){return o.#headersList}static setHeadersList(target,list){target.#headersList=list}},{getHeadersGuard,setHeadersGuard,getHeadersList,setHeadersList}=Headers;Reflect.deleteProperty(Headers,"getHeadersGuard");Reflect.deleteProperty(Headers,"setHeadersGuard");Reflect.deleteProperty(Headers,"getHeadersList");Reflect.deleteProperty(Headers,"setHeadersList");iteratorMixin("Headers",Headers,headersListSortAndCombine,0,1);Object.defineProperties(Headers.prototype,{append:kEnumerableProperty,delete:kEnumerableProperty,get:kEnumerableProperty,has:kEnumerableProperty,set:kEnumerableProperty,getSetCookie:kEnumerableProperty,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[util.inspect.custom]:{enumerable:!1}});webidl.converters.HeadersInit=function(V,prefix,argument){if(webidl.util.Type(V)===webidl.util.Types.OBJECT){let iterator=Reflect.get(V,Symbol.iterator);if(!util.types.isProxy(V)&&iterator===Headers.prototype.entries)try{return getHeadersList(V).entriesList}catch{}return typeof iterator=="function"?webidl.converters["sequence<sequence<ByteString>>"](V,prefix,argument,iterator.bind(V)):webidl.converters["record<ByteString, ByteString>"](V,prefix,argument)}throw webidl.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};module.exports={fill,compareHeaderName,Headers,HeadersList,getHeadersGuard,setHeadersGuard,setHeadersList,getHeadersList}}});var require_response=__commonJS({"node_modules/undici/lib/web/fetch/response.js"(exports,module){"use strict";var{Headers,HeadersList,fill,getHeadersGuard,setHeadersGuard,setHeadersList}=require_headers(),{extractBody,cloneBody,mixinBody,streamRegistry,bodyUnusable}=require_body(),util=require_util(),nodeUtil=__require("node:util"),{kEnumerableProperty}=util,{isValidReasonPhrase,isCancelled,isAborted,isErrorLike,environmentSettingsObject:relevantRealm}=require_util2(),{redirectStatusSet,nullBodyStatus}=require_constants3(),{webidl}=require_webidl(),{URLSerializer}=require_data_url(),{kConstruct}=require_symbols(),assert=__require("node:assert"),{isomorphicEncode,serializeJavascriptValueToJSONString}=require_infra(),textEncoder=new TextEncoder("utf-8"),Response=class _Response{#headers;#state;static error(){return fromInnerResponse(makeNetworkError(),"immutable")}static json(data,init=void 0){webidl.argumentLengthCheck(arguments,1,"Response.json"),init=webidl.converters.ResponseInit(init);let bytes=textEncoder.encode(serializeJavascriptValueToJSONString(data)),body=extractBody(bytes),responseObject=fromInnerResponse(makeResponse({}),"response");return initializeResponse(responseObject,init,{body:body[0],type:"application/json"}),responseObject}static redirect(url,status=302){webidl.argumentLengthCheck(arguments,1,"Response.redirect"),url=webidl.converters.USVString(url),status=webidl.converters["unsigned short"](status);let parsedURL;try{parsedURL=new URL(url,relevantRealm.settingsObject.baseUrl)}catch(err){throw new TypeError(`Failed to parse URL from ${url}`,{cause:err})}if(!redirectStatusSet.has(status))throw new RangeError(`Invalid status code ${status}`);let responseObject=fromInnerResponse(makeResponse({}),"immutable");responseObject.#state.status=status;let value=isomorphicEncode(URLSerializer(parsedURL));return responseObject.#state.headersList.append("location",value,!0),responseObject}constructor(body=null,init=void 0){if(webidl.util.markAsUncloneable(this),body===kConstruct)return;body!==null&&(body=webidl.converters.BodyInit(body,"Response","body")),init=webidl.converters.ResponseInit(init),this.#state=makeResponse({}),this.#headers=new Headers(kConstruct),setHeadersGuard(this.#headers,"response"),setHeadersList(this.#headers,this.#state.headersList);let bodyWithType=null;if(body!=null){let[extractedBody,type]=extractBody(body);bodyWithType={body:extractedBody,type}}initializeResponse(this,init,bodyWithType)}get type(){return webidl.brandCheck(this,_Response),this.#state.type}get url(){webidl.brandCheck(this,_Response);let urlList=this.#state.urlList,url=urlList[urlList.length-1]??null;return url===null?"":URLSerializer(url,!0)}get redirected(){return webidl.brandCheck(this,_Response),this.#state.urlList.length>1}get status(){return webidl.brandCheck(this,_Response),this.#state.status}get ok(){return webidl.brandCheck(this,_Response),this.#state.status>=200&&this.#state.status<=299}get statusText(){return webidl.brandCheck(this,_Response),this.#state.statusText}get headers(){return webidl.brandCheck(this,_Response),this.#headers}get body(){return webidl.brandCheck(this,_Response),this.#state.body?this.#state.body.stream:null}get bodyUsed(){return webidl.brandCheck(this,_Response),!!this.#state.body&&util.isDisturbed(this.#state.body.stream)}clone(){if(webidl.brandCheck(this,_Response),bodyUnusable(this.#state))throw webidl.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let clonedResponse=cloneResponse(this.#state);return this.#state.urlList.length!==0&&this.#state.body?.stream&&streamRegistry.register(this,new WeakRef(this.#state.body.stream)),fromInnerResponse(clonedResponse,getHeadersGuard(this.#headers))}[nodeUtil.inspect.custom](depth,options){options.depth===null&&(options.depth=2),options.colors??=!0;let properties={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${nodeUtil.formatWithOptions(options,properties)}`}static getResponseHeaders(response){return response.#headers}static setResponseHeaders(response,newHeaders){response.#headers=newHeaders}static getResponseState(response){return response.#state}static setResponseState(response,newState){response.#state=newState}},{getResponseHeaders,setResponseHeaders,getResponseState,setResponseState}=Response;Reflect.deleteProperty(Response,"getResponseHeaders");Reflect.deleteProperty(Response,"setResponseHeaders");Reflect.deleteProperty(Response,"getResponseState");Reflect.deleteProperty(Response,"setResponseState");mixinBody(Response,getResponseState);Object.defineProperties(Response.prototype,{type:kEnumerableProperty,url:kEnumerableProperty,status:kEnumerableProperty,ok:kEnumerableProperty,redirected:kEnumerableProperty,statusText:kEnumerableProperty,headers:kEnumerableProperty,clone:kEnumerableProperty,body:kEnumerableProperty,bodyUsed:kEnumerableProperty,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Response,{json:kEnumerableProperty,redirect:kEnumerableProperty,error:kEnumerableProperty});function cloneResponse(response){if(response.internalResponse)return filterResponse(cloneResponse(response.internalResponse),response.type);let newResponse=makeResponse({...response,body:null});return response.body!=null&&(newResponse.body=cloneBody(response.body)),newResponse}function makeResponse(init){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...init,headersList:init?.headersList?new HeadersList(init?.headersList):new HeadersList,urlList:init?.urlList?[...init.urlList]:[]}}function makeNetworkError(reason){let isError=isErrorLike(reason);return makeResponse({type:"error",status:0,error:isError?reason:new Error(reason&&String(reason)),aborted:reason&&reason.name==="AbortError"})}function isNetworkError(response){return response.type==="error"&&response.status===0}function makeFilteredResponse(response,state2){return state2={internalResponse:response,...state2},new Proxy(response,{get(target,p){return p in state2?state2[p]:target[p]},set(target,p,value){return assert(!(p in state2)),target[p]=value,!0}})}function filterResponse(response,type){if(type==="basic")return makeFilteredResponse(response,{type:"basic",headersList:response.headersList});if(type==="cors")return makeFilteredResponse(response,{type:"cors",headersList:response.headersList});if(type==="opaque")return makeFilteredResponse(response,{type:"opaque",urlList:[],status:0,statusText:"",body:null});if(type==="opaqueredirect")return makeFilteredResponse(response,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});assert(!1)}function makeAppropriateNetworkError(fetchParams,err=null){return assert(isCancelled(fetchParams)),isAborted(fetchParams)?makeNetworkError(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:err})):makeNetworkError(Object.assign(new DOMException("Request was cancelled."),{cause:err}))}function initializeResponse(response,init,body){if(init.status!==null&&(init.status<200||init.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in init&&init.statusText!=null&&!isValidReasonPhrase(String(init.statusText)))throw new TypeError("Invalid statusText");if("status"in init&&init.status!=null&&(getResponseState(response).status=init.status),"statusText"in init&&init.statusText!=null&&(getResponseState(response).statusText=init.statusText),"headers"in init&&init.headers!=null&&fill(getResponseHeaders(response),init.headers),body){if(nullBodyStatus.includes(response.status))throw webidl.errors.exception({header:"Response constructor",message:`Invalid response status code ${response.status}`});getResponseState(response).body=body.body,body.type!=null&&!getResponseState(response).headersList.contains("content-type",!0)&&getResponseState(response).headersList.append("content-type",body.type,!0)}}function fromInnerResponse(innerResponse,guard){let response=new Response(kConstruct);setResponseState(response,innerResponse);let headers=new Headers(kConstruct);return setResponseHeaders(response,headers),setHeadersList(headers,innerResponse.headersList),setHeadersGuard(headers,guard),innerResponse.urlList.length!==0&&innerResponse.body?.stream&&streamRegistry.register(response,new WeakRef(innerResponse.body.stream)),response}webidl.converters.XMLHttpRequestBodyInit=function(V,prefix,name){return typeof V=="string"?webidl.converters.USVString(V,prefix,name):webidl.is.Blob(V)||webidl.is.BufferSource(V)||webidl.is.FormData(V)||webidl.is.URLSearchParams(V)?V:webidl.converters.DOMString(V,prefix,name)};webidl.converters.BodyInit=function(V,prefix,argument){return webidl.is.ReadableStream(V)||V?.[Symbol.asyncIterator]?V:webidl.converters.XMLHttpRequestBodyInit(V,prefix,argument)};webidl.converters.ResponseInit=webidl.dictionaryConverter([{key:"status",converter:webidl.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:webidl.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:webidl.converters.HeadersInit}]);webidl.is.Response=webidl.util.MakeTypeAssertion(Response);module.exports={isNetworkError,makeNetworkError,makeResponse,makeAppropriateNetworkError,filterResponse,Response,cloneResponse,fromInnerResponse,getResponseState}}});var require_request2=__commonJS({"node_modules/undici/lib/web/fetch/request.js"(exports,module){"use strict";var{extractBody,mixinBody,cloneBody,bodyUnusable}=require_body(),{Headers,fill:fillHeaders,HeadersList,setHeadersGuard,getHeadersGuard,setHeadersList,getHeadersList}=require_headers(),util=require_util(),nodeUtil=__require("node:util"),{isValidHTTPToken,sameOrigin,environmentSettingsObject}=require_util2(),{forbiddenMethodsSet,corsSafeListedMethodsSet,referrerPolicy,requestRedirect,requestMode,requestCredentials,requestCache,requestDuplex}=require_constants3(),{kEnumerableProperty,normalizedMethodRecordsBase,normalizedMethodRecords}=util,{webidl}=require_webidl(),{URLSerializer}=require_data_url(),{kConstruct}=require_symbols(),assert=__require("node:assert"),{getMaxListeners,setMaxListeners,defaultMaxListeners}=__require("node:events"),kAbortController=Symbol("abortController"),requestFinalizer=new FinalizationRegistry(({signal,abort})=>{signal.removeEventListener("abort",abort)}),dependentControllerMap=new WeakMap,abortSignalHasEventHandlerLeakWarning;try{abortSignalHasEventHandlerLeakWarning=getMaxListeners(new AbortController().signal)>0}catch{abortSignalHasEventHandlerLeakWarning=!1}function buildAbort(acRef){return abort;function abort(){let ac=acRef.deref();if(ac!==void 0){requestFinalizer.unregister(abort),this.removeEventListener("abort",abort),ac.abort(this.reason);let controllerList=dependentControllerMap.get(ac.signal);if(controllerList!==void 0){if(controllerList.size!==0){for(let ref of controllerList){let ctrl=ref.deref();ctrl!==void 0&&ctrl.abort(this.reason)}controllerList.clear()}dependentControllerMap.delete(ac.signal)}}}}var patchMethodWarning=!1,Request=class _Request{#signal;#dispatcher;#headers;#state;#abortCleanup=null;constructor(input,init=void 0){if(webidl.util.markAsUncloneable(this),input===kConstruct)return;webidl.argumentLengthCheck(arguments,1,"Request constructor"),input=webidl.converters.RequestInfo(input),init=webidl.converters.RequestInit(init);let request=null,fallbackMode=null,baseUrl=environmentSettingsObject.settingsObject.baseUrl,signal=null;if(typeof input=="string"){this.#dispatcher=init.dispatcher;let parsedURL;try{parsedURL=new URL(input,baseUrl)}catch(err){throw new TypeError("Failed to parse URL from "+input,{cause:err})}if(parsedURL.username||parsedURL.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+input);request=makeRequest({urlList:[parsedURL]}),fallbackMode="cors"}else assert(webidl.is.Request(input)),request=input.#state,signal=input.#signal,this.#dispatcher=init.dispatcher||input.#dispatcher;let origin=environmentSettingsObject.settingsObject.origin,window="client";if(request.window?.constructor?.name==="EnvironmentSettingsObject"&&sameOrigin(request.window,origin)&&(window=request.window),init.window!=null)throw new TypeError(`'window' option '${window}' must be null`);"window"in init&&(window="no-window"),request=makeRequest({method:request.method,headersList:request.headersList,unsafeRequest:request.unsafeRequest,client:environmentSettingsObject.settingsObject,window,priority:request.priority,origin:request.origin,referrer:request.referrer,referrerPolicy:request.referrerPolicy,mode:request.mode,credentials:request.credentials,cache:request.cache,redirect:request.redirect,integrity:request.integrity,keepalive:request.keepalive,reloadNavigation:request.reloadNavigation,historyNavigation:request.historyNavigation,urlList:[...request.urlList]});let initHasKey=Object.keys(init).length!==0;if(initHasKey&&(request.mode==="navigate"&&(request.mode="same-origin"),request.reloadNavigation=!1,request.historyNavigation=!1,request.origin="client",request.referrer="client",request.referrerPolicy="",request.url=request.urlList[request.urlList.length-1],request.urlList=[request.url]),init.referrer!==void 0){let referrer=init.referrer;if(referrer==="")request.referrer="no-referrer";else{let parsedReferrer;try{parsedReferrer=new URL(referrer,baseUrl)}catch(err){throw new TypeError(`Referrer "${referrer}" is not a valid URL.`,{cause:err})}parsedReferrer.protocol==="about:"&&parsedReferrer.hostname==="client"||origin&&!sameOrigin(parsedReferrer,environmentSettingsObject.settingsObject.baseUrl)?request.referrer="client":request.referrer=parsedReferrer}}init.referrerPolicy!==void 0&&(request.referrerPolicy=init.referrerPolicy);let mode;if(init.mode!==void 0?mode=init.mode:mode=fallbackMode,mode==="navigate")throw webidl.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(mode!=null&&(request.mode=mode),init.credentials!==void 0&&(request.credentials=init.credentials),init.cache!==void 0&&(request.cache=init.cache),request.cache==="only-if-cached"&&request.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(init.redirect!==void 0&&(request.redirect=init.redirect),init.integrity!=null&&(request.integrity=String(init.integrity)),init.keepalive!==void 0&&(request.keepalive=!!init.keepalive),init.method!==void 0){let method=init.method,mayBeNormalized=normalizedMethodRecords[method];if(mayBeNormalized!==void 0)request.method=mayBeNormalized;else{if(!isValidHTTPToken(method))throw new TypeError(`'${method}' is not a valid HTTP method.`);let upperCase=method.toUpperCase();if(forbiddenMethodsSet.has(upperCase))throw new TypeError(`'${method}' HTTP method is unsupported.`);method=normalizedMethodRecordsBase[upperCase]??method,request.method=method}!patchMethodWarning&&request.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),patchMethodWarning=!0)}init.signal!==void 0&&(signal=init.signal),this.#state=request;let ac=new AbortController;if(this.#signal=ac.signal,signal!=null)if(signal.aborted)ac.abort(signal.reason);else{this[kAbortController]=ac;let acRef=new WeakRef(ac),abort=buildAbort(acRef);abortSignalHasEventHandlerLeakWarning&&getMaxListeners(signal)===defaultMaxListeners&&setMaxListeners(1500,signal);let removeAbortListener=util.addAbortListener(signal,abort);requestFinalizer.register(ac,{signal,abort},abort),this.#abortCleanup=()=>{requestFinalizer.unregister(abort),removeAbortListener(),this.#abortCleanup=null}}if(this.#headers=new Headers(kConstruct),setHeadersList(this.#headers,request.headersList),setHeadersGuard(this.#headers,"request"),mode==="no-cors"){if(!corsSafeListedMethodsSet.has(request.method))throw new TypeError(`'${request.method} is unsupported in no-cors mode.`);setHeadersGuard(this.#headers,"request-no-cors")}if(initHasKey){let headersList=getHeadersList(this.#headers),headers=init.headers!==void 0?init.headers:new HeadersList(headersList);if(headersList.clear(),headers instanceof HeadersList){for(let{name,value}of headers.rawValues())headersList.append(name,value,!1);headersList.cookies=headers.cookies}else fillHeaders(this.#headers,headers)}let inputBody=webidl.is.Request(input)?input.#state.body:null;if((init.body!=null||inputBody!=null)&&(request.method==="GET"||request.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let initBody=null;if(init.body!=null){let[extractedBody,contentType]=extractBody(init.body,request.keepalive);initBody=extractedBody,contentType&&!getHeadersList(this.#headers).contains("content-type",!0)&&this.#headers.append("content-type",contentType,!0)}let inputOrInitBody=initBody??inputBody;if(inputOrInitBody!=null&&inputOrInitBody.source==null){if(initBody!=null&&init.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(request.mode!=="same-origin"&&request.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');request.useCORSPreflightFlag=!0}let finalBody=inputOrInitBody;if(initBody==null&&inputBody!=null){if(bodyUnusable(input.#state))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let identityTransform=new TransformStream;inputBody.stream.pipeThrough(identityTransform),finalBody={source:inputBody.source,length:inputBody.length,stream:identityTransform.readable}}this.#state.body=finalBody}get method(){return webidl.brandCheck(this,_Request),this.#state.method}get url(){return webidl.brandCheck(this,_Request),URLSerializer(this.#state.url)}get headers(){return webidl.brandCheck(this,_Request),this.#headers}get destination(){return webidl.brandCheck(this,_Request),this.#state.destination}get referrer(){return webidl.brandCheck(this,_Request),this.#state.referrer==="no-referrer"?"":this.#state.referrer==="client"?"about:client":this.#state.referrer.toString()}get referrerPolicy(){return webidl.brandCheck(this,_Request),this.#state.referrerPolicy}get mode(){return webidl.brandCheck(this,_Request),this.#state.mode}get credentials(){return webidl.brandCheck(this,_Request),this.#state.credentials}get cache(){return webidl.brandCheck(this,_Request),this.#state.cache}get redirect(){return webidl.brandCheck(this,_Request),this.#state.redirect}get integrity(){return webidl.brandCheck(this,_Request),this.#state.integrity}get keepalive(){return webidl.brandCheck(this,_Request),this.#state.keepalive}get isReloadNavigation(){return webidl.brandCheck(this,_Request),this.#state.reloadNavigation}get isHistoryNavigation(){return webidl.brandCheck(this,_Request),this.#state.historyNavigation}get signal(){return webidl.brandCheck(this,_Request),this.#signal}get body(){return webidl.brandCheck(this,_Request),this.#state.body?this.#state.body.stream:null}get bodyUsed(){return webidl.brandCheck(this,_Request),!!this.#state.body&&util.isDisturbed(this.#state.body.stream)}get duplex(){return webidl.brandCheck(this,_Request),"half"}clone(){if(webidl.brandCheck(this,_Request),bodyUnusable(this.#state))throw new TypeError("unusable");let clonedRequest=cloneRequest(this.#state),ac=new AbortController;if(this.signal.aborted)ac.abort(this.signal.reason);else{let list=dependentControllerMap.get(this.signal);list===void 0&&(list=new Set,dependentControllerMap.set(this.signal,list));let acRef=new WeakRef(ac);list.add(acRef),util.addAbortListener(ac.signal,buildAbort(acRef))}return fromInnerRequest(clonedRequest,this.#dispatcher,ac.signal,getHeadersGuard(this.#headers))}[nodeUtil.inspect.custom](depth,options){options.depth===null&&(options.depth=2),options.colors??=!0;let properties={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${nodeUtil.formatWithOptions(options,properties)}`}static setRequestSignal(request,newSignal){return request.#signal=newSignal,request}static getRequestDispatcher(request){return request.#dispatcher}static setRequestDispatcher(request,newDispatcher){request.#dispatcher=newDispatcher}static setRequestHeaders(request,newHeaders){request.#headers=newHeaders}static getRequestState(request){return request.#state}static setRequestState(request,newState){request.#state=newState}static removeRequestAbortListener(request){request.#abortCleanup?.()}},{setRequestSignal,getRequestDispatcher,setRequestDispatcher,setRequestHeaders,getRequestState,setRequestState,removeRequestAbortListener}=Request;Reflect.deleteProperty(Request,"setRequestSignal");Reflect.deleteProperty(Request,"getRequestDispatcher");Reflect.deleteProperty(Request,"setRequestDispatcher");Reflect.deleteProperty(Request,"setRequestHeaders");Reflect.deleteProperty(Request,"getRequestState");Reflect.deleteProperty(Request,"setRequestState");Reflect.deleteProperty(Request,"removeRequestAbortListener");mixinBody(Request,getRequestState);function makeRequest(init){return{method:init.method??"GET",localURLsOnly:init.localURLsOnly??!1,unsafeRequest:init.unsafeRequest??!1,body:init.body??null,client:init.client??null,reservedClient:init.reservedClient??null,replacesClientId:init.replacesClientId??"",window:init.window??"client",keepalive:init.keepalive??!1,serviceWorkers:init.serviceWorkers??"all",initiator:init.initiator??"",destination:init.destination??"",priority:init.priority??"auto",origin:init.origin??"client",policyContainer:init.policyContainer??"client",referrer:init.referrer??"client",referrerPolicy:init.referrerPolicy??"",mode:init.mode??"no-cors",useCORSPreflightFlag:init.useCORSPreflightFlag??!1,credentials:init.credentials??"same-origin",useCredentials:init.useCredentials??!1,cache:init.cache??"default",redirect:init.redirect??"follow",integrity:init.integrity??"",cryptoGraphicsNonceMetadata:init.cryptoGraphicsNonceMetadata??"",parserMetadata:init.parserMetadata??"",reloadNavigation:init.reloadNavigation??!1,historyNavigation:init.historyNavigation??!1,userActivation:init.userActivation??!1,taintedOrigin:init.taintedOrigin??!1,redirectCount:init.redirectCount??0,responseTainting:init.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:init.preventNoCacheCacheControlHeaderModification??!1,done:init.done??!1,timingAllowFailed:init.timingAllowFailed??!1,useURLCredentials:init.useURLCredentials??void 0,traversableForUserPrompts:init.traversableForUserPrompts??"client",urlList:init.urlList,url:init.urlList[0],headersList:init.headersList?new HeadersList(init.headersList):new HeadersList}}function cloneRequest(request){let newRequest=makeRequest({...request,body:null});return request.body!=null&&(newRequest.body=cloneBody(request.body)),newRequest}function fromInnerRequest(innerRequest,dispatcher,signal,guard){let request=new Request(kConstruct);setRequestState(request,innerRequest),setRequestDispatcher(request,dispatcher),setRequestSignal(request,signal);let headers=new Headers(kConstruct);return setRequestHeaders(request,headers),setHeadersList(headers,innerRequest.headersList),setHeadersGuard(headers,guard),request}Object.defineProperties(Request.prototype,{method:kEnumerableProperty,url:kEnumerableProperty,headers:kEnumerableProperty,redirect:kEnumerableProperty,clone:kEnumerableProperty,signal:kEnumerableProperty,duplex:kEnumerableProperty,destination:kEnumerableProperty,body:kEnumerableProperty,bodyUsed:kEnumerableProperty,isHistoryNavigation:kEnumerableProperty,isReloadNavigation:kEnumerableProperty,keepalive:kEnumerableProperty,integrity:kEnumerableProperty,cache:kEnumerableProperty,credentials:kEnumerableProperty,attribute:kEnumerableProperty,referrerPolicy:kEnumerableProperty,referrer:kEnumerableProperty,mode:kEnumerableProperty,[Symbol.toStringTag]:{value:"Request",configurable:!0}});webidl.is.Request=webidl.util.MakeTypeAssertion(Request);webidl.converters.RequestInfo=function(V){return typeof V=="string"?webidl.converters.USVString(V):webidl.is.Request(V)?V:webidl.converters.USVString(V)};webidl.converters.RequestInit=webidl.dictionaryConverter([{key:"method",converter:webidl.converters.ByteString},{key:"headers",converter:webidl.converters.HeadersInit},{key:"body",converter:webidl.nullableConverter(webidl.converters.BodyInit)},{key:"referrer",converter:webidl.converters.USVString},{key:"referrerPolicy",converter:webidl.converters.DOMString,allowedValues:referrerPolicy},{key:"mode",converter:webidl.converters.DOMString,allowedValues:requestMode},{key:"credentials",converter:webidl.converters.DOMString,allowedValues:requestCredentials},{key:"cache",converter:webidl.converters.DOMString,allowedValues:requestCache},{key:"redirect",converter:webidl.converters.DOMString,allowedValues:requestRedirect},{key:"integrity",converter:webidl.converters.DOMString},{key:"keepalive",converter:webidl.converters.boolean},{key:"signal",converter:webidl.nullableConverter(signal=>webidl.converters.AbortSignal(signal,"RequestInit","signal"))},{key:"window",converter:webidl.converters.any},{key:"duplex",converter:webidl.converters.DOMString,allowedValues:requestDuplex},{key:"dispatcher",converter:webidl.converters.any},{key:"priority",converter:webidl.converters.DOMString,allowedValues:["high","low","auto"]}]);module.exports={Request,makeRequest,fromInnerRequest,cloneRequest,getRequestDispatcher,getRequestState,removeRequestAbortListener}}});var require_subresource_integrity=__commonJS({"node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js"(exports,module){"use strict";var assert=__require("node:assert"),{runtimeFeatures}=require_runtime_features(),validSRIHashAlgorithmTokenSet=new Map([["sha256",0],["sha384",1],["sha512",2]]),crypto;if(runtimeFeatures.has("crypto")){crypto=__require("node:crypto");let cryptoHashes=crypto.getHashes();cryptoHashes.length===0&&validSRIHashAlgorithmTokenSet.clear();for(let algorithm of validSRIHashAlgorithmTokenSet.keys())cryptoHashes.includes(algorithm)===!1&&validSRIHashAlgorithmTokenSet.delete(algorithm)}else validSRIHashAlgorithmTokenSet.clear();var getSRIHashAlgorithmIndex=Map.prototype.get.bind(validSRIHashAlgorithmTokenSet),isValidSRIHashAlgorithm=Map.prototype.has.bind(validSRIHashAlgorithmTokenSet),bytesMatch=runtimeFeatures.has("crypto")===!1||validSRIHashAlgorithmTokenSet.size===0?()=>!0:(bytes,metadataList)=>{let parsedMetadata=parseMetadata(metadataList);if(parsedMetadata.length===0)return!0;let metadata=getStrongestMetadata(parsedMetadata);for(let item of metadata){let algorithm=item.alg,expectedValue=item.val,actualValue=applyAlgorithmToBytes(algorithm,bytes);if(caseSensitiveMatch(actualValue,expectedValue))return!0}return!1};function getStrongestMetadata(metadataList){let result=[],strongest=null;for(let item of metadataList){if(assert(isValidSRIHashAlgorithm(item.alg),"Invalid SRI hash algorithm token"),result.length===0){result.push(item),strongest=item;continue}let currentAlgorithm=strongest.alg,currentAlgorithmIndex=getSRIHashAlgorithmIndex(currentAlgorithm),newAlgorithm=item.alg,newAlgorithmIndex=getSRIHashAlgorithmIndex(newAlgorithm);newAlgorithmIndex<currentAlgorithmIndex||(newAlgorithmIndex>currentAlgorithmIndex?(strongest=item,result[0]=item,result.length=1):result.push(item))}return result}function parseMetadata(metadata){let result=[];for(let item of metadata.split(" ")){let algorithmExpression=item.split("?",1)[0],base64Value="",algorithmAndValue=[algorithmExpression.slice(0,6),algorithmExpression.slice(7)],algorithm=algorithmAndValue[0];if(!isValidSRIHashAlgorithm(algorithm))continue;algorithmAndValue[1]&&(base64Value=algorithmAndValue[1]);let metadata2={alg:algorithm,val:base64Value};result.push(metadata2)}return result}var applyAlgorithmToBytes=(algorithm,bytes)=>crypto.hash(algorithm,bytes,"base64");function caseSensitiveMatch(actualValue,expectedValue){let actualValueLength=actualValue.length;actualValueLength!==0&&actualValue[actualValueLength-1]==="="&&(actualValueLength-=1),actualValueLength!==0&&actualValue[actualValueLength-1]==="="&&(actualValueLength-=1);let expectedValueLength=expectedValue.length;if(expectedValueLength!==0&&expectedValue[expectedValueLength-1]==="="&&(expectedValueLength-=1),expectedValueLength!==0&&expectedValue[expectedValueLength-1]==="="&&(expectedValueLength-=1),actualValueLength!==expectedValueLength)return!1;for(let i=0;i<actualValueLength;++i)if(!(actualValue[i]===expectedValue[i]||actualValue[i]==="+"&&expectedValue[i]==="-"||actualValue[i]==="/"&&expectedValue[i]==="_"))return!1;return!0}module.exports={applyAlgorithmToBytes,bytesMatch,caseSensitiveMatch,isValidSRIHashAlgorithm,getStrongestMetadata,parseMetadata}}});var require_fetch=__commonJS({"node_modules/undici/lib/web/fetch/index.js"(exports,module){"use strict";var{makeNetworkError,makeAppropriateNetworkError,filterResponse,makeResponse,fromInnerResponse,getResponseState}=require_response(),{HeadersList}=require_headers(),{Request,cloneRequest,getRequestDispatcher,getRequestState,removeRequestAbortListener}=require_request2(),zlib=__require("node:zlib"),{makePolicyContainer,clonePolicyContainer,requestBadPort,TAOCheck,appendRequestOriginHeader,responseLocationURL,requestCurrentURL,setRequestReferrerPolicyOnRedirect,tryUpgradeRequestToAPotentiallyTrustworthyURL,createOpaqueTimingInfo,appendFetchMetadata,corsCheck,crossOriginResourcePolicyCheck,determineRequestsReferrer,coarsenedSharedCurrentTime,sameOrigin,isCancelled,isAborted,isErrorLike,fullyReadBody,readableStreamClose,urlIsLocal,urlIsHttpHttpsScheme,urlHasHttpsScheme,clampAndCoarsenConnectionTimingInfo,simpleRangeHeaderValue,buildContentRange,createInflate,extractMimeType,hasAuthenticationEntry,includesCredentials,isTraversableNavigable}=require_util2(),assert=__require("node:assert"),{safelyExtractBody,extractBody}=require_body(),{redirectStatusSet,nullBodyStatus,safeMethodsSet,requestBodyHeader,subresourceSet}=require_constants3(),EE=__require("node:events"),{Readable,pipeline,finished:finished2,isErrored,isReadable}=__require("node:stream"),{addAbortListener,bufferToLowerCasedHeaderName}=require_util(),{SocketError}=require_errors(),{dataURLProcessor,serializeAMimeType,minimizeSupportedMimeType}=require_data_url(),{getGlobalDispatcher}=require_global2(),{webidl}=require_webidl(),{STATUS_CODES}=__require("node:http"),{bytesMatch}=require_subresource_integrity(),{isomorphicEncode}=require_infra(),GET_OR_HEAD=["GET","HEAD"],defaultUserAgent=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",resolveObjectURL;function appendHeadersListFromResponseHeaders(headersList,headers,rawHeaders){if(Array.isArray(rawHeaders)){for(let i=0;i<rawHeaders.length;i+=2){let nameStr=bufferToLowerCasedHeaderName(rawHeaders[i]),value=rawHeaders[i+1];if(Array.isArray(value)&&!Buffer.isBuffer(value))for(let val of value)headersList.append(nameStr,val.toString("latin1"),!0);else headersList.append(nameStr,value.toString("latin1"),!0)}return}for(let[name,value]of Object.entries(headers??{}))if(Array.isArray(value))for(let entry of value)headersList.append(name,`${entry}`,!0);else headersList.append(name,`${value}`,!0)}var Fetch=class extends EE{constructor(dispatcher){super(),this.dispatcher=dispatcher,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(reason){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(reason),this.emit("terminated",reason))}abort(error){this.state==="ongoing"&&(this.state="aborted",error||(error=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=error,this.connection?.destroy(error),this.emit("terminated",error))}};function handleFetchDone(response){finalizeAndReportTiming(response,"fetch")}function fetch(input,init=void 0){webidl.argumentLengthCheck(arguments,1,"globalThis.fetch");let p=Promise.withResolvers(),requestObject;try{requestObject=new Request(input,init)}catch(e){return p.reject(e),p.promise}let request=getRequestState(requestObject);if(requestObject.signal.aborted)return abortFetch(p,request,null,requestObject.signal.reason,null),p.promise;request.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(request.serviceWorkers="none");let responseObject=null,locallyAborted=!1,controller=null,removeAbortListener=addAbortListener(requestObject.signal,()=>{locallyAborted=!0,assert(controller!=null),controller.abort(requestObject.signal.reason);let realResponse=responseObject?.deref();abortFetch(p,request,realResponse,requestObject.signal.reason,controller.controller)}),cleanupAbortListeners=()=>{removeAbortListener(),removeRequestAbortListener(requestObject)};return controller=fetching({request,processResponseEndOfBody:response=>{handleFetchDone(response),cleanupAbortListeners()},processResponse:response=>{if(!locallyAborted){if(response.aborted){abortFetch(p,request,responseObject,controller.serializedAbortReason,controller.controller),cleanupAbortListeners();return}if(response.type==="error"){p.reject(new TypeError("fetch failed",{cause:response.error})),cleanupAbortListeners();return}responseObject=new WeakRef(fromInnerResponse(response,"immutable")),p.resolve(responseObject.deref()),p=null}},dispatcher:getRequestDispatcher(requestObject),requestObject}),p.promise}function finalizeAndReportTiming(response,initiatorType="other"){if(response.type==="error"&&response.aborted||!response.urlList?.length)return;let originalURL=response.urlList[0],timingInfo=response.timingInfo,cacheState=response.cacheState;urlIsHttpHttpsScheme(originalURL)&&timingInfo!==null&&(response.timingAllowPassed||(timingInfo=createOpaqueTimingInfo({startTime:timingInfo.startTime}),cacheState=""),timingInfo.endTime=coarsenedSharedCurrentTime(),response.timingInfo=timingInfo,markResourceTiming(timingInfo,originalURL.href,initiatorType,globalThis,cacheState,"",response.status))}var markResourceTiming=performance.markResourceTiming;function abortFetch(p,request,responseObject,error,controller){if(p&&p.reject(error),request.body?.stream!=null&&isReadable(request.body.stream)&&request.body.stream.cancel(error).catch(err=>{if(err.code!=="ERR_INVALID_STATE")throw err}),responseObject==null)return;let response=getResponseState(responseObject);response.body?.stream!=null&&isReadable(response.body.stream)&&controller.error(error)}function fetching({request,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseEndOfBody,processResponseConsumeBody,useParallelQueue=!1,dispatcher=getGlobalDispatcher(),requestObject=null}){assert(dispatcher);let taskDestination=null,crossOriginIsolatedCapability=!1;request.client!=null&&(taskDestination=request.client.globalObject,crossOriginIsolatedCapability=request.client.crossOriginIsolatedCapability);let currentTime=coarsenedSharedCurrentTime(crossOriginIsolatedCapability),timingInfo=createOpaqueTimingInfo({startTime:currentTime}),fetchParams={controller:new Fetch(dispatcher),request,timingInfo,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseConsumeBody,processResponseEndOfBody,taskDestination,crossOriginIsolatedCapability,requestObject};return assert(!request.body||request.body.stream),request.window==="client"&&(request.window=request.client?.globalObject?.constructor?.name==="Window"?request.client:"no-window"),request.origin==="client"&&(request.origin=request.client.origin),request.policyContainer==="client"&&(request.client!=null?request.policyContainer=clonePolicyContainer(request.client.policyContainer):request.policyContainer=makePolicyContainer()),request.headersList.contains("accept",!0)||request.headersList.append("accept","*/*",!0),request.headersList.contains("accept-language",!0)||request.headersList.append("accept-language","*",!0),request.priority,subresourceSet.has(request.destination),mainFetch(fetchParams,!1),fetchParams.controller}async function mainFetch(fetchParams,recursive){try{let request=fetchParams.request,response=null;if(request.localURLsOnly&&!urlIsLocal(requestCurrentURL(request))&&(response=makeNetworkError("local URLs only")),tryUpgradeRequestToAPotentiallyTrustworthyURL(request),requestBadPort(request)==="blocked"&&(response=makeNetworkError("bad port")),request.referrerPolicy===""&&(request.referrerPolicy=request.policyContainer.referrerPolicy),request.referrer!=="no-referrer"&&(request.referrer=determineRequestsReferrer(request)),response===null){let currentURL=requestCurrentURL(request);sameOrigin(currentURL,request.url)&&request.responseTainting==="basic"||currentURL.protocol==="data:"||request.mode==="navigate"||request.mode==="websocket"?(request.responseTainting="basic",response=await schemeFetch(fetchParams)):request.mode==="same-origin"?response=makeNetworkError('request mode cannot be "same-origin"'):request.mode==="no-cors"?request.redirect!=="follow"?response=makeNetworkError('redirect mode cannot be "follow" for "no-cors" request'):(request.responseTainting="opaque",response=await schemeFetch(fetchParams)):urlIsHttpHttpsScheme(requestCurrentURL(request))?(request.responseTainting="cors",response=await httpFetch(fetchParams)):response=makeNetworkError("URL scheme must be a HTTP(S) scheme")}if(recursive)return response;response.status!==0&&!response.internalResponse&&(request.responseTainting,request.responseTainting==="basic"?response=filterResponse(response,"basic"):request.responseTainting==="cors"?response=filterResponse(response,"cors"):request.responseTainting==="opaque"?response=filterResponse(response,"opaque"):assert(!1));let internalResponse=response.status===0?response:response.internalResponse;if(internalResponse.urlList.length===0&&internalResponse.urlList.push(...request.urlList),request.timingAllowFailed||(response.timingAllowPassed=!0),response.type==="opaque"&&internalResponse.status===206&&internalResponse.rangeRequested&&!request.headers.contains("range",!0)&&(response=internalResponse=makeNetworkError()),response.status!==0&&(request.method==="HEAD"||request.method==="CONNECT"||nullBodyStatus.includes(internalResponse.status))&&(internalResponse.body=null,fetchParams.controller.dump=!0),request.integrity){let processBodyError=reason=>fetchFinale(fetchParams,makeNetworkError(reason));if(request.responseTainting==="opaque"||response.body==null){processBodyError(response.error);return}let processBody=bytes=>{if(!bytesMatch(bytes,request.integrity)){processBodyError("integrity mismatch");return}response.body=safelyExtractBody(bytes)[0],fetchFinale(fetchParams,response)};fullyReadBody(response.body,processBody,processBodyError)}else fetchFinale(fetchParams,response)}catch(err){fetchParams.controller.terminate(err)}}function schemeFetch(fetchParams){if(isCancelled(fetchParams)&&fetchParams.request.redirectCount===0)return Promise.resolve(makeAppropriateNetworkError(fetchParams));let{request}=fetchParams,{protocol:scheme}=requestCurrentURL(request);switch(scheme){case"about:":return Promise.resolve(makeNetworkError("about scheme is not supported"));case"blob:":{resolveObjectURL||(resolveObjectURL=__require("node:buffer").resolveObjectURL);let blobURLEntry=requestCurrentURL(request);if(blobURLEntry.search.length!==0)return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource."));let blob=resolveObjectURL(blobURLEntry.toString());if(request.method!=="GET"||!webidl.is.Blob(blob))return Promise.resolve(makeNetworkError("invalid method"));let response=makeResponse(),fullLength=blob.size,serializedFullLength=isomorphicEncode(`${fullLength}`),type=blob.type;if(request.headersList.contains("range",!0)){response.rangeRequested=!0;let rangeHeader=request.headersList.get("range",!0),rangeValue=simpleRangeHeaderValue(rangeHeader,!0);if(rangeValue==="failure")return Promise.resolve(makeNetworkError("failed to fetch the data URL"));let{rangeStartValue:rangeStart,rangeEndValue:rangeEnd}=rangeValue;if(rangeStart===null)rangeStart=fullLength-rangeEnd,rangeEnd=rangeStart+rangeEnd-1;else{if(rangeStart>=fullLength)return Promise.resolve(makeNetworkError("Range start is greater than the blob's size."));(rangeEnd===null||rangeEnd>=fullLength)&&(rangeEnd=fullLength-1)}let slicedBlob=blob.slice(rangeStart,rangeEnd+1,type),slicedBodyWithType=extractBody(slicedBlob);response.body=slicedBodyWithType[0];let serializedSlicedLength=isomorphicEncode(`${slicedBlob.size}`),contentRange=buildContentRange(rangeStart,rangeEnd,fullLength);response.status=206,response.statusText="Partial Content",response.headersList.set("content-length",serializedSlicedLength,!0),response.headersList.set("content-type",type,!0),response.headersList.set("content-range",contentRange,!0)}else{let bodyWithType=extractBody(blob);response.statusText="OK",response.body=bodyWithType[0],response.headersList.set("content-length",serializedFullLength,!0),response.headersList.set("content-type",type,!0)}return Promise.resolve(response)}case"data:":{let currentURL=requestCurrentURL(request),dataURLStruct=dataURLProcessor(currentURL);if(dataURLStruct==="failure")return Promise.resolve(makeNetworkError("failed to fetch the data URL"));let mimeType=serializeAMimeType(dataURLStruct.mimeType);return Promise.resolve(makeResponse({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:mimeType}]],body:safelyExtractBody(dataURLStruct.body)[0]}))}case"file:":return Promise.resolve(makeNetworkError("not implemented... yet..."));case"http:":case"https:":return httpFetch(fetchParams).catch(err=>makeNetworkError(err));default:return Promise.resolve(makeNetworkError("unknown scheme"))}}function finalizeResponse(fetchParams,response){fetchParams.request.done=!0,fetchParams.processResponseDone!=null&&queueMicrotask(()=>fetchParams.processResponseDone(response))}function fetchFinale(fetchParams,response){let timingInfo=fetchParams.timingInfo,processResponseEndOfBody=()=>{let unsafeEndTime=Date.now();fetchParams.request.destination==="document"&&(fetchParams.controller.fullTimingInfo=timingInfo),fetchParams.controller.reportTimingSteps=()=>{if(!urlIsHttpHttpsScheme(fetchParams.request.url))return;timingInfo.endTime=unsafeEndTime;let cacheState=response.cacheState,bodyInfo=response.bodyInfo;response.timingAllowPassed||(timingInfo=createOpaqueTimingInfo(timingInfo),cacheState="");let responseStatus=0;if(fetchParams.request.mode!=="navigate"||!response.hasCrossOriginRedirects){responseStatus=response.status;let mimeType=extractMimeType(response.headersList);mimeType!=="failure"&&(bodyInfo.contentType=minimizeSupportedMimeType(mimeType))}fetchParams.request.initiatorType!=null&&markResourceTiming(timingInfo,fetchParams.request.url.href,fetchParams.request.initiatorType,globalThis,cacheState,bodyInfo,responseStatus)};let processResponseEndOfBodyTask=()=>{fetchParams.request.done=!0,fetchParams.processResponseEndOfBody!=null&&queueMicrotask(()=>fetchParams.processResponseEndOfBody(response)),fetchParams.request.initiatorType!=null&&fetchParams.controller.reportTimingSteps()};queueMicrotask(()=>processResponseEndOfBodyTask())};fetchParams.processResponse!=null&&queueMicrotask(()=>{fetchParams.processResponse(response),fetchParams.processResponse=null});let internalResponse=response.type==="error"?response:response.internalResponse??response;internalResponse.body==null?processResponseEndOfBody():finished2(internalResponse.body.stream,()=>{processResponseEndOfBody()})}async function httpFetch(fetchParams){let request=fetchParams.request,response=null,actualResponse=null,timingInfo=fetchParams.timingInfo;if(request.serviceWorkers,response===null){if(request.redirect==="follow"&&(request.serviceWorkers="none"),actualResponse=response=await httpNetworkOrCacheFetch(fetchParams),request.responseTainting==="cors"&&corsCheck(request,response)==="failure")return makeNetworkError("cors failure");TAOCheck(request,response)==="failure"&&(request.timingAllowFailed=!0)}return(request.responseTainting==="opaque"||response.type==="opaque")&&crossOriginResourcePolicyCheck(request.origin,request.client,request.destination,actualResponse)==="blocked"?makeNetworkError("blocked"):(redirectStatusSet.has(actualResponse.status)&&(request.redirect!=="manual"&&fetchParams.controller.connection.destroy(void 0,!1),request.redirect==="error"?response=makeNetworkError("unexpected redirect"):request.redirect==="manual"?response=actualResponse:request.redirect==="follow"?response=await httpRedirectFetch(fetchParams,response):assert(!1)),response.timingInfo=timingInfo,response)}function httpRedirectFetch(fetchParams,response){let request=fetchParams.request,actualResponse=response.internalResponse?response.internalResponse:response,locationURL;try{if(locationURL=responseLocationURL(actualResponse,requestCurrentURL(request).hash),locationURL==null)return response}catch(err){return Promise.resolve(makeNetworkError(err))}if(!urlIsHttpHttpsScheme(locationURL))return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme"));if(request.redirectCount===20)return Promise.resolve(makeNetworkError("redirect count exceeded"));if(request.redirectCount+=1,request.mode==="cors"&&(locationURL.username||locationURL.password)&&!sameOrigin(request,locationURL))return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"'));if(request.responseTainting==="cors"&&(locationURL.username||locationURL.password))return Promise.resolve(makeNetworkError('URL cannot contain credentials for request mode "cors"'));if(actualResponse.status!==303&&request.body!=null&&request.body.source==null)return Promise.resolve(makeNetworkError());if([301,302].includes(actualResponse.status)&&request.method==="POST"||actualResponse.status===303&&!GET_OR_HEAD.includes(request.method)){request.method="GET",request.body=null;for(let headerName of requestBodyHeader)request.headersList.delete(headerName)}sameOrigin(requestCurrentURL(request),locationURL)||(request.headersList.delete("authorization",!0),request.headersList.delete("proxy-authorization",!0),request.headersList.delete("cookie",!0),request.headersList.delete("host",!0)),request.body!=null&&(assert(request.body.source!=null),request.body=safelyExtractBody(request.body.source)[0]);let timingInfo=fetchParams.timingInfo;return timingInfo.redirectEndTime=timingInfo.postRedirectStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability),timingInfo.redirectStartTime===0&&(timingInfo.redirectStartTime=timingInfo.startTime),request.urlList.push(locationURL),setRequestReferrerPolicyOnRedirect(request,actualResponse),mainFetch(fetchParams,!0)}async function httpNetworkOrCacheFetch(fetchParams,isAuthenticationFetch=!1,isNewConnectionFetch=!1){let request=fetchParams.request,httpFetchParams=null,httpRequest=null,response=null,httpCache=null,revalidatingFlag=!1;request.window==="no-window"&&request.redirect==="error"?(httpFetchParams=fetchParams,httpRequest=request):(request.body?.source!=null?httpRequest=cloneRequest(request):(httpRequest=cloneRequest({...request,body:null}),httpRequest.body=request.body),httpFetchParams={...fetchParams},httpFetchParams.request=httpRequest);let includeCredentials=request.credentials==="include"||request.credentials==="same-origin"&&request.responseTainting==="basic",contentLength=httpRequest.body?httpRequest.body.length:null,contentLengthHeaderValue=null;if(httpRequest.body==null&&["POST","PUT"].includes(httpRequest.method)&&(contentLengthHeaderValue="0"),contentLength!=null&&(contentLengthHeaderValue=isomorphicEncode(`${contentLength}`)),contentLengthHeaderValue!=null&&!httpRequest.headersList.contains("content-length",!0)&&httpRequest.headersList.append("content-length",contentLengthHeaderValue,!0),contentLength!=null&&httpRequest.keepalive,webidl.is.URL(httpRequest.referrer)&&httpRequest.headersList.append("referer",isomorphicEncode(httpRequest.referrer.href),!0),appendRequestOriginHeader(httpRequest),appendFetchMetadata(httpRequest),httpRequest.headersList.contains("user-agent",!0)||httpRequest.headersList.append("user-agent",defaultUserAgent,!0),httpRequest.cache==="default"&&(httpRequest.headersList.contains("if-modified-since",!0)||httpRequest.headersList.contains("if-none-match",!0)||httpRequest.headersList.contains("if-unmodified-since",!0)||httpRequest.headersList.contains("if-match",!0)||httpRequest.headersList.contains("if-range",!0))&&(httpRequest.cache="no-store"),httpRequest.cache==="no-cache"&&!httpRequest.preventNoCacheCacheControlHeaderModification&&!httpRequest.headersList.contains("cache-control",!0)&&httpRequest.headersList.append("cache-control","max-age=0",!0),(httpRequest.cache==="no-store"||httpRequest.cache==="reload")&&(httpRequest.headersList.contains("pragma",!0)||httpRequest.headersList.append("pragma","no-cache",!0),httpRequest.headersList.contains("cache-control",!0)||httpRequest.headersList.append("cache-control","no-cache",!0)),httpRequest.headersList.contains("range",!0)&&httpRequest.headersList.append("accept-encoding","identity",!0),httpRequest.headersList.contains("accept-encoding",!0)||(urlHasHttpsScheme(requestCurrentURL(httpRequest))?httpRequest.headersList.append("accept-encoding","br, gzip, deflate, zstd",!0):httpRequest.headersList.append("accept-encoding","gzip, deflate",!0)),httpRequest.headersList.delete("host",!0),includeCredentials&&!httpRequest.headersList.contains("authorization",!0)){let authorizationValue=null;if(!(hasAuthenticationEntry(httpRequest)&&(httpRequest.useURLCredentials===void 0||!includesCredentials(requestCurrentURL(httpRequest))))){if(includesCredentials(requestCurrentURL(httpRequest))&&isAuthenticationFetch){let{username,password}=requestCurrentURL(httpRequest);authorizationValue=`Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`}}authorizationValue!==null&&httpRequest.headersList.append("Authorization",authorizationValue,!1)}if(httpCache==null&&(httpRequest.cache="no-store"),httpRequest.cache!=="no-store"&&httpRequest.cache,response==null){if(httpRequest.cache==="only-if-cached")return makeNetworkError("only if cached");let forwardResponse=await httpNetworkFetch(httpFetchParams,includeCredentials,isNewConnectionFetch);!safeMethodsSet.has(httpRequest.method)&&forwardResponse.status>=200&&forwardResponse.status<=399,revalidatingFlag&&forwardResponse.status,response==null&&(response=forwardResponse)}if(response.urlList=[...httpRequest.urlList],httpRequest.headersList.contains("range",!0)&&(response.rangeRequested=!0),response.requestIncludesCredentials=includeCredentials,response.status===401&&httpRequest.responseTainting!=="cors"&&includeCredentials&&(request.useURLCredentials!==void 0||isTraversableNavigable(request.traversableForUserPrompts))){if(request.body!=null){if(request.body.source==null)return response;request.body=safelyExtractBody(request.body.source)[0]}if(request.useURLCredentials===void 0||isAuthenticationFetch)return isCancelled(fetchParams)?makeAppropriateNetworkError(fetchParams):response;fetchParams.controller.connection.destroy(),response=await httpNetworkOrCacheFetch(fetchParams,!0)}if(response.status===407)return request.window==="no-window"?makeNetworkError():isCancelled(fetchParams)?makeAppropriateNetworkError(fetchParams):makeNetworkError("proxy authentication required");if(response.status===421&&!isNewConnectionFetch&&(request.body==null||request.body.source!=null)){if(isCancelled(fetchParams))return makeAppropriateNetworkError(fetchParams);fetchParams.controller.connection.destroy(),response=await httpNetworkOrCacheFetch(fetchParams,isAuthenticationFetch,!0)}return response}async function httpNetworkFetch(fetchParams,includeCredentials=!1,forceNewConnection=!1){assert(!fetchParams.controller.connection||fetchParams.controller.connection.destroyed),fetchParams.controller.connection={abort:null,destroyed:!1,destroy(err,abort=!0){this.destroyed||(this.destroyed=!0,abort&&this.abort?.(err??new DOMException("The operation was aborted.","AbortError")))}};let request=fetchParams.request,response=null,timingInfo=fetchParams.timingInfo;null==null&&(request.cache="no-store");let newConnection=forceNewConnection?"yes":"no";request.mode;let requestBody=null;if(request.body==null&&fetchParams.processRequestEndOfBody)queueMicrotask(()=>fetchParams.processRequestEndOfBody());else if(request.body!=null){let processBodyChunk=async function*(bytes){isCancelled(fetchParams)||(yield bytes,fetchParams.processRequestBodyChunkLength?.(bytes.byteLength))},processEndOfBody=()=>{isCancelled(fetchParams)||fetchParams.processRequestEndOfBody&&fetchParams.processRequestEndOfBody()},processBodyError=e=>{isCancelled(fetchParams)||(e.name==="AbortError"?fetchParams.controller.abort():fetchParams.controller.terminate(e))};requestBody=(async function*(){try{for await(let bytes of request.body.stream)yield*processBodyChunk(bytes);processEndOfBody()}catch(err){processBodyError(err)}})()}try{let{body,status,statusText,headersList,socket}=await dispatch({body:requestBody});if(socket)response=makeResponse({status,statusText,headersList,socket});else{let iterator=body[Symbol.asyncIterator]();fetchParams.controller.next=()=>iterator.next(),response=makeResponse({status,statusText,headersList})}}catch(err){return err.name==="AbortError"?(fetchParams.controller.connection.destroy(),makeAppropriateNetworkError(fetchParams,err)):makeNetworkError(err)}let pullAlgorithm=()=>fetchParams.controller.resume(),cancelAlgorithm=reason=>{isCancelled(fetchParams)||fetchParams.controller.abort(reason)},stream=new ReadableStream({start(controller){fetchParams.controller.controller=controller},pull:pullAlgorithm,cancel:cancelAlgorithm,type:"bytes"});response.body={stream,source:null,length:null},fetchParams.controller.resume||fetchParams.controller.on("terminated",onAborted),fetchParams.controller.resume=async()=>{for(;;){let bytes,isFailure;try{let{done,value}=await fetchParams.controller.next();if(isAborted(fetchParams))break;bytes=done?void 0:value}catch(err){fetchParams.controller.ended&&!timingInfo.encodedBodySize?bytes=void 0:(bytes=err,isFailure=!0)}if(bytes===void 0){readableStreamClose(fetchParams.controller.controller),finalizeResponse(fetchParams,response);return}if(timingInfo.decodedBodySize+=bytes?.byteLength??0,isFailure){fetchParams.controller.terminate(bytes);return}let buffer=new Uint8Array(bytes);if(buffer.byteLength&&fetchParams.controller.controller.enqueue(buffer),isErrored(stream)){fetchParams.controller.terminate();return}if(fetchParams.controller.controller.desiredSize<=0)return}};function onAborted(reason){isAborted(fetchParams)?(response.aborted=!0,isReadable(stream)&&fetchParams.controller.controller.error(fetchParams.controller.serializedAbortReason)):isReadable(stream)&&fetchParams.controller.controller.error(new TypeError("terminated",{cause:isErrorLike(reason)?reason:void 0})),fetchParams.controller.connection.destroy()}return response;function dispatch({body}){let url=requestCurrentURL(request),agent=fetchParams.controller.dispatcher,path2=url.pathname+url.search,hasTrailingQuestionMark=url.search.length===0&&url.href[url.href.length-url.hash.length-1]==="?";return dispatchWithProtocolPreference(body);function dispatchWithProtocolPreference(body2,allowH2){return new Promise((resolve2,reject)=>agent.dispatch({path:hasTrailingQuestionMark?`${path2}?`:path2,origin:url.origin,method:request.method,body:agent.isMockActive?request.body&&(request.body.source||request.body.stream):body2,__mockAgentBodyForDispatch:body2,headers:request.headersList.entries,maxRedirections:0,upgrade:request.mode==="websocket"?"websocket":void 0,...allowH2===!1?{allowH2}:null},{body:null,abort:null,onRequestStart(controller){let{connection}=fetchParams.controller;timingInfo.finalConnectionTimingInfo=clampAndCoarsenConnectionTimingInfo(void 0,timingInfo.postRedirectStartTime,fetchParams.crossOriginIsolatedCapability);let abort=reason=>controller.abort(reason);connection.destroyed?abort(new DOMException("The operation was aborted.","AbortError")):(fetchParams.controller.on("terminated",abort),this.abort=connection.abort=abort),timingInfo.finalNetworkRequestStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)},onResponseStarted(){timingInfo.finalNetworkResponseStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)},onResponseStart(controller,status,headers,statusText){if(status<200)return;let rawHeaders=controller?.rawHeaders??[],headersList=new HeadersList;appendHeadersListFromResponseHeaders(headersList,headers,rawHeaders);let location=headersList.get("location",!0);this.body=new Readable({read:()=>controller.resume()});let willFollow=location&&request.redirect==="follow"&&redirectStatusSet.has(status),decoders=[];if(request.method!=="HEAD"&&request.method!=="CONNECT"&&!nullBodyStatus.includes(status)&&!willFollow){let contentEncoding=headersList.get("content-encoding",!0),codings=contentEncoding?contentEncoding.toLowerCase().split(","):[],maxContentEncodings=5;if(codings.length>maxContentEncodings){reject(new Error(`too many content-encodings in response: ${codings.length}, maximum allowed is ${maxContentEncodings}`));return}for(let i=codings.length-1;i>=0;--i){let coding=codings[i].trim();if(coding==="x-gzip"||coding==="gzip")decoders.push(zlib.createGunzip({flush:zlib.constants.Z_SYNC_FLUSH,finishFlush:zlib.constants.Z_SYNC_FLUSH}));else if(coding==="deflate")decoders.push(createInflate({flush:zlib.constants.Z_SYNC_FLUSH,finishFlush:zlib.constants.Z_SYNC_FLUSH}));else if(coding==="br")decoders.push(zlib.createBrotliDecompress({flush:zlib.constants.BROTLI_OPERATION_FLUSH,finishFlush:zlib.constants.BROTLI_OPERATION_FLUSH}));else if(coding==="zstd")decoders.push(zlib.createZstdDecompress({flush:zlib.constants.ZSTD_e_continue,finishFlush:zlib.constants.ZSTD_e_end}));else{decoders.length=0;break}}}let onError=err=>this.onResponseError(controller,err);resolve2({status,statusText,headersList,body:decoders.length?pipeline(this.body,...decoders,err=>{err&&this.onResponseError(controller,err)}).on("error",onError):this.body.on("error",onError)})},onResponseData(controller,chunk){if(fetchParams.controller.dump)return;let bytes=chunk;timingInfo.encodedBodySize+=bytes.byteLength,this.body.push(bytes)===!1&&controller.pause()},onResponseEnd(){this.abort&&fetchParams.controller.off("terminated",this.abort),fetchParams.controller.ended=!0,this.body?.push(null)},onResponseError(_controller,error){if(this.abort&&fetchParams.controller.off("terminated",this.abort),request.mode==="websocket"&&allowH2!==!1&&error?.code==="UND_ERR_INFO"&&error?.message==="HTTP/2: Extended CONNECT protocol not supported by server"){resolve2(dispatchWithProtocolPreference(body2,!1));return}this.body?.destroy(error),fetchParams.controller.terminate(error),reject(error)},onRequestUpgrade(controller,status,headers,socket){if(socket.session!=null&&status!==200||socket.session==null&&status!==101)return socket.session!=null&&controller.abort(new SocketError("bad upgrade",null)),!1;let rawHeaders=controller?.rawHeaders??[],headersList=new HeadersList;return appendHeadersListFromResponseHeaders(headersList,headers,rawHeaders),resolve2({status,statusText:STATUS_CODES[status],headersList,socket}),!0}}))}}}module.exports={fetch,Fetch,fetching,finalizeAndReportTiming}}});var require_util3=__commonJS({"node_modules/undici/lib/web/cache/util.js"(exports,module){"use strict";var assert=__require("node:assert"),{URLSerializer}=require_data_url(),{isValidHeaderName}=require_util2();function urlEquals(A,B,excludeFragment=!1){let serializedA=URLSerializer(A,excludeFragment),serializedB=URLSerializer(B,excludeFragment);return serializedA===serializedB}function getFieldValues(header){assert(header!==null);let values=[];for(let value of header.split(","))value=value.trim(),isValidHeaderName(value)&&values.push(value);return values}module.exports={urlEquals,getFieldValues}}});var require_cache3=__commonJS({"node_modules/undici/lib/web/cache/cache.js"(exports,module){"use strict";var assert=__require("node:assert"),{kConstruct}=require_symbols(),{urlEquals,getFieldValues}=require_util3(),{kEnumerableProperty,isDisturbed}=require_util(),{webidl}=require_webidl(),{cloneResponse,fromInnerResponse,getResponseState}=require_response(),{Request,fromInnerRequest,getRequestState}=require_request2(),{fetching}=require_fetch(),{urlIsHttpHttpsScheme,readAllBytes}=require_util2(),Cache=class _Cache{#relevantRequestResponseList;constructor(){arguments[0]!==kConstruct&&webidl.illegalConstructor(),webidl.util.markAsUncloneable(this),this.#relevantRequestResponseList=arguments[1]}async match(request,options={}){webidl.brandCheck(this,_Cache);let prefix="Cache.match";webidl.argumentLengthCheck(arguments,1,prefix),request=webidl.converters.RequestInfo(request),options=webidl.converters.CacheQueryOptions(options,prefix,"options");let p=this.#internalMatchAll(request,options,1);if(p.length!==0)return p[0]}async matchAll(request=void 0,options={}){webidl.brandCheck(this,_Cache);let prefix="Cache.matchAll";return request!==void 0&&(request=webidl.converters.RequestInfo(request)),options=webidl.converters.CacheQueryOptions(options,prefix,"options"),this.#internalMatchAll(request,options)}async add(request){webidl.brandCheck(this,_Cache),webidl.argumentLengthCheck(arguments,1,"Cache.add"),request=webidl.converters.RequestInfo(request);let requests=[request];return await this.addAll(requests)}async addAll(requests){webidl.brandCheck(this,_Cache);let prefix="Cache.addAll";webidl.argumentLengthCheck(arguments,1,prefix);let responsePromises=[],requestList=[];for(let request of requests){if(request===void 0)throw webidl.errors.conversionFailed({prefix,argument:"Argument 1",types:["undefined is not allowed"]});if(request=webidl.converters.RequestInfo(request),typeof request=="string")continue;let r=getRequestState(request);if(!urlIsHttpHttpsScheme(r.url)||r.method!=="GET")throw webidl.errors.exception({header:prefix,message:"Expected http/s scheme when method is not GET."})}let fetchControllers=[];for(let request of requests){let r=getRequestState(new Request(request));if(!urlIsHttpHttpsScheme(r.url))throw webidl.errors.exception({header:prefix,message:"Expected http/s scheme."});r.initiator="fetch",r.destination="subresource",requestList.push(r);let responsePromise=Promise.withResolvers();fetchControllers.push(fetching({request:r,processResponse(response){if(response.type==="error"||response.status===206||response.status<200||response.status>299)responsePromise.reject(webidl.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(response.headersList.contains("vary")){let fieldValues=getFieldValues(response.headersList.get("vary"));for(let fieldValue of fieldValues)if(fieldValue==="*"){responsePromise.reject(webidl.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let controller of fetchControllers)controller.abort();return}}},processResponseEndOfBody(response){if(response.aborted){responsePromise.reject(new DOMException("aborted","AbortError"));return}responsePromise.resolve(response)}})),responsePromises.push(responsePromise.promise)}let responses=await Promise.all(responsePromises),operations=[],index3=0;for(let response of responses){let operation={type:"put",request:requestList[index3],response};operations.push(operation),index3++}let cacheJobPromise=Promise.withResolvers(),errorData=null;try{this.#batchCacheOperations(operations)}catch(e){errorData=e}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve(void 0):cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async put(request,response){webidl.brandCheck(this,_Cache);let prefix="Cache.put";webidl.argumentLengthCheck(arguments,2,prefix),request=webidl.converters.RequestInfo(request),response=webidl.converters.Response(response,prefix,"response");let innerRequest=null;if(webidl.is.Request(request)?innerRequest=getRequestState(request):innerRequest=getRequestState(new Request(request)),!urlIsHttpHttpsScheme(innerRequest.url)||innerRequest.method!=="GET")throw webidl.errors.exception({header:prefix,message:"Expected an http/s scheme when method is not GET"});let innerResponse=getResponseState(response);if(innerResponse.status===206)throw webidl.errors.exception({header:prefix,message:"Got 206 status"});if(innerResponse.headersList.contains("vary")){let fieldValues=getFieldValues(innerResponse.headersList.get("vary"));for(let fieldValue of fieldValues)if(fieldValue==="*")throw webidl.errors.exception({header:prefix,message:"Got * vary field value"})}if(innerResponse.body&&(isDisturbed(innerResponse.body.stream)||innerResponse.body.stream.locked))throw webidl.errors.exception({header:prefix,message:"Response body is locked or disturbed"});let clonedResponse=cloneResponse(innerResponse),bodyReadPromise=Promise.withResolvers();if(innerResponse.body!=null){let reader=innerResponse.body.stream.getReader();readAllBytes(reader,bodyReadPromise.resolve,bodyReadPromise.reject)}else bodyReadPromise.resolve(void 0);let operations=[],operation={type:"put",request:innerRequest,response:clonedResponse};operations.push(operation);let bytes=await bodyReadPromise.promise;clonedResponse.body!=null&&(clonedResponse.body.source=bytes);let cacheJobPromise=Promise.withResolvers(),errorData=null;try{this.#batchCacheOperations(operations)}catch(e){errorData=e}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve():cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async delete(request,options={}){webidl.brandCheck(this,_Cache);let prefix="Cache.delete";webidl.argumentLengthCheck(arguments,1,prefix),request=webidl.converters.RequestInfo(request),options=webidl.converters.CacheQueryOptions(options,prefix,"options");let r=null;if(webidl.is.Request(request)){if(r=getRequestState(request),r.method!=="GET"&&!options.ignoreMethod)return!1}else assert(typeof request=="string"),r=getRequestState(new Request(request));let operations=[],operation={type:"delete",request:r,options};operations.push(operation);let cacheJobPromise=Promise.withResolvers(),errorData=null,requestResponses;try{requestResponses=this.#batchCacheOperations(operations)}catch(e){errorData=e}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve(!!requestResponses?.length):cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async keys(request=void 0,options={}){webidl.brandCheck(this,_Cache);let prefix="Cache.keys";request!==void 0&&(request=webidl.converters.RequestInfo(request)),options=webidl.converters.CacheQueryOptions(options,prefix,"options");let r=null;if(request!==void 0)if(webidl.is.Request(request)){if(r=getRequestState(request),r.method!=="GET"&&!options.ignoreMethod)return[]}else typeof request=="string"&&(r=getRequestState(new Request(request)));let promise=Promise.withResolvers(),requests=[];if(request===void 0)for(let requestResponse of this.#relevantRequestResponseList)requests.push(requestResponse[0]);else{let requestResponses=this.#queryCache(r,options);for(let requestResponse of requestResponses)requests.push(requestResponse[0])}return queueMicrotask(()=>{let requestList=[];for(let request2 of requests){let requestObject=fromInnerRequest(request2,void 0,new AbortController().signal,"immutable");requestList.push(requestObject)}promise.resolve(Object.freeze(requestList))}),promise.promise}#batchCacheOperations(operations){let cache=this.#relevantRequestResponseList,backupCache=[...cache],addedItems=[],resultList=[];try{for(let operation of operations){if(operation.type!=="delete"&&operation.type!=="put")throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(operation.type==="delete"&&operation.response!=null)throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#queryCache(operation.request,operation.options,addedItems).length)throw new DOMException("???","InvalidStateError");let requestResponses;if(operation.type==="delete"){if(requestResponses=this.#queryCache(operation.request,operation.options),requestResponses.length===0)return[];for(let requestResponse of requestResponses){let idx=cache.indexOf(requestResponse);assert(idx!==-1),cache.splice(idx,1)}}else if(operation.type==="put"){if(operation.response==null)throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let r=operation.request;if(!urlIsHttpHttpsScheme(r.url))throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(r.method!=="GET")throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(operation.options!=null)throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});requestResponses=this.#queryCache(operation.request);for(let requestResponse of requestResponses){let idx=cache.indexOf(requestResponse);assert(idx!==-1),cache.splice(idx,1)}cache.push([operation.request,operation.response]),addedItems.push([operation.request,operation.response])}resultList.push([operation.request,operation.response])}return resultList}catch(e){throw this.#relevantRequestResponseList.length=0,this.#relevantRequestResponseList=backupCache,e}}#queryCache(requestQuery,options,targetStorage){let resultList=[],storage=targetStorage??this.#relevantRequestResponseList;for(let requestResponse of storage){let[cachedRequest,cachedResponse]=requestResponse;this.#requestMatchesCachedItem(requestQuery,cachedRequest,cachedResponse,options)&&resultList.push(requestResponse)}return resultList}#requestMatchesCachedItem(requestQuery,request,response=null,options){let queryURL=new URL(requestQuery.url),cachedURL=new URL(request.url);if(options?.ignoreSearch&&(cachedURL.search="",queryURL.search=""),!urlEquals(queryURL,cachedURL,!0))return!1;if(response==null||options?.ignoreVary||!response.headersList.contains("vary"))return!0;let fieldValues=getFieldValues(response.headersList.get("vary"));for(let fieldValue of fieldValues){if(fieldValue==="*")return!1;let requestValue=request.headersList.get(fieldValue),queryValue=requestQuery.headersList.get(fieldValue);if(requestValue!==queryValue)return!1}return!0}#internalMatchAll(request,options,maxResponses=1/0){let r=null;if(request!==void 0)if(webidl.is.Request(request)){if(r=getRequestState(request),r.method!=="GET"&&!options.ignoreMethod)return[]}else typeof request=="string"&&(r=getRequestState(new Request(request)));let responses=[];if(request===void 0)for(let requestResponse of this.#relevantRequestResponseList)responses.push(requestResponse[1]);else{let requestResponses=this.#queryCache(r,options);for(let requestResponse of requestResponses)responses.push(requestResponse[1])}let responseList=[];for(let response of responses){let responseObject=fromInnerResponse(cloneResponse(response),"immutable");if(responseList.push(responseObject),responseList.length>=maxResponses)break}return Object.freeze(responseList)}};Object.defineProperties(Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:kEnumerableProperty,matchAll:kEnumerableProperty,add:kEnumerableProperty,addAll:kEnumerableProperty,put:kEnumerableProperty,delete:kEnumerableProperty,keys:kEnumerableProperty});var cacheQueryOptionConverters=[{key:"ignoreSearch",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:webidl.converters.boolean,defaultValue:()=>!1}];webidl.converters.CacheQueryOptions=webidl.dictionaryConverter(cacheQueryOptionConverters);webidl.converters.MultiCacheQueryOptions=webidl.dictionaryConverter([...cacheQueryOptionConverters,{key:"cacheName",converter:webidl.converters.DOMString}]);webidl.converters.Response=webidl.interfaceConverter(webidl.is.Response,"Response");webidl.converters["sequence<RequestInfo>"]=webidl.sequenceConverter(webidl.converters.RequestInfo);module.exports={Cache}}});var require_cachestorage=__commonJS({"node_modules/undici/lib/web/cache/cachestorage.js"(exports,module){"use strict";var{Cache}=require_cache3(),{webidl}=require_webidl(),{kEnumerableProperty}=require_util(),{kConstruct}=require_symbols(),CacheStorage=class _CacheStorage{#caches=new Map;constructor(){arguments[0]!==kConstruct&&webidl.illegalConstructor(),webidl.util.markAsUncloneable(this)}async match(request,options={}){if(webidl.brandCheck(this,_CacheStorage),webidl.argumentLengthCheck(arguments,1,"CacheStorage.match"),request=webidl.converters.RequestInfo(request),options=webidl.converters.MultiCacheQueryOptions(options),options.cacheName!=null){if(this.#caches.has(options.cacheName)){let cacheList=this.#caches.get(options.cacheName);return await new Cache(kConstruct,cacheList).match(request,options)}}else for(let cacheList of this.#caches.values()){let response=await new Cache(kConstruct,cacheList).match(request,options);if(response!==void 0)return response}}async has(cacheName){webidl.brandCheck(this,_CacheStorage);let prefix="CacheStorage.has";return webidl.argumentLengthCheck(arguments,1,prefix),cacheName=webidl.converters.DOMString(cacheName,prefix,"cacheName"),this.#caches.has(cacheName)}async open(cacheName){webidl.brandCheck(this,_CacheStorage);let prefix="CacheStorage.open";if(webidl.argumentLengthCheck(arguments,1,prefix),cacheName=webidl.converters.DOMString(cacheName,prefix,"cacheName"),this.#caches.has(cacheName)){let cache2=this.#caches.get(cacheName);return new Cache(kConstruct,cache2)}let cache=[];return this.#caches.set(cacheName,cache),new Cache(kConstruct,cache)}async delete(cacheName){webidl.brandCheck(this,_CacheStorage);let prefix="CacheStorage.delete";return webidl.argumentLengthCheck(arguments,1,prefix),cacheName=webidl.converters.DOMString(cacheName,prefix,"cacheName"),this.#caches.delete(cacheName)}async keys(){return webidl.brandCheck(this,_CacheStorage),[...this.#caches.keys()]}};Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:kEnumerableProperty,has:kEnumerableProperty,open:kEnumerableProperty,delete:kEnumerableProperty,keys:kEnumerableProperty});module.exports={CacheStorage}}});var require_constants4=__commonJS({"node_modules/undici/lib/web/cookies/constants.js"(exports,module){"use strict";module.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}}});var require_util4=__commonJS({"node_modules/undici/lib/web/cookies/util.js"(exports,module){"use strict";function isCTLExcludingHtab(value){for(let i=0;i<value.length;++i){let code=value.charCodeAt(i);if(code>=0&&code<=8||code>=10&&code<=31||code===127)return!0}return!1}function validateCookieName(name){for(let i=0;i<name.length;++i){let code=name.charCodeAt(i);if(code<33||code>126||code===34||code===40||code===41||code===60||code===62||code===64||code===44||code===59||code===58||code===92||code===47||code===91||code===93||code===63||code===61||code===123||code===125)throw new Error("Invalid cookie name")}}function validateCookieValue(value){let len=value.length,i=0;if(value[0]==='"'){if(len===1||value[len-1]!=='"')throw new Error("Invalid cookie value");--len,++i}for(;i<len;){let code=value.charCodeAt(i++);if(code<33||code>126||code===34||code===44||code===59||code===92)throw new Error("Invalid cookie value")}}function validateCookiePath(path2){for(let i=0;i<path2.length;++i){let code=path2.charCodeAt(i);if(code<32||code>126||code===59)throw new Error("Invalid cookie path")}}function isLetterOrDigit(code){return code>=48&&code<=57||code>=65&&code<=90||code>=97&&code<=122}function validateCookieDomain(domain){if(domain===" ")return;if(domain.length>255)throw new Error("Invalid cookie domain");let labelLength=0;for(let i=0;i<domain.length;++i){let code=domain.charCodeAt(i);if(code===46){if(labelLength===0)throw new Error("Invalid cookie domain");if(domain.charCodeAt(i-1)===45)throw new Error("Invalid cookie domain");labelLength=0;continue}if(labelLength===0&&!isLetterOrDigit(code))throw new Error("Invalid cookie domain");if(!isLetterOrDigit(code)&&code!==45)throw new Error("Invalid cookie domain");if(++labelLength>63)throw new Error("Invalid cookie domain")}if(labelLength===0||domain.charCodeAt(domain.length-1)===45)throw new Error("Invalid cookie domain")}var IMFDays=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],IMFMonths=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],IMFPaddedNumbers=Array(61).fill(0).map((_,i)=>i.toString().padStart(2,"0"));function toIMFDate(date){return typeof date=="number"&&(date=new Date(date)),`${IMFDays[date.getUTCDay()]}, ${IMFPaddedNumbers[date.getUTCDate()]} ${IMFMonths[date.getUTCMonth()]} ${date.getUTCFullYear()} ${IMFPaddedNumbers[date.getUTCHours()]}:${IMFPaddedNumbers[date.getUTCMinutes()]}:${IMFPaddedNumbers[date.getUTCSeconds()]} GMT`}function validateCookieMaxAge(maxAge){if(maxAge<0)throw new Error("Invalid cookie max-age")}function stringify(cookie){if(cookie.name.length===0)return null;validateCookieName(cookie.name),validateCookieValue(cookie.value);let out=[`${cookie.name}=${cookie.value}`];cookie.name.startsWith("__Secure-")&&(cookie.secure=!0),cookie.name.startsWith("__Host-")&&(cookie.secure=!0,cookie.domain=null,cookie.path="/"),cookie.secure&&out.push("Secure"),cookie.httpOnly&&out.push("HttpOnly"),typeof cookie.maxAge=="number"&&(validateCookieMaxAge(cookie.maxAge),out.push(`Max-Age=${cookie.maxAge}`)),cookie.domain&&(validateCookieDomain(cookie.domain),out.push(`Domain=${cookie.domain}`)),cookie.path&&(validateCookiePath(cookie.path),out.push(`Path=${cookie.path}`)),cookie.expires&&cookie.expires.toString()!=="Invalid Date"&&out.push(`Expires=${toIMFDate(cookie.expires)}`),cookie.sameSite&&out.push(`SameSite=${cookie.sameSite}`);for(let part of cookie.unparsed){if(!part.includes("="))throw new Error("Invalid unparsed");let[key,...value]=part.split("="),trimmedKey=key.trim(),joinedValue=value.join("=");validateCookieName(trimmedKey),validateCookieValue(joinedValue),out.push(`${trimmedKey}=${joinedValue}`)}return out.join("; ")}module.exports={isCTLExcludingHtab,validateCookieName,validateCookiePath,validateCookieValue,toIMFDate,stringify}}});var require_parse=__commonJS({"node_modules/undici/lib/web/cookies/parse.js"(exports,module){"use strict";var{collectASequenceOfCodePointsFast}=require_infra(),{maxNameValuePairSize,maxAttributeValueSize}=require_constants4(),{isCTLExcludingHtab}=require_util4(),assert=__require("node:assert");function parseSetCookie(header){if(isCTLExcludingHtab(header))return null;let nameValuePair="",unparsedAttributes="",name="",value="";if(header.includes(";")){let position={position:0};nameValuePair=collectASequenceOfCodePointsFast(";",header,position),unparsedAttributes=header.slice(position.position)}else nameValuePair=header;if(!nameValuePair.includes("="))value=nameValuePair;else{let position={position:0};name=collectASequenceOfCodePointsFast("=",nameValuePair,position),value=nameValuePair.slice(position.position+1)}return name=name.trim(),value=value.trim(),name.length+value.length>maxNameValuePairSize?null:{name,value,...parseUnparsedAttributes(unparsedAttributes)}}function parseUnparsedAttributes(unparsedAttributes,cookieAttributeList={}){for(;;){if(unparsedAttributes.length===0)return cookieAttributeList;assert(unparsedAttributes[0]===";"),unparsedAttributes=unparsedAttributes.slice(1);let cookieAv="";unparsedAttributes.includes(";")?(cookieAv=collectASequenceOfCodePointsFast(";",unparsedAttributes,{position:0}),unparsedAttributes=unparsedAttributes.slice(cookieAv.length)):(cookieAv=unparsedAttributes,unparsedAttributes="");let attributeName="",attributeValue="";if(cookieAv.includes("=")){let position={position:0};attributeName=collectASequenceOfCodePointsFast("=",cookieAv,position),attributeValue=cookieAv.slice(position.position+1)}else attributeName=cookieAv;if(attributeName=attributeName.trim(),attributeValue=attributeValue.trim(),attributeValue.length>maxAttributeValueSize)continue;let attributeNameLowercase=attributeName.toLowerCase();if(attributeNameLowercase==="expires"){let expiryTime=new Date(attributeValue);Number.isNaN(expiryTime.getTime())||(cookieAttributeList.expires=expiryTime)}else if(attributeNameLowercase==="max-age"){let charCode=attributeValue.charCodeAt(0),startsWithDigit=charCode>=48&&charCode<=57,startsWithSignedDigit=attributeValue[0]==="-"&&attributeValue.length>1;if(!startsWithDigit&&!startsWithSignedDigit||/[^\d]/.test(attributeValue.slice(1)))continue;let deltaSeconds=Number(attributeValue);cookieAttributeList.maxAge=deltaSeconds}else if(attributeNameLowercase==="domain"){let cookieDomain=attributeValue;cookieDomain[0]==="."&&(cookieDomain=cookieDomain.slice(1)),cookieDomain=cookieDomain.toLowerCase(),cookieAttributeList.domain=cookieDomain}else if(attributeNameLowercase==="path"){let cookiePath="";attributeValue.length===0||attributeValue[0]!=="/"?cookiePath="/":cookiePath=attributeValue,cookieAttributeList.path=cookiePath}else if(attributeNameLowercase==="secure")cookieAttributeList.secure=!0;else if(attributeNameLowercase==="httponly")cookieAttributeList.httpOnly=!0;else if(attributeNameLowercase==="samesite"){let attributeValueLowercase=attributeValue.toLowerCase();attributeValueLowercase==="none"?cookieAttributeList.sameSite="None":attributeValueLowercase==="strict"?cookieAttributeList.sameSite="Strict":attributeValueLowercase==="lax"&&(cookieAttributeList.sameSite="Lax")}else cookieAttributeList.unparsed??=[],cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)}}module.exports={parseSetCookie,parseUnparsedAttributes}}});var require_cookies=__commonJS({"node_modules/undici/lib/web/cookies/index.js"(exports,module){"use strict";var{parseSetCookie}=require_parse(),{stringify}=require_util4(),{webidl}=require_webidl(),{Headers}=require_headers(),brandChecks=webidl.brandCheckMultiple([Headers,globalThis.Headers].filter(Boolean));function getCookies(headers){webidl.argumentLengthCheck(arguments,1,"getCookies"),brandChecks(headers);let cookie=headers.get("cookie"),out={};if(!cookie)return out;for(let piece of cookie.split(";")){let[name,...value]=piece.split("=");out[name.trim()]=value.join("=")}return out}function deleteCookie(headers,name,attributes){brandChecks(headers);let prefix="deleteCookie";webidl.argumentLengthCheck(arguments,2,prefix),name=webidl.converters.DOMString(name,prefix,"name"),attributes=webidl.converters.DeleteCookieAttributes(attributes),setCookie(headers,{name,value:"",expires:new Date(0),...attributes})}function getSetCookies(headers){webidl.argumentLengthCheck(arguments,1,"getSetCookies"),brandChecks(headers);let cookies=headers.getSetCookie();return cookies?cookies.map(pair=>parseSetCookie(pair)):[]}function parseCookie(cookie){return cookie=webidl.converters.DOMString(cookie),parseSetCookie(cookie)}function setCookie(headers,cookie){webidl.argumentLengthCheck(arguments,2,"setCookie"),brandChecks(headers),cookie=webidl.converters.Cookie(cookie);let str2=stringify(cookie);str2&&headers.append("set-cookie",str2,!0)}webidl.converters.DeleteCookieAttributes=webidl.dictionaryConverter([{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"path",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"domain",defaultValue:()=>null}]);webidl.converters.Cookie=webidl.dictionaryConverter([{converter:webidl.converters.DOMString,key:"name"},{converter:webidl.converters.DOMString,key:"value"},{converter:webidl.nullableConverter(value=>typeof value=="number"?webidl.converters["unsigned long long"](value):new Date(value)),key:"expires",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"path",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.boolean),key:"secure",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:webidl.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:webidl.sequenceConverter(webidl.converters.DOMString),key:"unparsed",defaultValue:()=>[]}]);module.exports={getCookies,deleteCookie,getSetCookies,setCookie,parseCookie}}});var require_events=__commonJS({"node_modules/undici/lib/web/websocket/events.js"(exports,module){"use strict";var{webidl}=require_webidl(),{kEnumerableProperty}=require_util(),{kConstruct}=require_symbols(),MessageEvent=class _MessageEvent extends Event{#eventInit;constructor(type,eventInitDict={}){if(type===kConstruct){super(arguments[1],arguments[2]),webidl.util.markAsUncloneable(this);return}let prefix="MessageEvent constructor";webidl.argumentLengthCheck(arguments,1,prefix),type=webidl.converters.DOMString(type,prefix,"type"),eventInitDict=webidl.converters.MessageEventInit(eventInitDict,prefix,"eventInitDict"),super(type,eventInitDict),this.#eventInit=eventInitDict,webidl.util.markAsUncloneable(this)}get data(){return webidl.brandCheck(this,_MessageEvent),this.#eventInit.data}get origin(){return webidl.brandCheck(this,_MessageEvent),this.#eventInit.origin}get lastEventId(){return webidl.brandCheck(this,_MessageEvent),this.#eventInit.lastEventId}get source(){return webidl.brandCheck(this,_MessageEvent),this.#eventInit.source}get ports(){return webidl.brandCheck(this,_MessageEvent),Object.isFrozen(this.#eventInit.ports)||Object.freeze(this.#eventInit.ports),this.#eventInit.ports}initMessageEvent(type,bubbles=!1,cancelable=!1,data=null,origin="",lastEventId="",source=null,ports=[]){return webidl.brandCheck(this,_MessageEvent),webidl.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new _MessageEvent(type,{bubbles,cancelable,data,origin,lastEventId,source,ports})}static createFastMessageEvent(type,init){let messageEvent=new _MessageEvent(kConstruct,type,init);return messageEvent.#eventInit=init,messageEvent.#eventInit.data??=null,messageEvent.#eventInit.origin??="",messageEvent.#eventInit.lastEventId??="",messageEvent.#eventInit.source??=null,messageEvent.#eventInit.ports??=[],messageEvent}},{createFastMessageEvent}=MessageEvent;delete MessageEvent.createFastMessageEvent;var CloseEvent=class _CloseEvent extends Event{#eventInit;constructor(type,eventInitDict={}){let prefix="CloseEvent constructor";webidl.argumentLengthCheck(arguments,1,prefix),type=webidl.converters.DOMString(type,prefix,"type"),eventInitDict=webidl.converters.CloseEventInit(eventInitDict),super(type,eventInitDict),this.#eventInit=eventInitDict,webidl.util.markAsUncloneable(this)}get wasClean(){return webidl.brandCheck(this,_CloseEvent),this.#eventInit.wasClean}get code(){return webidl.brandCheck(this,_CloseEvent),this.#eventInit.code}get reason(){return webidl.brandCheck(this,_CloseEvent),this.#eventInit.reason}},ErrorEvent=class _ErrorEvent extends Event{#eventInit;constructor(type,eventInitDict){let prefix="ErrorEvent constructor";webidl.argumentLengthCheck(arguments,1,prefix),super(type,eventInitDict),webidl.util.markAsUncloneable(this),type=webidl.converters.DOMString(type,prefix,"type"),eventInitDict=webidl.converters.ErrorEventInit(eventInitDict??{}),this.#eventInit=eventInitDict}get message(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.message}get filename(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.filename}get lineno(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.lineno}get colno(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.colno}get error(){return webidl.brandCheck(this,_ErrorEvent),this.#eventInit.error}};Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:kEnumerableProperty,origin:kEnumerableProperty,lastEventId:kEnumerableProperty,source:kEnumerableProperty,ports:kEnumerableProperty,initMessageEvent:kEnumerableProperty});Object.defineProperties(CloseEvent.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:kEnumerableProperty,code:kEnumerableProperty,wasClean:kEnumerableProperty});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:kEnumerableProperty,filename:kEnumerableProperty,lineno:kEnumerableProperty,colno:kEnumerableProperty,error:kEnumerableProperty});webidl.converters.MessagePort=webidl.interfaceConverter(webidl.is.MessagePort,"MessagePort");webidl.converters["sequence<MessagePort>"]=webidl.sequenceConverter(webidl.converters.MessagePort);var eventInit=[{key:"bubbles",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:webidl.converters.boolean,defaultValue:()=>!1}];webidl.converters.MessageEventInit=webidl.dictionaryConverter([...eventInit,{key:"data",converter:webidl.converters.any,defaultValue:()=>null},{key:"origin",converter:webidl.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:webidl.converters.DOMString,defaultValue:()=>""},{key:"source",converter:webidl.nullableConverter(webidl.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:webidl.converters["sequence<MessagePort>"],defaultValue:()=>[]}]);webidl.converters.CloseEventInit=webidl.dictionaryConverter([...eventInit,{key:"wasClean",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"code",converter:webidl.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:webidl.converters.USVString,defaultValue:()=>""}]);webidl.converters.ErrorEventInit=webidl.dictionaryConverter([...eventInit,{key:"message",converter:webidl.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:webidl.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:webidl.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:webidl.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:webidl.converters.any}]);module.exports={MessageEvent,CloseEvent,ErrorEvent,createFastMessageEvent}}});var require_constants5=__commonJS({"node_modules/undici/lib/web/websocket/constants.js"(exports,module){"use strict";var uid="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",staticPropertyDescriptors={enumerable:!0,writable:!1,configurable:!1},states={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},sentCloseFrameState={SENT:1,RECEIVED:2},opcodes={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},maxUnsigned16Bit=65535,parserStates={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},emptyBuffer=Buffer.allocUnsafe(0),sendHints={text:1,typedArray:2,arrayBuffer:3,blob:4};module.exports={uid,sentCloseFrameState,staticPropertyDescriptors,states,opcodes,maxUnsigned16Bit,parserStates,emptyBuffer,sendHints}}});var require_util5=__commonJS({"node_modules/undici/lib/web/websocket/util.js"(exports,module){"use strict";var{states,opcodes}=require_constants5(),{isUtf8}=__require("node:buffer"),{removeHTTPWhitespace}=require_data_url(),{collectASequenceOfCodePointsFast}=require_infra();function isConnecting(readyState){return readyState===states.CONNECTING}function isEstablished(readyState){return readyState===states.OPEN}function isClosing(readyState){return readyState===states.CLOSING}function isClosed(readyState){return readyState===states.CLOSED}function fireEvent(e,target,eventFactory=(type,init)=>new Event(type,init),eventInitDict={}){let event=eventFactory(e,eventInitDict);target.dispatchEvent(event)}function websocketMessageReceived(handler,type,data){handler.onMessage(type,data)}function toArrayBuffer(buffer){return buffer.byteLength===buffer.buffer.byteLength?buffer.buffer:new Uint8Array(buffer).buffer}function isValidSubprotocol(protocol){if(protocol.length===0)return!1;for(let i=0;i<protocol.length;++i){let code=protocol.charCodeAt(i);if(code<33||code>126||code===34||code===40||code===41||code===44||code===47||code===58||code===59||code===60||code===61||code===62||code===63||code===64||code===91||code===92||code===93||code===123||code===125)return!1}return!0}function isValidStatusCode(code){return code>=1e3&&code<1015?code!==1004&&code!==1005&&code!==1006:code>=3e3&&code<=4999}function isControlFrame(opcode){return opcode===opcodes.CLOSE||opcode===opcodes.PING||opcode===opcodes.PONG}function isContinuationFrame(opcode){return opcode===opcodes.CONTINUATION}function isTextBinaryFrame(opcode){return opcode===opcodes.TEXT||opcode===opcodes.BINARY}function isValidOpcode(opcode){return isTextBinaryFrame(opcode)||isContinuationFrame(opcode)||isControlFrame(opcode)}function parseExtensions(extensions){let position={position:0},extensionList=new Map;for(;position.position<extensions.length;){let pair=collectASequenceOfCodePointsFast(";",extensions,position),[name,value=""]=pair.split("=",2);extensionList.set(removeHTTPWhitespace(name,!0,!1),removeHTTPWhitespace(value,!1,!0)),position.position++}return extensionList}function isValidClientWindowBits(value){if(value.length===0)return!1;for(let i=0;i<value.length;i++){let byte=value.charCodeAt(i);if(byte<48||byte>57)return!1}let num=Number.parseInt(value,10);return num>=8&&num<=15}function getURLRecord(url,baseURL){let urlRecord;try{urlRecord=new URL(url,baseURL)}catch(e){throw new DOMException(e,"SyntaxError")}if(urlRecord.protocol==="http:"?urlRecord.protocol="ws:":urlRecord.protocol==="https:"&&(urlRecord.protocol="wss:"),urlRecord.protocol!=="ws:"&&urlRecord.protocol!=="wss:")throw new DOMException("expected a ws: or wss: url","SyntaxError");if(urlRecord.hash.length||urlRecord.href.endsWith("#"))throw new DOMException("hash","SyntaxError");return urlRecord}function validateCloseCodeAndReason(code,reason){if(code!==null&&code!==1e3&&(code<3e3||code>4999))throw new DOMException("invalid code","InvalidAccessError");if(reason!==null){let reasonBytesLength=Buffer.byteLength(reason);if(reasonBytesLength>123)throw new DOMException(`Reason must be less than 123 bytes; received ${reasonBytesLength}`,"SyntaxError")}}var utf8Decode=(()=>{if(typeof process.versions.icu=="string"){let fatalDecoder=new TextDecoder("utf-8",{fatal:!0});return fatalDecoder.decode.bind(fatalDecoder)}return function(buffer){if(isUtf8(buffer))return buffer.toString("utf-8");throw new TypeError("Invalid utf-8 received.")}})();module.exports={isConnecting,isEstablished,isClosing,isClosed,fireEvent,isValidSubprotocol,isValidStatusCode,websocketMessageReceived,utf8Decode,isControlFrame,isContinuationFrame,isTextBinaryFrame,isValidOpcode,parseExtensions,isValidClientWindowBits,toArrayBuffer,getURLRecord,validateCloseCodeAndReason}}});var require_frame=__commonJS({"node_modules/undici/lib/web/websocket/frame.js"(exports,module){"use strict";var{runtimeFeatures}=require_runtime_features(),{maxUnsigned16Bit,opcodes}=require_constants5(),BUFFER_SIZE=8*1024,buffer=null,bufIdx=BUFFER_SIZE,randomFillSync=runtimeFeatures.has("crypto")?__require("node:crypto").randomFillSync:null;function generateMask(){return bufIdx===BUFFER_SIZE&&(bufIdx=0,randomFillSync(buffer??=Buffer.allocUnsafeSlow(BUFFER_SIZE),0,BUFFER_SIZE)),[buffer[bufIdx++],buffer[bufIdx++],buffer[bufIdx++],buffer[bufIdx++]]}var WebsocketFrameSend=class{constructor(data){this.frameData=data}createFrame(opcode){let frameData=this.frameData,maskKey=generateMask(),bodyLength=frameData?.byteLength??0,payloadLength=bodyLength,offset=6;bodyLength>maxUnsigned16Bit?(offset+=8,payloadLength=127):bodyLength>125&&(offset+=2,payloadLength=126);let buffer2=Buffer.allocUnsafe(bodyLength+offset);buffer2[0]=buffer2[1]=0,buffer2[0]|=128,buffer2[0]=(buffer2[0]&240)+opcode;buffer2[offset-4]=maskKey[0],buffer2[offset-3]=maskKey[1],buffer2[offset-2]=maskKey[2],buffer2[offset-1]=maskKey[3],buffer2[1]=payloadLength,payloadLength===126?buffer2.writeUInt16BE(bodyLength,2):payloadLength===127&&(buffer2[2]=buffer2[3]=0,buffer2.writeUIntBE(bodyLength,4,6)),buffer2[1]|=128;for(let i=0;i<bodyLength;++i)buffer2[offset+i]=frameData[i]^maskKey[i&3];return buffer2}static createFastTextFrame(buffer2){let maskKey=generateMask(),bodyLength=buffer2.length;for(let i=0;i<bodyLength;++i)buffer2[i]^=maskKey[i&3];let payloadLength=bodyLength,offset=6;bodyLength>maxUnsigned16Bit?(offset+=8,payloadLength=127):bodyLength>125&&(offset+=2,payloadLength=126);let head=Buffer.allocUnsafeSlow(offset);return head[0]=128|opcodes.TEXT,head[1]=payloadLength|128,head[offset-4]=maskKey[0],head[offset-3]=maskKey[1],head[offset-2]=maskKey[2],head[offset-1]=maskKey[3],payloadLength===126?head.writeUInt16BE(bodyLength,2):payloadLength===127&&(head[2]=head[3]=0,head.writeUIntBE(bodyLength,4,6)),[head,buffer2]}};module.exports={WebsocketFrameSend,generateMask}}});var require_connection=__commonJS({"node_modules/undici/lib/web/websocket/connection.js"(exports,module){"use strict";var{uid,states,sentCloseFrameState,emptyBuffer,opcodes}=require_constants5(),{parseExtensions,isClosed,isClosing,isEstablished,isConnecting,validateCloseCodeAndReason}=require_util5(),{makeRequest}=require_request2(),{fetching}=require_fetch(),{Headers,getHeadersList}=require_headers(),{getDecodeSplit}=require_util2(),{WebsocketFrameSend}=require_frame(),assert=__require("node:assert"),{runtimeFeatures}=require_runtime_features(),crypto=runtimeFeatures.has("crypto")?__require("node:crypto"):null,warningEmitted=!1;function establishWebSocketConnection(url,protocols,client,handler,options){let requestURL=url;requestURL.protocol=url.protocol==="ws:"?"http:":"https:";let request=makeRequest({urlList:[requestURL],client,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error",useURLCredentials:!0});if(options.headers){let headersList=getHeadersList(new Headers(options.headers));request.headersList=headersList}let keyValue=crypto.randomBytes(16).toString("base64");request.headersList.append("sec-websocket-key",keyValue,!0),request.headersList.append("sec-websocket-version","13",!0);for(let protocol of protocols)request.headersList.append("sec-websocket-protocol",protocol,!0);return request.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits",!0),fetching({request,useParallelQueue:!0,dispatcher:options.dispatcher,processResponse(response){if(response.type==="error"||response.status!==101){if(response.socket?.session==null){failWebsocketConnection(handler,1002,"Received network error or non-101 status code.",response.error);return}if(response.status!==200){failWebsocketConnection(handler,1002,"Received network error or non-200 status code.",response.error);return}}if(warningEmitted===!1&&response.socket?.session!=null&&(process.emitWarning("WebSocket over HTTP2 is experimental, and subject to change.","ExperimentalWarning"),warningEmitted=!0),protocols.length!==0&&!response.headersList.get("Sec-WebSocket-Protocol")){failWebsocketConnection(handler,1002,"Server did not respond with sent protocols.");return}if(response.socket.session==null&&response.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){failWebsocketConnection(handler,1002,'Server did not set Upgrade header to "websocket".');return}if(response.socket.session==null&&response.headersList.get("Connection")?.toLowerCase()!=="upgrade"){failWebsocketConnection(handler,1002,'Server did not set Connection header to "upgrade".');return}let secWSAccept=response.headersList.get("Sec-WebSocket-Accept"),digest=crypto.hash("sha1",keyValue+uid,"base64");if(secWSAccept!==digest){failWebsocketConnection(handler,1002,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let secExtension=response.headersList.get("Sec-WebSocket-Extensions"),extensions;if(secExtension!==null&&(extensions=parseExtensions(secExtension),!extensions.has("permessage-deflate"))){failWebsocketConnection(handler,1002,"Sec-WebSocket-Extensions header does not match.");return}let secProtocol=response.headersList.get("Sec-WebSocket-Protocol");if(secProtocol!==null){let requestProtocols=getDecodeSplit("sec-websocket-protocol",request.headersList);if(requestProtocols===null||!requestProtocols.includes(secProtocol)){failWebsocketConnection(handler,1002,"Protocol was not set in the opening handshake.");return}}response.socket.on("data",handler.onSocketData),response.socket.on("close",handler.onSocketClose),response.socket.on("error",handler.onSocketError),handler.wasEverConnected=!0,handler.onConnectionEstablished(response,extensions)}})}function closeWebSocketConnection(object,code,reason,validate=!1){if(code??=null,reason??="",validate&&validateCloseCodeAndReason(code,reason),!(isClosed(object.readyState)||isClosing(object.readyState)))if(!isEstablished(object.readyState))failWebsocketConnection(object),object.readyState=states.CLOSING;else if(!object.closeState.has(sentCloseFrameState.SENT)&&!object.closeState.has(sentCloseFrameState.RECEIVED)){let frame=new WebsocketFrameSend;reason.length!==0&&code===null&&(code=1e3),assert(code===null||Number.isInteger(code)),code===null&&reason.length===0?frame.frameData=emptyBuffer:code!==null&&reason===null?(frame.frameData=Buffer.allocUnsafe(2),frame.frameData.writeUInt16BE(code,0)):code!==null&&reason!==null?(frame.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(reason)),frame.frameData.writeUInt16BE(code,0),frame.frameData.write(reason,2,"utf-8")):frame.frameData=emptyBuffer,object.socket.write(frame.createFrame(opcodes.CLOSE)),object.closeState.add(sentCloseFrameState.SENT),object.readyState=states.CLOSING}else object.readyState=states.CLOSING}function failWebsocketConnection(handler,code,reason,cause){isEstablished(handler.readyState)&&closeWebSocketConnection(handler,code,reason,!1),handler.controller.abort(),isConnecting(handler.readyState)?handler.onSocketClose():handler.socket?.destroyed===!1&&handler.socket.destroy()}module.exports={establishWebSocketConnection,failWebsocketConnection,closeWebSocketConnection}}});var require_permessage_deflate=__commonJS({"node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports,module){"use strict";var{createInflateRaw,Z_DEFAULT_WINDOWBITS}=__require("node:zlib"),{isValidClientWindowBits}=require_util5(),{MessageSizeExceededError}=require_errors(),tail=Buffer.from([0,0,255,255]),kBuffer=Symbol("kBuffer"),kLength=Symbol("kLength"),PerMessageDeflate=class{#inflate;#options={};#maxPayloadSize=0;constructor(extensions,options){this.#options.serverNoContextTakeover=extensions.has("server_no_context_takeover"),this.#options.serverMaxWindowBits=extensions.get("server_max_window_bits"),this.#maxPayloadSize=options.maxPayloadSize}decompress(chunk,fin,callback){if(!this.#inflate){let windowBits=Z_DEFAULT_WINDOWBITS;if(this.#options.serverMaxWindowBits){if(!isValidClientWindowBits(this.#options.serverMaxWindowBits)){callback(new Error("Invalid server_max_window_bits"));return}windowBits=Number.parseInt(this.#options.serverMaxWindowBits)}try{this.#inflate=createInflateRaw({windowBits})}catch(err){callback(err);return}this.#inflate[kBuffer]=[],this.#inflate[kLength]=0,this.#inflate.on("data",data=>{if(this.#inflate[kLength]+=data.length,this.#maxPayloadSize>0&&this.#inflate[kLength]>this.#maxPayloadSize){callback(new MessageSizeExceededError),this.#inflate.removeAllListeners(),this.#inflate.destroy(),this.#inflate=null;return}this.#inflate[kBuffer].push(data)}),this.#inflate.on("error",err=>{this.#inflate=null,callback(err)})}this.#inflate.write(chunk),fin&&this.#inflate.write(tail),this.#inflate.flush(()=>{if(!this.#inflate)return;let full=Buffer.concat(this.#inflate[kBuffer],this.#inflate[kLength]);this.#inflate[kBuffer].length=0,this.#inflate[kLength]=0,callback(null,full)})}};module.exports={PerMessageDeflate}}});var require_receiver=__commonJS({"node_modules/undici/lib/web/websocket/receiver.js"(exports,module){"use strict";var{Writable}=__require("node:stream"),assert=__require("node:assert"),{parserStates,opcodes,states,emptyBuffer,sentCloseFrameState}=require_constants5(),{isValidStatusCode,isValidOpcode,websocketMessageReceived,utf8Decode,isControlFrame,isTextBinaryFrame,isContinuationFrame}=require_util5(),{failWebsocketConnection}=require_connection(),{WebsocketFrameSend}=require_frame(),{PerMessageDeflate}=require_permessage_deflate(),{MessageSizeExceededError}=require_errors(),ByteParser=class extends Writable{#buffers=[];#fragmentsBytes=0;#byteOffset=0;#loop=!1;#state=parserStates.INFO;#info={};#fragments=[];#extensions;#handler;#maxFragments;#maxPayloadSize;constructor(handler,extensions,options={}){super(),this.#handler=handler,this.#extensions=extensions??new Map,this.#maxFragments=options.maxFragments??0,this.#maxPayloadSize=options.maxPayloadSize??0,this.#extensions.has("permessage-deflate")&&this.#extensions.set("permessage-deflate",new PerMessageDeflate(extensions,options))}_write(chunk,_,callback){this.#buffers.push(chunk),this.#byteOffset+=chunk.length,this.#loop=!0,this.run(callback)}#validatePayloadLength(){return this.#maxPayloadSize>0&&!isControlFrame(this.#info.opcode)&&this.#info.payloadLength+this.#fragmentsBytes>this.#maxPayloadSize?(failWebsocketConnection(this.#handler,1009,"Payload size exceeds maximum allowed size"),!1):!0}run(callback){for(;this.#loop;)if(this.#state===parserStates.INFO){if(this.#byteOffset<2)return callback();let buffer=this.consume(2),fin=(buffer[0]&128)!==0,opcode=buffer[0]&15,masked=(buffer[1]&128)===128,fragmented=!fin&&opcode!==opcodes.CONTINUATION,payloadLength=buffer[1]&127,rsv1=buffer[0]&64,rsv2=buffer[0]&32,rsv3=buffer[0]&16;if(!isValidOpcode(opcode))return failWebsocketConnection(this.#handler,1002,"Invalid opcode received"),callback();if(masked)return failWebsocketConnection(this.#handler,1002,"Frame cannot be masked"),callback();if(rsv1!==0&&!this.#extensions.has("permessage-deflate")){failWebsocketConnection(this.#handler,1002,"Expected RSV1 to be clear.");return}if(rsv2!==0||rsv3!==0){failWebsocketConnection(this.#handler,1002,"RSV1, RSV2, RSV3 must be clear");return}if(fragmented&&!isTextBinaryFrame(opcode)){failWebsocketConnection(this.#handler,1002,"Invalid frame type was fragmented.");return}if(isTextBinaryFrame(opcode)&&this.#fragments.length>0){failWebsocketConnection(this.#handler,1002,"Expected continuation frame");return}if(this.#info.fragmented&&fragmented){failWebsocketConnection(this.#handler,1002,"Fragmented frame exceeded 125 bytes.");return}if((payloadLength>125||fragmented)&&isControlFrame(opcode)){failWebsocketConnection(this.#handler,1002,"Control frame either too large or fragmented");return}if(isContinuationFrame(opcode)&&this.#fragments.length===0&&!this.#info.compressed){failWebsocketConnection(this.#handler,1002,"Unexpected continuation frame");return}if(payloadLength<=125){if(this.#info.payloadLength=payloadLength,this.#state=parserStates.READ_DATA,!this.#validatePayloadLength())return}else payloadLength===126?this.#state=parserStates.PAYLOADLENGTH_16:payloadLength===127&&(this.#state=parserStates.PAYLOADLENGTH_64);isTextBinaryFrame(opcode)&&(this.#info.binaryType=opcode,this.#info.compressed=rsv1!==0),this.#info.opcode=opcode,this.#info.masked=masked,this.#info.fin=fin,this.#info.fragmented=fragmented}else if(this.#state===parserStates.PAYLOADLENGTH_16){if(this.#byteOffset<2)return callback();let buffer=this.consume(2);if(this.#info.payloadLength=buffer.readUInt16BE(0),this.#state=parserStates.READ_DATA,!this.#validatePayloadLength())return}else if(this.#state===parserStates.PAYLOADLENGTH_64){if(this.#byteOffset<8)return callback();let buffer=this.consume(8),upper=buffer.readUInt32BE(0),lower=buffer.readUInt32BE(4);if(upper!==0||lower>2**31-1){failWebsocketConnection(this.#handler,1009,"Received payload length > 2^31 bytes.");return}if(this.#info.payloadLength=lower,this.#state=parserStates.READ_DATA,!this.#validatePayloadLength())return}else if(this.#state===parserStates.READ_DATA){if(this.#byteOffset<this.#info.payloadLength)return callback();let body=this.consume(this.#info.payloadLength);if(isControlFrame(this.#info.opcode))this.#loop=this.parseControlFrame(body),this.#state=parserStates.INFO;else if(this.#info.compressed){this.#extensions.get("permessage-deflate").decompress(body,this.#info.fin,(error,data)=>{if(error){let code=error instanceof MessageSizeExceededError?1009:1007;failWebsocketConnection(this.#handler,code,error.message);return}if(this.writeFragments(data)){if(this.#maxPayloadSize>0&&this.#fragmentsBytes>this.#maxPayloadSize){failWebsocketConnection(this.#handler,1009,new MessageSizeExceededError().message);return}if(!this.#info.fin){this.#state=parserStates.INFO,this.#loop=!0,this.run(callback);return}websocketMessageReceived(this.#handler,this.#info.binaryType,this.consumeFragments()),this.#loop=!0,this.#state=parserStates.INFO,this.run(callback)}},this.#fragmentsBytes),this.#loop=!1;break}else{if(!this.writeFragments(body))return;!this.#info.fragmented&&this.#info.fin&&websocketMessageReceived(this.#handler,this.#info.binaryType,this.consumeFragments()),this.#state=parserStates.INFO}}}consume(n){if(n>this.#byteOffset)throw new Error("Called consume() before buffers satiated.");if(n===0)return emptyBuffer;this.#byteOffset-=n;let first=this.#buffers[0];if(first.length>n)return this.#buffers[0]=first.subarray(n,first.length),first.subarray(0,n);if(first.length===n)return this.#buffers.shift();{let offset=0,buffer=Buffer.allocUnsafeSlow(n);for(;offset!==n;){let next=this.#buffers[0],length=next.length;if(length+offset===n){buffer.set(this.#buffers.shift(),offset);break}else if(length+offset>n){buffer.set(next.subarray(0,n-offset),offset),this.#buffers[0]=next.subarray(n-offset);break}else buffer.set(this.#buffers.shift(),offset),offset+=length}return buffer}}writeFragments(fragment){return this.#maxFragments>0&&this.#fragments.length===this.#maxFragments?(failWebsocketConnection(this.#handler,1008,"Too many message fragments"),!1):(this.#fragmentsBytes+=fragment.length,this.#fragments.push(fragment),!0)}consumeFragments(){let fragments=this.#fragments;if(fragments.length===1)return this.#fragmentsBytes=0,fragments.shift();let offset=0,output=Buffer.allocUnsafeSlow(this.#fragmentsBytes);for(let i=0;i<fragments.length;++i){let buffer=fragments[i];output.set(buffer,offset),offset+=buffer.length}return this.#fragments=[],this.#fragmentsBytes=0,output}parseCloseBody(data){assert(data.length!==1);let code;if(data.length>=2&&(code=data.readUInt16BE(0)),code!==void 0&&!isValidStatusCode(code))return{code:1002,reason:"Invalid status code",error:!0};let reason=data.subarray(2);reason[0]===239&&reason[1]===187&&reason[2]===191&&(reason=reason.subarray(3));try{reason=utf8Decode(reason)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code,reason,error:!1}}parseControlFrame(body){let{opcode,payloadLength}=this.#info;if(opcode===opcodes.CLOSE){if(payloadLength===1)return failWebsocketConnection(this.#handler,1002,"Received close frame with a 1-byte body."),!1;if(this.#info.closeInfo=this.parseCloseBody(body),this.#info.closeInfo.error){let{code,reason}=this.#info.closeInfo;return failWebsocketConnection(this.#handler,code,reason),!1}if(!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)){let body2=emptyBuffer;this.#info.closeInfo.code&&(body2=Buffer.allocUnsafe(2),body2.writeUInt16BE(this.#info.closeInfo.code,0));let closeFrame=new WebsocketFrameSend(body2);this.#handler.socket.write(closeFrame.createFrame(opcodes.CLOSE)),this.#handler.closeState.add(sentCloseFrameState.SENT)}return this.#handler.readyState=states.CLOSING,this.#handler.closeState.add(sentCloseFrameState.RECEIVED),!1}else if(opcode===opcodes.PING){if(!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)){let frame=new WebsocketFrameSend(body);this.#handler.socket.write(frame.createFrame(opcodes.PONG)),this.#handler.onPing(body)}}else opcode===opcodes.PONG&&this.#handler.onPong(body);return!0}get closingInfo(){return this.#info.closeInfo}};module.exports={ByteParser}}});var require_sender=__commonJS({"node_modules/undici/lib/web/websocket/sender.js"(exports,module){"use strict";var{WebsocketFrameSend}=require_frame(),{opcodes,sendHints}=require_constants5(),FixedQueue=require_fixed_queue(),SendQueue=class{#queue=new FixedQueue;#running=!1;#socket;constructor(socket){this.#socket=socket}add(item,cb,hint){if(hint!==sendHints.blob){if(this.#running){let node2={promise:null,callback:cb,frame:createFrame(item,hint)};this.#queue.push(node2)}else if(hint===sendHints.text){let{0:head,1:body}=WebsocketFrameSend.createFastTextFrame(item);this.#socket.cork(),this.#socket.write(head),this.#socket.write(body,cb),this.#socket.uncork()}else this.#socket.write(createFrame(item,hint),cb);return}let node={promise:item.arrayBuffer().then(ab=>{node.promise=null,node.frame=createFrame(ab,hint)}),callback:cb,frame:null};this.#queue.push(node),this.#running||this.#run()}async#run(){this.#running=!0;let queue=this.#queue;for(;!queue.isEmpty();){let node=queue.shift();node.promise!==null&&await node.promise,this.#socket.write(node.frame,node.callback),node.callback=node.frame=null}this.#running=!1}};function createFrame(data,hint){return new WebsocketFrameSend(toBuffer(data,hint)).createFrame(hint===sendHints.text?opcodes.TEXT:opcodes.BINARY)}function toBuffer(data,hint){switch(hint){case sendHints.text:case sendHints.typedArray:return new Uint8Array(data.buffer,data.byteOffset,data.byteLength);case sendHints.arrayBuffer:case sendHints.blob:return new Uint8Array(data)}}module.exports={SendQueue}}});var require_websocket=__commonJS({"node_modules/undici/lib/web/websocket/websocket.js"(exports,module){"use strict";var{isArrayBuffer}=__require("node:util/types"),{webidl}=require_webidl(),{URLSerializer}=require_data_url(),{environmentSettingsObject}=require_util2(),{staticPropertyDescriptors,states,sentCloseFrameState,sendHints,opcodes}=require_constants5(),{isConnecting,isEstablished,isClosing,isClosed,isValidSubprotocol,fireEvent,utf8Decode,toArrayBuffer,getURLRecord}=require_util5(),{establishWebSocketConnection,closeWebSocketConnection,failWebsocketConnection}=require_connection(),{ByteParser}=require_receiver(),{kEnumerableProperty}=require_util(),{getGlobalDispatcher}=require_global2(),{ErrorEvent,CloseEvent,createFastMessageEvent}=require_events(),{SendQueue}=require_sender(),{WebsocketFrameSend}=require_frame(),{channels}=require_diagnostics(),kRef=Symbol.for("nodejs.ref"),kUnref=Symbol.for("nodejs.unref");function getSocketAddress(socket){return typeof socket?.address=="function"?socket.address():typeof socket?.session?.socket?.address=="function"?socket.session.socket.address():null}var WebSocket=class _WebSocket extends EventTarget{#events={open:null,error:null,close:null,message:null};#bufferedAmount=0;#protocol="";#extensions="";#refed=!0;#sendQueue;#handler={onConnectionEstablished:(response,extensions)=>this.#onConnectionEstablished(response,extensions),onMessage:(opcode,data)=>this.#onMessage(opcode,data),onParserError:err=>failWebsocketConnection(this.#handler,null,err.message),onParserDrain:()=>this.#onParserDrain(),onSocketData:chunk=>{this.#parser.write(chunk)||this.#handler.socket.pause()},onSocketError:err=>{this.#handler.readyState=states.CLOSING,channels.socketError.hasSubscribers&&channels.socketError.publish(err),this.#handler.socket.destroy()},onSocketClose:()=>this.#onSocketClose(),onPing:body=>{channels.ping.hasSubscribers&&channels.ping.publish({payload:body,websocket:this})},onPong:body=>{channels.pong.hasSubscribers&&channels.pong.publish({payload:body,websocket:this})},readyState:states.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#url;#binaryType;#parser;constructor(url,protocols=[]){super(),webidl.util.markAsUncloneable(this);let prefix="WebSocket constructor";webidl.argumentLengthCheck(arguments,1,prefix);let options=webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"](protocols,prefix,"options");url=webidl.converters.USVString(url),protocols=options.protocols;let baseURL=environmentSettingsObject.settingsObject.baseUrl,urlRecord=getURLRecord(url,baseURL);if(typeof protocols=="string"&&(protocols=[protocols]),protocols.length!==new Set(protocols.map(p=>p.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(protocols.length>0&&!protocols.every(p=>isValidSubprotocol(p)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this.#url=new URL(urlRecord.href);let client=environmentSettingsObject.settingsObject;this.#handler.controller=establishWebSocketConnection(urlRecord,protocols,client,this.#handler,options),this.#handler.readyState=_WebSocket.CONNECTING,this.#binaryType="blob"}[kRef](){webidl.brandCheck(this,_WebSocket),this.#refed=!0,this.#handler.socket?.ref?.()}[kUnref](){webidl.brandCheck(this,_WebSocket),this.#refed=!1,this.#handler.socket?.unref?.()}close(code=void 0,reason=void 0){webidl.brandCheck(this,_WebSocket),code!==void 0&&(code=webidl.converters["unsigned short"](code,"WebSocket.close","code",webidl.attributes.Clamp)),reason!==void 0&&(reason=webidl.converters.USVString(reason)),code??=null,reason??="",closeWebSocketConnection(this.#handler,code,reason,!0)}send(data){webidl.brandCheck(this,_WebSocket);let prefix="WebSocket.send";if(webidl.argumentLengthCheck(arguments,1,prefix),data=webidl.converters.WebSocketSendData(data,prefix,"data"),isConnecting(this.#handler.readyState))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!isEstablished(this.#handler.readyState)||isClosing(this.#handler.readyState)))if(typeof data=="string"){let buffer=Buffer.from(data);this.#bufferedAmount+=buffer.byteLength,this.#sendQueue.add(buffer,()=>{this.#bufferedAmount-=buffer.byteLength},sendHints.text)}else isArrayBuffer(data)?(this.#bufferedAmount+=data.byteLength,this.#sendQueue.add(data,()=>{this.#bufferedAmount-=data.byteLength},sendHints.arrayBuffer)):ArrayBuffer.isView(data)?(this.#bufferedAmount+=data.byteLength,this.#sendQueue.add(data,()=>{this.#bufferedAmount-=data.byteLength},sendHints.typedArray)):webidl.is.Blob(data)&&(this.#bufferedAmount+=data.size,this.#sendQueue.add(data,()=>{this.#bufferedAmount-=data.size},sendHints.blob))}get readyState(){return webidl.brandCheck(this,_WebSocket),this.#handler.readyState}get bufferedAmount(){return webidl.brandCheck(this,_WebSocket),this.#bufferedAmount}get url(){return webidl.brandCheck(this,_WebSocket),URLSerializer(this.#url)}get extensions(){return webidl.brandCheck(this,_WebSocket),this.#extensions}get protocol(){return webidl.brandCheck(this,_WebSocket),this.#protocol}get onopen(){return webidl.brandCheck(this,_WebSocket),this.#events.open}set onopen(fn){webidl.brandCheck(this,_WebSocket),this.#events.open&&this.removeEventListener("open",this.#events.open);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("open",listener),this.#events.open=fn):this.#events.open=null}get onerror(){return webidl.brandCheck(this,_WebSocket),this.#events.error}set onerror(fn){webidl.brandCheck(this,_WebSocket),this.#events.error&&this.removeEventListener("error",this.#events.error);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("error",listener),this.#events.error=fn):this.#events.error=null}get onclose(){return webidl.brandCheck(this,_WebSocket),this.#events.close}set onclose(fn){webidl.brandCheck(this,_WebSocket),this.#events.close&&this.removeEventListener("close",this.#events.close);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("close",listener),this.#events.close=fn):this.#events.close=null}get onmessage(){return webidl.brandCheck(this,_WebSocket),this.#events.message}set onmessage(fn){webidl.brandCheck(this,_WebSocket),this.#events.message&&this.removeEventListener("message",this.#events.message);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("message",listener),this.#events.message=fn):this.#events.message=null}get binaryType(){return webidl.brandCheck(this,_WebSocket),this.#binaryType}set binaryType(type){webidl.brandCheck(this,_WebSocket),type!=="blob"&&type!=="arraybuffer"?this.#binaryType="blob":this.#binaryType=type}#onConnectionEstablished(response,parsedExtensions){this.#handler.socket=response.socket,this.#refed||this.#handler.socket.unref?.();let maxFragments=this.#handler.controller.dispatcher?.webSocketOptions?.maxFragments,maxPayloadSize=this.#handler.controller.dispatcher?.webSocketOptions?.maxPayloadSize,parser=new ByteParser(this.#handler,parsedExtensions,{maxFragments,maxPayloadSize});parser.on("drain",()=>this.#handler.onParserDrain()),parser.on("error",err=>this.#handler.onParserError(err)),this.#parser=parser,this.#sendQueue=new SendQueue(response.socket),this.#handler.readyState=states.OPEN;let extensions=response.headersList.get("sec-websocket-extensions");extensions!==null&&(this.#extensions=extensions);let protocol=response.headersList.get("sec-websocket-protocol");if(protocol!==null&&(this.#protocol=protocol),fireEvent("open",this),channels.open.hasSubscribers){let headers=response.headersList.entries;channels.open.publish({address:getSocketAddress(response.socket),protocol:this.#protocol,extensions:this.#extensions,websocket:this,handshakeResponse:{status:response.status,statusText:response.statusText,headers}})}}#onMessage(type,data){if(this.#handler.readyState!==states.OPEN)return;let dataForEvent;if(type===opcodes.TEXT)try{dataForEvent=utf8Decode(data)}catch{failWebsocketConnection(this.#handler,1007,"Received invalid UTF-8 in text frame.");return}else type===opcodes.BINARY&&(this.#binaryType==="blob"?dataForEvent=new Blob([data]):dataForEvent=toArrayBuffer(data));fireEvent("message",this,createFastMessageEvent,{origin:this.#url.origin,data:dataForEvent})}#onParserDrain(){this.#handler.socket.resume()}#onSocketClose(){let wasClean=this.#handler.closeState.has(sentCloseFrameState.SENT)&&this.#handler.closeState.has(sentCloseFrameState.RECEIVED),code=1005,reason="",result=this.#parser?.closingInfo;result&&!result.error&&(code=result.code??1005,reason=result.reason),this.#handler.readyState=states.CLOSED,this.#handler.closeState.has(sentCloseFrameState.RECEIVED)||(code=1006,fireEvent("error",this,(type,init)=>new ErrorEvent(type,init),{error:new TypeError(reason)})),fireEvent("close",this,(type,init)=>new CloseEvent(type,init),{wasClean,code,reason}),channels.close.hasSubscribers&&channels.close.publish({websocket:this,code,reason})}static ping(ws,buffer){if(Buffer.isBuffer(buffer)){if(buffer.length>125)throw new TypeError("A PING frame cannot have a body larger than 125 bytes.")}else if(buffer!==void 0)throw new TypeError("Expected buffer payload");let readyState=ws.#handler.readyState;if(isEstablished(readyState)&&!isClosing(readyState)&&!isClosed(readyState)){let frame=new WebsocketFrameSend(buffer);ws.#handler.socket.write(frame.createFrame(opcodes.PING))}}},{ping}=WebSocket;Reflect.deleteProperty(WebSocket,"ping");WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=states.CONNECTING;WebSocket.OPEN=WebSocket.prototype.OPEN=states.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=states.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=states.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:staticPropertyDescriptors,OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors,CLOSED:staticPropertyDescriptors,url:kEnumerableProperty,readyState:kEnumerableProperty,bufferedAmount:kEnumerableProperty,onopen:kEnumerableProperty,onerror:kEnumerableProperty,onclose:kEnumerableProperty,close:kEnumerableProperty,onmessage:kEnumerableProperty,binaryType:kEnumerableProperty,send:kEnumerableProperty,extensions:kEnumerableProperty,protocol:kEnumerableProperty,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(WebSocket,{CONNECTING:staticPropertyDescriptors,OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors,CLOSED:staticPropertyDescriptors});webidl.converters["sequence<DOMString>"]=webidl.sequenceConverter(webidl.converters.DOMString);webidl.converters["DOMString or sequence<DOMString>"]=function(V,prefix,argument){return webidl.util.Type(V)===webidl.util.Types.OBJECT&&Symbol.iterator in V?webidl.converters["sequence<DOMString>"](V):webidl.converters.DOMString(V,prefix,argument)};webidl.converters.WebSocketInit=webidl.dictionaryConverter([{key:"protocols",converter:webidl.converters["DOMString or sequence<DOMString>"],defaultValue:()=>[]},{key:"dispatcher",converter:webidl.converters.any,defaultValue:()=>getGlobalDispatcher()},{key:"headers",converter:webidl.nullableConverter(webidl.converters.HeadersInit)}]);webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(V){return webidl.util.Type(V)===webidl.util.Types.OBJECT&&!(Symbol.iterator in V)?webidl.converters.WebSocketInit(V):{protocols:webidl.converters["DOMString or sequence<DOMString>"](V)}};webidl.converters.WebSocketSendData=function(V){return webidl.util.Type(V)===webidl.util.Types.OBJECT&&(webidl.is.Blob(V)||webidl.is.BufferSource(V))?V:webidl.converters.USVString(V)};module.exports={WebSocket,ping}}});var require_websocketerror=__commonJS({"node_modules/undici/lib/web/websocket/stream/websocketerror.js"(exports,module){"use strict";var{webidl}=require_webidl(),{validateCloseCodeAndReason}=require_util5(),{kConstruct}=require_symbols(),{kEnumerableProperty}=require_util();function createInheritableDOMException(){class Test2 extends DOMException{get reason(){return""}}return new Test2().reason!==void 0?DOMException:new Proxy(DOMException,{construct(target,args,newTarget){let instance=Reflect.construct(target,args,target);return Object.setPrototypeOf(instance,newTarget.prototype),instance}})}var WebSocketError=class _WebSocketError extends createInheritableDOMException(){#closeCode;#reason;constructor(message="",init=void 0){if(message=webidl.converters.DOMString(message,"WebSocketError","message"),super(message,"WebSocketError"),init===kConstruct)return;init!==null&&(init=webidl.converters.WebSocketCloseInfo(init));let code=init.closeCode??null,reason=init.reason??"";validateCloseCodeAndReason(code,reason),reason.length!==0&&code===null&&(code=1e3),this.#closeCode=code,this.#reason=reason}get closeCode(){return this.#closeCode}get reason(){return this.#reason}static createUnvalidatedWebSocketError(message,code,reason){let error=new _WebSocketError(message,kConstruct);return error.#closeCode=code,error.#reason=reason,error}},{createUnvalidatedWebSocketError}=WebSocketError;delete WebSocketError.createUnvalidatedWebSocketError;Object.defineProperties(WebSocketError.prototype,{closeCode:kEnumerableProperty,reason:kEnumerableProperty,[Symbol.toStringTag]:{value:"WebSocketError",writable:!1,enumerable:!1,configurable:!0}});webidl.is.WebSocketError=webidl.util.MakeTypeAssertion(WebSocketError);module.exports={WebSocketError,createUnvalidatedWebSocketError}}});var require_websocketstream=__commonJS({"node_modules/undici/lib/web/websocket/stream/websocketstream.js"(exports,module){"use strict";var{addAbortListener}=__require("node:events"),{environmentSettingsObject,readableStreamClose}=require_util2(),{states,opcodes,sentCloseFrameState}=require_constants5(),{webidl}=require_webidl(),{getURLRecord,isValidSubprotocol,isEstablished,utf8Decode}=require_util5(),{establishWebSocketConnection,failWebsocketConnection,closeWebSocketConnection}=require_connection(),{channels}=require_diagnostics(),{WebsocketFrameSend}=require_frame(),{ByteParser}=require_receiver(),{WebSocketError,createUnvalidatedWebSocketError}=require_websocketerror(),{kEnumerableProperty}=require_util(),{utf8DecodeBytes}=require_encoding(),emittedExperimentalWarning=!1,WebSocketStream=class{#url;#openedPromise;#closedPromise;#readableStream;#readableStreamController;#writableStreamController;#handshakeAborted=!1;#handler={onConnectionEstablished:(response,extensions)=>this.#onConnectionEstablished(response,extensions),onMessage:(opcode,data)=>this.#onMessage(opcode,data),onParserError:err=>failWebsocketConnection(this.#handler,null,err.message),onParserDrain:()=>this.#handler.socket.resume(),onSocketData:chunk=>{this.#parser.write(chunk)||this.#handler.socket.pause()},onSocketError:err=>{this.#handler.readyState=states.CLOSING,channels.socketError.hasSubscribers&&channels.socketError.publish(err),this.#handler.socket.destroy()},onSocketClose:()=>this.#onSocketClose(),onPing:()=>{},onPong:()=>{},readyState:states.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#parser;constructor(url,options=void 0){emittedExperimentalWarning||(process.emitWarning("WebSocketStream is experimental! Expect it to change at any time.",{code:"UNDICI-WSS"}),emittedExperimentalWarning=!0),webidl.argumentLengthCheck(arguments,1,"WebSocket"),url=webidl.converters.USVString(url),options!==null&&(options=webidl.converters.WebSocketStreamOptions(options));let baseURL=environmentSettingsObject.settingsObject.baseUrl,urlRecord=getURLRecord(url,baseURL),protocols=options.protocols;if(protocols.length!==new Set(protocols.map(p=>p.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(protocols.length>0&&!protocols.every(p=>isValidSubprotocol(p)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(this.#url=urlRecord.toString(),this.#openedPromise=Promise.withResolvers(),this.#closedPromise=Promise.withResolvers(),options.signal!=null){let signal=options.signal;if(signal.aborted){this.#openedPromise.reject(signal.reason),this.#closedPromise.reject(signal.reason);return}addAbortListener(signal,()=>{isEstablished(this.#handler.readyState)||(failWebsocketConnection(this.#handler),this.#handler.readyState=states.CLOSING,this.#openedPromise.reject(signal.reason),this.#closedPromise.reject(signal.reason),this.#handshakeAborted=!0)})}let client=environmentSettingsObject.settingsObject;this.#handler.controller=establishWebSocketConnection(urlRecord,protocols,client,this.#handler,options)}get url(){return this.#url.toString()}get opened(){return this.#openedPromise.promise}get closed(){return this.#closedPromise.promise}close(closeInfo=void 0){closeInfo!==null&&(closeInfo=webidl.converters.WebSocketCloseInfo(closeInfo));let code=closeInfo.closeCode??null,reason=closeInfo.reason;closeWebSocketConnection(this.#handler,code,reason,!0)}#write(chunk){chunk=webidl.converters.WebSocketStreamWrite(chunk);let promise=Promise.withResolvers(),data=null,opcode=null;if(webidl.is.BufferSource(chunk))data=new Uint8Array(ArrayBuffer.isView(chunk)?new Uint8Array(chunk.buffer,chunk.byteOffset,chunk.byteLength):chunk.slice()),opcode=opcodes.BINARY;else{let string;try{string=webidl.converters.DOMString(chunk)}catch(e){return promise.reject(e),promise.promise}data=new TextEncoder().encode(string),opcode=opcodes.TEXT}if(!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)){let frame=new WebsocketFrameSend(data);this.#handler.socket.write(frame.createFrame(opcode),()=>{promise.resolve(void 0)})}return promise.promise}#onConnectionEstablished(response,parsedExtensions){this.#handler.socket=response.socket;let maxFragments=this.#handler.controller.dispatcher?.webSocketOptions?.maxFragments,maxPayloadSize=this.#handler.controller.dispatcher?.webSocketOptions?.maxPayloadSize,parser=new ByteParser(this.#handler,parsedExtensions,{maxFragments,maxPayloadSize});parser.on("drain",()=>this.#handler.onParserDrain()),parser.on("error",err=>this.#handler.onParserError(err)),this.#parser=parser,this.#handler.readyState=states.OPEN;let extensions=parsedExtensions??"",protocol=response.headersList.get("sec-websocket-protocol")??"",readable=new ReadableStream({start:controller=>{this.#readableStreamController=controller},cancel:reason=>this.#cancel(reason)}),writable=new WritableStream({start:controller=>{this.#writableStreamController=controller},write:chunk=>this.#write(chunk),close:()=>closeWebSocketConnection(this.#handler,null,null),abort:reason=>this.#closeUsingReason(reason)});this.#readableStream=readable,this.#openedPromise.resolve({extensions,protocol,readable,writable})}#onMessage(type,data){if(this.#handler.readyState!==states.OPEN)return;let chunk;if(type===opcodes.TEXT)try{chunk=utf8Decode(data)}catch{failWebsocketConnection(this.#handler,1007,"Received invalid UTF-8 in text frame.");return}else type===opcodes.BINARY&&(chunk=new Uint8Array(data.buffer,data.byteOffset,data.byteLength));this.#readableStreamController.enqueue(chunk)}#onSocketClose(){let wasClean=this.#handler.closeState.has(sentCloseFrameState.SENT)&&this.#handler.closeState.has(sentCloseFrameState.RECEIVED);if(this.#handler.readyState=states.CLOSED,this.#handshakeAborted)return;this.#handler.wasEverConnected||this.#openedPromise.reject(new WebSocketError("Socket never opened"));let result=this.#parser?.closingInfo,code=result?.code??1005;!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)&&(code=1006);let reason=result?.reason==null?"":utf8DecodeBytes(Buffer.from(result.reason));if(wasClean)readableStreamClose(this.#readableStreamController),this.#writableStreamController.error(new DOMException("A closed WebSocketStream cannot be written to","InvalidStateError")),this.#closedPromise.resolve({closeCode:code,reason});else{let error=createUnvalidatedWebSocketError("unclean close",code,reason);this.#readableStreamController?.error(error),this.#writableStreamController?.error(error),this.#closedPromise.reject(error)}}#closeUsingReason(reason){let code=null,reasonString="";webidl.is.WebSocketError(reason)&&(code=reason.closeCode,reasonString=reason.reason),closeWebSocketConnection(this.#handler,code,reasonString)}#cancel(reason){this.#closeUsingReason(reason)}};Object.defineProperties(WebSocketStream.prototype,{url:kEnumerableProperty,opened:kEnumerableProperty,closed:kEnumerableProperty,close:kEnumerableProperty,[Symbol.toStringTag]:{value:"WebSocketStream",writable:!1,enumerable:!1,configurable:!0}});webidl.converters.WebSocketStreamOptions=webidl.dictionaryConverter([{key:"protocols",converter:webidl.sequenceConverter(webidl.converters.USVString),defaultValue:()=>[]},{key:"signal",converter:webidl.nullableConverter(webidl.converters.AbortSignal),defaultValue:()=>null}]);webidl.converters.WebSocketCloseInfo=webidl.dictionaryConverter([{key:"closeCode",converter:V=>webidl.converters["unsigned short"](V,webidl.attributes.EnforceRange)},{key:"reason",converter:webidl.converters.USVString,defaultValue:()=>""}]);webidl.converters.WebSocketStreamWrite=function(V){return typeof V=="string"?webidl.converters.USVString(V):webidl.converters.BufferSource(V)};module.exports={WebSocketStream}}});var require_util6=__commonJS({"node_modules/undici/lib/web/eventsource/util.js"(exports,module){"use strict";var{makeRequest}=require_request2();function isValidLastEventId(value){return value.indexOf("\0")===-1}function isASCIINumber(value){if(value.length===0)return!1;for(let i=0;i<value.length;i++)if(value.charCodeAt(i)<48||value.charCodeAt(i)>57)return!1;return!0}function createPotentialCORSRequest(url,destination,corsAttributeState,sameOriginFallback){let mode=corsAttributeState==="no cors"?"no-cors":"cors";sameOriginFallback&&mode==="no-cors"&&(mode="same-origin");let credentialsMode="include";return corsAttributeState==="anonymous"&&(credentialsMode="same-origin"),makeRequest({urlList:[url],destination,mode,credentials:credentialsMode,useURLCredentials:!0})}module.exports={isValidLastEventId,isASCIINumber,createPotentialCORSRequest}}});var require_eventsource_stream=__commonJS({"node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports,module){"use strict";var buffer=__require("node:buffer"),{Transform}=__require("node:stream"),{isASCIINumber,isValidLastEventId}=require_util6(),BOM=[239,187,191],LF=10,CR=13,COLON=58,SPACE=32,defaultMaxEventSize=buffer.kStringMaxLength,DATA=Buffer.from("data"),EVENT=Buffer.from("event"),ID=Buffer.from("id"),RETRY=Buffer.from("retry");function isASCIINumberBytes(buffer2,start){if(start>=buffer2.length)return!1;for(let i=start;i<buffer2.length;i++)if(buffer2[i]<48||buffer2[i]>57)return!1;return!0}function isValidLastEventIdBytes(buffer2,start){for(let i=start;i<buffer2.length;i++)if(buffer2[i]===0)return!1;return!0}function isFieldName(line,length,field){if(length!==field.length)return!1;for(let i=0;i<length;i++)if(line[i]!==field[i])return!1;return!0}function createMaxEventSizeExceededError(){let error=new Error("EventSource message size exceeded");return error.aborted=!1,error}var EventSourceStream=class extends Transform{state;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;chunks=[];chunkIndex=0;pos=0;lineChunkIndex=0;linePos=0;eventDataSize=0;maxEventSize;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(options={}){options.readableObjectMode=!0,super(options),this.state=options.eventSourceSettings||{},this.maxEventSize=options.maxEventSize??defaultMaxEventSize,options.push&&(this.push=options.push)}_transform(chunk,_encoding,callback){if(chunk.length===0){callback();return}if(this.chunks.push(chunk),this.checkBOM&&this.handleBOM()){callback();return}for(;this.hasCurrentByte();){let byte=this.currentByte();if(this.eventEndCheck){if(this.crlfCheck){if(byte===LF){this.crlfCheck=!1,this.consumeCurrentByte();continue}this.crlfCheck=!1}if(byte===LF||byte===CR){byte===CR&&(this.crlfCheck=!0),this.consumeCurrentByte(),this.hasPendingEvent()&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(byte===LF||byte===CR){byte===CR&&(this.crlfCheck=!0);try{this.parseLine(this.readLine(),this.event)}catch(error){callback(error);return}this.consumeCurrentByte(),this.eventEndCheck=!0;continue}this.advanceCursor()}callback()}parseLine(line,event){if(line.length===0)return;let colonPosition=line.indexOf(COLON);if(colonPosition===0)return;let fieldLength=line.length,valueStart=line.length;if(colonPosition!==-1&&(fieldLength=colonPosition,valueStart=colonPosition+1,line[valueStart]===SPACE&&++valueStart),isFieldName(line,fieldLength,DATA)){let valueBytes=line.length-valueStart,eventDataSize=this.eventDataSize+(event.data===void 0?0:1)+valueBytes;if(this.maxEventSize>0&&eventDataSize>this.maxEventSize)throw createMaxEventSizeExceededError();let value=line.toString("utf8",valueStart);event.data===void 0?event.data=value:event.data+=`
|
|
130
|
+
${value}`,this.eventDataSize=eventDataSize;return}if(isFieldName(line,fieldLength,RETRY)){isASCIINumberBytes(line,valueStart)&&(event.retry=line.toString("utf8",valueStart));return}if(isFieldName(line,fieldLength,ID)){isValidLastEventIdBytes(line,valueStart)&&(event.id=line.toString("utf8",valueStart));return}if(isFieldName(line,fieldLength,EVENT)){let value=line.toString("utf8",valueStart);value.length>0&&(event.event=value)}}processEvent(event){event.retry&&isASCIINumber(event.retry)&&(this.state.reconnectionTime=parseInt(event.retry,10)),event.id!==void 0&&isValidLastEventId(event.id)&&(this.state.lastEventId=event.id),event.data!==void 0&&this.push({type:event.event||"message",options:{data:event.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event.data=void 0,this.event.event=void 0,this.event.id=void 0,this.event.retry=void 0,this.eventDataSize=0}hasPendingEvent(){return this.event.data!==void 0||this.event.event!==void 0||this.event.id!==void 0||this.event.retry!==void 0}hasCurrentByte(){return this.chunkIndex<this.chunks.length&&this.pos<this.chunks[this.chunkIndex].length}currentByte(){return this.chunks[this.chunkIndex][this.pos]}consumeCurrentByte(){this.advanceCursor(),this.syncLineStartToCursor()}advanceCursor(){for(this.pos++;this.chunkIndex<this.chunks.length&&this.pos>=this.chunks[this.chunkIndex].length;)this.chunkIndex++,this.pos=0}syncLineStartToCursor(){this.lineChunkIndex=this.chunkIndex,this.linePos=this.pos,this.dropConsumedChunks()}dropConsumedChunks(){for(;this.lineChunkIndex>0;)this.chunks.shift(),this.lineChunkIndex--,this.chunkIndex--;this.chunkIndex===this.chunks.length&&(this.chunks.length=0,this.chunkIndex=0,this.pos=0,this.lineChunkIndex=0,this.linePos=0)}readLine(){if(this.lineChunkIndex===this.chunkIndex)return this.chunks[this.chunkIndex].subarray(this.linePos,this.pos);let chunks=[],length=0;for(let i=this.lineChunkIndex;i<=this.chunkIndex;i++){let chunk=this.chunks[i],start=i===this.lineChunkIndex?this.linePos:0,end=i===this.chunkIndex?this.pos:chunk.length,slice=chunk.subarray(start,end);length+=slice.length,chunks.push(slice)}return Buffer.concat(chunks,length)}peekBufferedByte(offset){let chunkIndex=this.lineChunkIndex,pos=this.linePos;for(;chunkIndex<this.chunks.length;){let chunk=this.chunks[chunkIndex],remaining=chunk.length-pos;if(offset<remaining)return chunk[pos+offset];offset-=remaining,chunkIndex++,pos=0}}discardLeadingBytes(count){for(;count>0&&this.lineChunkIndex<this.chunks.length;){let remaining=this.chunks[this.lineChunkIndex].length-this.linePos;count<remaining?(this.linePos+=count,count=0):(count-=remaining,this.lineChunkIndex++,this.linePos=0)}this.chunkIndex=this.lineChunkIndex,this.pos=this.linePos,this.dropConsumedChunks()}handleBOM(){let first=this.peekBufferedByte(0),second=this.peekBufferedByte(1),third=this.peekBufferedByte(2);return second===void 0?(first===BOM[0]||(this.checkBOM=!1),!0):third===void 0?first===BOM[0]&&second===BOM[1]?!0:(this.checkBOM=!1,!1):(first===BOM[0]&&second===BOM[1]&&third===BOM[2]&&this.discardLeadingBytes(3),this.checkBOM=!1,!this.hasCurrentByte())}};module.exports={EventSourceStream}}});var require_eventsource=__commonJS({"node_modules/undici/lib/web/eventsource/eventsource.js"(exports,module){"use strict";var{pipeline}=__require("node:stream"),{fetching}=require_fetch(),{webidl}=require_webidl(),{EventSourceStream}=require_eventsource_stream(),{parseMIMEType}=require_data_url(),{createFastMessageEvent}=require_events(),{isNetworkError}=require_response(),{isValidHeaderValue,kEnumerableProperty}=require_util(),{environmentSettingsObject}=require_util2(),{createPotentialCORSRequest}=require_util6(),{getGlobalDispatcher}=require_global2(),{isomorphicDecode}=require_infra(),textEncoder=new TextEncoder,experimentalWarned=!1,defaultReconnectionTime=3e3,CONNECTING=0,OPEN=1,CLOSED=2,ANONYMOUS="anonymous",USE_CREDENTIALS="use-credentials",EventSource=class _EventSource extends EventTarget{#events={open:null,error:null,message:null};#url;#withCredentials=!1;#readyState=CONNECTING;#request=null;#controller=null;#dispatcher;#state;constructor(url,eventSourceInitDict={}){super(),webidl.util.markAsUncloneable(this);let prefix="EventSource constructor";webidl.argumentLengthCheck(arguments,1,prefix),experimentalWarned||(experimentalWarned=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),url=webidl.converters.USVString(url),eventSourceInitDict=webidl.converters.EventSourceInitDict(eventSourceInitDict,prefix,"eventSourceInitDict"),this.#dispatcher=eventSourceInitDict.node.dispatcher||eventSourceInitDict.dispatcher,this.#state={lastEventId:"",reconnectionTime:eventSourceInitDict.node.reconnectionTime};let settings=environmentSettingsObject,urlRecord;try{urlRecord=new URL(url,settings.settingsObject.baseUrl),this.#state.origin=urlRecord.origin}catch(e){throw new DOMException(e,"SyntaxError")}this.#url=urlRecord.href;let corsAttributeState=ANONYMOUS;eventSourceInitDict.withCredentials===!0&&(corsAttributeState=USE_CREDENTIALS,this.#withCredentials=!0);let request=createPotentialCORSRequest(urlRecord,"",corsAttributeState);request.client=environmentSettingsObject.settingsObject,request.headersList.set("Accept","text/event-stream"),request.cache="no-store",request.initiator="other",this.#request=request,this.#connect()}get readyState(){return this.#readyState}get url(){return this.#url}get withCredentials(){return this.#withCredentials}#connect(){if(this.#readyState===CLOSED)return;this.#readyState=CONNECTING;let fetchParams={request:this.#request,dispatcher:this.#dispatcher},processEventSourceEndOfBody=response=>{if(!isNetworkError(response))return this.#reconnect()};fetchParams.processResponseEndOfBody=processEventSourceEndOfBody,fetchParams.processResponse=response=>{if(isNetworkError(response))if(response.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#reconnect();return}let contentType=response.headersList.get("content-type",!0),mimeType=contentType!==null?parseMIMEType(contentType):"failure",contentTypeValid=mimeType!=="failure"&&mimeType.essence==="text/event-stream";if(response.status!==200||contentTypeValid===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#readyState=OPEN,this.dispatchEvent(new Event("open")),this.#state.origin=response.urlList[response.urlList.length-1].origin;let eventSourceStream=new EventSourceStream({eventSourceSettings:this.#state,maxEventSize:this.#dispatcher.eventSourceOptions?.maxEventSize,push:event=>{this.dispatchEvent(createFastMessageEvent(event.type,event.options))}});pipeline(response.body.stream,eventSourceStream,error=>{error?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#controller=fetching(fetchParams)}#reconnect(){this.#readyState!==CLOSED&&(this.#readyState=CONNECTING,this.dispatchEvent(new Event("error")),setTimeout(()=>{if(this.#readyState===CONNECTING){if(this.#request.headersList.delete("last-event-id",!0),this.#state.lastEventId.length){let lastEventId=isomorphicDecode(textEncoder.encode(this.#state.lastEventId));isValidHeaderValue(lastEventId)&&this.#request.headersList.set("last-event-id",lastEventId,!0)}this.#connect()}},this.#state.reconnectionTime)?.unref())}close(){webidl.brandCheck(this,_EventSource),this.#readyState!==CLOSED&&(this.#readyState=CLOSED,this.#controller.abort(),this.#request=null)}get onopen(){return this.#events.open}set onopen(fn){this.#events.open&&this.removeEventListener("open",this.#events.open);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("open",listener),this.#events.open=fn):this.#events.open=null}get onmessage(){return this.#events.message}set onmessage(fn){this.#events.message&&this.removeEventListener("message",this.#events.message);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("message",listener),this.#events.message=fn):this.#events.message=null}get onerror(){return this.#events.error}set onerror(fn){this.#events.error&&this.removeEventListener("error",this.#events.error);let listener=webidl.converters.EventHandlerNonNull(fn);listener!==null?(this.addEventListener("error",listener),this.#events.error=fn):this.#events.error=null}},constantsPropertyDescriptors={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:CONNECTING,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:OPEN,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:CLOSED,writable:!1}};Object.defineProperties(EventSource,constantsPropertyDescriptors);Object.defineProperties(EventSource.prototype,constantsPropertyDescriptors);Object.defineProperties(EventSource.prototype,{close:kEnumerableProperty,onerror:kEnumerableProperty,onmessage:kEnumerableProperty,onopen:kEnumerableProperty,readyState:kEnumerableProperty,url:kEnumerableProperty,withCredentials:kEnumerableProperty});webidl.converters.EventSourceInitDict=webidl.dictionaryConverter([{key:"withCredentials",converter:webidl.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:webidl.converters.any,defaultValue:()=>getGlobalDispatcher()},{key:"node",converter:webidl.dictionaryConverter([{key:"reconnectionTime",converter:webidl.converters["unsigned long"],defaultValue:()=>defaultReconnectionTime},{key:"dispatcher",converter:webidl.converters.any}]),defaultValue:()=>({})}]);module.exports={EventSource,defaultReconnectionTime}}});var require_undici=__commonJS({"node_modules/undici/index.js"(exports,module){"use strict";var Client2=require_client(),Dispatcher=require_dispatcher(),Pool2=require_pool(),BalancedPool=require_balanced_pool(),RoundRobinPool=require_round_robin_pool(),Agent=require_agent(),Dispatcher1Wrapper=require_dispatcher1_wrapper(),ProxyAgent=require_proxy_agent(),Socks5ProxyAgent=require_socks5_proxy_agent(),EnvHttpProxyAgent2=require_env_http_proxy_agent(),RetryAgent=require_retry_agent(),H2CClient=require_h2c_client(),errors=require_errors(),util=require_util(),{InvalidArgumentError}=errors,api=require_api(),buildConnector=require_connect(),MockClient=require_mock_client(),{MockCallHistory,MockCallHistoryLog}=require_mock_call_history(),MockAgent=require_mock_agent(),MockPool=require_mock_pool(),SnapshotAgent=require_snapshot_agent(),mockErrors=require_mock_errors(),RetryHandler=require_retry_handler(),{getGlobalDispatcher,setGlobalDispatcher:setGlobalDispatcher2}=require_global2(),DecoratorHandler=require_decorator_handler(),RedirectHandler=require_redirect_handler();Object.assign(Dispatcher.prototype,api);module.exports.Dispatcher=Dispatcher;module.exports.Client=Client2;module.exports.Pool=Pool2;module.exports.BalancedPool=BalancedPool;module.exports.RoundRobinPool=RoundRobinPool;module.exports.Agent=Agent;module.exports.Dispatcher1Wrapper=Dispatcher1Wrapper;module.exports.ProxyAgent=ProxyAgent;module.exports.Socks5ProxyAgent=Socks5ProxyAgent;module.exports.EnvHttpProxyAgent=EnvHttpProxyAgent2;module.exports.RetryAgent=RetryAgent;module.exports.H2CClient=H2CClient;module.exports.RetryHandler=RetryHandler;module.exports.DecoratorHandler=DecoratorHandler;module.exports.RedirectHandler=RedirectHandler;module.exports.interceptors={redirect:require_redirect(),responseError:require_response_error(),retry:require_retry(),dump:require_dump(),dns:require_dns(),cache:require_cache2(),decompress:require_decompress(),deduplicate:require_deduplicate()};module.exports.cacheStores={MemoryCacheStore:require_memory_cache_store()};var SqliteCacheStore=require_sqlite_cache_store();module.exports.cacheStores.SqliteCacheStore=SqliteCacheStore;module.exports.buildConnector=buildConnector;module.exports.errors=errors;module.exports.util={parseHeaders:util.parseHeaders,headerNameToString:util.headerNameToString};function makeDispatcher(fn){return(url,opts,handler)=>{if(typeof opts=="function"&&(handler=opts,opts=null),!url||typeof url!="string"&&typeof url!="object"&&!(url instanceof URL))throw new InvalidArgumentError("invalid url");if(opts!=null&&typeof opts!="object")throw new InvalidArgumentError("invalid opts");if(opts&&opts.path!=null){if(typeof opts.path!="string")throw new InvalidArgumentError("invalid opts.path");let path2=opts.path;opts.path.startsWith("/")||(path2=`/${path2}`),url=new URL(util.parseOrigin(url).origin+path2)}else opts||(opts=typeof url=="object"?url:{}),url=util.parseURL(url);let{agent,dispatcher=getGlobalDispatcher(),...restOpts}=opts;if(agent)throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?");return fn.call(dispatcher,{...restOpts,origin:url.origin,path:url.search?`${url.pathname}${url.search}`:url.pathname,method:opts.method||(opts.body?"PUT":"GET")},handler)}}module.exports.setGlobalDispatcher=setGlobalDispatcher2;module.exports.getGlobalDispatcher=getGlobalDispatcher;var fetchImpl=require_fetch().fetch,currentFilename=typeof __filename<"u"?__filename:void 0;function appendFetchStackTrace(err,filename){if(!err||typeof err!="object")return;let stack=typeof err.stack=="string"?err.stack:"",normalizedFilename=filename.replace(/\\/g,"/");if(stack&&(stack.includes(filename)||stack.includes(normalizedFilename)))return;let capture={};if(Error.captureStackTrace(capture,appendFetchStackTrace),!capture.stack)return;let captureLines=capture.stack.split(`
|
|
131
|
+
`).slice(1).join(`
|
|
132
|
+
`);err.stack=stack?`${stack}
|
|
133
|
+
${captureLines}`:capture.stack}module.exports.fetch=function(init,options=void 0){return fetchImpl(init,options).catch(err=>{throw currentFilename?appendFetchStackTrace(err,currentFilename):err&&typeof err=="object"&&Error.captureStackTrace(err,module.exports.fetch),err})};module.exports.Headers=require_headers().Headers;module.exports.Response=require_response().Response;module.exports.Request=require_request2().Request;module.exports.FormData=require_formdata().FormData;var{setGlobalOrigin,getGlobalOrigin}=require_global();module.exports.setGlobalOrigin=setGlobalOrigin;module.exports.getGlobalOrigin=getGlobalOrigin;var{CacheStorage}=require_cachestorage(),{kConstruct}=require_symbols();module.exports.caches=new CacheStorage(kConstruct);var{deleteCookie,getCookies,getSetCookies,setCookie,parseCookie}=require_cookies();module.exports.deleteCookie=deleteCookie;module.exports.getCookies=getCookies;module.exports.getSetCookies=getSetCookies;module.exports.setCookie=setCookie;module.exports.parseCookie=parseCookie;var{parseMIMEType,serializeAMimeType}=require_data_url();module.exports.parseMIMEType=parseMIMEType;module.exports.serializeAMimeType=serializeAMimeType;var{CloseEvent,ErrorEvent,MessageEvent}=require_events(),{WebSocket,ping}=require_websocket();module.exports.WebSocket=WebSocket;module.exports.CloseEvent=CloseEvent;module.exports.ErrorEvent=ErrorEvent;module.exports.MessageEvent=MessageEvent;module.exports.ping=ping;module.exports.WebSocketStream=require_websocketstream().WebSocketStream;module.exports.WebSocketError=require_websocketerror().WebSocketError;module.exports.request=makeDispatcher(api.request);module.exports.stream=makeDispatcher(api.stream);module.exports.pipeline=makeDispatcher(api.pipeline);module.exports.connect=makeDispatcher(api.connect);module.exports.upgrade=makeDispatcher(api.upgrade);module.exports.MockClient=MockClient;module.exports.MockCallHistory=MockCallHistory;module.exports.MockCallHistoryLog=MockCallHistoryLog;module.exports.MockPool=MockPool;module.exports.MockAgent=MockAgent;module.exports.SnapshotAgent=SnapshotAgent;module.exports.mockErrors=mockErrors;var{EventSource}=require_eventsource();module.exports.EventSource=EventSource;function install2(){globalThis.fetch=module.exports.fetch,globalThis.Headers=module.exports.Headers,globalThis.Response=module.exports.Response,globalThis.Request=module.exports.Request,globalThis.FormData=module.exports.FormData,globalThis.WebSocket=module.exports.WebSocket,globalThis.CloseEvent=module.exports.CloseEvent,globalThis.ErrorEvent=module.exports.ErrorEvent,globalThis.MessageEvent=module.exports.MessageEvent,globalThis.EventSource=module.exports.EventSource}module.exports.install=install2}});var undici=__toESM(require_undici(),1);import{EventEmitter}from"node:events";var DEFAULT_HTTP_IDLE_TIMEOUT_MS=3e5,DEFAULT_AUTO_SELECT_FAMILY_ATTEMPT_TIMEOUT_MS=2e3,HTTP_IDLE_TIMEOUT_CHOICES=[{label:"30 sec",timeoutMs:3e4},{label:"1 min",timeoutMs:6e4},{label:"2 min",timeoutMs:12e4},{label:"5 min",timeoutMs:3e5},{label:"disabled",timeoutMs:0}],originalGlobalFetch=globalThis.fetch,installedGlobalFetch;function parseHttpIdleTimeoutMs(value){if(typeof value=="string"){let trimmed=value.trim();return trimmed.toLowerCase()==="disabled"?0:trimmed.length===0?void 0:parseHttpIdleTimeoutMs(Number(trimmed))}if(!(typeof value!="number"||!Number.isFinite(value)||value<0))return Math.floor(value)}function formatHttpIdleTimeoutMs(timeoutMs){let choice=HTTP_IDLE_TIMEOUT_CHOICES.find(item=>item.timeoutMs===timeoutMs);return choice?choice.label:`${timeoutMs/1e3} sec`}function applyHttpProxySettings(httpProxy){let proxy=httpProxy?.trim();proxy&&(process.env.HTTP_PROXY??=proxy,process.env.HTTPS_PROXY??=proxy)}var ignoreUndiciDispatcherError=_error=>{};function withUndiciErrorListener(dispatcher){return dispatcher instanceof EventEmitter&&EventEmitter.prototype.on.call(dispatcher,"error",ignoreUndiciDispatcherError),dispatcher}function createUndiciClient(origin,options){return withUndiciErrorListener(new undici.Client(origin,options))}function createUndiciOriginDispatcher(origin,options){let dispatcherOptions=options;return dispatcherOptions.connections===1?createUndiciClient(origin,dispatcherOptions):withUndiciErrorListener(new undici.Pool(origin,{...dispatcherOptions,factory:createUndiciClient}))}function configureHttpDispatcher(timeoutMs=DEFAULT_HTTP_IDLE_TIMEOUT_MS){let normalizedTimeoutMs=parseHttpIdleTimeoutMs(timeoutMs);if(normalizedTimeoutMs===void 0)throw new Error(`Invalid HTTP idle timeout: ${String(timeoutMs)}`);let dispatcher=withUndiciErrorListener(new undici.EnvHttpProxyAgent({allowH2:!1,proxyTunnel:!0,bodyTimeout:normalizedTimeoutMs,connect:{autoSelectFamilyAttemptTimeout:DEFAULT_AUTO_SELECT_FAMILY_ATTEMPT_TIMEOUT_MS},headersTimeout:normalizedTimeoutMs,clientFactory:createUndiciClient,factory:createUndiciOriginDispatcher}));undici.setGlobalDispatcher(dispatcher),(installedGlobalFetch===void 0?globalThis.fetch===originalGlobalFetch:globalThis.fetch===installedGlobalFetch)&&(undici.install?.(),installedGlobalFetch=globalThis.fetch)}var value_exports2={};__export(value_exports2,{Assert:()=>Assert,AssertError:()=>AssertError,Check:()=>Check2,Clean:()=>Clean,Clone:()=>Clone2,Convert:()=>Convert,Create:()=>Create,CreateError:()=>CreateError,Decode:()=>Decode9,DecodeError:()=>DecodeError,DecodeUnsafe:()=>DecodeUnsafe,Default:()=>Default,Delete:()=>Delete2,Diff:()=>Diff,Edit:()=>Edit,Encode:()=>Encode9,EncodeError:()=>EncodeError,EncodeUnsafe:()=>EncodeUnsafe,Equal:()=>Equal,Errors:()=>Errors2,HasCodec:()=>HasCodec,Hash:()=>Hash,Insert:()=>Insert,IsOptionalUndefined:()=>IsOptionalUndefined,Parse:()=>Parse,ParseError:()=>ParseError,Parser:()=>Parser,Patch:()=>Patch,Pipeline:()=>Pipeline,Pointer:()=>pointer_exports,Repair:()=>Repair,UnionPrioritySort:()=>UnionPrioritySort,UnionScoreSelect:()=>UnionScoreSelect,Update:()=>Update,Value:()=>value_exports,default:()=>value_default});function IsRefine2(value){return guard_exports.HasPropertyKey(value,"~refine")&&guard_exports.IsArray(value["~refine"])&&guard_exports.Every(value["~refine"],0,value2=>guard_exports.IsObject(value2)&&guard_exports.HasPropertyKey(value2,"check")&&guard_exports.HasPropertyKey(value2,"error")&&guard_exports.IsFunction(value2.check)&&guard_exports.IsFunction(value2.error))}function IsSchemaObject(value){return guard_exports.IsObject(value)&&!guard_exports.IsArray(value)}function IsSchemaBoolean(value){return guard_exports.IsBoolean(value)}function IsSchema2(value){return IsSchemaObject(value)||IsSchemaBoolean(value)}function IsAdditionalItems(schema){return guard_exports.HasPropertyKey(schema,"additionalItems")&&IsSchema2(schema.additionalItems)}function IsAdditionalProperties(schema){return guard_exports.HasPropertyKey(schema,"additionalProperties")&&IsSchema2(schema.additionalProperties)}function IsAllOf(schema){return guard_exports.HasPropertyKey(schema,"allOf")&&guard_exports.IsArray(schema.allOf)&&schema.allOf.every(value=>IsSchema2(value))}function IsAnchor(schema){return guard_exports.HasPropertyKey(schema,"$anchor")&&guard_exports.IsString(schema.$anchor)}function IsAnyOf(schema){return guard_exports.HasPropertyKey(schema,"anyOf")&&guard_exports.IsArray(schema.anyOf)&&schema.anyOf.every(value=>IsSchema2(value))}function IsConst(value){return guard_exports.HasPropertyKey(value,"const")}function IsContains(schema){return guard_exports.HasPropertyKey(schema,"contains")&&IsSchema2(schema.contains)}function IsDefault(schema){return guard_exports.HasPropertyKey(schema,"default")}function IsDependencies(schema){return guard_exports.HasPropertyKey(schema,"dependencies")&&guard_exports.IsObject(schema.dependencies)&&Object.values(schema.dependencies).every(value=>IsSchema2(value)||guard_exports.IsArray(value)&&value.every(value2=>guard_exports.IsString(value2)))}function IsDependentRequired(schema){return guard_exports.HasPropertyKey(schema,"dependentRequired")&&guard_exports.IsObject(schema.dependentRequired)&&Object.values(schema.dependentRequired).every(value=>guard_exports.IsArray(value)&&value.every(value2=>guard_exports.IsString(value2)))}function IsDependentSchemas(schema){return guard_exports.HasPropertyKey(schema,"dependentSchemas")&&guard_exports.IsObject(schema.dependentSchemas)&&Object.values(schema.dependentSchemas).every(value=>IsSchema2(value))}function IsDynamicAnchor(schema){return guard_exports.HasPropertyKey(schema,"$dynamicAnchor")&&guard_exports.IsString(schema.$dynamicAnchor)}function IsDynamicRef(schema){return guard_exports.HasPropertyKey(schema,"$dynamicRef")&&guard_exports.IsString(schema.$dynamicRef)}function IsElse(schema){return guard_exports.HasPropertyKey(schema,"else")&&IsSchema2(schema.else)}function IsEnum2(schema){return guard_exports.HasPropertyKey(schema,"enum")&&guard_exports.IsArray(schema.enum)}function IsExclusiveMaximum(schema){return guard_exports.HasPropertyKey(schema,"exclusiveMaximum")&&(guard_exports.IsNumber(schema.exclusiveMaximum)||guard_exports.IsBigInt(schema.exclusiveMaximum))}function IsExclusiveMinimum(schema){return guard_exports.HasPropertyKey(schema,"exclusiveMinimum")&&(guard_exports.IsNumber(schema.exclusiveMinimum)||guard_exports.IsBigInt(schema.exclusiveMinimum))}function IsFormat(schema){return guard_exports.HasPropertyKey(schema,"format")&&guard_exports.IsString(schema.format)}function IsId(schema){return guard_exports.HasPropertyKey(schema,"$id")&&guard_exports.IsString(schema.$id)}function IsIf(schema){return guard_exports.HasPropertyKey(schema,"if")&&IsSchema2(schema.if)}function IsItems(schema){return guard_exports.HasPropertyKey(schema,"items")&&(IsSchema2(schema.items)||guard_exports.IsArray(schema.items)&&schema.items.every(value=>IsSchema2(value)))}function IsItemsSized(schema){return IsItems(schema)&&guard_exports.IsArray(schema.items)}function IsMaximum(schema){return guard_exports.HasPropertyKey(schema,"maximum")&&(guard_exports.IsNumber(schema.maximum)||guard_exports.IsBigInt(schema.maximum))}function IsMaxContains(schema){return guard_exports.HasPropertyKey(schema,"maxContains")&&guard_exports.IsNumber(schema.maxContains)}function IsMaxItems(schema){return guard_exports.HasPropertyKey(schema,"maxItems")&&guard_exports.IsNumber(schema.maxItems)}function IsMaxLength(schema){return guard_exports.HasPropertyKey(schema,"maxLength")&&guard_exports.IsNumber(schema.maxLength)}function IsMaxProperties(schema){return guard_exports.HasPropertyKey(schema,"maxProperties")&&guard_exports.IsNumber(schema.maxProperties)}function IsMinimum(schema){return guard_exports.HasPropertyKey(schema,"minimum")&&(guard_exports.IsNumber(schema.minimum)||guard_exports.IsBigInt(schema.minimum))}function IsMinContains(schema){return guard_exports.HasPropertyKey(schema,"minContains")&&guard_exports.IsNumber(schema.minContains)}function IsMinItems(schema){return guard_exports.HasPropertyKey(schema,"minItems")&&guard_exports.IsNumber(schema.minItems)}function IsMinLength(schema){return guard_exports.HasPropertyKey(schema,"minLength")&&guard_exports.IsNumber(schema.minLength)}function IsMinProperties(schema){return guard_exports.HasPropertyKey(schema,"minProperties")&&guard_exports.IsNumber(schema.minProperties)}function IsMultipleOf(schema){return guard_exports.HasPropertyKey(schema,"multipleOf")&&(guard_exports.IsNumber(schema.multipleOf)||guard_exports.IsBigInt(schema.multipleOf))}function IsNot(schema){return guard_exports.HasPropertyKey(schema,"not")&&IsSchema2(schema.not)}function IsOneOf(schema){return guard_exports.HasPropertyKey(schema,"oneOf")&&guard_exports.IsArray(schema.oneOf)&&schema.oneOf.every(value=>IsSchema2(value))}function IsPattern(schema){return guard_exports.HasPropertyKey(schema,"pattern")&&(guard_exports.IsString(schema.pattern)||schema.pattern instanceof RegExp)}function IsPatternProperties(schema){return guard_exports.HasPropertyKey(schema,"patternProperties")&&guard_exports.IsObject(schema.patternProperties)&&Object.values(schema.patternProperties).every(value=>IsSchema2(value))}function IsPrefixItems(schema){return guard_exports.HasPropertyKey(schema,"prefixItems")&&guard_exports.IsArray(schema.prefixItems)&&schema.prefixItems.every(schema2=>IsSchema2(schema2))}function IsProperties(schema){return guard_exports.HasPropertyKey(schema,"properties")&&guard_exports.IsObject(schema.properties)&&Object.values(schema.properties).every(value=>IsSchema2(value))}function IsPropertyNames(schema){return guard_exports.HasPropertyKey(schema,"propertyNames")&&(guard_exports.IsObject(schema.propertyNames)||IsSchema2(schema.propertyNames))}function IsRecursiveAnchor(schema){return guard_exports.HasPropertyKey(schema,"$recursiveAnchor")&&guard_exports.IsBoolean(schema.$recursiveAnchor)}function IsRecursiveAnchorTrue(schema){return IsRecursiveAnchor(schema)&&guard_exports.IsEqual(schema.$recursiveAnchor,!0)}function IsRecursiveRef(schema){return guard_exports.HasPropertyKey(schema,"$recursiveRef")&&guard_exports.IsString(schema.$recursiveRef)}function IsRef2(schema){return guard_exports.HasPropertyKey(schema,"$ref")&&guard_exports.IsString(schema.$ref)}function IsRequired(schema){return guard_exports.HasPropertyKey(schema,"required")&&guard_exports.IsArray(schema.required)&&schema.required.every(value=>guard_exports.IsString(value))}function IsThen(schema){return guard_exports.HasPropertyKey(schema,"then")&&IsSchema2(schema.then)}function IsType(schema){return guard_exports.HasPropertyKey(schema,"type")&&(guard_exports.IsString(schema.type)||guard_exports.IsArray(schema.type)&&schema.type.every(value=>guard_exports.IsString(value)))}function IsUniqueItems(schema){return guard_exports.HasPropertyKey(schema,"uniqueItems")&&guard_exports.IsBoolean(schema.uniqueItems)}function IsUnevaluatedItems(schema){return guard_exports.HasPropertyKey(schema,"unevaluatedItems")&&IsSchema2(schema.unevaluatedItems)}function IsUnevaluatedProperties(schema){return guard_exports.HasPropertyKey(schema,"unevaluatedProperties")&&IsSchema2(schema.unevaluatedProperties)}function HasUnevaluatedFromObject(value){return IsUnevaluatedItems(value)||IsUnevaluatedProperties(value)||guard_exports.Some(guard_exports.Keys(value),key=>HasUnevaluatedFromUnknown(value[key]))}function HasUnevaluatedFromArray(value){return guard_exports.Some(value,value2=>HasUnevaluatedFromUnknown(value2))}function HasUnevaluatedFromUnknown(value){return guard_exports.IsArray(value)?HasUnevaluatedFromArray(value):guard_exports.IsObject(value)?HasUnevaluatedFromObject(value):!1}function HasUnevaluated(context,schema){return HasUnevaluatedFromUnknown(schema)||guard_exports.Some(guard_exports.Keys(context),key=>HasUnevaluatedFromUnknown(context[key]))}var BuildContext=class{constructor(hasUnevaluated){this.hasUnevaluated=hasUnevaluated}UseUnevaluated(){return this.hasUnevaluated}Push(){return emit_exports.Call(emit_exports.Member("context","Push"),[])}Pop(){return emit_exports.Call(emit_exports.Member("context","Pop"),[])}AddIndex(index3){return emit_exports.Call(emit_exports.Member("context","AddIndex"),[index3])}AddKey(key){return emit_exports.Call(emit_exports.Member("context","AddKey"),[key])}Merge(results){return emit_exports.Call(emit_exports.Member("context","Merge"),[results])}},CheckContext=class{constructor(){let indices=new Set,keys=new Set;this.stack=[{indices,keys}]}Push(){let indices=new Set,keys=new Set;return this.stack.push({indices,keys}),!0}Pop(){return this.stack.pop(),!0}AddIndex(index3){return this.GetIndices().add(index3),!0}AddKey(key){return this.GetKeys().add(key),!0}GetIndices(){return this.stack[this.stack.length-1].indices}GetKeys(){return this.stack[this.stack.length-1].keys}Merge(results){for(let context of results)context.GetIndices().forEach(value=>this.GetIndices().add(value)),context.GetKeys().forEach(value=>this.GetKeys().add(value));return!0}},ErrorContext=class extends CheckContext{constructor(){super(),this.errors=[]}AtCapacity(){return this.errors.length>=settings_exports.Get().maxErrors}AddError(error){return this.AtCapacity()||this.errors.push(error),!1}GetErrors(){return this.errors}};var state={identifier:"External",variables:[]};function CreateVariable(value){let call=`External[${state.variables.length}]`;return state.variables.push(value),call}function ResetExternal(){state.variables=[]}function GetExternal(){return{...state}}function BuildRefine(_stack,_context,schema,value){let refinements=CreateVariable(schema["~refine"].map(refinement=>refinement));return emit_exports.Every(refinements,emit_exports.Constant(0),["refinement","_"],emit_exports.Call(emit_exports.Member("refinement","check"),[value]))}function CheckRefine(_stack,_context,schema,value){return guard_exports.Every(schema["~refine"],0,(refinement,_)=>refinement.check(value))}function ErrorRefine(_stack,context,schemaPath,instancePath,schema,value){return guard_exports.EveryAll(schema["~refine"],0,(refinement,index3)=>refinement.check(value)||context.AddError({keyword:"~refine",schemaPath,instancePath,params:{index:index3,message:refinement.error(value)}}))}var index=0;function Unique(){return`var_${index++}`}function IsValid(schema){return IsItems(schema)&&guard_exports.IsArray(schema.items)}function BuildAdditionalItemsStandard(stack,context,schema,value){let[item,index3]=[Unique(),Unique()],isSchema=BuildSchemaPushStack(stack,context,schema.additionalItems,item),isLength=emit_exports.IsLessThan(index3,emit_exports.Constant(schema.items.length)),addIndex=context.AddIndex(index3);return emit_exports.Every(value,emit_exports.Constant(0),[item,index3],emit_exports.Or(isLength,emit_exports.And(isSchema,addIndex)))}function BuildAdditionalItemsFast(stack,context,schema,value){let[item,index3]=[Unique(),Unique()],isSchema=BuildSchemaPushStack(stack,context,schema.additionalItems,item),isLength=emit_exports.IsLessThan(index3,emit_exports.Constant(schema.items.length));return emit_exports.Every(value,emit_exports.Constant(0),[item,index3],emit_exports.Or(isLength,isSchema))}function BuildAdditionalItems(stack,context,schema,value){return IsValid(schema)?context.UseUnevaluated()?BuildAdditionalItemsStandard(stack,context,schema,value):BuildAdditionalItemsFast(stack,context,schema,value):emit_exports.Constant(!0)}function CheckAdditionalItems(stack,context,schema,value){return IsValid(schema)?guard_exports.Every(value,0,(item,index3)=>guard_exports.IsLessThan(index3,schema.items.length)||CheckSchemaPushStack(stack,context,schema.additionalItems,item)&&context.AddIndex(index3)):!0}function ErrorAdditionalItems(stack,context,schemaPath,instancePath,schema,value){return IsValid(schema)?guard_exports.Every(value,0,(item,index3)=>{let nextSchemaPath=`${schemaPath}/additionalItems`,nextInstancePath=`${instancePath}/${index3}`;return guard_exports.IsLessThan(index3,schema.items.length)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema.additionalItems,item)&&context.AddIndex(index3)}):!0}function UnicodeRegExp(pattern){return new RegExp(pattern,"u")}function IsAdditionalPropertiesIgnored(context,additionalProperties){return!context.UseUnevaluated()&&(guard_exports.IsEqual(additionalProperties,!0)||guard_exports.IsObject(additionalProperties)&&guard_exports.IsEqual(guard_exports.Keys(additionalProperties).length,0))}function GetPropertyKeyAsPattern(key){return`^${key.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`}function GetPropertiesPattern(schema){let patterns=[];return IsPatternProperties(schema)&&patterns.push(...guard_exports.Keys(schema.patternProperties)),IsProperties(schema)&&patterns.push(...guard_exports.Keys(schema.properties).map(GetPropertyKeyAsPattern)),guard_exports.IsEqual(patterns.length,0)?"(?!)":`(${patterns.join("|")})`}function CanAdditionalPropertiesFast(_context,schema,_value){return IsRequired(schema)&&IsProperties(schema)&&!IsPatternProperties(schema)&&guard_exports.IsEqual(schema.additionalProperties,!1)&&guard_exports.IsEqual(guard_exports.Keys(schema.properties).length,schema.required.length)}function BuildAdditionalPropertiesFast(_context,schema,value){return emit_exports.IsEqual(emit_exports.Member(emit_exports.Call(emit_exports.Member("Object","getOwnPropertyNames"),[value]),"length"),emit_exports.Constant(schema.required.length))}function BuildAdditionalPropertiesStandard(stack,context,schema,value){let[key,_index]=[Unique(),Unique()],regexp=CreateVariable(UnicodeRegExp(GetPropertiesPattern(schema))),isSchema=BuildSchemaPushStack(stack,context,schema.additionalProperties,`${value}[${key}]`),isKey=emit_exports.Call(emit_exports.Member(regexp,"test"),[key]),addKey=context.AddKey(key),guarded=context.UseUnevaluated()?emit_exports.Or(isKey,emit_exports.And(isSchema,addKey)):emit_exports.Or(isKey,isSchema);return emit_exports.Every(emit_exports.Keys(value),emit_exports.Constant(0),[key,_index],guarded)}function BuildAdditionalProperties(stack,context,schema,value){return IsAdditionalPropertiesIgnored(context,schema.additionalProperties)?emit_exports.Constant(!0):CanAdditionalPropertiesFast(context,schema,value)?BuildAdditionalPropertiesFast(context,schema,value):BuildAdditionalPropertiesStandard(stack,context,schema,value)}function CheckAdditionalProperties(stack,context,schema,value){let regexp=UnicodeRegExp(GetPropertiesPattern(schema));return guard_exports.Every(guard_exports.Keys(value),0,(key,_index)=>regexp.test(key)||CheckSchemaPushStack(stack,context,schema.additionalProperties,value[key])&&context.AddKey(key))}function ErrorAdditionalProperties(stack,context,schemaPath,instancePath,schema,value){let regexp=UnicodeRegExp(GetPropertiesPattern(schema)),additionalProperties=[];return guard_exports.EveryAll(guard_exports.Keys(value),0,(key,_index)=>{let nextSchemaPath=`${schemaPath}/additionalProperties`,nextInstancePath=`${instancePath}/${key}`,isAdditionalProperty=regexp.test(key)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema.additionalProperties,value[key])&&context.AddKey(key);return isAdditionalProperty||additionalProperties.push(key),isAdditionalProperty})||context.AddError({keyword:"additionalProperties",schemaPath,instancePath,params:{additionalProperties}})}function Reducer(stack,context,schemas,value,check){let results=emit_exports.ConstDeclaration("results","[]"),context_n=schemas.map((_schema,index3)=>emit_exports.ConstDeclaration(`context_${index3}`,emit_exports.New("CheckContext",[]))),condition_n=schemas.map((schema,index3)=>emit_exports.ConstDeclaration(`condition_${index3}`,emit_exports.Call(emit_exports.ArrowFunction(["context"],BuildSchema(stack,context,schema,value)),[`context_${index3}`]))),checks=schemas.map((_schema,index3)=>emit_exports.If(`condition_${index3}`,emit_exports.Call(emit_exports.Member("results","push"),[`context_${index3}`]))),returns=emit_exports.Return(emit_exports.And(check,context.Merge("results")));return emit_exports.Call(emit_exports.ArrowFunction([],emit_exports.Statements([results,...context_n,...condition_n,...checks,returns])),[])}function BuildAllOfStandard(stack,context,schema,value){return Reducer(stack,context,schema.allOf,value,emit_exports.IsEqual(emit_exports.Member("results","length"),emit_exports.Constant(schema.allOf.length)))}function BuildAllOfFast(stack,context,schema,value){return emit_exports.ReduceAnd(schema.allOf.map(schema2=>BuildSchema(stack,context,schema2,value)))}function BuildAllOf(stack,context,schema,value){return context.UseUnevaluated()?BuildAllOfStandard(stack,context,schema,value):BuildAllOfFast(stack,context,schema,value)}function CheckAllOf(stack,context,schema,value){let results=schema.allOf.reduce((result,schema2)=>{let nextContext=new CheckContext;return CheckSchema(stack,nextContext,schema2,value)?[...result,nextContext]:result},[]);return guard_exports.IsEqual(results.length,schema.allOf.length)&&context.Merge(results)}function ErrorAllOf(stack,context,schemaPath,instancePath,schema,value){let failedContexts=[],results=schema.allOf.reduce((result,schema2,index3)=>{let nextSchemaPath=`${schemaPath}/allOf/${index3}`,nextContext=new ErrorContext,isSchema=ErrorSchema(stack,nextContext,nextSchemaPath,instancePath,schema2,value);return isSchema||failedContexts.push(nextContext),isSchema?[...result,nextContext]:result},[]),isAllOf=guard_exports.IsEqual(results.length,schema.allOf.length)&&context.Merge(results);return isAllOf||failedContexts.forEach(failed=>failed.GetErrors().forEach(error=>context.AddError(error))),isAllOf}function BuildAnyOfStandard(stack,context,schema,value){return Reducer(stack,context,schema.anyOf,value,emit_exports.IsGreaterThan(emit_exports.Member("results","length"),emit_exports.Constant(0)))}function BuildAnyOfFast(stack,context,schema,value){return emit_exports.ReduceOr(schema.anyOf.map(schema2=>BuildSchema(stack,context,schema2,value)))}function BuildAnyOf(stack,context,schema,value){return context.UseUnevaluated()?BuildAnyOfStandard(stack,context,schema,value):BuildAnyOfFast(stack,context,schema,value)}function CheckAnyOf(stack,context,schema,value){let results=schema.anyOf.reduce((result,schema2)=>{let nextContext=new CheckContext;return CheckSchema(stack,nextContext,schema2,value)?[...result,nextContext]:result},[]);return guard_exports.IsGreaterThan(results.length,0)&&context.Merge(results)}function ErrorAnyOf(stack,context,schemaPath,instancePath,schema,value){let failedContexts=[],results=schema.anyOf.reduce((result,schema2,index3)=>{let nextContext=new ErrorContext,nextSchemaPath=`${schemaPath}/anyOf/${index3}`,isSchema=ErrorSchema(stack,nextContext,nextSchemaPath,instancePath,schema2,value);return isSchema||failedContexts.push(nextContext),isSchema?[...result,nextContext]:result},[]),isAnyOf=guard_exports.IsGreaterThan(results.length,0)&&context.Merge(results);return isAnyOf||failedContexts.forEach(failed=>failed.GetErrors().forEach(error=>context.AddError(error))),isAnyOf||context.AddError({keyword:"anyOf",schemaPath,instancePath,params:{}})}function BuildSchemaBoolean(_stack,_context,schema,_value){return schema?emit_exports.Constant(!0):emit_exports.Constant(!1)}function CheckSchemaBoolean(_stack,_context,schema,_value){return schema}function ErrorSchemaBoolean(stack,context,schemaPath,instancePath,schema,value){return CheckSchemaBoolean(stack,context,schema,value)||context.AddError({keyword:"boolean",schemaPath,instancePath,params:{}})}function BuildConst(_stack,_context,schema,value){return guard_exports.IsValueLike(schema.const)?emit_exports.IsEqual(value,emit_exports.Constant(schema.const)):emit_exports.IsDeepEqual(value,CreateVariable(schema.const))}function CheckConst(_stack,_context,schema,value){return guard_exports.IsValueLike(schema.const)?guard_exports.IsEqual(value,schema.const):guard_exports.IsDeepEqual(value,schema.const)}function ErrorConst(stack,context,schemaPath,instancePath,schema,value){return CheckConst(stack,context,schema,value)||context.AddError({keyword:"const",schemaPath,instancePath,params:{allowedValue:schema.const}})}function IsValid2(schema){return!(IsMinContains(schema)&&guard_exports.IsEqual(schema.minContains,0))}function BuildContainsStandard(stack,context,schema,value){let[item,index3]=[Unique(),Unique()],isLength=emit_exports.Not(emit_exports.IsEqual(emit_exports.Member(value,"length"),emit_exports.Constant(0))),isSome=emit_exports.SomeAll(value,[item,index3],emit_exports.And(BuildSchema(stack,context,schema.contains,item),context.AddIndex(index3)));return emit_exports.And(isLength,isSome)}function BuildContainsFast(stack,context,schema,value){let[item]=[Unique()],isLength=emit_exports.Not(emit_exports.IsEqual(emit_exports.Member(value,"length"),emit_exports.Constant(0))),isSome=emit_exports.Some(value,[item,"_"],BuildSchema(stack,context,schema.contains,item));return emit_exports.And(isLength,isSome)}function BuildContains(stack,context,schema,value){return IsValid2(schema)?context.UseUnevaluated()?BuildContainsStandard(stack,context,schema,value):BuildContainsFast(stack,context,schema,value):emit_exports.Constant(!0)}function CheckContains(stack,context,schema,value){return IsValid2(schema)?!guard_exports.IsEqual(value.length,0)&&guard_exports.SomeAll(value,(item,index3)=>CheckSchema(stack,context,schema.contains,item)&&context.AddIndex(index3)):!0}function ErrorContains(stack,context,schemaPath,instancePath,schema,value){return CheckContains(stack,context,schema,value)||context.AddError({keyword:"contains",schemaPath,instancePath,params:{minContains:1}})}function BuildDependencies(stack,context,schema,value){let isLength=emit_exports.IsEqual(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(0)),isEveryDependency=emit_exports.ReduceAnd(guard_exports.Entries(schema.dependencies).map(([key,schema2])=>{let notKey=emit_exports.Not(emit_exports.HasPropertyKey(value,emit_exports.Constant(key))),isSchema=BuildSchema(stack,context,schema2,value),isEveryKey=schema3=>emit_exports.ReduceAnd(schema3.map(key2=>emit_exports.HasPropertyKey(value,emit_exports.Constant(key2))));return emit_exports.Or(notKey,guard_exports.IsArray(schema2)?isEveryKey(schema2):isSchema)}));return emit_exports.Or(isLength,isEveryDependency)}function CheckDependencies(stack,context,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.Every(guard_exports.Entries(schema.dependencies),0,([key,schema2])=>!guard_exports.HasPropertyKey(value,key)||(guard_exports.IsArray(schema2)?schema2.every(key2=>guard_exports.HasPropertyKey(value,key2)):CheckSchema(stack,context,schema2,value)));return isLength||isEvery}function ErrorDependencies(stack,context,schemaPath,instancePath,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.EveryAll(guard_exports.Entries(schema.dependencies),0,([key,schema2])=>{let nextSchemaPath=`${schemaPath}/dependencies/${key}`;return!guard_exports.HasPropertyKey(value,key)||(guard_exports.IsArray(schema2)?schema2.every(dependency=>guard_exports.HasPropertyKey(value,dependency)||context.AddError({keyword:"dependencies",schemaPath,instancePath,params:{property:key,dependencies:schema2}})):ErrorSchema(stack,context,nextSchemaPath,instancePath,schema2,value))});return isLength||isEvery}function BuildDependentRequired(_stack,_context,schema,value){let isLength=emit_exports.IsEqual(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(0)),isEvery=emit_exports.ReduceAnd(guard_exports.Entries(schema.dependentRequired).map(([key,keys])=>{let notKey=emit_exports.Not(emit_exports.HasPropertyKey(value,emit_exports.Constant(key))),everyKey=emit_exports.ReduceAnd(keys.map(key2=>emit_exports.HasPropertyKey(value,emit_exports.Constant(key2))));return emit_exports.Or(notKey,everyKey)}));return emit_exports.Or(isLength,isEvery)}function CheckDependentRequired(_stack,_context,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.Every(guard_exports.Entries(schema.dependentRequired),0,([key,keys])=>!guard_exports.HasPropertyKey(value,key)||keys.every(key2=>guard_exports.HasPropertyKey(value,key2)));return isLength||isEvery}function ErrorDependentRequired(_stack,context,schemaPath,instancePath,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEveryEntry=guard_exports.EveryAll(guard_exports.Entries(schema.dependentRequired),0,([key,keys])=>!guard_exports.HasPropertyKey(value,key)||guard_exports.EveryAll(keys,0,dependency=>guard_exports.HasPropertyKey(value,dependency)||context.AddError({keyword:"dependentRequired",schemaPath,instancePath,params:{property:key,dependencies:keys}})));return isLength||isEveryEntry}function BuildDependentSchemas(stack,context,schema,value){let isLength=emit_exports.IsEqual(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(0)),isEvery=emit_exports.ReduceAnd(guard_exports.Entries(schema.dependentSchemas).map(([key,schema2])=>{let notKey=emit_exports.Not(emit_exports.HasPropertyKey(value,emit_exports.Constant(key))),isSchema=BuildSchema(stack,context,schema2,value);return emit_exports.Or(notKey,isSchema)}));return emit_exports.Or(isLength,isEvery)}function CheckDependentSchemas(stack,context,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.Every(guard_exports.Entries(schema.dependentSchemas),0,([key,schema2])=>!guard_exports.HasPropertyKey(value,key)||CheckSchema(stack,context,schema2,value));return isLength||isEvery}function ErrorDependentSchemas(stack,context,schemaPath,instancePath,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.EveryAll(guard_exports.Entries(schema.dependentSchemas),0,([key,schema2])=>{let nextSchemaPath=`${schemaPath}/dependentSchemas/${key}`;return!guard_exports.HasPropertyKey(value,key)||ErrorSchema(stack,context,nextSchemaPath,instancePath,schema2,value)});return isLength||isEvery}function BuildDynamicRef(stack,context,schema,value){let target=stack.DynamicRef(schema)??!1;return CreateFunction(stack,context,target,value)}function CheckDynamicRef(stack,context,schema,value){let target=stack.DynamicRef(schema)??!1;return IsSchema2(target)&&CheckSchema(stack,context,target,value)}function ErrorDynamicRef(stack,context,_schemaPath,instancePath,schema,value){let target=stack.DynamicRef(schema)??!1;return IsSchema2(target)&&ErrorSchema(stack,context,"#",instancePath,target,value)}function BuildEnum(_stack,_context,schema,value){return emit_exports.ReduceOr(schema.enum.map(option=>{if(guard_exports.IsValueLike(option))return emit_exports.IsEqual(value,emit_exports.Constant(option));let variable=CreateVariable(option);return emit_exports.IsDeepEqual(value,variable)}))}function CheckEnum(_stack,_context,schema,value){return guard_exports.Some(schema.enum,option=>guard_exports.IsValueLike(option)?guard_exports.IsEqual(value,option):guard_exports.IsDeepEqual(value,option))}function ErrorEnum(stack,context,schemaPath,instancePath,schema,value){return CheckEnum(stack,context,schema,value)||context.AddError({keyword:"enum",schemaPath,instancePath,params:{allowedValues:schema.enum}})}function BuildExclusiveMaximum(_stack,_context,schema,value){return emit_exports.IsLessThan(value,emit_exports.Constant(schema.exclusiveMaximum))}function CheckExclusiveMaximum(_stack,_context,schema,value){return guard_exports.IsLessThan(value,schema.exclusiveMaximum)}function ErrorExclusiveMaximum(stack,context,schemaPath,instancePath,schema,value){return CheckExclusiveMaximum(stack,context,schema,value)||context.AddError({keyword:"exclusiveMaximum",schemaPath,instancePath,params:{comparison:"<",limit:schema.exclusiveMaximum}})}function BuildExclusiveMinimum(_stack,_context,schema,value){return emit_exports.IsGreaterThan(value,emit_exports.Constant(schema.exclusiveMinimum))}function CheckExclusiveMinimum(_stack,_context,schema,value){return guard_exports.IsGreaterThan(value,schema.exclusiveMinimum)}function ErrorExclusiveMinimum(stack,context,schemaPath,instancePath,schema,value){return CheckExclusiveMinimum(stack,context,schema,value)||context.AddError({keyword:"exclusiveMinimum",schemaPath,instancePath,params:{comparison:">",limit:schema.exclusiveMinimum}})}var format_exports={};__export(format_exports,{Clear:()=>Clear,Entries:()=>Entries,Get:()=>Get2,Has:()=>Has,IsDate:()=>IsDate,IsDateTime:()=>IsDateTime,IsDuration:()=>IsDuration,IsEmail:()=>IsEmail,IsHostname:()=>IsHostname2,IsIPv4:()=>IsIPv4,IsIPv6:()=>IsIPv6,IsIdnEmail:()=>IsIdnEmail,IsIdnHostname:()=>IsIdnHostname2,IsIri:()=>IsIri,IsIriReference:()=>IsIriReference,IsJsonPointer:()=>IsJsonPointer,IsJsonPointerUriFragment:()=>IsJsonPointerUriFragment,IsRegex:()=>IsRegex,IsRelativeJsonPointer:()=>IsRelativeJsonPointer,IsTime:()=>IsTime,IsUri:()=>IsUri,IsUriReference:()=>IsUriReference,IsUriTemplate:()=>IsUriTemplate,IsUrl:()=>IsUrl,IsUuid:()=>IsUuid,Reset:()=>Reset,Set:()=>Set2,Test:()=>Test});var DAYS=[0,31,28,31,30,31,30,31,31,30,31,30,31],DATE=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function IsLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function IsDate(value){let matches=DATE.exec(value);if(!matches)return!1;let year=+matches[1],month=+matches[2],day=+matches[3];return month>=1&&month<=12&&day>=1&&day<=(month===2&&IsLeapYear(year)?29:DAYS[month])}var TIME=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:([Zz])|([+-])(\d\d):(\d\d))?$/;function IsTime(value,strictTimeZone=!0){let matches=TIME.exec(value);if(!matches||strictTimeZone&&!matches[4]&&!matches[5])return!1;let hr=+matches[1],min=+matches[2],sec=+matches[3];if(hr>23||min>59||sec>60)return!1;if(matches[5]){let tzH2=+matches[6],tzM2=+matches[7];if(tzH2>23||tzM2>59)return!1}if(sec<60)return!0;let tzSign=matches[5]==="-"?-1:1,tzH=+(matches[6]||0),tzM=+(matches[7]||0);return((hr*60+min-tzSign*(tzH*60+tzM))%1440+1440)%1440===1439}function IsDateTime(value){let dateTime=value.split(/T/i);return dateTime.length===2&&IsDate(dateTime[0])&&IsTime(dateTime[1])}var Duration=/^P((\d+Y(\d+M(\d+D)?)?|\d+M(\d+D)?|\d+D)(T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S))?|T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S)|\d+W)$/;function IsDuration(value){return Duration.test(value)}var Email=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[^"\\]|\\[\x20-\x7e])*")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*|\[(?:IPv6:[a-f0-9:]+|(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?:\.(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3})\])$/i;function IsEmail(value){return Email.test(value)}var RE_RULE_HYPHEN_PLACEMENT=/^(?!-).*(?<!-)$/,RE_RULE_NOT_RESERVED_ACE=/^(?!..--)/,RE_ASCII_LDH=/^[a-zA-Z0-9-]*$/,RE_ASCII=new RegExp("^\\p{ASCII}*$","u"),RE_NON_ASCII=/[^\p{ASCII}]/u;var RE_ASCII_DIGIT=/[0-9]/,RE_ARABIC_INDIC_DIGIT=/[\u{0660}-\u{0669}]/u,RE_EXT_ARABIC_INDIC_DIGIT=/[\u{06f0}-\u{06f9}]/u,RE_COMMON_SEPARATOR=/[\u{002e}\u{002c}\u{003a}\u{002f}]/u,RE_EUROPEAN_SEPARATOR=/[\u{002d}\u{002b}]/u,RE_MARK_NONSPACING=new RegExp("\\p{Mn}","u"),RE_MARK_SPACING_COMBINING=new RegExp("\\p{Mc}","u"),RE_MARK_ENCLOSING=new RegExp("\\p{Me}","u"),RE_COMBINING_MARK=/[\p{Mn}\p{Mc}\p{Me}]/u,RE_LETTER=new RegExp("\\p{L}","u"),RE_NUMBER_DECIMAL=new RegExp("\\p{Nd}","u"),RE_SCRIPT_GREEK=new RegExp("\\p{Script=Greek}","u"),RE_SCRIPT_HEBREW=new RegExp("\\p{Script=Hebrew}","u"),RE_SCRIPT_JAPANESE=/[\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Han}]/u,RE_SCRIPT_ARABIC_LETTER=/[\p{Script=Arabic}\p{Script=Syriac}\p{Script=Thaana}\p{Script=Mandaic}]/u,RE_VIRAMA=/[\u{094d}\u{09cd}\u{0a4d}\u{0acd}\u{0b4d}\u{0bcd}\u{0c4d}\u{0ccd}\u{0d3b}\u{0d3c}\u{0d4d}\u{0dca}\u{1b44}\u{1baa}\u{1bab}\u{a9c0}\u{11046}\u{1107f}\u{110b9}\u{11133}\u{11134}\u{111c0}\u{11235}\u{1134d}\u{11442}\u{114c2}\u{115bf}\u{1163f}\u{116b6}\u{11c3f}\u{11d44}\u{11d45}]/u,RE_RFC5892_DISALLOWED=/[\u{0640}\u{07fa}\u{302e}\u{302f}\u{3031}\u{3032}\u{3033}\u{3034}\u{3035}\u{303b}]/u,RE_CONTEXTO_EXCEPTIONS=/[\u{00b7}\u{0375}\u{05f3}\u{05f4}\u{200c}\u{200d}\u{30fb}]/u,RE_PVALID_EXCEPTIONS=/[\u{00df}\u{03c2}\u{06fd}\u{06fe}\u{0f0b}\u{3007}]/u,RE_EUROPEAN_NUMBER=new RegExp([RE_ASCII_DIGIT,RE_EXT_ARABIC_INDIC_DIGIT].map(regexp=>regexp.source).join("|"),"u"),RE_PERMITTED_CATEGORY=new RegExp([RE_LETTER,RE_EUROPEAN_SEPARATOR,RE_COMMON_SEPARATOR,RE_NUMBER_DECIMAL,RE_MARK_NONSPACING,RE_MARK_SPACING_COMBINING,RE_CONTEXTO_EXCEPTIONS,RE_PVALID_EXCEPTIONS].map(regexp=>regexp.source).join("|"),"u");function IsAsciiLabel(value){return RE_RULE_HYPHEN_PLACEMENT.test(value)&&RE_RULE_NOT_RESERVED_ACE.test(value)&&RE_ASCII_LDH.test(value)}var PUNYCODE_BASE=36,PUNYCODE_TMIN=1,PUNYCODE_TMAX=26,PUNYCODE_SKEW=38,PUNYCODE_DAMP=700,PUNYCODE_INITIAL_BIAS=72,PUNYCODE_INITIAL_N=128;function ThrowDontCare(){throw null}function IsAcePrefixed(value){return value.toLowerCase().startsWith("xn--")}function Adapt(delta,numPoints,firstTime){delta=firstTime?Math.floor(delta/PUNYCODE_DAMP):delta>>1,delta+=Math.floor(delta/numPoints);let k=0;for(;delta>(PUNYCODE_BASE-PUNYCODE_TMIN)*PUNYCODE_TMAX>>1;)delta=Math.floor(delta/(PUNYCODE_BASE-PUNYCODE_TMIN)),k+=PUNYCODE_BASE;return k+Math.floor((PUNYCODE_BASE-PUNYCODE_TMIN+1)*delta/(delta+PUNYCODE_SKEW))}function Decode(value){let output=[],n=PUNYCODE_INITIAL_N,i=0,bias=PUNYCODE_INITIAL_BIAS,delimIdx=value.lastIndexOf("-");if(delimIdx>0)for(let j=0;j<delimIdx;j++){let cp=value.charCodeAt(j);cp>=128&&ThrowDontCare(),output.push(cp)}let inIdx=delimIdx<0?0:delimIdx+1;for(;inIdx<value.length;){let oldi=i,w=1,k=PUNYCODE_BASE;for(;;){inIdx>=value.length&&ThrowDontCare();let ch=value.charCodeAt(inIdx++),digit;ch>=97&&ch<=122?digit=ch-97:ch>=48&&ch<=57?digit=ch-48+26:ThrowDontCare(),i+=digit*w;let t=k<=bias?PUNYCODE_TMIN:k>=bias+PUNYCODE_TMAX?PUNYCODE_TMAX:k-bias;if(digit<t)break;w*=PUNYCODE_BASE-t,k+=PUNYCODE_BASE}let outLen=output.length+1;bias=Adapt(i-oldi,outLen,oldi===0),n+=Math.floor(i/outLen),i%=outLen,output.splice(i,0,n),i++}return String.fromCodePoint(...output)}function DigitToChar(digit){return digit<26?String.fromCharCode(digit+97):String.fromCharCode(digit-26+48)}var RE_REPLACE_NON_ASCII=new RegExp(RE_NON_ASCII.source,"gu");function Encode(input){let basic=input.replace(RE_REPLACE_NON_ASCII,""),basicLength=basic.length,result=basicLength>0?[basic,"-"]:[],codePoints=Array.from(input,char=>char.codePointAt(0)),n=PUNYCODE_INITIAL_N,delta=0,bias=PUNYCODE_INITIAL_BIAS,handledCPCount=basicLength;for(;handledCPCount<codePoints.length;){let m=1/0;for(let cp of codePoints)cp>=n&&cp<m&&(m=cp);delta+=(m-n)*(handledCPCount+1),n=m;for(let cp of codePoints)if(cp<n&&delta++,cp===n){let q=delta;for(let k=PUNYCODE_BASE;;k+=PUNYCODE_BASE){let t=k<=bias?PUNYCODE_TMIN:k>=bias+PUNYCODE_TMAX?PUNYCODE_TMAX:k-bias;if(q<t)break;let digit=t+(q-t)%(PUNYCODE_BASE-t);result.push(DigitToChar(digit)),q=Math.floor((q-t)/(PUNYCODE_BASE-t))}result.push(DigitToChar(q)),bias=Adapt(delta,handledCPCount+1,handledCPCount===basicLength),delta=0,handledCPCount++}delta++,n++}return result.join("")}var RE_RTL_ALLOWED=/^(?:R|AL|AN|EN|ES|CS|ET|ON|BN|NSM)$/,RE_LTR_ALLOWED=/^(?:L|EN|ES|CS|ET|ON|BN|NSM)$/,RE_RTL_CLASSES=/^(?:R|AL|AN)$/;function HasBidiChars(value){if(IsAcePrefixed(value))try{return HasRightToLeftCharacters(Decode(value.slice(4).toLowerCase()))}catch{return!1}return HasRightToLeftCharacters(value)}function GetBidiClass(codePoint){let char=String.fromCodePoint(codePoint);return RE_EUROPEAN_NUMBER.test(char)?"EN":RE_ARABIC_INDIC_DIGIT.test(char)?"AN":RE_MARK_NONSPACING.test(char)?"NSM":RE_SCRIPT_HEBREW.test(char)?"R":RE_SCRIPT_ARABIC_LETTER.test(char)?"AL":RE_LETTER.test(char)?"L":"ON"}function HasRightToLeftCharacters(value){for(let ch of value)if(RE_RTL_CLASSES.test(GetBidiClass(ch.codePointAt(0))))return!0;return!1}function SatisfiesBidiRule(value){let isRtl=!1,allowed=RE_LTR_ALLOWED,sawEN=!1,sawAN=!1,isFirst=!0;for(let ch of value){let bidiClass=GetBidiClass(ch.codePointAt(0));if(isFirst){if(bidiClass!=="L"&&bidiClass!=="R"&&bidiClass!=="AL")return!1;isRtl=bidiClass==="R"||bidiClass==="AL",allowed=isRtl?RE_RTL_ALLOWED:RE_LTR_ALLOWED,isFirst=!1}if(!allowed.test(bidiClass))return!1;bidiClass==="EN"?sawEN=!0:bidiClass==="AN"&&(sawAN=!0)}return!(isRtl&&sawEN&&sawAN)}function ExceedsMaxALabelLength(value){return RE_NON_ASCII.test(value)&&Encode(value).length+4>63}function HasInvalidHyphens(chars){return chars[0]==="-"||chars[chars.length-1]==="-"?!0:chars.slice(2).join("").startsWith("--")}function IsUnicodeLabel(value){if(ExceedsMaxALabelLength(value)||HasRightToLeftCharacters(value)&&!SatisfiesBidiRule(value))return!1;let chars=[...value],codePoints=chars.map(c=>c.codePointAt(0)),length=codePoints.length;if(HasInvalidHyphens(chars)||RE_COMBINING_MARK.test(chars[0]))return!1;let hasJapanese=!1;for(let i=0;i<length;i++){let codePoint=codePoints[i],char=chars[i];if(RE_RFC5892_DISALLOWED.test(char)||!RE_PERMITTED_CATEGORY.test(char))return!1;RE_SCRIPT_JAPANESE.test(char)&&(hasJapanese=!0);let prev=codePoints[i-1],next=codePoints[i+1];switch(codePoint){case 183:if(prev!==108||next!==108)return!1;break;case 885:if(!next||!RE_SCRIPT_GREEK.test(chars[i+1]))return!1;break;case 1523:case 1524:if(!prev||!RE_SCRIPT_HEBREW.test(chars[i-1]))return!1;break;case 8204:if(!prev||prev<128&&!RE_VIRAMA.test(chars[i-1]))return!1;break;case 8205:if(!prev||!RE_VIRAMA.test(chars[i-1]))return!1;break;case 12539:break}}return!(value.includes("\u30FB")&&!hasJapanese)}function IsPunyLabel(value){if(!IsAcePrefixed(value))return!1;try{let body=value.slice(4).toLowerCase();if(body.lastIndexOf("-")===0)return!1;let decoded=Decode(body);return RE_NON_ASCII.test(decoded)?IsUnicodeLabel(decoded):!1}catch{return!1}}function IsValidLabelLength(value){return value.length>0&&value.length<=63}function IsLabel(value){return IsValidLabelLength(value)&&(IsPunyLabel(value)||IsAsciiLabel(value))}function IsHostname(value){return value.length===0||value.length>253||value.charCodeAt(value.length-1)===46?!1:value.split(".").every(label=>IsLabel(label))}function IsValidLabelLength2(value){return value.length>0&&value.length<=63}function IsLabel2(value){return IsValidLabelLength2(value)&&(IsPunyLabel(value)||IsUnicodeLabel(value))}function NormalizeHostname(value){return value.replace(/[\uff01-\uff5e]/g,char=>String.fromCharCode(char.charCodeAt(0)-65248)).normalize("NFC").replace(/[\u00ad\u034f\u180b-\u180d\u200b\ufe00-\ufe0f\u{e0100}-\u{e01ef}]/gu,"").replace(/[\u002E\u3002\uFF0E\uFF61]/g,".")}function IsIdnHostname(value){if(value.length===0||value.includes(" "))return!1;let normalized=NormalizeHostname(value);if(normalized.length>253)return!1;let labels=normalized.split("."),hasBidiChars=labels.some(label=>HasBidiChars(label));return labels.every(label=>IsLabel2(label)&&(!hasBidiChars||SatisfiesBidiRule(label)))}function IsHostname2(value){return IsHostname(value)}var IdnEmail=/^(?:[A-Za-z0-9!#$%&'*+\/=?^_`{|}~\u{0080}-\u{10FFFF}-]+(?:\.[A-Za-z0-9!#$%&'*+\/=?^_`{|}~\u{0080}-\u{10FFFF}-]+)*|"(?:[^"\\]|\\.)*")@[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,62})(?<!-)(?:\.[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,62})(?<!-))*$/iu;function IsIdnEmail(value){return IdnEmail.test(value.normalize("NFC"))}function IsIdnHostname2(value){return IsIdnHostname(value)}var IPv4=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function IsIPv4(value){return IPv4.test(value)}var IPv6=/^(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)$/i;function IsIPv6(value){return IPv6.test(value)}var InvalidIriChars=/[\x00-\x20\x7F\\]|%(?![0-9a-fA-F]{2})/,MalformedScheme=/^[a-zA-Z][a-zA-Z0-9+\-.]*\/\//;function IsIriReference(value){return!InvalidIriChars.test(value)&&!MalformedScheme.test(value)&&URL.canParse(value,"http://example.com")}var IpvFutureMatch=/\[[vV][0-9a-fA-F]+\.[^\]]+\]/,InvalidIriChars2=/[\x00-\x20<>\^`{|}\\]/,InvalidPercentEncoding=/%(?![0-9a-fA-F]{2})/;function NarrowIpvFuture(value){return value.length<2048?value.replace(IpvFutureMatch,"[::1]"):value}function IsIri(value){return InvalidIriChars2.test(value)||InvalidPercentEncoding.test(value)?!1:URL.canParse(NarrowIpvFuture(value))}var JsonPointerUriFragment=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function IsJsonPointerUriFragment(value){return JsonPointerUriFragment.test(value)}var JsonPointer=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function IsJsonPointer(value){return JsonPointer.test(value)}function IsRegex(value){try{return new RegExp(value,"u"),!0}catch{return!1}}var RelativeJsonPointer=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function IsRelativeJsonPointer(value){return RelativeJsonPointer.test(value)}var UriReference=/^(?:[a-z][a-z0-9+\-.]*:(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?)(?:\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function IsUriReference(value){return UriReference.test(value)}var UriTemplate=/^(?:(?:[^\x00-\x20"<>%\\^`{|}\x7f]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\d{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\d{0,3}|\*)?)*\})*$/i;function IsUriTemplate(value){return UriTemplate.test(value)}var Uri=/^[a-z][a-z0-9+\-.]*:(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function IsUri(value){return Uri.test(value)}function IsUrl(value){return URL.canParse(value)}var Uuid=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function IsUuid(value){return Uuid.test(value)}var formats=new Map;function Clear(){formats.clear()}function Entries(){return[...formats.entries()]}function Set2(format,check){formats.set(format,check)}function Has(format){return formats.has(format)}function Get2(format){return formats.get(format)}function Test(format,value){return formats.get(format)?.(value)??!0}function Reset(){Clear(),formats.set("date-time",IsDateTime),formats.set("date",IsDate),formats.set("duration",IsDuration),formats.set("email",IsEmail),formats.set("hostname",IsHostname2),formats.set("idn-email",IsIdnEmail),formats.set("idn-hostname",IsIdnHostname2),formats.set("ipv4",IsIPv4),formats.set("ipv6",IsIPv6),formats.set("iri-reference",IsIriReference),formats.set("iri",IsIri),formats.set("json-pointer-uri-fragment",IsJsonPointerUriFragment),formats.set("json-pointer",IsJsonPointer),formats.set("regex",IsRegex),formats.set("relative-json-pointer",IsRelativeJsonPointer),formats.set("time",IsTime),formats.set("uri-reference",IsUriReference),formats.set("uri-template",IsUriTemplate),formats.set("uri",IsUri),formats.set("url",IsUrl),formats.set("uuid",IsUuid)}Reset();function BuildFormat(_stack,_context,schema,value){return emit_exports.Call(emit_exports.Member("Format","Test"),[emit_exports.Constant(schema.format),value])}function CheckFormat(_stack,_context,schema,value){return format_exports.Test(schema.format,value)}function ErrorFormat(stack,context,schemaPath,instancePath,schema,value){return CheckFormat(stack,context,schema,value)||context.AddError({keyword:"format",schemaPath,instancePath,params:{format:schema.format}})}function BuildIf(stack,context,schema,value){let thenSchema=IsThen(schema)?schema.then:!0,elseSchema=IsElse(schema)?schema.else:!0;return emit_exports.Ternary(BuildSchema(stack,context,schema.if,value),BuildSchema(stack,context,thenSchema,value),BuildSchema(stack,context,elseSchema,value))}function CheckIf(stack,context,schema,value){let thenSchema=IsThen(schema)?schema.then:!0,elseSchema=IsElse(schema)?schema.else:!0;return CheckSchema(stack,context,schema.if,value)?CheckSchema(stack,context,thenSchema,value):CheckSchema(stack,context,elseSchema,value)}function ErrorIf(stack,context,schemaPath,instancePath,schema,value){let thenSchema=IsThen(schema)?schema.then:!0,elseSchema=IsElse(schema)?schema.else:!0,trueContext=new ErrorContext,isIf=ErrorSchema(stack,trueContext,`${schemaPath}/if`,instancePath,schema.if,value)?ErrorSchema(stack,trueContext,`${schemaPath}/then`,instancePath,thenSchema,value)||context.AddError({keyword:"if",schemaPath,instancePath,params:{failingKeyword:"then"}}):ErrorSchema(stack,context,`${schemaPath}/else`,instancePath,elseSchema,value)||context.AddError({keyword:"if",schemaPath,instancePath,params:{failingKeyword:"else"}});return isIf&&context.Merge([trueContext]),isIf}function BuildItemsSizedStandard(stack,context,schema,value){return emit_exports.ReduceAnd(schema.items.map((schema2,index3)=>{let isLength=emit_exports.IsLessEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(index3)),isSchema=BuildSchemaPushStack(stack,context,schema2,`${value}[${index3}]`),addIndex=context.AddIndex(emit_exports.Constant(index3));return emit_exports.Or(isLength,emit_exports.And(isSchema,addIndex))}))}function BuildItemsSizedFast(stack,context,schema,value){return emit_exports.ReduceAnd(schema.items.map((schema2,index3)=>{let isLength=emit_exports.IsLessEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(index3)),isSchema=BuildSchemaPushStack(stack,context,schema2,`${value}[${index3}]`);return emit_exports.Or(isLength,isSchema)}))}function BuildItemsSized(stack,context,schema,value){return context.UseUnevaluated()?BuildItemsSizedStandard(stack,context,schema,value):BuildItemsSizedFast(stack,context,schema,value)}function CheckItemsSized(stack,context,schema,value){return guard_exports.Every(schema.items,0,(schema2,index3)=>guard_exports.IsLessEqualThan(value.length,index3)||CheckSchemaPushStack(stack,context,schema2,value[index3])&&context.AddIndex(index3))}function ErrorItemsSized(stack,context,schemaPath,instancePath,schema,value){return guard_exports.EveryAll(schema.items,0,(schema2,index3)=>{let nextSchemaPath=`${schemaPath}/items/${index3}`,nextInstancePath=`${instancePath}/${index3}`;return guard_exports.IsLessEqualThan(value.length,index3)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema2,value[index3])&&context.AddIndex(index3)})}function BuildItemsUnsizedStandard(stack,context,schema,value){let offset=IsPrefixItems(schema)?schema.prefixItems.length:0,isSchema=BuildSchemaPushStack(stack,context,schema.items,"element"),addIndex=context.AddIndex("index");return emit_exports.Every(value,emit_exports.Constant(offset),["element","index"],emit_exports.And(isSchema,addIndex))}function BuildItemsUnsizedFast(stack,context,schema,value){let offset=IsPrefixItems(schema)?schema.prefixItems.length:0,isSchema=BuildSchemaPushStack(stack,context,schema.items,"element");return emit_exports.Every(value,emit_exports.Constant(offset),["element","index"],isSchema)}function BuildItemsUnsized(stack,context,schema,value){return context.UseUnevaluated()?BuildItemsUnsizedStandard(stack,context,schema,value):BuildItemsUnsizedFast(stack,context,schema,value)}function CheckItemsUnsized(stack,context,schema,value){let offset=IsPrefixItems(schema)?schema.prefixItems.length:0;return guard_exports.Every(value,offset,(element,index3)=>CheckSchemaPushStack(stack,context,schema.items,element)&&context.AddIndex(index3))}function ErrorItemsUnsized(stack,context,schemaPath,instancePath,schema,value){let offset=IsPrefixItems(schema)?schema.prefixItems.length:0;return guard_exports.EveryAll(value,offset,(element,index3)=>{let nextSchemaPath=`${schemaPath}/items`,nextInstancePath=`${instancePath}/${index3}`;return ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema.items,element)&&context.AddIndex(index3)})}function BuildItems(stack,context,schema,value){return IsItemsSized(schema)?BuildItemsSized(stack,context,schema,value):BuildItemsUnsized(stack,context,schema,value)}function CheckItems(stack,context,schema,value){return IsItemsSized(schema)?CheckItemsSized(stack,context,schema,value):CheckItemsUnsized(stack,context,schema,value)}function ErrorItems(stack,context,schemaPath,instancePath,schema,value){return IsItemsSized(schema)?ErrorItemsSized(stack,context,schemaPath,instancePath,schema,value):ErrorItemsUnsized(stack,context,schemaPath,instancePath,schema,value)}function IsValid3(schema){return IsContains(schema)}function BuildMaxContains(stack,context,schema,value){if(!IsValid3(schema))return emit_exports.Constant(!0);let[item]=[Unique()],count=emit_exports.Counted(value,[item,"_"],BuildSchema(stack,context,schema.contains,item));return emit_exports.IsLessEqualThan(count,emit_exports.Constant(schema.maxContains))}function CheckMaxContains(stack,context,schema,value){if(!IsValid3(schema))return!0;let count=guard_exports.Counted(value,item=>CheckSchema(stack,context,schema.contains,item));return guard_exports.IsLessEqualThan(count,schema.maxContains)}function ErrorMaxContains(stack,context,schemaPath,instancePath,schema,value){let minContains=IsMinContains(schema)?schema.minContains:1;return CheckMaxContains(stack,context,schema,value)||context.AddError({keyword:"contains",schemaPath,instancePath,params:{minContains,maxContains:schema.maxContains}})}function BuildMaximum(_stack,_context,schema,value){return emit_exports.IsLessEqualThan(value,emit_exports.Constant(schema.maximum))}function CheckMaximum(_stack,_context,schema,value){return guard_exports.IsLessEqualThan(value,schema.maximum)}function ErrorMaximum(stack,context,schemaPath,instancePath,schema,value){return CheckMaximum(stack,context,schema,value)||context.AddError({keyword:"maximum",schemaPath,instancePath,params:{comparison:"<=",limit:schema.maximum}})}function BuildMaxItems(_stack,_context,schema,value){return emit_exports.IsLessEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(schema.maxItems))}function CheckMaxItems(_stack,_context,schema,value){return guard_exports.IsLessEqualThan(value.length,schema.maxItems)}function ErrorMaxItems(stack,context,schemaPath,instancePath,schema,value){return CheckMaxItems(stack,context,schema,value)||context.AddError({keyword:"maxItems",schemaPath,instancePath,params:{limit:schema.maxItems}})}function BuildMaxLength(_stack,_context,schema,value){return emit_exports.IsMaxLength(value,emit_exports.Constant(schema.maxLength))}function CheckMaxLength(_stack,_context,schema,value){return guard_exports.IsMaxLength(value,schema.maxLength)}function ErrorMaxLength(stack,context,schemaPath,instancePath,schema,value){return CheckMaxLength(stack,context,schema,value)||context.AddError({keyword:"maxLength",schemaPath,instancePath,params:{limit:schema.maxLength}})}function BuildMaxProperties(_stack,_context,schema,value){return emit_exports.IsLessEqualThan(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(schema.maxProperties))}function CheckMaxProperties(_stack,_context,schema,value){return guard_exports.IsLessEqualThan(guard_exports.Keys(value).length,schema.maxProperties)}function ErrorMaxProperties(stack,context,schemaPath,instancePath,schema,value){return CheckMaxProperties(stack,context,schema,value)||context.AddError({keyword:"maxProperties",schemaPath,instancePath,params:{limit:schema.maxProperties}})}function IsValid4(schema){return IsContains(schema)}function BuildMinContainsStandard(stack,context,schema,value){let[item,index3]=[Unique(),Unique()],count=emit_exports.Counted(value,[item,index3],emit_exports.And(BuildSchema(stack,context,schema.contains,item),context.AddIndex(index3)));return emit_exports.IsGreaterEqualThan(count,emit_exports.Constant(schema.minContains))}function BuildMinContainsFast(stack,context,schema,value){let[item]=[Unique()],count=emit_exports.Counted(value,[item,"_"],BuildSchema(stack,context,schema.contains,item));return emit_exports.IsGreaterEqualThan(count,emit_exports.Constant(schema.minContains))}function BuildMinContains(stack,context,schema,value){return IsValid4(schema)?context.UseUnevaluated()?BuildMinContainsStandard(stack,context,schema,value):BuildMinContainsFast(stack,context,schema,value):emit_exports.Constant(!0)}function CheckMinContains(stack,context,schema,value){if(!IsValid4(schema))return!0;let count=guard_exports.Counted(value,(item,index3)=>CheckSchema(stack,context,schema.contains,item)&&context.AddIndex(index3));return guard_exports.IsGreaterEqualThan(count,schema.minContains)}function ErrorMinContains(stack,context,schemaPath,instancePath,schema,value){return CheckMinContains(stack,context,schema,value)||context.AddError({keyword:"contains",schemaPath,instancePath,params:{minContains:schema.minContains}})}function BuildMinimum(_stack,_context,schema,value){return emit_exports.IsGreaterEqualThan(value,emit_exports.Constant(schema.minimum))}function CheckMinimum(_stack,_context,schema,value){return guard_exports.IsGreaterEqualThan(value,schema.minimum)}function ErrorMinimum(stack,context,schemaPath,instancePath,schema,value){return CheckMinimum(stack,context,schema,value)||context.AddError({keyword:"minimum",schemaPath,instancePath,params:{comparison:">=",limit:schema.minimum}})}function BuildMinItems(_stack,_context,schema,value){return emit_exports.IsGreaterEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(schema.minItems))}function CheckMinItems(_stack,_context,schema,value){return guard_exports.IsGreaterEqualThan(value.length,schema.minItems)}function ErrorMinItems(stack,context,schemaPath,instancePath,schema,value){return CheckMinItems(stack,context,schema,value)||context.AddError({keyword:"minItems",schemaPath,instancePath,params:{limit:schema.minItems}})}function BuildMinLength(_stack,_context,schema,value){return emit_exports.IsMinLength(value,emit_exports.Constant(schema.minLength))}function CheckMinLength(_stack,_context,schema,value){return guard_exports.IsMinLength(value,schema.minLength)}function ErrorMinLength(stack,context,schemaPath,instancePath,schema,value){return CheckMinLength(stack,context,schema,value)||context.AddError({keyword:"minLength",schemaPath,instancePath,params:{limit:schema.minLength}})}function BuildMinProperties(_stack,_context,schema,value){return emit_exports.IsGreaterEqualThan(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(schema.minProperties))}function CheckMinProperties(_stack,_context,schema,value){return guard_exports.IsGreaterEqualThan(guard_exports.Keys(value).length,schema.minProperties)}function ErrorMinProperties(stack,context,schemaPath,instancePath,schema,value){return CheckMinProperties(stack,context,schema,value)||context.AddError({keyword:"minProperties",schemaPath,instancePath,params:{limit:schema.minProperties}})}function BuildMultipleOf(_stack,_context,schema,value){return emit_exports.MultipleOf(value,emit_exports.Constant(schema.multipleOf))}function CheckMultipleOf(_stack,_context,schema,value){return guard_exports.IsMultipleOf(value,schema.multipleOf)}function ErrorMultipleOf(stack,context,schemaPath,instancePath,schema,value){return CheckMultipleOf(stack,context,schema,value)||context.AddError({keyword:"multipleOf",schemaPath,instancePath,params:{multipleOf:schema.multipleOf}})}function BuildNotStandard(stack,context,schema,value){return Reducer(stack,context,[schema.not],value,emit_exports.Not(emit_exports.IsEqual(emit_exports.Member("results","length"),emit_exports.Constant(1))))}function BuildNotFast(stack,context,schema,value){return emit_exports.Not(BuildSchema(stack,context,schema.not,value))}function BuildNot(stack,context,schema,value){return context.UseUnevaluated()?BuildNotStandard(stack,context,schema,value):BuildNotFast(stack,context,schema,value)}function CheckNot(stack,context,schema,value){let nextContext=new CheckContext;return!CheckSchema(stack,nextContext,schema.not,value)&&context.Merge([nextContext])}function ErrorNot(stack,context,schemaPath,instancePath,schema,value){return CheckNot(stack,context,schema,value)||context.AddError({keyword:"not",schemaPath,instancePath,params:{}})}function BuildOneOfStandard(stack,context,schema,value){return Reducer(stack,context,schema.oneOf,value,emit_exports.IsEqual(emit_exports.Member("results","length"),emit_exports.Constant(1)))}function BuildOneOfFast(stack,context,schema,value){let[result]=[Unique()],results=emit_exports.ArrayLiteral(schema.oneOf.map(schema2=>BuildSchema(stack,context,schema2,value))),count=emit_exports.Counted(results,[result,"_"],emit_exports.IsEqual(result,emit_exports.Constant(!0)));return emit_exports.IsEqual(count,emit_exports.Constant(1))}function BuildOneOf(stack,context,schema,value){return context.UseUnevaluated()?BuildOneOfStandard(stack,context,schema,value):BuildOneOfFast(stack,context,schema,value)}function CheckOneOf(stack,context,schema,value){let passedContexts=schema.oneOf.reduce((result,schema2)=>{let nextContext=new CheckContext;return CheckSchema(stack,nextContext,schema2,value)?[...result,nextContext]:result},[]);return guard_exports.IsEqual(passedContexts.length,1)&&context.Merge(passedContexts)}function ErrorOneOf(stack,context,schemaPath,instancePath,schema,value){let failedContexts=[],passingSchemas=[],passedContexts=schema.oneOf.reduce((result,schema2,index3)=>{let nextContext=new ErrorContext,nextSchemaPath=`${schemaPath}/oneOf/${index3}`,isSchema=ErrorSchema(stack,nextContext,nextSchemaPath,instancePath,schema2,value);return isSchema&&passingSchemas.push(index3),isSchema||failedContexts.push(nextContext),isSchema?[...result,nextContext]:result},[]),isOneOf=guard_exports.IsEqual(passedContexts.length,1)&&context.Merge(passedContexts);return!isOneOf&&guard_exports.IsEqual(passingSchemas.length,0)&&failedContexts.forEach(failed=>failed.GetErrors().forEach(error=>context.AddError(error))),isOneOf||context.AddError({keyword:"oneOf",schemaPath,instancePath,params:{passingSchemas}})}function BuildPattern(_stack,_context,schema,value){let regexp=CreateVariable(guard_exports.IsString(schema.pattern)?UnicodeRegExp(schema.pattern):schema.pattern);return emit_exports.Call(emit_exports.Member(regexp,"test"),[value])}function CheckPattern(_stack,_context,schema,value){return(guard_exports.IsString(schema.pattern)?UnicodeRegExp(schema.pattern):schema.pattern).test(value)}function ErrorPattern(stack,context,schemaPath,instancePath,schema,value){return CheckPattern(stack,context,schema,value)||context.AddError({keyword:"pattern",schemaPath,instancePath,params:{pattern:schema.pattern}})}function BuildPatternProperties(stack,context,schema,value){return emit_exports.ReduceAnd(guard_exports.Entries(schema.patternProperties).map(([pattern,schema2])=>{let[key,prop]=[Unique(),Unique()],regexp=CreateVariable(UnicodeRegExp(pattern)),notKey=emit_exports.Not(emit_exports.Call(emit_exports.Member(regexp,"test"),[key])),isSchema=BuildSchemaPushStack(stack,context,schema2,prop),addKey=context.AddKey(key),guarded=context.UseUnevaluated()?emit_exports.Or(notKey,emit_exports.And(isSchema,addKey)):emit_exports.Or(notKey,isSchema);return emit_exports.Every(emit_exports.Entries(value),emit_exports.Constant(0),[`[${key}, ${prop}]`,"_"],guarded)}))}function CheckPatternProperties(stack,context,schema,value){return guard_exports.Every(guard_exports.Entries(schema.patternProperties),0,([pattern,schema2])=>{let regexp=UnicodeRegExp(pattern);return guard_exports.Every(guard_exports.Entries(value),0,([key,prop])=>!regexp.test(key)||CheckSchemaPushStack(stack,context,schema2,prop)&&context.AddKey(key))})}function ErrorPatternProperties(stack,context,schemaPath,instancePath,schema,value){return guard_exports.EveryAll(guard_exports.Entries(schema.patternProperties),0,([pattern,schema2])=>{let nextSchemaPath=`${schemaPath}/patternProperties/${pattern}`,regexp=UnicodeRegExp(pattern);return guard_exports.EveryAll(guard_exports.Entries(value),0,([key,value2])=>{let nextInstancePath=`${instancePath}/${key}`;return!regexp.test(key)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema2,value2)&&context.AddKey(key)})})}function BuildPrefixItems(stack,context,schema,value){return emit_exports.ReduceAnd(schema.prefixItems.map((schema2,index3)=>{let isLength=emit_exports.IsLessEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(index3)),isSchema=BuildSchemaPushStack(stack,context,schema2,`${value}[${index3}]`),addIndex=context.AddIndex(emit_exports.Constant(index3)),guarded=context.UseUnevaluated()?emit_exports.And(isSchema,addIndex):isSchema;return emit_exports.Or(isLength,guarded)}))}function CheckPrefixItems(stack,context,schema,value){return guard_exports.IsEqual(value.length,0)||guard_exports.Every(schema.prefixItems,0,(schema2,index3)=>guard_exports.IsLessEqualThan(value.length,index3)||CheckSchemaPushStack(stack,context,schema2,value[index3])&&context.AddIndex(index3))}function ErrorPrefixItems(stack,context,schemaPath,instancePath,schema,value){return guard_exports.IsEqual(value.length,0)||guard_exports.EveryAll(schema.prefixItems,0,(schema2,index3)=>{let nextSchemaPath=`${schemaPath}/prefixItems/${index3}`,nextInstancePath=`${instancePath}/${index3}`;return guard_exports.IsLessEqualThan(value.length,index3)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema2,value[index3])&&context.AddIndex(index3)})}function IsExactOptional(required,key){return required.includes(key)||settings_exports.Get().exactOptionalPropertyTypes}function InexactOptionalBuild(value,key){return emit_exports.IsUndefined(emit_exports.Member(value,key))}function InexactOptionalCheck(value,key){return guard_exports.IsUndefined(value[key])}function BuildProperties(stack,context,schema,value){let required=IsRequired(schema)?schema.required:[],everyKey=guard_exports.Entries(schema.properties).map(([key,schema2])=>{let notKey=emit_exports.Not(emit_exports.HasPropertyKey(value,emit_exports.Constant(key))),isSchema=BuildSchemaPushStack(stack,context,schema2,emit_exports.Member(value,key)),addKey=context.AddKey(emit_exports.Constant(key)),guarded=context.UseUnevaluated()?emit_exports.And(isSchema,addKey):isSchema,isProperty=required.includes(key)?guarded:emit_exports.Or(notKey,guarded);return IsExactOptional(required,key)?isProperty:emit_exports.Or(InexactOptionalBuild(value,key),isProperty)});return emit_exports.ReduceAnd(everyKey)}function CheckProperties(stack,context,schema,value){let required=IsRequired(schema)?schema.required:[];return guard_exports.Every(guard_exports.Entries(schema.properties),0,([key,schema2])=>{let isProperty=!guard_exports.HasPropertyKey(value,key)||CheckSchemaPushStack(stack,context,schema2,value[key])&&context.AddKey(key);return IsExactOptional(required,key)?isProperty:InexactOptionalCheck(value,key)||isProperty})}function ErrorProperties(stack,context,schemaPath,instancePath,schema,value){let required=IsRequired(schema)?schema.required:[];return guard_exports.EveryAll(guard_exports.Entries(schema.properties),0,([key,schema2])=>{let nextSchemaPath=`${schemaPath}/properties/${key}`,nextInstancePath=`${instancePath}/${key}`,isProperty=()=>!guard_exports.HasPropertyKey(value,key)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema2,value[key])&&context.AddKey(key);return IsExactOptional(required,key)?isProperty():InexactOptionalCheck(value,key)||isProperty()})}function BuildPropertyNames(stack,context,schema,value){let[key,_index]=[Unique(),Unique()];return emit_exports.Every(emit_exports.Keys(value),emit_exports.Constant(0),[key,_index],BuildSchema(stack,context,schema.propertyNames,key))}function CheckPropertyNames(stack,context,schema,value){return guard_exports.Every(guard_exports.Keys(value),0,(key,_index)=>CheckSchema(stack,context,schema.propertyNames,key))}function ErrorPropertyNames(stack,context,schemaPath,instancePath,schema,value){let propertyNames=[];return guard_exports.EveryAll(guard_exports.Keys(value),0,(key,_index)=>{let nextInstancePath=`${instancePath}/${key}`,nextSchemaPath=`${schemaPath}/propertyNames`,isPropertyName=ErrorSchema(stack,context,nextSchemaPath,nextInstancePath,schema.propertyNames,key);return isPropertyName||propertyNames.push(key),isPropertyName})||context.AddError({keyword:"propertyNames",schemaPath,instancePath,params:{propertyNames}})}function BuildRecursiveRef(stack,context,schema,value){let target=stack.RecursiveRef(schema)??!1;return CreateFunction(stack,context,target,value)}function CheckRecursiveRef(stack,context,schema,value){let target=stack.RecursiveRef(schema)??!1;return IsSchema2(target)&&CheckSchema(stack,context,target,value)}function ErrorRecursiveRef(stack,context,_schemaPath,instancePath,schema,value){let target=stack.RecursiveRef(schema)??!1;return IsSchema2(target)&&ErrorSchema(stack,context,"#",instancePath,target,value)}function BuildRefStandard(stack,context,target,value){let interior=emit_exports.ArrowFunction(["context","value"],CreateFunction(stack,context,target,"value")),exterior=emit_exports.ArrowFunction(["context","value"],emit_exports.Statements([emit_exports.ConstDeclaration("nextContext",emit_exports.New("CheckContext",[])),emit_exports.ConstDeclaration("result",emit_exports.Call(interior,["nextContext","value"])),emit_exports.If("result",context.Merge("[nextContext]")),emit_exports.Return("result")]));return emit_exports.Call(exterior,["context",value])}function BuildRefFast(stack,context,target,value){return CreateFunction(stack,context,target,value)}function BuildRef(stack,context,schema,value){let target=stack.Ref(schema)??!1;return context.UseUnevaluated()?BuildRefStandard(stack,context,target,value):BuildRefFast(stack,context,target,value)}function CheckRef(stack,context,schema,value){let target=stack.Ref(schema)??!1,nextContext=new CheckContext,result=IsSchema2(target)&&CheckSchema(stack,nextContext,target,value);return result&&context.Merge([nextContext]),result}function ErrorRef(stack,context,_schemaPath,instancePath,schema,value){let target=stack.Ref(schema)??!1,nextContext=new ErrorContext,result=IsSchema2(target)&&ErrorSchema(stack,nextContext,"#",instancePath,target,value);return result&&context.Merge([nextContext]),result||nextContext.GetErrors().forEach(error=>context.AddError(error)),result}function BuildRequired(_stack,_context,schema,value){return emit_exports.ReduceAnd(schema.required.map(key=>emit_exports.HasPropertyKey(value,emit_exports.Constant(key))))}function CheckRequired(_stack,_context,schema,value){return guard_exports.Every(schema.required,0,key=>guard_exports.HasPropertyKey(value,key))}function ErrorRequired(_stack,context,schemaPath,instancePath,schema,value){let requiredProperties=[];return guard_exports.EveryAll(schema.required,0,key=>{let hasKey=guard_exports.HasPropertyKey(value,key);return hasKey||requiredProperties.push(key),hasKey})||context.AddError({keyword:"required",schemaPath,instancePath,params:{requiredProperties}})}function BuildTypeName(_stack,_context,type,value){return guard_exports.IsEqual(type,"object")?emit_exports.IsObjectNotArray(value):guard_exports.IsEqual(type,"array")?emit_exports.IsArray(value):guard_exports.IsEqual(type,"boolean")?emit_exports.IsBoolean(value):guard_exports.IsEqual(type,"integer")?emit_exports.IsInteger(value):guard_exports.IsEqual(type,"number")?emit_exports.IsNumber(value):guard_exports.IsEqual(type,"null")?emit_exports.IsNull(value):guard_exports.IsEqual(type,"string")?emit_exports.IsString(value):guard_exports.IsEqual(type,"bigint")?emit_exports.IsBigInt(value):guard_exports.IsEqual(type,"constructor")?emit_exports.IsConstructor(value):guard_exports.IsEqual(type,"function")?emit_exports.IsFunction(value):guard_exports.IsEqual(type,"symbol")?emit_exports.IsSymbol(value):guard_exports.IsEqual(type,"undefined")?emit_exports.IsUndefined(value):guard_exports.IsEqual(type,"void")?emit_exports.IsUndefined(value):emit_exports.Constant(!0)}function CheckTypeName(_stack,_context,type,_schema,value){return guard_exports.IsEqual(type,"object")?guard_exports.IsObjectNotArray(value):guard_exports.IsEqual(type,"array")?guard_exports.IsArray(value):guard_exports.IsEqual(type,"boolean")?guard_exports.IsBoolean(value):guard_exports.IsEqual(type,"integer")?guard_exports.IsInteger(value):guard_exports.IsEqual(type,"number")?guard_exports.IsNumber(value):guard_exports.IsEqual(type,"null")?guard_exports.IsNull(value):guard_exports.IsEqual(type,"string")?guard_exports.IsString(value):guard_exports.IsEqual(type,"bigint")?guard_exports.IsBigInt(value):guard_exports.IsEqual(type,"constructor")?guard_exports.IsConstructor(value):guard_exports.IsEqual(type,"function")?guard_exports.IsFunction(value):guard_exports.IsEqual(type,"symbol")?guard_exports.IsSymbol(value):guard_exports.IsEqual(type,"undefined")?guard_exports.IsUndefined(value):guard_exports.IsEqual(type,"void")?guard_exports.IsUndefined(value):!0}function BuildTypeNames(stack,context,typenames,value){return emit_exports.ReduceOr(typenames.map(type=>BuildTypeName(stack,context,type,value)))}function CheckTypeNames(stack,context,types,schema,value){return guard_exports.Some(types,type=>CheckTypeName(stack,context,type,schema,value))}function BuildType(stack,context,schema,value){return guard_exports.IsArray(schema.type)?BuildTypeNames(stack,context,schema.type,value):BuildTypeName(stack,context,schema.type,value)}function CheckType(stack,context,schema,value){return guard_exports.IsArray(schema.type)?CheckTypeNames(stack,context,schema.type,schema,value):CheckTypeName(stack,context,schema.type,schema,value)}function ErrorType(stack,context,schemaPath,instancePath,schema,value){return(guard_exports.IsArray(schema.type)?CheckTypeNames(stack,context,schema.type,schema,value):CheckTypeName(stack,context,schema.type,schema,value))||context.AddError({keyword:"type",schemaPath,instancePath,params:{type:schema.type}})}function BuildUnevaluatedItems(stack,context,schema,value){let[index3,item]=[Unique(),Unique()],indices=emit_exports.Call(emit_exports.Member("context","GetIndices"),[]),hasIndex=emit_exports.Call(emit_exports.Member("indices","has"),[index3]),isSchema=BuildSchema(stack,context,schema.unevaluatedItems,item),addIndex=emit_exports.Call(emit_exports.Member("context","AddIndex"),[index3]),isEvery=emit_exports.Every(value,emit_exports.Constant(0),[item,index3],emit_exports.And(emit_exports.Or(hasIndex,isSchema),addIndex));return emit_exports.Call(emit_exports.ArrowFunction(["context"],emit_exports.Statements([emit_exports.ConstDeclaration("indices",indices),emit_exports.Return(isEvery)])),["context"])}function CheckUnevaluatedItems(stack,context,schema,value){let indices=context.GetIndices();return guard_exports.Every(value,0,(item,index3)=>(indices.has(index3)||CheckSchema(stack,context,schema.unevaluatedItems,item))&&context.AddIndex(index3))}function ErrorUnevaluatedItems(stack,context,schemaPath,instancePath,schema,value){let indices=context.GetIndices(),unevaluatedItems=[];return guard_exports.EveryAll(value,0,(item,index3)=>{let nextContext=new ErrorContext,isEvaluatedItem=(indices.has(index3)||ErrorSchema(stack,nextContext,schemaPath,instancePath,schema.unevaluatedItems,item))&&context.AddIndex(index3);return isEvaluatedItem||unevaluatedItems.push(index3),isEvaluatedItem})||context.AddError({keyword:"unevaluatedItems",schemaPath,instancePath,params:{unevaluatedItems}})}function BuildUnevaluatedProperties(stack,context,schema,value){let[key,prop]=[Unique(),Unique()],keys=emit_exports.Call(emit_exports.Member("context","GetKeys"),[]),hasKey=emit_exports.Call(emit_exports.Member("keys","has"),[key]),addKey=emit_exports.Call(emit_exports.Member("context","AddKey"),[key]),isSchema=BuildSchema(stack,context,schema.unevaluatedProperties,prop),isEvery=emit_exports.Every(emit_exports.Entries(value),emit_exports.Constant(0),[`[${key}, ${prop}]`,"_"],emit_exports.Or(hasKey,emit_exports.And(isSchema,addKey)));return emit_exports.Call(emit_exports.ArrowFunction(["context"],emit_exports.Statements([emit_exports.ConstDeclaration("keys",keys),emit_exports.Return(isEvery)])),["context"])}function CheckUnevaluatedProperties(stack,context,schema,value){let keys=context.GetKeys();return guard_exports.Every(guard_exports.Entries(value),0,([key,prop])=>keys.has(key)||CheckSchema(stack,context,schema.unevaluatedProperties,prop)&&context.AddKey(key))}function ErrorUnevaluatedProperties(stack,context,schemaPath,instancePath,schema,value){let keys=context.GetKeys(),unevaluatedProperties=[];return guard_exports.EveryAll(guard_exports.Entries(value),0,([key,prop])=>{let nextContext=new ErrorContext,isEvaluatedProperty=keys.has(key)||ErrorSchema(stack,nextContext,schemaPath,instancePath,schema.unevaluatedProperties,prop)&&context.AddKey(key);return isEvaluatedProperty||unevaluatedProperties.push(key),isEvaluatedProperty})||context.AddError({keyword:"unevaluatedProperties",schemaPath,instancePath,params:{unevaluatedProperties}})}function IsValid5(schema){return!guard_exports.IsEqual(schema.uniqueItems,!1)}function BuildUniqueItems(_stack,_context,schema,value){if(!IsValid5(schema))return emit_exports.Constant(!0);let set=emit_exports.Member(emit_exports.New("Set",[emit_exports.Call(emit_exports.Member(value,"map"),[emit_exports.Member("Hashing","Hash")])]),"size"),isLength=emit_exports.Member(value,"length");return emit_exports.IsEqual(set,isLength)}function CheckUniqueItems(_stack,_context,schema,value){if(!IsValid5(schema))return!0;let set=new Set(value.map(hash_exports.Hash)).size,isLength=value.length;return guard_exports.IsEqual(set,isLength)}function ErrorUniqueItems(_stack,context,schemaPath,instancePath,schema,value){if(!IsValid5(schema))return!0;let set=new Set,duplicateItems=value.reduce((result,value2,index3)=>{let hash=hash_exports.Hash(value2);return set.has(hash)?[...result,index3]:(set.add(hash),result)},[]);return guard_exports.IsEqual(duplicateItems.length,0)||context.AddError({keyword:"uniqueItems",schemaPath,instancePath,params:{duplicateItems}})}function HasTypeName(schema,typename){return IsType(schema)&&(guard_exports.IsArray(schema.type)&&guard_exports.IsGreaterThan(schema.type.length,0)&&guard_exports.Every(schema.type,0,type=>guard_exports.IsEqual(type,typename))||guard_exports.IsEqual(schema.type,typename))}function HasObjectType(schema){return HasTypeName(schema,"object")}function HasObjectKeywords(schema){return IsSchemaObject(schema)&&(IsAdditionalProperties(schema)||IsDependencies(schema)||IsDependentRequired(schema)||IsDependentSchemas(schema)||IsProperties(schema)||IsPatternProperties(schema)||IsPropertyNames(schema)||IsMinProperties(schema)||IsMaxProperties(schema)||IsRequired(schema)||IsUnevaluatedProperties(schema))}function HasArrayType(schema){return HasTypeName(schema,"array")}function HasArrayKeywords(schema){return IsSchemaObject(schema)&&(IsAdditionalItems(schema)||IsItems(schema)||IsContains(schema)||IsMaxContains(schema)||IsMaxItems(schema)||IsMinContains(schema)||IsMinItems(schema)||IsPrefixItems(schema)||IsUnevaluatedItems(schema)||IsUniqueItems(schema))}function HasStringType(schema){return HasTypeName(schema,"string")}function HasStringKeywords(schema){return IsSchemaObject(schema)&&(IsMinLength(schema)||IsMaxLength(schema)||IsFormat(schema)||IsPattern(schema))}function HasNumberType(schema){return HasTypeName(schema,"number")||HasTypeName(schema,"bigint")}function HasNumberKeywords(schema){return IsSchemaObject(schema)&&(IsMinimum(schema)||IsMaximum(schema)||IsExclusiveMaximum(schema)||IsExclusiveMinimum(schema)||IsMultipleOf(schema))}function BuildSchemaPushStack(stack,context,schema,value){return context.UseUnevaluated()?emit_exports.And(emit_exports.And(context.Push(),BuildSchema(stack,context,schema,value)),context.Pop()):BuildSchema(stack,context,schema,value)}function BuildSchema(stack,context,schema,value){stack.Push(schema);let conditions=[];if(IsSchemaBoolean(schema))return BuildSchemaBoolean(stack,context,schema,value);if(IsType(schema)&&conditions.push(BuildType(stack,context,schema,value)),HasObjectKeywords(schema)){let constraints=[];IsRequired(schema)&&constraints.push(BuildRequired(stack,context,schema,value)),IsAdditionalProperties(schema)&&constraints.push(BuildAdditionalProperties(stack,context,schema,value)),IsDependencies(schema)&&constraints.push(BuildDependencies(stack,context,schema,value)),IsDependentRequired(schema)&&constraints.push(BuildDependentRequired(stack,context,schema,value)),IsDependentSchemas(schema)&&constraints.push(BuildDependentSchemas(stack,context,schema,value)),IsPatternProperties(schema)&&constraints.push(BuildPatternProperties(stack,context,schema,value)),IsProperties(schema)&&constraints.push(BuildProperties(stack,context,schema,value)),IsPropertyNames(schema)&&constraints.push(BuildPropertyNames(stack,context,schema,value)),IsMinProperties(schema)&&constraints.push(BuildMinProperties(stack,context,schema,value)),IsMaxProperties(schema)&&constraints.push(BuildMaxProperties(stack,context,schema,value));let reduced=emit_exports.ReduceAnd(constraints),guarded=emit_exports.Or(emit_exports.Not(emit_exports.IsObjectNotArray(value)),reduced);conditions.push(HasObjectType(schema)?reduced:guarded)}if(HasArrayKeywords(schema)){let constraints=[];IsAdditionalItems(schema)&&constraints.push(BuildAdditionalItems(stack,context,schema,value)),IsContains(schema)&&constraints.push(BuildContains(stack,context,schema,value)),IsItems(schema)&&constraints.push(BuildItems(stack,context,schema,value)),IsMaxContains(schema)&&constraints.push(BuildMaxContains(stack,context,schema,value)),IsMaxItems(schema)&&constraints.push(BuildMaxItems(stack,context,schema,value)),IsMinContains(schema)&&constraints.push(BuildMinContains(stack,context,schema,value)),IsMinItems(schema)&&constraints.push(BuildMinItems(stack,context,schema,value)),IsPrefixItems(schema)&&constraints.push(BuildPrefixItems(stack,context,schema,value)),IsUniqueItems(schema)&&constraints.push(BuildUniqueItems(stack,context,schema,value));let reduced=emit_exports.ReduceAnd(constraints),guarded=emit_exports.Or(emit_exports.Not(emit_exports.IsArray(value)),reduced);conditions.push(HasArrayType(schema)?reduced:guarded)}if(HasStringKeywords(schema)){let constraints=[];IsMaxLength(schema)&&constraints.push(BuildMaxLength(stack,context,schema,value)),IsMinLength(schema)&&constraints.push(BuildMinLength(stack,context,schema,value)),IsFormat(schema)&&constraints.push(BuildFormat(stack,context,schema,value)),IsPattern(schema)&&constraints.push(BuildPattern(stack,context,schema,value));let reduced=emit_exports.ReduceAnd(constraints),guarded=emit_exports.Or(emit_exports.Not(emit_exports.IsString(value)),reduced);conditions.push(HasStringType(schema)?reduced:guarded)}if(HasNumberKeywords(schema)){let constraints=[];IsExclusiveMaximum(schema)&&constraints.push(BuildExclusiveMaximum(stack,context,schema,value)),IsExclusiveMinimum(schema)&&constraints.push(BuildExclusiveMinimum(stack,context,schema,value)),IsMaximum(schema)&&constraints.push(BuildMaximum(stack,context,schema,value)),IsMinimum(schema)&&constraints.push(BuildMinimum(stack,context,schema,value)),IsMultipleOf(schema)&&constraints.push(BuildMultipleOf(stack,context,schema,value));let reduced=emit_exports.ReduceAnd(constraints),guarded=emit_exports.Or(emit_exports.Not(emit_exports.Or(emit_exports.IsNumber(value),emit_exports.IsBigInt(value))),reduced);conditions.push(HasNumberType(schema)?reduced:guarded)}IsRef2(schema)&&conditions.push(BuildRef(stack,context,schema,value)),IsRecursiveRef(schema)&&conditions.push(BuildRecursiveRef(stack,context,schema,value)),IsDynamicRef(schema)&&conditions.push(BuildDynamicRef(stack,context,schema,value)),IsConst(schema)&&conditions.push(BuildConst(stack,context,schema,value)),IsEnum2(schema)&&conditions.push(BuildEnum(stack,context,schema,value)),IsIf(schema)&&conditions.push(BuildIf(stack,context,schema,value)),IsNot(schema)&&conditions.push(BuildNot(stack,context,schema,value)),IsAllOf(schema)&&conditions.push(BuildAllOf(stack,context,schema,value)),IsAnyOf(schema)&&conditions.push(BuildAnyOf(stack,context,schema,value)),IsOneOf(schema)&&conditions.push(BuildOneOf(stack,context,schema,value)),IsUnevaluatedItems(schema)&&conditions.push(emit_exports.Or(emit_exports.Not(emit_exports.IsArray(value)),BuildUnevaluatedItems(stack,context,schema,value))),IsUnevaluatedProperties(schema)&&conditions.push(emit_exports.Or(emit_exports.Not(emit_exports.IsObject(value)),BuildUnevaluatedProperties(stack,context,schema,value))),IsRefine2(schema)&&conditions.push(BuildRefine(stack,context,schema,value));let result=emit_exports.ReduceAnd(conditions);return stack.Pop(schema),result}function CheckSchemaPushStack(stack,context,schema,value){return context.Push()&&CheckSchema(stack,context,schema,value)&&context.Pop()}function CheckSchema(stack,context,schema,value){stack.Push(schema);let result=IsSchemaBoolean(schema)?CheckSchemaBoolean(stack,context,schema,value):(!IsType(schema)||CheckType(stack,context,schema,value))&&(!(guard_exports.IsObject(value)&&!guard_exports.IsArray(value))||(!IsRequired(schema)||CheckRequired(stack,context,schema,value))&&(!IsAdditionalProperties(schema)||CheckAdditionalProperties(stack,context,schema,value))&&(!IsDependencies(schema)||CheckDependencies(stack,context,schema,value))&&(!IsDependentRequired(schema)||CheckDependentRequired(stack,context,schema,value))&&(!IsDependentSchemas(schema)||CheckDependentSchemas(stack,context,schema,value))&&(!IsPatternProperties(schema)||CheckPatternProperties(stack,context,schema,value))&&(!IsProperties(schema)||CheckProperties(stack,context,schema,value))&&(!IsPropertyNames(schema)||CheckPropertyNames(stack,context,schema,value))&&(!IsMinProperties(schema)||CheckMinProperties(stack,context,schema,value))&&(!IsMaxProperties(schema)||CheckMaxProperties(stack,context,schema,value)))&&(!guard_exports.IsArray(value)||(!IsAdditionalItems(schema)||CheckAdditionalItems(stack,context,schema,value))&&(!IsContains(schema)||CheckContains(stack,context,schema,value))&&(!IsItems(schema)||CheckItems(stack,context,schema,value))&&(!IsMaxContains(schema)||CheckMaxContains(stack,context,schema,value))&&(!IsMaxItems(schema)||CheckMaxItems(stack,context,schema,value))&&(!IsMinContains(schema)||CheckMinContains(stack,context,schema,value))&&(!IsMinItems(schema)||CheckMinItems(stack,context,schema,value))&&(!IsPrefixItems(schema)||CheckPrefixItems(stack,context,schema,value))&&(!IsUniqueItems(schema)||CheckUniqueItems(stack,context,schema,value)))&&(!guard_exports.IsString(value)||(!IsMaxLength(schema)||CheckMaxLength(stack,context,schema,value))&&(!IsMinLength(schema)||CheckMinLength(stack,context,schema,value))&&(!IsFormat(schema)||CheckFormat(stack,context,schema,value))&&(!IsPattern(schema)||CheckPattern(stack,context,schema,value)))&&(!(guard_exports.IsNumber(value)||guard_exports.IsBigInt(value))||(!IsExclusiveMaximum(schema)||CheckExclusiveMaximum(stack,context,schema,value))&&(!IsExclusiveMinimum(schema)||CheckExclusiveMinimum(stack,context,schema,value))&&(!IsMaximum(schema)||CheckMaximum(stack,context,schema,value))&&(!IsMinimum(schema)||CheckMinimum(stack,context,schema,value))&&(!IsMultipleOf(schema)||CheckMultipleOf(stack,context,schema,value)))&&(!IsRef2(schema)||CheckRef(stack,context,schema,value))&&(!IsRecursiveRef(schema)||CheckRecursiveRef(stack,context,schema,value))&&(!IsDynamicRef(schema)||CheckDynamicRef(stack,context,schema,value))&&(!IsConst(schema)||CheckConst(stack,context,schema,value))&&(!IsEnum2(schema)||CheckEnum(stack,context,schema,value))&&(!IsIf(schema)||CheckIf(stack,context,schema,value))&&(!IsNot(schema)||CheckNot(stack,context,schema,value))&&(!IsAllOf(schema)||CheckAllOf(stack,context,schema,value))&&(!IsAnyOf(schema)||CheckAnyOf(stack,context,schema,value))&&(!IsOneOf(schema)||CheckOneOf(stack,context,schema,value))&&(!IsUnevaluatedItems(schema)||!guard_exports.IsArray(value)||CheckUnevaluatedItems(stack,context,schema,value))&&(!IsUnevaluatedProperties(schema)||!guard_exports.IsObject(value)||CheckUnevaluatedProperties(stack,context,schema,value))&&(!IsRefine2(schema)||CheckRefine(stack,context,schema,value));return stack.Pop(schema),result}function ErrorSchemaPushStack(stack,context,schemaPath,instancePath,schema,value){return context.Push()&&ErrorSchema(stack,context,schemaPath,instancePath,schema,value)&&context.Pop()}function ErrorSchema(stack,context,schemaPath,instancePath,schema,value){if(context.AtCapacity())return!1;stack.Push(schema);let result=IsSchemaBoolean(schema)?ErrorSchemaBoolean(stack,context,schemaPath,instancePath,schema,value):!!(+(!IsType(schema)||ErrorType(stack,context,schemaPath,instancePath,schema,value))&+(!(guard_exports.IsObject(value)&&!guard_exports.IsArray(value))||!!(+(!IsRequired(schema)||ErrorRequired(stack,context,schemaPath,instancePath,schema,value))&+(!IsAdditionalProperties(schema)||ErrorAdditionalProperties(stack,context,schemaPath,instancePath,schema,value))&+(!IsDependencies(schema)||ErrorDependencies(stack,context,schemaPath,instancePath,schema,value))&+(!IsDependentRequired(schema)||ErrorDependentRequired(stack,context,schemaPath,instancePath,schema,value))&+(!IsDependentSchemas(schema)||ErrorDependentSchemas(stack,context,schemaPath,instancePath,schema,value))&+(!IsPatternProperties(schema)||ErrorPatternProperties(stack,context,schemaPath,instancePath,schema,value))&+(!IsProperties(schema)||ErrorProperties(stack,context,schemaPath,instancePath,schema,value))&+(!IsPropertyNames(schema)||ErrorPropertyNames(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinProperties(schema)||ErrorMinProperties(stack,context,schemaPath,instancePath,schema,value))&+(!IsMaxProperties(schema)||ErrorMaxProperties(stack,context,schemaPath,instancePath,schema,value))))&+(!guard_exports.IsArray(value)||!!(+(!IsAdditionalItems(schema)||ErrorAdditionalItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsContains(schema)||ErrorContains(stack,context,schemaPath,instancePath,schema,value))&+(!IsItems(schema)||ErrorItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsMaxContains(schema)||ErrorMaxContains(stack,context,schemaPath,instancePath,schema,value))&+(!IsMaxItems(schema)||ErrorMaxItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinContains(schema)||ErrorMinContains(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinItems(schema)||ErrorMinItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsPrefixItems(schema)||ErrorPrefixItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsUniqueItems(schema)||ErrorUniqueItems(stack,context,schemaPath,instancePath,schema,value))))&+(!guard_exports.IsString(value)||!!(+(!IsMaxLength(schema)||ErrorMaxLength(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinLength(schema)||ErrorMinLength(stack,context,schemaPath,instancePath,schema,value))&+(!IsFormat(schema)||ErrorFormat(stack,context,schemaPath,instancePath,schema,value))&+(!IsPattern(schema)||ErrorPattern(stack,context,schemaPath,instancePath,schema,value))))&+(!(guard_exports.IsNumber(value)||guard_exports.IsBigInt(value))||!!(+(!IsExclusiveMaximum(schema)||ErrorExclusiveMaximum(stack,context,schemaPath,instancePath,schema,value))&+(!IsExclusiveMinimum(schema)||ErrorExclusiveMinimum(stack,context,schemaPath,instancePath,schema,value))&+(!IsMaximum(schema)||ErrorMaximum(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinimum(schema)||ErrorMinimum(stack,context,schemaPath,instancePath,schema,value))&+(!IsMultipleOf(schema)||ErrorMultipleOf(stack,context,schemaPath,instancePath,schema,value))))&+(!IsRef2(schema)||ErrorRef(stack,context,schemaPath,instancePath,schema,value))&+(!IsRecursiveRef(schema)||ErrorRecursiveRef(stack,context,schemaPath,instancePath,schema,value))&+(!IsDynamicRef(schema)||ErrorDynamicRef(stack,context,schemaPath,instancePath,schema,value))&+(!IsConst(schema)||ErrorConst(stack,context,schemaPath,instancePath,schema,value))&+(!IsEnum2(schema)||ErrorEnum(stack,context,schemaPath,instancePath,schema,value))&+(!IsIf(schema)||ErrorIf(stack,context,schemaPath,instancePath,schema,value))&+(!IsNot(schema)||ErrorNot(stack,context,schemaPath,instancePath,schema,value))&+(!IsAllOf(schema)||ErrorAllOf(stack,context,schemaPath,instancePath,schema,value))&+(!IsAnyOf(schema)||ErrorAnyOf(stack,context,schemaPath,instancePath,schema,value))&+(!IsOneOf(schema)||ErrorOneOf(stack,context,schemaPath,instancePath,schema,value))&+(!IsUnevaluatedItems(schema)||!guard_exports.IsArray(value)||ErrorUnevaluatedItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsUnevaluatedProperties(schema)||!guard_exports.IsObject(value)||ErrorUnevaluatedProperties(stack,context,schemaPath,instancePath,schema,value)))&&(!IsRefine2(schema)||ErrorRefine(stack,context,schemaPath,instancePath,schema,value));return stack.Pop(schema),result}var index2=[0],names=new Map,funcs=new Map;function NextName(){return`${index2[0]++}`}function CreateName(schema,href){names.has(schema)||names.set(schema,new Map);let hrefs=names.get(schema);if(hrefs.has(href))return hrefs.get(href);let name=NextName();return hrefs.set(href,name),name}function CreateCallExpression(context,_schema,name,value){return context.UseUnevaluated()?emit_exports.Call(`check_${name}`,["context",value]):emit_exports.Call(`check_${name}`,[value])}function CreateFunctionExpression(stack,context,schema,name){let expression=BuildSchema(stack,context,schema,"value");return context.UseUnevaluated()?emit_exports.ConstDeclaration(`check_${name}`,emit_exports.ArrowFunction(["context","value"],expression)):emit_exports.ConstDeclaration(`check_${name}`,emit_exports.ArrowFunction(["value"],expression))}function ResetFunctions(){index2[0]=0,names.clear(),funcs.clear()}function GetFunctions(){return[...funcs.values()]}function CreateFunction(stack,context,schema,value){let name=CreateName(schema,stack.LexicalBaseURL()),call=CreateCallExpression(context,schema,name,value);return funcs.has(name)||(funcs.set(name,""),funcs.set(name,CreateFunctionExpression(stack,context,schema,name))),call}var resolve_exports={};__export(resolve_exports,{Base:()=>Base,DefaultBase:()=>DefaultBase,DynamicRef:()=>DynamicRef,Ref:()=>Ref2,ResolveDynamicRef:()=>ResolveDynamicRef,ResolveRecursiveRef:()=>ResolveRecursiveRef,ResolveRef:()=>ResolveRef,Resource:()=>Resource});var pointer_exports={};__export(pointer_exports,{Delete:()=>Delete,Get:()=>Get3,Has:()=>Has2,Indices:()=>Indices,Set:()=>Set3});function AssertNotRoot(indices){if(indices.length===0)throw Error("Cannot set root")}function AssertCanSet(value){if(!guard_exports.IsObject(value))throw Error("Cannot set value")}function AssertIndex(index3){if(guard_exports.IsUnsafePropertyKey(index3))throw Error("Pointer contains unsafe property key")}function AssertIndices(indices){for(let index3 of indices)AssertIndex(index3)}function IsNumericIndex(index3){return/^(0|[1-9]\d*)$/.test(index3)}function TakeIndexRight(indices){return[indices.slice(0,indices.length-1),indices.slice(indices.length-1)[0]]}function HasIndex(index3,value){return guard_exports.IsObject(value)&&guard_exports.HasPropertyKey(value,index3)}function GetIndex(index3,value){return guard_exports.IsObject(value)&&!guard_exports.IsUnsafePropertyKey(index3)?value[index3]:void 0}function GetIndices(indices,value){return indices.reduce((value2,index3)=>GetIndex(index3,value2),value)}function Indices(pointer){if(guard_exports.IsEqual(pointer.length,0))return[];let indices=pointer.split("/").map(index3=>index3.replace(/~1/g,"/").replace(/~0/g,"~"));return indices.length>0&&indices[0]===""?indices.slice(1):indices}function Has2(value,pointer){let current=value;return Indices(pointer).every(index3=>HasIndex(index3,current)?(current=current[index3],!0):!1)}function Get3(value,pointer){let indices=Indices(pointer);return GetIndices(indices,value)}function Set3(value,pointer,next){let indices=Indices(pointer);AssertNotRoot(indices),AssertIndices(indices);let[head,index3]=TakeIndexRight(indices),parent=GetIndices(head,value);return AssertCanSet(parent),parent[index3]=next,value}function Delete(value,pointer){let indices=Indices(pointer);AssertNotRoot(indices),AssertIndices(indices);let[head,index3]=TakeIndexRight(indices),parent=GetIndices(head,value);return AssertCanSet(parent),guard_exports.IsArray(parent)&&IsNumericIndex(index3)?parent.splice(+index3,1):delete parent[index3],value}var DefaultBase="https://json-schema.org";function FindDynamicAnchor(schema,name){if(guard_exports.IsObject(schema)&&IsDynamicAnchor(schema)&&guard_exports.IsEqual(schema.$dynamicAnchor,name))return schema;if(guard_exports.IsObject(schema))for(let key of guard_exports.Keys(schema)){let result=FindDynamicAnchor(schema[key],name);if(result)return result}}function FindBase(schema,base,target){if(guard_exports.IsEqual(schema,target))return base.href;let nextBase=IsSchemaObject(schema)&&IsId(schema)?new URL(schema.$id,base.href):base;if(guard_exports.IsArray(schema))for(let item of schema){let result=FindBase(item,nextBase,target);if(!guard_exports.IsUndefined(result))return result}else if(guard_exports.IsObject(schema))for(let key of guard_exports.Keys(schema)){let result=FindBase(schema[key],nextBase,target);if(!guard_exports.IsUndefined(result))return result}}function MatchId(schema,base,ref){if(guard_exports.IsEqual(schema.$id,ref.hash))return schema;let absoluteRef=new URL(ref.href,base.href);if(guard_exports.IsEqual(base.pathname,absoluteRef.pathname))return ref.hash.startsWith("#")?MatchHash(schema,ref):schema}function MatchAnchor(schema,base,ref){let absoluteAnchor=new URL(`#${schema.$anchor}`,base.href),absoluteRef=new URL(ref.href,base.href);return guard_exports.IsEqual(absoluteAnchor.href,absoluteRef.href)?schema:void 0}function MatchDynamicAnchor(schema,base,ref){let absoluteAnchor=new URL(`#${schema.$dynamicAnchor}`,base.href),absoluteRef=new URL(ref.href,base.href);return guard_exports.IsEqual(absoluteAnchor.href,absoluteRef.href)?schema:void 0}function MatchHash(schema,ref){if(ref.href.endsWith("#"))return schema;if(!ref.hash.startsWith("#"))return;let fragment=decodeURIComponent(ref.hash.slice(1));return fragment.startsWith("/")?pointer_exports.Get(schema,fragment):void 0}function Match(schema,base,ref){if(IsId(schema)){let result=MatchId(schema,base,ref);if(!guard_exports.IsUndefined(result))return result}if(IsAnchor(schema)){let result=MatchAnchor(schema,base,ref);if(!guard_exports.IsUndefined(result))return result}if(IsDynamicAnchor(schema)){let result=MatchDynamicAnchor(schema,base,ref);if(!guard_exports.IsUndefined(result))return result}return MatchHash(schema,ref)}function FromArray(schema,base,ref){return schema.reduce((result,item)=>{let match=FromValue(item,base,ref);return guard_exports.IsUndefined(match)?result:match},void 0)}function SkipProperty(key){return guard_exports.IsEqual(key,"const")||guard_exports.IsEqual(key,"enum")}function FromObject(schema,base,ref){return guard_exports.Keys(schema).reduce((result,key)=>{if(SkipProperty(key))return result;let match=FromValue(schema[key],base,ref);return guard_exports.IsUndefined(match)?result:match},void 0)}function FromValue(schema,base,ref){let nextBase=IsSchemaObject(schema)&&IsId(schema)?new URL(schema.$id,base.href):base;if(IsSchemaObject(schema)){let result=Match(schema,nextBase,ref);if(!guard_exports.IsUndefined(result))return result}if(guard_exports.IsArray(schema))return FromArray(schema,nextBase,ref);if(guard_exports.IsObject(schema))return FromObject(schema,nextBase,ref)}function Base(schema,base,target){return FindBase(schema,new URL(base||".",DefaultBase),target)}function Resource(context,schema,base,ref){let result=Ref2(context,schema,base,ref,!1);return IsSchemaObject(result)&&IsId(result)?result:void 0}function CanonicalHref(url){return url.href.split("#")[0]}function RefContext(context,ref){return guard_exports.HasPropertyKey(context,ref)?context[ref]:void 0}function RefLocal(schema,base,ref){return FromValue(schema,base,ref)}function RefRemote(context,base,ref){let canonicalHref=CanonicalHref(ref);if(guard_exports.IsEqual(canonicalHref,CanonicalHref(base))||!guard_exports.HasPropertyKey(context,canonicalHref))return;let remoteSchema=context[canonicalHref],remoteBase=IsSchemaObject(remoteSchema)&&IsId(remoteSchema)?new URL(remoteSchema.$id,canonicalHref):new URL(canonicalHref);return guard_exports.IsEqual(ref.hash,"")?remoteSchema:FromValue(remoteSchema,remoteBase,ref)}function LegacyRetrievedResource(root,lexicalSchema,referenceBase,ref,schema){if(!ref.$ref.startsWith("#")||guard_exports.HasPropertyKey(root,"$schema"))return;let targetBase=Base(lexicalSchema,referenceBase,schema);if(!(guard_exports.IsUndefined(targetBase)||guard_exports.IsEqual(targetBase,referenceBase)))return{target:schema,base:targetBase,root:lexicalSchema}}function RemoteRetrievedResource(context,canonical,schema){let remoteRoot=context[canonical];if(IsSchemaObject(remoteRoot))return{target:schema,base:canonical,root:remoteRoot}}function FindRetrievedResource(stackframe,ref,schema,canonical,isRemote){let remote=isRemote?RemoteRetrievedResource(stackframe.context,canonical,schema):void 0;return guard_exports.IsUndefined(remote)?LegacyRetrievedResource(stackframe.root,stackframe.lexicalSchema,stackframe.referenceBase,ref,schema):remote}function FindResolvedResource(context,root,referenceBase,canonical,schema,ids){if(IsId(schema))return;let resource=Resource(context,root,referenceBase,canonical);if(!(!resource||ids.includes(resource)))return{target:schema,resource}}function Ref2(remotes,schema,base,ref,applySchemaId=!0){let initialBase=new URL(base||".",DefaultBase),resolvedBase=applySchemaId&&IsId(schema)?new URL(schema.$id,initialBase):initialBase,initialRef=new URL(ref,resolvedBase.href);return RefContext(remotes,ref)??RefLocal(schema,resolvedBase,initialRef)??RefRemote(remotes,resolvedBase,initialRef)}function DynamicRef(context,root,base,schema,dynamicRef,dynamicAnchors){let initialBase=new URL(base||".",DefaultBase),fragmentRoot=dynamicRef.$dynamicRef.startsWith("#")?schema:root,fragmentTarget=Ref2(context,fragmentRoot,base,dynamicRef.$dynamicRef,!1);if(guard_exports.IsUndefined(fragmentTarget)){let fragment2=new URL(dynamicRef.$dynamicRef,initialBase).hash;if(!fragment2.startsWith("#/")&&fragment2.startsWith("#")){let name=decodeURIComponent(fragment2.slice(1));return dynamicAnchors.find(anchor=>guard_exports.IsEqual(anchor.$dynamicAnchor,name))??FindDynamicAnchor(root,name)}return}return!IsSchemaObject(fragmentTarget)||!IsDynamicAnchor(fragmentTarget)||new URL(dynamicRef.$dynamicRef,initialBase).hash.startsWith("#/")?fragmentTarget:dynamicAnchors.find(anchor=>guard_exports.IsEqual(anchor.$dynamicAnchor,fragmentTarget.$dynamicAnchor))??fragmentTarget}function ResolveRef(stackframe,ref){let source=stackframe.inRetrievedFrame?stackframe.lexicalSchema:stackframe.root,refRoot=ref.$ref.startsWith("#")?stackframe.lexicalSchema:source,schema=Ref2(stackframe.context,refRoot,stackframe.referenceBase,ref.$ref,!1);if(!schema||!IsSchemaObject(schema))return{schema};let canonical=new URL(ref.$ref,stackframe.referenceBase).href.split("#")[0],isRemote=!guard_exports.IsEqual(canonical,stackframe.resourceBase),retrievedResource=FindRetrievedResource(stackframe,ref,schema,canonical,isRemote),resolvedResource=isRemote?FindResolvedResource(stackframe.context,stackframe.root,stackframe.referenceBase,canonical,schema,stackframe.ids):void 0;return{schema,retrievedResource,resolvedResource}}function ResolveRecursiveRef(stackframe,recursiveRef){let refRoot=IsRecursiveAnchorTrue(stackframe.lexicalSchema)?stackframe.recursiveAnchors[0]:stackframe.lexicalSchema;return Ref2(stackframe.context,refRoot,stackframe.lexicalBase,recursiveRef.$recursiveRef,!1)}function ResolveDynamicRef(stackframe,dynamicRef){return DynamicRef(stackframe.context,stackframe.root,stackframe.lexicalBase,stackframe.lexicalSchema,dynamicRef,stackframe.dynamicAnchors)}var __classPrivateFieldGet=function(receiver,state2,kind,f){if(kind==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof state2=="function"?receiver!==state2||!f:!state2.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return kind==="m"?f:kind==="a"?f.call(receiver):f?f.value:state2.get(receiver)},_Stack_instances,_Stack_StackFrame,_Stack_ApplyRefResult,_Stack_BuildBase,_Stack_ResourceBaseURL,_Stack_ReferenceBaseURL,_Stack_LexicalSchema,_Stack_RegisterResourceAnchorArray,_Stack_UnregisterResourceAnchorArray,_Stack_RegisterResourceAnchors,_Stack_UnregisterResourceAnchors,_Stack_RegisterResource,_Stack_UnregisterResource,_Stack_EnterResolvedResource,_Stack_ExitResolvedResource,Stack=class{constructor(context,schema){_Stack_instances.add(this),this.context=context,this.schema=schema,this.ids=[],this.resourceIds=[],this.anchors=[],this.recursiveAnchors=[],this.dynamicAnchors=[],this.retrievedResources=new Map,this.retrievedFrames=[],this.resolvedResources=new Map,this.pendingResource=!0}LexicalBaseURL(){return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_BuildBase).call(this,this.ids)}Push(schema){if(!IsSchemaObject(schema))return;IsId(schema)&&__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResource).call(this,schema),IsAnchor(schema)&&this.anchors.push(schema),IsRecursiveAnchorTrue(schema)&&this.recursiveAnchors.push(schema),IsDynamicAnchor(schema)&&this.dynamicAnchors.push(schema);let retrievedResource=this.retrievedResources.get(schema);retrievedResource&&this.retrievedFrames.push({schema:retrievedResource.root,base:retrievedResource.base,idDepth:this.ids.length,resourceDepth:this.resourceIds.length})}Pop(schema){IsSchemaObject(schema)&&(IsId(schema)&&__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResource).call(this,schema),IsAnchor(schema)&&this.anchors.pop(),IsRecursiveAnchorTrue(schema)&&this.recursiveAnchors.pop(),IsDynamicAnchor(schema)&&this.dynamicAnchors.pop(),this.retrievedResources.has(schema)&&this.retrievedFrames.pop(),__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ExitResolvedResource).call(this,schema))}Ref(ref){let result=resolve_exports.ResolveRef(__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_StackFrame).call(this),ref);return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ApplyRefResult).call(this,result),result.schema}RecursiveRef(recursiveRef){let result=resolve_exports.ResolveRecursiveRef(__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_StackFrame).call(this),recursiveRef);return result&&(this.pendingResource=!0),result}DynamicRef(dynamicRef){let result=resolve_exports.ResolveDynamicRef(__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_StackFrame).call(this),dynamicRef);return result&&(this.pendingResource=!0),result}};_Stack_instances=new WeakSet,_Stack_StackFrame=function(){return{context:this.context,root:this.schema,ids:this.ids,lexicalSchema:__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_LexicalSchema).call(this),lexicalBase:this.LexicalBaseURL(),referenceBase:__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ReferenceBaseURL).call(this),resourceBase:__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ResourceBaseURL).call(this),recursiveAnchors:this.recursiveAnchors,dynamicAnchors:this.dynamicAnchors,inRetrievedFrame:this.retrievedFrames.length>0}},_Stack_ApplyRefResult=function(result){guard_exports.IsUndefined(result.schema)||(this.pendingResource=!0),guard_exports.IsUndefined(result.resolvedResource)||__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_EnterResolvedResource).call(this,result.resolvedResource.target,result.resolvedResource.resource),guard_exports.IsUndefined(result.retrievedResource)||this.retrievedResources.set(result.retrievedResource.target,{base:result.retrievedResource.base,root:result.retrievedResource.root})},_Stack_BuildBase=function(stack){let frame=this.retrievedFrames[this.retrievedFrames.length-1],base=frame?new URL(frame.base):new URL(resolve_exports.DefaultBase);return(frame?stack.slice(frame.idDepth):stack).reduce((result,schema)=>new URL(schema.$id,result),base).href},_Stack_ResourceBaseURL=function(){let frame=this.retrievedFrames[this.retrievedFrames.length-1];return frame?this.resourceIds.slice(frame.resourceDepth).reduce((result,schema)=>new URL(schema.$id,result),new URL(frame.base)).href:__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_BuildBase).call(this,this.resourceIds)},_Stack_ReferenceBaseURL=function(){if(this.retrievedFrames.length>0)return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ResourceBaseURL).call(this);let lexical=this.ids[this.ids.length-1];return lexical&&!/^[A-Za-z][A-Za-z0-9+.-]*:/.test(lexical.$id)?this.LexicalBaseURL():__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ResourceBaseURL).call(this)},_Stack_LexicalSchema=function(){let frame=this.retrievedFrames[this.retrievedFrames.length-1];return frame?this.ids.length>frame.idDepth?this.ids[this.ids.length-1]:frame.schema:this.ids.length>0?this.ids[this.ids.length-1]:this.schema},_Stack_RegisterResourceAnchorArray=function(schema){schema.forEach(schema2=>__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResourceAnchors).call(this,schema2,!1))},_Stack_UnregisterResourceAnchorArray=function(schema){schema.forEach(schema2=>__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResourceAnchors).call(this,schema2,!1))},_Stack_RegisterResourceAnchors=function _Stack_RegisterResourceAnchors2(schema,isRoot=!0){if(IsSchemaBoolean(schema))return;if(guard_exports.IsArray(schema))return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResourceAnchorArray).call(this,schema);if(!IsSchemaObject(schema))return;let current=schema;if(!(!isRoot&&IsId(current))){!isRoot&&IsDynamicAnchor(current)&&this.dynamicAnchors.push(current);for(let key of guard_exports.Keys(current))__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResourceAnchors2).call(this,current[key],!1)}},_Stack_UnregisterResourceAnchors=function _Stack_UnregisterResourceAnchors2(schema,isRoot=!0){if(IsSchemaBoolean(schema))return;if(guard_exports.IsArray(schema))return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResourceAnchorArray).call(this,schema);if(!IsSchemaObject(schema))return;let current=schema;if(!(!isRoot&&IsId(current))){!isRoot&&IsDynamicAnchor(current)&&this.dynamicAnchors.pop();for(let key of guard_exports.Keys(current))__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResourceAnchors2).call(this,current[key],!1)}},_Stack_RegisterResource=function(schema){this.ids.push(schema);let isResource=this.pendingResource;this.pendingResource=!1,isResource&&this.resourceIds.push(schema),__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResourceAnchors).call(this,schema,!0)},_Stack_UnregisterResource=function(schema){this.ids.pop(),this.resourceIds.length>0&&guard_exports.IsEqual(this.resourceIds[this.resourceIds.length-1],schema)&&this.resourceIds.pop(),__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResourceAnchors).call(this,schema,!0)},_Stack_EnterResolvedResource=function(target,resource){__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResource).call(this,resource),this.resolvedResources.set(target,resource)},_Stack_ExitResolvedResource=function(target){if(!this.resolvedResources.has(target))return;let resource=this.resolvedResources.get(target);__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResource).call(this,resource),this.resolvedResources.delete(target)};function CreateCode(build){let functions=build.Functions().join(`;
|
|
134
|
+
`),statements=build.UseUnevaluated()?["const context = new CheckContext({}, {})",`return ${build.Entry()}`]:[`return ${build.Entry()}`];return`${functions}; return (value) => { ${statements.join("; ")} }`}function CreateEvaluatedCheck(build,code){return environment_exports.Evaluate("CheckContext","Guard","Format","Hashing",build.External().identifier,code)(CheckContext,guard_exports,format_exports,hash_exports,build.External().variables)}function CreateDynamicCheck(build){let stack=new Stack(build.Context(),build.Schema()),context=new CheckContext;return value=>CheckSchema(stack,context,build.Schema(),value)}function CreateCheck(build,code){return environment_exports.CanEvaluate()?CreateEvaluatedCheck(build,code):CreateDynamicCheck(build)}var EvaluateResult=class{constructor(isAccelerated,code,check){this.isAccelerated=isAccelerated,this.code=code,this.check=check}IsAccelerated(){return this.isAccelerated}Code(){return this.code}Check(value){return this.check(value)}},BuildResult=class{constructor(context,schema,external,functions,entry,useUnevaluated){this.context=context,this.schema=schema,this.external=external,this.functions=functions,this.entry=entry,this.useUnevaluated=useUnevaluated}Context(){return this.context}Schema(){return this.schema}UseUnevaluated(){return this.useUnevaluated}External(){return this.external}Functions(){return this.functions}Entry(){return this.entry}Evaluate(){let code=CreateCode(this),check=CreateCheck(this,code);return new EvaluateResult(environment_exports.CanEvaluate(),code,check)}};function Build(...args){let[context,schema]=arguments_exports.Match(args,{2:(context2,schema2)=>[context2,schema2],1:schema2=>[{},schema2]});ResetExternal(),ResetFunctions();let stack=new Stack(context,schema),build=new BuildContext(HasUnevaluated(context,schema)),call=CreateFunction(stack,build,schema,"value"),functions=GetFunctions(),externals=GetExternal();return new BuildResult(context,schema,externals,functions,call,build.UseUnevaluated())}function Errors(...args){let[context,schema,value]=arguments_exports.Match(args,{3:(context2,schema2,value2)=>[context2,schema2,value2],2:(schema2,value2)=>[{},schema2,value2]}),stack=new Stack(context,schema),errorContext=new ErrorContext,result=ErrorSchema(stack,errorContext,"#","",schema,value),errors=errorContext.GetErrors(),locale=Get(),localized=errors.map(error=>({...error,message:locale(error)}));return[result,localized]}function Check(...args){let[context,schema,value]=arguments_exports.Match(args,{3:(context2,schema2,value2)=>[context2,schema2,value2],2:(schema2,value2)=>[{},schema2,value2]}),stack=new Stack(context,schema),checkContext=new CheckContext;return CheckSchema(stack,checkContext,schema,value)}function Check2(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return Check(context,type,value)}function Errors2(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]}),[_,errors]=Errors(context,type,value);return errors}var AssertError=class extends Error{constructor(source,value,errors){super(source),Object.defineProperty(this,"cause",{value:{source,errors,value},writable:!1,configurable:!1,enumerable:!1})}};function Assert(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});if(!Check2(context,type,value))throw new AssertError("Assert",value,Errors2(context,type,value))}function FromArray2(context,type,value){return guard_exports.IsArray(value)?value.map(value2=>FromType(context,type.items,value2)):value}function FromCyclic(context,type,value){return FromType({...context,...type.$defs},Ref(type.$ref),value)}function EvaluateIntersection(context,type){let additionalProperties=guard_exports.HasPropertyKey(type,"unevaluatedProperties")?{additionalProperties:type.unevaluatedProperties}:{},instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return IsObject(evaluated)?With(evaluated,additionalProperties):evaluated}function FromIntersect(context,type,value){let evaluated=EvaluateIntersection(context,type);return FromType(context,evaluated,value)}function GetAdditionalProperties(type){return guard_exports.HasPropertyKey(type,"additionalProperties")?type.additionalProperties:void 0}function FromObject2(context,type,value){if(!guard_exports.IsObject(value)||guard_exports.IsArray(value))return value;let additionalProperties=GetAdditionalProperties(type);for(let key of guard_exports.Keys(value)){if(guard_exports.HasPropertyKey(type.properties,key)){value[key]=FromType(context,type.properties[key],value[key]);continue}if(guard_exports.IsBoolean(additionalProperties)&&guard_exports.IsEqual(additionalProperties,!0)||IsSchema(additionalProperties)&&Check2(context,additionalProperties,value[key])){value[key]=FromType(context,additionalProperties,value[key]);continue}delete value[key]}return value}function FromRecord(context,type,value){if(!guard_exports.IsObject(value))return value;let additionalProperties=GetAdditionalProperties(type),[recordPattern,recordValue]=[new RegExp(RecordPattern(type)),RecordValue(type)];for(let key of guard_exports.Keys(value)){if(recordPattern.test(key)){value[key]=FromType(context,recordValue,value[key]);continue}if(guard_exports.IsBoolean(additionalProperties)&&guard_exports.IsEqual(additionalProperties,!0)||IsSchema(additionalProperties)&&Check2(context,additionalProperties,value[key])){value[key]=FromType(context,additionalProperties,value[key]);continue}delete value[key]}return value}function FromRef(context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType(context,context[type.$ref],value):value}function FromTuple(context,schema,value){if(!guard_exports.IsArray(value))return value;let length=Math.min(value.length,schema.items.length);for(let index3=0;index3<length;index3++)value[index3]=FromType(context,schema.items[index3],value[index3]);return guard_exports.IsGreaterThan(value.length,length)?value.slice(0,length):value}function Clone2(value){return Clone(value)}function FromUnion(context,type,value){for(let schema of type.anyOf){let clean=FromType(context,schema,Clone2(value));if(Check2(context,schema,clean))return clean}return value}function FromType(context,type,value){return IsArray(type)?FromArray2(context,type,value):IsCyclic(type)?FromCyclic(context,type,value):IsIntersect(type)?FromIntersect(context,type,value):IsObject(type)?FromObject2(context,type,value):IsRecord(type)?FromRecord(context,type,value):IsRef(type)?FromRef(context,type,value):IsTuple(type)?FromTuple(context,type,value):IsUnion(type)?FromUnion(context,type,value):value}function Modifiers(type,next){for(let key of guard_default.Keys(type))guard_default.HasPropertyKey(next,key)||(next[key]=type[key]);return next}function FromProperties(properties){let result={};for(let key of guard_default.Keys(properties))result[key]=FromType2(properties[key]);return result}function FromPriorityTypes(types){return FromTypes(Priority(types))}function FromTypes(types){return types.map(type=>FromType2(type))}function FromType2(type){let next=IsArray(type)?_Array_(FromType2(type.items),ArrayOptions(type)):IsIntersect(type)?Intersect(FromTypes(type.allOf)):IsUnion(type)?Union(FromPriorityTypes(type.anyOf)):IsObject(type)?_Object_(FromProperties(type.properties)):IsRecord(type)?Record(RecordKey(type),FromType2(RecordValue(type))):IsTuple(type)?Tuple(FromTypes(type.items)):type;return Modifiers(type,next)}function UnionPrioritySort(type){return FromType2(type)}function Clean(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]}),sorted=settings_exports.Get().unionPrioritySort?UnionPrioritySort(type):type;return FromType(context,sorted,value)}var try_exports={};__export(try_exports,{Fail:()=>Fail,IsOk:()=>IsOk,Ok:()=>Ok,TryArray:()=>TryArray,TryBigInt:()=>TryBigInt,TryBoolean:()=>TryBoolean,TryNull:()=>TryNull,TryNumber:()=>TryNumber,TryString:()=>TryString,TryUndefined:()=>TryUndefined});function IsOk(value){return guard_exports.IsObject(value)&&guard_exports.HasPropertyKey(value,"value")}function Ok(value){return{value}}function Fail(){}function TryArray(value){return guard_exports.IsArray(value)?Ok(value):Ok([value])}function FromBoolean(value){return guard_exports.IsEqual(value,!0)?Ok(BigInt(1)):Ok(BigInt(0))}var bigintPattern=/^-?(0|[1-9]\d*)n$/,decimalPattern=/^-?(0|[1-9]\d*)\.\d+$/,integerPattern=/^-?(0|[1-9]\d*)$/;function IsStringBigIntLike(value){return bigintPattern.test(value)}function IsStringDecimalLike(value){return decimalPattern.test(value)}function IsStringIntegerLike(value){return integerPattern.test(value)}function FromString(value){let lowercase=value.toLowerCase();return IsStringBigIntLike(value)?Ok(BigInt(value.slice(0,value.length-1))):IsStringDecimalLike(value)?Ok(BigInt(value.split(".")[0])):IsStringIntegerLike(value)?Ok(BigInt(value)):guard_exports.IsEqual(lowercase,"false")?Ok(BigInt(0)):guard_exports.IsEqual(lowercase,"true")?Ok(BigInt(1)):void 0}function TryBigInt(value){return guard_exports.IsBigInt(value)?Ok(value):guard_exports.IsBoolean(value)?FromBoolean(value):guard_exports.IsNumber(value)?Ok(BigInt(Math.trunc(value))):guard_exports.IsNull(value)?Ok(BigInt(0)):guard_exports.IsString(value)?FromString(value):guard_exports.IsUndefined(value)?Ok(BigInt(0)):void 0}function FromBigInt(value){return guard_exports.IsEqual(value,BigInt(0))?Ok(!1):guard_exports.IsEqual(value,BigInt(1))?Ok(!0):void 0}function FromNumber(value){return guard_exports.IsEqual(value,0)?Ok(!1):guard_exports.IsEqual(value,1)?Ok(!0):void 0}function FromString2(value){return guard_exports.IsEqual(value.toLowerCase(),"false")?Ok(!1):guard_exports.IsEqual(value.toLowerCase(),"true")?Ok(!0):guard_exports.IsEqual(value,"0")?Ok(!1):guard_exports.IsEqual(value,"1")?Ok(!0):void 0}function TryBoolean(value){return guard_exports.IsBigInt(value)?FromBigInt(value):guard_exports.IsBoolean(value)?Ok(value):guard_exports.IsNumber(value)?FromNumber(value):guard_exports.IsNull(value)?Ok(!1):guard_exports.IsString(value)?FromString2(value):guard_exports.IsUndefined(value)?Ok(!1):void 0}function FromBigInt2(value){return guard_exports.IsEqual(value,BigInt(0))?Ok(null):void 0}function FromBoolean2(value){return guard_exports.IsEqual(value,!1)?Ok(null):void 0}function FromNumber2(value){return guard_exports.IsEqual(value,0)?Ok(null):void 0}function FromString3(value){let lowercase=value.toLowerCase();return guard_exports.IsEqual(lowercase,"undefined")||guard_exports.IsEqual(lowercase,"null")||guard_exports.IsEqual(value,"")||guard_exports.IsEqual(value,"0")?Ok(null):void 0}function TryNull(value){return guard_exports.IsBigInt(value)?FromBigInt2(value):guard_exports.IsBoolean(value)?FromBoolean2(value):guard_exports.IsNumber(value)?FromNumber2(value):guard_exports.IsNull(value)?Ok(null):guard_exports.IsString(value)?FromString3(value):guard_exports.IsUndefined(value)?Ok(null):void 0}var maxBigInt=BigInt(Number.MAX_SAFE_INTEGER),minBigInt=BigInt(Number.MIN_SAFE_INTEGER);function FromBigInt3(value){return value<=maxBigInt&&value>=minBigInt?Ok(Number(value)):void 0}function FromBoolean3(value){return Ok(value?1:0)}function FromString4(value){let coerced=+value;if(guard_exports.IsNumber(coerced))return Ok(coerced);let lowercase=value.toLowerCase();if(guard_exports.IsEqual(lowercase,"false"))return Ok(0);if(guard_exports.IsEqual(lowercase,"true"))return Ok(1);let result=TryBigInt(value);return IsOk(result)?result.value<=maxBigInt&&result.value>=minBigInt?Ok(Number(result.value)):void 0:void 0}function TryNumber(value){return guard_exports.IsBigInt(value)?FromBigInt3(value):guard_exports.IsBoolean(value)?FromBoolean3(value):guard_exports.IsNumber(value)?Ok(value):guard_exports.IsNull(value)?Ok(0):guard_exports.IsString(value)?FromString4(value):guard_exports.IsUndefined(value)?Ok(0):void 0}function TryString(value){return guard_exports.IsBigInt(value)?Ok(value.toString()):guard_exports.IsBoolean(value)?Ok(value.toString()):guard_exports.IsNumber(value)?Ok(value.toString()):guard_exports.IsNull(value)?Ok("null"):guard_exports.IsString(value)?Ok(value):guard_exports.IsUndefined(value)?Ok(""):void 0}function FromBigInt4(value){return guard_exports.IsEqual(value,BigInt(0))?Ok(void 0):void 0}function FromBoolean4(value){return guard_exports.IsEqual(value,!1)?Ok(void 0):void 0}function FromNumber3(value){return guard_exports.IsEqual(value,0)?Ok(void 0):void 0}function FromString5(value){let lowercase=value.toLowerCase();return guard_exports.IsEqual(lowercase,"undefined")||guard_exports.IsEqual(lowercase,"null")||guard_exports.IsEqual(value,"")||guard_exports.IsEqual(value,"0")?Ok(void 0):void 0}function TryUndefined(value){return guard_exports.IsBigInt(value)?FromBigInt4(value):guard_exports.IsBoolean(value)?FromBoolean4(value):guard_exports.IsNumber(value)?FromNumber3(value):guard_exports.IsNull(value)?Ok(void 0):guard_exports.IsString(value)?FromString5(value):guard_exports.IsUndefined(value)?Ok(value):void 0}function FromArray3(context,type,value){return try_exports.TryArray(value).value.map(value2=>FromType3(context,type.items,value2))}function FromBigInt5(_context,_type,value){let result=try_exports.TryBigInt(value);return try_exports.IsOk(result)?result.value:value}function FromBoolean5(_context,_type,value){let result=try_exports.TryBoolean(value);return try_exports.IsOk(result)?result.value:value}function FromCyclic2(context,type,value){return FromType3({...context,...type.$defs},Ref(type.$ref),value)}function FromEnum(context,type,value){return FromType3(context,Evaluate(type),value)}function FromInteger(_context,_type,value){let result=try_exports.TryNumber(value);return try_exports.IsOk(result)?Math.trunc(result.value):value}function FromIntersect2(context,type,value){let instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return FromType3(context,evaluated,value)}function FromLiteralBigInt(_context,type,value){let result=try_exports.TryBigInt(value);return try_exports.IsOk(result)&&guard_exports.IsEqual(type.const,result.value)?result.value:value}function FromLiteralBoolean(_context,type,value){let result=try_exports.TryBoolean(value);return try_exports.IsOk(result)&&guard_exports.IsEqual(type.const,result.value)?result.value:value}function FromLiteralNumber(_context,type,value){let result=try_exports.TryNumber(value);return try_exports.IsOk(result)&&guard_exports.IsEqual(type.const,result.value)?result.value:value}function FromLiteralString(_context,type,value){let result=try_exports.TryString(value);return try_exports.IsOk(result)&&guard_exports.IsEqual(type.const,result.value)?result.value:value}function FromLiteral(context,type,value){return guard_exports.IsEqual(type.const,value)?value:IsLiteralBigInt(type)?FromLiteralBigInt(context,type,value):IsLiteralBoolean(type)?FromLiteralBoolean(context,type,value):IsLiteralNumber(type)?FromLiteralNumber(context,type,value):IsLiteralString(type)?FromLiteralString(context,type,value):Unreachable()}function FromNull(_context,_type,value){let result=try_exports.TryNull(value);return try_exports.IsOk(result)?result.value:value}function FromNumber4(_context,_type,value){let result=try_exports.TryNumber(value);return try_exports.IsOk(result)?result.value:value}function FromAdditionalProperties(context,entries,additionalProperties,value){let keys=guard_exports.Keys(value);for(let[regexp,_]of entries)for(let key of keys)regexp.test(key)||(value[key]=FromType3(context,additionalProperties,value[key]));return value}function IsOptionalUndefined(property,key,value){return IsOptional(property)&&guard_exports.IsUndefined(value[key])}function FromProperties2(context,type,value){let entries=guard_exports.EntriesRegExp(type.properties),keys=guard_exports.Keys(value);for(let[regexp,property]of entries)for(let key of keys)!regexp.test(key)||IsOptionalUndefined(property,key,value)||(value[key]=FromType3(context,property,value[key]));return guard_exports.HasPropertyKey(type,"additionalProperties")&&guard_exports.IsObject(type.additionalProperties)?FromAdditionalProperties(context,entries,type.additionalProperties,value):value}function FromObject3(context,type,value){return guard_exports.IsObjectNotArray(value)?FromProperties2(context,type,value):value}function FromPatternProperties(context,type,value){let entries=guard_exports.EntriesRegExp(type.patternProperties),keys=guard_exports.Keys(value);for(let[regexp,schema]of entries)for(let key of keys)regexp.test(key)&&(value[key]=FromType3(context,schema,value[key]));return guard_exports.HasPropertyKey(type,"additionalProperties")&&guard_exports.IsObject(type.additionalProperties)?FromAdditionalProperties(context,entries,type.additionalProperties,value):value}function FromRecord2(context,type,value){return guard_exports.IsObjectNotArray(value)?FromPatternProperties(context,type,value):value}function FromRef2(context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType3(context,context[type.$ref],value):value}function FromString6(_context,_type,value){let result=try_exports.TryString(value);return try_exports.IsOk(result)?result.value:value}function FromTemplateLiteral(context,type,value){return FromType3(context,Evaluate(type),value)}function FromTuple2(context,type,value){if(!guard_exports.IsArray(value))return value;for(let index3=0;index3<Math.min(type.items.length,value.length);index3++)value[index3]=FromType3(context,type.items[index3],value[index3]);return value}function FromUndefined(_context,_type,value){let result=try_exports.TryUndefined(value);return try_exports.IsOk(result)?result.value:value}function FromUnion2(context,type,value){if(type.anyOf.some(type2=>Check2(context,type2,value)))return value;let selected=type.anyOf.map(type2=>FromType3(context,type2,Clone2(value))).find(value2=>Check2(context,type,value2));return guard_exports.IsUndefined(selected)?value:selected}function FromVoid(_context,_type,value){let result=try_exports.TryUndefined(value);return try_exports.IsOk(result)?void 0:value}function FromType3(context,type,value){return IsArray(type)?FromArray3(context,type,value):IsBigInt(type)?FromBigInt5(context,type,value):IsBoolean(type)?FromBoolean5(context,type,value):IsCyclic(type)?FromCyclic2(context,type,value):IsEnum(type)?FromEnum(context,type,value):IsInteger(type)?FromInteger(context,type,value):IsIntersect(type)?FromIntersect2(context,type,value):IsLiteral(type)?FromLiteral(context,type,value):IsNull(type)?FromNull(context,type,value):IsNumber(type)?FromNumber4(context,type,value):IsObject(type)?FromObject3(context,type,value):IsRecord(type)?FromRecord2(context,type,value):IsRef(type)?FromRef2(context,type,value):IsString(type)?FromString6(context,type,value):IsTemplateLiteral(type)?FromTemplateLiteral(context,type,value):IsTuple(type)?FromTuple2(context,type,value):IsUndefined(type)?FromUndefined(context,type,value):IsUnion(type)?FromUnion2(context,type,value):IsVoid(type)?FromVoid(context,type,value):value}function Convert(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return FromType3(context,type,value)}function FromArray4(context,type,value){if(!guard_exports.IsArray(value))return value;for(let i=0;i<value.length;i++)value[i]=FromType4(context,type.items,value[i]);return value}function FromCyclic3(context,type,value){return FromType4({...context,...type.$defs},Ref(type.$ref),value)}function FromDefault(type,value){return guard_exports.IsUndefined(value)?guard_exports.IsFunction(type.default)?type.default():Clone2(type.default):value}function FromIntersect3(context,type,value){let instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return FromType4(context,evaluated,value)}function FromObject4(context,type,value){if(!guard_exports.IsObject(value))return value;let knownPropertyKeys=guard_exports.Keys(type.properties);for(let key of knownPropertyKeys){let propertyValue=FromType4(context,type.properties[key],value[key]);guard_exports.IsUndefined(propertyValue)&&(IsOptional(type.properties[key])||!guard_exports.HasPropertyKey(type.properties[key],"default"))||(value[key]=propertyValue)}if(!IsAdditionalProperties(type)||guard_exports.IsBoolean(type.additionalProperties))return value;for(let key of guard_exports.Keys(value))knownPropertyKeys.includes(key)||(value[key]=FromType4(context,type.additionalProperties,value[key]));return value}function FromRecord3(context,type,value){if(!guard_exports.IsObject(value))return value;let[recordKey,recordValue]=[new RegExp(RecordPattern(type)),RecordValue(type)];for(let key of guard_exports.Keys(value))recordKey.test(key)&&IsDefault(recordValue)&&(value[key]=FromType4(context,recordValue,value[key]));if(!IsAdditionalProperties(type))return value;for(let key of guard_exports.Keys(value))recordKey.test(key)||(value[key]=FromType4(context,type.additionalProperties,value[key]));return value}function FromRef3(context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType4(context,context[type.$ref],value):value}function FromTuple3(context,schema,value){if(!guard_exports.IsArray(value))return value;let[items,max]=[schema.items,Math.max(schema.items.length,value.length)];for(let i=0;i<max;i++)i<items.length&&(value[i]=FromType4(context,items[i],value[i]));return value}function FromUnion3(context,schema,value){for(let inner of schema.anyOf){let result=FromType4(context,inner,Clone2(value));if(Check2(context,inner,result))return result}return value}function FromType4(context,type,value){let defaulted=IsDefault(type)?FromDefault(type,value):value;return IsArray(type)?FromArray4(context,type,defaulted):IsCyclic(type)?FromCyclic3(context,type,defaulted):IsIntersect(type)?FromIntersect3(context,type,defaulted):IsObject(type)?FromObject4(context,type,defaulted):IsRecord(type)?FromRecord3(context,type,defaulted):IsRef(type)?FromRef3(context,type,defaulted):IsTuple(type)?FromTuple3(context,type,defaulted):IsUnion(type)?FromUnion3(context,type,defaulted):defaulted}function Default(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return FromType4(context,type,value)}function Pipeline(pipeline){return(...args)=>{let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return pipeline.reduce((result,func)=>func(context,type,result),value)}}function Decode2(_context,type,value){return type["~codec"].decode(value)}function Encode2(_context,type,value){return type["~codec"].encode(value)}function Callback(direction,context,type,value){return IsCodec(type)?guard_exports.IsEqual(direction,"Decode")?Decode2(context,type,value):Encode2(context,type,value):value}function Decode3(direction,context,type,value){if(!guard_exports.IsArray(value))return value;for(let i=0;i<value.length;i++)value[i]=FromType5(direction,context,type.items,value[i]);return Callback(direction,context,type,value)}function Encode3(direction,context,type,value){let exterior=Callback(direction,context,type,value);if(!guard_exports.IsArray(exterior))return exterior;for(let i=0;i<exterior.length;i++)exterior[i]=FromType5(direction,context,type.items,exterior[i]);return exterior}function FromArray5(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode3(direction,context,type,value):Encode3(direction,context,type,value)}function FromCyclic4(direction,context,type,value){return value=FromType5(direction,{...context,...type.$defs},Ref(type.$ref),value),Callback(direction,context,type,value)}function MergeInteriors(interiors){return interiors.reduce((results,interior)=>({...results,...interior}),{})}function NonMatchingInterior(value,interiors){for(let interior of interiors)if(!guard_exports.IsDeepEqual(value,interior))return interior;return value}function Decode4(direction,context,type,value){if(guard_exports.IsEqual(type.allOf.length,0))return Callback(direction,context,type,value);let interiors=type.allOf.map(schema=>FromType5(direction,context,schema,Clean(schema,Clone2(value)))),exterior=interiors.every(result=>guard_exports.IsObject(result))?MergeInteriors(interiors):NonMatchingInterior(value,interiors);return Callback(direction,context,type,exterior)}function Encode4(direction,context,type,value){if(guard_exports.IsEqual(type.allOf.length,0))return Callback(direction,context,type,value);let exterior=Callback(direction,context,type,value),interiors=type.allOf.map(schema=>FromType5(direction,context,schema,Clean(schema,Clone2(exterior))));return interiors.every(result=>guard_exports.IsObject(result))?MergeInteriors(interiors):NonMatchingInterior(exterior,interiors)}function FromIntersect4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode4(direction,context,type,value):Encode4(direction,context,type,value)}function Decode5(direction,context,type,value){if(!guard_exports.IsObjectNotArray(value))return value;for(let key of guard_exports.Keys(type.properties))!guard_exports.HasPropertyKey(value,key)||IsOptionalUndefined(type.properties[key],key,value)||(value[key]=FromType5(direction,context,type.properties[key],value[key]));return Callback(direction,context,type,value)}function Encode5(direction,context,type,value){let exterior=Callback(direction,context,type,value);if(!guard_exports.IsObjectNotArray(exterior))return exterior;for(let key of guard_exports.Keys(type.properties))!guard_exports.HasPropertyKey(exterior,key)||IsOptionalUndefined(type.properties[key],key,exterior)||(exterior[key]=FromType5(direction,context,type.properties[key],exterior[key]));return exterior}function FromObject5(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode5(direction,context,type,value):Encode5(direction,context,type,value)}function Decode6(direction,context,type,value){if(!guard_exports.IsObjectNotArray(value))return value;let regexp=new RegExp(RecordPattern(type));for(let key of guard_exports.Keys(value))regexp.test(key)&&(value[key]=FromType5(direction,context,RecordValue(type),value[key]));return Callback(direction,context,type,value)}function Encode6(direction,context,type,value){let exterior=Callback(direction,context,type,value);if(!guard_exports.IsObjectNotArray(exterior))return exterior;let regexp=new RegExp(RecordPattern(type));for(let key of guard_exports.Keys(exterior))regexp.test(key)&&(exterior[key]=FromType5(direction,context,RecordValue(type),exterior[key]));return exterior}function FromRecord4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode6(direction,context,type,value):Encode6(direction,context,type,value)}function ResolveRef2(direction,context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType5(direction,context,context[type.$ref],value):value}function FromRef4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Callback(direction,context,type,ResolveRef2(direction,context,type,value)):ResolveRef2(direction,context,type,Callback(direction,context,type,value))}function Decode7(direction,context,type,value){if(!guard_exports.IsArray(value))return value;for(let i=0;i<Math.min(type.items.length,value.length);i++)value[i]=FromType5(direction,context,type.items[i],value[i]);return Callback(direction,context,type,value)}function Encode7(direction,context,type,value){let exterior=Callback(direction,context,type,value);if(!guard_exports.IsArray(exterior))return value;for(let i=0;i<Math.min(type.items.length,exterior.length);i++)exterior[i]=FromType5(direction,context,type.items[i],exterior[i]);return exterior}function FromTuple4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode7(direction,context,type,value):Encode7(direction,context,type,value)}function Decode8(direction,context,type,value){for(let schema of type.anyOf){if(!Check2(context,schema,value))continue;let variant=FromType5(direction,context,schema,value);return Callback(direction,context,type,variant)}return value}function Encode8(direction,context,type,value){let exterior=Callback(direction,context,type,value);for(let schema of type.anyOf){let variant=FromType5(direction,context,schema,Clone2(exterior));if(Check2(context,schema,variant))return variant}return exterior}function FromUnion4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode8(direction,context,type,value):Encode8(direction,context,type,value)}function FromType5(direction,context,type,value){return IsArray(type)?FromArray5(direction,context,type,value):IsCyclic(type)?FromCyclic4(direction,context,type,value):IsIntersect(type)?FromIntersect4(direction,context,type,value):IsObject(type)?FromObject5(direction,context,type,value):IsRecord(type)?FromRecord4(direction,context,type,value):IsRef(type)?FromRef4(direction,context,type,value):IsTuple(type)?FromTuple4(direction,context,type,value):IsUnion(type)?FromUnion4(direction,context,type,value):Callback(direction,context,type,value)}var DecodeError=class extends AssertError{constructor(value,errors){super("Decode",value,errors)}};function Assert2(context,type,value){if(!Check2(context,type,value))throw new DecodeError(value,Errors2(context,type,value));return value}function DecodeUnsafe(context,type,value){let sorted=settings_exports.Get().unionPrioritySort?UnionPrioritySort(type):type;return FromType5("Decode",context,sorted,value)}var Decoder=Pipeline([(_context,_type,value)=>Clone2(value),(context,type,value)=>Default(context,type,value),(context,type,value)=>Convert(context,type,value),(context,type,value)=>Clean(context,type,value),(context,type,value)=>Assert2(context,type,value),(context,type,value)=>DecodeUnsafe(context,type,value)]);function Decode9(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return Decoder(context,type,value)}var EncodeError=class extends AssertError{constructor(value,errors){super("Encode",value,errors)}};function Assert3(context,type,value){if(!Check2(context,type,value))throw new EncodeError(value,Errors2(context,type,value));return value}function EncodeUnsafe(context,type,value){let sorted=settings_exports.Get().unionPrioritySort?UnionPrioritySort(type):type;return FromType5("Encode",context,sorted,value)}var Encoder=Pipeline([(_context,_type,value)=>Clone2(value),(context,type,value)=>EncodeUnsafe(context,type,value),(context,type,value)=>Default(context,type,value),(context,type,value)=>Convert(context,type,value),(context,type,value)=>Clean(context,type,value),(context,type,value)=>Assert3(context,type,value)]);function Encode9(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return Encoder(context,type,value)}function FromArray6(context,type){return IsCodec(type)||FromType6(context,type.items)}function FromCyclic5(context,type){return IsCodec(type)||FromRef5({...context,...type.$defs},Ref(type.$ref))}function FromIntersect5(context,type){return IsCodec(type)||type.allOf.some(type2=>FromType6(context,type2))}function FromObject6(context,type){return IsCodec(type)||guard_exports.Keys(type.properties).some(key=>FromType6(context,type.properties[key]))}function FromRecord5(context,type){return IsCodec(type)||FromType6(context,RecordValue(type))}function FromRef5(context,type){return visited.has(type.$ref)?!1:(visited.add(type.$ref),IsCodec(type)||guard_exports.HasPropertyKey(context,type.$ref)&&FromType6(context,context[type.$ref]))}function FromTuple5(context,type){return IsCodec(type)||type.items.some(type2=>FromType6(context,type2))}function FromUnion5(context,type){return IsCodec(type)||type.anyOf.some(type2=>FromType6(context,type2))}function FromType6(context,type){return IsArray(type)?FromArray6(context,type):IsCyclic(type)?FromCyclic5(context,type):IsIntersect(type)?FromIntersect5(context,type):IsObject(type)?FromObject6(context,type):IsRecord(type)?FromRecord5(context,type):IsRef(type)?FromRef5(context,type):IsTuple(type)?FromTuple5(context,type):IsUnion(type)?FromUnion5(context,type):IsCodec(type)}var visited=new Set;function HasCodec(...args){let[context,type]=arguments_exports.Match(args,{2:(context2,type2)=>[context2,type2],1:type2=>[{},type2]});return visited.clear(),FromType6(context,type)}var CreateError=class extends Error{constructor(type,message){super(message),this.type=type}};function FromDefault2(_context,schema){return guard_exports.IsFunction(schema.default)?schema.default(schema):guard_exports.IsObject(schema.default)?Clone2(schema.default):schema.default}function FromArray7(context,type){if(IsUniqueItems(type)&&!IsDefault(type))throw new CreateError(type,"Arrays with uniqueItems constraints must specify a default annotation");let length=IsMinItems(type)?type.minItems:0;return Array.from({length},()=>FromType7(context,type.items))}function FromBigInt6(_context,type){return IsExclusiveMinimum(type)?BigInt(type.exclusiveMinimum)+BigInt(1):IsMinimum(type)?BigInt(type.minimum):BigInt(0)}function FromBoolean6(_context,_type){return!1}function FromConstructor(context,type){let instanceType=FromType7(context,type.instanceType);return class{constructor(){Object.assign(this,instanceType)}}}function FromCyclic6(context,type){return FromType7({...context,...type.$defs},Ref(type.$ref))}function FromEnum2(context,type){return FromType7(context,Evaluate(type))}function FromFunction(context,type){let returnType=FromType7(context,type.returnType);return()=>returnType}function FromInteger2(_context,type){return IsExclusiveMinimum(type)&&guard_exports.IsNumber(type.exclusiveMinimum)?type.exclusiveMinimum+1:IsMinimum(type)?type.minimum:0}function FromIntersect6(context,type){let instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return FromType7(context,evaluated)}function FromLiteral2(_context,type){return type.const}function FromNever(_context,type){throw new CreateError(type,"Cannot create TNever types")}function FromNull2(_context,_type){return null}function FromNumber5(_context,type){return IsExclusiveMinimum(type)&&guard_exports.IsNumber(type.exclusiveMinimum)?type.exclusiveMinimum+1:IsMinimum(type)?type.minimum:0}function FromObject7(context,type){return(guard_exports.IsUndefined(type.required)?[]:type.required).reduce((result,key)=>({...result,[key]:FromType7(context,type.properties[key])}),{})}function FromRecord6(_context,type){if(IsMinProperties(type)&&!IsDefault(type))throw new CreateError(type,"Record with the minProperties constraint must have a default annotation");return{}}function FromRef6(context,type){return guard_exports.HasPropertyKey(context,type.$ref)?FromType7(context,context[type.$ref]):(()=>{throw new CreateError(type,"Unable to deref Ref")})()}function FromString7(_context,type){if((IsPattern(type)||IsFormat(type))&&!IsDefault(type))throw Error("Strings with format or pattern constraints must specify default");let minLength=IsMinLength(type)?type.minLength:0;return"".padEnd(minLength)}function FromSymbol(_context,_type){return Symbol()}function FromTemplateLiteral2(context,type){let decoded=TemplateLiteralDecode(type.pattern);if(IsString(decoded))throw new CreateError(type,"Unable to create TemplateLiteral due to infinite type expansion");return FromType7(context,decoded)}function FromTuple6(context,type){return Array.from({length:type.minItems},(_,i)=>FromType7(context,type.items[i]))}function FromUnion6(context,type){if(guard_exports.IsEqual(type.anyOf.length,0))throw Error("Unable to create Union with no variants");return FromType7(context,type.anyOf[0])}function FromType7(context,type){return IsDefault(type)?FromDefault2(context,type):IsArray(type)?FromArray7(context,type):IsBigInt(type)?FromBigInt6(context,type):IsBoolean(type)?FromBoolean6(context,type):IsConstructor(type)?FromConstructor(context,type):IsCyclic(type)?FromCyclic6(context,type):IsEnum(type)?FromEnum2(context,type):IsFunction(type)?FromFunction(context,type):IsInteger(type)?FromInteger2(context,type):IsIntersect(type)?FromIntersect6(context,type):IsLiteral(type)?FromLiteral2(context,type):IsNever(type)?FromNever(context,type):IsNull(type)?FromNull2(context,type):IsNumber(type)?FromNumber5(context,type):IsObject(type)?FromObject7(context,type):IsRecord(type)?FromRecord6(context,type):IsRef(type)?FromRef6(context,type):IsString(type)?FromString7(context,type):IsSymbol(type)?FromSymbol(context,type):IsTemplateLiteral(type)?FromTemplateLiteral2(context,type):IsTuple(type)?FromTuple6(context,type):IsUndefined(type)?void 0:IsUnion(type)?FromUnion6(context,type):IsVoid(type)?void 0:void 0}function Create(...args){let[context,type]=arguments_exports.Match(args,{2:(context2,type2)=>[context2,type2],1:type2=>[{},type2]});return FromType7(context,type)}function Equal(left,right){return guard_exports.IsDeepEqual(left,right)}function Hash(value){return hash_exports.Hash(value)}var ParseError=class extends AssertError{constructor(value,errors){super("Parse",value,errors)}};function Assert4(context,type,value){if(!Check2(context,type,value))throw new ParseError(value,Errors2(context,type,value));return value}var Parser=Pipeline([(_context,_type,value)=>Clone2(value),(context,type,value)=>Default(context,type,value),(context,type,value)=>Convert(context,type,value),(context,type,value)=>Clean(context,type,value),(context,type,value)=>Assert4(context,type,value)]);function Parse(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});if(Check2(context,type,value))return value;if(settings_exports.Get().correctiveParse)return Parser(context,type,value);throw new ParseError(value,Errors2(context,type,value))}function CreateUpdate(path2,value){return{type:"update",path:path2,value}}function CreateInsert(path2,value){return{type:"insert",path:path2,value}}function CreateDelete(path2){return{type:"delete",path:path2}}function AssertCanDiffObject(value){if(!(guard_exports.IsObject(value)&&guard_exports.IsEqual(guard_exports.Symbols(value).length,0)))throw new Error("Cannot create diffs for objects with symbols keys")}function*FromObject8(path2,left,right){if(!guard_exports.IsObject(right)||guard_exports.IsArray(right))return yield CreateUpdate(path2,right);AssertCanDiffObject(left),AssertCanDiffObject(right);let leftKeys=guard_exports.Keys(left),rightKeys=guard_exports.Keys(right);for(let key of rightKeys)guard_exports.HasPropertyKey(left,key)||guard_exports.IsUnsafePropertyKey(key)||(yield CreateInsert(`${path2}/${key}`,right[key]));for(let key of leftKeys)guard_exports.HasPropertyKey(right,key)&&(guard_exports.IsUnsafePropertyKey(key)||Equal(left,right)||(yield*FromValue2(`${path2}/${key}`,left[key],right[key])));for(let key of leftKeys)guard_exports.HasPropertyKey(right,key)||guard_exports.IsUnsafePropertyKey(key)||(yield CreateDelete(`${path2}/${key}`))}function*FromArray8(path2,left,right){if(!guard_exports.IsArray(right))return yield CreateUpdate(path2,right);for(let i=0;i<Math.min(left.length,right.length);i++)yield*FromValue2(`${path2}/${i}`,left[i],right[i]);for(let i=0;i<right.length;i++)i<left.length||(yield CreateInsert(`${path2}/${i}`,right[i]));for(let i=left.length-1;i>=0;i--)i<right.length||(yield CreateDelete(`${path2}/${i}`))}function*FromTypedArray(path2,left,right){let typeLeft=globalThis.Object.getPrototypeOf(left).constructor.name,typeRight=globalThis.Object.getPrototypeOf(right).constructor.name;if(globals_exports.IsTypeArray(right)&&guard_exports.IsEqual(left.length,right.length)&&guard_exports.IsEqual(typeLeft,typeRight))for(let index3=0;index3<Math.min(left.length,right.length);index3++)yield*FromValue2(`${path2}/${index3}`,left[index3],right[index3]);else return yield CreateUpdate(path2,right)}function*FromUnknown(path2,left,right){left!==right&&(yield CreateUpdate(path2,right))}function*FromValue2(path2,left,right){return globals_exports.IsTypeArray(left)?yield*FromTypedArray(path2,left,right):guard_exports.IsArray(left)?yield*FromArray8(path2,left,right):guard_exports.IsObject(left)?yield*FromObject8(path2,left,right):yield*FromUnknown(path2,left,right)}function Diff(current,next){return[...FromValue2("",current,next)]}var Insert=_Object_({type:Literal("insert"),path:String2(),value:Unknown()}),Update=Object({type:Literal("update"),path:String2(),value:Unknown()}),Delete2=_Object_({type:Literal("delete"),path:String2()}),Edit=Union([Insert,Update,Delete2]);function IsRoot(edits){return edits.length>0&&edits[0].path===""&&edits[0].type==="update"}function IsEmpty(edits){return edits.length===0}function Patch(current,edits){if(IsRoot(edits))return Clone2(edits[0].value);if(IsEmpty(edits))return Clone2(current);let clone=Clone2(current);for(let edit of edits)switch(edit.type){case"insert":{pointer_exports.Set(clone,edit.path,edit.value);break}case"update":{pointer_exports.Set(clone,edit.path,edit.value);break}case"delete":{pointer_exports.Delete(clone,edit.path);break}}return clone}var RepairError=class extends Error{constructor(context,type,value,message){super(message),this.context=context,this.type=type,this.value=value}};function MakeUnique(values){let[hashes,result]=[new Set,[]];for(let value of values){let hash=Hash(value);hashes.has(hash)||(hashes.add(hash),result.push(value))}return result}function FromArray9(context,type,value){if(Check2(context,type,value))return value;let created=guard_exports.IsArray(value)?value:Create(context,type),minimum=IsMinItems(type)&&created.length<type.minItems?[...created,...Array.from({length:type.minItems-created.length},()=>Create(context,type))]:created,repaired=(IsMaxItems(type)&&minimum.length>type.maxItems?minimum.slice(0,type.maxItems):minimum).map(value2=>FromType8(context,type.items,value2));if(!IsUniqueItems(type)||IsUniqueItems(type)&&!guard_exports.IsEqual(type.uniqueItems,!0))return repaired;let unique=MakeUnique(repaired);if(!Check2(context,type,unique))throw new RepairError(context,type,value,"Failed to repair Array due to uniqueItems constraint");return unique}function FromEnum3(context,type,value){return FromType8(context,Evaluate(type),value)}function FromIntersect7(context,type,value){let instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return FromType8(context,evaluated,value)}function FromObject9(context,type,value){if(Check2(context,type,value))return value;if(!guard_exports.IsObjectNotArray(value))return Create(context,type);let required=new Set(guard_exports.IsUndefined(type.required)?[]:type.required),result={};for(let[key,schema]of guard_exports.Entries(type.properties))!required.has(key)&&guard_exports.IsUndefined(value[key])||(result[key]=key in value?FromType8(context,schema,value[key]):Create(context,schema));let evaluatedKeys=guard_exports.Keys(type.properties);if(IsAdditionalProperties(type)&&guard_exports.IsObject(type.additionalProperties))for(let key of guard_exports.Keys(value))evaluatedKeys.includes(key)||(result[key]=FromType8(context,type.additionalProperties,value[key]));return result}function FromRecord7(context,type,value){if(Check2(context,type,value))return value;if(guard_exports.IsNull(value)||!guard_exports.IsObject(value)||guard_exports.IsArray(value))return Create(context,type);let recordKey=new RegExp(RecordPattern(type)),recordValue=RecordValue(type),evaluatedKeys=new Set,result={};for(let[key,value_]of guard_exports.Entries(value))recordKey.test(key)&&(result[key]=FromType8(context,recordValue,value_),evaluatedKeys.add(key));if(IsAdditionalProperties(type))for(let key of guard_exports.Keys(value))evaluatedKeys.has(key)||(result[key]=FromType8(context,type.additionalProperties,value[key]));return result}function FromRef7(context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType8(context,context[type.$ref],value):(()=>{throw new RepairError(context,type,value,"Unable to de-reference target type")})()}function FromTemplateLiteral3(context,type,value){let decoded=TemplateLiteralDecode(type.pattern);return FromType8(context,decoded,value)}function FromTuple7(context,schema,value){return Check2(context,schema,value)?value:guard_exports.IsArray(value)?schema.items.map((schema2,index3)=>FromType8(context,schema2,value[index3])):Create(context,schema)}function Deref(context,type,value){return IsRef(type)?guard_exports.HasPropertyKey(context,type.$ref)?Deref(context,context[type.$ref],value):(()=>{throw new Error("Unable to Deref target")})():type}function ScoreVariant(context,type,value){if(!(IsObject(type)&&guard_exports.IsObject(value)))return 0;let keys=guard_exports.Keys(value);return guard_exports.Entries(type.properties).reduce((result,[key,schema])=>{let literal=IsLiteral(schema)&&guard_exports.IsEqual(schema.const,value[key])?100:0,checks=Check2(context,schema,value[key])?10:0,exists=keys.includes(key)?1:0;return result+(literal+checks+exists)},0)}function UnionScoreSelect(context,type,value){let schemas=type.anyOf.map(schema=>Deref(context,schema,value)),[select,best]=[schemas[0],0];for(let schema of schemas){let score=ScoreVariant(context,schema,value);score>best&&(select=schema,best=score)}return select}function RepairUnion(context,type,value){let union=Union(Flatten(type.anyOf)),schema=UnionScoreSelect(context,union,value);return FromType8(context,schema,value)}function FromUnion7(context,type,value){return Check2(context,type,value)?Clone2(value):IsDefault(type)?Create(context,type):RepairUnion(context,type,value)}function FromUnknown2(context,type,value){if(Check2(context,type,value))return value;let converted=Convert(context,type,value);return Check2(context,type,converted)?converted:Create(context,type)}function AssertRepairableValue(context,type,value){if(globals_exports.IsDate(value)||globals_exports.IsMap(value)||globals_exports.IsSet(value)||globals_exports.IsTypeArray(value)||guard_exports.IsConstructor(value)||guard_exports.IsFunction(value))throw new RepairError(context,type,value,"Value is not repairable")}function AssertRepairableType(context,type,value){if(IsConstructor(type)||IsFunction(type)||IsNever(type))throw new RepairError(context,type,value,"Type is not repairable")}function CreateWhenUndefined(context,type,value){return guard_exports.IsUndefined(value)&&!IsUndefined(type)?Create(context,type):value}function FinalizeRepair(context,type,repaired){return IsRefine(type)?Check2(context,type,repaired)?repaired:Create(context,type):repaired}function FromType8(context,type,value){AssertRepairableValue(context,type,value),AssertRepairableType(context,type,value);let candidate=CreateWhenUndefined(context,type,value),repaired=IsArray(type)?FromArray9(context,type,candidate):IsEnum(type)?FromEnum3(context,type,candidate):IsIntersect(type)?FromIntersect7(context,type,candidate):IsObject(type)?FromObject9(context,type,candidate):IsRecord(type)?FromRecord7(context,type,candidate):IsRef(type)?FromRef7(context,type,candidate):IsTemplateLiteral(type)?FromTemplateLiteral3(context,type,candidate):IsTuple(type)?FromTuple7(context,type,candidate):IsUnion(type)?FromUnion7(context,type,candidate):FromUnknown2(context,type,candidate);return FinalizeRepair(context,type,repaired)}function Repair(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]}),repaired=FromType8(context,type,value);return Assert(context,type,repaired),repaired}var value_exports={};__export(value_exports,{Assert:()=>Assert,Check:()=>Check2,Clean:()=>Clean,Clone:()=>Clone2,Convert:()=>Convert,Create:()=>Create,Decode:()=>Decode9,Default:()=>Default,Diff:()=>Diff,Encode:()=>Encode9,Equal:()=>Equal,Errors:()=>Errors2,HasCodec:()=>HasCodec,Hash:()=>Hash,Parse:()=>Parse,Patch:()=>Patch,Pointer:()=>pointer_exports,Repair:()=>Repair});var value_default=value_exports;var compile_exports={};__export(compile_exports,{Code:()=>Code,Compile:()=>Compile,Validator:()=>Validator,default:()=>compile_default});function TsIgnore(){return"// @ts-ignore"}function Separator(){return""}function ImportSection(build){return[...build.UseUnevaluated()?['import { CheckContext } from "typebox/schema"']:[],'import { Hashing } from "typebox/system"','import { Format } from "typebox/format"','import { Guard } from "typebox/guard"']}function ExternalSection(build){let{identifier}=build.External();return[Separator(),TsIgnore(),`let ${identifier} = []`,Separator(),TsIgnore(),`export function SetExternal(external) { ${identifier} = external.variables }`]}function FunctionSection(build){return build.Functions().map(func=>[Separator(),TsIgnore(),`${func};`].join(`
|
|
135
|
+
`))}function ExportSection(build){let body=build.UseUnevaluated()?`const context = new CheckContext({}, {}); return ${build.Entry()}`:`return ${build.Entry()}`;return[Separator(),TsIgnore(),`export function Check(value) { ${body} }`]}function Code(...args){let[context,type]=arguments_exports.Match(args,{2:(context2,type2)=>[context2,type2],1:type2=>[{},type2]}),build=Build(context,type),code=[...ImportSection(build),...ExternalSection(build),...FunctionSection(build),...ExportSection(build)].join(`
|
|
136
|
+
`);return{External:build.External(),Code:code}}var Validator=class{constructor(context,type){this.hasCodec=HasCodec(context,type),this.buildResult=Build(context,type),this.evaluateResult=this.buildResult.Evaluate()}IsAccelerated(){return this.evaluateResult.IsAccelerated()}Context(){return this.buildResult.Context()}Type(){return this.buildResult.Schema()}Code(){return this.evaluateResult.Code()}Check(value){return this.evaluateResult.Check(value)}Parse(value){if(this.Check(value))return value;if(settings_exports.Get().correctiveParse)return Parser(this.Context(),this.Type(),value);throw new ParseError(value,this.Errors(value))}Errors(value){return this.IsAccelerated()&&this.Check(value)?[]:Errors2(this.Context(),this.Type(),value)}Clean(value){return Clean(this.Context(),this.Type(),value)}Convert(value){return Convert(this.Context(),this.Type(),value)}Create(){return Create(this.Context(),this.Type())}Default(value){return Default(this.Context(),this.Type(),value)}Decode(value){return this.hasCodec?Decode9(this.Context(),this.Type(),value):this.Parse(value)}Encode(value){return this.hasCodec?Encode9(this.Context(),this.Type(),value):this.Parse(value)}};function Compile(...args){let[context,type]=arguments_exports.Match(args,{2:(context2,type2)=>[context2,type2],1:type2=>[{},type2]});return new Validator(context,type)}var compile_default=Compile;var import_proper_lockfile=__toESM(require_proper_lockfile(),1);import{randomUUID}from"crypto";import{existsSync,mkdirSync,readFileSync,writeFileSync}from"fs";import{dirname,join}from"path";var CACHE_WARMING_MODES=["off","streaming","idle"],DEFAULT_COMPACTION_TOKEN_SETTINGS={reserveTokens:SETTINGS_DEFAULTS.compaction.reserveTokens,keepRecentTokens:SETTINGS_DEFAULTS.compaction.keepRecentTokens};function isMergeableObject(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function deepMergeObjects(base,overrides){let result={...base};for(let key of Object.keys(overrides)){let overrideValue=overrides[key];if(overrideValue===void 0)continue;let baseValue=base[key];result[key]=isMergeableObject(baseValue)&&isMergeableObject(overrideValue)?deepMergeObjects(baseValue,overrideValue):overrideValue}return result}var DEFAULT_TOOL_NAMES=["read","bash","edit","write"];function isToolModifier(entry){return typeof entry=="string"&&(entry.startsWith("+")||entry.startsWith("-"))}function getToolListError(entries){let modifiers2=entries.filter(isToolModifier);if(modifiers2.length===0)return;if(modifiers2.length<entries.length)return"tool names cannot be mixed with +name or -name entries";let pattern=modifiers2.find(entry=>entry.includes("*"));if(pattern)return`+name and -name entries take exact tool names, not patterns: ${pattern}`}function applyToolModifiers(base,entries){let tools=[...base];for(let entry of entries){if(!isToolModifier(entry))continue;let name=entry.slice(1),index3=tools.indexOf(name);entry.startsWith("+")&&index3===-1&&name?tools.push(name):entry.startsWith("-")&&index3!==-1&&tools.splice(index3,1)}return tools}function mergeDefaultTools(base,overrides){return overrides===void 0?base:!Array.isArray(base)||!Array.isArray(overrides)||!overrides.every(isToolModifier)?overrides:[...base,...overrides]}function resolveDefaultTools(entries){let plain=entries.filter(entry=>!isToolModifier(entry));return applyToolModifiers(plain.length>0||entries.length===0?plain:DEFAULT_TOOL_NAMES,entries)}function deepMergeSettings(base,overrides){let merged=deepMergeObjects(base,overrides),defaultTools=mergeDefaultTools(base.defaultTools,overrides.defaultTools);return defaultTools===void 0?merged:{...merged,defaultTools}}function parseTimeoutSetting(value,settingName){let timeoutMs=parseHttpIdleTimeoutMs(value);if(timeoutMs!==void 0)return timeoutMs;if(value!==void 0)throw new Error(`Invalid ${settingName} setting: ${String(value)}`)}function toSettingsError(scope,error,path2){return{scope,...path2?{path:path2}:{},error:error instanceof Error?error:new Error(String(error))}}var FileSettingsStorage=class{globalSettingsPath;projectSettingsPath;constructor(cwd,agentDir){let resolvedCwd=resolvePath(cwd),resolvedAgentDir=resolvePath(agentDir);this.globalSettingsPath=join(resolvedAgentDir,"settings.json"),this.projectSettingsPath=join(resolvedCwd,PROJECT_CONFIG_DIR_NAME,"settings.json")}acquireLockSyncWithRetry(path2){let lastError;for(let attempt=1;attempt<=10;attempt++)try{return import_proper_lockfile.default.lockSync(path2,{realpath:!1})}catch(error){if((typeof error=="object"&&error!==null&&"code"in error?String(error.code):void 0)!=="ELOCKED"||attempt===10)throw error;lastError=error;let start=Date.now();for(;Date.now()-start<20;);}throw lastError??new Error("Failed to acquire settings lock")}withLock(scope,fn){let path2=scope==="global"?this.globalSettingsPath:this.projectSettingsPath,dir=dirname(path2),release;try{let fileExists2=existsSync(path2);fileExists2&&(release=this.acquireLockSyncWithRetry(path2));let current=fileExists2?readFileSync(path2,"utf-8"):void 0,next=fn(current);next!==void 0&&(existsSync(dir)||mkdirSync(dir,{recursive:!0}),release||(release=this.acquireLockSyncWithRetry(path2)),writeFileSync(path2,next,"utf-8"))}finally{release&&release()}}},InMemorySettingsStorage=class{global;project;withLock(scope,fn){let current=scope==="global"?this.global:this.project,next=fn(current);next!==void 0&&(scope==="global"?this.global=next:this.project=next)}},SettingsManager=class _SettingsManager{storage;globalSettings;projectSettings;settings;projectTrusted;modifiedFields=new Set;modifiedNestedFields=new Map;modifiedProjectFields=new Set;modifiedProjectNestedFields=new Map;globalSettingsLoadError=null;projectSettingsLoadError=null;writeQueue=Promise.resolve();errors;settingsPaths;constructor(storage,initialGlobal,initialProject,globalLoadError=null,projectLoadError=null,initialErrors=[],projectTrusted=!0,settingsPaths={}){this.storage=storage,this.globalSettings=initialGlobal,this.projectSettings=initialProject,this.projectTrusted=projectTrusted,this.globalSettingsLoadError=globalLoadError,this.projectSettingsLoadError=projectLoadError,this.errors=[...initialErrors],this.settingsPaths=settingsPaths,this.settings=deepMergeSettings(this.globalSettings,this.projectSettings)}static create(cwd,agentDir=getAgentDir(),options={}){let resolvedCwd=resolvePath(cwd),resolvedAgentDir=resolvePath(agentDir),storage=new FileSettingsStorage(resolvedCwd,resolvedAgentDir);return _SettingsManager.fromStorageWithPaths(storage,options,{global:join(resolvedAgentDir,"settings.json"),project:join(resolvedCwd,PROJECT_CONFIG_DIR_NAME,"settings.json")})}static fromStorage(storage,options={}){return _SettingsManager.fromStorageWithPaths(storage,options)}static fromStorageWithPaths(storage,options,settingsPaths={}){let projectTrusted=options.projectTrusted??!0,globalLoad=_SettingsManager.tryLoadFromStorage(storage,"global"),projectLoad=_SettingsManager.tryLoadFromStorage(storage,"project",projectTrusted),initialErrors=[];return globalLoad.error&&initialErrors.push(toSettingsError("global",globalLoad.error,settingsPaths.global)),projectLoad.error&&initialErrors.push(toSettingsError("project",projectLoad.error,settingsPaths.project)),new _SettingsManager(storage,globalLoad.settings,projectLoad.settings,globalLoad.error,projectLoad.error,initialErrors,projectTrusted,settingsPaths)}static inMemory(settings={},options={}){let storage=new InMemorySettingsStorage,initialSettings=_SettingsManager.migrateSettings(structuredClone(settings));return storage.withLock("global",()=>JSON.stringify(initialSettings,null,2)),_SettingsManager.fromStorage(storage,options)}static loadFromStorage(storage,scope,projectTrusted=!0){if(scope==="project"&&!projectTrusted)return{};let content;if(storage.withLock(scope,current=>{content=current}),!content)return{};let settings=JSON.parse(stripBom(content));return _SettingsManager.migrateSettings(settings)}static tryLoadFromStorage(storage,scope,projectTrusted=!0){try{return{settings:_SettingsManager.loadFromStorage(storage,scope,projectTrusted),error:null}}catch(error){return{settings:{},error}}}static migrateSettings(settings){if("queueMode"in settings&&!("steeringMode"in settings)&&(settings.steeringMode=settings.queueMode,delete settings.queueMode),!("transport"in settings)&&typeof settings.websockets=="boolean"&&(settings.transport=settings.websockets?"websocket":"sse",delete settings.websockets),"skills"in settings&&typeof settings.skills=="object"&&settings.skills!==null&&!Array.isArray(settings.skills)){let skillsSettings=settings.skills;skillsSettings.enableSkillCommands!==void 0&&settings.enableSkillCommands===void 0&&(settings.enableSkillCommands=skillsSettings.enableSkillCommands),Array.isArray(skillsSettings.customDirectories)&&skillsSettings.customDirectories.length>0?settings.skills=skillsSettings.customDirectories:delete settings.skills}if("retry"in settings&&typeof settings.retry=="object"&&settings.retry!==null&&!Array.isArray(settings.retry)){let retrySettings=settings.retry,providerSettings=typeof retrySettings.provider=="object"&&retrySettings.provider!==null?retrySettings.provider:void 0;typeof retrySettings.maxDelayMs=="number"&&(providerSettings?.maxRetryDelayMs===void 0||providerSettings?.maxRetryDelayMs===null)&&(retrySettings.provider={...providerSettings??{},maxRetryDelayMs:retrySettings.maxDelayMs}),delete retrySettings.maxDelayMs}return settings}getSettings(){return structuredClone(this.settings)}getGlobalSettings(){return structuredClone(this.globalSettings)}getProjectSettings(){return structuredClone(this.projectSettings)}isProjectTrusted(){return this.projectTrusted}setProjectTrusted(trusted){if(this.projectTrusted===trusted)return;if(this.projectTrusted=trusted,this.modifiedProjectFields.clear(),this.modifiedProjectNestedFields.clear(),!trusted){this.projectSettings={},this.projectSettingsLoadError=null,this.settings=deepMergeSettings(this.globalSettings,this.projectSettings);return}let projectLoad=_SettingsManager.tryLoadFromStorage(this.storage,"project",trusted);this.projectSettings=projectLoad.settings,this.projectSettingsLoadError=projectLoad.error,projectLoad.error&&this.recordError("project",projectLoad.error),this.settings=deepMergeSettings(this.globalSettings,this.projectSettings)}async reload(){await this.writeQueue;let globalLoad=_SettingsManager.tryLoadFromStorage(this.storage,"global");globalLoad.error?(this.globalSettingsLoadError=globalLoad.error,this.recordError("global",globalLoad.error)):(this.globalSettings=globalLoad.settings,this.globalSettingsLoadError=null),this.modifiedFields.clear(),this.modifiedNestedFields.clear(),this.modifiedProjectFields.clear(),this.modifiedProjectNestedFields.clear();let projectLoad=_SettingsManager.tryLoadFromStorage(this.storage,"project",this.projectTrusted);projectLoad.error?(this.projectSettingsLoadError=projectLoad.error,this.recordError("project",projectLoad.error)):(this.projectSettings=projectLoad.settings,this.projectSettingsLoadError=null),this.settings=deepMergeSettings(this.globalSettings,this.projectSettings)}applyOverrides(overrides){this.settings=deepMergeSettings(this.settings,overrides)}markModified(field,nestedKey){this.modifiedFields.add(field),nestedKey&&(this.modifiedNestedFields.has(field)||this.modifiedNestedFields.set(field,new Set),this.modifiedNestedFields.get(field).add(nestedKey))}markProjectModified(field,nestedKey){this.modifiedProjectFields.add(field),nestedKey&&(this.modifiedProjectNestedFields.has(field)||this.modifiedProjectNestedFields.set(field,new Set),this.modifiedProjectNestedFields.get(field).add(nestedKey))}assertProjectTrustedForWrite(){if(!this.projectTrusted)throw new Error("Project is not trusted; refusing to write project settings")}recordError(scope,error){this.errors.push(toSettingsError(scope,error,this.settingsPaths[scope]))}clearModifiedScope(scope){if(scope==="global"){this.modifiedFields.clear(),this.modifiedNestedFields.clear();return}this.modifiedProjectFields.clear(),this.modifiedProjectNestedFields.clear()}enqueueWrite(scope,task){this.writeQueue=this.writeQueue.then(()=>{scope==="project"&&this.assertProjectTrustedForWrite(),task(),this.clearModifiedScope(scope)}).catch(error=>{this.recordError(scope,error)})}cloneModifiedNestedFields(source){let snapshot=new Map;for(let[key,value]of source.entries())snapshot.set(key,new Set(value));return snapshot}persistScopedSettings(scope,snapshotSettings,modifiedFields,modifiedNestedFields){this.storage.withLock(scope,current=>{let currentFileSettings=current?_SettingsManager.migrateSettings(JSON.parse(stripBom(current))):{},mergedSettings={...currentFileSettings};for(let field of modifiedFields){let value=snapshotSettings[field];if(modifiedNestedFields.has(field)&&typeof value=="object"&&value!==null){let nestedModified=modifiedNestedFields.get(field),baseNested=currentFileSettings[field]??{},inMemoryNested=value,mergedNested={...baseNested};for(let nestedKey of nestedModified)mergedNested[nestedKey]=inMemoryNested[nestedKey];mergedSettings[field]=mergedNested}else mergedSettings[field]=value}return JSON.stringify(mergedSettings,null,2)})}save(){if(this.settings=deepMergeSettings(this.globalSettings,this.projectSettings),this.globalSettingsLoadError)return;let snapshotGlobalSettings=structuredClone(this.globalSettings),modifiedFields=new Set(this.modifiedFields),modifiedNestedFields=this.cloneModifiedNestedFields(this.modifiedNestedFields);this.enqueueWrite("global",()=>{this.persistScopedSettings("global",snapshotGlobalSettings,modifiedFields,modifiedNestedFields)})}saveProjectSettings(settings){if(this.assertProjectTrustedForWrite(),this.projectSettings=structuredClone(settings),this.settings=deepMergeSettings(this.globalSettings,this.projectSettings),this.projectSettingsLoadError)return;let snapshotProjectSettings=structuredClone(this.projectSettings),modifiedFields=new Set(this.modifiedProjectFields),modifiedNestedFields=this.cloneModifiedNestedFields(this.modifiedProjectNestedFields);this.enqueueWrite("project",()=>{this.persistScopedSettings("project",snapshotProjectSettings,modifiedFields,modifiedNestedFields)})}updateProjectSettings(field,update){this.assertProjectTrustedForWrite();let projectSettings=structuredClone(this.projectSettings);update(projectSettings),this.markProjectModified(field),this.saveProjectSettings(projectSettings)}async flush(){await this.writeQueue}drainErrors(){let drained=[...this.errors];return this.errors=[],drained}getLastChangelogVersion(){return this.settings.lastChangelogVersion}setLastChangelogVersion(version){this.globalSettings.lastChangelogVersion=version,this.markModified("lastChangelogVersion"),this.save()}getSessionDir(){let sessionDir=this.settings.sessionDir;return sessionDir&&normalizePath(sessionDir)}getDefaultProvider(){return this.settings.defaultProvider}getDefaultModel(){return this.settings.defaultModel}setDefaultProvider(provider){this.globalSettings.defaultProvider=provider,this.markModified("defaultProvider"),this.save()}setDefaultModel(modelId){this.globalSettings.defaultModel=modelId,this.markModified("defaultModel"),this.save()}setDefaultModelAndProvider(provider,modelId){this.globalSettings.defaultProvider=provider,this.globalSettings.defaultModel=modelId,this.markModified("defaultProvider"),this.markModified("defaultModel"),this.save()}getSteeringMode(){return this.settings.steeringMode||SETTINGS_DEFAULTS.steeringMode}setSteeringMode(mode){this.globalSettings.steeringMode=mode,this.markModified("steeringMode"),this.save()}getFollowUpMode(){return this.settings.followUpMode||SETTINGS_DEFAULTS.followUpMode}setFollowUpMode(mode){this.globalSettings.followUpMode=mode,this.markModified("followUpMode"),this.save()}getThemeSetting(){let value=this.settings.theme;if(typeof value=="string")return value}getTheme(){let theme2=this.getThemeSetting();return theme2?.includes("/")?void 0:theme2}setTheme(theme2){this.globalSettings.theme=theme2,this.markModified("theme"),this.save()}getDefaultThinkingLevel(){return this.settings.defaultThinkingLevel}setDefaultThinkingLevel(level){this.globalSettings.defaultThinkingLevel=level,this.markModified("defaultThinkingLevel"),this.save()}getModelThinkingLevel(provider,modelId){return this.settings.modelThinkingLevels?.[`${provider}/${modelId}`]}getAllModelThinkingLevels(){return{...this.settings.modelThinkingLevels??{}}}setModelThinkingLevel(provider,modelId,level){this.globalSettings.modelThinkingLevels||(this.globalSettings.modelThinkingLevels={}),this.globalSettings.modelThinkingLevels[`${provider}/${modelId}`]=level,this.markModified("modelThinkingLevels"),this.save()}removeModelThinkingLevel(provider,modelId){this.globalSettings.modelThinkingLevels&&(delete this.globalSettings.modelThinkingLevels[`${provider}/${modelId}`],Object.keys(this.globalSettings.modelThinkingLevels).length===0&&delete this.globalSettings.modelThinkingLevels,this.markModified("modelThinkingLevels"),this.save())}getTransport(){return this.settings.transport??SETTINGS_DEFAULTS.transport}setTransport(transport){this.globalSettings.transport=transport,this.markModified("transport"),this.save()}getSessionShareDestination(){let destination=this.settings.sessionShareDestination;return destination==="gist"||destination==="radius"?destination:SETTINGS_DEFAULTS.sessionShareDestination}setSessionShareDestination(destination){this.globalSettings.sessionShareDestination=destination,this.markModified("sessionShareDestination"),this.save()}getCompactionEnabled(){return this.settings.compaction?.enabled??SETTINGS_DEFAULTS.compaction.enabled}getCompactionStrategy(){let strategy=this.settings.compaction?.strategy??SETTINGS_DEFAULTS.compaction.strategy;if(strategy!=="summary"&&strategy!=="archive")throw new Error(`Invalid compaction.strategy setting: ${String(strategy)}. Expected "summary" or "archive".`);return strategy}setCompactionEnabled(enabled){this.globalSettings.compaction||(this.globalSettings.compaction={}),this.globalSettings.compaction.enabled=enabled,this.markModified("compaction","enabled"),this.save()}getCompactionTokenSetting(field,model){let compaction=this.settings.compaction,ordinary=compaction?.[field];if(ordinary!==void 0&&(typeof ordinary!="number"||!Number.isSafeInteger(ordinary)||ordinary<0))throw new Error(`Invalid compaction.${field} setting: ${String(ordinary)}. Expected a non-negative safe integer.`);let modelKey=model?`${model.provider}/${model.id}`:void 0,entry=modelKey!==void 0?compaction?.modelOverrides?.[modelKey]:void 0;if(entry!==void 0&&!isMergeableObject(entry))throw new Error(`Invalid compaction.modelOverrides["${modelKey}"] setting: ${String(entry)}. Expected an object.`);let override=entry?.[field];if(override!==void 0&&(typeof override!="number"||!Number.isSafeInteger(override)||override<0))throw new Error(`Invalid compaction.modelOverrides["${modelKey}"].${field} setting: ${String(override)}. Expected a non-negative safe integer.`);return override??ordinary??DEFAULT_COMPACTION_TOKEN_SETTINGS[field]}getCompactionReserveTokens(model){return this.getCompactionTokenSetting("reserveTokens",model)}getCompactionKeepRecentTokens(model){return this.getCompactionTokenSetting("keepRecentTokens",model)}getCompactionSettings(model){return{enabled:this.getCompactionEnabled(),reserveTokens:this.getCompactionReserveTokens(model),keepRecentTokens:this.getCompactionKeepRecentTokens(model)}}getBranchSummarySettings(){return{reserveTokens:this.settings.branchSummary?.reserveTokens??SETTINGS_DEFAULTS.branchSummary.reserveTokens,skipPrompt:this.settings.branchSummary?.skipPrompt??SETTINGS_DEFAULTS.branchSummary.skipPrompt}}getBranchSummarySkipPrompt(){return this.settings.branchSummary?.skipPrompt??SETTINGS_DEFAULTS.branchSummary.skipPrompt}getRetryEnabled(){return this.settings.retry?.enabled??SETTINGS_DEFAULTS.retry.enabled}setRetryEnabled(enabled){this.globalSettings.retry||(this.globalSettings.retry={}),this.globalSettings.retry.enabled=enabled,this.markModified("retry","enabled"),this.save()}getRetrySettings(){return{enabled:this.getRetryEnabled(),maxRetries:this.settings.retry?.maxRetries??SETTINGS_DEFAULTS.retry.maxRetries,baseDelayMs:this.settings.retry?.baseDelayMs??SETTINGS_DEFAULTS.retry.baseDelayMs,maxAgentDelayMs:this.settings.retry?.maxAgentDelayMs??SETTINGS_DEFAULTS.retry.maxAgentDelayMs}}getHttpIdleTimeoutMs(){return parseTimeoutSetting(this.settings.httpIdleTimeoutMs,"httpIdleTimeoutMs")??DEFAULT_HTTP_IDLE_TIMEOUT_MS}setHttpIdleTimeoutMs(timeoutMs){if(!Number.isFinite(timeoutMs)||timeoutMs<0)throw new Error(`Invalid httpIdleTimeoutMs setting: ${String(timeoutMs)}`);this.globalSettings.httpIdleTimeoutMs=Math.floor(timeoutMs),this.markModified("httpIdleTimeoutMs"),this.save()}getCacheWarmingMode(){let mode=this.globalSettings.cacheWarming;return mode!==void 0&&CACHE_WARMING_MODES.includes(mode)?mode:SETTINGS_DEFAULTS.cacheWarming}setCacheWarmingMode(mode){this.globalSettings.cacheWarming=mode,this.markModified("cacheWarming"),this.save()}getProviderRetrySettings(){return{timeoutMs:this.settings.retry?.provider?.timeoutMs,maxRetries:this.settings.retry?.provider?.maxRetries,maxRetryDelayMs:this.settings.retry?.provider?.maxRetryDelayMs??SETTINGS_DEFAULTS.retry.provider.maxRetryDelayMs}}getWebSocketConnectTimeoutMs(){return parseTimeoutSetting(this.settings.websocketConnectTimeoutMs,"websocketConnectTimeoutMs")}getHideThinkingBlock(){return this.settings.hideThinkingBlock??SETTINGS_DEFAULTS.hideThinkingBlock}getShowCacheMissNotices(){return this.settings.showCacheMissNotices??SETTINGS_DEFAULTS.showCacheMissNotices}getExternalEditorCommand(){let configuredEditor=this.settings.externalEditor;if(typeof configuredEditor=="string"&&configuredEditor.trim()!=="")return configuredEditor;let environmentEditor=process.env.VISUAL||process.env.EDITOR;return environmentEditor||(process.platform==="win32"?"notepad":"nano")}setHideThinkingBlock(hide){this.globalSettings.hideThinkingBlock=hide,this.markModified("hideThinkingBlock"),this.save()}setShowCacheMissNotices(show){this.globalSettings.showCacheMissNotices=show,this.markModified("showCacheMissNotices"),this.save()}getShellPath(){let shellPath=this.settings.shellPath;return shellPath&&normalizePath(shellPath)}setShellPath(path2){this.globalSettings.shellPath=path2,this.markModified("shellPath"),this.save()}getQuietStartup(){let value=this.settings.quietStartup;return value===!0||value==="header"?value:SETTINGS_DEFAULTS.quietStartup}setQuietStartup(quiet){this.globalSettings.quietStartup=quiet,this.markModified("quietStartup"),this.save()}getDefaultProjectTrust(){let value=this.globalSettings.defaultProjectTrust;return value==="always"||value==="never"?value:SETTINGS_DEFAULTS.defaultProjectTrust}setDefaultProjectTrust(defaultProjectTrust){this.globalSettings.defaultProjectTrust=defaultProjectTrust,this.markModified("defaultProjectTrust"),this.save()}getShellCommandPrefix(){return this.settings.shellCommandPrefix}setShellCommandPrefix(prefix){this.globalSettings.shellCommandPrefix=prefix,this.markModified("shellCommandPrefix"),this.save()}getNpmCommand(){return this.settings.npmCommand?[...this.settings.npmCommand]:void 0}setNpmCommand(command){this.globalSettings.npmCommand=command?[...command]:void 0,this.markModified("npmCommand"),this.save()}getCollapseChangelog(){return this.settings.collapseChangelog??SETTINGS_DEFAULTS.collapseChangelog}setCollapseChangelog(collapse){this.globalSettings.collapseChangelog=collapse,this.markModified("collapseChangelog"),this.save()}getEnableInstallTelemetry(){return this.settings.enableInstallTelemetry??SETTINGS_DEFAULTS.enableInstallTelemetry}setEnableInstallTelemetry(enabled){this.globalSettings.enableInstallTelemetry=enabled,this.markModified("enableInstallTelemetry"),this.save()}getEnableAnalytics(){return this.settings.enableAnalytics??SETTINGS_DEFAULTS.enableAnalytics}getTrackingId(){return this.settings.trackingId}setEnableAnalytics(enabled){this.globalSettings.enableAnalytics=enabled,this.markModified("enableAnalytics"),enabled&&!this.globalSettings.trackingId&&(this.globalSettings.trackingId=randomUUID(),this.markModified("trackingId")),this.save()}getOrCreateDeviceId(){return this.globalSettings.deviceId||(this.globalSettings.deviceId=randomUUID(),this.markModified("deviceId"),this.save()),this.globalSettings.deviceId}getPackages(){return[...this.settings.packages??[]]}setPackages(packages){this.globalSettings.packages=packages,this.markModified("packages"),this.save()}setProjectPackages(packages){this.updateProjectSettings("packages",settings=>{settings.packages=packages})}getExtensionPaths(){return[...this.settings.extensions??[]]}setExtensionPaths(paths){this.globalSettings.extensions=paths,this.markModified("extensions"),this.save()}setProjectExtensionPaths(paths){this.updateProjectSettings("extensions",settings=>{settings.extensions=paths})}getSkillPaths(){return[...this.settings.skills??[]]}setSkillPaths(paths){this.globalSettings.skills=paths,this.markModified("skills"),this.save()}setProjectSkillPaths(paths){this.updateProjectSettings("skills",settings=>{settings.skills=paths})}getPromptTemplatePaths(){return[...this.settings.prompts??[]]}setPromptTemplatePaths(paths){this.globalSettings.prompts=paths,this.markModified("prompts"),this.save()}setProjectPromptTemplatePaths(paths){this.updateProjectSettings("prompts",settings=>{settings.prompts=paths})}getThemePaths(){return[...this.settings.themes??[]]}setThemePaths(paths){this.globalSettings.themes=paths,this.markModified("themes"),this.save()}setProjectThemePaths(paths){this.updateProjectSettings("themes",settings=>{settings.themes=paths})}getEnableSkillCommands(){return this.settings.enableSkillCommands??SETTINGS_DEFAULTS.enableSkillCommands}setEnableSkillCommands(enabled){this.globalSettings.enableSkillCommands=enabled,this.markModified("enableSkillCommands"),this.save()}getRlmSettings(){let rlm=this.settings.rlm;return{enabled:rlm?.enabled??SETTINGS_DEFAULTS.rlm.enabled,subModel:rlm?.subModel,outputLimit:rlm?.outputLimit??SETTINGS_DEFAULTS.rlm.outputLimit,maxDepth:rlm?.maxDepth??SETTINGS_DEFAULTS.rlm.maxDepth,memoryLimitMb:rlm?.memoryLimitMb??SETTINGS_DEFAULTS.rlm.memoryLimitMb}}getAgentRoles(){return this.settings.agentRoles??{}}setAgentRoles(value){this.globalSettings.agentRoles=structuredClone(value),this.markModified("agentRoles"),this.save()}getThinkingBudgets(){return this.settings.thinkingBudgets}getTerminalCapabilityOverrides(){let terminal=this.settings.terminal,images=terminal?.images;return{...images==="kitty"||images==="iterm2"?{images}:images===!1?{images:null}:{},...typeof terminal?.trueColor=="boolean"?{trueColor:terminal.trueColor}:{},...typeof terminal?.hyperlinks=="boolean"?{hyperlinks:terminal.hyperlinks}:{}}}getShowImages(){return this.settings.terminal?.showImages??SETTINGS_DEFAULTS.terminal.showImages}setShowImages(show){this.globalSettings.terminal||(this.globalSettings.terminal={}),this.globalSettings.terminal.showImages=show,this.markModified("terminal","showImages"),this.save()}getImageWidthCells(){let width=this.settings.terminal?.imageWidthCells;return typeof width!="number"||!Number.isFinite(width)?SETTINGS_DEFAULTS.terminal.imageWidthCells:Math.max(1,Math.floor(width))}setImageWidthCells(width){this.globalSettings.terminal||(this.globalSettings.terminal={}),this.globalSettings.terminal.imageWidthCells=Math.max(1,Math.floor(width)),this.markModified("terminal","imageWidthCells"),this.save()}getClearOnShrink(){return this.settings.terminal?.clearOnShrink!==void 0?this.settings.terminal.clearOnShrink:process.env.PI_CLEAR_ON_SHRINK==="1"?!0:SETTINGS_DEFAULTS.terminal.clearOnShrink}setClearOnShrink(enabled){this.globalSettings.terminal||(this.globalSettings.terminal={}),this.globalSettings.terminal.clearOnShrink=enabled,this.markModified("terminal","clearOnShrink"),this.save()}getShowTerminalProgress(){return this.settings.terminal?.showTerminalProgress??SETTINGS_DEFAULTS.terminal.showTerminalProgress}setShowTerminalProgress(enabled){this.globalSettings.terminal||(this.globalSettings.terminal={}),this.globalSettings.terminal.showTerminalProgress=enabled,this.markModified("terminal","showTerminalProgress"),this.save()}getTuiMode(){return this.settings.tuiMode==="regular"?"regular":SETTINGS_DEFAULTS.tuiMode}setTuiMode(mode){this.globalSettings.tuiMode=mode,this.markModified("tuiMode"),this.save()}getFullscreenExitOutput(){return this.settings.fullscreenExitOutput==="resume-hint"?"resume-hint":SETTINGS_DEFAULTS.fullscreenExitOutput}setFullscreenExitOutput(output){this.globalSettings.fullscreenExitOutput=output,this.markModified("fullscreenExitOutput"),this.save()}getFullscreenScrollbar(){let mode=this.settings.fullscreenScrollbar;return mode==="always"||mode==="hidden"?mode:SETTINGS_DEFAULTS.fullscreenScrollbar}setFullscreenScrollbar(mode){this.globalSettings.fullscreenScrollbar=mode,this.markModified("fullscreenScrollbar"),this.save()}getFullscreenCopyOnSelect(){return this.settings.fullscreenCopyOnSelect??SETTINGS_DEFAULTS.fullscreenCopyOnSelect}setFullscreenCopyOnSelect(enabled){this.globalSettings.fullscreenCopyOnSelect=enabled,this.markModified("fullscreenCopyOnSelect"),this.save()}getFullscreenWheelScrollLines(){let lines=this.settings.fullscreenWheelScrollLines;return typeof lines=="number"&&Number.isFinite(lines)?Math.max(1,Math.min(100,Math.floor(lines))):SETTINGS_DEFAULTS.fullscreenWheelScrollLines}setFullscreenWheelScrollLines(lines){this.globalSettings.fullscreenWheelScrollLines=lines==="auto"?lines:Math.max(1,Math.min(100,Math.floor(lines))),this.markModified("fullscreenWheelScrollLines"),this.save()}getImageAutoResize(){return this.settings.images?.autoResize??SETTINGS_DEFAULTS.images.autoResize}setImageAutoResize(enabled){this.globalSettings.images||(this.globalSettings.images={}),this.globalSettings.images.autoResize=enabled,this.markModified("images","autoResize"),this.save()}getBlockImages(){return this.settings.images?.blockImages??SETTINGS_DEFAULTS.images.blockImages}setBlockImages(blocked){this.globalSettings.images||(this.globalSettings.images={}),this.globalSettings.images.blockImages=blocked,this.markModified("images","blockImages"),this.save()}getEnabledModels(){return this.settings.enabledModels}getDefaultTools(){let tools=this.settings.defaultTools;if(tools!==void 0)return resolveDefaultTools(Array.isArray(tools)?tools.filter(tool=>typeof tool=="string"):[])}setEnabledModels(patterns){this.globalSettings.enabledModels=patterns,this.markModified("enabledModels"),this.save()}getDoubleEscapeAction(){return this.settings.doubleEscapeAction??SETTINGS_DEFAULTS.doubleEscapeAction}setDoubleEscapeAction(action){this.globalSettings.doubleEscapeAction=action,this.markModified("doubleEscapeAction"),this.save()}getTreeFilterMode(){let mode=this.settings.treeFilterMode;return mode&&["default","no-tools","user-only","labeled-only","all"].includes(mode)?mode:SETTINGS_DEFAULTS.treeFilterMode}setTreeFilterMode(mode){this.globalSettings.treeFilterMode=mode,this.markModified("treeFilterMode"),this.save()}getShowHardwareCursor(){return this.settings.showHardwareCursor??process.env.PI_HARDWARE_CURSOR==="1"}setShowHardwareCursor(enabled){this.globalSettings.showHardwareCursor=enabled,this.markModified("showHardwareCursor"),this.save()}getEditorPaddingX(){return this.settings.editorPaddingX??SETTINGS_DEFAULTS.editorPaddingX}setEditorPaddingX(padding){this.globalSettings.editorPaddingX=Math.max(0,Math.min(3,Math.floor(padding))),this.markModified("editorPaddingX"),this.save()}getOutputPad(){return this.settings.outputPad===0?0:SETTINGS_DEFAULTS.outputPad}setOutputPad(padding){this.globalSettings.outputPad=padding,this.markModified("outputPad"),this.save()}getAutocompleteMaxVisible(){return this.settings.autocompleteMaxVisible??SETTINGS_DEFAULTS.autocompleteMaxVisible}setAutocompleteMaxVisible(maxVisible){this.globalSettings.autocompleteMaxVisible=Math.max(3,Math.min(20,Math.floor(maxVisible))),this.markModified("autocompleteMaxVisible"),this.save()}getCodeBlockIndent(){return this.settings.markdown?.codeBlockIndent??SETTINGS_DEFAULTS.markdown.codeBlockIndent}getMermaidRenderingMode(){let mode=this.settings.markdown?.mermaid;return mode==="off"||mode==="final"?mode:SETTINGS_DEFAULTS.markdown.mermaid}setMermaidRenderingMode(mode){this.globalSettings.markdown??={},this.globalSettings.markdown.mermaid=mode,this.markModified("markdown","mermaid"),this.save()}getWarnings(){return{...this.settings.warnings??{}}}setWarnings(warnings){this.globalSettings.warnings={...warnings},this.markModified("warnings"),this.save()}};function readOrientationFromTiff(bytes,tiffStart){if(tiffStart+8>bytes.length)return 1;let le=(bytes[tiffStart]<<8|bytes[tiffStart+1])===18761,read16=pos=>le?bytes[pos]|bytes[pos+1]<<8:bytes[pos]<<8|bytes[pos+1],ifdOffset=(pos=>le?bytes[pos]|bytes[pos+1]<<8|bytes[pos+2]<<16|bytes[pos+3]<<24:(bytes[pos]<<24|bytes[pos+1]<<16|bytes[pos+2]<<8|bytes[pos+3])>>>0)(tiffStart+4),ifdStart=tiffStart+ifdOffset;if(ifdStart+2>bytes.length)return 1;let entryCount=read16(ifdStart);for(let i=0;i<entryCount;i++){let entryPos=ifdStart+2+i*12;if(entryPos+12>bytes.length)return 1;if(read16(entryPos)===274){let value=read16(entryPos+8);return value>=1&&value<=8?value:1}}return 1}function findJpegTiffOffset(bytes){let offset=2;for(;offset<bytes.length-1;){if(bytes[offset]!==255)return-1;let marker=bytes[offset+1];if(marker===255){offset++;continue}if(marker===225){if(offset+4>=bytes.length)return-1;let segmentStart=offset+4;if(segmentStart+6>bytes.length)return-1;if(hasExifHeader(bytes,segmentStart))return segmentStart+6}if(offset+4>bytes.length)return-1;let length=bytes[offset+2]<<8|bytes[offset+3];offset+=2+length}return-1}function findWebpTiffOffset(bytes){let offset=12;for(;offset+8<=bytes.length;){let chunkId=String.fromCharCode(bytes[offset],bytes[offset+1],bytes[offset+2],bytes[offset+3]),chunkSize=bytes[offset+4]|bytes[offset+5]<<8|bytes[offset+6]<<16|bytes[offset+7]<<24,dataStart=offset+8;if(chunkId==="EXIF")return dataStart+chunkSize>bytes.length?-1:chunkSize>=6&&hasExifHeader(bytes,dataStart)?dataStart+6:dataStart;offset=dataStart+chunkSize+chunkSize%2}return-1}function hasExifHeader(bytes,offset){return bytes[offset]===69&&bytes[offset+1]===120&&bytes[offset+2]===105&&bytes[offset+3]===102&&bytes[offset+4]===0&&bytes[offset+5]===0}function getExifOrientation(bytes){let tiffOffset=-1;return bytes.length>=2&&bytes[0]===255&&bytes[1]===216?tiffOffset=findJpegTiffOffset(bytes):bytes.length>=12&&bytes[0]===82&&bytes[1]===73&&bytes[2]===70&&bytes[3]===70&&bytes[8]===87&&bytes[9]===69&&bytes[10]===66&&bytes[11]===80&&(tiffOffset=findWebpTiffOffset(bytes)),tiffOffset===-1?1:readOrientationFromTiff(bytes,tiffOffset)}function rotate90(photon,image,dstIndex){let w=image.get_width(),h=image.get_height(),src=image.get_raw_pixels(),dst=new Uint8Array(src.length);for(let y=0;y<h;y++)for(let x=0;x<w;x++){let srcIdx=(y*w+x)*4,dstIdx=dstIndex(x,y,w,h)*4;dst[dstIdx]=src[srcIdx],dst[dstIdx+1]=src[srcIdx+1],dst[dstIdx+2]=src[srcIdx+2],dst[dstIdx+3]=src[srcIdx+3]}return new photon.PhotonImage(dst,h,w)}function applyExifOrientation(photon,image,originalBytes){let orientation=getExifOrientation(originalBytes);if(orientation===1)return image;switch(orientation){case 2:return photon.fliph(image),image;case 3:return photon.fliph(image),photon.flipv(image),image;case 4:return photon.flipv(image),image;case 5:{let rotated=rotate90(photon,image,(x,y,_w,h)=>x*h+(h-1-y));return photon.fliph(rotated),rotated}case 6:return rotate90(photon,image,(x,y,_w,h)=>x*h+(h-1-y));case 7:{let rotated=rotate90(photon,image,(x,y,w,h)=>(w-1-x)*h+y);return photon.fliph(rotated),rotated}case 8:return rotate90(photon,image,(x,y,w,h)=>(w-1-x)*h+y);default:return image}}import{createRequire}from"module";import*as path from"path";import{fileURLToPath}from"url";var require2=createRequire(import.meta.url),fs=require2("fs"),WASM_FILENAME="photon_rs_bg.wasm",photonModule=null,loadPromise=null;function pathOrNull(file){return typeof file=="string"?file:file instanceof URL?fileURLToPath(file):null}function getFallbackWasmPaths(){let execDir=path.dirname(process.execPath);return[path.join(execDir,WASM_FILENAME),path.join(execDir,"photon",WASM_FILENAME),path.join(process.cwd(),WASM_FILENAME)]}function patchPhotonWasmRead(){let originalReadFileSync=fs.readFileSync.bind(fs),fallbackPaths=getFallbackWasmPaths(),mutableFs=fs,patchedReadFileSync=((...args)=>{let[file,options]=args;if(pathOrNull(file)?.endsWith(WASM_FILENAME))try{return originalReadFileSync(...args)}catch(error){let err=error;if(err?.code&&err.code!=="ENOENT")throw error;for(let fallbackPath of fallbackPaths)if(fs.existsSync(fallbackPath))return options===void 0?originalReadFileSync(fallbackPath):originalReadFileSync(fallbackPath,options);throw error}return originalReadFileSync(...args)});try{mutableFs.readFileSync=patchedReadFileSync}catch{Object.defineProperty(fs,"readFileSync",{value:patchedReadFileSync,writable:!0,configurable:!0})}return()=>{try{mutableFs.readFileSync=originalReadFileSync}catch{Object.defineProperty(fs,"readFileSync",{value:originalReadFileSync,writable:!0,configurable:!0})}}}async function loadPhoton(){return photonModule||loadPromise||(loadPromise=(async()=>{let restoreReadFileSync=patchPhotonWasmRead();try{return photonModule=await import("@silvia-odwyer/photon-node"),photonModule}catch{return photonModule=null,photonModule}finally{restoreReadFileSync()}})(),loadPromise)}function encodePng(photon,bytes){try{let rawImage=photon.PhotonImage.new_from_byteslice(bytes),image=applyExifOrientation(photon,rawImage,bytes);image!==rawImage&&rawImage.free();try{return new Uint8Array(image.get_bytes())}finally{image.free()}}catch{return null}}async function convertImageBytesToPng(bytes){let photon=await loadPhoton();return photon?encodePng(photon,bytes):null}async function convertToPng(base64Data,mimeType){if(mimeType==="image/png")return{data:base64Data,mimeType};let bytes=new Uint8Array(Buffer.from(base64Data,"base64")),pngBytes=await convertImageBytesToPng(bytes);return pngBytes?{data:Buffer.from(pngBytes).toString("base64"),mimeType:"image/png"}:null}async function loadPngTranscoder(){let photon=await loadPhoton();if(photon)return base64Data=>{let pngBytes=encodePng(photon,new Uint8Array(Buffer.from(base64Data,"base64")));return pngBytes?Buffer.from(pngBytes).toString("base64"):null}}var pngTranscoderLoad,pngTranscoderRegistered=!1;function ensurePngTranscoder(onRegistered){pngTranscoderRegistered||getCapabilities().images!=="kitty"||(pngTranscoderLoad??=loadPngTranscoder().then(transcoder=>transcoder?(setImageTranscoder(transcoder),pngTranscoderRegistered=!0,!0):!1),pngTranscoderLoad.then(registered=>{registered&&onRegistered()}))}var Diff2=class{diff(oldStr,newStr,options={}){let callback;typeof options=="function"?(callback=options,options={}):"callback"in options&&(callback=options.callback);let oldString=this.castInput(oldStr,options),newString=this.castInput(newStr,options),oldTokens=this.removeEmpty(this.tokenize(oldString,options)),newTokens=this.removeEmpty(this.tokenize(newString,options));return this.diffWithOptionsObj(oldTokens,newTokens,options,callback)}diffWithOptionsObj(oldTokens,newTokens,options,callback){var _a;let done=value=>{if(value=this.postProcess(value,options),callback){setTimeout(function(){callback(value)},0);return}else return value},newLen=newTokens.length,oldLen=oldTokens.length,editLength=1,maxEditLength=newLen+oldLen;options.maxEditLength!=null&&(maxEditLength=Math.min(maxEditLength,options.maxEditLength));let maxExecutionTime=(_a=options.timeout)!==null&&_a!==void 0?_a:1/0,abortAfterTimestamp=Date.now()+maxExecutionTime,bestPath=[{oldPos:-1,lastComponent:void 0}],newPos=this.extractCommon(bestPath[0],newTokens,oldTokens,0,options);if(bestPath[0].oldPos+1>=oldLen&&newPos+1>=newLen)return done(this.buildValues(bestPath[0].lastComponent,newTokens,oldTokens));let minDiagonalToConsider=-1/0,maxDiagonalToConsider=1/0,execEditLength=()=>{for(let diagonalPath=Math.max(minDiagonalToConsider,-editLength);diagonalPath<=Math.min(maxDiagonalToConsider,editLength);diagonalPath+=2){let basePath,removePath=bestPath[diagonalPath-1],addPath=bestPath[diagonalPath+1];removePath&&(bestPath[diagonalPath-1]=void 0);let canAdd=!1;if(addPath){let addPathNewPos=addPath.oldPos-diagonalPath;canAdd=addPath&&0<=addPathNewPos&&addPathNewPos<newLen}let canRemove=removePath&&removePath.oldPos+1<oldLen;if(!canAdd&&!canRemove){bestPath[diagonalPath]=void 0;continue}if(!canRemove||canAdd&&removePath.oldPos<addPath.oldPos?basePath=this.addToPath(addPath,!0,!1,0,options):basePath=this.addToPath(removePath,!1,!0,1,options),newPos=this.extractCommon(basePath,newTokens,oldTokens,diagonalPath,options),basePath.oldPos+1>=oldLen&&newPos+1>=newLen)return done(this.buildValues(basePath.lastComponent,newTokens,oldTokens))||!0;bestPath[diagonalPath]=basePath,basePath.oldPos+1>=oldLen&&(maxDiagonalToConsider=Math.min(maxDiagonalToConsider,diagonalPath-1)),newPos+1>=newLen&&(minDiagonalToConsider=Math.max(minDiagonalToConsider,diagonalPath+1))}editLength++};if(callback)(function exec(){setTimeout(function(){if(editLength>maxEditLength||Date.now()>abortAfterTimestamp)return callback(void 0);execEditLength()||exec()},0)})();else for(;editLength<=maxEditLength&&Date.now()<=abortAfterTimestamp;){let ret=execEditLength();if(ret)return ret}}addToPath(path2,added,removed,oldPosInc,options){let last=path2.lastComponent;return last&&!options.oneChangePerToken&&last.added===added&&last.removed===removed?{oldPos:path2.oldPos+oldPosInc,lastComponent:{count:last.count+1,added,removed,previousComponent:last.previousComponent}}:{oldPos:path2.oldPos+oldPosInc,lastComponent:{count:1,added,removed,previousComponent:last}}}extractCommon(basePath,newTokens,oldTokens,diagonalPath,options){let newLen=newTokens.length,oldLen=oldTokens.length,oldPos=basePath.oldPos,newPos=oldPos-diagonalPath,commonCount=0;for(;newPos+1<newLen&&oldPos+1<oldLen&&this.equals(oldTokens[oldPos+1],newTokens[newPos+1],options);)newPos++,oldPos++,commonCount++,options.oneChangePerToken&&(basePath.lastComponent={count:1,previousComponent:basePath.lastComponent,added:!1,removed:!1});return commonCount&&!options.oneChangePerToken&&(basePath.lastComponent={count:commonCount,previousComponent:basePath.lastComponent,added:!1,removed:!1}),basePath.oldPos=oldPos,newPos}equals(left,right,options){return options.comparator?options.comparator(left,right):left===right||!!options.ignoreCase&&left.toLowerCase()===right.toLowerCase()}removeEmpty(array){let ret=[];for(let i=0;i<array.length;i++)array[i]&&ret.push(array[i]);return ret}castInput(value,options){return value}tokenize(value,options){return Array.from(value)}join(chars){return chars.join("")}postProcess(changeObjects,options){return changeObjects}get useLongestToken(){return!1}buildValues(lastComponent,newTokens,oldTokens){let components=[],nextComponent;for(;lastComponent;)components.push(lastComponent),nextComponent=lastComponent.previousComponent,delete lastComponent.previousComponent,lastComponent=nextComponent;components.reverse();let componentLen=components.length,componentPos=0,newPos=0,oldPos=0;for(;componentPos<componentLen;componentPos++){let component=components[componentPos];if(component.removed)component.value=this.join(oldTokens.slice(oldPos,oldPos+component.count)),oldPos+=component.count;else{if(!component.added&&this.useLongestToken){let value=newTokens.slice(newPos,newPos+component.count);value=value.map(function(value2,i){let oldValue=oldTokens[oldPos+i];return oldValue.length>value2.length?oldValue:value2}),component.value=this.join(value)}else component.value=this.join(newTokens.slice(newPos,newPos+component.count));newPos+=component.count,component.added||(oldPos+=component.count)}}return components}};function longestCommonPrefix(str1,str2){let i;for(i=0;i<str1.length&&i<str2.length;i++)if(str1[i]!=str2[i])return str1.slice(0,i);return str1.slice(0,i)}function longestCommonSuffix(str1,str2){let i;if(!str1||!str2||str1[str1.length-1]!=str2[str2.length-1])return"";for(i=0;i<str1.length&&i<str2.length;i++)if(str1[str1.length-(i+1)]!=str2[str2.length-(i+1)])return str1.slice(-i);return str1.slice(-i)}function replacePrefix(string,oldPrefix,newPrefix){if(string.slice(0,oldPrefix.length)!=oldPrefix)throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);return newPrefix+string.slice(oldPrefix.length)}function replaceSuffix(string,oldSuffix,newSuffix){if(!oldSuffix)return string+newSuffix;if(string.slice(-oldSuffix.length)!=oldSuffix)throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);return string.slice(0,-oldSuffix.length)+newSuffix}function removePrefix(string,oldPrefix){return replacePrefix(string,oldPrefix,"")}function removeSuffix(string,oldSuffix){return replaceSuffix(string,oldSuffix,"")}function maximumOverlap(string1,string2){return string2.slice(0,overlapCount(string1,string2))}function overlapCount(a,b){let startA=0;a.length>b.length&&(startA=a.length-b.length);let endB=b.length;a.length<b.length&&(endB=a.length);let map=Array(endB),k=0;map[0]=0;for(let j=1;j<endB;j++){for(b[j]==b[k]?map[j]=map[k]:map[j]=k;k>0&&b[j]!=b[k];)k=map[k];b[j]==b[k]&&k++}k=0;for(let i=startA;i<a.length;i++){for(;k>0&&a[i]!=b[k];)k=map[k];a[i]==b[k]&&k++}return k}function segment(string,segmenter){let parts=[];for(let segmentObj of Array.from(segmenter.segment(string))){let segment2=segmentObj.segment;parts.length&&/\s/.test(parts[parts.length-1])&&/\s/.test(segment2)?parts[parts.length-1]+=segment2:parts.push(segment2)}return parts}function trailingWs(string,segmenter){if(segmenter)return leadingAndTrailingWs(string,segmenter)[1];let i;for(i=string.length-1;i>=0&&string[i].match(/\s/);i--);return string.substring(i+1)}function leadingWs(string,segmenter){if(segmenter)return leadingAndTrailingWs(string,segmenter)[0];let match=string.match(/^\s*/);return match?match[0]:""}function leadingAndTrailingWs(string,segmenter){if(!segmenter)return[leadingWs(string),trailingWs(string)];if(segmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');let segments=segment(string,segmenter),firstSeg=segments[0],lastSeg=segments[segments.length-1],head=/\s/.test(firstSeg)?firstSeg:"",tail=/\s/.test(lastSeg)?lastSeg:"";return[head,tail]}var extendedWordChars="a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",tokenizeIncludingWhitespace=new RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`,"ug"),WordDiff=class extends Diff2{equals(left,right,options){return options.ignoreCase&&(left=left.toLowerCase(),right=right.toLowerCase()),left.trim()===right.trim()}tokenize(value,options={}){let parts;if(options.intlSegmenter){let segmenter=options.intlSegmenter;if(segmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');parts=segment(value,segmenter)}else parts=value.match(tokenizeIncludingWhitespace)||[];let tokens=[],prevPart=null;return parts.forEach(part=>{/\s/.test(part)?prevPart==null?tokens.push(part):tokens.push(tokens.pop()+part):prevPart!=null&&/\s/.test(prevPart)?tokens[tokens.length-1]==prevPart?tokens.push(tokens.pop()+part):tokens.push(prevPart+part):tokens.push(part),prevPart=part}),tokens}join(tokens){return tokens.map((token,i)=>i==0?token:token.replace(/^\s+/,"")).join("")}postProcess(changes,options){if(!changes||options.oneChangePerToken)return changes;let lastKeep=null,insertion=null,deletion=null;return changes.forEach(change=>{change.added?insertion=change:change.removed?deletion=change:((insertion||deletion)&&dedupeWhitespaceInChangeObjects(lastKeep,deletion,insertion,change,options.intlSegmenter),lastKeep=change,insertion=null,deletion=null)}),(insertion||deletion)&&dedupeWhitespaceInChangeObjects(lastKeep,deletion,insertion,null,options.intlSegmenter),changes}},wordDiff=new WordDiff;function diffWords(oldStr,newStr,options){return options?.ignoreWhitespace!=null&&!options.ignoreWhitespace?diffWordsWithSpace(oldStr,newStr,options):wordDiff.diff(oldStr,newStr,options)}function dedupeWhitespaceInChangeObjects(startKeep,deletion,insertion,endKeep,segmenter){if(deletion&&insertion){let[oldWsPrefix,oldWsSuffix]=leadingAndTrailingWs(deletion.value,segmenter),[newWsPrefix,newWsSuffix]=leadingAndTrailingWs(insertion.value,segmenter);if(startKeep){let commonWsPrefix=longestCommonPrefix(oldWsPrefix,newWsPrefix);startKeep.value=replaceSuffix(startKeep.value,newWsPrefix,commonWsPrefix),deletion.value=removePrefix(deletion.value,commonWsPrefix),insertion.value=removePrefix(insertion.value,commonWsPrefix)}if(endKeep){let commonWsSuffix=longestCommonSuffix(oldWsSuffix,newWsSuffix);endKeep.value=replacePrefix(endKeep.value,newWsSuffix,commonWsSuffix),deletion.value=removeSuffix(deletion.value,commonWsSuffix),insertion.value=removeSuffix(insertion.value,commonWsSuffix)}}else if(insertion){if(startKeep){let ws=leadingWs(insertion.value,segmenter);insertion.value=insertion.value.substring(ws.length)}if(endKeep){let ws=leadingWs(endKeep.value,segmenter);endKeep.value=endKeep.value.substring(ws.length)}}else if(startKeep&&endKeep){let newWsFull=leadingWs(endKeep.value,segmenter),[delWsStart,delWsEnd]=leadingAndTrailingWs(deletion.value,segmenter),newWsStart=longestCommonPrefix(newWsFull,delWsStart);deletion.value=removePrefix(deletion.value,newWsStart);let newWsEnd=longestCommonSuffix(removePrefix(newWsFull,newWsStart),delWsEnd);deletion.value=removeSuffix(deletion.value,newWsEnd),endKeep.value=replacePrefix(endKeep.value,newWsFull,newWsEnd),startKeep.value=replaceSuffix(startKeep.value,newWsFull,newWsFull.slice(0,newWsFull.length-newWsEnd.length))}else if(endKeep){let endKeepWsPrefix=leadingWs(endKeep.value,segmenter),deletionWsSuffix=trailingWs(deletion.value,segmenter),overlap=maximumOverlap(deletionWsSuffix,endKeepWsPrefix);deletion.value=removeSuffix(deletion.value,overlap)}else if(startKeep){let startKeepWsSuffix=trailingWs(startKeep.value,segmenter),deletionWsPrefix=leadingWs(deletion.value,segmenter),overlap=maximumOverlap(startKeepWsSuffix,deletionWsPrefix);deletion.value=removePrefix(deletion.value,overlap)}}var WordsWithSpaceDiff=class extends Diff2{tokenize(value){let regex=new RegExp(`(\\r?\\n)|[${extendedWordChars}]+|[^\\S\\n\\r]+|[^${extendedWordChars}]`,"ug");return value.match(regex)||[]}},wordsWithSpaceDiff=new WordsWithSpaceDiff;function diffWordsWithSpace(oldStr,newStr,options){return wordsWithSpaceDiff.diff(oldStr,newStr,options)}var LineDiff=class extends Diff2{constructor(){super(...arguments),this.tokenize=tokenize}equals(left,right,options){return options.ignoreWhitespace?((!options.newlineIsToken||!left.includes(`
|
|
137
|
+
`))&&(left=left.trim()),(!options.newlineIsToken||!right.includes(`
|
|
138
|
+
`))&&(right=right.trim())):options.ignoreNewlineAtEof&&!options.newlineIsToken&&(left.endsWith(`
|
|
139
|
+
`)&&(left=left.slice(0,-1)),right.endsWith(`
|
|
140
|
+
`)&&(right=right.slice(0,-1))),super.equals(left,right,options)}},lineDiff=new LineDiff;function diffLines(oldStr,newStr,options){return lineDiff.diff(oldStr,newStr,options)}function tokenize(value,options){options.stripTrailingCr&&(value=value.replace(/\r\n/g,`
|
|
141
|
+
`));let retLines=[],linesAndNewlines=value.split(/(\n|\r\n)/);linesAndNewlines[linesAndNewlines.length-1]||linesAndNewlines.pop();for(let i=0;i<linesAndNewlines.length;i++){let line=linesAndNewlines[i];i%2&&!options.newlineIsToken?retLines[retLines.length-1]+=line:retLines.push(line)}return retLines}var INCLUDE_HEADERS={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0},FILE_HEADERS_ONLY={includeIndex:!1,includeUnderline:!1,includeFileHeaders:!0};function structuredPatch(oldFileName,newFileName,oldStr,newStr,oldHeader,newHeader,options){let optionsObj;options?typeof options=="function"?optionsObj={callback:options}:optionsObj=options:optionsObj={},typeof optionsObj.context>"u"&&(optionsObj.context=4);let context=optionsObj.context;if(optionsObj.newlineIsToken)throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");if(optionsObj.callback){let{callback}=optionsObj;diffLines(oldStr,newStr,Object.assign(Object.assign({},optionsObj),{callback:diff=>{let patch=diffLinesResultToPatch(diff);callback(patch)}}))}else return diffLinesResultToPatch(diffLines(oldStr,newStr,optionsObj));function diffLinesResultToPatch(diff){if(!diff)return;diff.push({value:"",lines:[]});function contextLines(lines){return lines.map(function(entry){return" "+entry})}let hunks=[],oldRangeStart=0,newRangeStart=0,curRange=[],oldLine=1,newLine=1;for(let i=0;i<diff.length;i++){let current=diff[i],lines=current.lines||splitLines(current.value);if(current.lines=lines,current.added||current.removed){if(!oldRangeStart){let prev=diff[i-1];oldRangeStart=oldLine,newRangeStart=newLine,prev&&(curRange=context>0?contextLines(prev.lines.slice(-context)):[],oldRangeStart-=curRange.length,newRangeStart-=curRange.length)}for(let line of lines)curRange.push((current.added?"+":"-")+line);current.added?newLine+=lines.length:oldLine+=lines.length}else{if(oldRangeStart)if(lines.length<=context*2&&i<diff.length-2)for(let line of contextLines(lines))curRange.push(line);else{let contextSize=Math.min(lines.length,context);for(let line of contextLines(lines.slice(0,contextSize)))curRange.push(line);let hunk={oldStart:oldRangeStart,oldLines:oldLine-oldRangeStart+contextSize,newStart:newRangeStart,newLines:newLine-newRangeStart+contextSize,lines:curRange};hunks.push(hunk),oldRangeStart=0,newRangeStart=0,curRange=[]}oldLine+=lines.length,newLine+=lines.length}}for(let hunk of hunks)for(let i=0;i<hunk.lines.length;i++)hunk.lines[i].endsWith(`
|
|
142
|
+
`)?hunk.lines[i]=hunk.lines[i].slice(0,-1):(hunk.lines.splice(i+1,0,"\"),i++);return{oldFileName,newFileName,oldHeader,newHeader,hunks}}}function formatPatch(patch,headerOptions){if(headerOptions||(headerOptions=INCLUDE_HEADERS),Array.isArray(patch)){if(patch.length>1&&!headerOptions.includeFileHeaders)throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");return patch.map(p=>formatPatch(p,headerOptions)).join(`
|
|
143
|
+
`)}let ret=[];headerOptions.includeIndex&&patch.oldFileName==patch.newFileName&&ret.push("Index: "+patch.oldFileName),headerOptions.includeUnderline&&ret.push("==================================================================="),headerOptions.includeFileHeaders&&(ret.push("--- "+patch.oldFileName+(typeof patch.oldHeader>"u"?"":" "+patch.oldHeader)),ret.push("+++ "+patch.newFileName+(typeof patch.newHeader>"u"?"":" "+patch.newHeader)));for(let i=0;i<patch.hunks.length;i++){let hunk=patch.hunks[i];hunk.oldLines===0&&(hunk.oldStart-=1),hunk.newLines===0&&(hunk.newStart-=1),ret.push("@@ -"+hunk.oldStart+","+hunk.oldLines+" +"+hunk.newStart+","+hunk.newLines+" @@");for(let line of hunk.lines)ret.push(line)}return ret.join(`
|
|
144
|
+
`)+`
|
|
145
|
+
`}function createTwoFilesPatch(oldFileName,newFileName,oldStr,newStr,oldHeader,newHeader,options){if(typeof options=="function"&&(options={callback:options}),options?.callback){let{callback}=options;structuredPatch(oldFileName,newFileName,oldStr,newStr,oldHeader,newHeader,Object.assign(Object.assign({},options),{callback:patchObj=>{callback(patchObj?formatPatch(patchObj,options.headerOptions):void 0)}}))}else{let patchObj=structuredPatch(oldFileName,newFileName,oldStr,newStr,oldHeader,newHeader,options);return patchObj?formatPatch(patchObj,options?.headerOptions):void 0}}function splitLines(text){let hasTrailingNl=text.endsWith(`
|
|
146
|
+
`),result=text.split(`
|
|
147
|
+
`).map(line=>line+`
|
|
148
|
+
`);return hasTrailingNl?result.pop():result.push(result.pop().slice(0,-1)),result}import{constants as constants2}from"fs";import{access as access2,readFile}from"fs/promises";import{accessSync,constants}from"node:fs";import{access}from"node:fs/promises";var NARROW_NO_BREAK_SPACE="\u202F";function tryMacOSScreenshotPath(filePath){return filePath.replace(/ (AM|PM)\./gi,`${NARROW_NO_BREAK_SPACE}$1.`)}function tryNFDVariant(filePath){return filePath.normalize("NFD")}function tryCurlyQuoteVariant(filePath){return filePath.replace(/'/g,"\u2019")}function fileExists(filePath){try{return accessSync(filePath,constants.F_OK),!0}catch{return!1}}async function pathExists(filePath){try{return await access(filePath,constants.F_OK),!0}catch{return!1}}function resolveToCwd(filePath,cwd){return resolvePath(filePath,cwd,{normalizeUnicodeSpaces:!0,stripAtPrefix:!0})}function resolveReadPath(filePath,cwd){let resolved=resolveToCwd(filePath,cwd);if(fileExists(resolved))return resolved;let amPmVariant=tryMacOSScreenshotPath(resolved);if(amPmVariant!==resolved&&fileExists(amPmVariant))return amPmVariant;let nfdVariant=tryNFDVariant(resolved);if(nfdVariant!==resolved&&fileExists(nfdVariant))return nfdVariant;let curlyVariant=tryCurlyQuoteVariant(resolved);if(curlyVariant!==resolved&&fileExists(curlyVariant))return curlyVariant;let nfdCurlyVariant=tryCurlyQuoteVariant(nfdVariant);return nfdCurlyVariant!==resolved&&fileExists(nfdCurlyVariant)?nfdCurlyVariant:resolved}async function resolveReadPathAsync(filePath,cwd){let resolved=resolveToCwd(filePath,cwd);if(await pathExists(resolved))return resolved;let amPmVariant=tryMacOSScreenshotPath(resolved);if(amPmVariant!==resolved&&await pathExists(amPmVariant))return amPmVariant;let nfdVariant=tryNFDVariant(resolved);if(nfdVariant!==resolved&&await pathExists(nfdVariant))return nfdVariant;let curlyVariant=tryCurlyQuoteVariant(resolved);if(curlyVariant!==resolved&&await pathExists(curlyVariant))return curlyVariant;let nfdCurlyVariant=tryCurlyQuoteVariant(nfdVariant);return nfdCurlyVariant!==resolved&&await pathExists(nfdCurlyVariant)?nfdCurlyVariant:resolved}function detectLineEnding(content){let crlfIdx=content.indexOf(`\r
|
|
149
|
+
`),lfIdx=content.indexOf(`
|
|
150
|
+
`);return lfIdx===-1||crlfIdx===-1?`
|
|
151
|
+
`:crlfIdx<lfIdx?`\r
|
|
152
|
+
`:`
|
|
153
|
+
`}function normalizeToLF(text){return text.replace(/\r\n/g,`
|
|
154
|
+
`).replace(/\r/g,`
|
|
155
|
+
`)}function restoreLineEndings(text,ending){return ending===`\r
|
|
156
|
+
`?text.replace(/\n/g,`\r
|
|
157
|
+
`):text}function normalizeForFuzzyMatch(text){return text.normalize("NFKC").split(`
|
|
158
|
+
`).map(line=>line.trimEnd()).join(`
|
|
159
|
+
`).replace(/[\u2018\u2019\u201A\u201B]/g,"'").replace(/[\u201C\u201D\u201E\u201F]/g,'"').replace(/[\u2010\u2011\u2012\u2013\u2014\u2015\u2212]/g,"-").replace(/[\u00A0\u2002-\u200A\u202F\u205F\u3000]/g," ")}function splitLinesWithEndings(content){return content.match(/[^\n]*\n|[^\n]+/g)??[]}function getLineSpans(content){let offset=0;return splitLinesWithEndings(content).map(line=>{let span={start:offset,end:offset+line.length};return offset=span.end,span})}function getReplacementLineRange(lines,replacement){let replacementStart=replacement.matchIndex,replacementEnd=replacement.matchIndex+replacement.matchLength,startLine=-1;for(let i=0;i<lines.length;i++){let line=lines[i];if(replacementStart>=line.start&&replacementStart<line.end){startLine=i;break}}if(startLine===-1)throw new Error("Replacement range is outside the base content.");let endLine=startLine;for(;endLine<lines.length&&lines[endLine].end<replacementEnd;)endLine++;if(endLine>=lines.length)throw new Error("Replacement range is outside the base content.");return{startLine,endLine:endLine+1}}function applyReplacements(content,replacements,offset=0){let result=content;for(let i=replacements.length-1;i>=0;i--){let replacement=replacements[i],matchIndex=replacement.matchIndex-offset;result=result.substring(0,matchIndex)+replacement.newText+result.substring(matchIndex+replacement.matchLength)}return result}function applyReplacementsPreservingUnchangedLines(originalContent,baseContent,replacements){let originalLines=splitLinesWithEndings(originalContent),baseLines=getLineSpans(baseContent);if(originalLines.length!==baseLines.length)throw new Error("Cannot preserve unchanged lines because the base content has a different line count.");let groups=[],sortedReplacements=[...replacements].sort((a,b)=>a.matchIndex-b.matchIndex);for(let replacement of sortedReplacements){let range=getReplacementLineRange(baseLines,replacement),current=groups[groups.length-1];if(current&&range.startLine<current.endLine){current.endLine=Math.max(current.endLine,range.endLine),current.replacements.push(replacement);continue}groups.push({...range,replacements:[replacement]})}let originalLineIndex=0,result="";for(let group of groups){result+=originalLines.slice(originalLineIndex,group.startLine).join("");let groupStartOffset=baseLines[group.startLine].start,groupEndOffset=baseLines[group.endLine-1].end;result+=applyReplacements(baseContent.slice(groupStartOffset,groupEndOffset),group.replacements,groupStartOffset),originalLineIndex=group.endLine}return result+=originalLines.slice(originalLineIndex).join(""),result}function fuzzyFindText(content,oldText){let exactIndex=content.indexOf(oldText);if(exactIndex!==-1)return{found:!0,index:exactIndex,matchLength:oldText.length,usedFuzzyMatch:!1,contentForReplacement:content};let fuzzyContent=normalizeForFuzzyMatch(content),fuzzyOldText=normalizeForFuzzyMatch(oldText),fuzzyIndex=fuzzyContent.indexOf(fuzzyOldText);return fuzzyIndex===-1?{found:!1,index:-1,matchLength:0,usedFuzzyMatch:!1,contentForReplacement:content}:{found:!0,index:fuzzyIndex,matchLength:fuzzyOldText.length,usedFuzzyMatch:!0,contentForReplacement:fuzzyContent}}function countOccurrences(content,oldText){let fuzzyContent=normalizeForFuzzyMatch(content),fuzzyOldText=normalizeForFuzzyMatch(oldText);return fuzzyContent.split(fuzzyOldText).length-1}function getNotFoundError(path2,editIndex,totalEdits){return totalEdits===1?new Error(`Could not find the exact text in ${path2}. The old text must match exactly including all whitespace and newlines.`):new Error(`Could not find edits[${editIndex}] in ${path2}. The oldText must match exactly including all whitespace and newlines.`)}function getDuplicateError(path2,editIndex,totalEdits,occurrences){return totalEdits===1?new Error(`Found ${occurrences} occurrences of the text in ${path2}. The text must be unique. Please provide more context to make it unique.`):new Error(`Found ${occurrences} occurrences of edits[${editIndex}] in ${path2}. Each oldText must be unique. Please provide more context to make it unique.`)}function getEmptyOldTextError(path2,editIndex,totalEdits){return totalEdits===1?new Error(`oldText must not be empty in ${path2}.`):new Error(`edits[${editIndex}].oldText must not be empty in ${path2}.`)}function getNoChangeError(path2,totalEdits){return totalEdits===1?new Error(`No changes made to ${path2}. The replacement produced identical content. This might indicate an issue with special characters or the text not existing as expected.`):new Error(`No changes made to ${path2}. The replacements produced identical content.`)}function applyEditsToNormalizedContent(normalizedContent,edits,path2){let normalizedEdits=edits.map(edit=>({oldText:normalizeToLF(edit.oldText),newText:normalizeToLF(edit.newText)}));for(let i=0;i<normalizedEdits.length;i++)if(normalizedEdits[i].oldText.length===0)throw getEmptyOldTextError(path2,i,normalizedEdits.length);let usedFuzzyMatch=normalizedEdits.map(edit=>fuzzyFindText(normalizedContent,edit.oldText)).some(match=>match.usedFuzzyMatch),replacementBaseContent=usedFuzzyMatch?normalizeForFuzzyMatch(normalizedContent):normalizedContent,matchedEdits=[];for(let i=0;i<normalizedEdits.length;i++){let edit=normalizedEdits[i],matchResult=fuzzyFindText(replacementBaseContent,edit.oldText);if(!matchResult.found)throw getNotFoundError(path2,i,normalizedEdits.length);let occurrences=countOccurrences(replacementBaseContent,edit.oldText);if(occurrences>1)throw getDuplicateError(path2,i,normalizedEdits.length,occurrences);matchedEdits.push({editIndex:i,matchIndex:matchResult.index,matchLength:matchResult.matchLength,newText:edit.newText})}matchedEdits.sort((a,b)=>a.matchIndex-b.matchIndex);for(let i=1;i<matchedEdits.length;i++){let previous=matchedEdits[i-1],current=matchedEdits[i];if(previous.matchIndex+previous.matchLength>current.matchIndex)throw new Error(`edits[${previous.editIndex}] and edits[${current.editIndex}] overlap in ${path2}. Merge them into one edit or target disjoint regions.`)}let baseContent=normalizedContent,newContent=usedFuzzyMatch?applyReplacementsPreservingUnchangedLines(normalizedContent,replacementBaseContent,matchedEdits):applyReplacements(replacementBaseContent,matchedEdits);if(baseContent===newContent)throw getNoChangeError(path2,normalizedEdits.length);return{baseContent,newContent}}function generateUnifiedPatch(path2,oldContent,newContent,contextLines=4){return createTwoFilesPatch(path2,path2,oldContent,newContent,void 0,void 0,{context:contextLines,headerOptions:FILE_HEADERS_ONLY})}function generateDiffString(oldContent,newContent,contextLines=4){let parts=diffLines(oldContent,newContent),output=[],oldLines=oldContent.split(`
|
|
160
|
+
`),newLines=newContent.split(`
|
|
161
|
+
`),maxLineNum=Math.max(oldLines.length,newLines.length),lineNumWidth=String(maxLineNum).length,oldLineNum=1,newLineNum=1,lastWasChange=!1,firstChangedLine;for(let i=0;i<parts.length;i++){let part=parts[i],raw=part.value.split(`
|
|
162
|
+
`);if(raw[raw.length-1]===""&&raw.pop(),part.added||part.removed){firstChangedLine===void 0&&(firstChangedLine=newLineNum);for(let line of raw)if(part.added){let lineNum=String(newLineNum).padStart(lineNumWidth," ");output.push(`+${lineNum} ${line}`),newLineNum++}else{let lineNum=String(oldLineNum).padStart(lineNumWidth," ");output.push(`-${lineNum} ${line}`),oldLineNum++}lastWasChange=!0}else{let nextPartIsChange=i<parts.length-1&&(parts[i+1].added||parts[i+1].removed),hasLeadingChange=lastWasChange,hasTrailingChange=nextPartIsChange;if(hasLeadingChange&&hasTrailingChange)if(raw.length<=contextLines*2)for(let line of raw){let lineNum=String(oldLineNum).padStart(lineNumWidth," ");output.push(` ${lineNum} ${line}`),oldLineNum++,newLineNum++}else{let leadingLines=raw.slice(0,contextLines),trailingLines=raw.slice(raw.length-contextLines),skippedLines=raw.length-leadingLines.length-trailingLines.length;for(let line of leadingLines){let lineNum=String(oldLineNum).padStart(lineNumWidth," ");output.push(` ${lineNum} ${line}`),oldLineNum++,newLineNum++}output.push(` ${"".padStart(lineNumWidth," ")} ...`),oldLineNum+=skippedLines,newLineNum+=skippedLines;for(let line of trailingLines){let lineNum=String(oldLineNum).padStart(lineNumWidth," ");output.push(` ${lineNum} ${line}`),oldLineNum++,newLineNum++}}else if(hasLeadingChange){let shownLines=raw.slice(0,contextLines),skippedLines=raw.length-shownLines.length;for(let line of shownLines){let lineNum=String(oldLineNum).padStart(lineNumWidth," ");output.push(` ${lineNum} ${line}`),oldLineNum++,newLineNum++}skippedLines>0&&(output.push(` ${"".padStart(lineNumWidth," ")} ...`),oldLineNum+=skippedLines,newLineNum+=skippedLines)}else if(hasTrailingChange){let skippedLines=Math.max(0,raw.length-contextLines);skippedLines>0&&(output.push(` ${"".padStart(lineNumWidth," ")} ...`),oldLineNum+=skippedLines,newLineNum+=skippedLines);for(let line of raw.slice(skippedLines)){let lineNum=String(oldLineNum).padStart(lineNumWidth," ");output.push(` ${lineNum} ${line}`),oldLineNum++,newLineNum++}}else oldLineNum+=raw.length,newLineNum+=raw.length;lastWasChange=!1}}return{diff:output.join(`
|
|
163
|
+
`),firstChangedLine}}async function computeEditsDiff(path2,edits,cwd){let absolutePath=resolveToCwd(path2,cwd);try{try{await access2(absolutePath,constants2.R_OK)}catch(error){let errorMessage2=error instanceof Error&&"code"in error?`Error code: ${error.code}`:String(error);return{error:`Could not edit file: ${path2}. ${errorMessage2}.`}}let rawContent=await readFile(absolutePath,"utf-8"),{text:content}=splitBom(rawContent),normalizedContent=normalizeToLF(content),{baseContent,newContent}=applyEditsToNormalizedContent(normalizedContent,edits,path2);return generateDiffString(baseContent,newContent)}catch(err){return{error:err instanceof Error?err.message:String(err)}}}function parseDiffLine(line){let match=line.match(/^([+-\s])(\s*\d*)\s(.*)$/);return match?{prefix:match[1],lineNum:match[2],content:match[3]}:null}function replaceTabs2(text){return text.replace(/\t/g," ")}function renderIntraLineDiff(oldContent,newContent){let wordDiff2=diffWords(oldContent,newContent),removedLine="",addedLine="",isFirstRemoved=!0,isFirstAdded=!0;for(let part of wordDiff2)if(part.removed){let value=part.value;if(isFirstRemoved){let leadingWs2=value.match(/^(\s*)/)?.[1]||"";value=value.slice(leadingWs2.length),removedLine+=leadingWs2,isFirstRemoved=!1}value&&(removedLine+=theme.inverse(value))}else if(part.added){let value=part.value;if(isFirstAdded){let leadingWs2=value.match(/^(\s*)/)?.[1]||"";value=value.slice(leadingWs2.length),addedLine+=leadingWs2,isFirstAdded=!1}value&&(addedLine+=theme.inverse(value))}else removedLine+=part.value,addedLine+=part.value;return{removedLine,addedLine}}function renderDiff(diffText,_options={}){let lines=diffText.split(`
|
|
164
|
+
`),result=[],i=0;for(;i<lines.length;){let line=lines[i],parsed=parseDiffLine(line);if(!parsed){result.push(theme.fg("toolDiffContext",line)),i++;continue}if(parsed.prefix==="-"){let removedLines=[];for(;i<lines.length;){let p=parseDiffLine(lines[i]);if(!p||p.prefix!=="-")break;removedLines.push({lineNum:p.lineNum,content:p.content}),i++}let addedLines=[];for(;i<lines.length;){let p=parseDiffLine(lines[i]);if(!p||p.prefix!=="+")break;addedLines.push({lineNum:p.lineNum,content:p.content}),i++}if(removedLines.length===1&&addedLines.length===1){let removed=removedLines[0],added=addedLines[0],{removedLine,addedLine}=renderIntraLineDiff(replaceTabs2(removed.content),replaceTabs2(added.content));result.push(theme.fg("toolDiffRemoved",`-${removed.lineNum} ${removedLine}`)),result.push(theme.fg("toolDiffAdded",`+${added.lineNum} ${addedLine}`))}else{for(let removed of removedLines)result.push(theme.fg("toolDiffRemoved",`-${removed.lineNum} ${replaceTabs2(removed.content)}`));for(let added of addedLines)result.push(theme.fg("toolDiffAdded",`+${added.lineNum} ${replaceTabs2(added.content)}`))}}else parsed.prefix==="+"?(result.push(theme.fg("toolDiffAdded",`+${parsed.lineNum} ${replaceTabs2(parsed.content)}`)),i++):(result.push(theme.fg("toolDiffContext",` ${parsed.lineNum} ${replaceTabs2(parsed.content)}`)),i++)}return result.join(`
|
|
165
|
+
`)}import{randomUUID as randomUUID2}from"node:crypto";import{unlinkSync,writeFileSync as writeFileSync2}from"node:fs";import{platform,tmpdir}from"node:os";import{join as join3}from"node:path";import{spawn}from"node:child_process";function runClipboardCommand(command,args,options){return new Promise(resolve2=>{let child=spawn(command,args,{stdio:["pipe",options?.input===void 0?"pipe":"ignore","ignore"],detached:process.platform!=="win32",windowsHide:!0}),chunks=[],length=0,settled=!1,finish=result=>{settled||(settled=!0,clearTimeout(timer),resolve2(result))},abort=()=>{child.kill("SIGKILL"),child.stdout?.destroy(),child.stdin?.destroy(),finish(void 0)},timer=setTimeout(abort,options?.timeoutMs??3e3);child.on("error",()=>finish(void 0)),child.on("close",code=>{settled||finish(code===0?Buffer.concat(chunks,length):void 0)}),child.stdout?.on("data",chunk=>{settled||(length+=chunk.length,length>(options?.maxBufferBytes??50*1024*1024)?abort():chunks.push(chunk))}),child.stdin?.on("error",()=>{}),child.stdin?.end(options?.input)})}import{readFileSync as readFileSync2}from"node:fs";function isWSL(env=process.env){if(env.WSL_DISTRO_NAME||env.WSLENV)return!0;try{let release=readFileSync2("/proc/version","utf-8");return/microsoft|wsl/i.test(release)}catch{return!1}}var MAX_OSC52_ENCODED_LENGTH=1e5;function isRemoteSession(env){return!!(env.SSH_CONNECTION||env.SSH_CLIENT||env.MOSH_CONNECTION||env.PI_CLIPBOARD_OSC52==="1")}function emitOsc52(text){let encoded=Buffer.from(text).toString("base64");return encoded.length>MAX_OSC52_ENCODED_LENGTH?!1:(process.stdout.write(`\x1B]52;c;${encoded}\x07`),!0)}async function copyViaWindowsClipboard(text){let tmpFile=join3(tmpdir(),`pi-wsl-clip-${randomUUID2()}.txt`);try{writeFileSync2(tmpFile,text,{encoding:"utf8",mode:384});let winPath=(await runClipboardCommand("wslpath",["-w",tmpFile],{timeoutMs:1e3}))?.toString("utf8").trim();if(!winPath)return!1;let script=`Set-Clipboard -Value ([System.IO.File]::ReadAllText('${winPath.replaceAll("'","''")}', [System.Text.Encoding]::UTF8))`;return await runClipboardCommand("powershell.exe",["-NoProfile","-Command",script],{timeoutMs:5e3})!==void 0}catch{return!1}finally{try{unlinkSync(tmpFile)}catch{}}}async function readClipboardText(){let commands=[];process.env.TERMUX_VERSION&&commands.push(["termux-clipboard-get",[]]),platform()==="linux"&&(process.env.WAYLAND_DISPLAY&&commands.push(["wl-paste",["--no-newline","--type","text"]]),process.env.DISPLAY&&commands.push(["xclip",["-selection","clipboard","-out"]],["xsel",["--clipboard","--output"]]));for(let[command,args]of commands){let bytes=await runClipboardCommand(command,args,{timeoutMs:5e3});if(bytes!==void 0)return bytes.toString("utf8")||null}try{return await getNativeClipboard()?.getText()||null}catch{return null}}async function readClipboardFilePaths(){let paths=await getNativeClipboard()?.getFilePaths?.();return paths?.length?paths:null}async function copyToClipboard(text){let p=platform(),env=process.env,copied=!1;if(p!=="linux")try{let clipboard=getNativeClipboard();clipboard?.setText&&(await clipboard.setText(text),copied=!0)}catch{}if(!copied){let commands=[];p==="darwin"?commands.push(["pbcopy",[]]):p==="win32"?commands.push(["clip",[]]):(env.TERMUX_VERSION&&commands.push(["termux-clipboard-set",[]]),env.WAYLAND_DISPLAY&&commands.push(["wl-copy",[]]),env.DISPLAY&&commands.push(["xclip",["-selection","clipboard"]],["xsel",["--clipboard","--input"]]));for(let[command,args]of commands)if(await runClipboardCommand(command,args,{input:text,timeoutMs:5e3})!==void 0){copied=!0;break}}let osc52Emitted=!1;!copied&&p==="linux"&&isWSL(env)&&(env.WT_SESSION&&(osc52Emitted=emitOsc52(text)),copied=osc52Emitted||await copyViaWindowsClipboard(text));let headless=p==="linux"&&!env.DISPLAY&&!env.WAYLAND_DISPLAY&&!env.TERMUX_VERSION,oversized=!1;if(!osc52Emitted&&(isRemoteSession(env)||!copied&&headless)&&(emitOsc52(text)?copied=!0:oversized=!0),!copied){if(oversized)throw new Error("Clipboard unavailable: text exceeds the OSC 52 size limit");if(env.TERMUX_VERSION)throw new Error("Clipboard unavailable: install the Termux:API app and `termux-api` package");if(p==="linux"){if(env.WAYLAND_DISPLAY)throw new Error("Clipboard unavailable: install `wl-clipboard` (`wl-copy`) or check Wayland access");if(env.DISPLAY)throw new Error("Clipboard unavailable: install `xclip` or `xsel`, or check X11 access")}throw new Error("Clipboard unavailable")}}var DynamicBorder=class{color;constructor(color=str2=>theme.fg("border",str2)){this.color=color}invalidate(){}render(width){return[this.color("\u2500".repeat(Math.max(1,width)))]}};import{existsSync as existsSync2,readFileSync as readFileSync3}from"fs";import{join as join4}from"path";var modifiers=["ctrl","shift","alt","super"],baseKeyPattern=`(?:[a-z0-9]|${Object.values(Key).flatMap(value=>typeof value=="string"?[value.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")]:[]).join("|")})`,duplicateModifierPattern=modifiers.map(modifier=>`${modifier}\\+.*${modifier}\\+`).join("|"),KeyIdSchema=typebox_exports.Unsafe(typebox_exports.String({pattern:`^(?!.*(?:${duplicateModifierPattern}))(?:(?:${modifiers.join("|")})\\+){0,4}${baseKeyPattern}$`,description:"Key identifier with optional ctrl, shift, alt, or super modifiers."}));function keybindingValueSchema(options){return typebox_exports.Union([KeyIdSchema,typebox_exports.Array(KeyIdSchema)],options)}var KeybindingValueSchema=keybindingValueSchema();function useWindowsKeybindings(platform2=process.platform,env=process.env){return platform2==="win32"||platform2==="linux"&&!!(env.WSL_DISTRO_NAME||env.WSL_INTEROP)}var windowsKeybindings=useWindowsKeybindings(),APP_KEYBINDINGS={"app.agents.details":{defaultKeys:"tab",description:"Agents dashboard: toggle the details panel"},"app.agents.tree":{defaultKeys:"t",description:"Agents dashboard: toggle tree and flat views"},"app.agents.stop":{defaultKeys:"x",description:"Agents dashboard: stop the selected subagent"},"app.agentSetup.inherit":{defaultKeys:"i",description:"Agent setup: let the role inherit the parent model"},"app.agentSetup.addSeat":{defaultKeys:"a",description:"Agent setup: add a seat to a panel role"},"app.agentSetup.removeSeat":{defaultKeys:"d",description:"Agent setup: remove the selected panel seat"},"app.agentSetup.save":{defaultKeys:"ctrl+s",description:"Agent setup: validate and save role assignments"},"app.agents.first":{defaultKeys:"home",description:"Agents dashboard: first subagent"},"app.agents.last":{defaultKeys:"end",description:"Agents dashboard: last subagent"},"app.diff.commits":{defaultKeys:"c",description:"Diff dashboard: browse commits"},"app.diff.working":{defaultKeys:"w",description:"Diff dashboard: working-tree changes"},"app.diff.staged":{defaultKeys:"s",description:"Diff dashboard: staged changes"},"app.diff.file":{defaultKeys:"o",description:"Diff dashboard: toggle diff and full file"},"app.diff.zoom":{defaultKeys:"f",description:"Diff dashboard: toggle fullscreen viewer"},"app.diff.refresh":{defaultKeys:"r",description:"Diff dashboard: refresh"},"app.diff.nextCategory":{defaultKeys:"tab",description:"Diff dashboard: next category"},"app.diff.previousCategory":{defaultKeys:"shift+tab",description:"Diff dashboard: previous category"},"app.diff.left":{defaultKeys:"left",description:"Diff dashboard: scroll left"},"app.diff.right":{defaultKeys:"right",description:"Diff dashboard: scroll right"},"app.diff.start":{defaultKeys:"home",description:"Diff dashboard: first line"},"app.diff.end":{defaultKeys:"end",description:"Diff dashboard: last line"},"app.interrupt":{defaultKeys:"escape",description:"Cancel or abort"},"app.clear":{defaultKeys:"ctrl+c",description:"Clear editor"},"app.exit":{defaultKeys:"ctrl+d",description:"Exit when editor is empty"},"app.suspend":{defaultKeys:process.platform==="win32"?[]:"ctrl+z",description:"Suspend to background"},"app.thinking.cycle":{defaultKeys:"shift+tab",description:"Cycle thinking level"},"app.thinking.save":{defaultKeys:"ctrl+s",description:"Save thinking level"},"app.model.cycleForward":{defaultKeys:"ctrl+p",description:"Cycle to next model"},"app.model.cycleBackward":{defaultKeys:windowsKeybindings?"alt+p":"shift+ctrl+p",description:"Cycle to previous model"},"app.model.select":{defaultKeys:"ctrl+l",description:"Open model selector"},"app.tools.expand":{defaultKeys:"ctrl+o",description:"Toggle tool output"},"app.thinking.toggle":{defaultKeys:"ctrl+t",description:"Toggle thinking blocks"},"app.session.toggleNamedFilter":{defaultKeys:"ctrl+n",description:"Toggle named session filter"},"app.editor.external":{defaultKeys:"ctrl+g",description:"Open external editor"},"app.message.copy":{defaultKeys:"ctrl+x",description:"Copy selection or last assistant message"},"app.message.followUp":{defaultKeys:windowsKeybindings?"ctrl+q":"alt+enter",description:"Queue follow-up message"},"app.message.dequeue":{defaultKeys:windowsKeybindings?"alt+q":"alt+up",description:"Restore queued messages"},"app.clipboard.pasteImage":{defaultKeys:windowsKeybindings?"alt+v":"ctrl+v",description:"Paste files on macOS, images, or text from clipboard"},"app.session.new":{defaultKeys:[],description:"Start a new session"},"app.session.tree":{defaultKeys:[],description:"Open session tree"},"app.session.fork":{defaultKeys:[],description:"Fork current session"},"app.session.resume":{defaultKeys:[],description:"Resume a session"},"app.tree.foldOrUp":{defaultKeys:process.platform==="darwin"?["alt+left","ctrl+left"]:["ctrl+left","alt+left"],description:"Fold tree branch or move up"},"app.tree.unfoldOrDown":{defaultKeys:process.platform==="darwin"?["alt+right","ctrl+right"]:["ctrl+right","alt+right"],description:"Unfold tree branch or move down"},"app.tree.editLabel":{defaultKeys:"shift+l",description:"Edit tree label"},"app.tree.toggleLabelTimestamp":{defaultKeys:"shift+t",description:"Toggle tree label timestamps"},"app.session.togglePath":{defaultKeys:"ctrl+p",description:"Toggle session path display"},"app.session.toggleSort":{defaultKeys:"ctrl+s",description:"Toggle session sort mode"},"app.session.rename":{defaultKeys:"ctrl+r",description:"Rename session"},"app.session.delete":{defaultKeys:"ctrl+d",description:"Delete session"},"app.session.deleteNoninvasive":{defaultKeys:"ctrl+backspace",description:"Delete session when query is empty"},"app.models.save":{defaultKeys:"ctrl+s",description:"Save model selection"},"app.models.enableAll":{defaultKeys:"ctrl+a",description:"Enable all models"},"app.models.clearAll":{defaultKeys:"ctrl+x",description:"Clear all models"},"app.models.toggleProvider":{defaultKeys:"ctrl+p",description:"Toggle all models for provider"},"app.models.reorderUp":{defaultKeys:"alt+up",description:"Move model up in order"},"app.models.reorderDown":{defaultKeys:"alt+down",description:"Move model down in order"},"app.tree.filter.default":{defaultKeys:"ctrl+d",description:"Tree filter: default view"},"app.tree.filter.noTools":{defaultKeys:"ctrl+t",description:"Tree filter: hide tool results"},"app.tree.filter.userOnly":{defaultKeys:"ctrl+u",description:"Tree filter: user messages only"},"app.tree.filter.labeledOnly":{defaultKeys:"ctrl+l",description:"Tree filter: labeled entries only"},"app.tree.filter.all":{defaultKeys:"ctrl+a",description:"Tree filter: show all entries"},"app.tree.filter.cycleForward":{defaultKeys:"ctrl+o",description:"Tree filter: cycle forward"},"app.tree.filter.cycleBackward":{defaultKeys:"shift+ctrl+o",description:"Tree filter: cycle backward"}},KEYBINDINGS={...TUI_KEYBINDINGS,"tui.editor.undo":{...TUI_KEYBINDINGS["tui.editor.undo"],defaultKeys:process.platform==="win32"?"ctrl+z":windowsKeybindings?"alt+z":"ctrl+-"},"tui.altScreen.previousPrompt":{...TUI_KEYBINDINGS["tui.altScreen.previousPrompt"],defaultKeys:windowsKeybindings?"ctrl+up":["ctrl+shift+up","ctrl+up"]},"tui.altScreen.nextPrompt":{...TUI_KEYBINDINGS["tui.altScreen.nextPrompt"],defaultKeys:windowsKeybindings?"ctrl+down":["ctrl+shift+down","ctrl+down"]},"tui.altScreen.search":{...TUI_KEYBINDINGS["tui.altScreen.search"],defaultKeys:windowsKeybindings?"ctrl+f":"ctrl+shift+f"},...APP_KEYBINDINGS},KEYBINDING_NAME_MIGRATIONS={cursorUp:"tui.editor.cursorUp",cursorDown:"tui.editor.cursorDown",cursorLeft:"tui.editor.cursorLeft",cursorRight:"tui.editor.cursorRight",cursorWordLeft:"tui.editor.cursorWordLeft",cursorWordRight:"tui.editor.cursorWordRight",cursorLineStart:"tui.editor.cursorLineStart",cursorLineEnd:"tui.editor.cursorLineEnd",jumpForward:"tui.editor.jumpForward",jumpBackward:"tui.editor.jumpBackward",pageUp:"tui.editor.pageUp",pageDown:"tui.editor.pageDown",deleteCharBackward:"tui.editor.deleteCharBackward",deleteCharForward:"tui.editor.deleteCharForward",deleteWordBackward:"tui.editor.deleteWordBackward",deleteWordForward:"tui.editor.deleteWordForward",deleteToLineStart:"tui.editor.deleteToLineStart",deleteToLineEnd:"tui.editor.deleteToLineEnd",yank:"tui.editor.yank",yankPop:"tui.editor.yankPop",undo:"tui.editor.undo",newLine:"tui.input.newLine",submit:"tui.input.submit",tab:"tui.input.tab",copy:"tui.input.copy",selectUp:"tui.select.up",selectDown:"tui.select.down",selectPageUp:"tui.select.pageUp",selectPageDown:"tui.select.pageDown",selectConfirm:"tui.select.confirm",selectCancel:"tui.select.cancel",interrupt:"app.interrupt",clear:"app.clear",exit:"app.exit",suspend:"app.suspend",cycleThinkingLevel:"app.thinking.cycle",cycleModelForward:"app.model.cycleForward",cycleModelBackward:"app.model.cycleBackward",selectModel:"app.model.select",expandTools:"app.tools.expand",toggleThinking:"app.thinking.toggle",toggleSessionNamedFilter:"app.session.toggleNamedFilter",externalEditor:"app.editor.external",followUp:"app.message.followUp",dequeue:"app.message.dequeue",pasteImage:"app.clipboard.pasteImage",newSession:"app.session.new",tree:"app.session.tree",fork:"app.session.fork",resume:"app.session.resume",treeFoldOrUp:"app.tree.foldOrUp",treeUnfoldOrDown:"app.tree.unfoldOrDown",treeEditLabel:"app.tree.editLabel",treeToggleLabelTimestamp:"app.tree.toggleLabelTimestamp",toggleSessionPath:"app.session.togglePath",toggleSessionSort:"app.session.toggleSort",renameSession:"app.session.rename",deleteSession:"app.session.delete",deleteSessionNoninvasive:"app.session.deleteNoninvasive"};function isLegacyKeybindingName(key){return key in KEYBINDING_NAME_MIGRATIONS}var validateKeybindingValue=Compile(KeybindingValueSchema);function toKeybindingsConfig(value){let config={};for(let[key,binding]of Object.entries(value))key!=="$schema"&&validateKeybindingValue.Check(binding)&&(config[key]=binding);return config}function migrateKeybindingsConfig(rawConfig){let config={},migrated=!1;for(let[key,value]of Object.entries(rawConfig)){let nextKey=isLegacyKeybindingName(key)?KEYBINDING_NAME_MIGRATIONS[key]:key;if(nextKey!==key&&(migrated=!0),key!==nextKey&&Object.hasOwn(rawConfig,nextKey)){migrated=!0;continue}config[nextKey]=value}return{config:orderKeybindingsConfig(config),migrated}}function orderKeybindingsConfig(config){let ordered={};for(let keybinding of Object.keys(KEYBINDINGS))Object.hasOwn(config,keybinding)&&(ordered[keybinding]=config[keybinding]);let extras=Object.keys(config).filter(key=>!Object.hasOwn(ordered,key)).sort();for(let key of extras)ordered[key]=config[key];return ordered}function loadRawConfig(path2){if(existsSync2(path2))try{let parsed=JSON.parse(stripBom(readFileSync3(path2,"utf-8")));return typeof parsed!="object"||parsed===null?void 0:parsed}catch{return}}var KeybindingsManager2=class _KeybindingsManager extends KeybindingsManager{configPath;constructor(userBindings={},configPath){super(KEYBINDINGS,userBindings),this.configPath=configPath}static create(agentDir=getAgentDir()){let configPath=join4(agentDir,"keybindings.json"),userBindings=_KeybindingsManager.loadFromFile(configPath);return new _KeybindingsManager(userBindings,configPath)}reload(){this.configPath&&this.setUserBindings(_KeybindingsManager.loadFromFile(this.configPath))}getEffectiveConfig(){return this.getResolvedBindings()}static loadFromFile(path2){let rawConfig=loadRawConfig(path2);return rawConfig?toKeybindingsConfig(migrateKeybindingsConfig(rawConfig).config):{}}};var BASH_PREVIEW_LINES=5,BASH_UPDATE_THROTTLE_MS=100;function formatShellCall(args,prompt){let command=str(args?.command),timeout=args?.timeout,timeoutSuffix=timeout?theme.fg("muted",` (timeout ${timeout}s)`):"",commandDisplay=command===null?invalidArgText(theme):command||theme.fg("toolOutput","...");return theme.fg("toolTitle",theme.bold(`${prompt} ${commandDisplay}`))+timeoutSuffix}function rebuildBashResultRenderComponent(component,result,options,showImages,timerText){component.clear();let output=getTextOutput(result,showImages).trim(),truncation=result.details?.truncation,fullOutputPath=result.details?.fullOutputPath;if(!options.isPartial&&truncation?.truncated&&fullOutputPath&&output.endsWith("]")){let footerStart=output.lastIndexOf(`
|
|
166
|
+
|
|
167
|
+
[`);footerStart!==-1&&output.slice(footerStart).includes(fullOutputPath)&&(output=output.slice(0,footerStart).trimEnd())}if(output){let styledOutput=output.split(`
|
|
168
|
+
`).map(line=>theme.fg("toolOutput",line)).join(`
|
|
169
|
+
`);options.expanded?component.addChild(new Text(`
|
|
170
|
+
${styledOutput}`,0,0)):(component.addChild(new Spacer(1)),component.addChild(new VisualLinePreview({text:styledOutput,maxVisualLines:BASH_PREVIEW_LINES,keep:"end",formatHint:hidden=>theme.fg("muted",`... (${hidden} earlier lines,`)+` ${keyHint("app.tools.expand","to expand")}${theme.fg("muted",")")}`})))}if(truncation?.truncated||fullOutputPath){let warnings=[];fullOutputPath&&warnings.push(`Full output: ${fullOutputPath}`),truncation?.truncated&&(truncation.truncatedBy==="lines"?warnings.push(`Truncated: showing ${truncation.outputLines} of ${truncation.totalLines} lines`):warnings.push(`Truncated: ${truncation.outputLines} lines shown (${formatSize(truncation.maxBytes??51200)} limit)`)),component.addChild(new Text(`
|
|
171
|
+
${theme.fg("warning",`[${warnings.join(". ")}]`)}`,0,0))}timerText&&component.addChild(new Text(`
|
|
172
|
+
${theme.fg("muted",timerText)}`,0,0))}function createShellRenderers(prompt){return{renderCall(args,_theme,context){startToolTimer(context);let text=context.lastComponent??new Text("",0,0);return text.setText(formatShellCall(args,prompt)),text},renderResult(result,options,_theme,context){let timerText=toolTimerText(context,options.isPartial),component=context.lastComponent??new Container;return rebuildBashResultRenderComponent(component,result,options,context.showImages,timerText),component.invalidate(),component}}}function createEditCallRenderComponent(){return Object.assign(new Box(1,1,text=>text),{preview:void 0,previewArgsKey:void 0,previewPending:!1,settledError:!1})}function getEditCallRenderComponent(state2,lastComponent){if(lastComponent instanceof Box){let component2=lastComponent;return state2.callComponent=component2,component2}if(state2.callComponent)return state2.callComponent;let component=createEditCallRenderComponent();return state2.callComponent=component,component}function getRenderablePreviewInput(args){if(!args)return null;let path2=typeof args.path=="string"?args.path:typeof args.file_path=="string"?args.file_path:null;return path2?Array.isArray(args.edits)&&args.edits.length>0&&args.edits.every(edit=>typeof edit?.oldText=="string"&&typeof edit?.newText=="string")?{path:path2,edits:args.edits}:typeof args.oldText=="string"&&typeof args.newText=="string"?{path:path2,edits:[{oldText:args.oldText,newText:args.newText}]}:null:null}function formatEditCall(args,theme2,cwd){let pathDisplay=renderToolPath(str(args?.file_path??args?.path),theme2,cwd);return`${theme2.fg("toolTitle",theme2.bold("edit"))} ${pathDisplay}`}function formatEditResult(args,preview,result,theme2,isError){let rawPath=str(args?.file_path??args?.path),previewDiff=preview&&!("error"in preview)?preview.diff:void 0,previewError=preview&&"error"in preview?preview.error:void 0;if(isError){let errorText=result.content.filter(c=>c.type==="text").map(c=>c.text||"").join(`
|
|
173
|
+
`);return!errorText||errorText===previewError?void 0:theme2.fg("error",errorText)}let resultDiff=result.details?.diff;if(resultDiff&&resultDiff!==previewDiff)return renderDiff(resultDiff,{filePath:rawPath??void 0})}function getEditHeaderBg(preview,settledError,theme2){return preview?"error"in preview?text=>theme2.bg("toolErrorBg",text):text=>theme2.bg("toolSuccessBg",text):settledError?text=>theme2.bg("toolErrorBg",text):text=>theme2.bg("toolPendingBg",text)}function buildEditCallComponent(component,args,theme2,cwd,outputPad){if(component.setBgFn(getEditHeaderBg(component.preview,component.settledError,theme2)),component.setPaddingX(outputPad),component.clear(),component.addChild(new Text(formatEditCall(args,theme2,cwd),0,0)),!component.preview)return component;let body="error"in component.preview?theme2.fg("error",component.preview.error):renderDiff(component.preview.diff);return component.addChild(new Spacer(1)),component.addChild(new Text(body,0,0)),component}function setEditPreview(component,preview,argsKey){let current=component.preview,changed=current===void 0||("error"in current&&"error"in preview?current.error!==preview.error:"error"in current!="error"in preview)||!("error"in current)&&!("error"in preview)&&(current.diff!==preview.diff||current.firstChangedLine!==preview.firstChangedLine);return component.preview=preview,component.previewArgsKey=argsKey,component.previewPending=!1,changed}var editRenderers={renderCall(args,theme2,context){let component=getEditCallRenderComponent(context.state,context.lastComponent),previewInput=getRenderablePreviewInput(args),argsKey=previewInput?JSON.stringify({path:previewInput.path,edits:previewInput.edits}):void 0;if(component.previewArgsKey!==argsKey&&(component.preview=void 0,component.previewArgsKey=argsKey,component.previewPending=!1,component.settledError=!1),context.argsComplete&&previewInput&&!component.preview&&!component.previewPending){component.previewPending=!0;let requestKey=argsKey;computeEditsDiff(previewInput.path,previewInput.edits,context.cwd).then(preview=>{component.previewArgsKey===requestKey&&(setEditPreview(component,preview,requestKey),context.invalidate())})}return buildEditCallComponent(component,args,theme2,context.cwd,context.outputPad)},renderResult(result,_options,theme2,context){let callComponent=context.state.callComponent,previewInput=getRenderablePreviewInput(context.args),argsKey=previewInput?JSON.stringify({path:previewInput.path,edits:previewInput.edits}):void 0,typedResult=result,resultDiff=context.isError?void 0:typedResult.details?.diff,changed=!1;callComponent&&(typeof resultDiff=="string"&&(changed=setEditPreview(callComponent,{diff:resultDiff,firstChangedLine:typedResult.details?.firstChangedLine},argsKey)||changed),callComponent.settledError!==context.isError&&(callComponent.settledError=context.isError,changed=!0),changed&&buildEditCallComponent(callComponent,context.args,theme2,context.cwd,context.outputPad));let output=formatEditResult(context.args,callComponent?.preview,typedResult,theme2,context.isError),component=context.lastComponent??new Container;return component.clear(),output&&(component.addChild(new Spacer(1)),component.addChild(new Text(output,context.outputPad,0))),component}};function formatFindCall(args,theme2){let pattern=str(args?.pattern),rawPath=str(args?.path),path2=rawPath!==null?shortenPath(rawPath||"."):null,limit=args?.limit,invalidArg=invalidArgText(theme2),text=theme2.fg("toolTitle",theme2.bold("find"))+" "+(pattern===null?invalidArg:theme2.fg("accent",pattern||""))+theme2.fg("toolOutput",` in ${path2===null?invalidArg:path2}`);return limit!==void 0&&(text+=theme2.fg("toolOutput",` (limit ${limit})`)),text}function formatFindResult(result,options,theme2,showImages){let output=getTextOutput(result,showImages).trim(),text="";if(output){let lines=output.split(`
|
|
174
|
+
`),maxLines=options.expanded?lines.length:20,displayLines=lines.slice(0,maxLines),remaining=lines.length-maxLines;text+=`
|
|
175
|
+
${displayLines.map(line=>theme2.fg("toolOutput",line)).join(`
|
|
176
|
+
`)}`,remaining>0&&(text+=`${theme2.fg("muted",`
|
|
177
|
+
... (${remaining} more lines,`)} ${keyHint("app.tools.expand","to expand")}${theme2.fg("muted",")")}`)}let resultLimit=result.details?.resultLimitReached,truncation=result.details?.truncation;if(resultLimit||truncation?.truncated){let warnings=[];resultLimit&&warnings.push(`${resultLimit} results limit`),truncation?.truncated&&warnings.push(`${formatSize(truncation.maxBytes??51200)} limit`),text+=`
|
|
178
|
+
${theme2.fg("warning",`[Truncated: ${warnings.join(", ")}]`)}`}return text}var findRenderers={renderCall(args,theme2,context){let text=context.lastComponent??new Text("",0,0);return text.setText(formatFindCall(args,theme2)),text},renderResult(result,options,theme2,context){let text=context.lastComponent??new Text("",0,0);return text.setText(formatFindResult(result,options,theme2,context.showImages)),text}};function formatGrepCall(args,theme2){let pattern=str(args?.pattern),rawPath=str(args?.path),path2=rawPath!==null?shortenPath(rawPath||"."):null,glob=str(args?.glob),limit=args?.limit,invalidArg=invalidArgText(theme2),text=theme2.fg("toolTitle",theme2.bold("grep"))+" "+(pattern===null?invalidArg:theme2.fg("accent",`/${pattern||""}/`))+theme2.fg("toolOutput",` in ${path2===null?invalidArg:path2}`);return glob&&(text+=theme2.fg("toolOutput",` (${glob})`)),limit!==void 0&&(text+=theme2.fg("toolOutput",` limit ${limit}`)),text}function formatGrepResult(result,options,theme2,showImages){let output=getTextOutput(result,showImages).trim(),text="";if(output){let lines=output.split(`
|
|
179
|
+
`),maxLines=options.expanded?lines.length:15,displayLines=lines.slice(0,maxLines),remaining=lines.length-maxLines;text+=`
|
|
180
|
+
${displayLines.map(line=>theme2.fg("toolOutput",line)).join(`
|
|
181
|
+
`)}`,remaining>0&&(text+=`${theme2.fg("muted",`
|
|
182
|
+
... (${remaining} more lines,`)} ${keyHint("app.tools.expand","to expand")}${theme2.fg("muted",")")}`)}let matchLimit=result.details?.matchLimitReached,truncation=result.details?.truncation,linesTruncated=result.details?.linesTruncated;if(matchLimit||truncation?.truncated||linesTruncated){let warnings=[];matchLimit&&warnings.push(`${matchLimit} matches limit`),truncation?.truncated&&warnings.push(`${formatSize(truncation.maxBytes??51200)} limit`),linesTruncated&&warnings.push("some lines truncated"),text+=`
|
|
183
|
+
${theme2.fg("warning",`[Truncated: ${warnings.join(", ")}]`)}`}return text}var grepRenderers={renderCall(args,theme2,context){let text=context.lastComponent??new Text("",0,0);return text.setText(formatGrepCall(args,theme2)),text},renderResult(result,options,theme2,context){let text=context.lastComponent??new Text("",0,0);return text.setText(formatGrepResult(result,options,theme2,context.showImages)),text}};function formatLsCall(args,theme2,cwd){let limit=args?.limit,pathDisplay=renderToolPath(str(args?.path),theme2,cwd,{emptyFallback:"."}),text=`${theme2.fg("toolTitle",theme2.bold("ls"))} ${pathDisplay}`;return limit!==void 0&&(text+=theme2.fg("toolOutput",` (limit ${limit})`)),text}function formatLsResult(result,options,theme2,showImages){let output=getTextOutput(result,showImages).trim(),text="";if(output){let lines=output.split(`
|
|
184
|
+
`),maxLines=options.expanded?lines.length:20,displayLines=lines.slice(0,maxLines),remaining=lines.length-maxLines;text+=`
|
|
185
|
+
${displayLines.map(line=>theme2.fg("toolOutput",line)).join(`
|
|
186
|
+
`)}`,remaining>0&&(text+=`${theme2.fg("muted",`
|
|
187
|
+
... (${remaining} more lines,`)} ${keyHint("app.tools.expand","to expand")}${theme2.fg("muted",")")}`)}let entryLimit=result.details?.entryLimitReached,truncation=result.details?.truncation;if(entryLimit||truncation?.truncated){let warnings=[];entryLimit&&warnings.push(`${entryLimit} entries limit`),truncation?.truncated&&warnings.push(`${formatSize(truncation.maxBytes??51200)} limit`),text+=`
|
|
188
|
+
${theme2.fg("warning",`[Truncated: ${warnings.join(", ")}]`)}`}return text}var lsRenderers={renderCall(args,theme2,context){let text=context.lastComponent??new Text("",0,0);return text.setText(formatLsCall(args,theme2,context.cwd)),text},renderResult(result,options,theme2,context){let text=context.lastComponent??new Text("",0,0);return text.setText(formatLsResult(result,options,theme2,context.showImages)),text}};var PYTHON_PREVIEW_LINES=5,PYTHON_CALL_PREVIEW_LINES=10;function formatPythonCall(args,expanded){let code=str(args?.code),title=theme.fg("toolTitle",theme.bold("python"));if(code===null)return`${title} ${invalidArgText(theme)}`;if(!code)return`${title} ${theme.fg("toolOutput","...")}`;let lines=highlightCode(replaceTabs(code.replace(/\s+$/,"")),"python"),shown=expanded?lines:lines.slice(0,PYTHON_CALL_PREVIEW_LINES),hidden=lines.length-shown.length,more=hidden>0?`
|
|
189
|
+
${theme.fg("muted",`... (${hidden} more lines)`)}`:"";return`${title}
|
|
190
|
+
${shown.join(`
|
|
191
|
+
`)}${more}`}function rebuildPythonResultRenderComponent(component,result,options,showImages,timerText){component.clear();let output=getTextOutput(result,showImages).trim();if(output){let styledOutput=output.split(`
|
|
192
|
+
`).map(line=>theme.fg("toolOutput",line)).join(`
|
|
193
|
+
`);options.expanded?component.addChild(new Text(`
|
|
194
|
+
${styledOutput}`,0,0)):(component.addChild(new Spacer(1)),component.addChild(new VisualLinePreview({text:styledOutput,maxVisualLines:PYTHON_PREVIEW_LINES,keep:"end",formatHint:hidden=>theme.fg("muted",`... (${hidden} earlier lines,`)+` ${keyHint("app.tools.expand","to expand")}${theme.fg("muted",")")}`})))}timerText&&component.addChild(new Text(`
|
|
195
|
+
${theme.fg("muted",timerText)}`,0,0))}var pythonRenderers={renderCall(args,_theme,context){startToolTimer(context);let text=context.lastComponent??new Text("",0,0);return text.setText(formatPythonCall(args,context.expanded)),text},renderResult(result,options,_theme,context){let timerText=toolTimerText(context,options.isPartial),component=context.lastComponent??new Container;return rebuildPythonResultRenderComponent(component,result,options,context.showImages,timerText),component.invalidate(),component}};import{basename,dirname as dirname3,isAbsolute,relative,resolve as resolvePath2,sep}from"node:path";var COMPACT_RESOURCE_FILE_NAMES=new Set(["AGENTS.override.md","AGENTS.md","AGENTS.MD","CLAUDE.md","CLAUDE.MD"]);function styledReadLineRange(args,theme2){let range=formatReadLineRange(args?.offset,args?.limit);return range?theme2.fg("warning",range):""}function formatReadCall(args,theme2,cwd){let pathDisplay=renderToolPath(str(args?.file_path??args?.path),theme2,cwd);return`${theme2.fg("toolTitle",theme2.bold("read"))} ${pathDisplay}${styledReadLineRange(args,theme2)}`}function trimTrailingEmptyLines(lines){let end=lines.length;for(;end>0&&lines[end-1]==="";)end--;return lines.slice(0,end)}function toPosixPath(filePath){return filePath.split(sep).join("/")}function getPiDocsClassification(absolutePath){let packageRoot=dirname3(getReadmePath()),relativePath=relative(resolvePath2(packageRoot),resolvePath2(absolutePath));if(relativePath===""||relativePath===".."||relativePath.startsWith(`..${sep}`)||isAbsolute(relativePath))return;let label=toPosixPath(relativePath);if(label==="README.md"||label.startsWith("docs/")||label.startsWith("examples/"))return{kind:"docs",label}}function getCompactReadClassification(args,cwd){let rawPath=str(args?.file_path??args?.path);if(!rawPath)return;let absolutePath=resolveToCwd(rawPath,cwd),fileName=basename(absolutePath);if(fileName==="SKILL.md")return{kind:"skill",label:basename(dirname3(absolutePath))||fileName};let docsClassification=getPiDocsClassification(absolutePath);if(docsClassification)return docsClassification;if(COMPACT_RESOURCE_FILE_NAMES.has(fileName))return{kind:"resource",label:formatPathRelativeToCwdOrAbsolute(absolutePath,cwd)}}function formatCompactReadCall(classification,args,theme2){let expandHint=theme2.fg("dim",` (${keyText("app.tools.expand")} to expand)`);return classification.kind==="skill"?theme2.fg("customMessageLabel","\x1B[1m[skill]\x1B[22m ")+theme2.fg("customMessageText",classification.label)+styledReadLineRange(args,theme2)+expandHint:theme2.fg("toolTitle",theme2.bold(`read ${classification.kind}`))+" "+theme2.fg("accent",classification.label)+styledReadLineRange(args,theme2)+expandHint}function formatReadResult(args,result,options,theme2,showImages,_cwd,isError){if(!options.expanded&&!isError)return"";let rawPath=str(args?.file_path??args?.path),output=getTextOutput(result,showImages),lang=!isError&&rawPath?getLanguageFromPath(rawPath):void 0,renderedLines=lang?highlightCode(replaceTabs(output),lang):output.split(`
|
|
196
|
+
`),lines=trimTrailingEmptyLines(renderedLines),maxLines=options.expanded?lines.length:10,displayLines=lines.slice(0,maxLines),remaining=lines.length-maxLines,text=`
|
|
197
|
+
${displayLines.map(line=>lang?replaceTabs(line):theme2.fg("toolOutput",replaceTabs(line))).join(`
|
|
198
|
+
`)}`;remaining>0&&(text+=`${theme2.fg("muted",`
|
|
199
|
+
... (${remaining} more lines,`)} ${keyHint("app.tools.expand","to expand")}${theme2.fg("muted",")")}`);let truncation=result.details?.truncation;return truncation?.truncated&&(truncation.firstLineExceedsLimit?text+=`
|
|
200
|
+
${theme2.fg("warning",`[First line exceeds ${formatSize(truncation.maxBytes??51200)} limit]`)}`:truncation.truncatedBy==="lines"?text+=`
|
|
201
|
+
${theme2.fg("warning",`[Truncated: showing ${truncation.outputLines} of ${truncation.totalLines} lines (${truncation.maxLines??2e3} line limit)]`)}`:text+=`
|
|
202
|
+
${theme2.fg("warning",`[Truncated: ${truncation.outputLines} lines shown (${formatSize(truncation.maxBytes??51200)} limit)]`)}`),text}var readRenderers={renderCall(rawArgs,theme2,context){let args=rawArgs,text=context.lastComponent??new Text("",0,0),classification=context.expanded?void 0:getCompactReadClassification(args,context.cwd);return text.setText(classification?formatCompactReadCall(classification,args,theme2):formatReadCall(args,theme2,context.cwd)),text},renderResult(result,options,theme2,context){let text=context.lastComponent??new Text("",0,0);return text.setText(formatReadResult(context.args,result,options,theme2,context.showImages,context.cwd,context.isError)),text}};var WriteCallRenderComponent=class extends Text{cache;constructor(){super("",0,0)}},WRITE_PARTIAL_FULL_HIGHLIGHT_LINES=50;function highlightSingleLine(line,lang){return highlightCode(line,lang)[0]??""}function refreshWriteHighlightPrefix(cache){let prefixCount=Math.min(WRITE_PARTIAL_FULL_HIGHLIGHT_LINES,cache.normalizedLines.length);if(prefixCount===0)return;let prefixSource=cache.normalizedLines.slice(0,prefixCount).join(`
|
|
203
|
+
`),prefixHighlighted=highlightCode(prefixSource,cache.lang);for(let i=0;i<prefixCount;i++)cache.highlightedLines[i]=prefixHighlighted[i]??highlightSingleLine(cache.normalizedLines[i]??"",cache.lang)}function rebuildWriteHighlightCacheFull(rawPath,fileContent){let lang=rawPath?getLanguageFromPath(rawPath):void 0;if(!lang)return;let displayContent=normalizeDisplayText(fileContent),normalized=replaceTabs(displayContent);return{rawPath,lang,rawContent:fileContent,normalizedLines:normalized.split(`
|
|
204
|
+
`),highlightedLines:highlightCode(normalized,lang)}}function updateWriteHighlightCacheIncremental(cache,rawPath,fileContent){let lang=rawPath?getLanguageFromPath(rawPath):void 0;if(!lang)return;if(!cache||cache.lang!==lang||cache.rawPath!==rawPath||!fileContent.startsWith(cache.rawContent))return rebuildWriteHighlightCacheFull(rawPath,fileContent);if(fileContent.length===cache.rawContent.length)return cache;let deltaRaw=fileContent.slice(cache.rawContent.length),deltaDisplay=normalizeDisplayText(deltaRaw),deltaNormalized=replaceTabs(deltaDisplay);cache.rawContent=fileContent,cache.normalizedLines.length===0&&(cache.normalizedLines.push(""),cache.highlightedLines.push(""));let segments=deltaNormalized.split(`
|
|
205
|
+
`),lastIndex=cache.normalizedLines.length-1;cache.normalizedLines[lastIndex]+=segments[0],cache.highlightedLines[lastIndex]=highlightSingleLine(cache.normalizedLines[lastIndex],cache.lang);for(let i=1;i<segments.length;i++)cache.normalizedLines.push(segments[i]),cache.highlightedLines.push(highlightSingleLine(segments[i],cache.lang));return refreshWriteHighlightPrefix(cache),cache}function trimTrailingEmptyLines2(lines){let end=lines.length;for(;end>0&&lines[end-1]==="";)end--;return lines.slice(0,end)}function formatWriteCall(args,options,theme2,cache,cwd){let rawPath=str(args?.file_path??args?.path),fileContent=str(args?.content),pathDisplay=renderToolPath(rawPath,theme2,cwd),text=`${theme2.fg("toolTitle",theme2.bold("write"))} ${pathDisplay}`;if(fileContent===null)text+=`
|
|
206
|
+
|
|
207
|
+
${theme2.fg("error","[invalid content arg - expected string]")}`;else if(fileContent){let lang=rawPath?getLanguageFromPath(rawPath):void 0,renderedLines=lang?cache?.highlightedLines??highlightCode(replaceTabs(normalizeDisplayText(fileContent)),lang):normalizeDisplayText(fileContent).split(`
|
|
208
|
+
`),lines=trimTrailingEmptyLines2(renderedLines),totalLines=lines.length,maxLines=options.expanded?lines.length:10,displayLines=lines.slice(0,maxLines),remaining=lines.length-maxLines;text+=`
|
|
209
|
+
|
|
210
|
+
${displayLines.map(line=>lang?line:theme2.fg("toolOutput",replaceTabs(line))).join(`
|
|
211
|
+
`)}`,remaining>0&&(text+=`${theme2.fg("muted",`
|
|
212
|
+
... (${remaining} more lines, ${totalLines} total,`)} ${keyHint("app.tools.expand","to expand")}${theme2.fg("muted",")")}`)}return text}function formatWriteResult(result,theme2){if(!result.isError)return;let output=result.content.filter(c=>c.type==="text").map(c=>c.text||"").join(`
|
|
213
|
+
`);if(output)return`
|
|
214
|
+
${theme2.fg("error",output)}`}var writeRenderers={renderCall(args,theme2,context){let renderArgs=args,rawPath=str(renderArgs?.file_path??renderArgs?.path),fileContent=str(renderArgs?.content),component=context.lastComponent??new WriteCallRenderComponent;return fileContent!==null?component.cache=context.argsComplete?rebuildWriteHighlightCacheFull(rawPath,fileContent):updateWriteHighlightCacheIncremental(component.cache,rawPath,fileContent):component.cache=void 0,component.setText(formatWriteCall(renderArgs,{expanded:context.expanded,isPartial:context.isPartial},theme2,component.cache,context.cwd)),component},renderResult(result,_options,theme2,context){let output=formatWriteResult({...result,isError:context.isError},theme2);if(!output){let component=context.lastComponent??new Container;return component.clear(),component}let text=context.lastComponent??new Text("",0,0);return text.setText(output),text}};function createAllToolRenderers(){return{read:readRenderers,bash:createShellRenderers("$"),powershell:createShellRenderers("PS>"),edit:editRenderers,write:writeRenderers,grep:grepRenderers,find:findRenderers,ls:lsRenderers,python:pythonRenderers}}function withBuiltInRenderers(toolName,definition){let builtIn=createAllToolRenderers()[toolName];return definition?builtIn?{...definition,renderCall:definition.renderCall??builtIn.renderCall,renderResult:definition.renderResult??builtIn.renderResult}:definition:builtIn}import{chmodSync,mkdtempSync,rmSync}from"node:fs";import{createServer}from"node:net";import{tmpdir as tmpdir2}from"node:os";import{join as join5}from"node:path";var ADJECTIVES=["Amber","Bold","Brave","Bright","Brisk","Calm","Clever","Cosmic","Crisp","Curious","Dapper","Deft","Eager","Early","Fancy","Fleet","Gentle","Glad","Golden","Grand","Happy","Hardy","Humble","Jolly","Keen","Kind","Lively","Lucky","Lunar","Mellow","Merry","Mighty","Misty","Nimble","Noble","Plucky","Polar","Proud","Quick","Quiet","Rapid","Rustic","Sage","Silent","Sleek","Smart","Snowy","Solar","Spry","Steady","Stellar","Stormy","Sunny","Swift","Tidy","Tranquil","Trusty","Vivid","Wild","Wise","Witty","Zany","Zesty","Velvet"],ANIMALS=["Badger","Bat","Bear","Beaver","Bison","Bobcat","Crane","Crow","Deer","Dolphin","Eagle","Egret","Falcon","Ferret","Finch","Fox","Gecko","Gibbon","Goose","Hare","Hawk","Heron","Ibis","Jackal","Jaguar","Kestrel","Koala","Lemur","Lion","Lynx","Magpie","Marten","Mole","Moose","Moth","Newt","Ocelot","Orca","Osprey","Otter","Owl","Panda","Panther","Pelican","Puffin","Quail","Rabbit","Raven","Robin","Salmon","Seal","Shrike","Sparrow","Stoat","Swan","Tapir","Tiger","Toucan","Turtle","Viper","Walrus","Weasel","Wolf","Wren"],emptyUsage=()=>({input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:0}),finished=info=>info.status!=="queued"&&info.status!=="running",ChildAgentRegistry=class{entries=new Map;listeners=new Set;usedNames=new Set;random;constructor(random=Math.random){this.random=random}generateName(){let pick=list=>list[Math.floor(this.random()*list.length)%list.length];for(let attempt=0;attempt<50;attempt++){let name=`${pick(ADJECTIVES)}${pick(ANIMALS)}`;if(!this.usedNames.has(name))return this.usedNames.add(name),name}for(let suffix=2;;suffix++){let name=`${pick(ADJECTIVES)}${pick(ANIMALS)}${suffix}`;if(!this.usedNames.has(name))return this.usedNames.add(name),name}}register(input){let parent=[...this.entries.values()].find(entry=>entry.info.sessionId===input.parentSessionId),now=Date.now(),info={id:input.id,name:this.generateName(),rootSessionId:input.rootSessionId,parentSessionId:input.parentSessionId,parentId:parent?.info.id,depth:input.depth,task:input.task,model:input.model,role:input.role,status:"queued",busy:!1,createdAt:now,lastActivityAt:now,turns:0,maxTurns:input.maxTurns,usage:emptyUsage(),live:!1,parked:!1,openable:!1,promptable:!1};return this.entries.set(info.id,{info,cancel:input.cancel,followUps:!1,viewers:0}),this.changed(),{...info}}attach(id,session,attachment){let entry=this.entries.get(id);entry&&(this.detach(entry),entry.session=session,entry.reopen=attachment.reopen??entry.reopen,entry.followUps=attachment.followUps,entry.info.sessionId=session.sessionId,entry.info.sessionFile=session.sessionFile,entry.info.parked=!1,entry.unsubscribe=session.subscribe(event=>this.observe(entry,event)),this.refresh(entry),this.changed())}start(id){let entry=this.entries.get(id);entry&&(entry.info.status="running",entry.info.startedAt=Date.now(),entry.info.lastActivityAt=entry.info.startedAt,this.refresh(entry),this.changed())}finish(id,outcome){let entry=this.entries.get(id);entry&&(entry.cancel=void 0,entry.info.status=outcome.status,entry.info.stopReason=outcome.stopReason,entry.info.error=outcome.error?.slice(0,4e3),entry.info.endedAt=Date.now(),this.refresh(entry),this.changed(),this.park(entry.info.rootSessionId))}get(id){let entry=this.entries.get(id);return entry?this.copy(entry):void 0}list(rootSessionId){return[...this.entries.values()].filter(entry=>entry.info.rootSessionId===rootSessionId).map(entry=>this.copy(entry))}session(id){return this.entries.get(id)?.session}async open(id){let entry=this.entries.get(id);if(!entry)throw new Error("This subagent is no longer available.");if(entry.session)return entry.session;let reopen=entry.reopen;if(!reopen)throw new Error(`${entry.info.name} was not saved to a session file and cannot be reopened.`);return entry.reopening??=(entry.parking??Promise.resolve()).then(reopen).then(session=>{if(entry.reopening=void 0,!this.entries.has(id))throw session.dispose(),new Error("This subagent is no longer available.");return this.attach(id,session,{reopen:entry.reopen,followUps:entry.followUps}),this.park(entry.info.rootSessionId,id),session},error=>{throw entry.reopening=void 0,error}),entry.reopening}async prompt(id,text){let entry=this.entries.get(id);if(!entry)throw new Error("This subagent is no longer available.");let info=this.copy(entry);if(!info.promptable)throw new Error(`${info.name} already returned a workspace result to its parent; its session is read-only.`);let session=await this.open(id);if(session.isStreaming){await session.prompt(text,{streamingBehavior:"steer",expandPromptTemplates:!1});return}session.prompt(text,{expandPromptTemplates:!1}).catch(error=>{entry.info.error=(error instanceof Error?error.message:String(error)).slice(0,4e3),this.changed()})}stop(id){let entry=this.entries.get(id);return entry?entry.cancel&&!finished(entry.info)?(entry.cancel(),!0):entry.session?.isStreaming?(entry.session.abort(),!0):!1:!1}retain(id){let entry=this.entries.get(id);if(!entry)return()=>{};entry.viewers++;let released=!1;return()=>{released||(released=!0,entry.viewers--,this.park(entry.info.rootSessionId))}}subscribe(listener){return this.listeners.add(listener),()=>{this.listeners.delete(listener)}}disposeOwnedBy(sessionId){for(let[id,entry]of[...this.entries])entry.info.parentSessionId===sessionId&&(entry.cancel?.(),this.detach(entry),entry.session?.dispose(),entry.session=void 0,this.entries.delete(id));this.changed()}observe(entry,event){let info=entry.info;switch(info.lastActivityAt=Date.now(),event.type){case"agent_start":info.busy=!0;break;case"agent_end":case"agent_settled":info.busy=entry.session?.isStreaming??!1;break;case"turn_end":info.turns++;break;case"message_end":{let message=event.message,usage=message.role==="assistant"||message.role==="toolResult"?message.usage:void 0;usage&&(info.usage.input+=usage.input,info.usage.output+=usage.output,info.usage.cacheRead+=usage.cacheRead,info.usage.cacheWrite+=usage.cacheWrite,info.usage.totalTokens+=usage.totalTokens,info.usage.cost+=usage.cost.total);break}case"tool_execution_start":{if(event.parentToolCallId)return;let line=(event.toolName==="python"&&typeof event.args?.code=="string"?event.args.code:void 0)?.split(`
|
|
215
|
+
`).find(value=>value.trim())?.trim();info.activity=(line??event.toolName).slice(0,200);break}case"thinking_level_changed":break;default:return}this.refresh(entry),this.changed()}refresh(entry){let session=entry.session;if(!session)return;let model=session.model;model&&(entry.info.model=`${model.provider}/${model.id}`),entry.info.busy=session.isStreaming}copy(entry){let info=entry.info,live=entry.session!==void 0,running=!finished(info);return{...info,usage:{...info.usage},live,openable:live||entry.reopen!==void 0,promptable:(live||entry.reopen!==void 0)&&(running||entry.followUps)}}detach(entry){entry.unsubscribe?.(),entry.unsubscribe=void 0}async park(rootSessionId,keep){let idle=[...this.entries.values()].filter(entry=>entry.info.rootSessionId===rootSessionId&&entry.session&&finished(entry.info)&&!entry.session.isStreaming&&entry.viewers===0&&entry.reopen!==void 0&&entry.info.id!==keep).sort((a,b)=>b.info.lastActivityAt-a.info.lastActivityAt);for(let entry of idle.slice(4-(keep?1:0))){let session=entry.session;!session||!entry.reopen||(this.detach(entry),entry.session=void 0,entry.info.parked=!0,entry.info.busy=!1,entry.parking=(async()=>{try{await session.flushRlmSnapshot()}catch{}session.dispose()})(),await entry.parking,entry.parking=void 0)}let records=[...this.entries.values()].filter(entry=>entry.info.rootSessionId===rootSessionId&&!entry.session&&finished(entry.info));for(let entry of records.slice(0,Math.max(0,records.length-200)))this.entries.delete(entry.info.id);this.changed()}changed(){for(let listener of[...this.listeners])try{listener()}catch{}}},childAgents=new ChildAgentRegistry;var CHILD_AGENT_PROTOCOL_VERSION=1,CHILD_AGENT_MAX_LINE_BYTES=256*1024,CHILD_AGENT_MAX_PROMPT_BYTES=64*1024,CHILD_AGENT_MAX_PENDING_WRITE_BYTES=32*1024*1024,AGENT_UPDATE_INTERVAL_MS=250,REJECT_CLOSE_TIMEOUT_MS=1e3,STREAM_UPDATE_INTERVAL_MS=50,MAX_SOCKET_PATH_BYTES=100,FORWARDED_CHILD_AGENT_EVENTS=["agent_start","agent_end","turn_start","turn_end","message_start","message_update","message_end","tool_execution_start","tool_execution_update","tool_execution_end","queue_update"],forwarded=new Set(FORWARDED_CHILD_AGENT_EVENTS);function safeJsonStringify(value){let ancestors=[];try{return JSON.stringify(value,function(_key,item){if(typeof item=="bigint")return item.toString();if(!(typeof item=="function"||typeof item=="symbol"))return item===null||typeof item!="object"?item:(ancestors.length=ancestors.lastIndexOf(this)+1,ancestors.includes(item)?"[Circular]":(ancestors.push(item),item))})}catch{return}}function privateSocketPath(){for(let base of[tmpdir2(),"/tmp"]){let dir=mkdtempSync(join5(base,"raga-agents-")),socketPath=join5(dir,"s");if(Buffer.byteLength(socketPath)<MAX_SOCKET_PATH_BYTES)return chmodSync(dir,448),{dir,socketPath};rmSync(dir,{recursive:!0,force:!0})}throw new Error("Cannot create a private socket path short enough for this platform.")}var errorMessage=error=>error instanceof Error?error.message:String(error),AttachClient=class{socket;registry;rootSessionId;onClosed;maxPendingWriteBytes;inbound=[];inboundBytes=0;closed=!1;agentId;opening=!1;welcomed=!1;gone=!1;session;unsubscribeSession;unsubscribeRegistry;lastAgentJson;lastAgentAt=0;agentTimer;pendingUpdates=new Map;lastUpdateAt=0;updateTimer;constructor(socket,registry,rootSessionId,maxPendingWriteBytes,onClosed){this.socket=socket,this.registry=registry,this.rootSessionId=rootSessionId,this.maxPendingWriteBytes=maxPendingWriteBytes,this.onClosed=onClosed,socket.unref(),socket.on("data",chunk=>this.receive(chunk)),socket.on("error",()=>this.dispose()),socket.on("close",()=>{this.dispose(),this.onClosed(this)})}destroy(){this.socket.destroy(),this.dispose()}receive(chunk){if(this.closed)return;let start=0;for(let index3=chunk.indexOf(10);index3!==-1;index3=chunk.indexOf(10,start)){let piece=chunk.subarray(start,index3);if(this.inboundBytes+piece.length>CHILD_AGENT_MAX_LINE_BYTES){this.destroy();return}let line=Buffer.concat([...this.inbound,piece]).toString("utf8");if(this.inbound=[],this.inboundBytes=0,start=index3+1,line.trim()&&this.handleLine(line),this.closed)return}let rest=chunk.subarray(start);if(rest.length!==0){if(this.inboundBytes+=rest.length,this.inboundBytes>CHILD_AGENT_MAX_LINE_BYTES){this.destroy();return}this.inbound.push(Buffer.from(rest))}}handleLine(line){let message;try{message=JSON.parse(line)}catch{this.send({type:"error",message:"Malformed message: expected one JSON object per line."});return}if(!message||typeof message!="object"||!("type"in message)){this.send({type:"error",message:"Malformed message: missing type."});return}if(message.type==="hello"){if(this.agentId!==void 0){this.send({type:"error",message:"Already attached."});return}if(!("version"in message)||message.version!==CHILD_AGENT_PROTOCOL_VERSION){this.reject(`Unsupported protocol version; this Raga speaks version ${CHILD_AGENT_PROTOCOL_VERSION}.`);return}if(!("agentId"in message)||typeof message.agentId!="string"){this.reject("Malformed hello: missing agentId.");return}this.hello(message.agentId);return}let agentId=this.agentId;if(agentId===void 0){this.reject("Expected hello first.");return}if(message.type==="prompt"){if(!("text"in message)||typeof message.text!="string"){this.send({type:"error",message:"Malformed prompt: missing text."});return}if(Buffer.byteLength(message.text)>CHILD_AGENT_MAX_PROMPT_BYTES){this.send({type:"error",message:"Message too long (64 KiB limit)."});return}this.registry.prompt(agentId,message.text).catch(error=>{this.send({type:"error",message:errorMessage(error)})});return}if(message.type==="stop"){this.registry.stop(agentId);return}this.send({type:"error",message:`Unknown message type: ${String(message.type).slice(0,40)}`})}reject(message){this.send({type:"error",message}),this.socket.end();let timer=setTimeout(()=>this.socket.destroy(),REJECT_CLOSE_TIMEOUT_MS).unref();this.socket.once("close",()=>clearTimeout(timer)),this.dispose()}async hello(agentId){let info=this.registry.get(agentId);if(!info||info.rootSessionId!==this.rootSessionId){this.reject("Unknown subagent.");return}this.agentId=agentId,this.unsubscribeRegistry=this.registry.subscribe(()=>this.registryChanged()),this.opening=!0;let session;try{session=await this.registry.open(agentId),!this.closed&&!this.gone&&this.registry.session(agentId)!==session&&(session=await this.registry.open(agentId))}catch(error){if(this.opening=!1,this.closed||this.gone)return;this.sendWelcome(void 0),this.send({type:"error",message:errorMessage(error)});return}if(this.opening=!1,this.closed||this.gone)return;let current=this.registry.session(agentId);if(current){this.bind(current);return}this.sendWelcome(void 0),this.send({type:"error",message:"This subagent was parked before it could be shown; send a message to reopen it."})}registryChanged(){let agentId=this.agentId;if(!(this.closed||agentId===void 0)){if(!this.registry.get(agentId)){this.gone||(this.gone=!0,this.unbind(),this.send({type:"error",message:"This subagent is no longer available."}));return}if(!this.opening){let session=this.registry.session(agentId);if(session&&session!==this.session){this.bind(session);return}!session&&this.session&&this.unbind()}this.sendAgent(!1)}}bind(session){this.agentId!==void 0&&(this.unbind(),this.registry.get(this.agentId)&&(this.session=session,this.unsubscribeSession=session.subscribe(event=>this.forward(event)),this.sendWelcome(session)))}sendWelcome(session){if(this.agentId===void 0)return;let agent=this.registry.get(this.agentId);if(!agent)return;let state2=session?.agent.state;this.lastAgentJson=safeJsonStringify(agent),this.lastAgentAt=Date.now(),this.welcomed=!0,this.send({type:"welcome",agent,messages:session?session.messages:[],streaming:state2?.streamingMessage??null,pendingToolCallIds:state2?[...state2.pendingToolCalls]:[]})}unbind(){this.unsubscribeSession?.(),this.unsubscribeSession=void 0,this.session=void 0,this.pendingUpdates.clear(),this.updateTimer&&clearTimeout(this.updateTimer),this.updateTimer=void 0}sendAgent(force){if(this.closed||this.agentId===void 0||!this.welcomed)return;let wait=force?0:this.lastAgentAt+AGENT_UPDATE_INTERVAL_MS-Date.now();if(wait>0){this.agentTimer??=setTimeout(()=>{this.agentTimer=void 0,this.sendAgent(!1)},wait).unref();return}this.agentTimer&&clearTimeout(this.agentTimer),this.agentTimer=void 0;let agent=this.registry.get(this.agentId);if(!agent)return;let json=safeJsonStringify(agent);!force&&json===this.lastAgentJson||(this.lastAgentJson=json,this.lastAgentAt=Date.now(),this.send({type:"agent",agent}))}forward(event){if(this.closed||!forwarded.has(event.type))return;let forwardedEvent=event,relayed=forwardedEvent.type==="message_update"?{type:"message_update",message:forwardedEvent.message}:forwardedEvent;if(relayed.type==="message_update"||relayed.type==="tool_execution_update"){let key=relayed.type==="message_update"?"message":`tool:${relayed.toolCallId}`;this.pendingUpdates.delete(key),this.pendingUpdates.set(key,relayed);let wait=this.lastUpdateAt+STREAM_UPDATE_INTERVAL_MS-Date.now();wait<=0?this.flushUpdates():this.updateTimer??=setTimeout(()=>this.flushUpdates(),wait).unref();return}this.flushUpdates(),this.send({type:"event",event:relayed})}flushUpdates(){if(this.updateTimer&&clearTimeout(this.updateTimer),this.updateTimer=void 0,this.pendingUpdates.size===0)return;this.lastUpdateAt=Date.now();let updates=[...this.pendingUpdates.values()];this.pendingUpdates.clear();for(let event of updates)this.send({type:"event",event})}send(message){if(this.closed||this.socket.destroyed||!this.socket.writable)return;let json=safeJsonStringify(message)??safeJsonStringify({type:"error",message:`Could not serialize a ${message.type} message.`});if(json!==void 0){if(this.socket.writableLength>this.maxPendingWriteBytes){this.destroy();return}this.socket.write(`${json}
|
|
216
|
+
`)}}dispose(){this.closed||(this.closed=!0,this.unbind(),this.unsubscribeRegistry?.(),this.unsubscribeRegistry=void 0,this.agentTimer&&clearTimeout(this.agentTimer),this.agentTimer=void 0,this.inbound=[])}};async function startChildAgentServer(options){let registry=options.registry??childAgents,maxPendingWriteBytes=options.maxPendingWriteBytes??CHILD_AGENT_MAX_PENDING_WRITE_BYTES,{dir,socketPath}=privateSocketPath(),removeDir=()=>{try{rmSync(dir,{recursive:!0,force:!0})}catch{}};process.on("exit",removeDir);let clients=new Set,server=createServer(socket=>{clients.add(new AttachClient(socket,registry,options.rootSessionId,maxPendingWriteBytes,client=>clients.delete(client)))});try{await new Promise((resolve2,reject)=>{server.once("error",reject),server.listen(socketPath,()=>{server.off("error",reject),resolve2()})}),chmodSync(socketPath,384)}catch(error){throw server.close(),process.off("exit",removeDir),removeDir(),error}server.on("error",()=>{}),server.unref();let closing;return{socketPath,close(){return closing??=new Promise(resolve2=>{for(let client of[...clients])client.destroy();server.close(()=>{process.off("exit",removeDir),removeDir(),resolve2()})}),closing}}}function createChatViewport(options){let transcript=new ScrollView(options.document,{follow:"end",primary:!0,overscroll:"chain",scrollbar:options.scrollbar??"auto",...options.scrollbarTrackStyle===void 0?{}:{scrollbarTrackStyle:options.scrollbarTrackStyle},...options.scrollbarThumbStyle===void 0?{}:{scrollbarThumbStyle:options.scrollbarThumbStyle}}),dock=new VStack([{component:options.pendingMessages,shrink:1,minSize:0},{component:options.status,shrink:1,minSize:0},...options.cellDashboard===void 0?[]:[{component:options.cellDashboard,shrink:1,minSize:0}],...options.widgetsAbove===void 0?[]:[{component:options.widgetsAbove,shrink:1,minSize:0}],{component:options.editor,shrink:1,minSize:3},...options.widgetsBelow===void 0?[]:[{component:options.widgetsBelow,shrink:1,minSize:0}],{component:options.footer,shrink:1,minSize:0}]);return{transcript,root:new VStack([{component:transcript,basis:0,grow:1,shrink:1,minSize:1},{component:dock,basis:"auto",grow:0,shrink:1,minSize:1}])}}function createMarkdownTransform(messageType,isStreaming,transformers,messageId,timestamp){return(markdown,availableWidth)=>applyMarkdownTransformers(markdown,{messageType,isStreaming,availableWidth,messageId,timestamp},transformers)}function applyMarkdownTransformers(markdown,context,transformers){let transformedMarkdown=markdown;for(let transformer of transformers)try{let transformed=transformer(transformedMarkdown,context);typeof transformed=="string"&&(transformedMarkdown=transformed)}catch{}return transformedMarkdown}var OSC133_ZONE_START="\x1B]133;A\x07",OSC133_ZONE_END="\x1B]133;B\x07",OSC133_ZONE_FINAL="\x1B]133;C\x07",AssistantMessageComponent=class extends Container{contentContainer;hideThinkingBlock;markdownTheme;hiddenThinkingLabel;outputPad;markdownTransformers;lastMessage;hasToolCalls=!1;isStreaming=!1;messageId;timestamp;thinkingVisibilityOverrides=new Map;constructor(message,hideThinkingBlock=!1,markdownTheme=getMarkdownTheme(),hiddenThinkingLabel="Thinking...",outputPad=1,markdownTransformers=[],messageId,timestamp){super(),this.hideThinkingBlock=hideThinkingBlock,this.markdownTheme=markdownTheme,this.hiddenThinkingLabel=hiddenThinkingLabel,this.outputPad=outputPad,this.markdownTransformers=markdownTransformers,this.messageId=messageId,this.timestamp=timestamp,this.contentContainer=new Container,this.addChild(this.contentContainer),message&&this.updateContent(message)}invalidate(){super.invalidate(),this.lastMessage&&this.updateContent(this.lastMessage)}setHideThinkingBlock(hide){this.hideThinkingBlock=hide,this.thinkingVisibilityOverrides.clear(),this.lastMessage&&this.updateContent(this.lastMessage)}setHiddenThinkingLabel(label){this.hiddenThinkingLabel=label,this.lastMessage&&this.updateContent(this.lastMessage)}setOutputPad(padding){this.outputPad=padding,this.lastMessage&&this.updateContent(this.lastMessage)}render(width){let lines=super.render(width);return this.hasToolCalls||lines.length===0||(lines[0]=OSC133_ZONE_START+lines[0],lines[lines.length-1]=OSC133_ZONE_END+OSC133_ZONE_FINAL+lines[lines.length-1]),lines}updateContent(message,isStreaming=this.isStreaming){this.lastMessage=message,this.isStreaming=isStreaming,this.contentContainer.clear(),message.content.some(c=>c.type==="text"&&c.text.trim()||c.type==="thinking"&&c.thinking.trim())&&this.contentContainer.addChild(new Spacer(1));let thinkingRunIndex=0;for(let i=0;i<message.content.length;i++){let content=message.content[i];if(content.type==="text"&&content.text.trim())this.contentContainer.addChild(new Markdown(content.text.trim(),this.outputPad,0,this.markdownTheme,void 0,{transform:createMarkdownTransform("assistant",this.isStreaming,this.markdownTransformers,this.messageId,this.timestamp)}));else if(content.type==="thinking"){let thinkingBlocks=[];for(;i<message.content.length;i++){let thinkingContent=message.content[i];if(thinkingContent.type!=="thinking")break;let thinking=thinkingContent.thinking.trim();thinking&&thinkingBlocks.push(thinking)}if(i--,thinkingBlocks.length===0)continue;let hasVisibleContentAfter=message.content.slice(i+1).some(c=>c.type==="text"&&c.text.trim()||c.type==="thinking"&&c.thinking.trim()),runIndex=thinkingRunIndex++,hidden=this.thinkingVisibilityOverrides.get(runIndex)??this.hideThinkingBlock,thinkingComponent=hidden?new Text(theme.italic(theme.fg("thinkingText",this.hiddenThinkingLabel)),this.outputPad,0):new Markdown(thinkingBlocks.join(`
|
|
217
|
+
|
|
218
|
+
`),this.outputPad,0,this.markdownTheme,{color:text=>theme.fg("thinkingText",text),italic:!0},{transform:createMarkdownTransform("assistant-thinking",this.isStreaming,this.markdownTransformers,this.messageId,this.timestamp)});this.contentContainer.addChild(new MouseRegion(thinkingComponent,event=>{if(!(event.type!=="click"||event.button!=="left"))return this.thinkingVisibilityOverrides.set(runIndex,!hidden),this.lastMessage&&this.updateContent(this.lastMessage),{handled:!0}})),hasVisibleContentAfter&&this.contentContainer.addChild(new Spacer(1))}}let hasToolCalls=message.content.some(c=>c.type==="toolCall");if(this.hasToolCalls=hasToolCalls,message.stopReason==="length")this.contentContainer.addChild(new Spacer(1)),this.contentContainer.addChild(new Text(theme.fg("error","Response was truncated before completion."),this.outputPad,0));else if(!hasToolCalls){if(message.stopReason==="aborted"){let abortMessage=message.errorMessage&&message.errorMessage!=="Request was aborted"?message.errorMessage:"Operation aborted";this.contentContainer.addChild(new Spacer(1)),this.contentContainer.addChild(new Text(theme.fg("error",abortMessage),this.outputPad,0))}else if(message.stopReason==="error"){let errorMsg=message.errorMessage||"Unknown error";this.contentContainer.addChild(new Spacer(1)),this.contentContainer.addChild(new Text(theme.fg("error",`Error: ${errorMsg}`),this.outputPad,0))}}}};var PREVIEW_LINES=20,BashExecutionComponent=class extends Container{command;outputLines=[];status="running";exitCode=void 0;loader;truncationResult;fullOutputPath;expanded=!1;contentContainer;colorKey;outputPad;constructor(command,ui,excludeFromContext=!1,outputPad=1){super(),this.command=command,this.colorKey=excludeFromContext?"dim":"bashMode",this.outputPad=outputPad;let borderColor=str2=>theme.fg(this.colorKey,str2);this.addChild(new Spacer(1)),this.addChild(new DynamicBorder(borderColor)),this.contentContainer=new Container,this.addChild(this.contentContainer),this.loader=new Loader(ui,spinner=>theme.fg(this.colorKey,spinner),text=>theme.fg("muted",text),`Running... (${keyText("tui.select.cancel")} to cancel)`),this.addChild(new DynamicBorder(borderColor)),this.updateDisplay()}setExpanded(expanded){this.expanded=expanded,this.updateDisplay()}setOutputPad(outputPad){this.outputPad=outputPad,this.updateDisplay()}invalidate(){super.invalidate(),this.updateDisplay()}appendOutput(chunk){let newLines=stripAnsi(chunk).replace(/\r\n/g,`
|
|
219
|
+
`).replace(/\r/g,`
|
|
220
|
+
`).split(`
|
|
221
|
+
`);this.outputLines.length>0&&newLines.length>0?(this.outputLines[this.outputLines.length-1]+=newLines[0],this.outputLines.push(...newLines.slice(1))):this.outputLines.push(...newLines),this.updateDisplay()}setComplete(exitCode,cancelled,truncationResult,fullOutputPath){this.exitCode=exitCode,this.status=cancelled?"cancelled":exitCode!==0&&exitCode!==void 0&&exitCode!==null?"error":"complete",this.truncationResult=truncationResult,this.fullOutputPath=fullOutputPath,this.loader.stop(),this.updateDisplay()}updateDisplay(){let fullOutput=this.outputLines.join(`
|
|
222
|
+
`),contextTruncation=truncateTail(fullOutput,{maxLines:2e3,maxBytes:51200}),availableLines=contextTruncation.content?contextTruncation.content.split(`
|
|
223
|
+
`):[],previewLogicalLines=availableLines.slice(-PREVIEW_LINES),hiddenLineCount=availableLines.length-previewLogicalLines.length;this.contentContainer.clear();let header=new Text(theme.fg(this.colorKey,theme.bold(`$ ${this.command}`)),this.outputPad,0);if(this.contentContainer.addChild(header),availableLines.length>0)if(this.expanded){let displayText=availableLines.map(line=>theme.fg("muted",line)).join(`
|
|
224
|
+
`);this.contentContainer.addChild(new Text(`
|
|
225
|
+
${displayText}`,this.outputPad,0))}else{let styledInput=`
|
|
226
|
+
${previewLogicalLines.map(line=>theme.fg("muted",line)).join(`
|
|
227
|
+
`)}`,cachedWidth,cachedLines;this.contentContainer.addChild({render:width=>((cachedLines===void 0||cachedWidth!==width)&&(cachedLines=truncateToVisualLines(styledInput,PREVIEW_LINES,width,this.outputPad).visualLines,cachedWidth=width),cachedLines??[]),invalidate:()=>{cachedWidth=void 0,cachedLines=void 0}})}if(this.status==="running")this.contentContainer.addChild(this.loader);else{let statusParts=[];hiddenLineCount>0&&(this.expanded?statusParts.push(`${theme.fg("muted","(")}${keyHint("app.tools.expand","to collapse")}${theme.fg("muted",")")}`):statusParts.push(`${theme.fg("muted",`... ${hiddenLineCount} more lines (`)}${keyHint("app.tools.expand","to expand")}${theme.fg("muted",")")}`)),this.status==="cancelled"?statusParts.push(theme.fg("warning","(cancelled)")):this.status==="error"&&statusParts.push(theme.fg("error",`(exit ${this.exitCode})`)),(this.truncationResult?.truncated||contextTruncation.truncated)&&this.fullOutputPath&&statusParts.push(theme.fg("warning",`Output truncated. Full output: ${this.fullOutputPath}`)),statusParts.length>0&&this.contentContainer.addChild(new Text(`
|
|
228
|
+
${statusParts.join(`
|
|
229
|
+
`)}`,this.outputPad,0))}}getOutput(){return this.outputLines.join(`
|
|
230
|
+
`)}getCommand(){return this.command}};var BranchSummaryMessageComponent=class extends Box{expanded=!1;message;markdownTheme;constructor(message,markdownTheme=getMarkdownTheme(),outputPad=1){super(outputPad,1,t=>theme.bg("customMessageBg",t)),this.message=message,this.markdownTheme=markdownTheme,this.updateDisplay()}setExpanded(expanded){this.expanded=expanded,this.updateDisplay()}setOutputPad(outputPad){this.setPaddingX(outputPad)}invalidate(){super.invalidate(),this.updateDisplay()}updateDisplay(){this.clear();let content=new Container,label=theme.fg("customMessageLabel","\x1B[1m[branch]\x1B[22m");if(content.addChild(new Text(label,0,0)),content.addChild(new Spacer(1)),this.expanded){let header=`**Branch Summary**
|
|
231
|
+
|
|
232
|
+
`;content.addChild(new Markdown(header+this.message.summary,0,0,this.markdownTheme,{color:text=>theme.fg("customMessageText",text)}))}else content.addChild(new Text(theme.fg("customMessageText","Branch summary (")+theme.fg("dim",keyText("app.tools.expand"))+theme.fg("customMessageText"," to expand)"),0,0));this.addChild(new MouseRegion(content,event=>{if(!(event.type!=="click"||event.button!=="left"))return this.setExpanded(!this.expanded),{handled:!0}}))}};var CompactionSummaryMessageComponent=class extends Box{expanded=!1;message;markdownTheme;constructor(message,markdownTheme=getMarkdownTheme(),outputPad=1){super(outputPad,1,t=>theme.bg("customMessageBg",t)),this.message=message,this.markdownTheme=markdownTheme,this.updateDisplay()}setExpanded(expanded){this.expanded=expanded,this.updateDisplay()}setOutputPad(outputPad){this.setPaddingX(outputPad)}invalidate(){super.invalidate(),this.updateDisplay()}updateDisplay(){this.clear();let content=new Container,tokenStr=this.message.tokensBefore.toLocaleString(),label=theme.fg("customMessageLabel","\x1B[1m[compaction]\x1B[22m");if(content.addChild(new Text(label,0,0)),content.addChild(new Spacer(1)),this.expanded){let header=`**Compacted from ${tokenStr} tokens**
|
|
233
|
+
|
|
234
|
+
`;content.addChild(new Markdown(header+this.message.summary,0,0,this.markdownTheme,{color:text=>theme.fg("customMessageText",text)}))}else content.addChild(new Text(theme.fg("customMessageText",`Compacted from ${tokenStr} tokens (`)+theme.fg("dim",keyText("app.tools.expand"))+theme.fg("customMessageText"," to expand)"),0,0));this.addChild(new MouseRegion(content,event=>{if(!(event.type!=="click"||event.button!=="left"))return this.setExpanded(!this.expanded),{handled:!0}}))}};var CustomEditor=class extends Editor{keybindings;workingStatusIndicator;embedWorkingStatus;actionHandlers=new Map;onEscape;onCtrlD;onPasteImage;onExtensionShortcut;constructor(tui,theme2,keybindings,options){super(tui,theme2,options),this.keybindings=keybindings,this.embedWorkingStatus=options?.embedWorkingStatus??!1}setWorkingStatusIndicator(indicator){this.workingStatusIndicator=indicator}renderTopBorder(width,hiddenLineCount){if(!this.embedWorkingStatus||!this.workingStatusIndicator||width<=0)return super.renderTopBorder(width,hiddenLineCount);let status=this.workingStatusIndicator.renderInBorder(Math.max(1,width-5)),statusWidth=visibleWidth(status);if(statusWidth===0)return super.renderTopBorder(width,hiddenLineCount);let overflowLabel=hiddenLineCount>0?` \u2191 ${hiddenLineCount} more `:void 0,overflowLabelWidth=overflowLabel?visibleWidth(overflowLabel):0,overflowStart=Math.floor((width-overflowLabelWidth)/2),canFitOverflow=()=>overflowLabel!==void 0&&overflowLabelWidth+2<=width&&overflowStart-(3+statusWidth+1)>=1;if(overflowLabel&&!canFitOverflow()&&(status=this.workingStatusIndicator.renderSpinnerInBorder(width),statusWidth=visibleWidth(status)),canFitOverflow()){let leftBlockWidth=3+statusWidth+1;return this.borderColor("\u2500\u2500 ")+status+this.borderColor(` ${"\u2500".repeat(overflowStart-leftBlockWidth)}${overflowLabel}${"\u2500".repeat(width-overflowStart-overflowLabelWidth)}`)}if(width>=statusWidth+5)return this.borderColor("\u2500\u2500 ")+status+this.borderColor(` ${"\u2500".repeat(width-statusWidth-4)}`);status=this.workingStatusIndicator.renderSpinnerInBorder(width),statusWidth=visibleWidth(status);let prefixWidth=Math.min(3,Math.max(0,width-statusWidth));return this.borderColor("\u2500".repeat(prefixWidth))+status+this.borderColor("\u2500".repeat(Math.max(0,width-prefixWidth-statusWidth)))}onAction(action,handler){this.actionHandlers.set(action,handler)}handleInput(data){if(!this.onExtensionShortcut?.(data)){if(this.keybindings.matches(data,"app.clipboard.pasteImage")){this.onPasteImage?.();return}if(this.keybindings.matches(data,"app.interrupt")){if(!this.isShowingAutocomplete()){let handler=this.onEscape??this.actionHandlers.get("app.interrupt");if(handler){handler();return}}super.handleInput(data);return}if(this.keybindings.matches(data,"app.exit")&&this.getText().length===0){let handler=this.onCtrlD??this.actionHandlers.get("app.exit");handler&&handler();return}if(this.keybindings.matches(data,"tui.editor.historyPrevious")||this.keybindings.matches(data,"tui.editor.historyNext")){super.handleInput(data);return}for(let[action,handler]of this.actionHandlers)if(action!=="app.interrupt"&&action!=="app.exit"&&this.keybindings.matches(data,action)){handler();return}super.handleInput(data)}}};var CustomMessageComponent=class extends Container{message;customRenderer;box;customComponent;markdownTheme;_expanded=!1;outputPad;constructor(message,customRenderer,markdownTheme=getMarkdownTheme(),outputPad=1){super(),this.message=message,this.customRenderer=customRenderer,this.markdownTheme=markdownTheme,this.outputPad=outputPad,this.addChild(new Spacer(1)),this.box=new Box(1,1,t=>theme.bg("customMessageBg",t)),this.rebuild()}setExpanded(expanded){this._expanded!==expanded&&(this._expanded=expanded,this.rebuild())}setOutputPad(outputPad){this.outputPad!==outputPad&&(this.outputPad=outputPad,this.rebuild())}invalidate(){super.invalidate(),this.rebuild()}rebuild(){if(this.customComponent&&(this.removeChild(this.customComponent),this.customComponent=void 0),this.removeChild(this.box),this.customRenderer)try{let component=this.customRenderer(this.message,{expanded:this._expanded,outputPad:this.outputPad},theme);if(component){this.customComponent=component,this.addChild(component);return}}catch{}this.addChild(this.box),this.box.clear(),this.box.setPaddingX(this.outputPad);let label=theme.fg("customMessageLabel",`\x1B[1m[${this.message.customType}]\x1B[22m`);this.box.addChild(new Text(label,0,0)),this.box.addChild(new Spacer(1));let text;typeof this.message.content=="string"?text=this.message.content:text=this.message.content.filter(c=>c.type==="text").map(c=>c.text).join(`
|
|
235
|
+
`),this.box.addChild(new Markdown(text,0,0,this.markdownTheme,{color:text2=>theme.fg("customMessageText",text2)}))}};import{isAbsolute as isAbsolute2,relative as relative2,resolve,sep as sep2}from"node:path";function areExperimentalFeaturesEnabled(){return process.env.PI_EXPERIMENTAL==="1"}function sanitizeStatusText(text){return text.replace(/[\r\n\t]/g," ").replace(/ +/g," ").trim()}function formatTokens(count){return count<1e3?count.toString():count<1e4?`${(count/1e3).toFixed(1)}k`:count<1e6?`${Math.round(count/1e3)}k`:count<1e7?`${(count/1e6).toFixed(1)}M`:`${Math.round(count/1e6)}M`}function formatCwdForFooter(cwd,home){if(!home)return cwd;let resolvedCwd=resolve(cwd),resolvedHome=resolve(home),relativeToHome=relative2(resolvedHome,resolvedCwd);return relativeToHome===""||relativeToHome!==".."&&!relativeToHome.startsWith(`..${sep2}`)&&!isAbsolute2(relativeToHome)?relativeToHome===""?"~":`~${sep2}${relativeToHome}`:cwd}var FooterComponent=class{autoCompactEnabled=!0;session;footerData;sessionStats;constructor(session,footerData){this.session=session,this.footerData=footerData}setSession(session){this.session=session}setAutoCompactEnabled(enabled){this.autoCompactEnabled=enabled}invalidate(){}dispose(){}getSessionStats(){let sessionManager=this.session.sessionManager,entryCount=sessionManager.getEntryCount(),sessionId=sessionManager.getSessionId(),leafId=sessionManager.getLeafId(),limitsModel=this.session.routedModel?.model??this.session.model,cached=this.sessionStats;if(cached&&cached.session===this.session&&cached.sessionId===sessionId&&cached.leafId===leafId&&cached.entryCount===entryCount&&cached.limitsModel===limitsModel)return cached;let usageTotals=createUsageTotals(),latestCacheHitRate;for(let entry of sessionManager.getEntries())if(entry.type==="usage")addUsageToTotals(usageTotals,entry.usage);else if(entry.type==="message"&&entry.message.role==="assistant"){addUsageToTotals(usageTotals,entry.message.usage);let latestPromptTokens=entry.message.usage.input+entry.message.usage.cacheRead+entry.message.usage.cacheWrite;latestCacheHitRate=latestPromptTokens>0?entry.message.usage.cacheRead/latestPromptTokens*100:void 0}else entry.type==="message"&&entry.message.role==="toolResult"&&entry.message.usage?addUsageToTotals(usageTotals,entry.message.usage):(entry.type==="branch_summary"||entry.type==="compaction")&&entry.usage&&addUsageToTotals(usageTotals,entry.usage);let contextUsage=this.session.getContextUsage();return this.sessionStats={session:this.session,sessionId,leafId,entryCount,limitsModel,usageTotals,latestCacheHitRate,contextUsage},this.sessionStats}render(width){let state2=this.session.state,{usageTotals,latestCacheHitRate,contextUsage}=this.getSessionStats(),contextWindow=contextUsage?.contextWindow??state2.model?.contextWindow??0,contextPercentValue=contextUsage?.percent??0,contextPercent=contextUsage?.percent!==null?contextPercentValue.toFixed(1):"?",pwd=formatCwdForFooter(this.session.sessionManager.getCwd(),process.env.HOME||process.env.USERPROFILE),branch=this.footerData.getGitBranch();branch&&(pwd=`${pwd} (${branch})`);let sessionName=this.session.sessionManager.getSessionName();sessionName&&(pwd=`${pwd} \u2022 ${sessionName}`);let statsParts=[];usageTotals.input&&statsParts.push(`\u2191${formatTokens(usageTotals.input)}`),usageTotals.output&&statsParts.push(`\u2193${formatTokens(usageTotals.output)}`),usageTotals.cacheRead&&statsParts.push(`R${formatTokens(usageTotals.cacheRead)}`),usageTotals.cacheWrite&&statsParts.push(`W${formatTokens(usageTotals.cacheWrite)}`),(usageTotals.cacheRead>0||usageTotals.cacheWrite>0)&&latestCacheHitRate!==void 0&&statsParts.push(`CH${latestCacheHitRate.toFixed(1)}%`);let usingSubscription=state2.model?state2.model.provider==="kimi-coding"||this.session.modelRuntime.isUsingSubscription(state2.model.provider):!1;if(usageTotals.cost||usingSubscription){let costStr=`$${usageTotals.cost.toFixed(3)}${usingSubscription?" (sub)":""}`;statsParts.push(costStr)}let contextPercentStr,autoIndicator=this.autoCompactEnabled?" (auto)":"",contextPercentDisplay=contextPercent==="?"?`?/${formatTokens(contextWindow)}${autoIndicator}`:`${contextPercent}%/${formatTokens(contextWindow)}${autoIndicator}`;contextPercentValue>90?contextPercentStr=theme.fg("error",contextPercentDisplay):contextPercentValue>70?contextPercentStr=theme.fg("warning",contextPercentDisplay):contextPercentStr=contextPercentDisplay,statsParts.push(contextPercentStr),areExperimentalFeaturesEnabled()&&statsParts.push(`${theme.fg("dim","\u2022")} ${theme.bold(theme.fg("warning","xp"))}`);let statsLeft=statsParts.join(" "),modelName=state2.model?.id||"no-model",statsLeftWidth=visibleWidth(statsLeft);statsLeftWidth>width&&(statsLeft=truncateToWidth(statsLeft,width,"..."),statsLeftWidth=visibleWidth(statsLeft));let minPadding=2,rightSideWithoutProvider=modelName;if(state2.model?.reasoning){let thinkingLevel=state2.thinkingLevel||"off";rightSideWithoutProvider=thinkingLevel==="off"?`${modelName} \u2022 thinking off`:`${modelName} \u2022 ${thinkingLevel}`}let routed=this.session.routedModel;if(routed){let level=routed.thinkingLevel?` \u2022 ${routed.thinkingLevel}`:"";rightSideWithoutProvider+=` \u2192 ${routed.model.id}${level}`}let rightSide=rightSideWithoutProvider;this.footerData.getAvailableProviderCount()>1&&state2.model&&(rightSide=`(${state2.model.provider}) ${rightSideWithoutProvider}`,statsLeftWidth+minPadding+visibleWidth(rightSide)>width&&(rightSide=rightSideWithoutProvider));let rightSideWidth=visibleWidth(rightSide),totalNeeded=statsLeftWidth+minPadding+rightSideWidth,statsLine;if(totalNeeded<=width){let padding=" ".repeat(width-statsLeftWidth-rightSideWidth);statsLine=statsLeft+padding+rightSide}else{let availableForRight=width-statsLeftWidth-minPadding;if(availableForRight>0){let truncatedRight=truncateToWidth(rightSide,availableForRight,""),truncatedRightWidth=visibleWidth(truncatedRight),padding=" ".repeat(Math.max(0,width-statsLeftWidth-truncatedRightWidth));statsLine=statsLeft+padding+truncatedRight}else statsLine=statsLeft}let dimStatsLeft=theme.fg("dim",statsLeft),remainder=statsLine.slice(statsLeft.length),dimRemainder=theme.fg("dim",remainder),lines=[truncateToWidth(theme.fg("dim",pwd),width,theme.fg("dim","...")),dimStatsLeft+dimRemainder],extensionStatuses=this.footerData.getExtensionStatuses();if(extensionStatuses.size>0){let statusLine=Array.from(extensionStatuses.entries()).sort(([a],[b])=>a.localeCompare(b)).map(([,text])=>sanitizeStatusText(text)).join(" ");lines.push(truncateToWidth(statusLine,width,theme.fg("dim","...")))}return lines}};var FALLBACK_PREVIEW_LINES=10,ToolExecutionComponent=class extends Container{contentBox;contentText;contentTextRegion;selfRenderContainer;selfRenderHeight=0;callRendererComponent;resultRendererComponent;rendererState={};imageComponents=[];imageSources=[];imageSpacers=[];toolName;toolCallId;args;expanded=!1;showImages;imageWidthCells;outputPad;isPartial=!0;toolDefinition;ui;cwd;executionStarted=!1;argsComplete=!1;result;hideComponent=!1;constructor(toolName,toolCallId,args,options={},toolDefinition,ui,cwd){super(),this.toolName=toolName,this.toolCallId=toolCallId,this.args=args,this.toolDefinition=toolDefinition,this.showImages=options.showImages??!0,this.imageWidthCells=options.imageWidthCells??60,this.outputPad=options.outputPad??1,this.ui=ui,this.cwd=cwd,this.addChild(new Spacer(1)),this.contentBox=new Box(1,1,text=>theme.bg("toolPendingBg",text)),this.contentText=new Text("",1,1,text=>theme.bg("toolPendingBg",text)),this.contentTextRegion=this.createResultRegion(this.contentText),this.selfRenderContainer=new Container,this.hasRendererDefinition()?this.addChild(this.getRenderShell()==="self"?this.selfRenderContainer:this.contentBox):this.addChild(this.contentTextRegion),this.updateDisplay()}getCallRenderer(){return this.toolDefinition?.renderCall}getResultRenderer(){return this.toolDefinition?.renderResult}hasRendererDefinition(){return this.toolDefinition!==void 0}getRenderShell(){return this.toolDefinition?.renderShell??"default"}getRenderContext(lastComponent){return{args:this.args,toolCallId:this.toolCallId,invalidate:()=>{this.invalidate(),this.ui.requestRender()},lastComponent,state:this.rendererState,cwd:this.cwd,executionStarted:this.executionStarted,argsComplete:this.argsComplete,isPartial:this.isPartial,expanded:this.expanded,showImages:this.showImages,isError:this.result?.isError??!1,durationMs:this.isPartial?void 0:this.result?.durationMs,outputPad:this.outputPad}}createCallFallback(){return new Text(formatToolCallWithArgs(this.toolName,this.args,theme,this.expanded),0,0)}createResultFallback(){let output=this.getTextOutput();if(!output)return;let lines=output.split(`
|
|
236
|
+
`),displayLines=this.expanded?lines:lines.slice(0,FALLBACK_PREVIEW_LINES),remaining=lines.length-displayLines.length,text=displayLines.map(line=>theme.fg("toolOutput",line)).join(`
|
|
237
|
+
`);return remaining>0&&(text+=`${theme.fg("muted",`
|
|
238
|
+
... (${remaining} more lines,`)} ${keyHint("app.tools.expand","to expand")}${theme.fg("muted",")")}`),new Text(text,0,0)}createResultRegion(component){return new MouseRegion(component,event=>{if(!(!this.result||event.type!=="click"||event.button!=="left"))return this.setExpanded(!this.expanded),{handled:!0}})}updateArgs(args){this.args=args,this.updateDisplay()}markExecutionStarted(){this.executionStarted=!0,this.updateDisplay(),this.ui.requestRender()}setArgsComplete(){this.argsComplete=!0,this.updateDisplay(),this.ui.requestRender()}updateResult(result,isPartial=!1){this.result=result,this.isPartial=isPartial,this.updateDisplay()}setExpanded(expanded){this.expanded=expanded,this.updateDisplay()}setOutputPad(outputPad){this.outputPad=outputPad,this.updateDisplay()}setShowImages(show){this.showImages=show,this.updateDisplay()}setImageWidthCells(width){this.imageWidthCells=Math.max(1,Math.floor(width)),this.updateDisplay()}invalidate(){super.invalidate(),this.updateDisplay()}render(width){if(this.hideComponent)return[];if(this.hasRendererDefinition()&&this.getRenderShell()==="self"){let contentLines=this.selfRenderContainer.render(width);if(this.selfRenderHeight=contentLines.length,contentLines.length===0&&this.imageComponents.length===0)return[];let lines=[];contentLines.length>0&&(lines.push(""),lines.push(...contentLines));for(let i=0;i<this.imageComponents.length;i++){let spacer=this.imageSpacers[i];spacer&&lines.push(...spacer.render(width));let imageComponent=this.imageComponents[i];imageComponent&&lines.push(...imageComponent.render(width))}return lines}return super.render(width)}handleMouse(event){if(!this.hasRendererDefinition()||this.getRenderShell()!=="self")return super.handleMouse(event);if(!(event.y<=0||event.y>this.selfRenderHeight))return this.selfRenderContainer.handleMouse({...event,y:event.y-1,height:this.selfRenderHeight})}updateDisplay(){let bgFn=this.isPartial?text=>theme.bg("toolPendingBg",text):this.result?.isError?text=>theme.bg("toolErrorBg",text):text=>theme.bg("toolSuccessBg",text),hasContent=!1;if(this.hideComponent=!1,this.hasRendererDefinition()){let renderContainer=this.getRenderShell()==="self"?this.selfRenderContainer:this.contentBox;renderContainer instanceof Box&&(renderContainer.setBgFn(bgFn),renderContainer.setPaddingX(this.outputPad)),renderContainer.clear();let callRenderer=this.getCallRenderer();if(!callRenderer)renderContainer.addChild(this.createResultRegion(this.createCallFallback())),hasContent=!0;else try{let component=callRenderer(this.args,theme,this.getRenderContext(this.callRendererComponent));this.callRendererComponent=component,renderContainer.addChild(this.createResultRegion(component)),hasContent=!0}catch{this.callRendererComponent=void 0,renderContainer.addChild(this.createResultRegion(this.createCallFallback())),hasContent=!0}if(this.result){let resultRenderer=this.getResultRenderer();if(resultRenderer)try{let component=resultRenderer({content:this.result.content,details:this.result.details},{expanded:this.expanded,isPartial:this.isPartial},theme,this.getRenderContext(this.resultRendererComponent));this.resultRendererComponent=component,renderContainer.addChild(this.createResultRegion(component)),hasContent=!0}catch{this.resultRendererComponent=void 0;let component=this.createResultFallback();component&&(renderContainer.addChild(this.createResultRegion(component)),hasContent=!0)}else{let component=this.createResultFallback();component&&(renderContainer.addChild(this.createResultRegion(component)),hasContent=!0)}}}else this.contentText.setCustomBgFn(bgFn),this.contentText.setPaddingX(this.outputPad),this.contentText.setText(this.formatToolExecution()),hasContent=!0;let previousImages=this.imageComponents,previousSources=this.imageSources;for(let img of this.imageComponents)this.removeChild(img);this.imageComponents=[],this.imageSources=[];for(let spacer of this.imageSpacers)this.removeChild(spacer);if(this.imageSpacers=[],this.result){let imageBlocks=this.result.content.filter(c=>c.type==="image"),caps=getCapabilities();for(let img of imageBlocks)if(caps.images&&this.showImages&&img.data&&img.mimeType){let spacer=new Spacer(1);this.addChild(spacer),this.imageSpacers.push(spacer);let source={data:img.data,mimeType:img.mimeType,widthCells:this.imageWidthCells},index3=this.imageComponents.length,previous=previousSources[index3],imageComponent=previous?.data===source.data&&previous.mimeType===source.mimeType&&previous.widthCells===source.widthCells?previousImages[index3]:new Image(source.data,source.mimeType,{fallbackColor:s=>theme.fg("toolOutput",s)},{maxWidthCells:source.widthCells});source.mimeType!=="image/png"&&ensurePngTranscoder(()=>{this.invalidate(),this.ui.requestRender()}),this.imageComponents.push(imageComponent),this.imageSources.push(source),this.addChild(imageComponent)}}this.hasRendererDefinition()&&!hasContent&&this.imageComponents.length===0&&(this.hideComponent=!0)}getTextOutput(){return getTextOutput(this.result,this.showImages)}formatToolExecution(){let text=theme.fg("toolTitle",theme.bold(this.toolName)),content=JSON.stringify(this.args,null,2);content&&(text+=`
|
|
239
|
+
|
|
240
|
+
${content}`);let output=this.getTextOutput();return output&&(text+=`
|
|
241
|
+
${output}`),text}};var OSC133_ZONE_START2="\x1B]133;A\x07",OSC133_ZONE_END2="\x1B]133;B\x07",OSC133_ZONE_FINAL2="\x1B]133;C\x07",UserMessageComponent=class extends Container{text;markdownTheme;outputPad;markdownTransformers;messageId;timestamp;constructor(text,markdownTheme=getMarkdownTheme(),outputPad=1,markdownTransformers=[],messageId,timestamp){super(),this.text=text,this.markdownTheme=markdownTheme,this.outputPad=outputPad,this.markdownTransformers=markdownTransformers,this.messageId=messageId,this.timestamp=timestamp,this.rebuild()}setOutputPad(padding){this.outputPad=padding,this.rebuild()}rebuild(){this.clear(),this.addChild(new Markdown(this.text,this.outputPad,1,this.markdownTheme,{color:content=>theme.fg("userMessageText",content),bgColor:content=>theme.bg("userMessageBg",content)},{preserveOrderedListMarkers:!0,preserveBackslashEscapes:!0,transform:createMarkdownTransform("user",!1,this.markdownTransformers,this.messageId,this.timestamp)}))}render(width){let lines=super.render(width);return lines.length===0||(lines[0]=OSC133_ZONE_START2+lines[0],lines[lines.length-1]=OSC133_ZONE_END2+OSC133_ZONE_FINAL2+lines[lines.length-1]),lines}};var TERMINAL_QUERY_TIMEOUT_MS=100;function requestTerminalColors(ui,apply){let query;try{query=ui.queryTerminalColors({timeoutMs:TERMINAL_QUERY_TIMEOUT_MS,onLateReply:apply})}catch{query=Promise.resolve({})}return query.then(apply,()=>apply({}))}function sameRgb(a,b){return a===b||a!==void 0&&b!==void 0&&a.r===b.r&&a.g===b.g&&a.b===b.b}function sameTerminalColors(a,b){return!sameRgb(a.foreground,b.foreground)||!sameRgb(a.background,b.background)?!1:a.palette===b.palette?!0:!a.palette||!b.palette||a.palette.length!==b.palette.length?!1:a.palette.every((color,index3)=>sameRgb(color,b.palette?.[index3]))}var InteractiveThemeController=class{ui;getSettingsManager;showError;onChanged;currentThemeSetting;terminalColors;activeThemeName;autoSyncEnabled=!1;terminalColorSchemeUnsubscribe;terminalColorQuery=Promise.resolve();constructor(ui,options){this.ui=ui,this.getSettingsManager=options.getSettingsManager,this.showError=options.showError,this.onChanged=options.onChanged,this.currentThemeSetting=options.initialThemeSetting,this.activeThemeName=this.resolveThemeName(),markTerminalColorsPending(),initTheme(this.activeThemeName,!0),this.bindTerminalColorSchemeListener()}rebindTui(){this.terminalColorSchemeUnsubscribe?.(),this.bindTerminalColorSchemeListener(),this.ui.setTerminalColorSchemeNotifications(this.autoSyncEnabled)}applyFromSettings(){let themeSetting=this.getThemeSetting(),themeName=this.resolveThemeName();this.setAutoSync(parseAutoThemeSetting(themeSetting)!==void 0||themeName===SYSTEM_THEME_NAME),this.applyThemeName(themeName,themeSetting!==void 0),this.queryTerminalColors()}waitForTerminalColors(){return this.terminalColorQuery}getThemeSelection(){return this.currentThemeSetting??this.getSettingsManager().getThemeSetting()??this.activeThemeName}setThemeName(themeName,showError=!1){this.setAutoSync(themeName===SYSTEM_THEME_NAME);let result=this.applyThemeName(themeName,showError);return result.success&&(this.currentThemeSetting=themeName),result}setThemeSetting(themeSetting){this.currentThemeSetting=themeSetting,this.applyFromSettings()}setThemeInstance(themeInstance){return this.setAutoSync(!1),setThemeInstance(themeInstance),this.activeThemeName="<in-memory>",this.notifyChanged(),{success:!0}}preview(themeSettingOrName){let themeName=resolveThemeSetting(themeSettingOrName,getTerminalTheme())??this.activeThemeName;themeName&&setTheme(themeName,!0).success&&(this.ui.invalidate(),this.ui.requestRender())}disableAutoSync(){this.setAutoSync(!1)}dispose(){this.setAutoSync(!1),this.terminalColorSchemeUnsubscribe?.(),this.terminalColorSchemeUnsubscribe=void 0}getTerminalTheme(){return getTerminalTheme()}getThemeSetting(){return this.currentThemeSetting??this.getSettingsManager().getThemeSetting()}resolveThemeName(){return resolveThemeSetting(this.getThemeSetting(),getTerminalTheme())??SYSTEM_THEME_NAME}applyThemeName(themeName,showError=!1){let result=setTheme(themeName,!0);return this.activeThemeName=result.success?themeName:SYSTEM_THEME_NAME,this.notifyChanged(),!result.success&&showError&&this.showError(`Failed to load theme "${themeName}": ${result.error}
|
|
242
|
+
Fell back to the system theme.`),result}queryTerminalColors(){this.terminalColorQuery=requestTerminalColors(this.ui,colors=>this.applyTerminalColors(colors))}applyTerminalColors(reported){let previous=this.terminalColors,next={foreground:reported.foreground??previous?.foreground,background:reported.background??previous?.background,palette:reported.palette??previous?.palette};previous&&sameTerminalColors(previous,next)||(this.terminalColors=next,setTerminalColors(next),this.reapplyForTerminal(),this.ui.invalidate(),this.ui.requestRender())}reapplyForTerminal(){if(this.activeThemeName==="<in-memory>")return;let themeName=this.resolveThemeName();(themeName===SYSTEM_THEME_NAME||themeName!==this.activeThemeName)&&this.applyThemeName(themeName)}setAutoSync(enabled){this.autoSyncEnabled!==enabled&&(this.autoSyncEnabled=enabled,this.ui.setTerminalColorSchemeNotifications(enabled))}bindTerminalColorSchemeListener(){this.terminalColorSchemeUnsubscribe=this.ui.onTerminalColorSchemeChange(terminalTheme=>this.applyTerminalColorSchemeChange(terminalTheme))}applyTerminalColorSchemeChange(terminalTheme){if(!this.autoSyncEnabled)return;let previous=getTerminalTheme();setTerminalColorScheme(terminalTheme),getTerminalTheme()!==previous&&this.reapplyForTerminal(),this.queryTerminalColors()}notifyChanged(){this.ui.invalidate(),this.onChanged()}};function createInteractiveTui(options){let terminal=options.terminal??new ProcessTerminal;if(options.tuiMode==="fullscreen"){let styleSearchMatch=text=>theme.bg("searchMatchBg",theme.fg("searchMatchText",text));return new TuiAltScreen(terminal,options.showHardwareCursor,options.logDirectory,{searchMatchStyle:text=>theme.underline(styleSearchMatch(text)),searchCurrentMatchStyle:text=>theme.bold(theme.inverse(styleSearchMatch(text))),searchNavigationButtonStyle:(text,hovered)=>hovered?theme.underline(text):text,scrollToEndIndicator:()=>{let shortcut=keyDisplayText("tui.altScreen.bottom"),label=` \u2193 Jump to latest message${shortcut?` \xB7 ${shortcut}`:""} `;return theme.bg("selectedBg",theme.fg("text",label))},openUrl:openBrowser,onRightClickPaste:options.onRightClickPaste,copyOnSelect:options.fullscreenCopyOnSelect,wheelScrollLines:options.fullscreenWheelScrollLines??"auto",copySelection:async text=>{try{return await copyToClipboard(text),!0}catch(error){return error instanceof Error?error.message:String(error)}}})}return new TuiMainScreen(terminal,options.showHardwareCursor,options.logDirectory)}function createInteractiveTuiReference(getTui){return new Proxy({},{get:(_target,property)=>{let tui=getTui(),value=Reflect.get(tui,property,tui);if(typeof value!="function")return value;let methodTui=tui,method=value;return(...args)=>{let currentTui=getTui();if(currentTui!==methodTui){let currentMethod=Reflect.get(currentTui,property,currentTui);if(typeof currentMethod!="function")throw new TypeError(`TUI property ${String(property)} is not callable`);methodTui=currentTui,method=currentMethod}return Reflect.apply(method,methodTui,args)}},set:(_target,property,value)=>{let tui=getTui();return Reflect.set(tui,property,value,tui)},has:(_target,property)=>Reflect.has(getTui(),property),getPrototypeOf:()=>Reflect.getPrototypeOf(getTui())})}export{HTTP_IDLE_TIMEOUT_CHOICES,formatHttpIdleTimeoutMs,applyHttpProxySettings,configureHttpDispatcher,value_exports,value_exports2,Compile,compile_exports,CACHE_WARMING_MODES,DEFAULT_TOOL_NAMES,isToolModifier,getToolListError,applyToolModifiers,SettingsManager,pathExists,resolveToCwd,resolveReadPath,resolveReadPathAsync,applyExifOrientation,loadPhoton,convertImageBytesToPng,convertToPng,ensurePngTranscoder,pythonRenderers,childAgents,BASH_UPDATE_THROTTLE_MS,createShellRenderers,detectLineEnding,normalizeToLF,restoreLineEndings,applyEditsToNormalizedContent,generateUnifiedPatch,generateDiffString,renderDiff,editRenderers,findRenderers,grepRenderers,lsRenderers,readRenderers,writeRenderers,runClipboardCommand,isWSL,readClipboardText,readClipboardFilePaths,copyToClipboard,DynamicBorder,migrateKeybindingsConfig,KeybindingsManager2 as KeybindingsManager,withBuiltInRenderers,CHILD_AGENT_PROTOCOL_VERSION,FORWARDED_CHILD_AGENT_EVENTS,startChildAgentServer,createChatViewport,AssistantMessageComponent,BashExecutionComponent,BranchSummaryMessageComponent,CompactionSummaryMessageComponent,CustomEditor,CustomMessageComponent,areExperimentalFeaturesEnabled,formatTokens,FooterComponent,ToolExecutionComponent,UserMessageComponent,requestTerminalColors,InteractiveThemeController,createInteractiveTui,createInteractiveTuiReference};
|